@noodleseed/one 0.45.0 → 0.47.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 +28 -4
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/billing-enforcement-ops.d.ts +2 -0
- package/dist/commands/billing-enforcement-ops.d.ts.map +1 -0
- package/dist/commands/billing-enforcement-ops.js +312 -0
- package/dist/commands/billing-enforcement-ops.js.map +1 -0
- package/dist/commands/billing-metering-ops.d.ts +2 -0
- package/dist/commands/billing-metering-ops.d.ts.map +1 -0
- package/dist/commands/billing-metering-ops.js +128 -0
- package/dist/commands/billing-metering-ops.js.map +1 -0
- package/dist/commands/billing-metering-validation-ops.d.ts +2 -0
- package/dist/commands/billing-metering-validation-ops.d.ts.map +1 -0
- package/dist/commands/billing-metering-validation-ops.js +186 -0
- package/dist/commands/billing-metering-validation-ops.js.map +1 -0
- package/dist/commands/billing-ops.d.ts.map +1 -1
- package/dist/commands/billing-ops.js +6 -0
- package/dist/commands/billing-ops.js.map +1 -1
- package/dist/commands/catalog-data-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-resources.js +14 -3
- package/dist/commands/catalog-data-resources.js.map +1 -1
- package/dist/commands/catalog-render.d.ts.map +1 -1
- package/dist/commands/catalog-render.js +7 -5
- package/dist/commands/catalog-render.js.map +1 -1
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +10 -1
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/deploy-output.d.ts.map +1 -1
- package/dist/commands/deploy-output.js +4 -0
- package/dist/commands/deploy-output.js.map +1 -1
- package/dist/commands/deploy-version-resolution.d.ts +1 -0
- package/dist/commands/deploy-version-resolution.d.ts.map +1 -1
- package/dist/commands/deploy-version-resolution.js +8 -0
- package/dist/commands/deploy-version-resolution.js.map +1 -1
- package/dist/commands/mcp-apps-chatgpt.d.ts +7 -0
- package/dist/commands/mcp-apps-chatgpt.d.ts.map +1 -0
- package/dist/commands/mcp-apps-chatgpt.js +143 -0
- package/dist/commands/mcp-apps-chatgpt.js.map +1 -0
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/mcp-apps.js +2 -114
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/deploy-payload-size.d.ts +3 -0
- package/dist/deploy-payload-size.d.ts.map +1 -0
- package/dist/deploy-payload-size.js +29 -0
- package/dist/deploy-payload-size.js.map +1 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +16 -8
- package/dist/deploy.js.map +1 -1
- package/dist/saas-scaffold-template.js +1 -1
- package/dist/saas-scaffold-template.js.map +1 -1
- package/dist/sdk-version-skew.d.ts +3 -0
- package/dist/sdk-version-skew.d.ts.map +1 -0
- package/dist/sdk-version-skew.js +34 -0
- package/dist/sdk-version-skew.js.map +1 -0
- package/dist/widget-scaffold-template.d.ts.map +1 -1
- package/dist/widget-scaffold-template.js +4 -2
- package/dist/widget-scaffold-template.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +6 -4
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +9 -0
- 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/server.d.ts +7 -0
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +2 -0
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +10 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +6 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +4 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +52 -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 +17 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +1 -0
- package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +18 -0
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +3 -0
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +12 -3
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.js +7 -3
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.js +67 -3
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.d.ts +96 -0
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.js +198 -0
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts +25 -2
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.js +51 -5
- package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.d.ts +77 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.js +202 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.js +93 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.d.ts +76 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.js +233 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.d.ts +89 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.js +191 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.d.ts +99 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.js +136 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.js +24 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.d.ts +75 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.js +127 -0
- package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js +107 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js +341 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.js +9 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.js +102 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts +41 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js +289 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.d.ts +16 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.js +126 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.d.ts +33 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js +436 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.d.ts +26 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.js +146 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.js +42 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.js +44 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.js +189 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js +342 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.d.ts +27 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js +304 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.js +224 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts +33 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js +173 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.js +50 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.d.ts +34 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.js +157 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.d.ts +56 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.js +264 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js +414 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.d.ts +43 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.js +321 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.d.ts +10 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.js +13 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.js +248 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.js +240 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.js +140 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres.js +3 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.js +19 -0
- package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts +9 -4
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js +34 -95
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts +14 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js +87 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-observer.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-observer.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-observer.js +26 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-observer.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +16 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.js +15 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js +15 -0
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/http-util.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/http-util.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/http-util.js +1 -1
- package/node_modules/@noodle-borg/service/dist/http-util.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -7
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -6
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +3 -0
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/persistence-options.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/persistence-options.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/persistence-options.js +22 -0
- package/node_modules/@noodle-borg/service/dist/persistence-options.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +6 -2
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.js +145 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.js +78 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.js +108 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +99 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js +35 -0
- package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js.map +1 -0
- 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 +3 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +93 -0
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/serve-options.js +2 -0
- package/node_modules/@noodle-borg/service/dist/serve-options.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/serve.d.ts +2 -92
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +64 -59
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +51 -0
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +10 -21
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js +7 -1
- package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts +6 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js +11 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +3 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +3 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Pool, PoolClient } from 'pg';
|
|
2
|
+
export interface BillingMeterPartitionRange {
|
|
3
|
+
readonly start: string;
|
|
4
|
+
readonly end: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function billingMeterPartitionHorizonExists(database: Pool | PoolClient, checkedAt: Date): Promise<boolean>;
|
|
7
|
+
export declare function parseBillingMeterPartitionRange(bound: string): BillingMeterPartitionRange | undefined;
|
|
8
|
+
//# sourceMappingURL=postgres-meter-partition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-partition.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-partition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAI3C,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GACZ,0BAA0B,GAAG,SAAS,CAMxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BILLING_METER_PARTITION_HORIZON_MONTHS } from './meter-readiness.js';
|
|
2
|
+
import { billingMeterPartitionName } from './postgres-meter-schema.js';
|
|
3
|
+
export async function billingMeterPartitionHorizonExists(database, checkedAt) {
|
|
4
|
+
const expected = Array.from({ length: BILLING_METER_PARTITION_HORIZON_MONTHS + 1 }, (_, offset) => {
|
|
5
|
+
const start = new Date(Date.UTC(checkedAt.getUTCFullYear(), checkedAt.getUTCMonth() + offset, 1));
|
|
6
|
+
const end = new Date(Date.UTC(checkedAt.getUTCFullYear(), checkedAt.getUTCMonth() + offset + 1, 1));
|
|
7
|
+
return { name: billingMeterPartitionName(start), start, end };
|
|
8
|
+
});
|
|
9
|
+
const result = await database.query(`SELECT child.relname AS name,
|
|
10
|
+
pg_get_expr(child.relpartbound, child.oid) AS bound
|
|
11
|
+
FROM pg_inherits
|
|
12
|
+
JOIN pg_class AS parent ON parent.oid = pg_inherits.inhparent
|
|
13
|
+
JOIN pg_class AS child ON child.oid = pg_inherits.inhrelid
|
|
14
|
+
WHERE parent.oid = 'billing_meter_usage_events'::regclass
|
|
15
|
+
AND child.relname = ANY($1::text[])
|
|
16
|
+
ORDER BY child.relname`, [expected.map(({ name }) => name)]);
|
|
17
|
+
if (result.rows.length !== expected.length)
|
|
18
|
+
return false;
|
|
19
|
+
const actual = new Map(result.rows.map((row) => [row.name, row.bound]));
|
|
20
|
+
return expected.every(({ name, start, end }) => partitionBoundMatches(actual.get(name), start, end));
|
|
21
|
+
}
|
|
22
|
+
export function parseBillingMeterPartitionRange(bound) {
|
|
23
|
+
const match = /^FOR VALUES FROM \('([^']+)'\) TO \('([^']+)'\)$/.exec(bound);
|
|
24
|
+
if (match === null)
|
|
25
|
+
return undefined;
|
|
26
|
+
const start = normalizeBound(match[1]);
|
|
27
|
+
const end = normalizeBound(match[2]);
|
|
28
|
+
return start === undefined || end === undefined ? undefined : { start, end };
|
|
29
|
+
}
|
|
30
|
+
function normalizeBound(value) {
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
const parsed = new Date(value);
|
|
34
|
+
return Number.isFinite(parsed.getTime()) ? parsed.toISOString() : undefined;
|
|
35
|
+
}
|
|
36
|
+
function partitionBoundMatches(bound, start, end) {
|
|
37
|
+
if (bound === undefined)
|
|
38
|
+
return false;
|
|
39
|
+
const range = parseBillingMeterPartitionRange(bound);
|
|
40
|
+
return range?.start === start.toISOString() && range.end === end.toISOString();
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=postgres-meter-partition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-partition.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-partition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PoolClient } from 'pg';
|
|
2
|
+
/**
|
|
3
|
+
* Checks the immutable storage prerequisites inside the same transaction that
|
|
4
|
+
* prepares a validation epoch. A false result aborts preparation cleanly;
|
|
5
|
+
* database errors are deliberately allowed to roll the transaction back.
|
|
6
|
+
*/
|
|
7
|
+
export declare function checkBillingMeterValidationFoundationPreflight(client: PoolClient): Promise<boolean>;
|
|
8
|
+
//# sourceMappingURL=postgres-meter-prepare-preflight.d.ts.map
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-prepare-preflight.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-prepare-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAerC;;;;GAIG;AACH,wBAAsB,8CAA8C,CAClE,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,OAAO,CAAC,CAqClB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BILLING_METER_AGGREGATE_RETENTION_MONTHS, BILLING_METER_EXACT_KEY_TOMBSTONE_RETENTION_DAYS, BILLING_METER_RECEIPT_RETENTION_DAYS, } from './meter-readiness.js';
|
|
2
|
+
import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
|
|
3
|
+
import { billingMeterPartitionHorizonExists } from './postgres-meter-partition.js';
|
|
4
|
+
/**
|
|
5
|
+
* Checks the immutable storage prerequisites inside the same transaction that
|
|
6
|
+
* prepares a validation epoch. A false result aborts preparation cleanly;
|
|
7
|
+
* database errors are deliberately allowed to roll the transaction back.
|
|
8
|
+
*/
|
|
9
|
+
export async function checkBillingMeterValidationFoundationPreflight(client) {
|
|
10
|
+
const checkedAt = await readBillingMeterTransactionTime(client);
|
|
11
|
+
const retention = await client.query(`
|
|
12
|
+
SELECT receipt_retention_days, tombstone_retention_days, aggregate_retention_months
|
|
13
|
+
FROM billing_meter_retention_policy
|
|
14
|
+
WHERE singleton = true
|
|
15
|
+
`);
|
|
16
|
+
const policy = retention.rows[0];
|
|
17
|
+
if (retention.rows.length !== 1 ||
|
|
18
|
+
policy?.receipt_retention_days !== BILLING_METER_RECEIPT_RETENTION_DAYS ||
|
|
19
|
+
policy.tombstone_retention_days !== BILLING_METER_EXACT_KEY_TOMBSTONE_RETENTION_DAYS ||
|
|
20
|
+
policy.aggregate_retention_months !== BILLING_METER_AGGREGATE_RETENTION_MONTHS) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const attribution = await client.query(`
|
|
24
|
+
SELECT count(*)::text AS incomplete
|
|
25
|
+
FROM orgs AS org
|
|
26
|
+
WHERE org.slug <> 'local'
|
|
27
|
+
AND NOT EXISTS (
|
|
28
|
+
SELECT 1
|
|
29
|
+
FROM org_billing_links AS link
|
|
30
|
+
JOIN billing_account_active_snapshots AS active
|
|
31
|
+
ON active.billing_account_id = link.billing_account_id
|
|
32
|
+
JOIN billing_entitlement_snapshots AS snapshot
|
|
33
|
+
ON snapshot.billing_account_id = active.billing_account_id
|
|
34
|
+
AND snapshot.id = active.snapshot_id
|
|
35
|
+
WHERE link.org_slug = org.slug
|
|
36
|
+
AND link.active
|
|
37
|
+
AND snapshot.verification_status = 'verified'
|
|
38
|
+
)
|
|
39
|
+
`);
|
|
40
|
+
if (attribution.rows[0]?.incomplete !== '0')
|
|
41
|
+
return false;
|
|
42
|
+
return billingMeterPartitionHorizonExists(client, new Date(checkedAt));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=postgres-meter-prepare-preflight.js.map
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-prepare-preflight.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-prepare-preflight.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wCAAwC,EACxC,gDAAgD,EAChD,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAQnF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8CAA8C,CAClE,MAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAqB;;;;GAIxD,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IACE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAC3B,MAAM,EAAE,sBAAsB,KAAK,oCAAoC;QACvE,MAAM,CAAC,wBAAwB,KAAK,gDAAgD;QACpF,MAAM,CAAC,0BAA0B,KAAK,wCAAwC,EAC9E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAkC;;;;;;;;;;;;;;;;GAgBvE,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAE1D,OAAO,kCAAkC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Pool, PoolClient } from 'pg';
|
|
2
|
+
import { type BillingMeterHealthSignal, type BillingMeterLiveRuntimeExpectation, type BillingMeterPreparedEpochHealthIdentity } from './meter-readiness-health.js';
|
|
3
|
+
export interface BillingMeterLiveReadinessSignals {
|
|
4
|
+
readonly validationMirror: BillingMeterHealthSignal;
|
|
5
|
+
readonly writerHealth: BillingMeterHealthSignal;
|
|
6
|
+
readonly schedulerHealth: BillingMeterHealthSignal;
|
|
7
|
+
}
|
|
8
|
+
export declare function readBillingMeterLiveReadinessSignals(database: Pool | PoolClient, input: {
|
|
9
|
+
readonly checkedAt: string;
|
|
10
|
+
readonly epoch: BillingMeterPreparedEpochHealthIdentity;
|
|
11
|
+
readonly expectation: BillingMeterLiveRuntimeExpectation;
|
|
12
|
+
}): Promise<BillingMeterLiveReadinessSignals>;
|
|
13
|
+
//# sourceMappingURL=postgres-meter-readiness-live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-readiness-live.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-readiness-live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACvC,KAAK,uCAAuC,EAO7C,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;CACpD;AAcD,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,IAAI,GAAG,UAAU,EAC3B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,uCAAuC,CAAC;IACxD,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;CAC1D,GACA,OAAO,CAAC,gCAAgC,CAAC,CA8G3C"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { emptyBillingMeterHealthCounters, evaluateBillingMeterSchedulerHealth, evaluateBillingMeterValidationMirror, evaluateBillingMeterWriterHealth, } from './meter-readiness-health.js';
|
|
2
|
+
import { BILLING_METER_SCHEDULER_CYCLE_TIMEOUT_MS } from './postgres-meter-scheduler.js';
|
|
3
|
+
export async function readBillingMeterLiveReadinessSignals(database, input) {
|
|
4
|
+
const receipt = await database.query(`SELECT max(last_writer_observed_at) AS latest_receipt_at
|
|
5
|
+
FROM billing_meter_windows
|
|
6
|
+
WHERE epoch_id = $1 AND writer_observed_calls > 0`, [input.epoch.id]);
|
|
7
|
+
const sessions = await database.query(`SELECT
|
|
8
|
+
session.session_id, session.release_sha, session.key_generation,
|
|
9
|
+
session.retry_identity_version, session.writer_contract_version,
|
|
10
|
+
session.last_heartbeat_at, session.closed_at, session.clean_stop,
|
|
11
|
+
baseline.report_version AS baseline_report_version,
|
|
12
|
+
baseline.armed_at AS baseline_armed_at,
|
|
13
|
+
session.report_version,
|
|
14
|
+
baseline.observed_calls AS baseline_observed_calls,
|
|
15
|
+
baseline.attempted_writes AS baseline_attempted_writes,
|
|
16
|
+
baseline.recorded_writes AS baseline_recorded_writes,
|
|
17
|
+
baseline.duplicate_writes AS baseline_duplicate_writes,
|
|
18
|
+
baseline.final_failures AS baseline_final_failures,
|
|
19
|
+
baseline.no_epoch_skips AS baseline_no_epoch_skips,
|
|
20
|
+
baseline.circuit_open_skips AS baseline_circuit_open_skips,
|
|
21
|
+
baseline.saturation_skips AS baseline_saturation_skips,
|
|
22
|
+
baseline.derivation_failures AS baseline_derivation_failures,
|
|
23
|
+
baseline.epoch_identity_failures AS baseline_epoch_identity_failures,
|
|
24
|
+
baseline.timeout_unknown_outcomes AS baseline_timeout_unknown_outcomes,
|
|
25
|
+
baseline.in_flight_writes AS baseline_in_flight_writes,
|
|
26
|
+
session.observed_calls, session.attempted_writes, session.recorded_writes,
|
|
27
|
+
session.duplicate_writes, session.final_failures, session.no_epoch_skips,
|
|
28
|
+
session.circuit_open_skips, session.saturation_skips, session.derivation_failures,
|
|
29
|
+
session.epoch_identity_failures, session.timeout_unknown_outcomes,
|
|
30
|
+
session.in_flight_writes
|
|
31
|
+
FROM billing_meter_writer_epoch_baselines AS baseline
|
|
32
|
+
JOIN billing_meter_writer_sessions AS session ON session.session_id = baseline.session_id
|
|
33
|
+
WHERE baseline.epoch_id = $1
|
|
34
|
+
ORDER BY session.session_id`, [input.epoch.id]);
|
|
35
|
+
const unbaselined = await database.query(`SELECT count(*)::text AS count
|
|
36
|
+
FROM billing_meter_writer_sessions AS session
|
|
37
|
+
WHERE (
|
|
38
|
+
session.started_at >= $2 OR
|
|
39
|
+
session.last_heartbeat_at >= $2 OR
|
|
40
|
+
session.closed_at >= $2
|
|
41
|
+
)
|
|
42
|
+
AND NOT EXISTS (
|
|
43
|
+
SELECT 1
|
|
44
|
+
FROM billing_meter_writer_epoch_baselines AS baseline
|
|
45
|
+
WHERE baseline.epoch_id = $1 AND baseline.session_id = session.session_id
|
|
46
|
+
)`, [input.epoch.id, input.epoch.preparedAt]);
|
|
47
|
+
const rollup = await database.query(`SELECT unclean_stop_count,
|
|
48
|
+
observed_calls_delta AS observed_calls,
|
|
49
|
+
attempted_writes_delta AS attempted_writes,
|
|
50
|
+
recorded_writes_delta AS recorded_writes,
|
|
51
|
+
duplicate_writes_delta AS duplicate_writes,
|
|
52
|
+
final_failures_delta AS final_failures,
|
|
53
|
+
no_epoch_skips_delta AS no_epoch_skips,
|
|
54
|
+
circuit_open_skips_delta AS circuit_open_skips,
|
|
55
|
+
saturation_skips_delta AS saturation_skips,
|
|
56
|
+
derivation_failures_delta AS derivation_failures,
|
|
57
|
+
epoch_identity_failures_delta AS epoch_identity_failures,
|
|
58
|
+
timeout_unknown_outcomes_delta AS timeout_unknown_outcomes,
|
|
59
|
+
in_flight_writes
|
|
60
|
+
FROM billing_meter_writer_epoch_rollups
|
|
61
|
+
WHERE epoch_id = $1`, [input.epoch.id]);
|
|
62
|
+
const staleRunning = await database.query(`SELECT count(*)::text AS count
|
|
63
|
+
FROM billing_meter_scheduler_runs
|
|
64
|
+
WHERE status = 'running'
|
|
65
|
+
AND started_at <= $1::timestamptz - ($2::bigint * interval '1 millisecond')`, [input.checkedAt, BILLING_METER_SCHEDULER_CYCLE_TIMEOUT_MS]);
|
|
66
|
+
const scheduler = await database.query(`
|
|
67
|
+
SELECT status, release_sha, contract_version, cpu_always_allocated, started_at,
|
|
68
|
+
completed_at, windows_failed, backlog_detected, maintenance_run_id
|
|
69
|
+
FROM billing_meter_scheduler_runs
|
|
70
|
+
WHERE completed_at IS NOT NULL
|
|
71
|
+
ORDER BY completed_at DESC, run_sequence DESC
|
|
72
|
+
LIMIT 1
|
|
73
|
+
`);
|
|
74
|
+
const latestReceiptAt = optionalInstant(receipt.rows[0]?.latest_receipt_at ?? null);
|
|
75
|
+
const writerSessions = sessions.rows.map(parseWriterSession);
|
|
76
|
+
const compacted = rollup.rows[0];
|
|
77
|
+
const latestScheduler = parseScheduler(scheduler.rows[0]);
|
|
78
|
+
return {
|
|
79
|
+
validationMirror: evaluateBillingMeterValidationMirror({
|
|
80
|
+
...input,
|
|
81
|
+
latestReceiptAt,
|
|
82
|
+
}),
|
|
83
|
+
writerHealth: evaluateBillingMeterWriterHealth({
|
|
84
|
+
...input,
|
|
85
|
+
unbaselinedSessionCount: safeCount(unbaselined.rows[0]?.count),
|
|
86
|
+
rollup: compacted === undefined ? emptyBillingMeterHealthCounters() : parseCounters(compacted, ''),
|
|
87
|
+
uncleanRollupStops: compacted === undefined ? 0n : bigintValue(compacted.unclean_stop_count),
|
|
88
|
+
sessions: writerSessions,
|
|
89
|
+
}),
|
|
90
|
+
schedulerHealth: evaluateBillingMeterSchedulerHealth({
|
|
91
|
+
...input,
|
|
92
|
+
staleRunningCount: safeCount(staleRunning.rows[0]?.count),
|
|
93
|
+
...(latestScheduler === undefined ? {} : { latestCompleted: latestScheduler }),
|
|
94
|
+
}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function parseWriterSession(row) {
|
|
98
|
+
return {
|
|
99
|
+
sessionId: stringValue(row.session_id),
|
|
100
|
+
releaseSha: stringValue(row.release_sha),
|
|
101
|
+
keyGeneration: stringValue(row.key_generation),
|
|
102
|
+
retryIdentityVersion: safeNumber(row.retry_identity_version),
|
|
103
|
+
writerContractVersion: safeNumber(row.writer_contract_version),
|
|
104
|
+
lastHeartbeatAt: requiredInstant(row.last_heartbeat_at),
|
|
105
|
+
closedAt: optionalInstant(row.closed_at),
|
|
106
|
+
cleanStop: booleanValue(row.clean_stop),
|
|
107
|
+
baselineArmedAt: optionalInstant(row.baseline_armed_at),
|
|
108
|
+
baselineReportVersion: bigintValue(row.baseline_report_version),
|
|
109
|
+
reportVersion: bigintValue(row.report_version),
|
|
110
|
+
baseline: parseCounters(row, 'baseline_'),
|
|
111
|
+
current: parseCounters(row, ''),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function parseCounters(row, prefix) {
|
|
115
|
+
return {
|
|
116
|
+
observedCalls: bigintValue(row[`${prefix}observed_calls`]),
|
|
117
|
+
attemptedWrites: bigintValue(row[`${prefix}attempted_writes`]),
|
|
118
|
+
recordedWrites: bigintValue(row[`${prefix}recorded_writes`]),
|
|
119
|
+
duplicateWrites: bigintValue(row[`${prefix}duplicate_writes`]),
|
|
120
|
+
finalFailures: bigintValue(row[`${prefix}final_failures`]),
|
|
121
|
+
noEpochSkips: bigintValue(row[`${prefix}no_epoch_skips`]),
|
|
122
|
+
circuitOpenSkips: bigintValue(row[`${prefix}circuit_open_skips`]),
|
|
123
|
+
saturationSkips: bigintValue(row[`${prefix}saturation_skips`]),
|
|
124
|
+
derivationFailures: bigintValue(row[`${prefix}derivation_failures`]),
|
|
125
|
+
epochIdentityFailures: bigintValue(row[`${prefix}epoch_identity_failures`]),
|
|
126
|
+
timeoutUnknownOutcomes: bigintValue(row[`${prefix}timeout_unknown_outcomes`]),
|
|
127
|
+
inFlightWrites: bigintValue(row[`${prefix}in_flight_writes`]),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function parseScheduler(row) {
|
|
131
|
+
if (row === undefined)
|
|
132
|
+
return undefined;
|
|
133
|
+
return {
|
|
134
|
+
status: row.status,
|
|
135
|
+
releaseSha: row.release_sha,
|
|
136
|
+
contractVersion: safeNumber(row.contract_version),
|
|
137
|
+
cpuAlwaysAllocated: row.cpu_always_allocated,
|
|
138
|
+
startedAt: requiredInstant(row.started_at),
|
|
139
|
+
completedAt: requiredInstant(row.completed_at),
|
|
140
|
+
windowsFailed: safeNumber(row.windows_failed),
|
|
141
|
+
backlogDetected: row.backlog_detected,
|
|
142
|
+
maintenanceRunId: row.maintenance_run_id,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function safeCount(value) {
|
|
146
|
+
const count = Number(value);
|
|
147
|
+
if (!Number.isSafeInteger(count) || count < 0) {
|
|
148
|
+
throw new Error('billing meter health count is invalid');
|
|
149
|
+
}
|
|
150
|
+
return count;
|
|
151
|
+
}
|
|
152
|
+
function safeNumber(value) {
|
|
153
|
+
return safeCount(value);
|
|
154
|
+
}
|
|
155
|
+
function bigintValue(value) {
|
|
156
|
+
if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'bigint') {
|
|
157
|
+
throw new Error('billing meter health counter is invalid');
|
|
158
|
+
}
|
|
159
|
+
const count = BigInt(value);
|
|
160
|
+
if (count < 0n)
|
|
161
|
+
throw new Error('billing meter health counter is invalid');
|
|
162
|
+
return count;
|
|
163
|
+
}
|
|
164
|
+
function stringValue(value) {
|
|
165
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
166
|
+
throw new Error('billing meter health identity is invalid');
|
|
167
|
+
}
|
|
168
|
+
return value;
|
|
169
|
+
}
|
|
170
|
+
function booleanValue(value) {
|
|
171
|
+
if (typeof value !== 'boolean')
|
|
172
|
+
throw new Error('billing meter health boolean is invalid');
|
|
173
|
+
return value;
|
|
174
|
+
}
|
|
175
|
+
function requiredInstant(value) {
|
|
176
|
+
const instant = optionalInstant(value);
|
|
177
|
+
if (instant === null)
|
|
178
|
+
throw new Error('billing meter health timestamp is invalid');
|
|
179
|
+
return instant;
|
|
180
|
+
}
|
|
181
|
+
function optionalInstant(value) {
|
|
182
|
+
if (value === null || value === undefined)
|
|
183
|
+
return null;
|
|
184
|
+
const date = value instanceof Date ? value : new Date(stringValue(value));
|
|
185
|
+
if (!Number.isFinite(date.getTime()))
|
|
186
|
+
throw new Error('billing meter health timestamp is invalid');
|
|
187
|
+
return date.toISOString();
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=postgres-meter-readiness-live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-readiness-live.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-readiness-live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
import { type BillingMeterReadinessReport, type BillingMeterReadinessStore } from './meter-readiness.js';
|
|
3
|
+
import type { BillingMeterLiveRuntimeExpectation } from './meter-readiness-health.js';
|
|
4
|
+
export { type BillingMeterMaintenanceResult, runBillingMeterMaintenance, } from './postgres-meter-maintenance.js';
|
|
5
|
+
export { type BillingMeterReconciliationResult, reconcileBillingMeterWindow, } from './postgres-meter-reconciliation.js';
|
|
6
|
+
export interface PostgresBillingMeterReadinessStoreOptions {
|
|
7
|
+
/** One-way marker returned by deriveBillingMeterKeyGeneration; never the raw HMAC key. */
|
|
8
|
+
readonly keyGeneration?: string;
|
|
9
|
+
readonly evidenceFreshnessMs?: number;
|
|
10
|
+
/** Present only when the fail-open live validation mirror and scheduler are intentionally enabled. */
|
|
11
|
+
readonly validationRuntime?: BillingMeterLiveRuntimeExpectation;
|
|
12
|
+
}
|
|
13
|
+
export declare class PostgresBillingMeterReadinessStore implements BillingMeterReadinessStore {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(pool: Pool, options?: PostgresBillingMeterReadinessStoreOptions);
|
|
16
|
+
getMeterReadiness(): Promise<BillingMeterReadinessReport>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=postgres-meter-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-meter-readiness.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,EAQL,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAGhC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,kCAAkC,EAEnC,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EACL,KAAK,6BAA6B,EAClC,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,gCAAgC,EACrC,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,yCAAyC;IACxD,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,sGAAsG;IACtG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,kCAAkC,CAAC;CACjE;AA4CD,qBAAa,kCAAmC,YAAW,0BAA0B;;gBAMvE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,yCAA8C;IAUzE,iBAAiB,IAAI,OAAO,CAAC,2BAA2B,CAAC;CAoPhE"}
|