@amalgm/chat 0.1.2 → 0.2.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/AGENTS.md +98 -0
- package/PURPOSE.md +143 -112
- package/README.md +82 -54
- package/dist/acp/index.d.ts +7 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +7 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/projection.d.ts +30 -0
- package/dist/acp/projection.d.ts.map +1 -0
- package/dist/acp/projection.js +147 -0
- package/dist/acp/projection.js.map +1 -0
- package/dist/api/conversations.d.ts +66 -0
- package/dist/api/conversations.d.ts.map +1 -0
- package/dist/api/conversations.js +202 -0
- package/dist/api/conversations.js.map +1 -0
- package/dist/api/index.d.ts +3 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -2
- package/dist/api/index.js.map +1 -1
- package/dist/conversations/index.d.ts +3 -0
- package/dist/conversations/index.d.ts.map +1 -0
- package/dist/conversations/index.js +3 -0
- package/dist/conversations/index.js.map +1 -0
- package/dist/conversations/transcript.d.ts +13 -0
- package/dist/conversations/transcript.d.ts.map +1 -0
- package/dist/conversations/transcript.js +171 -0
- package/dist/conversations/transcript.js.map +1 -0
- package/dist/conversations/types.d.ts +147 -0
- package/dist/conversations/types.d.ts.map +1 -0
- package/dist/conversations/types.js +9 -0
- package/dist/conversations/types.js.map +1 -0
- package/dist/events/constructors.d.ts +9 -15
- package/dist/events/constructors.d.ts.map +1 -1
- package/dist/events/constructors.js +6 -12
- package/dist/events/constructors.js.map +1 -1
- package/dist/events/index.d.ts +2 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -3
- package/dist/events/index.js.map +1 -1
- package/dist/events/schema.d.ts +2 -5
- package/dist/events/schema.d.ts.map +1 -1
- package/dist/events/schema.js +2 -5
- package/dist/events/schema.js.map +1 -1
- package/dist/execution/contract.d.ts +51 -0
- package/dist/execution/contract.d.ts.map +1 -0
- package/dist/execution/contract.js +127 -0
- package/dist/execution/contract.js.map +1 -0
- package/dist/execution/index.d.ts +6 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +4 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/revision.d.ts +5 -0
- package/dist/execution/revision.d.ts.map +1 -0
- package/dist/execution/revision.js +17 -0
- package/dist/execution/revision.js.map +1 -0
- package/dist/execution/store.d.ts +26 -0
- package/dist/execution/store.d.ts.map +1 -0
- package/dist/execution/store.js +38 -0
- package/dist/execution/store.js.map +1 -0
- package/dist/index.d.ts +8 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -25
- package/dist/index.js.map +1 -1
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +2 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/prompt.d.ts +17 -0
- package/dist/input/prompt.d.ts.map +1 -0
- package/dist/input/prompt.js +104 -0
- package/dist/input/prompt.js.map +1 -0
- package/dist/normalizers/claude.d.ts +6 -9
- package/dist/normalizers/claude.d.ts.map +1 -1
- package/dist/normalizers/claude.js +5 -8
- package/dist/normalizers/claude.js.map +1 -1
- package/dist/normalizers/codex.d.ts +5 -8
- package/dist/normalizers/codex.d.ts.map +1 -1
- package/dist/normalizers/codex.js +4 -7
- package/dist/normalizers/codex.js.map +1 -1
- package/dist/normalizers/cursor.d.ts +1 -2
- package/dist/normalizers/cursor.d.ts.map +1 -1
- package/dist/normalizers/cursor.js +2 -3
- package/dist/normalizers/cursor.js.map +1 -1
- package/dist/normalizers/index.d.ts +3 -5
- package/dist/normalizers/index.d.ts.map +1 -1
- package/dist/normalizers/index.js +3 -5
- package/dist/normalizers/index.js.map +1 -1
- package/dist/normalizers/opencode.d.ts +2 -4
- package/dist/normalizers/opencode.d.ts.map +1 -1
- package/dist/normalizers/opencode.js +2 -4
- package/dist/normalizers/opencode.js.map +1 -1
- package/dist/normalizers/pi.d.ts +3 -4
- package/dist/normalizers/pi.d.ts.map +1 -1
- package/dist/normalizers/pi.js +3 -4
- package/dist/normalizers/pi.js.map +1 -1
- package/dist/sessions/chat.d.ts +176 -0
- package/dist/sessions/chat.d.ts.map +1 -0
- package/dist/sessions/chat.js +701 -0
- package/dist/sessions/chat.js.map +1 -0
- package/dist/sessions/index.d.ts +3 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js +2 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/transcript/index.d.ts +1 -1
- package/dist/transcript/index.js +1 -1
- package/dist/transcript/message-reducer.d.ts +1 -1
- package/dist/transcript/message-reducer.js +1 -1
- package/dist/transcript/part-accumulator.d.ts +1 -1
- package/dist/transcript/part-accumulator.js +1 -1
- package/dist/transcript/tool-display.d.ts +1 -1
- package/dist/transcript/tool-display.js +1 -1
- package/dist/transcript/tool-shape.d.ts +1 -1
- package/dist/transcript/tool-shape.js +1 -1
- package/dist/usage/finalize.d.ts +7 -9
- package/dist/usage/finalize.d.ts.map +1 -1
- package/dist/usage/finalize.js +11 -13
- package/dist/usage/finalize.js.map +1 -1
- package/dist/usage/index.d.ts +2 -3
- package/dist/usage/index.d.ts.map +1 -1
- package/dist/usage/index.js +2 -3
- package/dist/usage/index.js.map +1 -1
- package/dist/usage/model-catalog.d.ts +2 -3
- package/dist/usage/model-catalog.d.ts.map +1 -1
- package/dist/usage/model-catalog.js +10 -3
- package/dist/usage/model-catalog.js.map +1 -1
- package/dist/usage/normalize.d.ts +5 -7
- package/dist/usage/normalize.d.ts.map +1 -1
- package/dist/usage/normalize.js +3 -5
- package/dist/usage/normalize.js.map +1 -1
- package/dist/usage/ports.d.ts +14 -24
- package/dist/usage/ports.d.ts.map +1 -1
- package/dist/usage/ports.js +9 -17
- package/dist/usage/ports.js.map +1 -1
- package/dist/usage/steps.d.ts +70 -0
- package/dist/usage/steps.d.ts.map +1 -0
- package/dist/usage/steps.js +152 -0
- package/dist/usage/steps.js.map +1 -0
- package/dist/usage/tokens.d.ts +4 -7
- package/dist/usage/tokens.d.ts.map +1 -1
- package/dist/usage/tokens.js +4 -7
- package/dist/usage/tokens.js.map +1 -1
- package/docs/contracts/acp-and-step-usage.md +51 -0
- package/docs/contracts/conversation-persistence.md +47 -0
- package/docs/contracts/input-and-execution.md +177 -0
- package/docs/contracts/platform-authorization.md +17 -0
- package/host/adapters/acp-capabilities.js +30 -0
- package/host/adapters/acp-client.js +156 -0
- package/host/adapters/acp.js +284 -0
- package/host/adapters/claude.js +235 -0
- package/host/adapters/codex.js +733 -0
- package/host/adapters/cursor.js +347 -0
- package/host/adapters/input-capabilities.js +89 -0
- package/host/adapters/opencode.js +486 -0
- package/host/adapters/pi.js +519 -0
- package/host/adapters/prompt.js +212 -0
- package/host/auth.js +257 -0
- package/host/credentials/store.js +209 -0
- package/host/http.d.ts +32 -0
- package/host/http.js +238 -0
- package/host/index.d.ts +84 -0
- package/host/index.js +59 -0
- package/host/lib/runtime-paths.js +44 -0
- package/host/model-resolution.js +313 -0
- package/host/native-contract.js +185 -0
- package/host/native-runtime.js +194 -0
- package/host/permissions.js +27 -0
- package/host/platform-egress.js +114 -0
- package/host/recorder.js +61 -0
- package/host/sqlite/index.d.ts +69 -0
- package/host/sqlite/index.js +704 -0
- package/host/tooling/mcp-bundle.js +214 -0
- package/host/tooling/mcp-relay.js +83 -0
- package/host/tooling/native-binaries.js +667 -0
- package/host/tooling/native-config.js +460 -0
- package/host/tooling/package-import.js +111 -0
- package/host/tooling/runtime-home.js +26 -0
- package/host/tooling/system-instructions.js +69 -0
- package/host/tooling/system-prompt.js +35 -0
- package/package.json +44 -24
- package/skills/chat/SKILL.md +97 -0
- package/skills/chat/agents/openai.yaml +4 -0
- package/skills/chat/references/contracts.md +131 -0
- package/dist/api/chat-payloads.d.ts +0 -10
- package/dist/api/chat-payloads.d.ts.map +0 -1
- package/dist/api/chat-payloads.js +0 -57
- package/dist/api/chat-payloads.js.map +0 -1
- package/dist/contract/chat-input.d.ts +0 -144
- package/dist/contract/chat-input.d.ts.map +0 -1
- package/dist/contract/chat-input.js +0 -261
- package/dist/contract/chat-input.js.map +0 -1
- package/dist/contract/create.d.ts +0 -191
- package/dist/contract/create.d.ts.map +0 -1
- package/dist/contract/create.js +0 -249
- package/dist/contract/create.js.map +0 -1
- package/dist/contract/freeze.d.ts +0 -85
- package/dist/contract/freeze.d.ts.map +0 -1
- package/dist/contract/freeze.js +0 -151
- package/dist/contract/freeze.js.map +0 -1
- package/dist/contract/harnesses.d.ts +0 -21
- package/dist/contract/harnesses.d.ts.map +0 -1
- package/dist/contract/harnesses.js +0 -39
- package/dist/contract/harnesses.js.map +0 -1
- package/dist/contract/index.d.ts +0 -17
- package/dist/contract/index.d.ts.map +0 -1
- package/dist/contract/index.js +0 -17
- package/dist/contract/index.js.map +0 -1
- package/dist/contract/input.d.ts +0 -45
- package/dist/contract/input.d.ts.map +0 -1
- package/dist/contract/input.js +0 -78
- package/dist/contract/input.js.map +0 -1
- package/dist/contract/models.d.ts +0 -57
- package/dist/contract/models.d.ts.map +0 -1
- package/dist/contract/models.js +0 -380
- package/dist/contract/models.js.map +0 -1
- package/dist/contract/payload-merge.d.ts +0 -76
- package/dist/contract/payload-merge.d.ts.map +0 -1
- package/dist/contract/payload-merge.js +0 -215
- package/dist/contract/payload-merge.js.map +0 -1
- package/dist/events/tool-display.d.ts +0 -22
- package/dist/events/tool-display.d.ts.map +0 -1
- package/dist/events/tool-display.js +0 -60
- package/dist/events/tool-display.js.map +0 -1
- package/dist/events/tool-shape.d.ts +0 -48
- package/dist/events/tool-shape.d.ts.map +0 -1
- package/dist/events/tool-shape.js +0 -225
- package/dist/events/tool-shape.js.map +0 -1
- package/dist/relay/index.d.ts +0 -65
- package/dist/relay/index.d.ts.map +0 -1
- package/dist/relay/index.js +0 -197
- package/dist/relay/index.js.map +0 -1
- package/dist/turns/index.d.ts +0 -11
- package/dist/turns/index.d.ts.map +0 -1
- package/dist/turns/index.js +0 -11
- package/dist/turns/index.js.map +0 -1
- package/dist/turns/queries.d.ts +0 -36
- package/dist/turns/queries.d.ts.map +0 -1
- package/dist/turns/queries.js +0 -37
- package/dist/turns/queries.js.map +0 -1
- package/dist/turns/replay.d.ts +0 -105
- package/dist/turns/replay.d.ts.map +0 -1
- package/dist/turns/replay.js +0 -163
- package/dist/turns/replay.js.map +0 -1
- package/dist/turns/status.d.ts +0 -49
- package/dist/turns/status.d.ts.map +0 -1
- package/dist/turns/status.js +0 -56
- package/dist/turns/status.js.map +0 -1
- package/dist/turns/turn-store.d.ts +0 -109
- package/dist/turns/turn-store.d.ts.map +0 -1
- package/dist/turns/turn-store.js +0 -169
- package/dist/turns/turn-store.js.map +0 -1
- package/dist/warm/client-cache.d.ts +0 -47
- package/dist/warm/client-cache.d.ts.map +0 -1
- package/dist/warm/client-cache.js +0 -48
- package/dist/warm/client-cache.js.map +0 -1
- package/dist/warm/envelope-cache.d.ts +0 -79
- package/dist/warm/envelope-cache.d.ts.map +0 -1
- package/dist/warm/envelope-cache.js +0 -85
- package/dist/warm/envelope-cache.js.map +0 -1
- package/dist/warm/index.d.ts +0 -18
- package/dist/warm/index.d.ts.map +0 -1
- package/dist/warm/index.js +0 -12
- package/dist/warm/index.js.map +0 -1
- package/dist/warm/payload.d.ts +0 -137
- package/dist/warm/payload.d.ts.map +0 -1
- package/dist/warm/payload.js +0 -112
- package/dist/warm/payload.js.map +0 -1
- package/dist/warm/revision.d.ts +0 -70
- package/dist/warm/revision.d.ts.map +0 -1
- package/dist/warm/revision.js +0 -63
- package/dist/warm/revision.js.map +0 -1
- package/dist/warm/store-policy.d.ts +0 -57
- package/dist/warm/store-policy.d.ts.map +0 -1
- package/dist/warm/store-policy.js +0 -89
- package/dist/warm/store-policy.js.map +0 -1
- package/dist/warm/store.d.ts +0 -42
- package/dist/warm/store.d.ts.map +0 -1
- package/dist/warm/store.js +0 -69
- package/dist/warm/store.js.map +0 -1
- package/dist/wire/frames.d.ts +0 -208
- package/dist/wire/frames.d.ts.map +0 -1
- package/dist/wire/frames.js +0 -245
- package/dist/wire/frames.js.map +0 -1
- package/dist/wire/index.d.ts +0 -7
- package/dist/wire/index.d.ts.map +0 -1
- package/dist/wire/index.js +0 -7
- package/dist/wire/index.js.map +0 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
export const AMALGM_ACP_META_KEY = 'amalgm';
|
|
2
|
+
function projectionMeta(event, context) {
|
|
3
|
+
const native = event.raw === undefined
|
|
4
|
+
? { type: event.type, timestampMs: event.ts }
|
|
5
|
+
: { type: event.type, timestampMs: event.ts, raw: event.raw };
|
|
6
|
+
const amalgm = {
|
|
7
|
+
native,
|
|
8
|
+
...(context.conversationId === undefined ? {} : { conversationId: context.conversationId }),
|
|
9
|
+
...(context.turnId === undefined ? {} : { turnId: context.turnId }),
|
|
10
|
+
...(context.sequence === undefined ? {} : { sequence: context.sequence }),
|
|
11
|
+
};
|
|
12
|
+
return { [AMALGM_ACP_META_KEY]: amalgm };
|
|
13
|
+
}
|
|
14
|
+
/** Map the richer native tool vocabulary into ACP's stable categories. */
|
|
15
|
+
export function toAcpToolKind(kind) {
|
|
16
|
+
switch (kind) {
|
|
17
|
+
case 'read':
|
|
18
|
+
case 'file_read':
|
|
19
|
+
return 'read';
|
|
20
|
+
case 'edit':
|
|
21
|
+
case 'file_edit':
|
|
22
|
+
case 'file_write':
|
|
23
|
+
return 'edit';
|
|
24
|
+
case 'delete':
|
|
25
|
+
return 'delete';
|
|
26
|
+
case 'move':
|
|
27
|
+
return 'move';
|
|
28
|
+
case 'search':
|
|
29
|
+
case 'web_search':
|
|
30
|
+
return 'search';
|
|
31
|
+
case 'execute':
|
|
32
|
+
case 'bash':
|
|
33
|
+
return 'execute';
|
|
34
|
+
case 'think':
|
|
35
|
+
return 'think';
|
|
36
|
+
case 'fetch':
|
|
37
|
+
case 'browser':
|
|
38
|
+
return 'fetch';
|
|
39
|
+
case 'switch_mode':
|
|
40
|
+
return 'switch_mode';
|
|
41
|
+
default:
|
|
42
|
+
return 'other';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function toAcpToolStatus(status) {
|
|
46
|
+
switch (status) {
|
|
47
|
+
case 'pending':
|
|
48
|
+
return 'pending';
|
|
49
|
+
case 'completed':
|
|
50
|
+
return 'completed';
|
|
51
|
+
case 'failed':
|
|
52
|
+
case 'error':
|
|
53
|
+
return 'failed';
|
|
54
|
+
default:
|
|
55
|
+
return 'in_progress';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Project the provider-neutral native event grammar onto an official ACP session
|
|
60
|
+
* update. Events without an ACP session-update meaning return `null` instead
|
|
61
|
+
* of being disguised as a synthetic update.
|
|
62
|
+
*/
|
|
63
|
+
export function toAcpSessionUpdate(event, context = {}) {
|
|
64
|
+
const _meta = projectionMeta(event, context);
|
|
65
|
+
switch (event.type) {
|
|
66
|
+
case 'text.delta':
|
|
67
|
+
return {
|
|
68
|
+
sessionUpdate: 'agent_message_chunk',
|
|
69
|
+
content: { type: 'text', text: event.text },
|
|
70
|
+
...(context.messageId === undefined ? {} : { messageId: context.messageId }),
|
|
71
|
+
_meta,
|
|
72
|
+
};
|
|
73
|
+
case 'reasoning.delta':
|
|
74
|
+
return {
|
|
75
|
+
sessionUpdate: 'agent_thought_chunk',
|
|
76
|
+
content: { type: 'text', text: event.text },
|
|
77
|
+
...(context.messageId === undefined ? {} : { messageId: context.messageId }),
|
|
78
|
+
_meta,
|
|
79
|
+
};
|
|
80
|
+
case 'tool.started':
|
|
81
|
+
return {
|
|
82
|
+
sessionUpdate: 'tool_call',
|
|
83
|
+
toolCallId: event.toolCallId,
|
|
84
|
+
title: event.title ?? event.toolName,
|
|
85
|
+
kind: toAcpToolKind(event.kind),
|
|
86
|
+
status: 'in_progress',
|
|
87
|
+
rawInput: event.input,
|
|
88
|
+
_meta,
|
|
89
|
+
};
|
|
90
|
+
case 'tool.updated':
|
|
91
|
+
return {
|
|
92
|
+
sessionUpdate: 'tool_call_update',
|
|
93
|
+
toolCallId: event.toolCallId,
|
|
94
|
+
status: toAcpToolStatus(event.status),
|
|
95
|
+
...(event.title === undefined ? {} : { title: event.title }),
|
|
96
|
+
...(event.kind === undefined ? {} : { kind: toAcpToolKind(event.kind) }),
|
|
97
|
+
...(event.inputDelta === undefined ? {} : { rawInput: event.inputDelta }),
|
|
98
|
+
...(event.outputDelta === undefined && event.output === undefined
|
|
99
|
+
? {}
|
|
100
|
+
: { rawOutput: event.outputDelta ?? event.output }),
|
|
101
|
+
_meta,
|
|
102
|
+
};
|
|
103
|
+
case 'tool.completed':
|
|
104
|
+
return {
|
|
105
|
+
sessionUpdate: 'tool_call_update',
|
|
106
|
+
toolCallId: event.toolCallId,
|
|
107
|
+
status: event.isError ? 'failed' : 'completed',
|
|
108
|
+
...(event.title === undefined ? {} : { title: event.title }),
|
|
109
|
+
...(event.kind === undefined ? {} : { kind: toAcpToolKind(event.kind) }),
|
|
110
|
+
...(event.input === undefined ? {} : { rawInput: event.input }),
|
|
111
|
+
...(event.output === undefined && event.result === undefined
|
|
112
|
+
? {}
|
|
113
|
+
: { rawOutput: event.output ?? event.result }),
|
|
114
|
+
_meta,
|
|
115
|
+
};
|
|
116
|
+
case 'usage.final': {
|
|
117
|
+
const used = event.usage.contextUsedTokens ?? event.usage.usedTokens;
|
|
118
|
+
const size = event.usage.contextLimit ?? event.usage.maxTokens;
|
|
119
|
+
if (used === null || size === null)
|
|
120
|
+
return null;
|
|
121
|
+
return {
|
|
122
|
+
sessionUpdate: 'usage_update',
|
|
123
|
+
used,
|
|
124
|
+
size,
|
|
125
|
+
...(event.usage.costUsd === null
|
|
126
|
+
? {}
|
|
127
|
+
: { cost: { amount: event.usage.costUsd, currency: 'USD' } }),
|
|
128
|
+
_meta,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
case 'text.boundary':
|
|
132
|
+
case 'compaction.started':
|
|
133
|
+
case 'compaction.finished':
|
|
134
|
+
case 'warning':
|
|
135
|
+
case 'error':
|
|
136
|
+
case 'done':
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Wrap a projected update in ACP's official session notification shape. */
|
|
141
|
+
export function toAcpSessionNotification(sessionId, event, context = {}) {
|
|
142
|
+
const update = toAcpSessionUpdate(event, context);
|
|
143
|
+
if (update === null)
|
|
144
|
+
return null;
|
|
145
|
+
return { sessionId, update };
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/acp/projection.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAoB5C,SAAS,cAAc,CACrB,KAAkB,EAClB,OAA6B;IAE7B,MAAM,MAAM,GAA4B,KAAK,CAAC,GAAG,KAAK,SAAS;QAC7D,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAEhE,MAAM,MAAM,GAAkB;QAC5B,MAAM;QACN,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3F,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC;IAEF,OAAO,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC;QACvB;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE7C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO;gBACL,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC3C,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC5E,KAAK;aACN,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,aAAa,EAAE,qBAAqB;gBACpC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC3C,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC5E,KAAK;aACN,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ;gBACpC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/B,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,KAAK,CAAC,KAAK;gBACrB,KAAK;aACN,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,aAAa,EAAE,kBAAkB;gBACjC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5D,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzE,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAC/D,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrD,KAAK;aACN,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,aAAa,EAAE,kBAAkB;gBACjC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;gBAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5D,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/D,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAC1D,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChD,KAAK;aACN,CAAC;QACJ,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;YACrE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YAC/D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChD,OAAO;gBACL,aAAa,EAAE,cAAc;gBAC7B,IAAI;gBACJ,IAAI;gBACJ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI;oBAC9B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC/D,KAAK;aACN,CAAC;QACJ,CAAC;QACD,KAAK,eAAe,CAAC;QACrB,KAAK,oBAAoB,CAAC;QAC1B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,KAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { SessionUpdate } from '@agentclientprotocol/sdk';
|
|
2
|
+
import type { ConversationMessage, ConversationRecord, ConversationTurn, ListConversationsOptions } from '../conversations/types.js';
|
|
3
|
+
import type { ExecutionContract } from '../execution/contract.js';
|
|
4
|
+
import type { ExecutionHandle } from '../execution/store.js';
|
|
5
|
+
import type { PromptInput } from '../input/prompt.js';
|
|
6
|
+
import type { InterruptResult } from '../sessions/chat.js';
|
|
7
|
+
export interface ChatHttpClientOptions {
|
|
8
|
+
readonly baseUrl?: string;
|
|
9
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
10
|
+
}
|
|
11
|
+
export interface StartConversationRequest {
|
|
12
|
+
readonly conversationId?: string;
|
|
13
|
+
readonly execution: ExecutionHandle;
|
|
14
|
+
readonly title?: string;
|
|
15
|
+
readonly origin?: string | null;
|
|
16
|
+
readonly originId?: string | null;
|
|
17
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
18
|
+
}
|
|
19
|
+
export interface SendTurnRequest {
|
|
20
|
+
readonly execution: ExecutionHandle;
|
|
21
|
+
readonly prompt: PromptInput;
|
|
22
|
+
readonly clientTurnId?: string;
|
|
23
|
+
readonly userMessageId?: string;
|
|
24
|
+
readonly assistantMessageId?: string;
|
|
25
|
+
readonly signal?: AbortSignal;
|
|
26
|
+
}
|
|
27
|
+
export type ChatStreamEvent = {
|
|
28
|
+
readonly type: 'update';
|
|
29
|
+
readonly update: SessionUpdate;
|
|
30
|
+
readonly sequence: number | null;
|
|
31
|
+
} | {
|
|
32
|
+
readonly type: 'complete';
|
|
33
|
+
readonly turn: ConversationTurn;
|
|
34
|
+
};
|
|
35
|
+
export interface ConversationHistoryResponse {
|
|
36
|
+
readonly conversation: ConversationRecord;
|
|
37
|
+
readonly messages: readonly ConversationMessage[];
|
|
38
|
+
readonly latestTurn: ConversationTurn | null;
|
|
39
|
+
}
|
|
40
|
+
export declare class ChatHttpError extends Error {
|
|
41
|
+
readonly status: number;
|
|
42
|
+
readonly code: string;
|
|
43
|
+
constructor(status: number, message: string, code?: string);
|
|
44
|
+
}
|
|
45
|
+
/** Browser/server HTTP door over Chat's single public protocol. */
|
|
46
|
+
export declare function createChatHttpClient(options?: ChatHttpClientOptions): Readonly<{
|
|
47
|
+
prepareExecution(id: string, execution: ExecutionContract): Promise<ExecutionHandle>;
|
|
48
|
+
list(options?: ListConversationsOptions): Promise<readonly ConversationRecord[]>;
|
|
49
|
+
inspect(conversationId: string): Promise<ConversationHistoryResponse>;
|
|
50
|
+
start(input: StartConversationRequest): Promise<ConversationRecord>;
|
|
51
|
+
resume(conversationId: string, execution?: ExecutionHandle): Promise<{
|
|
52
|
+
readonly conversation: ConversationRecord;
|
|
53
|
+
readonly execution: ExecutionHandle;
|
|
54
|
+
}>;
|
|
55
|
+
send(conversationId: string, input: SendTurnRequest): AsyncIterable<ChatStreamEvent>;
|
|
56
|
+
reconnect(conversationId: string, turnId: string, input?: {
|
|
57
|
+
afterSequence?: number;
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}): AsyncIterable<ChatStreamEvent>;
|
|
60
|
+
active(conversationId: string): Promise<ConversationTurn | null>;
|
|
61
|
+
interrupt(conversationId: string): Promise<InterruptResult>;
|
|
62
|
+
updateTitle(conversationId: string, title: string): Promise<ConversationRecord>;
|
|
63
|
+
markSeen(conversationId: string): Promise<ConversationRecord>;
|
|
64
|
+
archive(conversationId: string): Promise<ConversationRecord>;
|
|
65
|
+
}>;
|
|
66
|
+
//# sourceMappingURL=conversations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
export class ChatHttpError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
code;
|
|
4
|
+
constructor(status, message, code = 'CHAT_ERROR') {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'ChatHttpError';
|
|
7
|
+
this.status = status;
|
|
8
|
+
this.code = code;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function cleanBaseUrl(value) {
|
|
12
|
+
const base = typeof value === 'string' && value.trim() ? value.trim() : '/chat';
|
|
13
|
+
return base.replace(/\/$/, '');
|
|
14
|
+
}
|
|
15
|
+
function queryString(values) {
|
|
16
|
+
const query = new URLSearchParams();
|
|
17
|
+
for (const [key, value] of Object.entries(values)) {
|
|
18
|
+
if (value !== undefined)
|
|
19
|
+
query.set(key, String(value));
|
|
20
|
+
}
|
|
21
|
+
const encoded = query.toString();
|
|
22
|
+
return encoded ? `?${encoded}` : '';
|
|
23
|
+
}
|
|
24
|
+
async function responseJson(response) {
|
|
25
|
+
const payload = await response.json().catch(() => ({}));
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
const nested = payload['error'] && typeof payload['error'] === 'object'
|
|
28
|
+
? payload['error']
|
|
29
|
+
: {};
|
|
30
|
+
const message = typeof nested['message'] === 'string'
|
|
31
|
+
? nested['message']
|
|
32
|
+
: typeof payload['error'] === 'string'
|
|
33
|
+
? payload['error']
|
|
34
|
+
: `Chat request failed with status ${response.status}`;
|
|
35
|
+
const code = typeof nested['code'] === 'string' ? nested['code'] : 'CHAT_ERROR';
|
|
36
|
+
throw new ChatHttpError(response.status, message, code);
|
|
37
|
+
}
|
|
38
|
+
return payload;
|
|
39
|
+
}
|
|
40
|
+
function sequenceFrom(update, eventId) {
|
|
41
|
+
const record = update;
|
|
42
|
+
const meta = record['_meta'] && typeof record['_meta'] === 'object'
|
|
43
|
+
? record['_meta']
|
|
44
|
+
: {};
|
|
45
|
+
const amalgm = meta['amalgm'] && typeof meta['amalgm'] === 'object'
|
|
46
|
+
? meta['amalgm']
|
|
47
|
+
: {};
|
|
48
|
+
const value = amalgm['sequence'] ?? (eventId === null ? null : Number(eventId));
|
|
49
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
50
|
+
}
|
|
51
|
+
async function* streamEvents(response, signal) {
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
await responseJson(response);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!response.body)
|
|
57
|
+
throw new ChatHttpError(502, 'Chat stream has no body');
|
|
58
|
+
const reader = response.body.getReader();
|
|
59
|
+
const decoder = new TextDecoder();
|
|
60
|
+
let buffer = '';
|
|
61
|
+
let event = 'message';
|
|
62
|
+
let id = null;
|
|
63
|
+
let data = [];
|
|
64
|
+
const frames = [];
|
|
65
|
+
const flush = () => {
|
|
66
|
+
if (data.length === 0)
|
|
67
|
+
return;
|
|
68
|
+
const value = JSON.parse(data.join('\n'));
|
|
69
|
+
if (event === 'update') {
|
|
70
|
+
const update = value;
|
|
71
|
+
frames.push({ type: 'update', update, sequence: sequenceFrom(update, id) });
|
|
72
|
+
}
|
|
73
|
+
else if (event === 'complete') {
|
|
74
|
+
frames.push({ type: 'complete', turn: value });
|
|
75
|
+
}
|
|
76
|
+
else if (event === 'error') {
|
|
77
|
+
const error = value && typeof value === 'object' ? value : {};
|
|
78
|
+
throw new ChatHttpError(500, typeof error['message'] === 'string' ? error['message'] : 'Chat turn failed', typeof error['code'] === 'string' ? error['code'] : 'CHAT_ERROR');
|
|
79
|
+
}
|
|
80
|
+
event = 'message';
|
|
81
|
+
id = null;
|
|
82
|
+
data = [];
|
|
83
|
+
};
|
|
84
|
+
try {
|
|
85
|
+
while (true) {
|
|
86
|
+
if (signal?.aborted)
|
|
87
|
+
return;
|
|
88
|
+
const { done, value } = await reader.read();
|
|
89
|
+
if (done)
|
|
90
|
+
break;
|
|
91
|
+
buffer += decoder.decode(value, { stream: true });
|
|
92
|
+
const lines = buffer.split('\n');
|
|
93
|
+
buffer = lines.pop() || '';
|
|
94
|
+
for (const rawLine of lines) {
|
|
95
|
+
const line = rawLine.endsWith('\r') ? rawLine.slice(0, -1) : rawLine;
|
|
96
|
+
if (!line)
|
|
97
|
+
flush();
|
|
98
|
+
else if (line.startsWith('event:'))
|
|
99
|
+
event = line.slice(6).trim();
|
|
100
|
+
else if (line.startsWith('id:'))
|
|
101
|
+
id = line.slice(3).trim();
|
|
102
|
+
else if (line.startsWith('data:'))
|
|
103
|
+
data.push(line.slice(5).trimStart());
|
|
104
|
+
while (frames.length > 0)
|
|
105
|
+
yield frames.shift();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (buffer) {
|
|
109
|
+
const line = buffer.endsWith('\r') ? buffer.slice(0, -1) : buffer;
|
|
110
|
+
if (line.startsWith('event:'))
|
|
111
|
+
event = line.slice(6).trim();
|
|
112
|
+
else if (line.startsWith('id:'))
|
|
113
|
+
id = line.slice(3).trim();
|
|
114
|
+
else if (line.startsWith('data:'))
|
|
115
|
+
data.push(line.slice(5).trimStart());
|
|
116
|
+
}
|
|
117
|
+
flush();
|
|
118
|
+
while (frames.length > 0)
|
|
119
|
+
yield frames.shift();
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
reader.releaseLock();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/** Browser/server HTTP door over Chat's single public protocol. */
|
|
126
|
+
export function createChatHttpClient(options = {}) {
|
|
127
|
+
const baseUrl = cleanBaseUrl(options.baseUrl);
|
|
128
|
+
const fetchImpl = options.fetch || globalThis.fetch;
|
|
129
|
+
if (typeof fetchImpl !== 'function')
|
|
130
|
+
throw new TypeError('Chat HTTP client requires fetch');
|
|
131
|
+
const request = (path, init) => fetchImpl(`${baseUrl}${path}`, init);
|
|
132
|
+
const json = (value) => ({
|
|
133
|
+
method: 'POST',
|
|
134
|
+
headers: { 'Content-Type': 'application/json' },
|
|
135
|
+
body: JSON.stringify(value),
|
|
136
|
+
});
|
|
137
|
+
return Object.freeze({
|
|
138
|
+
async prepareExecution(id, execution) {
|
|
139
|
+
const payload = await responseJson(await request('/executions', json({ id, execution })));
|
|
140
|
+
return payload.execution;
|
|
141
|
+
},
|
|
142
|
+
async list(options = {}) {
|
|
143
|
+
const payload = await responseJson(await request(`/conversations${queryString({
|
|
144
|
+
agentInstallationId: options.agentInstallationId,
|
|
145
|
+
origin: options.origin,
|
|
146
|
+
originId: options.originId,
|
|
147
|
+
includeArchived: options.includeArchived,
|
|
148
|
+
offset: options.offset,
|
|
149
|
+
limit: options.limit,
|
|
150
|
+
})}`));
|
|
151
|
+
return payload.conversations;
|
|
152
|
+
},
|
|
153
|
+
async inspect(conversationId) {
|
|
154
|
+
return responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}`));
|
|
155
|
+
},
|
|
156
|
+
async start(input) {
|
|
157
|
+
const payload = await responseJson(await request('/conversations', json(input)));
|
|
158
|
+
return payload.conversation;
|
|
159
|
+
},
|
|
160
|
+
async resume(conversationId, execution) {
|
|
161
|
+
return responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}/resume`, json(execution ? { execution } : {})));
|
|
162
|
+
},
|
|
163
|
+
async *send(conversationId, input) {
|
|
164
|
+
const { signal, ...body } = input;
|
|
165
|
+
const response = await request(`/conversations/${encodeURIComponent(conversationId)}/turns`, {
|
|
166
|
+
...json(body),
|
|
167
|
+
headers: { 'Content-Type': 'application/json', Accept: 'text/event-stream' },
|
|
168
|
+
...(signal ? { signal } : {}),
|
|
169
|
+
});
|
|
170
|
+
yield* streamEvents(response, signal);
|
|
171
|
+
},
|
|
172
|
+
async *reconnect(conversationId, turnId, input = {}) {
|
|
173
|
+
const response = await request(`/conversations/${encodeURIComponent(conversationId)}/turns/${encodeURIComponent(turnId)}/events${queryString({
|
|
174
|
+
afterSequence: input.afterSequence,
|
|
175
|
+
})}`, {
|
|
176
|
+
headers: { Accept: 'text/event-stream' },
|
|
177
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
178
|
+
});
|
|
179
|
+
yield* streamEvents(response, input.signal);
|
|
180
|
+
},
|
|
181
|
+
async active(conversationId) {
|
|
182
|
+
const payload = await responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}/active`));
|
|
183
|
+
return payload.turn;
|
|
184
|
+
},
|
|
185
|
+
async interrupt(conversationId) {
|
|
186
|
+
return responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}/interrupt`, json({})));
|
|
187
|
+
},
|
|
188
|
+
async updateTitle(conversationId, title) {
|
|
189
|
+
const payload = await responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}`, { ...json({ title }), method: 'PATCH' }));
|
|
190
|
+
return payload.conversation;
|
|
191
|
+
},
|
|
192
|
+
async markSeen(conversationId) {
|
|
193
|
+
const payload = await responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}`, { ...json({ newMessages: false }), method: 'PATCH' }));
|
|
194
|
+
return payload.conversation;
|
|
195
|
+
},
|
|
196
|
+
async archive(conversationId) {
|
|
197
|
+
const payload = await responseJson(await request(`/conversations/${encodeURIComponent(conversationId)}`, { method: 'DELETE' }));
|
|
198
|
+
return payload.conversation;
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=conversations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @amalgm/chat API
|
|
2
|
-
export type {
|
|
3
|
-
export {
|
|
1
|
+
/** @amalgm/chat API adapter for Chat's one HTTP/SSE protocol. */
|
|
2
|
+
export type { ConversationHistoryResponse, ChatHttpClientOptions, ChatStreamEvent, SendTurnRequest, StartConversationRequest, } from './conversations.js';
|
|
3
|
+
export { ChatHttpError, createChatHttpClient, } from './conversations.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,YAAY,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
package/dist/api/index.js
CHANGED
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,aAAa,EACb,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SessionUpdate } from '@agentclientprotocol/sdk';
|
|
2
|
+
export interface AcpTranscriptState {
|
|
3
|
+
parts: unknown[];
|
|
4
|
+
textPartIndex: number | null;
|
|
5
|
+
reasoningPartIndex: number | null;
|
|
6
|
+
toolPartIndexById: Map<string, number>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createAcpTranscriptState(): AcpTranscriptState;
|
|
9
|
+
/** Fold one official ACP update into the UI transcript projection. */
|
|
10
|
+
export declare function applyAcpTranscriptUpdate(state: AcpTranscriptState, input: SessionUpdate): void;
|
|
11
|
+
export declare function finalizeAcpTranscript(state: AcpTranscriptState, failed?: boolean): readonly unknown[];
|
|
12
|
+
export declare function promptContentPlain(parts: readonly unknown[]): string | null;
|
|
13
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/conversations/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAK9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAO7D;AA8GD,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CA4B9F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAQ,GAAG,SAAS,OAAO,EAAE,CAanG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAO3E"}
|