@amalgm/chat 0.1.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/PURPOSE.md +107 -0
- package/README.md +41 -0
- package/dist/contract/chat-input.d.ts +144 -0
- package/dist/contract/chat-input.d.ts.map +1 -0
- package/dist/contract/chat-input.js +261 -0
- package/dist/contract/chat-input.js.map +1 -0
- package/dist/contract/create.d.ts +191 -0
- package/dist/contract/create.d.ts.map +1 -0
- package/dist/contract/create.js +249 -0
- package/dist/contract/create.js.map +1 -0
- package/dist/contract/freeze.d.ts +85 -0
- package/dist/contract/freeze.d.ts.map +1 -0
- package/dist/contract/freeze.js +151 -0
- package/dist/contract/freeze.js.map +1 -0
- package/dist/contract/harnesses.d.ts +21 -0
- package/dist/contract/harnesses.d.ts.map +1 -0
- package/dist/contract/harnesses.js +39 -0
- package/dist/contract/harnesses.js.map +1 -0
- package/dist/contract/index.d.ts +17 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +17 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/input.d.ts +45 -0
- package/dist/contract/input.d.ts.map +1 -0
- package/dist/contract/input.js +78 -0
- package/dist/contract/input.js.map +1 -0
- package/dist/contract/models.d.ts +57 -0
- package/dist/contract/models.d.ts.map +1 -0
- package/dist/contract/models.js +380 -0
- package/dist/contract/models.js.map +1 -0
- package/dist/contract/payload-merge.d.ts +76 -0
- package/dist/contract/payload-merge.d.ts.map +1 -0
- package/dist/contract/payload-merge.js +215 -0
- package/dist/contract/payload-merge.js.map +1 -0
- package/dist/events/constructors.d.ts +53 -0
- package/dist/events/constructors.d.ts.map +1 -0
- package/dist/events/constructors.js +217 -0
- package/dist/events/constructors.js.map +1 -0
- package/dist/events/index.d.ts +12 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +12 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/schema.d.ts +455 -0
- package/dist/events/schema.d.ts.map +1 -0
- package/dist/events/schema.js +228 -0
- package/dist/events/schema.js.map +1 -0
- package/dist/events/tool-display.d.ts +22 -0
- package/dist/events/tool-display.d.ts.map +1 -0
- package/dist/events/tool-display.js +60 -0
- package/dist/events/tool-display.js.map +1 -0
- package/dist/events/tool-shape.d.ts +48 -0
- package/dist/events/tool-shape.d.ts.map +1 -0
- package/dist/events/tool-shape.js +225 -0
- package/dist/events/tool-shape.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/normalizers/claude.d.ts +628 -0
- package/dist/normalizers/claude.d.ts.map +1 -0
- package/dist/normalizers/claude.js +603 -0
- package/dist/normalizers/claude.js.map +1 -0
- package/dist/normalizers/codex.d.ts +352 -0
- package/dist/normalizers/codex.d.ts.map +1 -0
- package/dist/normalizers/codex.js +485 -0
- package/dist/normalizers/codex.js.map +1 -0
- package/dist/normalizers/cursor.d.ts +34 -0
- package/dist/normalizers/cursor.d.ts.map +1 -0
- package/dist/normalizers/cursor.js +197 -0
- package/dist/normalizers/cursor.js.map +1 -0
- package/dist/normalizers/index.d.ts +13 -0
- package/dist/normalizers/index.d.ts.map +1 -0
- package/dist/normalizers/index.js +13 -0
- package/dist/normalizers/index.js.map +1 -0
- package/dist/normalizers/opencode.d.ts +81 -0
- package/dist/normalizers/opencode.d.ts.map +1 -0
- package/dist/normalizers/opencode.js +640 -0
- package/dist/normalizers/opencode.js.map +1 -0
- package/dist/normalizers/pi.d.ts +28 -0
- package/dist/normalizers/pi.d.ts.map +1 -0
- package/dist/normalizers/pi.js +160 -0
- package/dist/normalizers/pi.js.map +1 -0
- package/dist/ports.d.ts +14 -0
- package/dist/ports.d.ts.map +1 -0
- package/dist/ports.js +7 -0
- package/dist/ports.js.map +1 -0
- package/dist/transcript/index.d.ts +14 -0
- package/dist/transcript/index.d.ts.map +1 -0
- package/dist/transcript/index.js +12 -0
- package/dist/transcript/index.js.map +1 -0
- package/dist/transcript/message-reducer.d.ts +167 -0
- package/dist/transcript/message-reducer.d.ts.map +1 -0
- package/dist/transcript/message-reducer.js +400 -0
- package/dist/transcript/message-reducer.js.map +1 -0
- package/dist/transcript/part-accumulator.d.ts +24 -0
- package/dist/transcript/part-accumulator.d.ts.map +1 -0
- package/dist/transcript/part-accumulator.js +30 -0
- package/dist/transcript/part-accumulator.js.map +1 -0
- package/dist/transcript/tool-display.d.ts +14 -0
- package/dist/transcript/tool-display.d.ts.map +1 -0
- package/dist/transcript/tool-display.js +125 -0
- package/dist/transcript/tool-display.js.map +1 -0
- package/dist/transcript/tool-shape.d.ts +34 -0
- package/dist/transcript/tool-shape.d.ts.map +1 -0
- package/dist/transcript/tool-shape.js +216 -0
- package/dist/transcript/tool-shape.js.map +1 -0
- package/dist/turns/index.d.ts +11 -0
- package/dist/turns/index.d.ts.map +1 -0
- package/dist/turns/index.js +11 -0
- package/dist/turns/index.js.map +1 -0
- package/dist/turns/queries.d.ts +36 -0
- package/dist/turns/queries.d.ts.map +1 -0
- package/dist/turns/queries.js +37 -0
- package/dist/turns/queries.js.map +1 -0
- package/dist/turns/replay.d.ts +105 -0
- package/dist/turns/replay.d.ts.map +1 -0
- package/dist/turns/replay.js +163 -0
- package/dist/turns/replay.js.map +1 -0
- package/dist/turns/status.d.ts +49 -0
- package/dist/turns/status.d.ts.map +1 -0
- package/dist/turns/status.js +56 -0
- package/dist/turns/status.js.map +1 -0
- package/dist/turns/turn-store.d.ts +109 -0
- package/dist/turns/turn-store.d.ts.map +1 -0
- package/dist/turns/turn-store.js +169 -0
- package/dist/turns/turn-store.js.map +1 -0
- package/dist/usage/finalize.d.ts +57 -0
- package/dist/usage/finalize.d.ts.map +1 -0
- package/dist/usage/finalize.js +139 -0
- package/dist/usage/finalize.js.map +1 -0
- package/dist/usage/index.d.ts +11 -0
- package/dist/usage/index.d.ts.map +1 -0
- package/dist/usage/index.js +11 -0
- package/dist/usage/index.js.map +1 -0
- package/dist/usage/model-catalog.d.ts +50 -0
- package/dist/usage/model-catalog.d.ts.map +1 -0
- package/dist/usage/model-catalog.js +344 -0
- package/dist/usage/model-catalog.js.map +1 -0
- package/dist/usage/normalize.d.ts +103 -0
- package/dist/usage/normalize.d.ts.map +1 -0
- package/dist/usage/normalize.js +71 -0
- package/dist/usage/normalize.js.map +1 -0
- package/dist/usage/ports.d.ts +141 -0
- package/dist/usage/ports.d.ts.map +1 -0
- package/dist/usage/ports.js +113 -0
- package/dist/usage/ports.js.map +1 -0
- package/dist/usage/tokens.d.ts +79 -0
- package/dist/usage/tokens.d.ts.map +1 -0
- package/dist/usage/tokens.js +98 -0
- package/dist/usage/tokens.js.map +1 -0
- package/dist/warm/client-cache.d.ts +47 -0
- package/dist/warm/client-cache.d.ts.map +1 -0
- package/dist/warm/client-cache.js +48 -0
- package/dist/warm/client-cache.js.map +1 -0
- package/dist/warm/envelope-cache.d.ts +79 -0
- package/dist/warm/envelope-cache.d.ts.map +1 -0
- package/dist/warm/envelope-cache.js +85 -0
- package/dist/warm/envelope-cache.js.map +1 -0
- package/dist/warm/index.d.ts +16 -0
- package/dist/warm/index.d.ts.map +1 -0
- package/dist/warm/index.js +11 -0
- package/dist/warm/index.js.map +1 -0
- package/dist/warm/payload.d.ts +137 -0
- package/dist/warm/payload.d.ts.map +1 -0
- package/dist/warm/payload.js +112 -0
- package/dist/warm/payload.js.map +1 -0
- package/dist/warm/revision.d.ts +70 -0
- package/dist/warm/revision.d.ts.map +1 -0
- package/dist/warm/revision.js +63 -0
- package/dist/warm/revision.js.map +1 -0
- package/dist/warm/store-policy.d.ts +57 -0
- package/dist/warm/store-policy.d.ts.map +1 -0
- package/dist/warm/store-policy.js +89 -0
- package/dist/warm/store-policy.js.map +1 -0
- package/dist/wire/frames.d.ts +208 -0
- package/dist/wire/frames.d.ts.map +1 -0
- package/dist/wire/frames.js +245 -0
- package/dist/wire/frames.js.map +1 -0
- package/dist/wire/index.d.ts +7 -0
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +7 -0
- package/dist/wire/index.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire projection — engine `chat-core/sse.js` (206 lines) ported byte-exact:
|
|
3
|
+
* amalgm events → the ACP-shaped `AgentStreamEvent` the browser consumes,
|
|
4
|
+
* SSE frame strings, frame id numbering, and the PromptUsage projection.
|
|
5
|
+
*
|
|
6
|
+
* Everything here is pure. The engine's `writeSseHeaders(res)` is the one
|
|
7
|
+
* host-side effect; its header set is exported as a constant and the
|
|
8
|
+
* res-writing helper takes a structural `writeHead` target so hosts can
|
|
9
|
+
* pass their own response object (no `node:http` import).
|
|
10
|
+
*/
|
|
11
|
+
import { toolKind as canonicalToolKind } from '../transcript/tool-shape.js';
|
|
12
|
+
import { totalUsageTokens } from '../usage/tokens.js';
|
|
13
|
+
/**
|
|
14
|
+
* Engine sse.js:6-41. Project any usage-ish record into PromptUsage.
|
|
15
|
+
* `totalTokens` obeys the token-total law (`usage.js:123-127`, ported at
|
|
16
|
+
* `src/usage/tokens.ts`): tokenList.total, else inputContextSize, else the
|
|
17
|
+
* sum of the four non-thought buckets.
|
|
18
|
+
*/
|
|
19
|
+
export function toPromptUsage(usage) {
|
|
20
|
+
if (!usage)
|
|
21
|
+
return undefined;
|
|
22
|
+
const totalTokens = totalUsageTokens(usage);
|
|
23
|
+
const tokenList = usage['tokenList'] || {
|
|
24
|
+
input: Number(usage['inputTokens'] || 0),
|
|
25
|
+
output: Number(usage['outputTokens'] || 0),
|
|
26
|
+
cacheRead: Number(usage['cacheReadTokens'] || 0),
|
|
27
|
+
cacheWrite: Number(usage['cacheWriteTokens'] || 0),
|
|
28
|
+
thought: Number(usage['thoughtTokens'] || 0),
|
|
29
|
+
total: totalTokens,
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
tokenList,
|
|
33
|
+
cumulativeTokenList: usage['cumulativeTokenList'] ?? null,
|
|
34
|
+
previousCumulativeTokenList: usage['previousCumulativeTokenList'] ?? null,
|
|
35
|
+
inputTokens: Number(tokenList.input || 0),
|
|
36
|
+
outputTokens: Number(tokenList.output || 0),
|
|
37
|
+
cacheReadTokens: Number(tokenList.cacheRead || 0),
|
|
38
|
+
cacheWriteTokens: Number(tokenList.cacheWrite || 0),
|
|
39
|
+
thoughtTokens: Number(tokenList.thought || 0),
|
|
40
|
+
inputContextSize: usage['inputContextSize'] ?? tokenList.total ?? totalTokens,
|
|
41
|
+
totalTokens,
|
|
42
|
+
contextUsedTokens: usage['contextUsedTokens'] ?? usage['inputContextSize'] ?? tokenList.total ?? null,
|
|
43
|
+
contextLimit: usage['contextLimit'] ?? null,
|
|
44
|
+
usedTokens: usage['usedTokens'] ?? usage['contextUsedTokens'] ?? usage['inputContextSize'] ?? tokenList.total ?? null,
|
|
45
|
+
lastUsedTokens: usage['lastUsedTokens'] ?? usage['contextUsedTokens'] ?? usage['inputContextSize'] ?? tokenList.total ?? null,
|
|
46
|
+
maxTokens: usage['maxTokens'] ?? usage['contextLimit'] ?? null,
|
|
47
|
+
totalProcessedTokens: usage['totalProcessedTokens'] ?? null,
|
|
48
|
+
costUsd: usage['costUsd'] ?? null,
|
|
49
|
+
marketCostUsd: usage['marketCostUsd'] ?? null,
|
|
50
|
+
operation: usage['operation'],
|
|
51
|
+
billable: usage['billable'] !== false,
|
|
52
|
+
source: usage['source'],
|
|
53
|
+
exact: usage['exact'] === true,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/** Engine sse.js:43-46. Rounded context occupancy; non-positive → 0. */
|
|
57
|
+
function usageContextUsed(usage) {
|
|
58
|
+
const parsed = Number(usage?.['inputContextSize'] ?? usage?.['tokenList']?.total ?? usage?.['contextUsedTokens'] ?? usage?.['usedTokens']);
|
|
59
|
+
return Number.isFinite(parsed) && parsed > 0 ? Math.round(parsed) : 0;
|
|
60
|
+
}
|
|
61
|
+
/** Engine sse.js:48-51. */
|
|
62
|
+
function usageContextLimit(usage) {
|
|
63
|
+
const parsed = Number(usage?.['contextLimit'] ?? usage?.['maxTokens']);
|
|
64
|
+
return Number.isFinite(parsed) && parsed > 0 ? Math.round(parsed) : 0;
|
|
65
|
+
}
|
|
66
|
+
/** Engine sse.js:53-63. Legacy ACP-ish kind fallback layered over the canonical classifier. */
|
|
67
|
+
function toolKind(name) {
|
|
68
|
+
const clean = String(name || '').toLowerCase();
|
|
69
|
+
const canonical = canonicalToolKind(name);
|
|
70
|
+
if (canonical && canonical !== 'unknown')
|
|
71
|
+
return canonical;
|
|
72
|
+
if (clean.includes('bash') || clean.includes('command'))
|
|
73
|
+
return 'execute';
|
|
74
|
+
if (clean.includes('read'))
|
|
75
|
+
return 'read';
|
|
76
|
+
if (clean.includes('edit') || clean.includes('write') || clean.includes('file'))
|
|
77
|
+
return 'edit';
|
|
78
|
+
if (clean.includes('grep') || clean.includes('glob') || clean.includes('search'))
|
|
79
|
+
return 'search';
|
|
80
|
+
if (clean.includes('fetch'))
|
|
81
|
+
return 'fetch';
|
|
82
|
+
return 'other';
|
|
83
|
+
}
|
|
84
|
+
/** Engine sse.js:65-181. The amalgm-event → AgentStreamEvent projection; unknown types become `session_info_update`. */
|
|
85
|
+
export function toAgentStreamEvent(e, context = {}) {
|
|
86
|
+
if (e['type'] === 'text.delta') {
|
|
87
|
+
return { _type: 'update', eventTimestamp: e['ts'], sessionUpdate: 'agent_message_chunk', content: { type: 'text', text: e['text'] || '' } };
|
|
88
|
+
}
|
|
89
|
+
if (e['type'] === 'text.boundary') {
|
|
90
|
+
return { _type: 'update', eventTimestamp: e['ts'], sessionUpdate: 'agent_message_boundary', itemId: e['itemId'] || null, reason: e['reason'] || null };
|
|
91
|
+
}
|
|
92
|
+
if (e['type'] === 'reasoning.delta') {
|
|
93
|
+
return { _type: 'update', eventTimestamp: e['ts'], sessionUpdate: 'agent_thought_chunk', content: { type: 'text', text: e['text'] || '' } };
|
|
94
|
+
}
|
|
95
|
+
if (e['type'] === 'tool.started') {
|
|
96
|
+
return {
|
|
97
|
+
_type: 'update',
|
|
98
|
+
eventTimestamp: e['ts'],
|
|
99
|
+
sessionUpdate: 'tool_call',
|
|
100
|
+
toolCallId: e['toolCallId'],
|
|
101
|
+
toolName: e['toolName'] || e['name'],
|
|
102
|
+
title: e['title'] || e['toolName'],
|
|
103
|
+
kind: e['kind'] || toolKind(e['toolName']),
|
|
104
|
+
status: 'in_progress',
|
|
105
|
+
rawInput: e['input'] || {},
|
|
106
|
+
metadata: e['metadata'] || undefined,
|
|
107
|
+
timing: e['timing'] || undefined,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (e['type'] === 'tool.updated') {
|
|
111
|
+
return {
|
|
112
|
+
_type: 'update',
|
|
113
|
+
eventTimestamp: e['ts'],
|
|
114
|
+
sessionUpdate: 'tool_call_update',
|
|
115
|
+
toolCallId: e['toolCallId'],
|
|
116
|
+
toolName: e['toolName'] || e['name'],
|
|
117
|
+
title: e['title'] || null,
|
|
118
|
+
kind: e['kind'] || null,
|
|
119
|
+
status: e['status'] || 'in_progress',
|
|
120
|
+
rawInput: e['inputDelta'] || undefined,
|
|
121
|
+
rawOutput: e['outputDelta'] ?? e['output'] ?? undefined,
|
|
122
|
+
error: e['error'] || undefined,
|
|
123
|
+
metadata: e['metadata'] || undefined,
|
|
124
|
+
timing: e['timing'] || undefined,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
if (e['type'] === 'tool.completed') {
|
|
128
|
+
return {
|
|
129
|
+
_type: 'update',
|
|
130
|
+
eventTimestamp: e['ts'],
|
|
131
|
+
sessionUpdate: 'tool_call_update',
|
|
132
|
+
toolCallId: e['toolCallId'],
|
|
133
|
+
toolName: e['toolName'] || e['name'],
|
|
134
|
+
title: e['title'] || null,
|
|
135
|
+
kind: e['kind'] || null,
|
|
136
|
+
status: e['isError'] ? 'failed' : 'completed',
|
|
137
|
+
rawInput: e['input'] || undefined,
|
|
138
|
+
rawOutput: e['output'] ?? e['result'] ?? '',
|
|
139
|
+
error: e['error'] || undefined,
|
|
140
|
+
metadata: e['metadata'] || undefined,
|
|
141
|
+
timing: e['timing'] || undefined,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (e['type'] === 'usage.final') {
|
|
145
|
+
const usage = toPromptUsage(e['usage']);
|
|
146
|
+
const contextUsed = usageContextUsed(e['usage']);
|
|
147
|
+
const contextLimit = usageContextLimit(e['usage']);
|
|
148
|
+
const fallbackTotal = usage?.totalTokens || 0;
|
|
149
|
+
return {
|
|
150
|
+
_type: 'update',
|
|
151
|
+
eventTimestamp: e['ts'],
|
|
152
|
+
sessionUpdate: 'usage_update',
|
|
153
|
+
used: contextUsed || fallbackTotal,
|
|
154
|
+
size: contextLimit || null,
|
|
155
|
+
inputContextSize: usage?.inputContextSize ?? undefined,
|
|
156
|
+
cost: usage?.costUsd != null ? { amount: usage.costUsd, currency: 'USD' } : null,
|
|
157
|
+
usage,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (e['type'] === 'compaction.started') {
|
|
161
|
+
return {
|
|
162
|
+
_type: 'update',
|
|
163
|
+
eventTimestamp: e['ts'],
|
|
164
|
+
sessionUpdate: 'compaction_boundary',
|
|
165
|
+
phase: 'started',
|
|
166
|
+
trigger: e['trigger'] || 'auto',
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (e['type'] === 'compaction.finished') {
|
|
170
|
+
return {
|
|
171
|
+
_type: 'update',
|
|
172
|
+
eventTimestamp: e['ts'],
|
|
173
|
+
sessionUpdate: 'compaction_boundary',
|
|
174
|
+
phase: 'finished',
|
|
175
|
+
trigger: e['trigger'] || 'auto',
|
|
176
|
+
preTokens: e['preTokens'] ?? null,
|
|
177
|
+
postTokens: e['postTokens'] ?? null,
|
|
178
|
+
durationMs: e['durationMs'] ?? null,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
if (e['type'] === 'warning') {
|
|
182
|
+
return {
|
|
183
|
+
_type: 'model_error',
|
|
184
|
+
error: e['message'] || 'Runtime warning',
|
|
185
|
+
requestedModel: e['requestedModel'] || '',
|
|
186
|
+
eventTimestamp: e['ts'],
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
if (e['type'] === 'error')
|
|
190
|
+
return { _type: 'error', message: e['message'] || 'Unknown error', eventTimestamp: e['ts'] };
|
|
191
|
+
if (e['type'] === 'done') {
|
|
192
|
+
return {
|
|
193
|
+
_type: 'complete',
|
|
194
|
+
codeSessionId: context.sessionId,
|
|
195
|
+
providerSessionId: e['providerSessionId'] || context.providerSessionId || null,
|
|
196
|
+
stopReason: e['stopReason'] || 'end_turn',
|
|
197
|
+
usage: toPromptUsage(context.usage || e['usage']),
|
|
198
|
+
eventTimestamp: e['ts'],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
return { _type: 'update', eventTimestamp: e['ts'], sessionUpdate: 'session_info_update' };
|
|
202
|
+
}
|
|
203
|
+
/** Engine sse.js:183-185. One SSE data frame: `data: <json>\n\n`. */
|
|
204
|
+
export function frameFor(e, context) {
|
|
205
|
+
return `data: ${JSON.stringify(toAgentStreamEvent(e, context))}\n\n`;
|
|
206
|
+
}
|
|
207
|
+
/** Engine sse.js:187-189. */
|
|
208
|
+
export function titleFrame({ sessionId, title }) {
|
|
209
|
+
return `data: ${JSON.stringify({ _type: 'title_generated', sessionId, title })}\n\n`;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Engine sse.js:191-196. Frame id numbering law: prepend `id: <n>\n` only
|
|
213
|
+
* for non-negative integers (Number-coerced), and never double-stamp a
|
|
214
|
+
* frame that already starts with `id:`.
|
|
215
|
+
*/
|
|
216
|
+
export function withSseId(frame, id) {
|
|
217
|
+
const cleanId = Number(id);
|
|
218
|
+
if (!Number.isInteger(cleanId) || cleanId < 0)
|
|
219
|
+
return frame;
|
|
220
|
+
if (String(frame || '').startsWith('id:'))
|
|
221
|
+
return frame;
|
|
222
|
+
return `id: ${cleanId}\n${frame}`;
|
|
223
|
+
}
|
|
224
|
+
/** Engine sse.js:199-203 status code. */
|
|
225
|
+
export const SSE_STATUS_CODE = 200;
|
|
226
|
+
/** Engine sse.js:199-203 header set, exported for hosts that write headers themselves. */
|
|
227
|
+
export const SSE_HEADERS = Object.freeze({
|
|
228
|
+
'Content-Type': 'text/event-stream',
|
|
229
|
+
'Cache-Control': 'no-cache, no-transform',
|
|
230
|
+
Connection: 'keep-alive',
|
|
231
|
+
});
|
|
232
|
+
/**
|
|
233
|
+
* Engine sse.js:198-204. HOST-SIDE EFFECT: writes the SSE status + headers
|
|
234
|
+
* to the supplied response object. Pure with respect to imports — the
|
|
235
|
+
* response is injected; hosts on non-Node stacks should use
|
|
236
|
+
* {@link SSE_HEADERS} / {@link SSE_STATUS_CODE} directly.
|
|
237
|
+
*/
|
|
238
|
+
export function writeSseHeaders(res) {
|
|
239
|
+
res.writeHead(SSE_STATUS_CODE, {
|
|
240
|
+
'Content-Type': 'text/event-stream',
|
|
241
|
+
'Cache-Control': 'no-cache, no-transform',
|
|
242
|
+
Connection: 'keep-alive',
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=frames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/wire/frames.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@amalgm/chat/wire` — the SSE wire projection (engine `chat-core/sse.js`):
|
|
3
|
+
* amalgm events → ACP-shaped AgentStreamEvent frames, frame id numbering,
|
|
4
|
+
* PromptUsage projection, and the SSE header contract.
|
|
5
|
+
*/
|
|
6
|
+
export { toAgentStreamEvent, toPromptUsage, frameFor, titleFrame, withSseId, writeSseHeaders, SSE_HEADERS, SSE_STATUS_CODE, type AmalgmEventLike, type StreamContext, type PromptUsage, type PromptTokenList, type AgentStreamEvent, type AgentMessageChunkFrame, type AgentMessageBoundaryFrame, type AgentThoughtChunkFrame, type ToolCallFrame, type ToolCallUpdateFrame, type UsageUpdateFrame, type CompactionStartedFrame, type CompactionFinishedFrame, type SessionInfoUpdateFrame, type ModelErrorFrame, type ErrorFrame, type CompleteFrame, type TitleGeneratedFrame, type SseHeadTarget, } from './frames.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@amalgm/chat/wire` — the SSE wire projection (engine `chat-core/sse.js`):
|
|
3
|
+
* amalgm events → ACP-shaped AgentStreamEvent frames, frame id numbering,
|
|
4
|
+
* PromptUsage projection, and the SSE header contract.
|
|
5
|
+
*/
|
|
6
|
+
export { toAgentStreamEvent, toPromptUsage, frameFor, titleFrame, withSseId, writeSseHeaders, SSE_HEADERS, SSE_STATUS_CODE, } from './frames.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wire/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,GAoBhB,MAAM,aAAa,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@amalgm/chat",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The Amalgm chat SDK — the conversation pipeline's laws: turns, messages, streaming assembly, event normalization, and transcript truth, behind host-injected adapters.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/amalgm-inc/amalgm-chat.git"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./events": {
|
|
20
|
+
"types": "./dist/events/index.d.ts",
|
|
21
|
+
"default": "./dist/events/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./wire": {
|
|
24
|
+
"types": "./dist/wire/index.d.ts",
|
|
25
|
+
"default": "./dist/wire/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./transcript": {
|
|
28
|
+
"types": "./dist/transcript/index.d.ts",
|
|
29
|
+
"default": "./dist/transcript/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./turns": {
|
|
32
|
+
"types": "./dist/turns/index.d.ts",
|
|
33
|
+
"default": "./dist/turns/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./contract": {
|
|
36
|
+
"types": "./dist/contract/index.d.ts",
|
|
37
|
+
"default": "./dist/contract/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./warm": {
|
|
40
|
+
"types": "./dist/warm/index.d.ts",
|
|
41
|
+
"default": "./dist/warm/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./usage": {
|
|
44
|
+
"types": "./dist/usage/index.d.ts",
|
|
45
|
+
"default": "./dist/usage/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./normalizers": {
|
|
48
|
+
"types": "./dist/normalizers/index.d.ts",
|
|
49
|
+
"default": "./dist/normalizers/index.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"files": [
|
|
53
|
+
"dist",
|
|
54
|
+
"PURPOSE.md"
|
|
55
|
+
],
|
|
56
|
+
"engines": {
|
|
57
|
+
"node": ">=18"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"build": "tsc -p tsconfig.json",
|
|
61
|
+
"test": "npm run build && node --test tests/",
|
|
62
|
+
"test:parity": "npm run build && node --test tests/parity/"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.206",
|
|
66
|
+
"@opencode-ai/sdk": "^1.17.6",
|
|
67
|
+
"zod": "^4.4.3"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"typescript": "^5.7.3"
|
|
71
|
+
}
|
|
72
|
+
}
|