@kya-os/mcp-i-cloudflare 1.12.4 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +5 -1
  2. package/dist/agent.d.ts +1 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +23 -24
  5. package/dist/agent.js.map +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +10 -5
  8. package/dist/app.js.map +1 -1
  9. package/dist/audit/assurance.d.ts +12 -0
  10. package/dist/audit/assurance.d.ts.map +1 -0
  11. package/dist/audit/assurance.js +21 -0
  12. package/dist/audit/assurance.js.map +1 -0
  13. package/dist/audit/deployment-binding.d.ts +513 -0
  14. package/dist/audit/deployment-binding.d.ts.map +1 -0
  15. package/dist/audit/deployment-binding.js +364 -0
  16. package/dist/audit/deployment-binding.js.map +1 -0
  17. package/dist/audit/durable-producer.d.ts +151 -0
  18. package/dist/audit/durable-producer.d.ts.map +1 -0
  19. package/dist/audit/durable-producer.js +953 -0
  20. package/dist/audit/durable-producer.js.map +1 -0
  21. package/dist/audit/verified-recorder-client.d.ts +34 -0
  22. package/dist/audit/verified-recorder-client.d.ts.map +1 -0
  23. package/dist/audit/verified-recorder-client.js +192 -0
  24. package/dist/audit/verified-recorder-client.js.map +1 -0
  25. package/dist/config.d.ts +4 -1
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js.map +1 -1
  28. package/dist/delegation-http/pickup-routes.d.ts.map +1 -1
  29. package/dist/delegation-http/pickup-routes.js +36 -3
  30. package/dist/delegation-http/pickup-routes.js.map +1 -1
  31. package/dist/delegation-http/well-known-capability.d.ts +2 -1
  32. package/dist/delegation-http/well-known-capability.d.ts.map +1 -1
  33. package/dist/delegation-http/well-known-capability.js +2 -1
  34. package/dist/delegation-http/well-known-capability.js.map +1 -1
  35. package/dist/helpers/env-mapper.d.ts.map +1 -1
  36. package/dist/helpers/env-mapper.js +31 -0
  37. package/dist/helpers/env-mapper.js.map +1 -1
  38. package/dist/index.d.ts +8 -6
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +14 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/runtime/invoke-tool-handler.d.ts +10 -0
  43. package/dist/runtime/invoke-tool-handler.d.ts.map +1 -0
  44. package/dist/runtime/invoke-tool-handler.js +11 -0
  45. package/dist/runtime/invoke-tool-handler.js.map +1 -0
  46. package/dist/runtime/oauth-handler.d.ts.map +1 -1
  47. package/dist/runtime/oauth-handler.js +12 -1
  48. package/dist/runtime/oauth-handler.js.map +1 -1
  49. package/dist/runtime/oidc/idp-scopes.d.ts +26 -0
  50. package/dist/runtime/oidc/idp-scopes.d.ts.map +1 -0
  51. package/dist/runtime/oidc/idp-scopes.js +24 -0
  52. package/dist/runtime/oidc/idp-scopes.js.map +1 -0
  53. package/dist/runtime.d.ts +1 -6
  54. package/dist/runtime.d.ts.map +1 -1
  55. package/dist/runtime.js +72 -72
  56. package/dist/runtime.js.map +1 -1
  57. package/dist/services/batch-queue.d.ts +103 -0
  58. package/dist/services/batch-queue.d.ts.map +1 -0
  59. package/dist/services/batch-queue.js +180 -0
  60. package/dist/services/batch-queue.js.map +1 -0
  61. package/dist/services/consent-audit.service.d.ts +3 -10
  62. package/dist/services/consent-audit.service.d.ts.map +1 -1
  63. package/dist/services/consent-audit.service.js +44 -77
  64. package/dist/services/consent-audit.service.js.map +1 -1
  65. package/dist/services/consent.service.d.ts +7 -0
  66. package/dist/services/consent.service.d.ts.map +1 -1
  67. package/dist/services/consent.service.js +122 -69
  68. package/dist/services/consent.service.js.map +1 -1
  69. package/dist/services/kya-os-events.service.d.ts +131 -0
  70. package/dist/services/kya-os-events.service.d.ts.map +1 -0
  71. package/dist/services/kya-os-events.service.js +135 -0
  72. package/dist/services/kya-os-events.service.js.map +1 -0
  73. package/dist/services/proof-batch-queue.d.ts +15 -67
  74. package/dist/services/proof-batch-queue.d.ts.map +1 -1
  75. package/dist/services/proof-batch-queue.js +12 -147
  76. package/dist/services/proof-batch-queue.js.map +1 -1
  77. package/dist/services/proof.service.d.ts +7 -0
  78. package/dist/services/proof.service.d.ts.map +1 -1
  79. package/dist/services/proof.service.js +55 -4
  80. package/dist/services/proof.service.js.map +1 -1
  81. package/dist/services/vault-resolver.d.ts +0 -8
  82. package/dist/services/vault-resolver.d.ts.map +1 -1
  83. package/dist/services/vault-resolver.js +0 -22
  84. package/dist/services/vault-resolver.js.map +1 -1
  85. package/dist/types.d.ts +19 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/package.json +8 -6
  88. package/dist/runtime/audit-logger.d.ts +0 -96
  89. package/dist/runtime/audit-logger.d.ts.map +0 -1
  90. package/dist/runtime/audit-logger.js +0 -276
  91. package/dist/runtime/audit-logger.js.map +0 -1
package/dist/runtime.js CHANGED
@@ -12,15 +12,14 @@ import { MCPIRuntimeBase, ToolProtectionService, } from "@kya-os/mcp-i-runtime";
12
12
  import { CloudflareProofGenerator } from "./proof-generator";
13
13
  import { KVToolProtectionCache, } from "./cache/kv-tool-protection-cache";
14
14
  import { ProofService } from "./services/proof.service";
15
- import { CloudflareAuditLogger } from "./runtime/audit-logger";
16
15
  export class CloudflareRuntime extends MCPIRuntimeBase {
17
16
  proofGenerator;
18
17
  lastDetachedProof;
19
18
  lastToolCallContext;
19
+ proofByInvocation = new Map();
20
20
  serverUrl; // Store server URL for consent URL building
21
21
  proofService; // Proof submission service
22
22
  // accessControlService is inherited from MCPIRuntimeBase (protected), no need to redeclare
23
- auditLogger; // Audit logger instance
24
23
  // proofVerifier is inherited from MCPIRuntimeBase (protected), no need to redeclare
25
24
  /**
26
25
  * Store pending proof submission promises for Cloudflare waitUntil()
@@ -54,12 +53,6 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
54
53
  // Protected members are accessible from subclasses in TypeScript
55
54
  this.proofVerifier = verifier;
56
55
  }
57
- /**
58
- * Get audit logger instance
59
- */
60
- getAuditLogger() {
61
- return this.auditLogger;
62
- }
63
56
  /**
64
57
  * Get identity - uses cached identity from base class for performance
65
58
  * The base class caches identity during initialize() to avoid repeated provider calls
@@ -72,21 +65,10 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
72
65
  */
73
66
  async initialize() {
74
67
  await super.initialize();
75
- // Initialize CloudflareAuditLogger if audit is enabled
76
- // Uses Web Crypto API instead of Node.js crypto for Cloudflare Workers compatibility
77
- if (this.config.audit?.enabled) {
78
- this.auditLogger = new CloudflareAuditLogger({
79
- enabled: true,
80
- logFunction: this.config.audit.logFunction || console.log,
81
- includePayloads: false,
82
- // rotation is optional and may not be in the config type
83
- rotation: this.config.audit.rotation,
84
- });
85
- }
86
68
  // Initialize CloudflareProofGenerator with identity
87
69
  const identity = await this.getIdentity();
88
70
  this.proofGenerator = new CloudflareProofGenerator(identity);
89
- if (this.config.audit?.enabled) {
71
+ if (this.config.environment === "development") {
90
72
  console.error("[MCP-I] CloudflareRuntime initialized with CloudflareProofGenerator");
91
73
  console.error("[MCP-I] DID:", identity.did);
92
74
  }
@@ -140,7 +122,7 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
140
122
  else if (session?.toolName) {
141
123
  scopeId = `${session.toolName}:execute`;
142
124
  }
143
- if (this.config.audit?.enabled && scopeId) {
125
+ if (this.config.environment === "development" && scopeId) {
144
126
  console.error(`[MCP-I] Proof scopeId for tool "${session.toolName}": ${scopeId}`);
145
127
  }
146
128
  // ✅ Generate full JWS proof WITH scopeId using CloudflareProofGenerator
@@ -148,8 +130,16 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
148
130
  scopeId, // ← ADDED: Pass scopeId for tool auto-discovery
149
131
  clientDid: session.clientDid, // ← ADDED: Pass clientDid from session
150
132
  });
151
- // Store the proof for getLastProof() retrieval
133
+ // Keep the legacy latest-value accessor for compatibility, but route the
134
+ // active request through an invocation-keyed map so concurrent calls never
135
+ // submit or attach another request's proof.
152
136
  this.lastDetachedProof = detachedProof;
137
+ const auditInvocationId = typeof session.auditInvocationId === "string"
138
+ ? session.auditInvocationId
139
+ : undefined;
140
+ if (auditInvocationId) {
141
+ this.proofByInvocation.set(auditInvocationId, detachedProof);
142
+ }
153
143
  // ✅ Store tool call context for AgentShield dashboard
154
144
  this.lastToolCallContext = {
155
145
  tool: session.toolName || "unknown",
@@ -158,7 +148,7 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
158
148
  scopeId: scopeId || "unknown",
159
149
  userId: session.userId, // Optional user identifier
160
150
  };
161
- if (this.config.audit?.enabled) {
151
+ if (this.config.environment === "development") {
162
152
  console.error("[MCP-I] Proof generated:", {
163
153
  did: detachedProof.meta.did,
164
154
  sessionId: detachedProof.meta.sessionId,
@@ -184,6 +174,9 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
184
174
  * Note: Creates a new session object to avoid mutating the input session.
185
175
  */
186
176
  async processToolCall(toolName, args, handler, session) {
177
+ const invocationId = typeof session?.auditInvocationId === "string"
178
+ ? session.auditInvocationId
179
+ : crypto.randomUUID();
187
180
  // Enhance session with tool metadata for proof generation
188
181
  // Create a new session object to avoid mutating the input (immutability contract)
189
182
  const enhancedSession = session
@@ -191,62 +184,69 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
191
184
  ...session,
192
185
  toolName,
193
186
  toolParams: args,
187
+ auditInvocationId: invocationId,
194
188
  }
195
189
  : undefined;
196
- // Call parent implementation with enhanced session (generates proof)
197
- const result = await super.processToolCall(toolName, args, handler, enhancedSession);
198
- // Get the proof that was generated (stored by createProof)
199
- const proof = this.lastDetachedProof;
200
- // Automatically submit proof to AgentShield if available
201
- // CRITICAL FIX: Await the proof submission directly instead of using ctx.waitUntil()
202
- // In Durable Objects (McpAgent), ctx.waitUntil() doesn't reliably extend lifetime,
203
- // causing proof submissions to be cancelled before completion.
204
- if (proof && this.proofService && enhancedSession) {
205
- try {
206
- // Determine MCP server URL from session or stored serverUrl
207
- // Ensure URL has protocol (https://) for AgentShield tool discovery
208
- let mcpServerUrl = enhancedSession.serverOrigin || this.serverUrl;
209
- if (mcpServerUrl &&
210
- !mcpServerUrl.startsWith("http://") &&
211
- !mcpServerUrl.startsWith("https://")) {
212
- // Auto-add https:// if protocol missing
213
- mcpServerUrl = `https://${mcpServerUrl}`;
190
+ try {
191
+ // Call parent implementation with enhanced session (generates proof)
192
+ const result = await super.processToolCall(toolName, args, handler, enhancedSession);
193
+ // Resolve only the proof created for this invocation. `lastDetachedProof`
194
+ // is retained solely as a legacy observational accessor.
195
+ const proof = this.proofByInvocation.get(invocationId);
196
+ // Automatically submit proof to AgentShield if available
197
+ // CRITICAL FIX: Await the proof submission directly instead of using ctx.waitUntil()
198
+ // In Durable Objects (McpAgent), ctx.waitUntil() doesn't reliably extend lifetime,
199
+ // causing proof submissions to be cancelled before completion.
200
+ if (proof && this.proofService && enhancedSession) {
201
+ try {
202
+ // Determine MCP server URL from session or stored serverUrl
203
+ // Ensure URL has protocol (https://) for AgentShield tool discovery
204
+ let mcpServerUrl = enhancedSession.serverOrigin || this.serverUrl;
205
+ if (mcpServerUrl &&
206
+ !mcpServerUrl.startsWith("http://") &&
207
+ !mcpServerUrl.startsWith("https://")) {
208
+ // Auto-add https:// if protocol missing
209
+ mcpServerUrl = `https://${mcpServerUrl}`;
210
+ }
211
+ // Submit proof synchronously (await to ensure completion)
212
+ // This adds ~200-400ms latency but guarantees proof submission
213
+ console.error("[CloudflareRuntime] Submitting proof synchronously...");
214
+ await this.proofService.submitProof(proof, {
215
+ session: {
216
+ id: enhancedSession.id || "unknown",
217
+ delegationId: enhancedSession.delegationId,
218
+ },
219
+ toolName,
220
+ args,
221
+ result,
222
+ mcpServerUrl,
223
+ });
224
+ console.error("[CloudflareRuntime] ✅ Proof submission completed");
225
+ }
226
+ catch (error) {
227
+ // Log error but don't fail the tool execution
228
+ console.error("[CloudflareRuntime] Failed to submit proof:", error);
214
229
  }
215
- // Submit proof synchronously (await to ensure completion)
216
- // This adds ~200-400ms latency but guarantees proof submission
217
- console.error("[CloudflareRuntime] Submitting proof synchronously...");
218
- await this.proofService.submitProof(proof, {
219
- session: {
220
- id: enhancedSession.id || "unknown",
221
- delegationId: enhancedSession.delegationId,
222
- },
223
- toolName,
224
- args,
225
- result,
226
- mcpServerUrl,
227
- });
228
- console.error("[CloudflareRuntime] ✅ Proof submission completed");
229
230
  }
230
- catch (error) {
231
- // Log error but don't fail the tool execution
232
- console.error("[CloudflareRuntime] Failed to submit proof:", error);
231
+ // Attach proof to result for MCP Inspector (if result is an object)
232
+ if (proof &&
233
+ result &&
234
+ typeof result === "object" &&
235
+ !Array.isArray(result)) {
236
+ // Attach proof to _meta field for MCP Inspector compatibility
237
+ if (!result._meta) {
238
+ result._meta = {};
239
+ }
240
+ result._meta.proof = {
241
+ jws: proof.jws,
242
+ meta: proof.meta,
243
+ };
233
244
  }
245
+ return result;
234
246
  }
235
- // Attach proof to result for MCP Inspector (if result is an object)
236
- if (proof &&
237
- result &&
238
- typeof result === "object" &&
239
- !Array.isArray(result)) {
240
- // Attach proof to _meta field for MCP Inspector compatibility
241
- if (!result._meta) {
242
- result._meta = {};
243
- }
244
- result._meta.proof = {
245
- jws: proof.jws,
246
- meta: proof.meta,
247
- };
247
+ finally {
248
+ this.proofByInvocation.delete(invocationId);
248
249
  }
249
- return result;
250
250
  }
251
251
  /**
252
252
  * Get the CloudflareProofGenerator instance (for advanced usage)
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Generic Batch Queue (Cloudflare Workers Implementation)
3
+ *
4
+ * Platform-agnostic, type-generic batching for Cloudflare Workers. Collects
5
+ * items in memory and submits them in batches to one or more destinations,
6
+ * without blocking request handling.
7
+ *
8
+ * This is the shared engine behind both the proof batch queue
9
+ * (`proof-batch-queue.ts`) and the KYA-OS activity events emitter
10
+ * (`kya-os-events.service.ts`) so the batching, retry, and flush semantics
11
+ * live in exactly one place.
12
+ *
13
+ * Performance:
14
+ * - Batch size: 10 items (configurable)
15
+ * - Fire-and-forget submission (does not block the caller)
16
+ *
17
+ * Retry Strategy:
18
+ * - Exponential backoff: 1s, 2s, 4s, 8s, 16s
19
+ * - Max retries: 5 (configurable)
20
+ * - Failed items logged and dropped after max retries
21
+ *
22
+ * Note: In Cloudflare Workers, timers do not persist across requests, so
23
+ * automatic flush timers are disabled. Flush is driven by two triggers:
24
+ * within a request when the batch size is reached, and across requests via
25
+ * a scheduled (cron) `flush()` call.
26
+ */
27
+ /**
28
+ * A batch submission destination.
29
+ */
30
+ export interface BatchDestination<T> {
31
+ /** Destination name (for logging). */
32
+ name: string;
33
+ /** Submit a batch of items. Must reject on failure so the queue can retry. */
34
+ submit(items: T[]): Promise<void>;
35
+ }
36
+ /**
37
+ * Batch queue configuration.
38
+ */
39
+ export interface BatchQueueConfig<T> {
40
+ /** Destinations to submit items to. */
41
+ destinations: BatchDestination<T>[];
42
+ /** Maximum batch size before auto-flush. */
43
+ maxBatchSize?: number;
44
+ /** Flush interval in milliseconds (unused in Cloudflare Workers - rely on cron). */
45
+ flushIntervalMs?: number;
46
+ /** Maximum retry attempts for failed batches. */
47
+ maxRetries?: number;
48
+ /** Enable debug logging. */
49
+ debug?: boolean;
50
+ /** Log prefix, e.g. "ProofBatchQueue". Defaults to "BatchQueue". */
51
+ logPrefix?: string;
52
+ /** Singular noun for log messages, e.g. "proof". Defaults to "item". */
53
+ noun?: string;
54
+ }
55
+ /**
56
+ * Generic Batch Queue.
57
+ *
58
+ * Collects items and submits them in batches to multiple destinations.
59
+ *
60
+ * Note: In Cloudflare Workers, timers don't persist across requests, so
61
+ * automatic flush timers are disabled. Use manual `flush()` calls via cron.
62
+ */
63
+ export declare class BatchQueue<T> {
64
+ private queue;
65
+ private pendingBatches;
66
+ private config;
67
+ private closed;
68
+ private stats;
69
+ constructor(config: BatchQueueConfig<T>);
70
+ /** The log prefix, e.g. "[ProofBatchQueue]". */
71
+ private get tag();
72
+ /**
73
+ * Add an item to the queue.
74
+ */
75
+ enqueue(item: T): void;
76
+ /**
77
+ * Flush queue immediately (submit all queued items).
78
+ */
79
+ flush(): Promise<void>;
80
+ /**
81
+ * Submit a batch to a destination (with retries).
82
+ */
83
+ private submitBatch;
84
+ /**
85
+ * Retry pending batches that are ready.
86
+ * Called by cron job or manually.
87
+ */
88
+ retryPending(): Promise<void>;
89
+ /**
90
+ * Close queue and flush remaining items.
91
+ */
92
+ close(): Promise<void>;
93
+ /**
94
+ * Get queue statistics.
95
+ */
96
+ getStats(): {
97
+ queued: number;
98
+ submitted: number;
99
+ failed: number;
100
+ batchesSubmitted: number;
101
+ };
102
+ }
103
+ //# sourceMappingURL=batch-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-queue.d.ts","sourceRoot":"","sources":["../../src/services/batch-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,8EAA8E;IAC9E,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,uCAAuC;IACvC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AASD;;;;;;;GAOG;AACH,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,KAAK,CAKX;gBAEU,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAevC,gDAAgD;IAChD,OAAO,KAAK,GAAG,GAEd;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAqBtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B;;OAEG;YACW,WAAW;IA4CzB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,QAAQ;;;;;;CAGT"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Generic Batch Queue (Cloudflare Workers Implementation)
3
+ *
4
+ * Platform-agnostic, type-generic batching for Cloudflare Workers. Collects
5
+ * items in memory and submits them in batches to one or more destinations,
6
+ * without blocking request handling.
7
+ *
8
+ * This is the shared engine behind both the proof batch queue
9
+ * (`proof-batch-queue.ts`) and the KYA-OS activity events emitter
10
+ * (`kya-os-events.service.ts`) so the batching, retry, and flush semantics
11
+ * live in exactly one place.
12
+ *
13
+ * Performance:
14
+ * - Batch size: 10 items (configurable)
15
+ * - Fire-and-forget submission (does not block the caller)
16
+ *
17
+ * Retry Strategy:
18
+ * - Exponential backoff: 1s, 2s, 4s, 8s, 16s
19
+ * - Max retries: 5 (configurable)
20
+ * - Failed items logged and dropped after max retries
21
+ *
22
+ * Note: In Cloudflare Workers, timers do not persist across requests, so
23
+ * automatic flush timers are disabled. Flush is driven by two triggers:
24
+ * within a request when the batch size is reached, and across requests via
25
+ * a scheduled (cron) `flush()` call.
26
+ */
27
+ /**
28
+ * Generic Batch Queue.
29
+ *
30
+ * Collects items and submits them in batches to multiple destinations.
31
+ *
32
+ * Note: In Cloudflare Workers, timers don't persist across requests, so
33
+ * automatic flush timers are disabled. Use manual `flush()` calls via cron.
34
+ */
35
+ export class BatchQueue {
36
+ queue = [];
37
+ pendingBatches = [];
38
+ config;
39
+ closed = false;
40
+ // Stats
41
+ stats = {
42
+ queued: 0,
43
+ submitted: 0,
44
+ failed: 0,
45
+ batchesSubmitted: 0,
46
+ };
47
+ constructor(config) {
48
+ this.config = {
49
+ destinations: config.destinations,
50
+ maxBatchSize: config.maxBatchSize || 10,
51
+ flushIntervalMs: config.flushIntervalMs || 5000,
52
+ maxRetries: config.maxRetries || 5,
53
+ debug: config.debug || false,
54
+ logPrefix: config.logPrefix || "BatchQueue",
55
+ noun: config.noun || "item",
56
+ };
57
+ // Note: Timers are disabled in Cloudflare Workers.
58
+ // Flush must be called manually via cron jobs.
59
+ }
60
+ /** The log prefix, e.g. "[ProofBatchQueue]". */
61
+ get tag() {
62
+ return `[${this.config.logPrefix}]`;
63
+ }
64
+ /**
65
+ * Add an item to the queue.
66
+ */
67
+ enqueue(item) {
68
+ if (this.closed) {
69
+ console.warn(`${this.tag} Queue is closed, dropping ${this.config.noun}`);
70
+ return;
71
+ }
72
+ this.queue.push(item);
73
+ this.stats.queued++;
74
+ if (this.config.debug) {
75
+ console.error(`${this.tag} Enqueued ${this.config.noun} (queue size: ${this.queue.length})`);
76
+ }
77
+ // Flush immediately if batch size reached (Cloudflare Workers compatible)
78
+ if (this.queue.length >= this.config.maxBatchSize) {
79
+ this.flush();
80
+ }
81
+ }
82
+ /**
83
+ * Flush queue immediately (submit all queued items).
84
+ */
85
+ async flush() {
86
+ if (this.queue.length === 0) {
87
+ return;
88
+ }
89
+ const items = this.queue.splice(0, this.config.maxBatchSize);
90
+ if (this.config.debug) {
91
+ console.error(`${this.tag} Flushing ${items.length} ${this.config.noun}s to ${this.config.destinations.length} destinations`);
92
+ }
93
+ // Submit to all destinations
94
+ for (const destination of this.config.destinations) {
95
+ const batch = {
96
+ items: [...items], // Copy items for each destination
97
+ destination,
98
+ retryCount: 0,
99
+ };
100
+ this.submitBatch(batch); // Fire-and-forget
101
+ }
102
+ }
103
+ /**
104
+ * Submit a batch to a destination (with retries).
105
+ */
106
+ async submitBatch(batch) {
107
+ try {
108
+ await batch.destination.submit(batch.items);
109
+ this.stats.submitted += batch.items.length;
110
+ this.stats.batchesSubmitted++;
111
+ if (this.config.debug) {
112
+ console.error(`${this.tag} Successfully submitted ${batch.items.length} ${this.config.noun}s to ${batch.destination.name}`);
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.error(`${this.tag} Failed to submit to ${batch.destination.name}:`, error);
117
+ // Retry with exponential backoff
118
+ if (batch.retryCount < this.config.maxRetries) {
119
+ batch.retryCount++;
120
+ const backoffMs = Math.min(1000 * Math.pow(2, batch.retryCount - 1), 16000);
121
+ batch.nextRetryAt = Date.now() + backoffMs;
122
+ this.pendingBatches.push(batch);
123
+ if (this.config.debug) {
124
+ console.error(`${this.tag} Scheduling retry ${batch.retryCount}/${this.config.maxRetries} in ${backoffMs}ms`);
125
+ }
126
+ }
127
+ else {
128
+ // Max retries exceeded, drop batch
129
+ this.stats.failed += batch.items.length;
130
+ console.error(`${this.tag} Max retries exceeded for ${batch.destination.name}, dropping ${batch.items.length} ${this.config.noun}s`);
131
+ }
132
+ }
133
+ }
134
+ /**
135
+ * Retry pending batches that are ready.
136
+ * Called by cron job or manually.
137
+ */
138
+ async retryPending() {
139
+ const now = Date.now();
140
+ const retryBatches = this.pendingBatches.filter((batch) => batch.nextRetryAt && batch.nextRetryAt <= now);
141
+ if (retryBatches.length > 0) {
142
+ // Remove from pending
143
+ this.pendingBatches = this.pendingBatches.filter((batch) => !retryBatches.includes(batch));
144
+ // Retry each batch
145
+ for (const batch of retryBatches) {
146
+ this.submitBatch(batch); // Fire-and-forget
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Close queue and flush remaining items.
152
+ */
153
+ async close() {
154
+ if (this.closed) {
155
+ return;
156
+ }
157
+ this.closed = true;
158
+ // Flush remaining items
159
+ if (this.queue.length > 0) {
160
+ await this.flush();
161
+ }
162
+ // Wait for pending batches (with timeout)
163
+ const timeout = 5000; // 5 seconds
164
+ const startTime = Date.now();
165
+ while (this.pendingBatches.length > 0 && Date.now() - startTime < timeout) {
166
+ await this.retryPending();
167
+ await new Promise((resolve) => setTimeout(resolve, 100));
168
+ }
169
+ if (this.pendingBatches.length > 0) {
170
+ console.warn(`${this.tag} Closing with ${this.pendingBatches.length} pending batches (timed out)`);
171
+ }
172
+ }
173
+ /**
174
+ * Get queue statistics.
175
+ */
176
+ getStats() {
177
+ return { ...this.stats };
178
+ }
179
+ }
180
+ //# sourceMappingURL=batch-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-queue.js","sourceRoot":"","sources":["../../src/services/batch-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAwCH;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACb,KAAK,GAAQ,EAAE,CAAC;IAChB,cAAc,GAAe,EAAE,CAAC;IAChC,MAAM,CAAgC;IACtC,MAAM,GAAG,KAAK,CAAC;IAEvB,QAAQ;IACA,KAAK,GAAG;QACd,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,gBAAgB,EAAE,CAAC;KACpB,CAAC;IAEF,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;YACvC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;YAC/C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,YAAY;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM;SAC5B,CAAC;QAEF,mDAAmD;QACnD,+CAA+C;IACjD,CAAC;IAED,gDAAgD;IAChD,IAAY,GAAG;QACb,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAO;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAC9E,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,aAAa,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,eAAe,CAC/G,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,KAAK,GAAa;gBACtB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,kCAAkC;gBACrD,WAAW;gBACX,UAAU,EAAE,CAAC;aACd,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,KAAe;QACvC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,2BAA2B,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAC7G,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,wBAAwB,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAC5D,KAAK,CACN,CAAC;YAEF,iCAAiC;YACjC,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC9C,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EACxC,KAAK,CACN,CAAC;gBACF,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAE3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,qBAAqB,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,OAAO,SAAS,IAAI,CAC/F,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxC,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,CAAC,GAAG,6BAA6B,KAAK,CAAC,WAAW,CAAC,IAAI,cAAc,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CACtH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,GAAG,CACzD,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,sBAAsB;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzC,CAAC;YAEF,mBAAmB;YACnB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,wBAAwB;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAED,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,YAAY;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,GAAG,IAAI,CAAC,GAAG,iBAAiB,IAAI,CAAC,cAAc,CAAC,MAAM,8BAA8B,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,27 +1,20 @@
1
1
  /**
2
2
  * Consent Audit Service
3
3
  *
4
- * Handles audit logging for consent-related events.
5
- * These events bypass session deduplication to allow multiple events per session.
4
+ * Coordinates two independent consent lifecycle outputs:
5
+ * canonical audit trail events and proof submission.
6
6
  */
7
7
  import type { ProofService } from "./proof.service";
8
- import type { IAuditLogger } from "@kya-os/mcp-i-runtime/runtime/audit-logger";
9
8
  import { CloudflareProofGenerator } from "../proof-generator";
10
9
  import type { CloudflareRuntimeConfig } from "../config";
11
10
  import type { CloudflareRuntime } from "../runtime";
12
11
  export declare class ConsentAuditService {
13
12
  private proofService;
14
- private auditLogger;
15
13
  private proofGenerator;
16
14
  private config;
17
15
  private runtime;
18
16
  private logger;
19
- constructor(proofService: ProofService, auditLogger: IAuditLogger, proofGenerator: CloudflareProofGenerator, config: CloudflareRuntimeConfig, runtime: CloudflareRuntime);
20
- /**
21
- * Create a minimal SessionContext for audit logging
22
- * Only sessionId and audience are used by logEvent, but TypeScript requires full SessionContext
23
- */
24
- private createSessionContext;
17
+ constructor(proofService: ProofService, proofGenerator: CloudflareProofGenerator, config: CloudflareRuntimeConfig, runtime: CloudflareRuntime);
25
18
  /**
26
19
  * Log consent page view event
27
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"consent-audit.service.d.ts","sourceRoot":"","sources":["../../src/services/consent-audit.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent-audit.service.d.ts","sourceRoot":"","sources":["../../src/services/consent-audit.service.ts"],"names":[],"mappings":"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"}