@compose-market/sdk 0.8.0 → 0.8.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 (128) hide show
  1. package/.speakeasy/a2a.arazzo.yaml +1 -1
  2. package/.speakeasy/memory.arazzo.yaml +1 -1
  3. package/.speakeasy/tests.arazzo.yaml +1 -1
  4. package/generated/inference/esm/lib/config.d.ts +3 -3
  5. package/generated/inference/esm/lib/config.js +3 -3
  6. package/generated/inference/package.json +1 -1
  7. package/generated/inference/src/lib/config.ts +3 -3
  8. package/generated/manowar/esm/lib/config.d.ts +3 -3
  9. package/generated/manowar/esm/lib/config.js +3 -3
  10. package/generated/manowar/package.json +1 -1
  11. package/generated/manowar/src/lib/config.ts +3 -3
  12. package/generated/memory/esm/lib/config.d.ts +3 -3
  13. package/generated/memory/esm/lib/config.js +3 -3
  14. package/generated/memory/package.json +1 -1
  15. package/generated/memory/src/lib/config.ts +3 -3
  16. package/generated/x402/esm/lib/config.d.ts +3 -3
  17. package/generated/x402/esm/lib/config.js +3 -3
  18. package/generated/x402/package.json +1 -1
  19. package/generated/x402/src/lib/config.ts +3 -3
  20. package/package.json +4 -4
  21. package/specs/inference.openapi.yaml +1 -1
  22. package/specs/manowar.openapi.yaml +1 -1
  23. package/specs/memory.openapi.yaml +1 -1
  24. package/specs/x402.openapi.yaml +1 -1
  25. package/dist/errors.d.ts +0 -2
  26. package/dist/errors.d.ts.map +0 -1
  27. package/dist/errors.js +0 -2
  28. package/dist/errors.js.map +0 -1
  29. package/dist/events.d.ts +0 -202
  30. package/dist/events.d.ts.map +0 -1
  31. package/dist/events.js +0 -70
  32. package/dist/events.js.map +0 -1
  33. package/dist/index.d.ts +0 -277
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -551
  36. package/dist/index.js.map +0 -1
  37. package/dist/resources/accounts.d.ts +0 -32
  38. package/dist/resources/accounts.d.ts.map +0 -1
  39. package/dist/resources/accounts.js +0 -128
  40. package/dist/resources/accounts.js.map +0 -1
  41. package/dist/resources/agent.d.ts +0 -58
  42. package/dist/resources/agent.d.ts.map +0 -1
  43. package/dist/resources/agent.js +0 -770
  44. package/dist/resources/agent.js.map +0 -1
  45. package/dist/resources/channels.d.ts +0 -24
  46. package/dist/resources/channels.d.ts.map +0 -1
  47. package/dist/resources/channels.js +0 -74
  48. package/dist/resources/channels.js.map +0 -1
  49. package/dist/resources/directory.d.ts +0 -43
  50. package/dist/resources/directory.d.ts.map +0 -1
  51. package/dist/resources/directory.js +0 -97
  52. package/dist/resources/directory.js.map +0 -1
  53. package/dist/resources/dispenser.d.ts +0 -25
  54. package/dist/resources/dispenser.d.ts.map +0 -1
  55. package/dist/resources/dispenser.js +0 -56
  56. package/dist/resources/dispenser.js.map +0 -1
  57. package/dist/resources/feedback.d.ts +0 -35
  58. package/dist/resources/feedback.d.ts.map +0 -1
  59. package/dist/resources/feedback.js +0 -127
  60. package/dist/resources/feedback.js.map +0 -1
  61. package/dist/resources/inference.d.ts +0 -206
  62. package/dist/resources/inference.d.ts.map +0 -1
  63. package/dist/resources/inference.js +0 -1046
  64. package/dist/resources/inference.js.map +0 -1
  65. package/dist/resources/instrumentation.d.ts +0 -29
  66. package/dist/resources/instrumentation.d.ts.map +0 -1
  67. package/dist/resources/instrumentation.js +0 -43
  68. package/dist/resources/instrumentation.js.map +0 -1
  69. package/dist/resources/keys.d.ts +0 -56
  70. package/dist/resources/keys.d.ts.map +0 -1
  71. package/dist/resources/keys.js +0 -186
  72. package/dist/resources/keys.js.map +0 -1
  73. package/dist/resources/local.d.ts +0 -56
  74. package/dist/resources/local.d.ts.map +0 -1
  75. package/dist/resources/local.js +0 -163
  76. package/dist/resources/local.js.map +0 -1
  77. package/dist/resources/memory.d.ts +0 -249
  78. package/dist/resources/memory.d.ts.map +0 -1
  79. package/dist/resources/memory.js +0 -217
  80. package/dist/resources/memory.js.map +0 -1
  81. package/dist/resources/models.d.ts +0 -45
  82. package/dist/resources/models.d.ts.map +0 -1
  83. package/dist/resources/models.js +0 -101
  84. package/dist/resources/models.js.map +0 -1
  85. package/dist/resources/permissions.d.ts +0 -23
  86. package/dist/resources/permissions.d.ts.map +0 -1
  87. package/dist/resources/permissions.js +0 -69
  88. package/dist/resources/permissions.js.map +0 -1
  89. package/dist/resources/receipts.d.ts +0 -23
  90. package/dist/resources/receipts.d.ts.map +0 -1
  91. package/dist/resources/receipts.js +0 -48
  92. package/dist/resources/receipts.js.map +0 -1
  93. package/dist/resources/session-events.d.ts +0 -51
  94. package/dist/resources/session-events.d.ts.map +0 -1
  95. package/dist/resources/session-events.js +0 -404
  96. package/dist/resources/session-events.js.map +0 -1
  97. package/dist/resources/settlement.d.ts +0 -21
  98. package/dist/resources/settlement.d.ts.map +0 -1
  99. package/dist/resources/settlement.js +0 -30
  100. package/dist/resources/settlement.js.map +0 -1
  101. package/dist/resources/system.d.ts +0 -9
  102. package/dist/resources/system.d.ts.map +0 -1
  103. package/dist/resources/system.js +0 -19
  104. package/dist/resources/system.js.map +0 -1
  105. package/dist/resources/webhooks.d.ts +0 -27
  106. package/dist/resources/webhooks.d.ts.map +0 -1
  107. package/dist/resources/webhooks.js +0 -78
  108. package/dist/resources/webhooks.js.map +0 -1
  109. package/dist/resources/workflow.d.ts +0 -49
  110. package/dist/resources/workflow.d.ts.map +0 -1
  111. package/dist/resources/workflow.js +0 -361
  112. package/dist/resources/workflow.js.map +0 -1
  113. package/dist/resources/x402.d.ts +0 -113
  114. package/dist/resources/x402.d.ts.map +0 -1
  115. package/dist/resources/x402.js +0 -231
  116. package/dist/resources/x402.js.map +0 -1
  117. package/dist/tools/index.d.ts +0 -55
  118. package/dist/tools/index.d.ts.map +0 -1
  119. package/dist/tools/index.js +0 -51
  120. package/dist/tools/index.js.map +0 -1
  121. package/dist/types/index.d.ts +0 -1857
  122. package/dist/types/index.d.ts.map +0 -1
  123. package/dist/types/index.js +0 -14
  124. package/dist/types/index.js.map +0 -1
  125. package/dist/version.d.ts +0 -9
  126. package/dist/version.d.ts.map +0 -1
  127. package/dist/version.js +0 -9
  128. package/dist/version.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  arazzo: 1.0.1
2
2
  info:
3
3
  title: Compose A2A — Agent-to-Agent x402 Payment & Stream
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  summary: |
6
6
  Complete recipe for calling any Compose agent from another agent, a shell
7
7
  script, or any HTTP client using x402 v2 payments. Covers all three EVM
@@ -1,7 +1,7 @@
1
1
  arazzo: 1.0.1
2
2
  info:
3
3
  title: Compose Memory — agent-first contracts
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  summary: |
6
6
  You are an agent. You have memory. Three calls cover 99% of turns.
7
7
 
@@ -2,7 +2,7 @@ arazzo: 1.0.1
2
2
  info:
3
3
  title: Compose SDK Agent-First Workflows
4
4
  summary: E2E workflow contracts for the Compose SDK, inference, x402, and manowar loops.
5
- version: 0.8.0
5
+ version: 0.8.2
6
6
  sourceDescriptions:
7
7
  - name: x402
8
8
  url: ../specs/x402.openapi.yaml
@@ -41,9 +41,9 @@ export type SDKOptions = {
41
41
  export declare function serverURLFromOptions(options: SDKOptions): URL | null;
42
42
  export declare const SDK_METADATA: {
43
43
  readonly language: "typescript";
44
- readonly openapiDocVersion: "0.8.0";
45
- readonly sdkVersion: "0.8.0";
44
+ readonly openapiDocVersion: "0.8.2";
45
+ readonly sdkVersion: "0.8.2";
46
46
  readonly genVersion: "2.904.2";
47
- readonly userAgent: "speakeasy-sdk/typescript 0.8.0 2.904.2 0.7.11 @compose-market/sdk";
47
+ readonly userAgent: "speakeasy-sdk/typescript 0.8.2 2.904.2 0.7.11 @compose-market/sdk";
48
48
  };
49
49
  //# sourceMappingURL=config.d.ts.map
@@ -29,9 +29,9 @@ export function serverURLFromOptions(options) {
29
29
  }
30
30
  export const SDK_METADATA = {
31
31
  language: "typescript",
32
- openapiDocVersion: "0.8.0",
33
- sdkVersion: "0.8.0",
32
+ openapiDocVersion: "0.8.2",
33
+ sdkVersion: "0.8.2",
34
34
  genVersion: "2.904.2",
35
- userAgent: "speakeasy-sdk/typescript 0.8.0 2.904.2 0.7.11 @compose-market/sdk",
35
+ userAgent: "speakeasy-sdk/typescript 0.8.2 2.904.2 0.7.11 @compose-market/sdk",
36
36
  };
37
37
  //# sourceMappingURL=config.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "author": "Compose.Market",
5
5
  "type": "module",
6
6
  "main": "./esm/index.js",
@@ -63,9 +63,9 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
63
63
 
64
64
  export const SDK_METADATA = {
65
65
  language: "typescript",
66
- openapiDocVersion: "0.8.0",
67
- sdkVersion: "0.8.0",
66
+ openapiDocVersion: "0.8.2",
67
+ sdkVersion: "0.8.2",
68
68
  genVersion: "2.904.2",
69
69
  userAgent:
70
- "speakeasy-sdk/typescript 0.8.0 2.904.2 0.7.11 @compose-market/sdk",
70
+ "speakeasy-sdk/typescript 0.8.2 2.904.2 0.7.11 @compose-market/sdk",
71
71
  } as const;
@@ -46,9 +46,9 @@ export type SDKOptions = {
46
46
  export declare function serverURLFromOptions(options: SDKOptions): URL | null;
47
47
  export declare const SDK_METADATA: {
48
48
  readonly language: "typescript";
49
- readonly openapiDocVersion: "0.8.0";
50
- readonly sdkVersion: "0.8.0";
49
+ readonly openapiDocVersion: "0.8.2";
50
+ readonly sdkVersion: "0.8.2";
51
51
  readonly genVersion: "2.884.4";
52
- readonly userAgent: "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.92 @compose-market/sdk";
52
+ readonly userAgent: "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.92 @compose-market/sdk";
53
53
  };
54
54
  //# sourceMappingURL=config.d.ts.map
@@ -34,9 +34,9 @@ export function serverURLFromOptions(options) {
34
34
  }
35
35
  export const SDK_METADATA = {
36
36
  language: "typescript",
37
- openapiDocVersion: "0.8.0",
38
- sdkVersion: "0.8.0",
37
+ openapiDocVersion: "0.8.2",
38
+ sdkVersion: "0.8.2",
39
39
  genVersion: "2.884.4",
40
- userAgent: "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.92 @compose-market/sdk",
40
+ userAgent: "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.92 @compose-market/sdk",
41
41
  };
42
42
  //# sourceMappingURL=config.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "author": "Compose.Market",
5
5
  "type": "module",
6
6
  "main": "./esm/index.js",
@@ -68,9 +68,9 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
68
68
 
69
69
  export const SDK_METADATA = {
70
70
  language: "typescript",
71
- openapiDocVersion: "0.8.0",
72
- sdkVersion: "0.8.0",
71
+ openapiDocVersion: "0.8.2",
72
+ sdkVersion: "0.8.2",
73
73
  genVersion: "2.884.4",
74
74
  userAgent:
75
- "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.92 @compose-market/sdk",
75
+ "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.92 @compose-market/sdk",
76
76
  } as const;
@@ -45,9 +45,9 @@ export type SDKOptions = {
45
45
  export declare function serverURLFromOptions(options: SDKOptions): URL | null;
46
46
  export declare const SDK_METADATA: {
47
47
  readonly language: "typescript";
48
- readonly openapiDocVersion: "0.8.0";
49
- readonly sdkVersion: "0.8.0";
48
+ readonly openapiDocVersion: "0.8.2";
49
+ readonly sdkVersion: "0.8.2";
50
50
  readonly genVersion: "2.881.17";
51
- readonly userAgent: "speakeasy-sdk/typescript 0.8.0 2.881.17 0.6.91 @compose-market/sdk";
51
+ readonly userAgent: "speakeasy-sdk/typescript 0.8.2 2.881.17 0.6.91 @compose-market/sdk";
52
52
  };
53
53
  //# sourceMappingURL=config.d.ts.map
@@ -34,9 +34,9 @@ export function serverURLFromOptions(options) {
34
34
  }
35
35
  export const SDK_METADATA = {
36
36
  language: "typescript",
37
- openapiDocVersion: "0.8.0",
38
- sdkVersion: "0.8.0",
37
+ openapiDocVersion: "0.8.2",
38
+ sdkVersion: "0.8.2",
39
39
  genVersion: "2.881.17",
40
- userAgent: "speakeasy-sdk/typescript 0.8.0 2.881.17 0.6.91 @compose-market/sdk",
40
+ userAgent: "speakeasy-sdk/typescript 0.8.2 2.881.17 0.6.91 @compose-market/sdk",
41
41
  };
42
42
  //# sourceMappingURL=config.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "author": "Compose.Market",
5
5
  "type": "module",
6
6
  "main": "./esm/index.js",
@@ -66,9 +66,9 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
66
66
 
67
67
  export const SDK_METADATA = {
68
68
  language: "typescript",
69
- openapiDocVersion: "0.8.0",
70
- sdkVersion: "0.8.0",
69
+ openapiDocVersion: "0.8.2",
70
+ sdkVersion: "0.8.2",
71
71
  genVersion: "2.881.17",
72
72
  userAgent:
73
- "speakeasy-sdk/typescript 0.8.0 2.881.17 0.6.91 @compose-market/sdk",
73
+ "speakeasy-sdk/typescript 0.8.2 2.881.17 0.6.91 @compose-market/sdk",
74
74
  } as const;
@@ -41,9 +41,9 @@ export type SDKOptions = {
41
41
  export declare function serverURLFromOptions(options: SDKOptions): URL | null;
42
42
  export declare const SDK_METADATA: {
43
43
  readonly language: "typescript";
44
- readonly openapiDocVersion: "0.8.0";
45
- readonly sdkVersion: "0.8.0";
44
+ readonly openapiDocVersion: "0.8.2";
45
+ readonly sdkVersion: "0.8.2";
46
46
  readonly genVersion: "2.884.4";
47
- readonly userAgent: "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.93 @compose-market/sdk";
47
+ readonly userAgent: "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.93 @compose-market/sdk";
48
48
  };
49
49
  //# sourceMappingURL=config.d.ts.map
@@ -29,9 +29,9 @@ export function serverURLFromOptions(options) {
29
29
  }
30
30
  export const SDK_METADATA = {
31
31
  language: "typescript",
32
- openapiDocVersion: "0.8.0",
33
- sdkVersion: "0.8.0",
32
+ openapiDocVersion: "0.8.2",
33
+ sdkVersion: "0.8.2",
34
34
  genVersion: "2.884.4",
35
- userAgent: "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.93 @compose-market/sdk",
35
+ userAgent: "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.93 @compose-market/sdk",
36
36
  };
37
37
  //# sourceMappingURL=config.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "author": "Compose.Market",
5
5
  "type": "module",
6
6
  "main": "./esm/index.js",
@@ -63,9 +63,9 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
63
63
 
64
64
  export const SDK_METADATA = {
65
65
  language: "typescript",
66
- openapiDocVersion: "0.8.0",
67
- sdkVersion: "0.8.0",
66
+ openapiDocVersion: "0.8.2",
67
+ sdkVersion: "0.8.2",
68
68
  genVersion: "2.884.4",
69
69
  userAgent:
70
- "speakeasy-sdk/typescript 0.8.0 2.884.4 0.6.93 @compose-market/sdk",
70
+ "speakeasy-sdk/typescript 0.8.2 2.884.4 0.6.93 @compose-market/sdk",
71
71
  } as const;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Official Compose.Market SDK: Compose Keys, x402 facilitator, multi-provider model catalog, native streaming inference with typed receipts, unified tool-call events, agent + workflow runtime streams, live session events, and wallet-scoped persistence.",
5
5
  "keywords": [
6
6
  "compose",
@@ -239,7 +239,7 @@
239
239
  "build:generated:manowar": "rm -rf generated/manowar/esm && npm --prefix generated/manowar install --ignore-scripts && npm --prefix generated/manowar run build",
240
240
  "build:generated:channels": "rm -rf generated/channels/esm && npm --prefix generated/channels install --ignore-scripts && npm --prefix generated/channels run build",
241
241
  "build:generated": "npm run build:generated:x402 && npm run build:generated:inference && npm run build:generated:memory && npm run build:generated:manowar && npm run build:generated:channels",
242
- "build": "npm run sync-version && npm run clean && tsc -p tsconfig.json && npm run build:generated",
242
+ "build": "npm run sync-version && npm run clean && npm run build:generated",
243
243
  "test": "npm run sync-version && node --import tsx --test tests/sdk.unit.test.ts tests/sdk.streaming.test.ts tests/sdk.contract.test.ts tests/sdk.session-events.test.ts tests/sdk.events.test.ts tests/sdk.runtime-streams.test.ts",
244
244
  "test:build": "npm run build && npm test",
245
245
  "obs:eval": "tsx tests/e2e/eval-recall.ts",
@@ -254,10 +254,10 @@
254
254
  "typescript": "^6.0.3"
255
255
  },
256
256
  "dependencies": {
257
- "@compose-market/core": "^0.2.0",
257
+ "@compose-market/core": "^0.2.2",
258
258
  "@x402/core": "^2.17.0",
259
259
  "@x402/evm": "^2.17.0",
260
- "viem": "^2.53.1",
260
+ "viem": "^2.54.0",
261
261
  "zod": "^4.4.3"
262
262
  },
263
263
  "publishConfig": {
@@ -2,7 +2,7 @@
2
2
  openapi: 3.1.0
3
3
  info:
4
4
  title: Compose Inference
5
- version: 0.8.0
5
+ version: 0.8.2
6
6
  summary: Model discovery, inference, and realtime inference stream contracts.
7
7
  description: |
8
8
  Canonical contract for Compose model discovery, serverless inference,
@@ -2,7 +2,7 @@
2
2
  openapi: 3.1.0
3
3
  info:
4
4
  title: Compose Manowar
5
- version: 0.8.0
5
+ version: 0.8.2
6
6
  summary: Agent, workflow, workspace, connector, MCP, and mesh execution contracts.
7
7
  description: |
8
8
  Canonical contract for Compose manowar loops: agents, workflows, workspace
@@ -2,7 +2,7 @@
2
2
  openapi: 3.1.0
3
3
  info:
4
4
  title: Compose Memory
5
- version: 0.8.0
5
+ version: 0.8.2
6
6
  summary: Agent-first memory loop and low-level memory primitives.
7
7
  description: |
8
8
  Standalone Compose Memory contract. This SDK surface is intentionally
@@ -2,7 +2,7 @@
2
2
  openapi: 3.1.0
3
3
  info:
4
4
  title: Compose x402
5
- version: 0.8.0
5
+ version: 0.8.2
6
6
  summary: x402 settlement, Compose Keys, sessions, payments, and facilitator contracts.
7
7
  description: |
8
8
  Canonical contract for Compose x402 settlement, reusable Compose Keys,
package/dist/errors.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "@compose-market/core/errors";
2
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
package/dist/errors.js DELETED
@@ -1,2 +0,0 @@
1
- export * from "@compose-market/core/errors";
2
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
package/dist/events.d.ts DELETED
@@ -1,202 +0,0 @@
1
- /**
2
- * Typed event bus emitted by `ComposeSDK`.
3
- *
4
- * The event bus is the canonical way for application code to react to
5
- * out-of-band signals from the Compose backend that arrive as a side effect
6
- * of HTTP calls or SSE subscriptions:
7
- *
8
- * - `budget` — session-budget snapshot parsed from response headers
9
- * on every billable call.
10
- * - `sessionInvalid` — `x-session-invalid` header was set, the
11
- * session must be torn down.
12
- * - `sessionExpired` — SSE `session-expired` frame arrived from
13
- * `/api/session/events`.
14
- * - `sessionActive` — SSE `session-active` heartbeat frame arrived.
15
- * - `receipt` — settlement receipt parsed from `X-Receipt`
16
- * (or the SSE `event: receipt` frame).
17
- * - `alert` — typed operational/client alert emitted by Compose
18
- * services, for example session-stream lease rotation.
19
- *
20
- * Listeners are registered with `.on(event, listener)`. The bus is in-memory,
21
- * single-process, unordered across listeners, and never blocks the caller —
22
- * listener exceptions are logged via the SDK logger and discarded.
23
- */
24
- import type { AgentArtifactKind, Alert, Receipt, AgentEventDisplay, PlanDecision, SessionActiveEvent, SessionBudgetSnapshot, SessionExpiredEvent, SessionInvalidReason } from "./types/index.js";
25
- export interface BudgetEvent {
26
- userAddress: string | null;
27
- chainId: number | null;
28
- snapshot: SessionBudgetSnapshot;
29
- /** Request that produced this snapshot. Matches `X-Request-Id`. */
30
- requestId: string | null;
31
- }
32
- export interface SessionInvalidEvent {
33
- userAddress: string | null;
34
- chainId: number | null;
35
- reason: SessionInvalidReason;
36
- requestId: string | null;
37
- }
38
- export interface ReceiptEvent {
39
- userAddress: string | null;
40
- chainId: number | null;
41
- receipt: Receipt;
42
- requestId: string | null;
43
- /**
44
- * Which code path produced the receipt:
45
- * - "response-header" — decoded from `X-Receipt` on a normal
46
- * JSON response.
47
- * - "stream" — parsed from the `event: receipt` SSE
48
- * frame on a streaming inference call.
49
- * - "body" — mirrored from the `receipt` field on
50
- * the JSON body (fallback).
51
- */
52
- source: "response-header" | "stream" | "body";
53
- }
54
- export interface ToolCallLifecycleEvent {
55
- userAddress: string | null;
56
- chainId: number | null;
57
- requestId: string | null;
58
- /** Source stream kind — which resource produced this tool-call event. */
59
- source: "chat" | "responses" | "agent" | "workflow";
60
- /** Opaque id grouping start → end. Derived from the source event if present. */
61
- toolCallId: string;
62
- toolName: string;
63
- /** Optional presentation label. `toolName` remains the stable raw tool id. */
64
- displayName?: string;
65
- /** Structured target metadata from the runtime, when available. */
66
- display?: AgentEventDisplay;
67
- targetKind?: AgentEventDisplay["kind"];
68
- target?: string;
69
- /** Human summary of what the tool is about to do / did. */
70
- summary?: string;
71
- /** `arguments` payload when the source stream includes it. */
72
- arguments?: string;
73
- /** Only present on `toolCallEnd`. */
74
- failed?: boolean;
75
- /** Only present on `toolCallEnd`, when the tool errored. */
76
- error?: string;
77
- }
78
- export interface AgentStreamLifecycleEvent {
79
- userAddress: string | null;
80
- chainId: number | null;
81
- requestId: string | null;
82
- agentWallet: string;
83
- threadId: string;
84
- runId?: string;
85
- }
86
- export interface ChildAgentLifecycleEvent {
87
- userAddress: string | null;
88
- chainId: number | null;
89
- requestId: string | null;
90
- source: "agent";
91
- event: "start" | "tool-start" | "tool-end" | "done" | "error";
92
- rootRunId?: string;
93
- parentRunId?: string;
94
- subId?: string;
95
- depth?: number;
96
- agentWallet?: string;
97
- runKey?: string;
98
- runKeyChain?: string[];
99
- toolName?: string;
100
- input?: unknown;
101
- output?: unknown;
102
- failed?: boolean;
103
- error?: string;
104
- usage?: Record<string, unknown>;
105
- toolBatches?: number;
106
- stopReason?: string;
107
- wallMs?: number;
108
- display?: AgentEventDisplay;
109
- ts?: number;
110
- }
111
- export interface PlanProposalEvent {
112
- type: "plan.proposed" | "approval.requested" | "approval.decided" | "plan.feedback_requested";
113
- proposalId: string;
114
- version: number;
115
- approvalId?: string;
116
- state: string;
117
- decision?: PlanDecision;
118
- rootRunId?: string;
119
- runId?: string;
120
- requestedBy?: string;
121
- proposal?: unknown;
122
- markdown?: string;
123
- ts?: number;
124
- updatedAt?: number;
125
- approver?: string;
126
- reason?: string;
127
- feedback?: string;
128
- display?: AgentEventDisplay;
129
- details?: Record<string, unknown>;
130
- userAddress: string | null;
131
- chainId: number | null;
132
- requestId: string | null;
133
- source: "agent";
134
- }
135
- export interface AgentArtifactEvent {
136
- type: "artifact";
137
- artifactType: AgentArtifactKind;
138
- url?: string;
139
- inline?: boolean;
140
- mimeType?: string;
141
- bytes?: number;
142
- responseId?: string;
143
- status?: string;
144
- jobId?: string;
145
- sourceTool?: string;
146
- runKey?: string;
147
- parentRunId?: string;
148
- raw?: Record<string, unknown>;
149
- userAddress: string | null;
150
- chainId: number | null;
151
- requestId: string | null;
152
- source: "agent" | "child";
153
- }
154
- export interface WorkflowStreamLifecycleEvent {
155
- userAddress: string | null;
156
- chainId: number | null;
157
- requestId: string | null;
158
- workflowWallet: string;
159
- threadId: string;
160
- runId?: string;
161
- }
162
- export interface EventMap {
163
- budget: BudgetEvent;
164
- sessionInvalid: SessionInvalidEvent;
165
- sessionActive: SessionActiveEvent;
166
- sessionExpired: SessionExpiredEvent;
167
- receipt: ReceiptEvent;
168
- alert: Alert;
169
- toolCallStart: ToolCallLifecycleEvent;
170
- toolCallEnd: ToolCallLifecycleEvent;
171
- childAgentStart: ChildAgentLifecycleEvent;
172
- childAgentToolStart: ChildAgentLifecycleEvent;
173
- childAgentToolEnd: ChildAgentLifecycleEvent;
174
- childAgentDone: ChildAgentLifecycleEvent;
175
- childAgentError: ChildAgentLifecycleEvent;
176
- planProposed: PlanProposalEvent;
177
- approvalRequested: PlanProposalEvent;
178
- approvalDecided: PlanProposalEvent;
179
- planFeedbackRequested: PlanProposalEvent;
180
- agentArtifact: AgentArtifactEvent;
181
- agentStreamStart: AgentStreamLifecycleEvent;
182
- agentStreamEnd: AgentStreamLifecycleEvent;
183
- workflowStreamStart: WorkflowStreamLifecycleEvent;
184
- workflowStreamEnd: WorkflowStreamLifecycleEvent;
185
- }
186
- export type EventName = keyof EventMap;
187
- export type EventListener<E extends EventName> = (event: EventMap[E]) => void | Promise<void>;
188
- export interface EventBus {
189
- on<E extends EventName>(event: E, listener: EventListener<E>): () => void;
190
- once<E extends EventName>(event: E, listener: EventListener<E>): () => void;
191
- off<E extends EventName>(event: E, listener: EventListener<E>): void;
192
- emit<E extends EventName>(event: E, payload: EventMap[E]): void;
193
- }
194
- interface InternalBusOptions {
195
- logger?: {
196
- warn?: (msg: string, meta?: Record<string, unknown>) => void;
197
- error?: (msg: string, meta?: Record<string, unknown>) => void;
198
- };
199
- }
200
- export declare function createEventBus(options?: InternalBusOptions): EventBus;
201
- export {};
202
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js DELETED
@@ -1,70 +0,0 @@
1
- /**
2
- * Typed event bus emitted by `ComposeSDK`.
3
- *
4
- * The event bus is the canonical way for application code to react to
5
- * out-of-band signals from the Compose backend that arrive as a side effect
6
- * of HTTP calls or SSE subscriptions:
7
- *
8
- * - `budget` — session-budget snapshot parsed from response headers
9
- * on every billable call.
10
- * - `sessionInvalid` — `x-session-invalid` header was set, the
11
- * session must be torn down.
12
- * - `sessionExpired` — SSE `session-expired` frame arrived from
13
- * `/api/session/events`.
14
- * - `sessionActive` — SSE `session-active` heartbeat frame arrived.
15
- * - `receipt` — settlement receipt parsed from `X-Receipt`
16
- * (or the SSE `event: receipt` frame).
17
- * - `alert` — typed operational/client alert emitted by Compose
18
- * services, for example session-stream lease rotation.
19
- *
20
- * Listeners are registered with `.on(event, listener)`. The bus is in-memory,
21
- * single-process, unordered across listeners, and never blocks the caller —
22
- * listener exceptions are logged via the SDK logger and discarded.
23
- */
24
- export function createEventBus(options = {}) {
25
- const listeners = new Map();
26
- const logger = options.logger;
27
- const register = (event, listener) => {
28
- const existing = listeners.get(event) ?? new Set();
29
- existing.add(listener);
30
- listeners.set(event, existing);
31
- return () => off(event, listener);
32
- };
33
- const off = (event, listener) => {
34
- const set = listeners.get(event);
35
- if (!set)
36
- return;
37
- set.delete(listener);
38
- if (set.size === 0)
39
- listeners.delete(event);
40
- };
41
- const emit = (event, payload) => {
42
- const set = listeners.get(event);
43
- if (!set || set.size === 0)
44
- return;
45
- // Iterate a snapshot so listeners that unsubscribe inside their own
46
- // handler do not mutate the iteration order.
47
- for (const listener of Array.from(set)) {
48
- try {
49
- const result = listener(payload);
50
- if (result && typeof result.catch === "function") {
51
- result.catch((err) => {
52
- logger?.error?.(`[events] async listener for ${event} threw`, { err });
53
- });
54
- }
55
- }
56
- catch (err) {
57
- logger?.error?.(`[events] listener for ${event} threw`, { err });
58
- }
59
- }
60
- };
61
- const once = (event, listener) => {
62
- const wrapped = (payload) => {
63
- off(event, wrapped);
64
- return listener(payload);
65
- };
66
- return register(event, wrapped);
67
- };
68
- return { on: register, once, off, emit };
69
- }
70
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6MH,MAAM,UAAU,cAAc,CAAC,UAA8B,EAAE;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4C,CAAC;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,MAAM,QAAQ,GAAG,CAAsB,KAAQ,EAAE,QAA0B,EAAgB,EAAE;QACzF,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACnD,QAAQ,CAAC,GAAG,CAAC,QAAoC,CAAC,CAAC;QACnD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAsB,KAAQ,EAAE,QAA0B,EAAQ,EAAE;QAC5E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,QAAoC,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAsB,KAAQ,EAAE,OAAoB,EAAQ,EAAE;QACvE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QACnC,oEAAoE;QACpE,6CAA6C;QAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAI,QAA6B,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,MAAM,IAAI,OAAQ,MAAwB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBACjE,MAAwB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACpC,MAAM,EAAE,KAAK,EAAE,CAAC,+BAA+B,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3E,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,EAAE,KAAK,EAAE,CAAC,yBAAyB,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAsB,KAAQ,EAAE,QAA0B,EAAgB,EAAE;QACrF,MAAM,OAAO,GAAqB,CAAC,OAAO,EAAE,EAAE;YAC1C,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC"}