@noodleseed/one 0.125.0 → 0.127.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 (412) 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-account.d.ts +2 -3
  5. package/dist/commands/catalog-data-account.d.ts.map +1 -1
  6. package/dist/commands/catalog-data-account.js +2 -310
  7. package/dist/commands/catalog-data-account.js.map +1 -1
  8. package/dist/commands/catalog-data-assistant.d.ts +2 -3
  9. package/dist/commands/catalog-data-assistant.d.ts.map +1 -1
  10. package/dist/commands/catalog-data-assistant.js +2 -259
  11. package/dist/commands/catalog-data-assistant.js.map +1 -1
  12. package/dist/commands/catalog-data-auth-discovery.d.ts +2 -3
  13. package/dist/commands/catalog-data-auth-discovery.d.ts.map +1 -1
  14. package/dist/commands/catalog-data-auth-discovery.js +2 -357
  15. package/dist/commands/catalog-data-auth-discovery.js.map +1 -1
  16. package/dist/commands/catalog-data-billing.d.ts +2 -3
  17. package/dist/commands/catalog-data-billing.d.ts.map +1 -1
  18. package/dist/commands/catalog-data-billing.js +2 -311
  19. package/dist/commands/catalog-data-billing.js.map +1 -1
  20. package/dist/commands/catalog-data-bootstrap-authoring.d.ts +2 -3
  21. package/dist/commands/catalog-data-bootstrap-authoring.d.ts.map +1 -1
  22. package/dist/commands/catalog-data-bootstrap-authoring.js +2 -381
  23. package/dist/commands/catalog-data-bootstrap-authoring.js.map +1 -1
  24. package/dist/commands/catalog-data-bootstrap-pre-auth.d.ts +2 -3
  25. package/dist/commands/catalog-data-bootstrap-pre-auth.d.ts.map +1 -1
  26. package/dist/commands/catalog-data-bootstrap-pre-auth.js +2 -388
  27. package/dist/commands/catalog-data-bootstrap-pre-auth.js.map +1 -1
  28. package/dist/commands/catalog-data-config.d.ts +2 -6
  29. package/dist/commands/catalog-data-config.d.ts.map +1 -1
  30. package/dist/commands/catalog-data-config.js +2 -266
  31. package/dist/commands/catalog-data-config.js.map +1 -1
  32. package/dist/commands/catalog-data-core.d.ts +2 -5
  33. package/dist/commands/catalog-data-core.d.ts.map +1 -1
  34. package/dist/commands/catalog-data-core.js +2 -86
  35. package/dist/commands/catalog-data-core.js.map +1 -1
  36. package/dist/commands/catalog-data-distributions.d.ts +3 -0
  37. package/dist/commands/catalog-data-distributions.d.ts.map +1 -0
  38. package/dist/commands/catalog-data-distributions.js +3 -0
  39. package/dist/commands/catalog-data-distributions.js.map +1 -0
  40. package/dist/commands/catalog-data-hosted-deployment.d.ts +2 -3
  41. package/dist/commands/catalog-data-hosted-deployment.d.ts.map +1 -1
  42. package/dist/commands/catalog-data-hosted-deployment.js +2 -329
  43. package/dist/commands/catalog-data-hosted-deployment.js.map +1 -1
  44. package/dist/commands/catalog-data-hosted-governance.d.ts +2 -3
  45. package/dist/commands/catalog-data-hosted-governance.d.ts.map +1 -1
  46. package/dist/commands/catalog-data-hosted-governance.js +2 -3
  47. package/dist/commands/catalog-data-hosted-governance.js.map +1 -1
  48. package/dist/commands/catalog-data-hosted-observability.d.ts +2 -3
  49. package/dist/commands/catalog-data-hosted-observability.d.ts.map +1 -1
  50. package/dist/commands/catalog-data-hosted-observability.js +2 -453
  51. package/dist/commands/catalog-data-hosted-observability.js.map +1 -1
  52. package/dist/commands/catalog-data-local-authoring.d.ts +2 -3
  53. package/dist/commands/catalog-data-local-authoring.d.ts.map +1 -1
  54. package/dist/commands/catalog-data-local-authoring.js +2 -293
  55. package/dist/commands/catalog-data-local-authoring.js.map +1 -1
  56. package/dist/commands/catalog-data-platform-auth.d.ts +2 -6
  57. package/dist/commands/catalog-data-platform-auth.d.ts.map +1 -1
  58. package/dist/commands/catalog-data-platform-auth.js +2 -332
  59. package/dist/commands/catalog-data-platform-auth.js.map +1 -1
  60. package/dist/commands/catalog-data-policy.d.ts +2 -3
  61. package/dist/commands/catalog-data-policy.d.ts.map +1 -1
  62. package/dist/commands/catalog-data-policy.js +2 -327
  63. package/dist/commands/catalog-data-policy.js.map +1 -1
  64. package/dist/commands/catalog-data-tenant-admin.d.ts +2 -3
  65. package/dist/commands/catalog-data-tenant-admin.d.ts.map +1 -1
  66. package/dist/commands/catalog-data-tenant-admin.js +2 -478
  67. package/dist/commands/catalog-data-tenant-admin.js.map +1 -1
  68. package/dist/commands/catalog-data-tenant-resources.d.ts +2 -3
  69. package/dist/commands/catalog-data-tenant-resources.d.ts.map +1 -1
  70. package/dist/commands/catalog-data-tenant-resources.js +2 -222
  71. package/dist/commands/catalog-data-tenant-resources.js.map +1 -1
  72. package/dist/commands/catalog-types.d.ts +2 -103
  73. package/dist/commands/catalog-types.d.ts.map +1 -1
  74. package/dist/commands/catalog-types.js +0 -5
  75. package/dist/commands/catalog-types.js.map +1 -1
  76. package/dist/commands/catalog.d.ts.map +1 -1
  77. package/dist/commands/catalog.js +3 -0
  78. package/dist/commands/catalog.js.map +1 -1
  79. package/dist/commands/distribution-lifecycle-ops.d.ts +3 -0
  80. package/dist/commands/distribution-lifecycle-ops.d.ts.map +1 -0
  81. package/dist/commands/distribution-lifecycle-ops.js +200 -0
  82. package/dist/commands/distribution-lifecycle-ops.js.map +1 -0
  83. package/dist/commands/distribution-ops-support.d.ts +36 -0
  84. package/dist/commands/distribution-ops-support.d.ts.map +1 -0
  85. package/dist/commands/distribution-ops-support.js +109 -0
  86. package/dist/commands/distribution-ops-support.js.map +1 -0
  87. package/dist/commands/distributions-ops.d.ts +3 -0
  88. package/dist/commands/distributions-ops.d.ts.map +1 -0
  89. package/dist/commands/distributions-ops.js +272 -0
  90. package/dist/commands/distributions-ops.js.map +1 -0
  91. package/dist/commands/knowledge.d.ts.map +1 -1
  92. package/dist/commands/knowledge.js +27 -9
  93. package/dist/commands/knowledge.js.map +1 -1
  94. package/dist/control-plane-request.d.ts +24 -0
  95. package/dist/control-plane-request.d.ts.map +1 -0
  96. package/dist/control-plane-request.js +124 -0
  97. package/dist/control-plane-request.js.map +1 -0
  98. package/dist/control-plane.d.ts +1 -17
  99. package/dist/control-plane.d.ts.map +1 -1
  100. package/dist/control-plane.js +1 -112
  101. package/dist/control-plane.js.map +1 -1
  102. package/dist/index.d.ts +1 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +1 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/plugin-mode/plugin-operation-contract.d.ts +9 -9
  107. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  108. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +5 -1
  109. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  110. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +2 -2
  111. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  112. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  113. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +5 -0
  114. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  115. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
  116. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +4 -2
  117. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  118. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  119. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +2 -0
  120. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  121. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
  122. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +17 -0
  123. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  124. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  125. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -1
  126. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  127. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
  128. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  129. package/node_modules/@noodle-borg/authoring/dist/knowledge.d.ts +66 -2
  130. package/node_modules/@noodle-borg/authoring/dist/knowledge.d.ts.map +1 -1
  131. package/node_modules/@noodle-borg/authoring/dist/knowledge.js +54 -2
  132. package/node_modules/@noodle-borg/authoring/dist/knowledge.js.map +1 -1
  133. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.d.ts +4 -0
  134. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.d.ts.map +1 -0
  135. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.js +311 -0
  136. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.js.map +1 -0
  137. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-assistant.d.ts +4 -0
  138. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-assistant.d.ts.map +1 -0
  139. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-assistant.js +260 -0
  140. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-assistant.js.map +1 -0
  141. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-auth-discovery.d.ts +4 -0
  142. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-auth-discovery.d.ts.map +1 -0
  143. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-auth-discovery.js +358 -0
  144. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-auth-discovery.js.map +1 -0
  145. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.d.ts +4 -0
  146. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.d.ts.map +1 -0
  147. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.js +312 -0
  148. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.js.map +1 -0
  149. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.d.ts +4 -0
  150. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.d.ts.map +1 -0
  151. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.js +382 -0
  152. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.js.map +1 -0
  153. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-pre-auth.d.ts +4 -0
  154. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-pre-auth.d.ts.map +1 -0
  155. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-pre-auth.js +389 -0
  156. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-pre-auth.js.map +1 -0
  157. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-config.d.ts +7 -0
  158. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-config.d.ts.map +1 -0
  159. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-config.js +267 -0
  160. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-config.js.map +1 -0
  161. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-core.d.ts +6 -0
  162. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-core.d.ts.map +1 -0
  163. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-core.js +87 -0
  164. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-core.js.map +1 -0
  165. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-distributions.d.ts +4 -0
  166. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-distributions.d.ts.map +1 -0
  167. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-distributions.js +260 -0
  168. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-distributions.js.map +1 -0
  169. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-deployment.d.ts +4 -0
  170. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-deployment.d.ts.map +1 -0
  171. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-deployment.js +330 -0
  172. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-deployment.js.map +1 -0
  173. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-governance.d.ts +4 -0
  174. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-governance.d.ts.map +1 -0
  175. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-governance.js +4 -0
  176. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-governance.js.map +1 -0
  177. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.d.ts +4 -0
  178. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.d.ts.map +1 -0
  179. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js +470 -0
  180. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-observability.js.map +1 -0
  181. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-local-authoring.d.ts +4 -0
  182. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-local-authoring.d.ts.map +1 -0
  183. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-local-authoring.js +294 -0
  184. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-local-authoring.js.map +1 -0
  185. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-platform-auth.d.ts +7 -0
  186. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-platform-auth.d.ts.map +1 -0
  187. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-platform-auth.js +333 -0
  188. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-platform-auth.js.map +1 -0
  189. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-policy.d.ts +4 -0
  190. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-policy.d.ts.map +1 -0
  191. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-policy.js +328 -0
  192. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-policy.js.map +1 -0
  193. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-admin.d.ts +4 -0
  194. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-admin.d.ts.map +1 -0
  195. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-admin.js +479 -0
  196. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-admin.js.map +1 -0
  197. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-resources.d.ts +4 -0
  198. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-resources.d.ts.map +1 -0
  199. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-resources.js +223 -0
  200. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-resources.js.map +1 -0
  201. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-types.d.ts +104 -0
  202. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-types.d.ts.map +1 -0
  203. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-types.js +7 -0
  204. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-types.js.map +1 -0
  205. package/node_modules/@noodle-borg/cli-catalog/dist/index.d.ts +19 -0
  206. package/node_modules/@noodle-borg/cli-catalog/dist/index.d.ts.map +1 -0
  207. package/node_modules/@noodle-borg/cli-catalog/dist/index.js +19 -0
  208. package/node_modules/@noodle-borg/cli-catalog/dist/index.js.map +1 -0
  209. package/node_modules/@noodle-borg/cli-catalog/package.json +97 -0
  210. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +58 -0
  211. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/knowledge/dist/algolia-index.d.ts +30 -0
  213. package/node_modules/@noodle-borg/knowledge/dist/algolia-index.d.ts.map +1 -0
  214. package/node_modules/@noodle-borg/knowledge/dist/algolia-index.js +141 -0
  215. package/node_modules/@noodle-borg/knowledge/dist/algolia-index.js.map +1 -0
  216. package/node_modules/@noodle-borg/knowledge/dist/compile.d.ts +4 -0
  217. package/node_modules/@noodle-borg/knowledge/dist/compile.d.ts.map +1 -1
  218. package/node_modules/@noodle-borg/knowledge/dist/compile.js +3 -0
  219. package/node_modules/@noodle-borg/knowledge/dist/compile.js.map +1 -1
  220. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts +2 -8
  221. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts.map +1 -1
  222. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js +0 -48
  223. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js.map +1 -1
  224. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts +2 -0
  225. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts.map +1 -1
  226. package/node_modules/@noodle-borg/knowledge/dist/index.js +2 -0
  227. package/node_modules/@noodle-borg/knowledge/dist/index.js.map +1 -1
  228. package/node_modules/@noodle-borg/knowledge/dist/limits.d.ts +6 -0
  229. package/node_modules/@noodle-borg/knowledge/dist/limits.d.ts.map +1 -1
  230. package/node_modules/@noodle-borg/knowledge/dist/limits.js +6 -0
  231. package/node_modules/@noodle-borg/knowledge/dist/limits.js.map +1 -1
  232. package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.d.ts +58 -0
  233. package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.d.ts.map +1 -1
  234. package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.js +28 -0
  235. package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.js.map +1 -1
  236. package/node_modules/@noodle-borg/knowledge/dist/meilisearch-index.d.ts +33 -0
  237. package/node_modules/@noodle-borg/knowledge/dist/meilisearch-index.d.ts.map +1 -0
  238. package/node_modules/@noodle-borg/knowledge/dist/meilisearch-index.js +153 -0
  239. package/node_modules/@noodle-borg/knowledge/dist/meilisearch-index.js.map +1 -0
  240. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts +1 -0
  241. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts.map +1 -1
  242. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js +3 -0
  243. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js.map +1 -1
  244. package/node_modules/@noodle-borg/knowledge/dist/provider-index-shared.d.ts +19 -0
  245. package/node_modules/@noodle-borg/knowledge/dist/provider-index-shared.d.ts.map +1 -0
  246. package/node_modules/@noodle-borg/knowledge/dist/provider-index-shared.js +47 -0
  247. package/node_modules/@noodle-borg/knowledge/dist/provider-index-shared.js.map +1 -0
  248. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts +7 -0
  249. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts.map +1 -1
  250. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js +4 -0
  251. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js.map +1 -1
  252. package/node_modules/@noodle-borg/knowledge-crawl/dist/bounds.d.ts +3 -0
  253. package/node_modules/@noodle-borg/knowledge-crawl/dist/bounds.d.ts.map +1 -0
  254. package/node_modules/@noodle-borg/knowledge-crawl/dist/bounds.js +30 -0
  255. package/node_modules/@noodle-borg/knowledge-crawl/dist/bounds.js.map +1 -0
  256. package/node_modules/@noodle-borg/knowledge-crawl/dist/firecrawl.d.ts +13 -0
  257. package/node_modules/@noodle-borg/knowledge-crawl/dist/firecrawl.d.ts.map +1 -0
  258. package/node_modules/@noodle-borg/knowledge-crawl/dist/firecrawl.js +90 -0
  259. package/node_modules/@noodle-borg/knowledge-crawl/dist/firecrawl.js.map +1 -0
  260. package/node_modules/@noodle-borg/knowledge-crawl/dist/first-party.d.ts +11 -0
  261. package/node_modules/@noodle-borg/knowledge-crawl/dist/first-party.d.ts.map +1 -0
  262. package/node_modules/@noodle-borg/knowledge-crawl/dist/first-party.js +108 -0
  263. package/node_modules/@noodle-borg/knowledge-crawl/dist/first-party.js.map +1 -0
  264. package/node_modules/@noodle-borg/knowledge-crawl/dist/html-text.d.ts +19 -0
  265. package/node_modules/@noodle-borg/knowledge-crawl/dist/html-text.d.ts.map +1 -0
  266. package/node_modules/@noodle-borg/knowledge-crawl/dist/html-text.js +62 -0
  267. package/node_modules/@noodle-borg/knowledge-crawl/dist/html-text.js.map +1 -0
  268. package/node_modules/@noodle-borg/knowledge-crawl/dist/index.d.ts +5 -0
  269. package/node_modules/@noodle-borg/knowledge-crawl/dist/index.d.ts.map +1 -0
  270. package/node_modules/@noodle-borg/knowledge-crawl/dist/index.js +4 -0
  271. package/node_modules/@noodle-borg/knowledge-crawl/dist/index.js.map +1 -0
  272. package/node_modules/@noodle-borg/knowledge-crawl/dist/origin.d.ts +3 -0
  273. package/node_modules/@noodle-borg/knowledge-crawl/dist/origin.d.ts.map +1 -0
  274. package/node_modules/@noodle-borg/knowledge-crawl/dist/origin.js +30 -0
  275. package/node_modules/@noodle-borg/knowledge-crawl/dist/origin.js.map +1 -0
  276. package/node_modules/@noodle-borg/knowledge-crawl/dist/ports.d.ts +28 -0
  277. package/node_modules/@noodle-borg/knowledge-crawl/dist/ports.d.ts.map +1 -0
  278. package/node_modules/@noodle-borg/knowledge-crawl/dist/ports.js +8 -0
  279. package/node_modules/@noodle-borg/knowledge-crawl/dist/ports.js.map +1 -0
  280. package/node_modules/@noodle-borg/knowledge-crawl/dist/robots.d.ts +12 -0
  281. package/node_modules/@noodle-borg/knowledge-crawl/dist/robots.d.ts.map +1 -0
  282. package/node_modules/@noodle-borg/knowledge-crawl/dist/robots.js +64 -0
  283. package/node_modules/@noodle-borg/knowledge-crawl/dist/robots.js.map +1 -0
  284. package/node_modules/@noodle-borg/knowledge-crawl/dist/sitemap.d.ts +3 -0
  285. package/node_modules/@noodle-borg/knowledge-crawl/dist/sitemap.d.ts.map +1 -0
  286. package/node_modules/@noodle-borg/knowledge-crawl/dist/sitemap.js +11 -0
  287. package/node_modules/@noodle-borg/knowledge-crawl/dist/sitemap.js.map +1 -0
  288. package/node_modules/@noodle-borg/knowledge-crawl/dist/tavily.d.ts +11 -0
  289. package/node_modules/@noodle-borg/knowledge-crawl/dist/tavily.d.ts.map +1 -0
  290. package/node_modules/@noodle-borg/knowledge-crawl/dist/tavily.js +53 -0
  291. package/node_modules/@noodle-borg/knowledge-crawl/dist/tavily.js.map +1 -0
  292. package/node_modules/@noodle-borg/knowledge-crawl/package.json +32 -0
  293. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts +71 -0
  294. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts.map +1 -0
  295. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js +138 -0
  296. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.js.map +1 -0
  297. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.d.ts.map +1 -1
  298. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.js +11 -3
  299. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.js.map +1 -1
  300. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.d.ts +7 -13
  301. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.d.ts.map +1 -1
  302. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.js +16 -27
  303. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.js.map +1 -1
  304. package/node_modules/@noodle-borg/knowledge-operations/dist/index.d.ts +2 -2
  305. package/node_modules/@noodle-borg/knowledge-operations/dist/index.d.ts.map +1 -1
  306. package/node_modules/@noodle-borg/knowledge-operations/dist/index.js +2 -2
  307. package/node_modules/@noodle-borg/knowledge-operations/dist/index.js.map +1 -1
  308. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.d.ts +4 -0
  309. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.d.ts.map +1 -1
  310. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.js +6 -0
  311. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.js.map +1 -1
  312. package/node_modules/@noodle-borg/knowledge-operations/dist/postgres-crawl-state.d.ts +12 -0
  313. package/node_modules/@noodle-borg/knowledge-operations/dist/postgres-crawl-state.d.ts.map +1 -0
  314. package/node_modules/@noodle-borg/knowledge-operations/dist/postgres-crawl-state.js +58 -0
  315. package/node_modules/@noodle-borg/knowledge-operations/dist/postgres-crawl-state.js.map +1 -0
  316. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.d.ts +14 -1
  317. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.d.ts.map +1 -1
  318. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.js +84 -42
  319. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.js.map +1 -1
  320. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.d.ts +18 -11
  321. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.d.ts.map +1 -1
  322. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.js +149 -26
  323. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.js.map +1 -1
  324. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.d.ts +13 -4
  325. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.d.ts.map +1 -1
  326. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.js +28 -0
  327. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.js.map +1 -1
  328. package/node_modules/@noodle-borg/knowledge-operations/package.json +1 -0
  329. package/node_modules/@noodle-borg/module/dist/contract.d.ts +67 -0
  330. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  331. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  332. package/node_modules/@noodle-borg/plugin-distribution/dist/command.d.ts +1 -0
  333. package/node_modules/@noodle-borg/plugin-distribution/dist/command.d.ts.map +1 -1
  334. package/node_modules/@noodle-borg/plugin-distribution/dist/command.js +1 -0
  335. package/node_modules/@noodle-borg/plugin-distribution/dist/command.js.map +1 -1
  336. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +3 -0
  337. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  338. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  339. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts +1 -1
  340. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
  341. package/node_modules/@noodle-borg/protocol/dist/v2/server.js +26 -4
  342. package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
  343. package/node_modules/@noodle-borg/protocol/dist/v2/skills.d.ts +30 -0
  344. package/node_modules/@noodle-borg/protocol/dist/v2/skills.d.ts.map +1 -0
  345. package/node_modules/@noodle-borg/protocol/dist/v2/skills.js +126 -0
  346. package/node_modules/@noodle-borg/protocol/dist/v2/skills.js.map +1 -0
  347. package/node_modules/@noodle-borg/protocol/package.json +3 -1
  348. package/node_modules/@noodle-borg/service/dist/assistant-bindings.d.ts.map +1 -1
  349. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +29 -1
  350. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js.map +1 -1
  351. package/node_modules/@noodle-borg/service/dist/knowledge-wiring.d.ts +8 -0
  352. package/node_modules/@noodle-borg/service/dist/knowledge-wiring.d.ts.map +1 -0
  353. package/node_modules/@noodle-borg/service/dist/knowledge-wiring.js +10 -0
  354. package/node_modules/@noodle-borg/service/dist/knowledge-wiring.js.map +1 -0
  355. package/node_modules/@noodle-borg/service/dist/modules/commercial-modules.d.ts +8 -0
  356. package/node_modules/@noodle-borg/service/dist/modules/commercial-modules.d.ts.map +1 -0
  357. package/node_modules/@noodle-borg/service/dist/modules/commercial-modules.js +21 -0
  358. package/node_modules/@noodle-borg/service/dist/modules/commercial-modules.js.map +1 -0
  359. package/node_modules/@noodle-borg/service/dist/modules/route-dispatch.d.ts +30 -0
  360. package/node_modules/@noodle-borg/service/dist/modules/route-dispatch.d.ts.map +1 -0
  361. package/node_modules/@noodle-borg/service/dist/modules/route-dispatch.js +155 -0
  362. package/node_modules/@noodle-borg/service/dist/modules/route-dispatch.js.map +1 -0
  363. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  364. package/node_modules/@noodle-borg/service/dist/registry-targets.js +10 -2
  365. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  366. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  367. package/node_modules/@noodle-borg/service/dist/serve.js +4 -20
  368. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  369. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  370. package/node_modules/@noodle-borg/service/dist/service.js +18 -18
  371. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  372. package/node_modules/@noodle-borg/service/package.json +1 -1
  373. package/node_modules/@noodle-borg/transport-http/dist/admission-context.js +5 -1
  374. package/node_modules/@noodle-borg/transport-http/dist/admission-context.js.map +1 -1
  375. package/node_modules/@noodle-borg/transport-http/dist/request-capture.d.ts.map +1 -1
  376. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js +4 -1
  377. package/node_modules/@noodle-borg/transport-http/dist/request-capture.js.map +1 -1
  378. package/node_modules/@noodle-borg/wire-contracts/dist/distribution.d.ts +561 -0
  379. package/node_modules/@noodle-borg/wire-contracts/dist/distribution.d.ts.map +1 -0
  380. package/node_modules/@noodle-borg/wire-contracts/dist/distribution.js +223 -0
  381. package/node_modules/@noodle-borg/wire-contracts/dist/distribution.js.map +1 -0
  382. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +1 -0
  383. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
  384. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +1 -0
  385. package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
  386. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.d.ts +42 -1
  387. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.d.ts.map +1 -1
  388. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.js +14 -0
  389. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.js.map +1 -1
  390. package/node_modules/@noodleseed/assistant/dist/{chunk-MZNENVFY.js → chunk-RFETV5KQ.js} +158 -6
  391. package/node_modules/@noodleseed/assistant/dist/chunk-RFETV5KQ.js.map +1 -0
  392. package/node_modules/@noodleseed/assistant/dist/{chunk-RIKRQFKS.js → chunk-S373FCAI.js} +2 -1
  393. package/node_modules/@noodleseed/assistant/dist/client.js +1 -1
  394. package/node_modules/@noodleseed/assistant/dist/embed.global.js +57 -57
  395. package/node_modules/@noodleseed/assistant/dist/index.cjs +268 -117
  396. package/node_modules/@noodleseed/assistant/dist/index.cjs.map +1 -1
  397. package/node_modules/@noodleseed/assistant/dist/index.js +2 -2
  398. package/node_modules/@noodleseed/assistant/dist/react/client.js +1 -1
  399. package/node_modules/@noodleseed/assistant/dist/react.cjs +268 -117
  400. package/node_modules/@noodleseed/assistant/dist/react.cjs.map +1 -1
  401. package/node_modules/@noodleseed/assistant/dist/react.js +2 -2
  402. package/package.json +6 -2
  403. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.d.ts +0 -15
  404. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.d.ts.map +0 -1
  405. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.js +0 -50
  406. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.js.map +0 -1
  407. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.d.ts +0 -34
  408. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.d.ts.map +0 -1
  409. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.js +0 -68
  410. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.js.map +0 -1
  411. package/node_modules/@noodleseed/assistant/dist/chunk-MZNENVFY.js.map +0 -1
  412. /package/node_modules/@noodleseed/assistant/dist/{chunk-RIKRQFKS.js.map → chunk-S373FCAI.js.map} +0 -0
@@ -4,7 +4,7 @@
4
4
  * query → activate + pin, paired with the caller's artifact persistence. Any failure retains
5
5
  * the previous artifact + revision pair; retry is idempotent by content hash.
6
6
  */
7
- import { type CompiledKnowledgeComponent, type KnowledgeScope, type SearchHit, type SearchRequest } from '@noodle-borg/knowledge';
7
+ import { type CompiledKnowledgeComponent, type KnowledgeIndex, type KnowledgeScope, type SearchHit, type SearchRequest, type StagedDocument } from '@noodle-borg/knowledge';
8
8
  import { type KnowledgeTenantRef } from './routes.js';
9
9
  import type { KnowledgeServiceStores } from './service-wiring.js';
10
10
  export interface KnowledgeDeployFailure {
@@ -41,6 +41,12 @@ export interface KnowledgeDeployHooks {
41
41
  rollback(deploymentId: string): Promise<void>;
42
42
  /** Search the active document revision, rebuilding the bundled index when stale. */
43
43
  searchDocuments(scope: KnowledgeScope, componentName: string, request: SearchRequest): Promise<readonly SearchHit[]>;
44
+ /**
45
+ * Publish a refresh-lifecycle corpus (the crawled `<name>#site` namespace): stage + durable
46
+ * text + activate, latest-wins, never deployment-pinned — the displaced revision is unpinned
47
+ * so GC can reclaim it. Serialized per corpus by the publication lease.
48
+ */
49
+ publishSiteCorpus(scope: KnowledgeScope, corpusName: string, documents: readonly StagedDocument[]): Promise<void>;
44
50
  /** Throttled GC: expired staging entries and unreferenced revisions. */
45
51
  sweep(): Promise<void>;
46
52
  }
@@ -48,6 +54,13 @@ export declare function createKnowledgeDeployHooks(stores: KnowledgeServiceStore
48
54
  readonly knowledgeEnabled: (tenant: KnowledgeTenantRef) => Promise<boolean>;
49
55
  /** Managed site datastore existence; when bound, a site() deploy fails before activation. */
50
56
  readonly siteProvisioned?: (tenant: KnowledgeTenantRef) => Promise<boolean>;
57
+ /**
58
+ * BYO index selection (ADR 0202 amendment): resolve a component (or its `<name>#site`
59
+ * corpus) to its declared provider index. The declaration is passed where the caller holds
60
+ * the compiled component (publish/activate); lookup paths pass only the name. Returning
61
+ * undefined selects the managed bundled index.
62
+ */
63
+ readonly indexFor?: (scope: KnowledgeScope, componentName: string, declaration: CompiledKnowledgeComponent['index'] | undefined) => Promise<KnowledgeIndex | undefined>;
51
64
  readonly now?: () => Date;
52
65
  }): KnowledgeDeployHooks;
53
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ const ACTIVE_REVISION_TTL_MS = 5_000;
20
20
  /** Deploy-piggybacked GC cadence (the archive-sweeper pattern). */
21
21
  const SWEEP_INTERVAL_MS = 10 * 60 * 1000;
22
22
  export function createKnowledgeDeployHooks(stores, options) {
23
- const index = new Bm25KnowledgeIndex();
23
+ const bundled = new Bm25KnowledgeIndex();
24
+ const selectIndex = async (scope, componentName, declaration) => (await options.indexFor?.(scope, componentName, declaration)) ?? bundled;
24
25
  const codec = stores.codec ?? identityDocumentTextCodec;
25
26
  const now = options.now ?? (() => new Date());
26
27
  const activeChecks = new Map();
@@ -63,8 +64,13 @@ export function createKnowledgeDeployHooks(stores, options) {
63
64
  }
64
65
  return documents;
65
66
  }
66
- /** Make sure the in-process index holds and activates the given revision. */
67
- async function rebuildIndex(scope, componentName, revisionId) {
67
+ /**
68
+ * Make sure the selected index holds and activates the given revision. For the bundled
69
+ * per-instance BM25 this is the restart/peer-activation rebuild; for a BYO remote index the
70
+ * active check usually matches and this is a no-op (stage is content-hash idempotent, so a
71
+ * mismatch self-heals from durable text).
72
+ */
73
+ async function rebuildIndex(index, scope, componentName, revisionId) {
68
74
  const current = await index.activeRevision(scope, componentName);
69
75
  if (current?.revisionId === revisionId)
70
76
  return;
@@ -93,9 +99,8 @@ export function createKnowledgeDeployHooks(stores, options) {
93
99
  throw new KnowledgePublicationError(withSites.map((component) => ({
94
100
  code: 'knowledge_site_not_provisioned',
95
101
  path: `knowledge.${component.name}`,
96
- message: `the managed site datastore for this tenant does not exist yet; an operator must ` +
97
- `run scripts/knowledge-gcp-provision.mjs --tenant ${tenant.org}/${tenant.app}/${tenant.env}, ` +
98
- `then check noodle knowledge status ${component.name}`,
102
+ message: `the site tier is not ready for this tenant; check ` +
103
+ `noodle knowledge status ${component.name} for the crawler configuration state`,
99
104
  })));
100
105
  }
101
106
  }
@@ -104,41 +109,50 @@ export function createKnowledgeDeployHooks(stores, options) {
104
109
  for (const component of withDocuments) {
105
110
  const scope = { org: tenant.org, app: tenant.app, env: tenant.env };
106
111
  const lease = await stores.revisionStore.acquireLease(scope, component.name, deploymentId);
107
- // Metadata-inclusive identity: a retitled/moved document is a new revision even with
108
- // identical bytes reuse keys on everything a citation shows.
109
- const contentHash = revisionContentHash(component.documents);
110
- const previous = await stores.revisionStore.active(scope, component.name);
111
- const reused = await stores.revisionStore.findByContentHash(scope, component.name, contentHash);
112
- const documents = await resolveDocuments(tenant, component, reused?.revisionId);
113
- const staged = await index.stage(scope, component.name, documents);
114
- const revision = reused ?? staged;
115
- await stores.revisionStore.stage({
116
- scope,
117
- componentName: component.name,
118
- contentHash,
119
- revision,
120
- });
121
- const verified = await index.verify(staged.revisionId, {
122
- audience: 'public',
123
- revision: staged.revisionId,
124
- });
125
- if (!verified) {
126
- throw new KnowledgePublicationError([
127
- {
128
- code: 'knowledge_verification_failed',
129
- path: `knowledge.${component.name}`,
130
- message: `knowledge component ${component.name} failed its positive filtered verification query`,
131
- },
132
- ]);
112
+ // From acquisition to planned.push the lease is held but not yet visible to
113
+ // finish(); release it on any failure or a retry deploy blocks on the leaked lease.
114
+ try {
115
+ // Metadata-inclusive identity: a retitled/moved document is a new revision even
116
+ // with identical bytes reuse keys on everything a citation shows.
117
+ const contentHash = revisionContentHash(component.documents);
118
+ const previous = await stores.revisionStore.active(scope, component.name);
119
+ const reused = await stores.revisionStore.findByContentHash(scope, component.name, contentHash);
120
+ const documents = await resolveDocuments(tenant, component, reused?.revisionId);
121
+ const index = await selectIndex(scope, component.name, component.index);
122
+ const staged = await index.stage(scope, component.name, documents);
123
+ const revision = reused ?? staged;
124
+ await stores.revisionStore.stage({
125
+ scope,
126
+ componentName: component.name,
127
+ contentHash,
128
+ revision,
129
+ });
130
+ const verified = await index.verify(staged.revisionId, {
131
+ audience: 'public',
132
+ revision: staged.revisionId,
133
+ });
134
+ if (!verified) {
135
+ throw new KnowledgePublicationError([
136
+ {
137
+ code: 'knowledge_verification_failed',
138
+ path: `knowledge.${component.name}`,
139
+ message: `knowledge component ${component.name} failed its positive filtered verification query`,
140
+ },
141
+ ]);
142
+ }
143
+ await stores.revisionStore.stageDocuments(revision.revisionId, documents);
144
+ planned.push({
145
+ component,
146
+ scope,
147
+ revisionId: revision.revisionId,
148
+ ...(previous !== undefined ? { previousRevisionId: previous.revisionId } : {}),
149
+ lease,
150
+ });
151
+ }
152
+ catch (error) {
153
+ await stores.revisionStore.releaseLease(lease).catch(() => undefined);
154
+ throw error;
133
155
  }
134
- await stores.revisionStore.stageDocuments(revision.revisionId, documents);
135
- planned.push({
136
- component,
137
- scope,
138
- revisionId: revision.revisionId,
139
- ...(previous !== undefined ? { previousRevisionId: previous.revisionId } : {}),
140
- lease,
141
- });
142
156
  }
143
157
  }
144
158
  catch (error) {
@@ -150,7 +164,7 @@ export function createKnowledgeDeployHooks(stores, options) {
150
164
  async activate(plan, deploymentId) {
151
165
  for (const planned of plan.components) {
152
166
  await stores.revisionStore.activate(planned.scope, planned.component.name, planned.revisionId, deploymentId);
153
- await rebuildIndex(planned.scope, planned.component.name, planned.revisionId);
167
+ await rebuildIndex(await selectIndex(planned.scope, planned.component.name, planned.component.index), planned.scope, planned.component.name, planned.revisionId);
154
168
  activeChecks.delete(knowledgeScopeCacheKey(planned.scope, planned.component.name));
155
169
  }
156
170
  },
@@ -175,6 +189,33 @@ export function createKnowledgeDeployHooks(stores, options) {
175
189
  activeChecks.delete(knowledgeScopeCacheKey(revision.scope, revision.componentName));
176
190
  }
177
191
  },
192
+ async publishSiteCorpus(scope, corpusName, documents) {
193
+ const lease = await stores.revisionStore.acquireLease(scope, corpusName, `crawl-${now().getTime()}`);
194
+ try {
195
+ const previous = await stores.revisionStore.active(scope, corpusName);
196
+ const index = await selectIndex(scope, corpusName);
197
+ const staged = await index.stage(scope, corpusName, documents);
198
+ await stores.revisionStore.stage({
199
+ scope,
200
+ componentName: corpusName,
201
+ contentHash: revisionContentHash(documents.map((document) => document.descriptor)),
202
+ revision: staged,
203
+ });
204
+ await stores.revisionStore.stageDocuments(staged.revisionId, documents);
205
+ // One synthetic pin id per corpus: activate pins the new revision to it, and the
206
+ // displaced revision is unpinned so a retired crawl can reach GC.
207
+ const pinId = `site-crawl:${knowledgeScopeCacheKey(scope, corpusName)}`;
208
+ await stores.revisionStore.activate(scope, corpusName, staged.revisionId, pinId);
209
+ if (previous !== undefined && previous.revisionId !== staged.revisionId) {
210
+ await stores.revisionStore.unpin(previous.revisionId, pinId);
211
+ }
212
+ await rebuildIndex(index, scope, corpusName, staged.revisionId);
213
+ activeChecks.delete(knowledgeScopeCacheKey(scope, corpusName));
214
+ }
215
+ finally {
216
+ await stores.revisionStore.releaseLease(lease);
217
+ }
218
+ },
178
219
  async searchDocuments(scope, componentName, request) {
179
220
  const cacheKey = knowledgeScopeCacheKey(scope, componentName);
180
221
  const cached = activeChecks.get(cacheKey);
@@ -188,7 +229,8 @@ export function createKnowledgeDeployHooks(stores, options) {
188
229
  }
189
230
  if (revisionId === undefined)
190
231
  return [];
191
- await rebuildIndex(scope, componentName, revisionId);
232
+ const index = await selectIndex(scope, componentName);
233
+ await rebuildIndex(index, scope, componentName, revisionId);
192
234
  return index.search(scope, componentName, request);
193
235
  },
194
236
  async sweep() {
@@ -1 +1 @@
1
- {"version":3,"file":"publication.js","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publication.js","sourceRoot":"","sources":["../src/publication.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,12 @@
2
2
  * Composition helpers the service calls from its (size-pinned) bootstrap files, so the thin
3
3
  * dispatch stays thin: store construction, schema setup, and route-deps assembly live here.
4
4
  */
5
- import { type CompiledKnowledgeComponent, type DocumentTextCodec, type KnowledgeRevisionStore, type SearchBudgetCeilings, type SearchBudgetStore, type SiteSearch } from '@noodle-borg/knowledge';
5
+ import { type CompiledKnowledgeComponent, type DocumentTextCodec, type KnowledgeIndex, type KnowledgeRevisionStore, type KnowledgeScope, type SearchBudgetCeilings, type SearchBudgetStore } from '@noodle-borg/knowledge';
6
+ import type { SiteFetcher } from '@noodle-borg/knowledge-crawl';
6
7
  import type { Pool } from 'pg';
7
8
  import { type StringSecretBox } from './codec.js';
9
+ import { type CrawlableComponent, type CrawlStateStore } from './crawl-lifecycle.js';
8
10
  import { type KnowledgeSearchExecutor } from './executor.js';
9
- import { type ManagedGoogleKnowledge } from './managed-google.js';
10
11
  import { type KnowledgeDeployHooks } from './publication.js';
11
12
  import type { KnowledgeRouteDeps, KnowledgeTenantRef } from './routes.js';
12
13
  import { type KnowledgeSearchPortFactory } from './search-port.js';
@@ -15,26 +16,30 @@ export interface KnowledgeServiceStores {
15
16
  readonly staging: KnowledgeStagingStore;
16
17
  readonly revisionStore: KnowledgeRevisionStore;
17
18
  readonly codec?: DocumentTextCodec;
18
- /** Org-pooled monthly site-search spend control (per-app sub-caps). */
19
+ /** Org-pooled monthly crawl-page spend control (per-app sub-caps). */
19
20
  readonly budgetStore?: SearchBudgetStore;
20
- /** Managed Noodle-owned Google project; absent means the sites tier is dark. */
21
- readonly google?: ManagedGoogleKnowledge;
21
+ /** Per-component crawl state (status, last completed, next refresh); in-memory by default. */
22
+ readonly crawlState?: CrawlStateStore;
22
23
  /**
23
- * Composition seams for tests and self-hosted alternatives: when set they replace the
24
- * google-derived checks. Without either an override or `google`, the sites tier fails closed
25
- * (site() deploys refuse; runtime site search refuses).
24
+ * Composition seams for tests and BYO providers: fetcher selection defaults to the managed
25
+ * first-party crawler; the deploy gate defaults to always-provisioned (the managed crawler
26
+ * needs no provisioning BYO configuration checks bind here).
26
27
  */
28
+ readonly fetcherFor?: (tenant: KnowledgeTenantRef, component: CrawlableComponent) => SiteFetcher;
29
+ /** BYO index selection override; defaults to declaration-driven provider adapters. */
30
+ readonly indexFor?: (scope: KnowledgeScope, componentName: string, declaration: CompiledKnowledgeComponent['index'] | undefined) => Promise<KnowledgeIndex | undefined>;
27
31
  readonly siteProvisioned?: (tenant: KnowledgeTenantRef) => Promise<boolean>;
28
- readonly siteSearchFor?: (tenant: KnowledgeTenantRef) => SiteSearch;
29
32
  }
30
33
  /** In-memory stores with the identity codec — the no-persistence service default. */
31
34
  export declare function defaultKnowledgeStores(): KnowledgeServiceStores;
32
35
  /** Durable stores sharing the service's Postgres pool and secret-box custody. */
33
- export declare function createPostgresKnowledgeStores(pool: Pool, secretBox?: StringSecretBox, env?: NodeJS.ProcessEnv): Promise<KnowledgeServiceStores>;
36
+ export declare function createPostgresKnowledgeStores(pool: Pool, secretBox?: StringSecretBox): Promise<KnowledgeServiceStores>;
34
37
  /** Budget ceilings from managed config with the ratified v0 defaults (2000 org / 1000 app). */
35
38
  export declare function budgetCeilingsResolver(resolveVariables: (tenant: KnowledgeTenantRef) => Promise<Record<string, string>>): (tenant: KnowledgeTenantRef) => Promise<SearchBudgetCeilings>;
36
39
  /** Assemble route deps over the service's managed-config resolver (`NOODLE_KNOWLEDGE_ENABLED`). */
37
40
  export declare function buildKnowledgeRouteDeps(stores: KnowledgeServiceStores, resolveVariables: (tenant: KnowledgeTenantRef) => Promise<Record<string, string>>, maxBodyBytes: number): KnowledgeRouteDeps;
41
+ /** Map a compiled index declaration plus resolved config values onto its provider adapter. */
42
+ export declare function knowledgeIndexFromDeclaration(declaration: NonNullable<CompiledKnowledgeComponent['index']>, config: Readonly<Record<string, string>>, scope: KnowledgeScope): KnowledgeIndex;
38
43
  /**
39
44
  * One-call composition for the service: resolve stores, build route deps, and register the
40
45
  * deploy-coupled publication hooks on the registry (structurally typed; no service import).
@@ -52,8 +57,10 @@ export declare function wireKnowledge(registry: {
52
57
  };
53
58
  };
54
59
  } | undefined>;
55
- }, stores: KnowledgeServiceStores | undefined, resolveVariables: (tenant: KnowledgeTenantRef) => Promise<Record<string, string>>, maxBodyBytes: number): KnowledgeRouteDeps & {
60
+ }, stores: KnowledgeServiceStores | undefined, resolveVariables: (tenant: KnowledgeTenantRef) => Promise<Record<string, string>>, maxBodyBytes: number, resolveSecrets?: (tenant: KnowledgeTenantRef) => Promise<Record<string, string>>): KnowledgeRouteDeps & {
56
61
  readonly executor: KnowledgeSearchExecutor;
62
+ readonly refreshComponent: (tenant: KnowledgeTenantRef, component: CrawlableComponent) => Promise<import('./crawl-lifecycle.js').SiteCrawlState>;
63
+ readonly crawlState: CrawlStateStore;
57
64
  };
58
65
  interface ActiveServerKnowledge {
59
66
  readonly knowledge?: readonly CompiledKnowledgeComponent[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"service-wiring.d.ts","sourceRoot":"","sources":["../src/service-wiring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-wiring.d.ts","sourceRoot":"","sources":["../src/service-wiring.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,13 @@
2
2
  * Composition helpers the service calls from its (size-pinned) bootstrap files, so the thin
3
3
  * dispatch stays thin: store construction, schema setup, and route-deps assembly live here.
4
4
  */
5
- import { InMemoryKnowledgeRevisionStore, InMemorySearchBudgetStore, PostgresKnowledgeRevisionStore, PostgresSearchBudgetStore, } from '@noodle-borg/knowledge';
5
+ import { AlgoliaKnowledgeIndex, InMemoryKnowledgeRevisionStore, InMemorySearchBudgetStore, KnowledgeError, MeilisearchKnowledgeIndex, PostgresKnowledgeRevisionStore, PostgresSearchBudgetStore, } from '@noodle-borg/knowledge';
6
+ import { FirecrawlSiteFetcher, FirstPartySiteFetcher, TavilySiteFetcher, } from '@noodle-borg/knowledge-crawl';
6
7
  import { secretBoxDocumentCodec } from './codec.js';
8
+ import { InMemoryCrawlStateStore, runComponentCrawl, runDueCrawls, } from './crawl-lifecycle.js';
7
9
  import { createKnowledgeSearchExecutor } from './executor.js';
8
- import { managedGoogleFromEnv, managedSiteProvisioned, managedSiteSearchFor, } from './managed-google.js';
9
- import { createKnowledgeDeployHooks } from './publication.js';
10
+ import { PostgresCrawlStateStore } from './postgres-crawl-state.js';
11
+ import { createKnowledgeDeployHooks, KnowledgePublicationError, } from './publication.js';
10
12
  import { knowledgeSearchPortFactory } from './search-port.js';
11
13
  import { InMemoryKnowledgeStagingStore, PostgresKnowledgeStagingStore, } from './staging-store.js';
12
14
  /** In-memory stores with the identity codec — the no-persistence service default. */
@@ -15,35 +17,39 @@ export function defaultKnowledgeStores() {
15
17
  staging: new InMemoryKnowledgeStagingStore(),
16
18
  revisionStore: new InMemoryKnowledgeRevisionStore(),
17
19
  budgetStore: new InMemorySearchBudgetStore(),
20
+ crawlState: new InMemoryCrawlStateStore(),
18
21
  };
19
22
  }
20
23
  /** Durable stores sharing the service's Postgres pool and secret-box custody. */
21
- export async function createPostgresKnowledgeStores(pool, secretBox, env = process.env) {
24
+ export async function createPostgresKnowledgeStores(pool, secretBox) {
22
25
  const codec = secretBox === undefined ? undefined : secretBoxDocumentCodec(secretBox);
23
26
  const staging = new PostgresKnowledgeStagingStore(pool);
24
27
  const revisionStore = new PostgresKnowledgeRevisionStore(pool, codec);
25
28
  const budgetStore = new PostgresSearchBudgetStore(pool);
29
+ const crawlState = new PostgresCrawlStateStore(pool);
26
30
  await staging.ensureSchema();
27
31
  await revisionStore.ensureSchema();
28
32
  await budgetStore.ensureSchema();
29
- const google = managedGoogleFromEnv(env);
33
+ await crawlState.ensureSchema();
30
34
  return {
31
35
  staging,
32
36
  revisionStore,
33
37
  budgetStore,
38
+ crawlState,
34
39
  ...(codec === undefined ? {} : { codec }),
35
- ...(google === undefined ? {} : { google }),
36
40
  };
37
41
  }
38
42
  /** Budget ceilings from managed config with the ratified v0 defaults (2000 org / 1000 app). */
39
43
  export function budgetCeilingsResolver(resolveVariables) {
40
44
  return async (tenant) => {
41
45
  const variables = await resolveVariables(tenant);
42
- const org = Number(variables.NOODLE_KNOWLEDGE_SEARCH_BUDGET_ORG_MONTHLY ?? '2000');
43
- const app = Number(variables.NOODLE_KNOWLEDGE_SEARCH_BUDGET_APP_MONTHLY ?? '1000');
46
+ // Crawl-page budget (ADR 0202 amendment 2026-08-18): search on the owned index is free;
47
+ // crawled pages per month are the metered line. `0` blocks (kill-switch semantic).
48
+ const org = Number(variables.NOODLE_KNOWLEDGE_CRAWL_BUDGET_ORG_MONTHLY ?? '20000');
49
+ const app = Number(variables.NOODLE_KNOWLEDGE_CRAWL_BUDGET_APP_MONTHLY ?? '10000');
44
50
  return {
45
- org: Number.isFinite(org) ? Math.max(0, Math.floor(org)) : 2000,
46
- app: Number.isFinite(app) ? Math.max(0, Math.floor(app)) : 1000,
51
+ org: Number.isFinite(org) ? Math.max(0, Math.floor(org)) : 20000,
52
+ app: Number.isFinite(app) ? Math.max(0, Math.floor(app)) : 10000,
47
53
  };
48
54
  };
49
55
  }
@@ -56,40 +62,150 @@ export function buildKnowledgeRouteDeps(stores, resolveVariables, maxBodyBytes)
56
62
  ...(stores.codec === undefined ? {} : { codec: stores.codec }),
57
63
  };
58
64
  }
65
+ /** Map a compiled index declaration plus resolved config values onto its provider adapter. */
66
+ export function knowledgeIndexFromDeclaration(declaration, config, scope) {
67
+ return declaration.provider === 'algolia'
68
+ ? new AlgoliaKnowledgeIndex({
69
+ appId: config.appId ?? '',
70
+ apiKey: config.apiKey ?? '',
71
+ scope,
72
+ })
73
+ : new MeilisearchKnowledgeIndex({
74
+ host: config.host ?? '',
75
+ apiKey: config.apiKey ?? '',
76
+ scope,
77
+ });
78
+ }
59
79
  /**
60
80
  * One-call composition for the service: resolve stores, build route deps, and register the
61
81
  * deploy-coupled publication hooks on the registry (structurally typed; no service import).
62
82
  */
63
- export function wireKnowledge(registry, stores, resolveVariables, maxBodyBytes) {
83
+ export function wireKnowledge(registry, stores, resolveVariables, maxBodyBytes, resolveSecrets = async () => ({})) {
64
84
  const resolved = stores ?? defaultKnowledgeStores();
65
85
  const deps = buildKnowledgeRouteDeps(resolved, resolveVariables, maxBodyBytes);
66
- const google = resolved.google;
67
86
  const ceilings = budgetCeilingsResolver(resolveVariables);
68
- // Fail closed either way: without the managed Google project (or an explicit seam override) a
69
- // site() deploy must refuse at deploy time the runtime executor refuses too — never activate
70
- // a component whose declared site half can only answer nothing.
71
- const siteProvisioned = resolved.siteProvisioned ??
72
- ((tenant) => google === undefined ? Promise.resolve(false) : managedSiteProvisioned(google, tenant));
73
- const siteSearchFor = resolved.siteSearchFor ??
74
- (google === undefined
75
- ? undefined
76
- : (tenant) => managedSiteSearchFor(google, tenant));
87
+ // The managed first-party crawler needs no provisioning, so the deploy gate defaults open;
88
+ // BYO provider configuration checks replace this seam when a component declares a provider.
89
+ const siteProvisioned = resolved.siteProvisioned ?? (async () => true);
90
+ // BYO crawler binding: a declared provider resolves its config NAMES to managed values at
91
+ // crawl time; an unset reference fails the crawl closed with the exact fix command visible in
92
+ // the crawl state. Omitted declaration means the managed first-party crawler.
93
+ const resolveRef = async (tenant, ref) => {
94
+ const values = ref.kind === 'secret' ? await resolveSecrets(tenant) : await resolveVariables(tenant);
95
+ const value = values[ref.name];
96
+ if (value === undefined || value === '') {
97
+ const command = ref.kind === 'secret' ? 'secrets' : 'variables';
98
+ throw new KnowledgeError('request', `knowledge provider config ${ref.name} is not set; run: noodle ${command} set ${ref.name} --runtime cloud --scope env --org ${tenant.org} --app ${tenant.app} --env ${tenant.env}`);
99
+ }
100
+ return value;
101
+ };
102
+ // BYO index binding: a declared index resolves its config NAMES the same way. On the deploy
103
+ // path (declaration in hand) an unset reference becomes a structured publication failure; on
104
+ // the serving/lookup path the active artifact supplies the declaration for the component (or
105
+ // the owner of a `<name>#site` corpus). Omitted declaration means the managed bundled index.
106
+ const defaultIndexFor = async (scope, componentName, declaration) => {
107
+ const tenant = { org: scope.org, app: scope.app, env: scope.env };
108
+ let resolvedDeclaration = declaration;
109
+ if (resolvedDeclaration === undefined) {
110
+ const base = componentName.endsWith('#site')
111
+ ? componentName.slice(0, -'#site'.length)
112
+ : componentName;
113
+ const target = await registry.getActiveByTenant(tenant);
114
+ resolvedDeclaration = target?.served.artifact.server.knowledge?.find((candidate) => candidate.name === base)?.index;
115
+ }
116
+ if (resolvedDeclaration === undefined)
117
+ return undefined;
118
+ const config = {};
119
+ for (const [key, ref] of Object.entries(resolvedDeclaration.config)) {
120
+ try {
121
+ config[key] = await resolveRef(tenant, ref);
122
+ }
123
+ catch (error) {
124
+ if (declaration !== undefined &&
125
+ error instanceof KnowledgeError &&
126
+ error.layer === 'request') {
127
+ throw new KnowledgePublicationError([
128
+ {
129
+ code: 'knowledge_index_config_missing',
130
+ path: `knowledge.${componentName}`,
131
+ message: error.message,
132
+ },
133
+ ]);
134
+ }
135
+ throw error;
136
+ }
137
+ }
138
+ return knowledgeIndexFromDeclaration(resolvedDeclaration, config, scope);
139
+ };
77
140
  const hooks = createKnowledgeDeployHooks(resolved, {
78
141
  knowledgeEnabled: deps.knowledgeEnabled,
79
142
  siteProvisioned,
143
+ indexFor: resolved.indexFor ?? defaultIndexFor,
80
144
  });
81
- const executor = createKnowledgeSearchExecutor({
145
+ const crawlState = resolved.crawlState ?? new InMemoryCrawlStateStore();
146
+ const defaultFetcherFor = (tenant, component) => {
147
+ const crawler = component.crawler;
148
+ if (crawler === undefined)
149
+ return new FirstPartySiteFetcher();
150
+ return {
151
+ fetchSite: async (request) => {
152
+ const apiKey = await resolveRef(tenant, crawler.config.apiKey);
153
+ const fetcher = crawler.provider === 'firecrawl'
154
+ ? new FirecrawlSiteFetcher({ apiKey })
155
+ : new TavilySiteFetcher({ apiKey });
156
+ return fetcher.fetchSite(request);
157
+ },
158
+ };
159
+ };
160
+ const crawlDeps = {
82
161
  hooks,
83
- knowledgeEnabled: deps.knowledgeEnabled,
162
+ crawlState,
163
+ fetcherFor: resolved.fetcherFor ?? defaultFetcherFor,
84
164
  ...(resolved.budgetStore === undefined
85
165
  ? {}
86
166
  : { budget: { store: resolved.budgetStore, ceilings } }),
87
- ...(siteSearchFor === undefined ? {} : { siteSearchFor }),
167
+ };
168
+ const bareExecutor = createKnowledgeSearchExecutor({
169
+ hooks,
170
+ knowledgeEnabled: deps.knowledgeEnabled,
88
171
  });
89
- registry.setKnowledgeDeployHooks(hooks, knowledgeSearchPortFactory(executor));
172
+ // Refresh-on-traffic: serving a sites component also checks whether its refresh is due and
173
+ // kicks the crawl in the background — the visitor's answer never waits on it.
174
+ const executor = {
175
+ enabled: bareExecutor.enabled,
176
+ search: async (tenant, component, request) => {
177
+ const hits = await bareExecutor.search(tenant, component, request);
178
+ if (component.sites.length > 0) {
179
+ void runDueCrawls(crawlDeps, async () => [{ tenant, component }], Date.now()).catch(() => undefined);
180
+ }
181
+ return hits;
182
+ },
183
+ };
184
+ // Crawl-on-deploy: after a publication activates, kick the first (or refreshed) crawl for
185
+ // every sites-declaring component — freshness needs no traffic. Fire-and-forget: the deploy
186
+ // must not wait on a crawl, and the outcome lands in the crawl state.
187
+ const crawlingHooks = {
188
+ ...hooks,
189
+ activate: async (plan, deploymentId) => {
190
+ await hooks.activate(plan, deploymentId);
191
+ for (const planned of plan.components) {
192
+ if (planned.component.sites.length === 0)
193
+ continue;
194
+ const tenant = {
195
+ org: planned.scope.org,
196
+ app: planned.scope.app,
197
+ env: planned.scope.env,
198
+ };
199
+ void runComponentCrawl(crawlDeps, tenant, planned.component).catch(() => undefined);
200
+ }
201
+ },
202
+ };
203
+ registry.setKnowledgeDeployHooks(crawlingHooks, knowledgeSearchPortFactory(executor));
90
204
  const status = {
91
205
  revisionStore: resolved.revisionStore,
92
206
  knowledgeEnabled: deps.knowledgeEnabled,
207
+ crawlState: (tenant, componentName) => crawlState.get(tenant, componentName),
208
+ refresh: (tenant, component) => runComponentCrawl(crawlDeps, tenant, component),
93
209
  // Mirrors the fail-closed deploy gate above: without the managed project every site() is
94
210
  // 'missing', so the operator sees why a site deploy refuses instead of a silent absence.
95
211
  siteProvisioningState: async (tenant) => (await siteProvisioned(tenant)) ? 'ready' : 'missing',
@@ -124,6 +240,13 @@ export function wireKnowledge(registry, stores, resolveVariables, maxBodyBytes)
124
240
  return { components, deploymentId: server?.deploymentId ?? '' };
125
241
  },
126
242
  };
127
- return { ...deps, status, executor };
243
+ return {
244
+ ...deps,
245
+ status,
246
+ executor,
247
+ // On-demand crawl for the operator surface (`noodle knowledge refresh`, PR 6 route).
248
+ refreshComponent: (tenant, component) => runComponentCrawl(crawlDeps, tenant, component),
249
+ crawlState,
250
+ };
128
251
  }
129
252
  //# sourceMappingURL=service-wiring.js.map