@noodleseed/one 0.120.1 → 0.122.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.
- package/dist/commands/auth-ops.d.ts.map +1 -1
- package/dist/commands/auth-ops.js +1 -0
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/catalog-data-bootstrap-authoring.d.ts.map +1 -1
- package/dist/commands/catalog-data-bootstrap-authoring.js +98 -189
- package/dist/commands/catalog-data-bootstrap-authoring.js.map +1 -1
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/mcp-apps.js +1 -0
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +25 -5
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +5 -2
- package/dist/commands/session.js.map +1 -1
- package/dist/delegated-token-exchange-preflight.d.ts.map +1 -1
- package/dist/delegated-token-exchange-preflight.js +1 -0
- package/dist/delegated-token-exchange-preflight.js.map +1 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +8 -131
- package/dist/deploy.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/local-compile.d.ts.map +1 -1
- package/dist/local-compile.js +1 -0
- package/dist/local-compile.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +8 -6
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +5 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js +4 -4
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js +9 -9
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-ownership.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-ownership.js +5 -3
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-ownership.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +20 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +6 -2
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.d.ts +2 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.js +11 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.js.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-packaging-types.d.ts +16 -3
- package/node_modules/@noodle-borg/agent-packaging/dist/host-packaging-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-packaging-validation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-packaging-validation.js +13 -4
- package/node_modules/@noodle-borg/agent-packaging/dist/host-packaging-validation.js.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/agent-packaging/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/index.js +1 -0
- package/node_modules/@noodle-borg/agent-packaging/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/product-skill-validation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/product-skill-validation.js +4 -3
- package/node_modules/@noodle-borg/agent-packaging/dist/product-skill-validation.js.map +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +4 -3
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/distribution.d.ts +17 -3
- package/node_modules/@noodle-borg/authoring/dist/distribution.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/distribution.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js +1 -0
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/knowledge.d.ts +70 -0
- package/node_modules/@noodle-borg/authoring/dist/knowledge.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/knowledge.js +50 -0
- package/node_modules/@noodle-borg/authoring/dist/knowledge.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/load-authored.d.ts +24 -0
- package/node_modules/@noodle-borg/authoring/dist/load-authored.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/load-authored.js +141 -0
- package/node_modules/@noodle-borg/authoring/dist/load-authored.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +3 -3
- package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +3 -0
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +4 -0
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/package.json +5 -0
- package/node_modules/@noodle-borg/brand-kit/dist/index.d.ts +8 -0
- package/node_modules/@noodle-borg/brand-kit/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/brand-kit/dist/index.js +8 -0
- package/node_modules/@noodle-borg/brand-kit/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/{compiler/dist/widget-palette.d.ts → brand-kit/dist/palette.d.ts} +1 -1
- package/node_modules/@noodle-borg/brand-kit/dist/palette.d.ts.map +1 -0
- package/node_modules/@noodle-borg/{compiler/dist/widget-palette.js → brand-kit/dist/palette.js} +1 -1
- package/node_modules/@noodle-borg/brand-kit/dist/palette.js.map +1 -0
- package/node_modules/@noodle-borg/{compiler/dist/widget-ui-style.d.ts → brand-kit/dist/ui-style.d.ts} +1 -1
- package/node_modules/@noodle-borg/brand-kit/dist/ui-style.d.ts.map +1 -0
- package/node_modules/@noodle-borg/{compiler/dist/widget-ui-style.js → brand-kit/dist/ui-style.js} +1 -1
- package/node_modules/@noodle-borg/brand-kit/dist/ui-style.js.map +1 -0
- package/node_modules/@noodle-borg/brand-kit/package.json +28 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.d.ts +2 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.js +2 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +3 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/branding.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/branding.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/branding.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts +8 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +8 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +36 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +7 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts +4 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.js +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-emit.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/package.json +3 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts +30 -9
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js +21 -6
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts +2 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/port.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js +3 -3
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.js +10 -9
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts +4 -3
- package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/results.js +5 -19
- package/node_modules/@noodle-borg/developer-mcp/dist/results.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/server.js +3 -3
- package/node_modules/@noodle-borg/developer-mcp/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js +6 -25
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts +16 -3
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js +22 -19
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js +3 -9
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js +15 -16
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js +9 -17
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js +7 -10
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js.map +1 -1
- package/node_modules/@noodle-borg/knowledge/dist/bm25.d.ts +14 -0
- package/node_modules/@noodle-borg/knowledge/dist/bm25.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/bm25.js +133 -0
- package/node_modules/@noodle-borg/knowledge/dist/bm25.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts +61 -0
- package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/budget.js +0 -0
- package/node_modules/@noodle-borg/knowledge/dist/budget.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/compile.d.ts +52 -0
- package/node_modules/@noodle-borg/knowledge/dist/compile.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/compile.js +250 -0
- package/node_modules/@noodle-borg/knowledge/dist/compile.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/conformance.d.ts +21 -0
- package/node_modules/@noodle-borg/knowledge/dist/conformance.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/conformance.js +225 -0
- package/node_modules/@noodle-borg/knowledge/dist/conformance.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/fakes.d.ts +23 -0
- package/node_modules/@noodle-borg/knowledge/dist/fakes.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/fakes.js +141 -0
- package/node_modules/@noodle-borg/knowledge/dist/fakes.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts +27 -0
- package/node_modules/@noodle-borg/knowledge/dist/fusion.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/fusion.js +119 -0
- package/node_modules/@noodle-borg/knowledge/dist/fusion.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts +49 -0
- package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js +235 -0
- package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/hits.d.ts +31 -0
- package/node_modules/@noodle-borg/knowledge/dist/hits.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/hits.js +75 -0
- package/node_modules/@noodle-borg/knowledge/dist/hits.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/index.d.ts +26 -0
- package/node_modules/@noodle-borg/knowledge/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/index.js +26 -0
- package/node_modules/@noodle-borg/knowledge/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/ir.d.ts +53 -0
- package/node_modules/@noodle-borg/knowledge/dist/ir.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/ir.js +87 -0
- package/node_modules/@noodle-borg/knowledge/dist/ir.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/limits.d.ts +19 -0
- package/node_modules/@noodle-borg/knowledge/dist/limits.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/limits.js +19 -0
- package/node_modules/@noodle-borg/knowledge/dist/limits.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.d.ts +42 -0
- package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.js +45 -0
- package/node_modules/@noodle-borg/knowledge/dist/manifest-schema.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/ports.d.ts +56 -0
- package/node_modules/@noodle-borg/knowledge/dist/ports.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/ports.js +13 -0
- package/node_modules/@noodle-borg/knowledge/dist/ports.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts +22 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js +102 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts +35 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js +260 -0
- package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts +86 -0
- package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/knowledge/dist/revision-store.js +167 -0
- package/node_modules/@noodle-borg/knowledge/dist/revision-store.js.map +1 -0
- package/node_modules/@noodle-borg/knowledge/package.json +36 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +2 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-render.d.ts +4 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-render.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-render.js +147 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-render.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-types.d.ts +14 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-types.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-types.js +2 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-types.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-validation.d.ts +10 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-validation.js +152 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector-validation.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector.d.ts +7 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector.js +24 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/anthropic-connector.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-distribution-command.d.ts +6 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-distribution-command.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-distribution-command.js +260 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-distribution-command.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-render.d.ts +3 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-render.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-render.js +89 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-render.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-validation.d.ts +3 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-validation.js +16 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin-validation.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin.d.ts +5 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin.js +15 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/claude-plugin.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/command.d.ts +3 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/command.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/command.js +3 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/command.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/distribution-command-support.d.ts +37 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/distribution-command-support.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/distribution-command-support.js +60 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/distribution-command-support.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/index.d.ts +2 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/index.js +2 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-command.d.ts +3 -28
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-command.d.ts.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-command.js +23 -64
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-command.js.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-render.d.ts.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-render.js +3 -97
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-render.js.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-validation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-validation.js +19 -8
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-plugin-validation.js.map +1 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.d.ts +5 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.js +147 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/public-url.d.ts +3 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/public-url.d.ts.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/public-url.js +22 -0
- package/node_modules/@noodle-borg/plugin-distribution/dist/public-url.js.map +1 -0
- package/node_modules/@noodle-borg/plugin-distribution/package.json +2 -2
- package/node_modules/@noodle-borg/protocol/dist/handlers/resources.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/handlers/resources.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/handlers/resources.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/handlers/resources.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/response-observation.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/package.json +1 -0
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts +6 -4
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js +13 -16
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +66 -47
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +15 -16
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -3
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -2
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +0 -52
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/modules/host.d.ts +2 -6
- package/node_modules/@noodle-borg/service/dist/modules/host.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/modules/host.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +0 -2
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +0 -16
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts +3 -28
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js +8 -67
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts +0 -4
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js +1 -14
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +45 -36
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +20 -229
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js +70 -36
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts +17 -6
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +98 -26
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +0 -2
- package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +1 -21
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/analytics.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/analytics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +6 -27
- package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js +5 -8
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +7 -6
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +7 -6
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +2 -7
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +7 -20
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -8
- package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +22 -26
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service-config.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/service-config.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service-config.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +1 -24
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +21 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +2 -1
- package/node_modules/@noodle-borg/service-modules/dist/index.d.ts +9 -0
- package/node_modules/@noodle-borg/service-modules/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service-modules/dist/index.js +9 -0
- package/node_modules/@noodle-borg/service-modules/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/service-modules/dist/loaded-module.d.ts +8 -0
- package/node_modules/@noodle-borg/service-modules/dist/loaded-module.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service-modules/dist/loaded-module.js +2 -0
- package/node_modules/@noodle-borg/service-modules/dist/loaded-module.js.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/modules → service-modules/dist}/loader.d.ts +1 -1
- package/node_modules/@noodle-borg/service-modules/dist/loader.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service-modules/dist/loader.js.map +1 -0
- package/node_modules/@noodle-borg/service-modules/package.json +32 -0
- package/node_modules/@noodle-borg/uri-template/dist/index.d.ts +7 -0
- package/node_modules/@noodle-borg/uri-template/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/uri-template/dist/index.js +7 -0
- package/node_modules/@noodle-borg/uri-template/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/uri-template/package.json +28 -0
- package/node_modules/@noodleseed/assistant/package.json +42 -16
- package/package.json +6 -2
- package/node_modules/@noodle-borg/compiler/dist/widget-palette.d.ts.map +0 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-palette.js.map +0 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts.map +0 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/bootstrap.d.ts +0 -7
- package/node_modules/@noodle-borg/service/dist/feedback-operations/bootstrap.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/bootstrap.js +0 -23
- package/node_modules/@noodle-borg/service/dist/feedback-operations/bootstrap.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/config.d.ts +0 -12
- package/node_modules/@noodle-borg/service/dist/feedback-operations/config.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/config.js +0 -47
- package/node_modules/@noodle-borg/service/dist/feedback-operations/config.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/contracts.d.ts +0 -24
- package/node_modules/@noodle-borg/service/dist/feedback-operations/contracts.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/contracts.js +0 -2
- package/node_modules/@noodle-borg/service/dist/feedback-operations/contracts.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/delivery-worker.d.ts +0 -29
- package/node_modules/@noodle-borg/service/dist/feedback-operations/delivery-worker.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/delivery-worker.js +0 -263
- package/node_modules/@noodle-borg/service/dist/feedback-operations/delivery-worker.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/linear-client.d.ts +0 -39
- package/node_modules/@noodle-borg/service/dist/feedback-operations/linear-client.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/linear-client.js +0 -142
- package/node_modules/@noodle-borg/service/dist/feedback-operations/linear-client.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/reporter-email.d.ts +0 -33
- package/node_modules/@noodle-borg/service/dist/feedback-operations/reporter-email.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/reporter-email.js +0 -142
- package/node_modules/@noodle-borg/service/dist/feedback-operations/reporter-email.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-card.d.ts +0 -138
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-card.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-card.js +0 -199
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-card.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-client.d.ts +0 -52
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-client.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-client.js +0 -103
- package/node_modules/@noodle-borg/service/dist/feedback-operations/slack-client.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/github/feedback-issues.d.ts +0 -44
- package/node_modules/@noodle-borg/service/dist/github/feedback-issues.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/github/feedback-issues.js +0 -117
- package/node_modules/@noodle-borg/service/dist/github/feedback-issues.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/modules/loader.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/modules/loader.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback-operations-dispatch.d.ts +0 -10
- package/node_modules/@noodle-borg/service/dist/routes/feedback-operations-dispatch.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback-operations-dispatch.js +0 -54
- package/node_modules/@noodle-borg/service/dist/routes/feedback-operations-dispatch.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback.d.ts +0 -30
- package/node_modules/@noodle-borg/service/dist/routes/feedback.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback.js +0 -233
- package/node_modules/@noodle-borg/service/dist/routes/feedback.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/linear-feedback-webhook.d.ts +0 -17
- package/node_modules/@noodle-borg/service/dist/routes/linear-feedback-webhook.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/linear-feedback-webhook.js +0 -141
- package/node_modules/@noodle-borg/service/dist/routes/linear-feedback-webhook.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/slack-feedback-actions.d.ts +0 -15
- package/node_modules/@noodle-borg/service/dist/routes/slack-feedback-actions.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/slack-feedback-actions.js +0 -135
- package/node_modules/@noodle-borg/service/dist/routes/slack-feedback-actions.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/feedback-operations.d.ts +0 -188
- package/node_modules/@noodle-borg/service/dist/store/feedback-operations.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/feedback-operations.js +0 -489
- package/node_modules/@noodle-borg/service/dist/store/feedback-operations.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-feedback-operations.d.ts +0 -35
- package/node_modules/@noodle-borg/service/dist/store/postgres-feedback-operations.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-feedback-operations.js +0 -172
- package/node_modules/@noodle-borg/service/dist/store/postgres-feedback-operations.js.map +0 -1
- /package/node_modules/@noodle-borg/{service/dist/modules → service-modules/dist}/loader.js +0 -0
- /package/node_modules/@noodle-borg/{compiler → uri-template}/dist/uri-template.d.ts +0 -0
- /package/node_modules/@noodle-borg/{compiler → uri-template}/dist/uri-template.d.ts.map +0 -0
- /package/node_modules/@noodle-borg/{compiler → uri-template}/dist/uri-template.js +0 -0
- /package/node_modules/@noodle-borg/{compiler → uri-template}/dist/uri-template.js.map +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural v0 knowledge limits (ADR 0202 fixed table, amended for the managed-bundled model).
|
|
3
|
+
* These are ceilings, not defaults: operators and app code may narrow them, never raise them.
|
|
4
|
+
* One owner for every bound so a declared limit nobody reads is unrepresentable.
|
|
5
|
+
*/
|
|
6
|
+
/** UTF-8 `.md` / `.txt` only; regular, non-symlinked, inside project root. */
|
|
7
|
+
export declare const ALLOWED_DOCUMENT_EXTENSIONS: readonly [".md", ".txt"];
|
|
8
|
+
export declare const MAX_DOCUMENTS_PER_COMPONENT = 100;
|
|
9
|
+
export declare const MAX_DOCUMENT_BYTES: number;
|
|
10
|
+
export declare const MAX_COMPONENT_TOTAL_BYTES: number;
|
|
11
|
+
export declare const MIN_QUERY_CHARS = 1;
|
|
12
|
+
export declare const MAX_QUERY_CHARS = 2000;
|
|
13
|
+
export declare const MIN_RESULT_LIMIT = 1;
|
|
14
|
+
export declare const MAX_RESULT_LIMIT = 20;
|
|
15
|
+
export declare const DEFAULT_RESULT_LIMIT = 8;
|
|
16
|
+
export declare const MAX_EXCERPT_CHARS = 2000;
|
|
17
|
+
/** Reciprocal-rank fusion constant; equal weight across sources (ADR 0202). */
|
|
18
|
+
export declare const RRF_K = 60;
|
|
19
|
+
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,0BAA2B,CAAC;AAEpE,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAC9C,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAE1D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,+EAA+E;AAC/E,eAAO,MAAM,KAAK,KAAK,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural v0 knowledge limits (ADR 0202 fixed table, amended for the managed-bundled model).
|
|
3
|
+
* These are ceilings, not defaults: operators and app code may narrow them, never raise them.
|
|
4
|
+
* One owner for every bound so a declared limit nobody reads is unrepresentable.
|
|
5
|
+
*/
|
|
6
|
+
/** UTF-8 `.md` / `.txt` only; regular, non-symlinked, inside project root. */
|
|
7
|
+
export const ALLOWED_DOCUMENT_EXTENSIONS = ['.md', '.txt'];
|
|
8
|
+
export const MAX_DOCUMENTS_PER_COMPONENT = 100;
|
|
9
|
+
export const MAX_DOCUMENT_BYTES = 1024 * 1024;
|
|
10
|
+
export const MAX_COMPONENT_TOTAL_BYTES = 25 * 1024 * 1024;
|
|
11
|
+
export const MIN_QUERY_CHARS = 1;
|
|
12
|
+
export const MAX_QUERY_CHARS = 2000;
|
|
13
|
+
export const MIN_RESULT_LIMIT = 1;
|
|
14
|
+
export const MAX_RESULT_LIMIT = 20;
|
|
15
|
+
export const DEFAULT_RESULT_LIMIT = 8;
|
|
16
|
+
export const MAX_EXCERPT_CHARS = 2000;
|
|
17
|
+
/** Reciprocal-rank fusion constant; equal weight across sources (ADR 0202). */
|
|
18
|
+
export const RRF_K = 60;
|
|
19
|
+
//# sourceMappingURL=limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core v2 manifest fragment for knowledge components (ADR 0202). Owned here so the pinned
|
|
3
|
+
* compiler only wires the surface; the shapes are the single source both the manifest schema
|
|
4
|
+
* and the compile pass consume.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
/**
|
|
8
|
+
* One deploy-coupled knowledge document. Authoring form carries `path`/`title`; the compile
|
|
9
|
+
* pass reads the file, verifies the structural limits, and fills `sha256`/`bytes` — the
|
|
10
|
+
* compiled form never carries document contents.
|
|
11
|
+
*/
|
|
12
|
+
export declare const knowledgeDocumentManifestSchema: z.ZodObject<{
|
|
13
|
+
path: z.ZodString;
|
|
14
|
+
title: z.ZodString;
|
|
15
|
+
sourceUrl: z.ZodOptional<z.ZodURL>;
|
|
16
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
17
|
+
bytes: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
}, z.core.$strict>;
|
|
19
|
+
export declare const knowledgeSiteManifestSchema: z.ZodObject<{
|
|
20
|
+
origin: z.ZodURL;
|
|
21
|
+
include: z.ZodArray<z.ZodString>;
|
|
22
|
+
}, z.core.$strict>;
|
|
23
|
+
export declare const knowledgeComponentManifestSchema: z.ZodObject<{
|
|
24
|
+
name: z.ZodString;
|
|
25
|
+
title: z.ZodString;
|
|
26
|
+
description: z.ZodString;
|
|
27
|
+
documents: z.ZodArray<z.ZodObject<{
|
|
28
|
+
path: z.ZodString;
|
|
29
|
+
title: z.ZodString;
|
|
30
|
+
sourceUrl: z.ZodOptional<z.ZodURL>;
|
|
31
|
+
sha256: z.ZodOptional<z.ZodString>;
|
|
32
|
+
bytes: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
sites: z.ZodArray<z.ZodObject<{
|
|
35
|
+
origin: z.ZodURL;
|
|
36
|
+
include: z.ZodArray<z.ZodString>;
|
|
37
|
+
}, z.core.$strict>>;
|
|
38
|
+
}, z.core.$strict>;
|
|
39
|
+
export type KnowledgeDocumentManifest = z.infer<typeof knowledgeDocumentManifestSchema>;
|
|
40
|
+
export type KnowledgeSiteManifest = z.infer<typeof knowledgeSiteManifestSchema>;
|
|
41
|
+
export type KnowledgeComponentManifest = z.infer<typeof knowledgeComponentManifestSchema>;
|
|
42
|
+
//# sourceMappingURL=manifest-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.d.ts","sourceRoot":"","sources":["../src/manifest-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AACH,eAAO,MAAM,+BAA+B;;;;;;kBAiBjC,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;kBAO7B,CAAC;AAEZ,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;kBAQlC,CAAC;AAEZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core v2 manifest fragment for knowledge components (ADR 0202). Owned here so the pinned
|
|
3
|
+
* compiler only wires the surface; the shapes are the single source both the manifest schema
|
|
4
|
+
* and the compile pass consume.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
const httpsUrlSchema = z.url().regex(/^https:\/\//, 'must use https');
|
|
8
|
+
/**
|
|
9
|
+
* One deploy-coupled knowledge document. Authoring form carries `path`/`title`; the compile
|
|
10
|
+
* pass reads the file, verifies the structural limits, and fills `sha256`/`bytes` — the
|
|
11
|
+
* compiled form never carries document contents.
|
|
12
|
+
*/
|
|
13
|
+
export const knowledgeDocumentManifestSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
path: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.refine((value) => !value.startsWith('/') && !value.split('/').includes('..'), 'document path must stay inside the project root'),
|
|
19
|
+
title: z.string().trim().min(1),
|
|
20
|
+
sourceUrl: httpsUrlSchema.optional(),
|
|
21
|
+
sha256: z
|
|
22
|
+
.string()
|
|
23
|
+
.regex(/^[0-9a-f]{64}$/, 'must be a lowercase hex SHA-256')
|
|
24
|
+
.optional(),
|
|
25
|
+
bytes: z.number().int().positive().optional(),
|
|
26
|
+
})
|
|
27
|
+
.strict();
|
|
28
|
+
export const knowledgeSiteManifestSchema = z
|
|
29
|
+
.object({
|
|
30
|
+
origin: httpsUrlSchema.refine((value) => !value.slice('https://'.length).includes('/'), {
|
|
31
|
+
message: 'site origin must not contain a path',
|
|
32
|
+
}),
|
|
33
|
+
include: z.array(z.string().min(1)).min(1),
|
|
34
|
+
})
|
|
35
|
+
.strict();
|
|
36
|
+
export const knowledgeComponentManifestSchema = z
|
|
37
|
+
.object({
|
|
38
|
+
name: z.string().regex(/^[a-z][a-z0-9_]*$/, 'must be lowercase snake-case'),
|
|
39
|
+
title: z.string().trim().min(1),
|
|
40
|
+
description: z.string().min(1),
|
|
41
|
+
documents: z.array(knowledgeDocumentManifestSchema).max(100),
|
|
42
|
+
sites: z.array(knowledgeSiteManifestSchema),
|
|
43
|
+
})
|
|
44
|
+
.strict();
|
|
45
|
+
//# sourceMappingURL=manifest-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../src/manifest-schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EACrE,iDAAiD,CAClD;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,KAAK,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;SAC1D,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtF,OAAO,EAAE,qCAAqC;KAC/C,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC;KAC9C,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CAC5C,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-neutral knowledge ports (ADR 0202). A fake and a production implementation pass
|
|
3
|
+
* the same conformance suites; provider names, scores, and answers never cross these seams.
|
|
4
|
+
*/
|
|
5
|
+
import type { SearchHit, SearchRequest } from './hits.js';
|
|
6
|
+
import type { AudiencePredicate, DocumentDescriptor, KnowledgeScope, SitePolicy } from './ir.js';
|
|
7
|
+
/** Which provider layer failed, so operators see the accountable surface, never content. */
|
|
8
|
+
export type KnowledgeErrorLayer = 'request' | 'predicate' | 'provider' | 'store' | 'not-found';
|
|
9
|
+
export declare class KnowledgeError extends Error {
|
|
10
|
+
readonly layer: KnowledgeErrorLayer;
|
|
11
|
+
constructor(layer: KnowledgeErrorLayer, message: string, options?: {
|
|
12
|
+
cause?: unknown;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
/** One staged document: its compiled descriptor plus the UTF-8 content the provider will index. */
|
|
16
|
+
export interface StagedDocument {
|
|
17
|
+
readonly descriptor: DocumentDescriptor;
|
|
18
|
+
readonly text: string;
|
|
19
|
+
}
|
|
20
|
+
export interface KnowledgeRevision {
|
|
21
|
+
/** Opaque provider/adapter-local revision identifier pinned by the deploy record. */
|
|
22
|
+
readonly revisionId: string;
|
|
23
|
+
readonly scope: KnowledgeScope;
|
|
24
|
+
readonly componentName: string;
|
|
25
|
+
readonly documents: readonly DocumentDescriptor[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Publishes and queries deployment-versioned text documents. Implementations must:
|
|
29
|
+
* stage complete revisions, verify a positive typed-predicate query before activation,
|
|
30
|
+
* activate atomically, and delete only unreferenced revisions.
|
|
31
|
+
*/
|
|
32
|
+
export interface KnowledgeIndex {
|
|
33
|
+
/** Stage a complete replacement revision and return its identifier. Idempotent on content hash. */
|
|
34
|
+
stage(scope: KnowledgeScope, componentName: string, documents: readonly StagedDocument[]): Promise<KnowledgeRevision>;
|
|
35
|
+
/**
|
|
36
|
+
* Prove the staged revision answers a positive filtered query for the given predicate —
|
|
37
|
+
* the launch gate that catches a knowledge base that silently returns nothing.
|
|
38
|
+
*/
|
|
39
|
+
verify(revisionId: string, predicate: AudiencePredicate): Promise<boolean>;
|
|
40
|
+
/** Make the staged revision the one searches read. Fails if not staged. */
|
|
41
|
+
activate(revisionId: string): Promise<void>;
|
|
42
|
+
/** Query the active revision for the scope/component. */
|
|
43
|
+
search(scope: KnowledgeScope, componentName: string, request: SearchRequest): Promise<readonly SearchHit[]>;
|
|
44
|
+
/** Delete only a revision no activation or deployment pin references. */
|
|
45
|
+
delete(revisionId: string): Promise<void>;
|
|
46
|
+
/** The revision searches currently read, if one is active. */
|
|
47
|
+
activeRevision(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Queries provider-managed live public websites. The mandatory predicate must carry
|
|
51
|
+
* `audience: public`; results are exact-origin/path-approved only.
|
|
52
|
+
*/
|
|
53
|
+
export interface SiteSearch {
|
|
54
|
+
search(policy: SitePolicy, predicate: AudiencePredicate, request: SearchRequest): Promise<readonly SearchHit[]>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjG,4FAA4F;AAC5F,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/F,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;gBAExB,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAKvF;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,qFAAqF;IACrF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,mGAAmG;IACnG,KAAK,CACH,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,yDAAyD;IACzD,MAAM,CACJ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;IACjC,yEAAyE;IACzE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,8DAA8D;IAC9D,cAAc,CACZ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,CACJ,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-neutral knowledge ports (ADR 0202). A fake and a production implementation pass
|
|
3
|
+
* the same conformance suites; provider names, scores, and answers never cross these seams.
|
|
4
|
+
*/
|
|
5
|
+
export class KnowledgeError extends Error {
|
|
6
|
+
layer;
|
|
7
|
+
constructor(layer, message, options) {
|
|
8
|
+
super(message, options);
|
|
9
|
+
this.name = 'KnowledgeError';
|
|
10
|
+
this.layer = layer;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,KAAK,CAAsB;IAEpC,YAAY,KAA0B,EAAE,OAAe,EAAE,OAA6B;QACpF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable search-budget store: Postgres parity for the org-pooled monthly ceiling with
|
|
3
|
+
* per-app sub-caps (ADR 0202 as amended). Consume is one transaction over two counter rows
|
|
4
|
+
* (the app row and the org-total row `app = ''`), locked in a fixed order, so concurrent
|
|
5
|
+
* requests can never over-grant and a refusal spends nothing at either granularity.
|
|
6
|
+
*/
|
|
7
|
+
import type { Pool } from 'pg';
|
|
8
|
+
import { type SearchBudgetCeilings, type SearchBudgetDecision, type SearchBudgetScope, type SearchBudgetState, type SearchBudgetStore } from './budget.js';
|
|
9
|
+
export declare class PostgresSearchBudgetStore implements SearchBudgetStore {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(pool: Pool, now?: () => Date);
|
|
12
|
+
ensureSchema(): Promise<void>;
|
|
13
|
+
consume(scope: SearchBudgetScope, count: number, ceilings: SearchBudgetCeilings): Promise<SearchBudgetDecision>;
|
|
14
|
+
peek(scope: SearchBudgetScope, ceilings: SearchBudgetCeilings): Promise<SearchBudgetState>;
|
|
15
|
+
/** Ensure the counter row exists, lock it, and return its consumed value. */
|
|
16
|
+
private lockCounter;
|
|
17
|
+
private addToCounter;
|
|
18
|
+
private state;
|
|
19
|
+
private orgKey;
|
|
20
|
+
private appKey;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=postgres-budget-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-budget-store.d.ts","sourceRoot":"","sources":["../src/postgres-budget-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAKrB,qBAAa,yBAA0B,YAAW,iBAAiB;;gBAIrD,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAM,IAAuB;IAKpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B,OAAO,CACX,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,CAAC;IAgC1B,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgBhG,6EAA6E;YAC/D,WAAW;YAqBX,YAAY;IAc1B,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { budgetWindow, } from './budget.js';
|
|
2
|
+
/** The org-total row's app key; real app ids are never empty. */
|
|
3
|
+
const ORG_TOTAL_APP = '';
|
|
4
|
+
export class PostgresSearchBudgetStore {
|
|
5
|
+
#pool;
|
|
6
|
+
#now;
|
|
7
|
+
constructor(pool, now = () => new Date()) {
|
|
8
|
+
this.#pool = pool;
|
|
9
|
+
this.#now = now;
|
|
10
|
+
}
|
|
11
|
+
async ensureSchema() {
|
|
12
|
+
await this.#pool.query(`
|
|
13
|
+
CREATE TABLE IF NOT EXISTS knowledge_search_budgets (
|
|
14
|
+
org text NOT NULL,
|
|
15
|
+
app text NOT NULL,
|
|
16
|
+
year integer NOT NULL,
|
|
17
|
+
month integer NOT NULL,
|
|
18
|
+
consumed bigint NOT NULL DEFAULT 0,
|
|
19
|
+
PRIMARY KEY (org, app, year, month)
|
|
20
|
+
)
|
|
21
|
+
`);
|
|
22
|
+
}
|
|
23
|
+
async consume(scope, count, ceilings) {
|
|
24
|
+
const window = budgetWindow(this.#now);
|
|
25
|
+
if (ceilings.app <= 0 || ceilings.org <= 0) {
|
|
26
|
+
// Kill switch: block before touching the database.
|
|
27
|
+
const state = await this.peek(scope, ceilings);
|
|
28
|
+
return { granted: false, state };
|
|
29
|
+
}
|
|
30
|
+
const client = await this.#pool.connect();
|
|
31
|
+
try {
|
|
32
|
+
await client.query('BEGIN');
|
|
33
|
+
const appConsumed = await this.lockCounter(client, scope.org, scope.app, window);
|
|
34
|
+
const orgConsumed = await this.lockCounter(client, scope.org, ORG_TOTAL_APP, window);
|
|
35
|
+
const granted = appConsumed + count <= ceilings.app && orgConsumed + count <= ceilings.org;
|
|
36
|
+
if (granted) {
|
|
37
|
+
await this.addToCounter(client, scope.org, scope.app, window, count);
|
|
38
|
+
await this.addToCounter(client, scope.org, ORG_TOTAL_APP, window, count);
|
|
39
|
+
await client.query('COMMIT');
|
|
40
|
+
return {
|
|
41
|
+
granted,
|
|
42
|
+
state: this.state(scope, window, ceilings, orgConsumed + count, appConsumed + count),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
await client.query('ROLLBACK');
|
|
46
|
+
return { granted, state: this.state(scope, window, ceilings, orgConsumed, appConsumed) };
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
await client.query('ROLLBACK').catch(() => undefined);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
client.release();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async peek(scope, ceilings) {
|
|
57
|
+
const window = budgetWindow(this.#now);
|
|
58
|
+
const result = await this.#pool.query(`SELECT app, consumed FROM knowledge_search_budgets
|
|
59
|
+
WHERE org = $1 AND app IN ($2, $3) AND year = $4 AND month = $5`, [this.orgKey(scope), this.appKey(scope), ORG_TOTAL_APP, window.year, window.month]);
|
|
60
|
+
let orgConsumed = 0;
|
|
61
|
+
let appConsumed = 0;
|
|
62
|
+
for (const row of result.rows) {
|
|
63
|
+
if (row.app === ORG_TOTAL_APP)
|
|
64
|
+
orgConsumed = Number(row.consumed);
|
|
65
|
+
else
|
|
66
|
+
appConsumed = Number(row.consumed);
|
|
67
|
+
}
|
|
68
|
+
return this.state(scope, window, ceilings, orgConsumed, appConsumed);
|
|
69
|
+
}
|
|
70
|
+
/** Ensure the counter row exists, lock it, and return its consumed value. */
|
|
71
|
+
async lockCounter(client, org, app, window) {
|
|
72
|
+
await client.query(`INSERT INTO knowledge_search_budgets (org, app, year, month, consumed)
|
|
73
|
+
VALUES ($1, $2, $3, $4, 0)
|
|
74
|
+
ON CONFLICT (org, app, year, month) DO NOTHING`, [org.toLowerCase(), app.toLowerCase(), window.year, window.month]);
|
|
75
|
+
const locked = await client.query(`SELECT consumed FROM knowledge_search_budgets
|
|
76
|
+
WHERE org = $1 AND app = $2 AND year = $3 AND month = $4
|
|
77
|
+
FOR UPDATE`, [org.toLowerCase(), app.toLowerCase(), window.year, window.month]);
|
|
78
|
+
return Number(locked.rows[0]?.consumed ?? 0);
|
|
79
|
+
}
|
|
80
|
+
async addToCounter(client, org, app, window, count) {
|
|
81
|
+
await client.query(`UPDATE knowledge_search_budgets SET consumed = consumed + $5
|
|
82
|
+
WHERE org = $1 AND app = $2 AND year = $3 AND month = $4`, [org.toLowerCase(), app.toLowerCase(), window.year, window.month, count]);
|
|
83
|
+
}
|
|
84
|
+
state(scope, window, ceilings, orgConsumed, appConsumed) {
|
|
85
|
+
return {
|
|
86
|
+
org: scope.org,
|
|
87
|
+
app: scope.app,
|
|
88
|
+
...window,
|
|
89
|
+
orgConsumed,
|
|
90
|
+
appConsumed,
|
|
91
|
+
orgCeiling: ceilings.org,
|
|
92
|
+
appCeiling: ceilings.app,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
orgKey(scope) {
|
|
96
|
+
return scope.org.toLowerCase();
|
|
97
|
+
}
|
|
98
|
+
appKey(scope) {
|
|
99
|
+
return scope.app.toLowerCase();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=postgres-budget-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-budget-store.js","sourceRoot":"","sources":["../src/postgres-budget-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable knowledge revision store: Postgres parity for the deploy-coupled publication
|
|
3
|
+
* transaction (ADR 0202). Every state transition the in-memory store makes in one process,
|
|
4
|
+
* this store makes atomically across every service instance:
|
|
5
|
+
*
|
|
6
|
+
* - stage is idempotent on (scope, content_hash);
|
|
7
|
+
* - activate retires the previous active revision and pins the deployment in one transaction;
|
|
8
|
+
* - rollback reselects exactly the revision the target deployment pinned;
|
|
9
|
+
* - GC removes only revisions that are neither active nor pinned;
|
|
10
|
+
* - leases serialize publication per component/scope with a bounded timeout.
|
|
11
|
+
*/
|
|
12
|
+
import type { Pool } from 'pg';
|
|
13
|
+
import type { KnowledgeScope } from './ir.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
|
+
export declare class PostgresKnowledgeRevisionStore implements KnowledgeRevisionStore {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(pool: Pool, codec?: DocumentTextCodec);
|
|
19
|
+
ensureSchema(): Promise<void>;
|
|
20
|
+
stage(input: StageRevisionInput): Promise<KnowledgeRevision>;
|
|
21
|
+
acquireLease(scope: KnowledgeScope, componentName: string, holder: string): Promise<LeaseTicket>;
|
|
22
|
+
releaseLease(ticket: LeaseTicket): Promise<void>;
|
|
23
|
+
activate(scope: KnowledgeScope, componentName: string, revisionId: string, deploymentId: string): Promise<void>;
|
|
24
|
+
pin(revisionId: string, deploymentId: string): Promise<void>;
|
|
25
|
+
rollback(deploymentId: string): Promise<KnowledgeRevision | undefined>;
|
|
26
|
+
collectGarbage(): Promise<number>;
|
|
27
|
+
active(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
|
|
28
|
+
record(revisionId: string): Promise<RevisionRecord | undefined>;
|
|
29
|
+
delete(revisionId: string): Promise<void>;
|
|
30
|
+
stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
|
|
31
|
+
documents(revisionId: string): Promise<readonly StagedDocument[]>;
|
|
32
|
+
private rowScope;
|
|
33
|
+
private toRevision;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=postgres-revision-store.d.ts.map
|
|
@@ -0,0 +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,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;IAyC7B,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;IAYzC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCvF,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IA6BvE,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQnB"}
|