@compose-market/core 0.1.3 → 0.1.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAuB,KAAK,CACxB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACvC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAqEnC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAW3G;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAEzG;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,CAAC;AACnC,YAAY,EAAE,KAAK,IAAI,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,113 @@
1
+ const EOL = /\r\n|\r|\n/;
2
+ function split(buffer) {
3
+ const parts = buffer.split(EOL);
4
+ const rest = parts.pop() ?? "";
5
+ return { lines: parts, rest };
6
+ }
7
+ export async function* parse(stream, options = {}) {
8
+ const reader = stream.getReader();
9
+ const decoder = new TextDecoder("utf-8");
10
+ let buffer = "";
11
+ let event = "message";
12
+ let data = [];
13
+ let id;
14
+ let retry;
15
+ const abort = () => {
16
+ try {
17
+ void reader.cancel();
18
+ }
19
+ catch { /* best effort */ }
20
+ };
21
+ options.signal?.addEventListener("abort", abort);
22
+ const flush = function* () {
23
+ if (data.length === 0)
24
+ return;
25
+ yield {
26
+ event,
27
+ data: data.join("\n"),
28
+ ...(id ? { id } : {}),
29
+ ...(retry !== undefined ? { retry } : {}),
30
+ };
31
+ event = "message";
32
+ data = [];
33
+ id = undefined;
34
+ retry = undefined;
35
+ };
36
+ const consume = (line) => {
37
+ if (line === "")
38
+ return Array.from(flush());
39
+ if (line.startsWith(":"))
40
+ return [];
41
+ const colon = line.indexOf(":");
42
+ const field = colon === -1 ? line : line.slice(0, colon);
43
+ let value = colon === -1 ? "" : line.slice(colon + 1);
44
+ if (value.startsWith(" "))
45
+ value = value.slice(1);
46
+ if (field === "event")
47
+ event = value || "message";
48
+ else if (field === "data")
49
+ data.push(value);
50
+ else if (field === "id")
51
+ id = value;
52
+ else if (field === "retry") {
53
+ const parsed = Number.parseInt(value, 10);
54
+ if (Number.isFinite(parsed) && parsed >= 0)
55
+ retry = parsed;
56
+ }
57
+ return [];
58
+ };
59
+ try {
60
+ while (true) {
61
+ const { value, done: ended } = await reader.read();
62
+ if (ended)
63
+ break;
64
+ buffer += decoder.decode(value, { stream: true });
65
+ const chunk = split(buffer);
66
+ buffer = chunk.rest;
67
+ for (const line of chunk.lines) {
68
+ for (const frame of consume(line))
69
+ yield frame;
70
+ }
71
+ }
72
+ buffer += decoder.decode();
73
+ if (buffer.length > 0) {
74
+ const chunk = split(`${buffer}\n`);
75
+ for (const line of chunk.lines) {
76
+ for (const frame of consume(line))
77
+ yield frame;
78
+ }
79
+ }
80
+ for (const frame of flush())
81
+ yield frame;
82
+ }
83
+ finally {
84
+ options.signal?.removeEventListener("abort", abort);
85
+ try {
86
+ reader.releaseLock();
87
+ }
88
+ catch { /* best effort */ }
89
+ }
90
+ }
91
+ export function format(data, options = {}) {
92
+ const lines = [];
93
+ if (options.event)
94
+ lines.push(`event: ${options.event}`);
95
+ if (options.id)
96
+ lines.push(`id: ${options.id}`);
97
+ if (options.retry !== undefined)
98
+ lines.push(`retry: ${options.retry}`);
99
+ const body = typeof data === "string" ? data : JSON.stringify(data);
100
+ for (const line of body.split(/\r\n|\r|\n/)) {
101
+ lines.push(`data: ${line}`);
102
+ }
103
+ lines.push("");
104
+ return `${lines.join("\n")}\n`;
105
+ }
106
+ export function named(event, data, options = {}) {
107
+ return format(data, { ...options, event });
108
+ }
109
+ export function done() {
110
+ return "data: [DONE]\n\n";
111
+ }
112
+ export { parse as parseSSEStream };
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compose-market/core",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Shared Compose.Market SDK runtime primitives: HTTP client, typed errors, retries, storage, streaming parsers, receipts, and x402 wire types.",
5
5
  "keywords": [
6
6
  "compose",
@@ -48,10 +48,25 @@
48
48
  "import": "./dist/streaming/index.js",
49
49
  "default": "./dist/streaming/index.js"
50
50
  },
51
- "./stream": {
52
- "types": "./dist/stream/index.d.ts",
53
- "import": "./dist/stream/index.js",
54
- "default": "./dist/stream/index.js"
51
+ "./transport": {
52
+ "types": "./dist/transport/index.d.ts",
53
+ "import": "./dist/transport/index.js",
54
+ "default": "./dist/transport/index.js"
55
+ },
56
+ "./model": {
57
+ "types": "./dist/model/index.d.ts",
58
+ "import": "./dist/model/index.js",
59
+ "default": "./dist/model/index.js"
60
+ },
61
+ "./activity": {
62
+ "types": "./dist/activity/index.d.ts",
63
+ "import": "./dist/activity/index.js",
64
+ "default": "./dist/activity/index.js"
65
+ },
66
+ "./meta": {
67
+ "types": "./dist/meta/index.d.ts",
68
+ "import": "./dist/meta/index.js",
69
+ "default": "./dist/meta/index.js"
55
70
  },
56
71
  "./streaming/budget": {
57
72
  "types": "./dist/streaming/budget.d.ts",
@@ -1,73 +0,0 @@
1
- export type StreamKind = "run" | "agent" | "text" | "reasoning" | "action" | "tool" | "catalog" | "model" | "connector" | "harness" | "conclave" | "approval" | "artifact" | "receipt" | "payment" | "session" | "error" | "debug";
2
- export type StreamStatus = "pending" | "running" | "completed" | "failed" | "cancelled" | "info";
3
- export interface SSEFrame {
4
- event: string;
5
- data: string;
6
- id?: string;
7
- }
8
- export interface StreamDisplay {
9
- title?: string;
10
- label?: string;
11
- summary?: string;
12
- target?: string;
13
- kind?: StreamKind;
14
- metadata?: Record<string, unknown>;
15
- }
16
- export interface StreamEvent {
17
- type: "stream";
18
- id: string;
19
- kind: StreamKind;
20
- source: string;
21
- parentId?: string;
22
- rootId?: string;
23
- runId?: string;
24
- status?: StreamStatus;
25
- path?: string[];
26
- ts?: number;
27
- display?: StreamDisplay;
28
- payload?: Record<string, unknown>;
29
- raw?: unknown;
30
- delta?: string;
31
- final?: boolean;
32
- }
33
- export interface StreamNode {
34
- id: string;
35
- kind: StreamKind;
36
- source: string;
37
- parentId?: string;
38
- rootId?: string;
39
- runId?: string;
40
- status: StreamStatus;
41
- path: string[];
42
- display: StreamDisplay;
43
- payload?: Record<string, unknown>;
44
- raw?: unknown;
45
- text: string;
46
- children: string[];
47
- updatedAt: number;
48
- events: number;
49
- }
50
- export interface StreamTree {
51
- roots: string[];
52
- nodes: Record<string, StreamNode>;
53
- seen: Record<string, number>;
54
- text: string;
55
- reasoning: string;
56
- artifacts: StreamEvent[];
57
- receipts: StreamEvent[];
58
- errors: StreamEvent[];
59
- }
60
- export interface DecodeOptions {
61
- rootId?: string;
62
- runId?: string;
63
- parentId?: string;
64
- source?: string;
65
- }
66
- export declare function parseSSEStream(stream: ReadableStream<Uint8Array>, options?: {
67
- signal?: AbortSignal;
68
- }): AsyncGenerator<SSEFrame, void, void>;
69
- export declare function encode(event: StreamEvent): string;
70
- export declare function createStreamTree(): StreamTree;
71
- export declare function reduce(tree: StreamTree, event: StreamEvent): StreamTree;
72
- export declare function decode(input: unknown, options?: DecodeOptions): StreamEvent | null;
73
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stream/index.ts"],"names":[],"mappings":"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"}