@noodleseed/one 0.43.0 → 0.45.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/billing-read-ops.d.ts.map +1 -1
- package/dist/commands/billing-read-ops.js +11 -10
- package/dist/commands/billing-read-ops.js.map +1 -1
- package/dist/commands/billing-read-view.d.ts +50 -0
- package/dist/commands/billing-read-view.d.ts.map +1 -0
- package/dist/commands/billing-read-view.js +69 -0
- package/dist/commands/billing-read-view.js.map +1 -0
- package/dist/commands/widget-quality-audit.d.ts +1 -1
- package/dist/commands/widget-quality-audit.d.ts.map +1 -1
- package/dist/commands/widget-quality-audit.js +11 -4
- package/dist/commands/widget-quality-audit.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.js +1 -1
- 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 +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.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 +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +2 -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 -0
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +5 -5
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/widget-limits.d.ts +10 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-limits.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-limits.js +12 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-limits.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.d.ts +5 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.js +40 -0
- package/node_modules/@noodle-borg/compiler/dist/widget-size-validation.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.js +3 -0
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +15 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +26 -2
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +2 -2
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.js +2 -1
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts +4 -4
- package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js +8 -4
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +13 -11
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/execute.js +18 -57
- package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts +3 -1
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js +2 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts +3 -3
- package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/interactive.js +7 -4
- package/node_modules/@noodle-borg/runtime/dist/interactive.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result-meta.d.ts +8 -0
- package/node_modules/@noodle-borg/runtime/dist/result-meta.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/result-meta.js +46 -0
- package/node_modules/@noodle-borg/runtime/dist/result-meta.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.d.ts +20 -0
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.js +35 -0
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-usage.d.ts +21 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-usage.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-usage.js +74 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory-usage.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts +10 -1
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +110 -0
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/integration.js +20 -0
- package/node_modules/@noodle-borg/service/dist/billing/integration.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 +6 -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 +66 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-usage.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-usage.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-usage.js +284 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-usage.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/production-footprint.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/billing/production-footprint.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/production-footprint.js +24 -0
- package/node_modules/@noodle-borg/service/dist/billing/production-footprint.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts +146 -26
- package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/read-contract.js +64 -18
- package/node_modules/@noodle-borg/service/dist/billing/read-contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js +177 -0
- package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-store.d.ts +126 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-store.js +111 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-store.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-window.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-window.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-window.js +36 -0
- package/node_modules/@noodle-borg/service/dist/billing/usage-window.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +2 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +2 -0
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +6 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +8 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-targets.js +2 -0
- package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing-read.js +111 -10
- package/node_modules/@noodle-borg/service/dist/routes/billing-read.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +2 -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.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +10 -1
- package/node_modules/@noodle-borg/service/dist/serve.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 +10 -14
- 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 +4 -1
- package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js +6 -0
- package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts +1 -1
- 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 +3 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +3 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts +9 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +32 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +6 -6
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +7 -0
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +9 -12
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts +3 -0
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts.map +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.js +13 -0
- package/node_modules/@noodle-borg/transport-http/dist/public-routing.js.map +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.d.ts +27 -0
- package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.js +35 -0
- package/node_modules/@noodle-borg/transport-http/dist/tool-dispatch.js.map +1 -0
- package/package.json +1 -1
|
@@ -7,9 +7,10 @@ export { executePreparedTool, prepareToolForConfirmation, resumeToolPreparation,
|
|
|
7
7
|
export { InMemoryConnector, InMemoryConnectorRegistry, } from './connector/in-memory.js';
|
|
8
8
|
export { ConnectorInvocationError } from './connector/types.js';
|
|
9
9
|
export { ExpressionEvalError, evaluateCondition, evaluateValue, } from './eval/evaluate.js';
|
|
10
|
-
export { executePrompt, executeResource, executeTool,
|
|
10
|
+
export { executePrompt, executeResource, executeTool, } from './execute.js';
|
|
11
11
|
export { executeToolInteractive, resumeTool } from './interactive.js';
|
|
12
12
|
export { AllowAllPolicy } from './policy/allow-all.js';
|
|
13
13
|
export { isConfirmationRequired, isInputRequired, isInputRequiredForConfirmation, } from './result.js';
|
|
14
|
+
export { splitResultMeta } from './result-meta.js';
|
|
14
15
|
export { assertNoSecretValue, assertSchemaValue, COMPLETE_STATE_OPERATION, createStateConnector, InMemoryStateHandleStore, PATCH_STATE_OPERATION, READ_STATE_OPERATION, STATE_CONNECTOR_ID, STATE_CONNECTOR_VERSION, STATE_OPERATION_SIGNATURES, StateConnector, } from './state-handles.js';
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAKL,SAAS,EACT,kBAAkB,EAElB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAGL,0BAA0B,GAK3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAG1B,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAEL,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAKL,SAAS,EACT,kBAAkB,EAElB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAGL,0BAA0B,GAK3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAG1B,MAAM,0BAA0B,CAAC;AAWlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAEL,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAUL,sBAAsB,EACtB,eAAe,EACf,8BAA8B,GAK/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,GAMf,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RuntimeArtifact } from '@noodle-borg/compiler';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ExecuteToolDeps } from './execute.js';
|
|
3
3
|
import type { ElicitationResponse, InteractiveExecutionResult, ToolContinuation } from './result.js';
|
|
4
4
|
/** Execute a tool until it completes, fails, or reaches an `elicit` step. */
|
|
5
|
-
export declare function executeToolInteractive(artifact: RuntimeArtifact, toolName: string, input: unknown, deps:
|
|
5
|
+
export declare function executeToolInteractive(artifact: RuntimeArtifact, toolName: string, input: unknown, deps: ExecuteToolDeps): Promise<InteractiveExecutionResult>;
|
|
6
6
|
/** Resume one server-held continuation with the user's reviewed response. */
|
|
7
|
-
export declare function resumeTool(artifact: RuntimeArtifact, continuation: ToolContinuation, response: ElicitationResponse, deps:
|
|
7
|
+
export declare function resumeTool(artifact: RuntimeArtifact, continuation: ToolContinuation, response: ElicitationResponse, deps: ExecuteToolDeps): Promise<InteractiveExecutionResult>;
|
|
8
8
|
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EAEL,KAAK,eAAe,EAMrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,mBAAmB,EAGnB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAMrB,6EAA6E;AAC7E,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,0BAA0B,CAAC,CAerC;AAED,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,0BAA0B,CAAC,CAgCrC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { validateElicitationContent } from './elicitation-response.js';
|
|
2
2
|
import { ExpressionEvalError, evaluateCondition } from './eval/evaluate.js';
|
|
3
|
-
import {
|
|
3
|
+
import { createHost, evalExprMap, resolveEnv, runFulfilment, runOperation, scopeFor, } from './execute.js';
|
|
4
4
|
import { AllowAllPolicy } from './policy/allow-all.js';
|
|
5
|
+
import { attachResultMeta, splitResultMeta } from './result-meta.js';
|
|
6
|
+
import { latchToolDispatchAdmission } from './tool-dispatch.js';
|
|
5
7
|
/** Execute a tool until it completes, fails, or reaches an `elicit` step. */
|
|
6
8
|
export async function executeToolInteractive(artifact, toolName, input, deps) {
|
|
7
9
|
if (artifact.resolution !== 'resolved') {
|
|
@@ -11,7 +13,7 @@ export async function executeToolInteractive(artifact, toolName, input, deps) {
|
|
|
11
13
|
if (!tool)
|
|
12
14
|
return interactiveFail('unknown_tool', `no tool named "${toolName}"`);
|
|
13
15
|
if (tool.fulfilment.kind !== 'flow' || !tool.fulfilment.steps.some((s) => s.kind === 'elicit')) {
|
|
14
|
-
return toInteractive(await runFulfilment(tool.fulfilment, input, toolName, deps));
|
|
16
|
+
return toInteractive(await runFulfilment(tool.fulfilment, input, toolName, deps, deps.beforeDispatch));
|
|
15
17
|
}
|
|
16
18
|
const invalid = invalidInteractiveFlow(tool.fulfilment);
|
|
17
19
|
if (invalid)
|
|
@@ -44,7 +46,8 @@ export async function resumeTool(artifact, continuation, response, deps) {
|
|
|
44
46
|
}
|
|
45
47
|
async function runInteractiveFlow(artifact, toolName, flow, input, startIndex, steps, resultMetas, env, deps) {
|
|
46
48
|
const policy = deps.policy ?? new AllowAllPolicy();
|
|
47
|
-
const
|
|
49
|
+
const dispatchAdmission = latchToolDispatchAdmission(deps.beforeDispatch, deps.signal);
|
|
50
|
+
const host = createHost(toolName, deps, policy, env, [], dispatchAdmission);
|
|
48
51
|
try {
|
|
49
52
|
for (let index = startIndex; index < flow.steps.length; index += 1) {
|
|
50
53
|
const step = flow.steps[index];
|
|
@@ -79,7 +82,7 @@ async function runInteractiveFlow(artifact, toolName, flow, input, startIndex, s
|
|
|
79
82
|
steps[step.id] = evalExprMap(step.value, scope, `steps.${step.id}`);
|
|
80
83
|
continue;
|
|
81
84
|
}
|
|
82
|
-
const result = await runOperation(step.operationRef, step.args, scope, toolName, deps, policy, host, env, `steps.${step.id}.args`, `steps.${step.id}.output
|
|
85
|
+
const result = await runOperation(step.operationRef, step.args, scope, toolName, deps, policy, host, env, `steps.${step.id}.args`, `steps.${step.id}.output`, undefined, dispatchAdmission);
|
|
83
86
|
if (!result.ok)
|
|
84
87
|
return { status: 'failed', error: result.error };
|
|
85
88
|
const split = splitResultMeta(result.output);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @internal Shared with suspension-aware execution and surface adapters. */
|
|
2
|
+
export declare function splitResultMeta(output: unknown): {
|
|
3
|
+
readonly visible: unknown;
|
|
4
|
+
readonly meta?: Record<string, unknown>;
|
|
5
|
+
};
|
|
6
|
+
/** @internal Shared with the suspension-aware flow executor. */
|
|
7
|
+
export declare function attachResultMeta(output: Record<string, unknown>, metas: readonly Record<string, unknown>[]): Record<string, unknown>;
|
|
8
|
+
//# sourceMappingURL=result-meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-meta.d.ts","sourceRoot":"","sources":["../src/result-meta.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAeA;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const RESULT_META_KEY = '__noodleResultMeta';
|
|
2
|
+
/** @internal Shared with suspension-aware execution and surface adapters. */
|
|
3
|
+
export function splitResultMeta(output) {
|
|
4
|
+
if (output === null || typeof output !== 'object' || Array.isArray(output)) {
|
|
5
|
+
return { visible: output };
|
|
6
|
+
}
|
|
7
|
+
const record = output;
|
|
8
|
+
if (!Object.hasOwn(record, RESULT_META_KEY))
|
|
9
|
+
return { visible: output };
|
|
10
|
+
const rawMeta = record[RESULT_META_KEY];
|
|
11
|
+
const visible = Object.create(null);
|
|
12
|
+
for (const [key, value] of Object.entries(record)) {
|
|
13
|
+
if (key !== RESULT_META_KEY)
|
|
14
|
+
visible[key] = value;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
visible,
|
|
18
|
+
...(isPlainRecord(rawMeta) ? { meta: rawMeta } : {}),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** @internal Shared with the suspension-aware flow executor. */
|
|
22
|
+
export function attachResultMeta(output, metas) {
|
|
23
|
+
if (metas.length === 0)
|
|
24
|
+
return output;
|
|
25
|
+
const merged = {};
|
|
26
|
+
for (const meta of metas)
|
|
27
|
+
mergeRecords(merged, meta);
|
|
28
|
+
if (Object.keys(merged).length === 0)
|
|
29
|
+
return output;
|
|
30
|
+
return { ...output, [RESULT_META_KEY]: merged };
|
|
31
|
+
}
|
|
32
|
+
function mergeRecords(target, source) {
|
|
33
|
+
for (const [key, value] of Object.entries(source)) {
|
|
34
|
+
const existing = target[key];
|
|
35
|
+
if (isPlainRecord(existing) && isPlainRecord(value)) {
|
|
36
|
+
mergeRecords(existing, value);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
target[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function isPlainRecord(value) {
|
|
44
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=result-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-meta.js","sourceRoot":"","sources":["../src/result-meta.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,MAAe;IAI7C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACxC,MAAM,OAAO,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,eAAe;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,OAAO;QACL,OAAO;QACP,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAC9B,MAA+B,EAC/B,KAAyC;IAEzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACpD,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B,EAAE,MAA+B;IACpF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Why a tool call could not be fulfilled. Protocol and embedded adapters map this internal contract. */
|
|
2
|
-
export type ExecutionErrorCode = 'shape_only_artifact' | 'unknown_tool' | 'unknown_resource' | 'unknown_prompt' | 'unsupported_fulfilment' | 'connector_unavailable' | 'credential_unavailable' | 'signature_drift' | 'policy_denied' | 'policy_error' | 'arg_invalid' | 'invalid_continuation' | 'invalid_elicitation_flow' | 'invalid_confirmation_flow' | 'expression_error' | 'circular_call_dependency' | 'connector_error' | 'output_invalid';
|
|
2
|
+
export type ExecutionErrorCode = 'shape_only_artifact' | 'unknown_tool' | 'unknown_resource' | 'unknown_prompt' | 'unsupported_fulfilment' | 'connector_unavailable' | 'credential_unavailable' | 'signature_drift' | 'policy_denied' | 'policy_error' | 'dispatch_denied' | 'execution_admission_error' | 'execution_cancelled' | 'arg_invalid' | 'invalid_continuation' | 'invalid_elicitation_flow' | 'invalid_confirmation_flow' | 'expression_error' | 'circular_call_dependency' | 'connector_error' | 'output_invalid';
|
|
3
3
|
/** A typed execution failure. `path` locates the offending field/expression when applicable and
|
|
4
4
|
* never carries a sensitive value. */
|
|
5
5
|
export interface ExecutionError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAuKA,MAAM,UAAU,eAAe,CAC7B,MAAkC;IAElC,OAAO,MAAM,CAAC,MAAM,KAAK,gBAAgB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAAqC;IAErC,OAAO,MAAM,CAAC,MAAM,KAAK,gBAAgB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqC;IAErC,OAAO,MAAM,CAAC,MAAM,KAAK,uBAAuB,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Safe, argument-free context exposed at the exact boundary where a tool first dispatches. */
|
|
2
|
+
export interface ToolDispatchContext {
|
|
3
|
+
readonly toolName: string;
|
|
4
|
+
}
|
|
5
|
+
/** A dispatch hook must explicitly admit or deny the request before any connector effect begins. */
|
|
6
|
+
export type ToolDispatchDecision = {
|
|
7
|
+
readonly allow: true;
|
|
8
|
+
} | {
|
|
9
|
+
readonly allow: false;
|
|
10
|
+
/** Safe to surface; must not contain request data. */
|
|
11
|
+
readonly reason: string;
|
|
12
|
+
};
|
|
13
|
+
/** Called at each connector boundary; request adapters may wrap it to admit one logical call once. */
|
|
14
|
+
export type ToolDispatchHook = (context: ToolDispatchContext) => ToolDispatchDecision | Promise<ToolDispatchDecision>;
|
|
15
|
+
/** Latch cancellation and admission once for every logical protocol operation. */
|
|
16
|
+
export declare function latchToolDispatchAdmission(hook: ToolDispatchHook | undefined, signal: AbortSignal | undefined): ToolDispatchHook | undefined;
|
|
17
|
+
/** Apply a hook as a fail-closed runtime admission decision without exposing implementation errors. */
|
|
18
|
+
export declare function admitToolDispatch(hook: ToolDispatchHook | undefined, context: ToolDispatchContext): Promise<ExecutionError | null>;
|
|
19
|
+
import type { ExecutionError } from './result.js';
|
|
20
|
+
//# sourceMappingURL=tool-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-dispatch.d.ts","sourceRoot":"","sources":["../src/tool-dispatch.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oGAAoG;AACpG,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACxB;IACE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAI1D,kFAAkF;AAClF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,gBAAgB,GAAG,SAAS,CAU9B;AAED,uGAAuG;AACvG,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAchC;AAED,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
class ToolDispatchCancelled extends Error {
|
|
2
|
+
}
|
|
3
|
+
/** Latch cancellation and admission once for every logical protocol operation. */
|
|
4
|
+
export function latchToolDispatchAdmission(hook, signal) {
|
|
5
|
+
if (hook === undefined && signal === undefined)
|
|
6
|
+
return undefined;
|
|
7
|
+
let pending;
|
|
8
|
+
return (context) => {
|
|
9
|
+
pending ??= Promise.resolve().then(() => {
|
|
10
|
+
if (signal?.aborted)
|
|
11
|
+
throw new ToolDispatchCancelled();
|
|
12
|
+
return hook?.(context) ?? { allow: true };
|
|
13
|
+
});
|
|
14
|
+
return pending;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Apply a hook as a fail-closed runtime admission decision without exposing implementation errors. */
|
|
18
|
+
export async function admitToolDispatch(hook, context) {
|
|
19
|
+
if (hook === undefined)
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
const decision = await hook(context);
|
|
23
|
+
return decision.allow ? null : { code: 'dispatch_denied', message: decision.reason };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof ToolDispatchCancelled) {
|
|
27
|
+
return {
|
|
28
|
+
code: 'execution_cancelled',
|
|
29
|
+
message: 'tool execution was cancelled before connector dispatch',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return { code: 'execution_admission_error', message: 'tool execution admission failed' };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=tool-dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-dispatch.js","sourceRoot":"","sources":["../src/tool-dispatch.ts"],"names":[],"mappings":"AAmBA,MAAM,qBAAsB,SAAQ,KAAK;CAAG;AAE5C,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CACxC,IAAkC,EAClC,MAA+B;IAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjE,IAAI,OAAkD,CAAC;IACvD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACtC,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;YACvD,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAkC,EAClC,OAA4B;IAE5B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,wDAAwD;aAClE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC3F,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BillingUsageAttribution, BillingUsageReceipt, NormalizedRecordBillingUsageInput } from './usage-store.js';
|
|
2
|
+
/** Internal compact-event + aggregate ledger used by the in-memory billing-account adapter. */
|
|
3
|
+
export declare class InMemoryBillingUsageLedger {
|
|
4
|
+
#private;
|
|
5
|
+
record(input: {
|
|
6
|
+
readonly usage: NormalizedRecordBillingUsageInput;
|
|
7
|
+
readonly recordedAt: string;
|
|
8
|
+
readonly retryWindowMs: number;
|
|
9
|
+
readonly resolveAttribution: () => BillingUsageAttribution;
|
|
10
|
+
}): BillingUsageReceipt;
|
|
11
|
+
accountCount(input: {
|
|
12
|
+
readonly billingAccountId: string;
|
|
13
|
+
readonly windowStart: string;
|
|
14
|
+
}): number;
|
|
15
|
+
organizationCount(input: {
|
|
16
|
+
readonly billingAccountId: string;
|
|
17
|
+
readonly org: string;
|
|
18
|
+
readonly windowStart: string;
|
|
19
|
+
}): number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=in-memory-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-usage.d.ts","sourceRoot":"","sources":["../../src/billing/in-memory-usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,iCAAiC,EAClC,MAAM,kBAAkB,CAAC;AAY1B,+FAA+F;AAC/F,qBAAa,0BAA0B;;IAMrC,MAAM,CAAC,KAAK,EAAE;QACZ,QAAQ,CAAC,KAAK,EAAE,iCAAiC,CAAC;QAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;KAC5D,GAAG,mBAAmB;IAiDvB,YAAY,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAIhG,iBAAiB,CAAC,KAAK,EAAE;QACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,GAAG,MAAM;CAOX"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { BillingUsageIdempotencyConflictError } from './usage-store.js';
|
|
3
|
+
/** Internal compact-event + aggregate ledger used by the in-memory billing-account adapter. */
|
|
4
|
+
export class InMemoryBillingUsageLedger {
|
|
5
|
+
#eventsByHighConfidenceKey = new Map();
|
|
6
|
+
#eventsByFallbackKey = new Map();
|
|
7
|
+
#accountCounts = new Map();
|
|
8
|
+
#organizationCounts = new Map();
|
|
9
|
+
record(input) {
|
|
10
|
+
const exact = input.usage.highConfidenceKeyHash === undefined
|
|
11
|
+
? undefined
|
|
12
|
+
: this.#eventsByHighConfidenceKey.get(input.usage.highConfidenceKeyHash);
|
|
13
|
+
if (exact !== undefined) {
|
|
14
|
+
if (exact.semanticFingerprint !== input.usage.semanticFingerprint) {
|
|
15
|
+
throw new BillingUsageIdempotencyConflictError();
|
|
16
|
+
}
|
|
17
|
+
return receipt(exact, 'duplicate', 'high_confidence_key');
|
|
18
|
+
}
|
|
19
|
+
if (input.usage.highConfidenceKeyHash === undefined) {
|
|
20
|
+
const recordedAtMs = Date.parse(input.recordedAt);
|
|
21
|
+
const fallbackCutoff = recordedAtMs - input.retryWindowMs;
|
|
22
|
+
const boundedDuplicate = this.#eventsByFallbackKey.get(fallbackKey(input.usage.fallbackFingerprint, input.usage.semanticFingerprint));
|
|
23
|
+
if (boundedDuplicate !== undefined &&
|
|
24
|
+
Date.parse(boundedDuplicate.recordedAt) >= fallbackCutoff &&
|
|
25
|
+
Date.parse(boundedDuplicate.recordedAt) <= recordedAtMs + input.retryWindowMs) {
|
|
26
|
+
return receipt(boundedDuplicate, 'duplicate', 'bounded_fallback');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const event = {
|
|
30
|
+
eventId: `bue_${randomUUID()}`,
|
|
31
|
+
recordedAt: input.recordedAt,
|
|
32
|
+
...(input.usage.highConfidenceKeyHash !== undefined
|
|
33
|
+
? { highConfidenceKeyHash: input.usage.highConfidenceKeyHash }
|
|
34
|
+
: {}),
|
|
35
|
+
fallbackFingerprint: input.usage.fallbackFingerprint,
|
|
36
|
+
semanticFingerprint: input.usage.semanticFingerprint,
|
|
37
|
+
attribution: input.resolveAttribution(),
|
|
38
|
+
};
|
|
39
|
+
this.#eventsByFallbackKey.set(fallbackKey(event.fallbackFingerprint, event.semanticFingerprint), event);
|
|
40
|
+
if (event.highConfidenceKeyHash !== undefined) {
|
|
41
|
+
this.#eventsByHighConfidenceKey.set(event.highConfidenceKeyHash, event);
|
|
42
|
+
}
|
|
43
|
+
increment(this.#accountCounts, accountAggregateKey(event.attribution));
|
|
44
|
+
increment(this.#organizationCounts, organizationAggregateKey(event.attribution));
|
|
45
|
+
return receipt(event, 'recorded', null);
|
|
46
|
+
}
|
|
47
|
+
accountCount(input) {
|
|
48
|
+
return this.#accountCounts.get(`${input.billingAccountId}\u0000${input.windowStart}`) ?? 0;
|
|
49
|
+
}
|
|
50
|
+
organizationCount(input) {
|
|
51
|
+
return (this.#organizationCounts.get(`${input.billingAccountId}\u0000${input.org}\u0000${input.windowStart}`) ?? 0);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function fallbackKey(fingerprint, semanticFingerprint) {
|
|
55
|
+
return `${fingerprint}\u0000${semanticFingerprint}`;
|
|
56
|
+
}
|
|
57
|
+
function accountAggregateKey(attribution) {
|
|
58
|
+
return `${attribution.billingAccountId}\u0000${attribution.windowStart}`;
|
|
59
|
+
}
|
|
60
|
+
function organizationAggregateKey(attribution) {
|
|
61
|
+
return `${attribution.billingAccountId}\u0000${attribution.org}\u0000${attribution.windowStart}`;
|
|
62
|
+
}
|
|
63
|
+
function increment(counts, key) {
|
|
64
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
65
|
+
}
|
|
66
|
+
function receipt(event, outcome, deduplicatedBy) {
|
|
67
|
+
return {
|
|
68
|
+
eventId: event.eventId,
|
|
69
|
+
outcome,
|
|
70
|
+
deduplicatedBy,
|
|
71
|
+
attribution: event.attribution,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=in-memory-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-usage.js","sourceRoot":"","sources":["../../src/billing/in-memory-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { type BillingAccountMemberRecord, type BillingAccountRecord, type BillingIdentityRef, type EntitlementSnapshotRecord, type OrgBillingLinkRecord, type PlanVersionRecord } from './model.js';
|
|
2
2
|
import type { BillingAccountStore, EnsureDefaultBillingAccountInput, EnsureOrgBillingLinkInput, LegacyBillingAccountPreparationRecord } from './store.js';
|
|
3
|
-
|
|
3
|
+
import type { BillingUsageRead, BillingUsageReceipt, BillingUsageStore, GetBillingAccountUsageInput, GetOrganizationBillingUsageInput, RecordBillingUsageInput } from './usage-store.js';
|
|
4
|
+
export declare abstract class InMemoryBillingAccountStore implements BillingAccountStore, BillingUsageStore {
|
|
4
5
|
#private;
|
|
5
6
|
protected constructor(options: {
|
|
6
7
|
readonly now?: () => Date;
|
|
7
8
|
readonly orgExists: (org: string) => boolean;
|
|
8
9
|
readonly isOrgOwner: (org: string, subject: string) => boolean;
|
|
10
|
+
readonly billingUsageRetryWindowMs?: number;
|
|
11
|
+
readonly billingUsageObservedSince?: string;
|
|
9
12
|
});
|
|
10
13
|
/** Commit the in-memory default-account + initial org-link tuple without an async visibility gap. */
|
|
11
14
|
protected ensureDefaultAccountAndOrgLinkAtomic(input: {
|
|
@@ -31,5 +34,11 @@ export declare abstract class InMemoryBillingAccountStore implements BillingAcco
|
|
|
31
34
|
getOrgBillingLink(org: string): Promise<OrgBillingLinkRecord | undefined>;
|
|
32
35
|
listOrgBillingLinksForAccount(id: string): Promise<readonly OrgBillingLinkRecord[]>;
|
|
33
36
|
getLegacyBillingMigrationPreparationForAccount(id: string): Promise<LegacyBillingAccountPreparationRecord | undefined>;
|
|
37
|
+
startBillingUsageObservation(input: {
|
|
38
|
+
readonly startedAt: string;
|
|
39
|
+
}): Promise<string>;
|
|
40
|
+
recordBillingUsage(input: RecordBillingUsageInput): Promise<BillingUsageReceipt>;
|
|
41
|
+
getBillingAccountUsage(input: GetBillingAccountUsageInput): Promise<BillingUsageRead>;
|
|
42
|
+
getOrganizationBillingUsage(input: GetOrganizationBillingUsageInput): Promise<BillingUsageRead>;
|
|
34
43
|
}
|
|
35
44
|
//# sourceMappingURL=in-memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/billing/in-memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/billing/in-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { validateSlug } from '../store/validate.js';
|
|
2
|
+
import { InMemoryBillingUsageLedger } from './in-memory-usage.js';
|
|
2
3
|
import { billingIdentityKey, billingMemberKey, createDefaultFreeBillingRecords, FREE_PLAN_VERSION, GOOGLE_CONTROL_PLANE_ISSUER, normalizeBillingEmail, normalizeBillingIdentity, validateBillingAccountId, validateBillingLinkReason, } from './model.js';
|
|
4
|
+
import { billingAccountUsageScope, buildBillingUsageRead, DEFAULT_BILLING_USAGE_RETRY_WINDOW_MS, normalizeBillingUsageReadInput, normalizeRecordBillingUsageInput, organizationUsageScope, validateBillingUsageRetryWindowMs, } from './usage-store.js';
|
|
5
|
+
import { normalizeBillingUsageInstant, resolveUtcMonthlyUsageWindow } from './usage-window.js';
|
|
3
6
|
export class InMemoryBillingAccountStore {
|
|
4
7
|
#accounts = new Map();
|
|
5
8
|
#defaults = new Map();
|
|
@@ -7,6 +10,9 @@ export class InMemoryBillingAccountStore {
|
|
|
7
10
|
#snapshots = new Map();
|
|
8
11
|
#activeSnapshots = new Map();
|
|
9
12
|
#orgLinks = new Map();
|
|
13
|
+
#usage = new InMemoryBillingUsageLedger();
|
|
14
|
+
#billingUsageRetryWindowMs;
|
|
15
|
+
#billingUsageObservedSince;
|
|
10
16
|
#now;
|
|
11
17
|
#orgExists;
|
|
12
18
|
#isOrgOwner;
|
|
@@ -14,6 +20,11 @@ export class InMemoryBillingAccountStore {
|
|
|
14
20
|
this.#now = options.now ?? (() => new Date());
|
|
15
21
|
this.#orgExists = options.orgExists;
|
|
16
22
|
this.#isOrgOwner = options.isOrgOwner;
|
|
23
|
+
this.#billingUsageRetryWindowMs = validateBillingUsageRetryWindowMs(options.billingUsageRetryWindowMs ?? DEFAULT_BILLING_USAGE_RETRY_WINDOW_MS);
|
|
24
|
+
this.#billingUsageObservedSince =
|
|
25
|
+
options.billingUsageObservedSince === undefined
|
|
26
|
+
? undefined
|
|
27
|
+
: normalizeBillingUsageInstant('billing usage observed since', options.billingUsageObservedSince);
|
|
17
28
|
}
|
|
18
29
|
/** Commit the in-memory default-account + initial org-link tuple without an async visibility gap. */
|
|
19
30
|
ensureDefaultAccountAndOrgLinkAtomic(input, createdAt) {
|
|
@@ -194,6 +205,105 @@ export class InMemoryBillingAccountStore {
|
|
|
194
205
|
validateBillingAccountId(id);
|
|
195
206
|
return Promise.resolve(undefined);
|
|
196
207
|
}
|
|
208
|
+
startBillingUsageObservation(input) {
|
|
209
|
+
return Promise.resolve(this.#ensureBillingUsageObservationStarted(input.startedAt));
|
|
210
|
+
}
|
|
211
|
+
async recordBillingUsage(input) {
|
|
212
|
+
const usage = normalizeRecordBillingUsageInput(input);
|
|
213
|
+
const recordedAt = normalizeBillingUsageInstant('billing usage recorded at', this.#now().toISOString());
|
|
214
|
+
this.#ensureBillingUsageObservationStarted(recordedAt);
|
|
215
|
+
return this.#usage.record({
|
|
216
|
+
usage,
|
|
217
|
+
recordedAt,
|
|
218
|
+
retryWindowMs: this.#billingUsageRetryWindowMs,
|
|
219
|
+
resolveAttribution: () => {
|
|
220
|
+
const link = this.#orgLinks.get(usage.org);
|
|
221
|
+
const snapshotId = link === undefined ? undefined : this.#activeSnapshots.get(link.billingAccountId);
|
|
222
|
+
const snapshot = snapshotId === undefined ? undefined : this.#snapshots.get(snapshotId);
|
|
223
|
+
if (link === undefined || snapshot?.verificationStatus !== 'verified') {
|
|
224
|
+
throw new Error('billing setup is incomplete for organization');
|
|
225
|
+
}
|
|
226
|
+
const window = resolveUtcMonthlyUsageWindow(snapshot.monthlyUsageAnchor, usage.admittedAt);
|
|
227
|
+
return {
|
|
228
|
+
billingAccountId: link.billingAccountId,
|
|
229
|
+
org: usage.org,
|
|
230
|
+
app: usage.app,
|
|
231
|
+
environment: usage.environment,
|
|
232
|
+
deploymentId: usage.deploymentId,
|
|
233
|
+
linkVersion: link.version,
|
|
234
|
+
snapshotId: snapshot.id,
|
|
235
|
+
snapshotVersion: snapshot.version,
|
|
236
|
+
admittedAt: usage.admittedAt,
|
|
237
|
+
windowStart: window.start,
|
|
238
|
+
windowEnd: window.end,
|
|
239
|
+
};
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
getBillingAccountUsage(input) {
|
|
244
|
+
const scope = billingAccountUsageScope(input.billingAccountId);
|
|
245
|
+
const read = normalizeBillingUsageReadInput({
|
|
246
|
+
at: input.at,
|
|
247
|
+
observedSince: this.#billingUsageObservationStart(),
|
|
248
|
+
});
|
|
249
|
+
const snapshotId = this.#activeSnapshots.get(scope.billingAccountId);
|
|
250
|
+
const snapshot = snapshotId === undefined ? undefined : this.#snapshots.get(snapshotId);
|
|
251
|
+
if (snapshot?.verificationStatus !== 'verified') {
|
|
252
|
+
return Promise.resolve(buildBillingUsageRead({
|
|
253
|
+
scope,
|
|
254
|
+
monthlyUsageAnchor: undefined,
|
|
255
|
+
...read,
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
const window = resolveUtcMonthlyUsageWindow(snapshot.monthlyUsageAnchor, read.at);
|
|
259
|
+
return Promise.resolve(buildBillingUsageRead({
|
|
260
|
+
scope,
|
|
261
|
+
monthlyUsageAnchor: snapshot.monthlyUsageAnchor,
|
|
262
|
+
...read,
|
|
263
|
+
observedCalls: this.#usage.accountCount({
|
|
264
|
+
billingAccountId: scope.billingAccountId,
|
|
265
|
+
windowStart: window.start,
|
|
266
|
+
}),
|
|
267
|
+
}));
|
|
268
|
+
}
|
|
269
|
+
getOrganizationBillingUsage(input) {
|
|
270
|
+
const scope = organizationUsageScope(input.org);
|
|
271
|
+
const read = normalizeBillingUsageReadInput({
|
|
272
|
+
at: input.at,
|
|
273
|
+
observedSince: this.#billingUsageObservationStart(),
|
|
274
|
+
});
|
|
275
|
+
const link = this.#orgLinks.get(scope.org);
|
|
276
|
+
const snapshotId = link === undefined ? undefined : this.#activeSnapshots.get(link.billingAccountId);
|
|
277
|
+
const snapshot = snapshotId === undefined ? undefined : this.#snapshots.get(snapshotId);
|
|
278
|
+
if (link === undefined || snapshot?.verificationStatus !== 'verified') {
|
|
279
|
+
return Promise.resolve(buildBillingUsageRead({
|
|
280
|
+
scope,
|
|
281
|
+
monthlyUsageAnchor: undefined,
|
|
282
|
+
...read,
|
|
283
|
+
}));
|
|
284
|
+
}
|
|
285
|
+
const window = resolveUtcMonthlyUsageWindow(snapshot.monthlyUsageAnchor, read.at);
|
|
286
|
+
return Promise.resolve(buildBillingUsageRead({
|
|
287
|
+
scope,
|
|
288
|
+
monthlyUsageAnchor: snapshot.monthlyUsageAnchor,
|
|
289
|
+
...read,
|
|
290
|
+
observedCalls: this.#usage.organizationCount({
|
|
291
|
+
billingAccountId: link.billingAccountId,
|
|
292
|
+
org: scope.org,
|
|
293
|
+
windowStart: window.start,
|
|
294
|
+
}),
|
|
295
|
+
}));
|
|
296
|
+
}
|
|
297
|
+
#ensureBillingUsageObservationStarted(at = this.#now().toISOString()) {
|
|
298
|
+
this.#billingUsageObservedSince ??= normalizeBillingUsageInstant('billing usage observed since', at);
|
|
299
|
+
return this.#billingUsageObservedSince;
|
|
300
|
+
}
|
|
301
|
+
#billingUsageObservationStart() {
|
|
302
|
+
if (this.#billingUsageObservedSince === undefined) {
|
|
303
|
+
throw new Error('billing usage observation has not started');
|
|
304
|
+
}
|
|
305
|
+
return this.#billingUsageObservedSince;
|
|
306
|
+
}
|
|
197
307
|
}
|
|
198
308
|
function restoreMap(target, source) {
|
|
199
309
|
target.clear();
|