@noodleseed/one 0.43.0 → 0.44.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/node_modules/@noodle-borg/agent-kit/package.json +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 +5 -0
- 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 +7 -13
- 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,20 +7,75 @@ export declare const BillingPlanSummarySchema: z.ZodObject<{
|
|
|
7
7
|
export declare const BillingEnforcementStateSchema: z.ZodObject<{
|
|
8
8
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
9
9
|
}, z.core.$strict>;
|
|
10
|
-
export declare const BillingMeteringSummarySchema: z.ZodObject<{
|
|
10
|
+
export declare const BillingMeteringSummarySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
11
11
|
state: z.ZodLiteral<"not_started">;
|
|
12
|
-
}, z.core.$strict
|
|
13
|
-
|
|
12
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13
|
+
state: z.ZodLiteral<"reporting">;
|
|
14
|
+
mode: z.ZodLiteral<"shadow">;
|
|
15
|
+
coverage: z.ZodLiteral<"partial">;
|
|
16
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
17
|
+
state: z.ZodLiteral<"unavailable">;
|
|
18
|
+
}, z.core.$strict>], "state">;
|
|
19
|
+
export declare const BillingAccountMeteringDetailSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14
20
|
state: z.ZodLiteral<"not_started">;
|
|
15
21
|
usedMcpCalls: z.ZodNull;
|
|
16
22
|
remainingMcpCalls: z.ZodNull;
|
|
17
23
|
resetAt: z.ZodNull;
|
|
18
|
-
}, z.core.$strict
|
|
19
|
-
|
|
20
|
-
state: z.ZodLiteral<"
|
|
24
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
25
|
+
remainingMcpCalls: z.ZodNull;
|
|
26
|
+
state: z.ZodLiteral<"reporting">;
|
|
27
|
+
mode: z.ZodLiteral<"shadow">;
|
|
28
|
+
observedCalls: z.ZodNumber;
|
|
29
|
+
coverage: z.ZodLiteral<"partial">;
|
|
30
|
+
observedSince: z.ZodString;
|
|
31
|
+
windowStart: z.ZodString;
|
|
32
|
+
windowEnd: z.ZodString;
|
|
33
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
34
|
+
remainingMcpCalls: z.ZodNull;
|
|
35
|
+
state: z.ZodLiteral<"unavailable">;
|
|
36
|
+
reason: z.ZodEnum<{
|
|
37
|
+
billing_setup_incomplete: "billing_setup_incomplete";
|
|
38
|
+
observation_not_started: "observation_not_started";
|
|
39
|
+
counter_unavailable: "counter_unavailable";
|
|
40
|
+
}>;
|
|
41
|
+
observedCalls: z.ZodNull;
|
|
42
|
+
coverage: z.ZodLiteral<"unavailable">;
|
|
43
|
+
observedSince: z.ZodNullable<z.ZodString>;
|
|
44
|
+
windowStart: z.ZodNullable<z.ZodString>;
|
|
45
|
+
windowEnd: z.ZodNullable<z.ZodString>;
|
|
46
|
+
}, z.core.$strict>], "state">;
|
|
47
|
+
export declare const BillingOrgMeteringDetailSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
48
|
+
state: z.ZodLiteral<"not_started">;
|
|
49
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
50
|
+
state: z.ZodLiteral<"reporting">;
|
|
51
|
+
mode: z.ZodLiteral<"shadow">;
|
|
52
|
+
observedCalls: z.ZodNumber;
|
|
53
|
+
coverage: z.ZodLiteral<"partial">;
|
|
54
|
+
observedSince: z.ZodString;
|
|
55
|
+
windowStart: z.ZodString;
|
|
56
|
+
windowEnd: z.ZodString;
|
|
57
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
58
|
+
state: z.ZodLiteral<"unavailable">;
|
|
59
|
+
reason: z.ZodEnum<{
|
|
60
|
+
billing_setup_incomplete: "billing_setup_incomplete";
|
|
61
|
+
observation_not_started: "observation_not_started";
|
|
62
|
+
counter_unavailable: "counter_unavailable";
|
|
63
|
+
}>;
|
|
64
|
+
observedCalls: z.ZodNull;
|
|
65
|
+
coverage: z.ZodLiteral<"unavailable">;
|
|
66
|
+
observedSince: z.ZodNullable<z.ZodString>;
|
|
67
|
+
windowStart: z.ZodNullable<z.ZodString>;
|
|
68
|
+
windowEnd: z.ZodNullable<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>], "state">;
|
|
70
|
+
export declare const BillingProductionAppsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
71
|
+
state: z.ZodLiteral<"reporting">;
|
|
72
|
+
active: z.ZodNumber;
|
|
73
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
74
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
75
|
+
state: z.ZodLiteral<"unavailable">;
|
|
21
76
|
active: z.ZodNull;
|
|
22
77
|
limit: z.ZodNullable<z.ZodNumber>;
|
|
23
|
-
}, z.core.$strict>;
|
|
78
|
+
}, z.core.$strict>], "state">;
|
|
24
79
|
export declare const BillingAccountSummarySchema: z.ZodObject<{
|
|
25
80
|
id: z.ZodString;
|
|
26
81
|
displayName: z.ZodString;
|
|
@@ -44,9 +99,15 @@ export declare const BillingAccountSummarySchema: z.ZodObject<{
|
|
|
44
99
|
enforcement: z.ZodObject<{
|
|
45
100
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
46
101
|
}, z.core.$strict>;
|
|
47
|
-
metering: z.ZodObject<{
|
|
102
|
+
metering: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
48
103
|
state: z.ZodLiteral<"not_started">;
|
|
49
|
-
}, z.core.$strict
|
|
104
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
105
|
+
state: z.ZodLiteral<"reporting">;
|
|
106
|
+
mode: z.ZodLiteral<"shadow">;
|
|
107
|
+
coverage: z.ZodLiteral<"partial">;
|
|
108
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
109
|
+
state: z.ZodLiteral<"unavailable">;
|
|
110
|
+
}, z.core.$strict>], "state">;
|
|
50
111
|
}, z.core.$strict>;
|
|
51
112
|
export declare const BillingAccountsListResponseSchema: z.ZodObject<{
|
|
52
113
|
ok: z.ZodLiteral<true>;
|
|
@@ -74,9 +135,15 @@ export declare const BillingAccountsListResponseSchema: z.ZodObject<{
|
|
|
74
135
|
enforcement: z.ZodObject<{
|
|
75
136
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
76
137
|
}, z.core.$strict>;
|
|
77
|
-
metering: z.ZodObject<{
|
|
138
|
+
metering: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
78
139
|
state: z.ZodLiteral<"not_started">;
|
|
79
|
-
}, z.core.$strict
|
|
140
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
141
|
+
state: z.ZodLiteral<"reporting">;
|
|
142
|
+
mode: z.ZodLiteral<"shadow">;
|
|
143
|
+
coverage: z.ZodLiteral<"partial">;
|
|
144
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
145
|
+
state: z.ZodLiteral<"unavailable">;
|
|
146
|
+
}, z.core.$strict>], "state">;
|
|
80
147
|
}, z.core.$strict>>;
|
|
81
148
|
}, z.core.$strict>;
|
|
82
149
|
}, z.core.$strict>;
|
|
@@ -164,9 +231,15 @@ export declare const BillingAccountResponseSchema: z.ZodObject<{
|
|
|
164
231
|
enforcement: z.ZodObject<{
|
|
165
232
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
166
233
|
}, z.core.$strict>;
|
|
167
|
-
metering: z.ZodObject<{
|
|
234
|
+
metering: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
168
235
|
state: z.ZodLiteral<"not_started">;
|
|
169
|
-
}, z.core.$strict
|
|
236
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
237
|
+
state: z.ZodLiteral<"reporting">;
|
|
238
|
+
mode: z.ZodLiteral<"shadow">;
|
|
239
|
+
coverage: z.ZodLiteral<"partial">;
|
|
240
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
241
|
+
state: z.ZodLiteral<"unavailable">;
|
|
242
|
+
}, z.core.$strict>], "state">;
|
|
170
243
|
}, z.core.$strict>;
|
|
171
244
|
entitlement: z.ZodNullable<z.ZodObject<{
|
|
172
245
|
snapshotId: z.ZodString;
|
|
@@ -204,17 +277,43 @@ export declare const BillingAccountResponseSchema: z.ZodObject<{
|
|
|
204
277
|
enforcement: z.ZodObject<{
|
|
205
278
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
206
279
|
}, z.core.$strict>;
|
|
207
|
-
metering: z.ZodObject<{
|
|
280
|
+
metering: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
208
281
|
state: z.ZodLiteral<"not_started">;
|
|
209
282
|
usedMcpCalls: z.ZodNull;
|
|
210
283
|
remainingMcpCalls: z.ZodNull;
|
|
211
284
|
resetAt: z.ZodNull;
|
|
212
|
-
}, z.core.$strict
|
|
213
|
-
|
|
214
|
-
state: z.ZodLiteral<"
|
|
285
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
286
|
+
remainingMcpCalls: z.ZodNull;
|
|
287
|
+
state: z.ZodLiteral<"reporting">;
|
|
288
|
+
mode: z.ZodLiteral<"shadow">;
|
|
289
|
+
observedCalls: z.ZodNumber;
|
|
290
|
+
coverage: z.ZodLiteral<"partial">;
|
|
291
|
+
observedSince: z.ZodString;
|
|
292
|
+
windowStart: z.ZodString;
|
|
293
|
+
windowEnd: z.ZodString;
|
|
294
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
295
|
+
remainingMcpCalls: z.ZodNull;
|
|
296
|
+
state: z.ZodLiteral<"unavailable">;
|
|
297
|
+
reason: z.ZodEnum<{
|
|
298
|
+
billing_setup_incomplete: "billing_setup_incomplete";
|
|
299
|
+
observation_not_started: "observation_not_started";
|
|
300
|
+
counter_unavailable: "counter_unavailable";
|
|
301
|
+
}>;
|
|
302
|
+
observedCalls: z.ZodNull;
|
|
303
|
+
coverage: z.ZodLiteral<"unavailable">;
|
|
304
|
+
observedSince: z.ZodNullable<z.ZodString>;
|
|
305
|
+
windowStart: z.ZodNullable<z.ZodString>;
|
|
306
|
+
windowEnd: z.ZodNullable<z.ZodString>;
|
|
307
|
+
}, z.core.$strict>], "state">;
|
|
308
|
+
productionApps: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
309
|
+
state: z.ZodLiteral<"reporting">;
|
|
310
|
+
active: z.ZodNumber;
|
|
311
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
312
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
313
|
+
state: z.ZodLiteral<"unavailable">;
|
|
215
314
|
active: z.ZodNull;
|
|
216
315
|
limit: z.ZodNullable<z.ZodNumber>;
|
|
217
|
-
}, z.core.$strict>;
|
|
316
|
+
}, z.core.$strict>], "state">;
|
|
218
317
|
legacyMigration: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
219
318
|
state: z.ZodLiteral<"not_applicable">;
|
|
220
319
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -248,17 +347,38 @@ export declare const OrgBillingResponseSchema: z.ZodObject<{
|
|
|
248
347
|
enforcement: z.ZodObject<{
|
|
249
348
|
state: z.ZodLiteral<"legacy_unchanged">;
|
|
250
349
|
}, z.core.$strict>;
|
|
251
|
-
metering: z.ZodObject<{
|
|
350
|
+
metering: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
252
351
|
state: z.ZodLiteral<"not_started">;
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
352
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
353
|
+
state: z.ZodLiteral<"reporting">;
|
|
354
|
+
mode: z.ZodLiteral<"shadow">;
|
|
355
|
+
observedCalls: z.ZodNumber;
|
|
356
|
+
coverage: z.ZodLiteral<"partial">;
|
|
357
|
+
observedSince: z.ZodString;
|
|
358
|
+
windowStart: z.ZodString;
|
|
359
|
+
windowEnd: z.ZodString;
|
|
360
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
361
|
+
state: z.ZodLiteral<"unavailable">;
|
|
362
|
+
reason: z.ZodEnum<{
|
|
363
|
+
billing_setup_incomplete: "billing_setup_incomplete";
|
|
364
|
+
observation_not_started: "observation_not_started";
|
|
365
|
+
counter_unavailable: "counter_unavailable";
|
|
366
|
+
}>;
|
|
367
|
+
observedCalls: z.ZodNull;
|
|
368
|
+
coverage: z.ZodLiteral<"unavailable">;
|
|
369
|
+
observedSince: z.ZodNullable<z.ZodString>;
|
|
370
|
+
windowStart: z.ZodNullable<z.ZodString>;
|
|
371
|
+
windowEnd: z.ZodNullable<z.ZodString>;
|
|
372
|
+
}, z.core.$strict>], "state">;
|
|
373
|
+
productionApps: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
374
|
+
state: z.ZodLiteral<"reporting">;
|
|
375
|
+
active: z.ZodNumber;
|
|
376
|
+
limit: z.ZodNullable<z.ZodNumber>;
|
|
377
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
378
|
+
state: z.ZodLiteral<"unavailable">;
|
|
259
379
|
active: z.ZodNull;
|
|
260
380
|
limit: z.ZodNullable<z.ZodNumber>;
|
|
261
|
-
}, z.core.$strict>;
|
|
381
|
+
}, z.core.$strict>], "state">;
|
|
262
382
|
}, z.core.$strict>;
|
|
263
383
|
}, z.core.$strict>;
|
|
264
384
|
export type BillingAccountSummary = z.infer<typeof BillingAccountSummarySchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-contract.d.ts","sourceRoot":"","sources":["../../src/billing/read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB,oGAAsD,CAAC;AAE7F,eAAO,MAAM,wBAAwB;;;kBAK1B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;kBAE/B,CAAC;AAEZ,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"read-contract.d.ts","sourceRoot":"","sources":["../../src/billing/read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB,oGAAsD,CAAC;AAE7F,eAAO,MAAM,wBAAwB;;;kBAK1B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;kBAE/B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;;6BAUvC,CAAC;AAsBH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAW7C,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;6BAIzC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;6BAetC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAa7B,CAAC;AAEZ,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKnC,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;;;oCASxC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;kBAUlC,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;kBAQjC,CAAC;AA2BZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;6BAGvC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAe9B,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAe1B,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -10,22 +10,68 @@ export const BillingPlanSummarySchema = z
|
|
|
10
10
|
export const BillingEnforcementStateSchema = z
|
|
11
11
|
.object({ state: z.literal('legacy_unchanged') })
|
|
12
12
|
.strict();
|
|
13
|
-
export const BillingMeteringSummarySchema = z.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
.
|
|
13
|
+
export const BillingMeteringSummarySchema = z.discriminatedUnion('state', [
|
|
14
|
+
z.object({ state: z.literal('not_started') }).strict(),
|
|
15
|
+
z
|
|
16
|
+
.object({
|
|
17
|
+
state: z.literal('reporting'),
|
|
18
|
+
mode: z.literal('shadow'),
|
|
19
|
+
coverage: z.literal('partial'),
|
|
20
|
+
})
|
|
21
|
+
.strict(),
|
|
22
|
+
z.object({ state: z.literal('unavailable') }).strict(),
|
|
23
|
+
]);
|
|
24
|
+
const BillingMeteringReportingFields = {
|
|
25
|
+
state: z.literal('reporting'),
|
|
26
|
+
mode: z.literal('shadow'),
|
|
27
|
+
observedCalls: z.number().int().nonnegative(),
|
|
28
|
+
coverage: z.literal('partial'),
|
|
29
|
+
observedSince: z.string(),
|
|
30
|
+
windowStart: z.string(),
|
|
31
|
+
windowEnd: z.string(),
|
|
32
|
+
};
|
|
33
|
+
const BillingMeteringUnavailableFields = {
|
|
34
|
+
state: z.literal('unavailable'),
|
|
35
|
+
reason: z.enum(['billing_setup_incomplete', 'observation_not_started', 'counter_unavailable']),
|
|
36
|
+
observedCalls: z.null(),
|
|
37
|
+
coverage: z.literal('unavailable'),
|
|
38
|
+
observedSince: z.string().nullable(),
|
|
39
|
+
windowStart: z.string().nullable(),
|
|
40
|
+
windowEnd: z.string().nullable(),
|
|
41
|
+
};
|
|
42
|
+
export const BillingAccountMeteringDetailSchema = z.discriminatedUnion('state', [
|
|
43
|
+
z
|
|
44
|
+
.object({
|
|
45
|
+
state: z.literal('not_started'),
|
|
46
|
+
usedMcpCalls: z.null(),
|
|
47
|
+
remainingMcpCalls: z.null(),
|
|
48
|
+
resetAt: z.null(),
|
|
49
|
+
})
|
|
50
|
+
.strict(),
|
|
51
|
+
z.object({ ...BillingMeteringReportingFields, remainingMcpCalls: z.null() }).strict(),
|
|
52
|
+
z.object({ ...BillingMeteringUnavailableFields, remainingMcpCalls: z.null() }).strict(),
|
|
53
|
+
]);
|
|
54
|
+
export const BillingOrgMeteringDetailSchema = z.discriminatedUnion('state', [
|
|
55
|
+
z.object({ state: z.literal('not_started') }).strict(),
|
|
56
|
+
z.object(BillingMeteringReportingFields).strict(),
|
|
57
|
+
z.object(BillingMeteringUnavailableFields).strict(),
|
|
58
|
+
]);
|
|
59
|
+
export const BillingProductionAppsSchema = z.discriminatedUnion('state', [
|
|
60
|
+
z
|
|
61
|
+
.object({
|
|
62
|
+
state: z.literal('reporting'),
|
|
63
|
+
active: z.number().int().nonnegative(),
|
|
64
|
+
limit: z.number().int().nonnegative().nullable(),
|
|
65
|
+
})
|
|
66
|
+
.strict(),
|
|
67
|
+
z
|
|
68
|
+
.object({
|
|
69
|
+
state: z.literal('unavailable'),
|
|
70
|
+
active: z.null(),
|
|
71
|
+
limit: z.number().int().nonnegative().nullable(),
|
|
72
|
+
})
|
|
73
|
+
.strict(),
|
|
74
|
+
]);
|
|
29
75
|
export const BillingAccountSummarySchema = z
|
|
30
76
|
.object({
|
|
31
77
|
id: z.string(),
|
|
@@ -112,7 +158,7 @@ export const BillingAccountResponseSchema = z
|
|
|
112
158
|
entitlement: BillingEntitlementSnapshotSchema.nullable(),
|
|
113
159
|
linkedOrganizations: z.array(BillingLinkedOrganizationSchema),
|
|
114
160
|
enforcement: BillingEnforcementStateSchema,
|
|
115
|
-
metering:
|
|
161
|
+
metering: BillingAccountMeteringDetailSchema,
|
|
116
162
|
productionApps: BillingProductionAppsSchema,
|
|
117
163
|
legacyMigration: BillingLegacyMigrationSchema,
|
|
118
164
|
})
|
|
@@ -129,7 +175,7 @@ export const OrgBillingResponseSchema = z
|
|
|
129
175
|
plan: BillingPlanSummarySchema.extend({ effectiveFrom: z.string() }).strict(),
|
|
130
176
|
entitlements: BillingEntitlementsSchema,
|
|
131
177
|
enforcement: BillingEnforcementStateSchema,
|
|
132
|
-
metering:
|
|
178
|
+
metering: BillingOrgMeteringDetailSchema,
|
|
133
179
|
productionApps: BillingProductionAppsSchema,
|
|
134
180
|
})
|
|
135
181
|
.strict(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-contract.js","sourceRoot":"","sources":["../../src/billing/read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;KAChD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"read-contract.js","sourceRoot":"","sources":["../../src/billing/read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;KAChD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACxE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACtD,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;KAC/B,CAAC;SACD,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACvD,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG;IACrC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACb,CAAC;AAEX,MAAM,gCAAgC,GAAG;IACvC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IAC9F,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IAC9E,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/B,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE;QACtB,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;KAClB,CAAC;SACD,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,8BAA8B,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACrF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,gCAAgC,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACxF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IAC1E,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACtD,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE;IACjD,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,MAAM,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACvE,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACjD,CAAC;SACD,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACjD,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,IAAI,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IACzC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACvD,WAAW,EAAE,6BAA6B;IAC1C,QAAQ,EAAE,4BAA4B;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC;KAC/C,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5E,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE;IAChF,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACzD,CAAC;SACE,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;KAC7B,CAAC;SACD,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC;KAC9C,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,wBAAwB;IAC9B,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9B,YAAY,EAAE,yBAAyB;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,sBAAsB,EAAE,6BAA6B;IACrD,sBAAsB,EAAE,6BAA6B;CACtD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,kCAAkC,GAAG,CAAC;KACzC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;KAC9C,MAAM,EAAE,CAAC;AAEZ,MAAM,6BAA6B,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1D,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3D,+BAA+B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC/D,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACnC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACvD,CAAC;aACE,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACtC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;SACpB,CAAC;aACD,MAAM,EAAE;KACZ,CAAC;CACH,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACxE,kCAAkC;IAClC,6BAA6B;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,gCAAgC,CAAC,QAAQ,EAAE;QACxD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC;QAC7D,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,kCAAkC;QAC5C,cAAc,EAAE,2BAA2B;QAC3C,eAAe,EAAE,4BAA4B;KAC9C,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7E,YAAY,EAAE,yBAAyB;QACvC,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,8BAA8B;QACxC,cAAc,EAAE,2BAA2B;KAC5C,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HostedToolDispatchHook, Logger } from '@noodle-borg/transport-http';
|
|
2
|
+
import type { BillingUsageStore } from './usage-store.js';
|
|
3
|
+
export interface ShadowBillingDispatchOptions {
|
|
4
|
+
readonly store: BillingUsageStore;
|
|
5
|
+
/** Dedicated, stable base64-encoded 32-byte key. Never persisted with usage events. */
|
|
6
|
+
readonly hmacKey: string;
|
|
7
|
+
/** Maximum request-path wait for shadow persistence before the observer detaches fail-open. */
|
|
8
|
+
readonly writeTimeoutMs?: number;
|
|
9
|
+
readonly clock?: () => Date;
|
|
10
|
+
readonly logger: Logger;
|
|
11
|
+
}
|
|
12
|
+
/** Anchor enabled observation before serving; startup remains fail-open if the store races unavailable. */
|
|
13
|
+
export declare function startShadowBillingObservation(options: {
|
|
14
|
+
readonly store: BillingUsageStore;
|
|
15
|
+
readonly startedAt: string;
|
|
16
|
+
readonly logger: Logger;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
/** Build the fail-open shadow observer attached at the final hosted tool-dispatch boundary. */
|
|
19
|
+
export declare function createShadowBillingDispatchHook(options: ShadowBillingDispatchOptions): HostedToolDispatchHook;
|
|
20
|
+
//# sourceMappingURL=shadow-meter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-meter.d.ts","sourceRoot":"","sources":["../../src/billing/shadow-meter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,sBAAsB,EACtB,MAAM,EACP,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEnF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAKD,2GAA2G;AAC3G,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB;AAED,+FAA+F;AAC/F,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,4BAA4B,GACpC,sBAAsB,CAkExB"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { createHmac } from 'node:crypto';
|
|
2
|
+
const DEFAULT_WRITE_TIMEOUT_MS = 250;
|
|
3
|
+
const FAILURE_COOLDOWN_MS = 5_000;
|
|
4
|
+
/** Anchor enabled observation before serving; startup remains fail-open if the store races unavailable. */
|
|
5
|
+
export async function startShadowBillingObservation(options) {
|
|
6
|
+
const outcome = await settleObservation(() => options.store.startBillingUsageObservation({ startedAt: options.startedAt }), DEFAULT_WRITE_TIMEOUT_MS);
|
|
7
|
+
if (outcome !== 'recorded') {
|
|
8
|
+
try {
|
|
9
|
+
options.logger.warn('billing.usage.shadow_start_failed', {
|
|
10
|
+
failure: outcome,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// Shadow diagnostics must not prevent the service from starting.
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Build the fail-open shadow observer attached at the final hosted tool-dispatch boundary. */
|
|
19
|
+
export function createShadowBillingDispatchHook(options) {
|
|
20
|
+
const hmacKey = parseHmacKey(options.hmacKey);
|
|
21
|
+
const clock = options.clock ?? (() => new Date());
|
|
22
|
+
const writeTimeoutMs = validateWriteTimeout(options.writeTimeoutMs ?? DEFAULT_WRITE_TIMEOUT_MS);
|
|
23
|
+
let circuitOpenUntil = 0;
|
|
24
|
+
return async (context) => {
|
|
25
|
+
if (context.signal.aborted)
|
|
26
|
+
return { allow: true };
|
|
27
|
+
if (Date.now() < circuitOpenUntil)
|
|
28
|
+
return { allow: true };
|
|
29
|
+
let input;
|
|
30
|
+
try {
|
|
31
|
+
const semanticFingerprint = digest(hmacKey, {
|
|
32
|
+
version: 1,
|
|
33
|
+
kind: 'invocation_semantics',
|
|
34
|
+
tenant: tenantIdentity(context),
|
|
35
|
+
toolName: context.toolName,
|
|
36
|
+
toolArguments: context.toolArguments,
|
|
37
|
+
});
|
|
38
|
+
const fallbackFingerprint = digest(hmacKey, {
|
|
39
|
+
version: 1,
|
|
40
|
+
kind: 'bounded_retry',
|
|
41
|
+
tenant: tenantIdentity(context),
|
|
42
|
+
callerSubject: context.caller?.subject ?? null,
|
|
43
|
+
client: context.client,
|
|
44
|
+
requestId: context.requestId,
|
|
45
|
+
requestMeta: context.requestMeta ?? null,
|
|
46
|
+
semanticFingerprint,
|
|
47
|
+
});
|
|
48
|
+
const highConfidenceKeyHash = context.sessionId === undefined
|
|
49
|
+
? undefined
|
|
50
|
+
: digest(hmacKey, {
|
|
51
|
+
version: 1,
|
|
52
|
+
kind: 'mcp_session_request',
|
|
53
|
+
tenant: tenantIdentity(context),
|
|
54
|
+
sessionId: context.sessionId,
|
|
55
|
+
requestId: context.requestId,
|
|
56
|
+
});
|
|
57
|
+
input = {
|
|
58
|
+
mode: 'shadow',
|
|
59
|
+
org: context.org,
|
|
60
|
+
app: context.app,
|
|
61
|
+
environment: context.environment,
|
|
62
|
+
deploymentId: context.deploymentId,
|
|
63
|
+
admittedAt: clock().toISOString(),
|
|
64
|
+
...(highConfidenceKeyHash !== undefined ? { highConfidenceKeyHash } : {}),
|
|
65
|
+
fallbackFingerprint,
|
|
66
|
+
semanticFingerprint,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
warnObservationFailure(options.logger, context, 'observation_failed');
|
|
71
|
+
return { allow: true };
|
|
72
|
+
}
|
|
73
|
+
if (context.signal.aborted)
|
|
74
|
+
return { allow: true };
|
|
75
|
+
const outcome = await settleObservation(() => options.store.recordBillingUsage(input), writeTimeoutMs);
|
|
76
|
+
if (outcome !== 'recorded') {
|
|
77
|
+
circuitOpenUntil = Date.now() + FAILURE_COOLDOWN_MS;
|
|
78
|
+
warnObservationFailure(options.logger, context, outcome);
|
|
79
|
+
}
|
|
80
|
+
return { allow: true };
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async function settleObservation(operation, timeoutMs) {
|
|
84
|
+
let operationPromise;
|
|
85
|
+
try {
|
|
86
|
+
operationPromise = operation();
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return 'store_unavailable';
|
|
90
|
+
}
|
|
91
|
+
return new Promise((resolve) => {
|
|
92
|
+
let settled = false;
|
|
93
|
+
const timer = setTimeout(() => {
|
|
94
|
+
if (settled)
|
|
95
|
+
return;
|
|
96
|
+
settled = true;
|
|
97
|
+
resolve('observation_timed_out');
|
|
98
|
+
}, timeoutMs);
|
|
99
|
+
void operationPromise.then(() => {
|
|
100
|
+
if (settled)
|
|
101
|
+
return;
|
|
102
|
+
settled = true;
|
|
103
|
+
clearTimeout(timer);
|
|
104
|
+
resolve('recorded');
|
|
105
|
+
}, () => {
|
|
106
|
+
if (settled)
|
|
107
|
+
return;
|
|
108
|
+
settled = true;
|
|
109
|
+
clearTimeout(timer);
|
|
110
|
+
resolve('store_unavailable');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function warnObservationFailure(logger, context, failure) {
|
|
115
|
+
try {
|
|
116
|
+
logger.warn('billing.usage.shadow_write_failed', {
|
|
117
|
+
org: context.org,
|
|
118
|
+
app: context.app,
|
|
119
|
+
env: context.environment,
|
|
120
|
+
deploymentId: context.deploymentId,
|
|
121
|
+
failure,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Shadow diagnostics must not become an admission dependency.
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function validateWriteTimeout(value) {
|
|
129
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > 5_000) {
|
|
130
|
+
throw new Error('billing usage shadow write timeout must be between 1 and 5000 milliseconds');
|
|
131
|
+
}
|
|
132
|
+
return value;
|
|
133
|
+
}
|
|
134
|
+
function tenantIdentity(context) {
|
|
135
|
+
return {
|
|
136
|
+
org: context.org,
|
|
137
|
+
app: context.app,
|
|
138
|
+
environment: context.environment,
|
|
139
|
+
deploymentId: context.deploymentId,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function parseHmacKey(value) {
|
|
143
|
+
const normalized = value.trim();
|
|
144
|
+
const decoded = Buffer.from(normalized, 'base64');
|
|
145
|
+
if (decoded.length !== 32 || decoded.toString('base64') !== normalized) {
|
|
146
|
+
throw new Error('billing usage HMAC key must be base64-encoded 32 bytes');
|
|
147
|
+
}
|
|
148
|
+
return decoded;
|
|
149
|
+
}
|
|
150
|
+
function digest(key, value) {
|
|
151
|
+
return createHmac('sha256', key).update(canonicalJson(value)).digest('hex');
|
|
152
|
+
}
|
|
153
|
+
function canonicalJson(value) {
|
|
154
|
+
return JSON.stringify(canonicalValue(value));
|
|
155
|
+
}
|
|
156
|
+
function canonicalValue(value) {
|
|
157
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
158
|
+
return value;
|
|
159
|
+
if (typeof value === 'number') {
|
|
160
|
+
if (!Number.isFinite(value))
|
|
161
|
+
throw new Error('billing usage identity contains a non-finite number');
|
|
162
|
+
return value;
|
|
163
|
+
}
|
|
164
|
+
if (Array.isArray(value))
|
|
165
|
+
return value.map(canonicalValue);
|
|
166
|
+
if (typeof value === 'object') {
|
|
167
|
+
const result = {};
|
|
168
|
+
for (const key of Object.keys(value).sort()) {
|
|
169
|
+
const child = value[key];
|
|
170
|
+
if (child !== undefined)
|
|
171
|
+
result[key] = canonicalValue(child);
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
throw new Error('billing usage identity must contain JSON-compatible values');
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=shadow-meter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-meter.js","sourceRoot":"","sources":["../../src/billing/shadow-meter.ts"],"names":[],"mappings":"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"}
|