@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,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createContract` — engine `chat-core/contract.js:460-648`, ported as a pure
|
|
3
|
+
* orchestration. Effectful collaborators are injected:
|
|
4
|
+
*
|
|
5
|
+
* - `authEnvelope` — engine `chat-core/auth.js authEnvelope` (reads the
|
|
6
|
+
* BYOK credential store + provider auth files)
|
|
7
|
+
* - `normalizeAgentConfig`— engine `amalgm-mcp/agent-config/schema.js`
|
|
8
|
+
* (uses crypto.randomUUID for stable ids)
|
|
9
|
+
* - `cwd` ports — the filesystem checks behind `resolveCwd`
|
|
10
|
+
* (engine: fs.statSync / os.homedir / path,
|
|
11
|
+
* `runtime/scripts/lib/project-paths.js`)
|
|
12
|
+
* - `sha256Hex` — the runtimeKey fingerprint (engine: node:crypto)
|
|
13
|
+
*
|
|
14
|
+
* Env-derived engine defaults become documented options:
|
|
15
|
+
*
|
|
16
|
+
* - `options.defaultCwd` — engine `DEFAULT_CWD` = `AMALGM_DEFAULT_CWD` || '/workspace'
|
|
17
|
+
* - `options.port` — engine `runtimePort('chat-server')` (runtime-manifest)
|
|
18
|
+
* - `options.proxyToken` — engine config `PROXY_TOKEN`
|
|
19
|
+
* - `options.proxyBaseUrl`— engine `PROXY_BASE_URL || DEFAULT_PROXY_BASE_URL`
|
|
20
|
+
* - `options.amalgmDir` — engine config `AMALGM_DIR`
|
|
21
|
+
* - `options.containerId` — engine `process.env.AMALGM_CONTAINER_ID`
|
|
22
|
+
*/
|
|
23
|
+
import type { FreezePorts, FrozenRuntimeFields } from './freeze.js';
|
|
24
|
+
/** Engine `AUTH_BY_HARNESS` (`auth.js:9-15`): supported methods, first = default. */
|
|
25
|
+
export declare const AUTH_BY_HARNESS: Readonly<Record<string, readonly string[]>>;
|
|
26
|
+
/**
|
|
27
|
+
* Engine `coerceAuth` (`auth.js:70-73`): clamp a requested auth method to the
|
|
28
|
+
* harness's supported set, defaulting to the first supported method.
|
|
29
|
+
*/
|
|
30
|
+
export declare function coerceAuth(harness: string, requested: unknown): string;
|
|
31
|
+
/** The envelope returned by the host's `authEnvelope` (engine `auth.js:148-200`). */
|
|
32
|
+
export interface AuthEnvelope {
|
|
33
|
+
method: string;
|
|
34
|
+
baseUrl?: string | null;
|
|
35
|
+
credentialId?: string | null;
|
|
36
|
+
credentialName?: string | null;
|
|
37
|
+
providerKind?: string | null;
|
|
38
|
+
forwardBaseUrl?: string | null;
|
|
39
|
+
tokenRef?: string | null;
|
|
40
|
+
tokenFingerprint?: string | null;
|
|
41
|
+
runtimeHome?: string | null;
|
|
42
|
+
runtimeHomeSources?: string[];
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
/** The exact argument object the engine passes to `authEnvelope`. */
|
|
46
|
+
export interface AuthEnvelopeArgs {
|
|
47
|
+
harness: string;
|
|
48
|
+
authMethod: string;
|
|
49
|
+
sessionId: string;
|
|
50
|
+
localBaseUrl: string;
|
|
51
|
+
proxyToken: string | undefined;
|
|
52
|
+
proxyBaseUrl: string | undefined;
|
|
53
|
+
amalgmDir: string | undefined;
|
|
54
|
+
userId: string;
|
|
55
|
+
credentialId: string | null;
|
|
56
|
+
modelId: string;
|
|
57
|
+
agentConfigId: string;
|
|
58
|
+
runtimeHomeLayout: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Filesystem/OS ports behind `resolveCwd`. Engine defaults:
|
|
62
|
+
* - `expandHome` — `contract.js:460-467` (os.homedir + path.join)
|
|
63
|
+
* - `canonicalProjectPath`— `runtime/scripts/lib/project-paths.js`
|
|
64
|
+
* - `isDirectory` — `fs.statSync(p).isDirectory()` (throwing is fine;
|
|
65
|
+
* it is treated as "not a directory")
|
|
66
|
+
* - `processCwd` — `process.cwd()` (throwing is fine)
|
|
67
|
+
* - `homedir` — `os.homedir()`
|
|
68
|
+
* - `isAbsolute` / `resolvePath` — `path.isAbsolute` / `path.resolve`
|
|
69
|
+
*/
|
|
70
|
+
export interface CwdPorts {
|
|
71
|
+
expandHome(value: unknown): string;
|
|
72
|
+
canonicalProjectPath(value: string): string;
|
|
73
|
+
isDirectory(candidate: string): boolean;
|
|
74
|
+
processCwd(): string | null;
|
|
75
|
+
homedir(): string;
|
|
76
|
+
isAbsolute(candidate: string): boolean;
|
|
77
|
+
resolvePath(from: string, to: string): string;
|
|
78
|
+
}
|
|
79
|
+
export interface WorkspaceCwdUnavailableError extends Error {
|
|
80
|
+
code: 'workspace_cwd_unavailable';
|
|
81
|
+
status: 409;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The 409 thrown when a cloud-workspace turn cannot resolve its folder —
|
|
85
|
+
* engine `contract.js:493-497,503-507`. Message, `code`, and `status` are
|
|
86
|
+
* byte-exact.
|
|
87
|
+
*/
|
|
88
|
+
export declare function workspaceCwdUnavailableError(): WorkspaceCwdUnavailableError;
|
|
89
|
+
export interface ResolveCwdOptions {
|
|
90
|
+
/** Fallback project cwd (engine `options.cwd`). */
|
|
91
|
+
cwd?: string | undefined;
|
|
92
|
+
/** Engine `DEFAULT_CWD` = `AMALGM_DEFAULT_CWD` || '/workspace'. */
|
|
93
|
+
defaultCwd?: string | undefined;
|
|
94
|
+
/** True when the payload carries `cloudWorkspaceRef` — 409 instead of fallback. */
|
|
95
|
+
requireCwd?: boolean | undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Engine `resolveCwd` (`contract.js:486-510`), decision logic verbatim.
|
|
99
|
+
* With `requireCwd`, an empty or non-existent cwd throws
|
|
100
|
+
* `workspace_cwd_unavailable` (409) instead of falling back.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveCwd(rawCwd: unknown, options: ResolveCwdOptions, ports: CwdPorts): string;
|
|
103
|
+
export interface ContractOrigin {
|
|
104
|
+
type: string;
|
|
105
|
+
id: string;
|
|
106
|
+
name: string | null;
|
|
107
|
+
projectPath: string | null;
|
|
108
|
+
}
|
|
109
|
+
/** Engine `normalizeOrigin` (`contract.js:516-533`) — pure, ported fully. */
|
|
110
|
+
export declare function normalizeOrigin(payload?: Record<string, any>): ContractOrigin | null;
|
|
111
|
+
export interface ContractConstruct {
|
|
112
|
+
type: string;
|
|
113
|
+
id: string | null;
|
|
114
|
+
name: string | null;
|
|
115
|
+
projectPath: string | null;
|
|
116
|
+
path: string | null;
|
|
117
|
+
}
|
|
118
|
+
/** Engine `normalizeConstructs` (`contract.js:552-567`) — pure, ported fully. */
|
|
119
|
+
export declare function normalizeConstructs(payload?: Record<string, any>, cwd?: string | null): Array<ContractConstruct | ContractOrigin>;
|
|
120
|
+
/** Engine `positiveOrNull` (`contract.js:400-403`). */
|
|
121
|
+
export declare function positiveOrNull(value: unknown): number | null;
|
|
122
|
+
export interface CreateContractPorts extends FreezePorts {
|
|
123
|
+
/** Engine `chat-core/auth.js authEnvelope` — host auth, BYOK store, provider files. */
|
|
124
|
+
authEnvelope(args: AuthEnvelopeArgs): AuthEnvelope;
|
|
125
|
+
/** Engine `amalgm-mcp/agent-config/schema.js normalizeAgentConfig`. */
|
|
126
|
+
normalizeAgentConfig(input: unknown): unknown;
|
|
127
|
+
/** Filesystem/OS ports for `resolveCwd`. */
|
|
128
|
+
cwd: CwdPorts;
|
|
129
|
+
/** Optional override; defaults to the pure `coerceAuth` above (engine `auth.js`). */
|
|
130
|
+
coerceAuth?(harness: string, requested: unknown): string;
|
|
131
|
+
}
|
|
132
|
+
export interface CreateContractOptions {
|
|
133
|
+
/** Fallback project cwd fed to `resolveCwd` (engine `options.cwd`). */
|
|
134
|
+
cwd?: string | undefined;
|
|
135
|
+
/** Engine `DEFAULT_CWD` = env `AMALGM_DEFAULT_CWD` || '/workspace'. */
|
|
136
|
+
defaultCwd?: string | undefined;
|
|
137
|
+
/** Full local base URL; wins over `port` (engine `options.localBaseUrl`). */
|
|
138
|
+
localBaseUrl?: string | undefined;
|
|
139
|
+
/** Chat-server port. Engine default: `runtimePort('chat-server')` (runtime-manifest). */
|
|
140
|
+
port?: number | undefined;
|
|
141
|
+
/** Engine config `PROXY_TOKEN` (proxy-token-store). */
|
|
142
|
+
proxyToken?: string | undefined;
|
|
143
|
+
/** Engine `PROXY_BASE_URL || DEFAULT_PROXY_BASE_URL` (chat-server/config). */
|
|
144
|
+
proxyBaseUrl?: string | undefined;
|
|
145
|
+
/** Engine config `AMALGM_DIR`. */
|
|
146
|
+
amalgmDir?: string | undefined;
|
|
147
|
+
/** Fallback user id (engine `options.userId`). */
|
|
148
|
+
userId?: string | undefined;
|
|
149
|
+
/** Engine `process.env.AMALGM_CONTAINER_ID` — computerId fallback. */
|
|
150
|
+
containerId?: string | undefined;
|
|
151
|
+
}
|
|
152
|
+
export interface ChatContract {
|
|
153
|
+
sessionId: string;
|
|
154
|
+
userId: string;
|
|
155
|
+
computerId: string;
|
|
156
|
+
assistantMessageId: string;
|
|
157
|
+
userMessageId: string | null;
|
|
158
|
+
agentId: string;
|
|
159
|
+
agentConfigId: string;
|
|
160
|
+
agentConfig: unknown;
|
|
161
|
+
runtimeHomeLayout: string;
|
|
162
|
+
harness: string;
|
|
163
|
+
authMethod: string;
|
|
164
|
+
modelId: string;
|
|
165
|
+
usageModelId: string;
|
|
166
|
+
providerSessionId: string | null;
|
|
167
|
+
cliModel: string;
|
|
168
|
+
reasoningEffort: string | null;
|
|
169
|
+
fastMode: boolean;
|
|
170
|
+
contextWindow: number | null;
|
|
171
|
+
maxTokens: number | null;
|
|
172
|
+
cwd: string;
|
|
173
|
+
origin: ContractOrigin | null;
|
|
174
|
+
constructs: Array<ContractConstruct | ContractOrigin>;
|
|
175
|
+
localBaseUrl: string;
|
|
176
|
+
mcpServers: unknown[];
|
|
177
|
+
systemPrompt: string;
|
|
178
|
+
compiledAgentInstructions: string;
|
|
179
|
+
usageOwner: 'platform_proxy' | 'local_user';
|
|
180
|
+
auth: AuthEnvelope;
|
|
181
|
+
runtimeFields: FrozenRuntimeFields;
|
|
182
|
+
runtimeKey: string | null;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Engine `createContract` (`contract.js:569-648`). Field-for-field parity,
|
|
186
|
+
* including every error message and precedence chain. The uncommitted
|
|
187
|
+
* cloud-workspace behavior is preserved: `payload.cloudWorkspaceRef` makes
|
|
188
|
+
* cwd resolution mandatory (`workspace_cwd_unavailable`, 409).
|
|
189
|
+
*/
|
|
190
|
+
export declare function createContract(payload: Record<string, any>, options: CreateContractOptions, ports: CreateContractPorts): ChatContract;
|
|
191
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/contract/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createContract` — engine `chat-core/contract.js:460-648`, ported as a pure
|
|
3
|
+
* orchestration. Effectful collaborators are injected:
|
|
4
|
+
*
|
|
5
|
+
* - `authEnvelope` — engine `chat-core/auth.js authEnvelope` (reads the
|
|
6
|
+
* BYOK credential store + provider auth files)
|
|
7
|
+
* - `normalizeAgentConfig`— engine `amalgm-mcp/agent-config/schema.js`
|
|
8
|
+
* (uses crypto.randomUUID for stable ids)
|
|
9
|
+
* - `cwd` ports — the filesystem checks behind `resolveCwd`
|
|
10
|
+
* (engine: fs.statSync / os.homedir / path,
|
|
11
|
+
* `runtime/scripts/lib/project-paths.js`)
|
|
12
|
+
* - `sha256Hex` — the runtimeKey fingerprint (engine: node:crypto)
|
|
13
|
+
*
|
|
14
|
+
* Env-derived engine defaults become documented options:
|
|
15
|
+
*
|
|
16
|
+
* - `options.defaultCwd` — engine `DEFAULT_CWD` = `AMALGM_DEFAULT_CWD` || '/workspace'
|
|
17
|
+
* - `options.port` — engine `runtimePort('chat-server')` (runtime-manifest)
|
|
18
|
+
* - `options.proxyToken` — engine config `PROXY_TOKEN`
|
|
19
|
+
* - `options.proxyBaseUrl`— engine `PROXY_BASE_URL || DEFAULT_PROXY_BASE_URL`
|
|
20
|
+
* - `options.amalgmDir` — engine config `AMALGM_DIR`
|
|
21
|
+
* - `options.containerId` — engine `process.env.AMALGM_CONTAINER_ID`
|
|
22
|
+
*/
|
|
23
|
+
import { agentToHarness, assertSupportedHarness } from './harnesses.js';
|
|
24
|
+
import { canonicalModel, cliModelFor } from './models.js';
|
|
25
|
+
import { frozenRuntimeFields, runtimeKey } from './freeze.js';
|
|
26
|
+
// ── Host auth surface (engine chat-core/auth.js) ────────────────────────────
|
|
27
|
+
/** Engine `AUTH_BY_HARNESS` (`auth.js:9-15`): supported methods, first = default. */
|
|
28
|
+
export const AUTH_BY_HARNESS = {
|
|
29
|
+
claude_code: ['amalgm', 'byok', 'provider_auth'],
|
|
30
|
+
codex: ['amalgm', 'byok', 'provider_auth'],
|
|
31
|
+
opencode: ['amalgm', 'byok', 'provider_auth'],
|
|
32
|
+
cursor: ['provider_auth'],
|
|
33
|
+
pi: ['amalgm', 'byok', 'provider_auth'],
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Engine `coerceAuth` (`auth.js:70-73`): clamp a requested auth method to the
|
|
37
|
+
* harness's supported set, defaulting to the first supported method.
|
|
38
|
+
*/
|
|
39
|
+
export function coerceAuth(harness, requested) {
|
|
40
|
+
const supported = AUTH_BY_HARNESS[harness] || ['amalgm'];
|
|
41
|
+
return requested && supported.includes(requested) ? requested : supported[0];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The 409 thrown when a cloud-workspace turn cannot resolve its folder —
|
|
45
|
+
* engine `contract.js:493-497,503-507`. Message, `code`, and `status` are
|
|
46
|
+
* byte-exact.
|
|
47
|
+
*/
|
|
48
|
+
export function workspaceCwdUnavailableError() {
|
|
49
|
+
return Object.assign(new Error('Cloud workspace folder is unavailable.'), { code: 'workspace_cwd_unavailable', status: 409 });
|
|
50
|
+
}
|
|
51
|
+
function existingDirectory(candidate, ports) {
|
|
52
|
+
if (!candidate)
|
|
53
|
+
return null;
|
|
54
|
+
try {
|
|
55
|
+
return ports.isDirectory(candidate) ? candidate : null;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function safeProcessCwd(ports) {
|
|
62
|
+
try {
|
|
63
|
+
return ports.processCwd();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Engine `resolveCwd` (`contract.js:486-510`), decision logic verbatim.
|
|
71
|
+
* With `requireCwd`, an empty or non-existent cwd throws
|
|
72
|
+
* `workspace_cwd_unavailable` (409) instead of falling back.
|
|
73
|
+
*/
|
|
74
|
+
export function resolveCwd(rawCwd, options, ports) {
|
|
75
|
+
const fallback = existingDirectory(ports.canonicalProjectPath(ports.expandHome(options.cwd)), ports)
|
|
76
|
+
|| existingDirectory(ports.canonicalProjectPath(ports.expandHome(options.defaultCwd ?? '/workspace')), ports)
|
|
77
|
+
|| existingDirectory(safeProcessCwd(ports), ports)
|
|
78
|
+
|| ports.homedir();
|
|
79
|
+
const expanded = ports.expandHome(rawCwd);
|
|
80
|
+
if (!expanded) {
|
|
81
|
+
if (options.requireCwd) {
|
|
82
|
+
throw workspaceCwdUnavailableError();
|
|
83
|
+
}
|
|
84
|
+
return fallback;
|
|
85
|
+
}
|
|
86
|
+
const absolute = ports.isAbsolute(expanded) ? expanded : ports.resolvePath(fallback, expanded);
|
|
87
|
+
const resolved = existingDirectory(ports.canonicalProjectPath(absolute), ports);
|
|
88
|
+
if (!resolved && options.requireCwd) {
|
|
89
|
+
throw workspaceCwdUnavailableError();
|
|
90
|
+
}
|
|
91
|
+
return resolved || fallback;
|
|
92
|
+
}
|
|
93
|
+
// ── Pure payload normalizers (engine contract.js:512-567) ───────────────────
|
|
94
|
+
function nullableString(value) {
|
|
95
|
+
return typeof value === 'string' && value.trim() ? value.trim() : null;
|
|
96
|
+
}
|
|
97
|
+
/** Engine `normalizeOrigin` (`contract.js:516-533`) — pure, ported fully. */
|
|
98
|
+
export function normalizeOrigin(payload = {}) {
|
|
99
|
+
const raw = payload.origin && typeof payload.origin === 'object' ? payload.origin : {};
|
|
100
|
+
const type = nullableString(raw.type || payload.originType || payload.origin);
|
|
101
|
+
const id = nullableString(raw.id
|
|
102
|
+
|| raw.originId
|
|
103
|
+
|| payload.originId
|
|
104
|
+
|| payload.taskId
|
|
105
|
+
|| payload.triggerId);
|
|
106
|
+
if (!type || !id)
|
|
107
|
+
return null;
|
|
108
|
+
return {
|
|
109
|
+
type,
|
|
110
|
+
id,
|
|
111
|
+
name: nullableString(raw.name || raw.originName || payload.originName),
|
|
112
|
+
projectPath: nullableString(raw.projectPath || payload.projectPath || payload.cwd),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function normalizeConstruct(input, fallback = {}) {
|
|
116
|
+
if (!input || typeof input !== 'object')
|
|
117
|
+
return null;
|
|
118
|
+
const type = nullableString(input.type || input.scopeType);
|
|
119
|
+
if (!type)
|
|
120
|
+
return null;
|
|
121
|
+
const id = nullableString(input.id || input.scopeId || input.originId);
|
|
122
|
+
const projectPath = nullableString(input.projectPath || input.path || fallback.projectPath);
|
|
123
|
+
const item = {
|
|
124
|
+
type,
|
|
125
|
+
id,
|
|
126
|
+
name: nullableString(input.name || input.originName),
|
|
127
|
+
projectPath,
|
|
128
|
+
path: nullableString(input.path),
|
|
129
|
+
};
|
|
130
|
+
if (!item.id && !item.projectPath && !item.path)
|
|
131
|
+
return null;
|
|
132
|
+
return item;
|
|
133
|
+
}
|
|
134
|
+
/** Engine `normalizeConstructs` (`contract.js:552-567`) — pure, ported fully. */
|
|
135
|
+
export function normalizeConstructs(payload = {}, cwd = null) {
|
|
136
|
+
const constructs = [];
|
|
137
|
+
for (const item of Array.isArray(payload.constructs) ? payload.constructs : []) {
|
|
138
|
+
const normalized = normalizeConstruct(item, { projectPath: cwd });
|
|
139
|
+
if (normalized)
|
|
140
|
+
constructs.push(normalized);
|
|
141
|
+
}
|
|
142
|
+
const origin = normalizeOrigin(payload);
|
|
143
|
+
if (origin)
|
|
144
|
+
constructs.push(origin);
|
|
145
|
+
const seen = new Set();
|
|
146
|
+
return constructs.filter((item) => {
|
|
147
|
+
const key = `${item.type}:${item.id || item.projectPath || item.path || ''}`;
|
|
148
|
+
if (seen.has(key))
|
|
149
|
+
return false;
|
|
150
|
+
seen.add(key);
|
|
151
|
+
return true;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/** Engine `positiveOrNull` (`contract.js:400-403`). */
|
|
155
|
+
export function positiveOrNull(value) {
|
|
156
|
+
const parsed = Number(value);
|
|
157
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Engine `createContract` (`contract.js:569-648`). Field-for-field parity,
|
|
161
|
+
* including every error message and precedence chain. The uncommitted
|
|
162
|
+
* cloud-workspace behavior is preserved: `payload.cloudWorkspaceRef` makes
|
|
163
|
+
* cwd resolution mandatory (`workspace_cwd_unavailable`, 409).
|
|
164
|
+
*/
|
|
165
|
+
export function createContract(payload, options, ports) {
|
|
166
|
+
const sessionId = payload.codeSessionId || payload.sessionId;
|
|
167
|
+
if (!sessionId)
|
|
168
|
+
throw new Error('codeSessionId is required');
|
|
169
|
+
const assistantMessageId = payload.assistantMessageId;
|
|
170
|
+
if (!assistantMessageId)
|
|
171
|
+
throw new Error('assistantMessageId is required');
|
|
172
|
+
const harness = agentToHarness(payload.harness || payload.agentId || payload.agent);
|
|
173
|
+
assertSupportedHarness(harness);
|
|
174
|
+
const coerce = ports.coerceAuth || coerceAuth;
|
|
175
|
+
const authMethod = coerce(harness, payload.authMethod || 'amalgm');
|
|
176
|
+
const modelId = canonicalModel(payload.modelId || payload.cliModel, harness);
|
|
177
|
+
const reasoningEffort = payload.reasoningEffort || null;
|
|
178
|
+
const fastMode = payload.fastMode === true;
|
|
179
|
+
const cliModel = cliModelFor({ harness, modelId, cliModel: payload.cliModel, reasoningEffort });
|
|
180
|
+
const cwd = resolveCwd(payload.cwd, {
|
|
181
|
+
cwd: options.cwd,
|
|
182
|
+
defaultCwd: options.defaultCwd,
|
|
183
|
+
requireCwd: Boolean(payload.cloudWorkspaceRef),
|
|
184
|
+
}, ports.cwd);
|
|
185
|
+
if (!options.localBaseUrl && options.port == null) {
|
|
186
|
+
throw new Error("createContract requires options.localBaseUrl or options.port (engine default: runtimePort('chat-server'))");
|
|
187
|
+
}
|
|
188
|
+
const localBaseUrl = options.localBaseUrl || `http://127.0.0.1:${options.port}`;
|
|
189
|
+
const origin = normalizeOrigin({ ...payload, cwd });
|
|
190
|
+
const userId = payload.userId || options.userId || 'unknown-user';
|
|
191
|
+
const payloadChatAgent = payload.chatInput && typeof payload.chatInput === 'object' && !Array.isArray(payload.chatInput)
|
|
192
|
+
? payload.chatInput.agent
|
|
193
|
+
: null;
|
|
194
|
+
const agentConfigId = nullableString(payload.agentConfigId
|
|
195
|
+
|| payload.amalgmAgentId
|
|
196
|
+
|| payload.agentConfig?.agentId
|
|
197
|
+
|| payloadChatAgent?.customAgentId) || harness;
|
|
198
|
+
const agentConfig = ports.normalizeAgentConfig(payload.agentConfig || { agentId: agentConfigId });
|
|
199
|
+
const runtimeHomeLayout = 'per-agent';
|
|
200
|
+
const auth = ports.authEnvelope({
|
|
201
|
+
harness,
|
|
202
|
+
authMethod,
|
|
203
|
+
sessionId,
|
|
204
|
+
localBaseUrl,
|
|
205
|
+
proxyToken: options.proxyToken,
|
|
206
|
+
proxyBaseUrl: options.proxyBaseUrl,
|
|
207
|
+
amalgmDir: options.amalgmDir,
|
|
208
|
+
userId,
|
|
209
|
+
credentialId: payload.credentialId || payload.byokCredentialId || null,
|
|
210
|
+
modelId,
|
|
211
|
+
agentConfigId,
|
|
212
|
+
runtimeHomeLayout,
|
|
213
|
+
});
|
|
214
|
+
const contract = {
|
|
215
|
+
sessionId,
|
|
216
|
+
userId,
|
|
217
|
+
computerId: payload.computerId || options.containerId || 'local-computer',
|
|
218
|
+
assistantMessageId,
|
|
219
|
+
userMessageId: payload.userMessageId || null,
|
|
220
|
+
agentId: payload.agentId || (harness === 'claude_code' ? 'claude' : harness),
|
|
221
|
+
agentConfigId,
|
|
222
|
+
agentConfig,
|
|
223
|
+
runtimeHomeLayout,
|
|
224
|
+
harness,
|
|
225
|
+
authMethod: auth.method,
|
|
226
|
+
modelId,
|
|
227
|
+
usageModelId: modelId,
|
|
228
|
+
providerSessionId: nullableString(payload.providerSessionId || payload.provider_session_id),
|
|
229
|
+
cliModel,
|
|
230
|
+
reasoningEffort,
|
|
231
|
+
fastMode,
|
|
232
|
+
contextWindow: positiveOrNull(payload.contextWindow),
|
|
233
|
+
maxTokens: positiveOrNull(payload.maxTokens),
|
|
234
|
+
cwd,
|
|
235
|
+
origin,
|
|
236
|
+
constructs: normalizeConstructs({ ...payload, origin }, cwd),
|
|
237
|
+
localBaseUrl,
|
|
238
|
+
mcpServers: Array.isArray(payload.mcpServers) ? payload.mcpServers : [],
|
|
239
|
+
systemPrompt: payload.systemPrompt || '',
|
|
240
|
+
compiledAgentInstructions: payload.compiledAgentInstructions || '',
|
|
241
|
+
usageOwner: (auth.method === 'amalgm' ? 'platform_proxy' : 'local_user'),
|
|
242
|
+
auth,
|
|
243
|
+
};
|
|
244
|
+
const withIdentity = contract;
|
|
245
|
+
withIdentity.runtimeFields = frozenRuntimeFields(contract, ports);
|
|
246
|
+
withIdentity.runtimeKey = runtimeKey(contract, ports);
|
|
247
|
+
return withIdentity;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/contract/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The freeze algebra — engine `chat-core/contract.js:347-458` plus
|
|
3
|
+
* `chat-core/auth.js:66-68` (`fingerprint`), ported byte-exact.
|
|
4
|
+
*
|
|
5
|
+
* A session's runtime identity is the sha256 fingerprint of
|
|
6
|
+
* `frozenRuntimeFields`; the field ORDER inside that object is load-bearing
|
|
7
|
+
* (it is JSON.stringify'd) and must never change. Hashing is injected via
|
|
8
|
+
* `Sha256HexPort` (engine default: `node:crypto` sha256 hex digest).
|
|
9
|
+
*/
|
|
10
|
+
import type { Sha256HexPort } from '../ports.js';
|
|
11
|
+
export interface FreezePorts {
|
|
12
|
+
/** Lowercase hex SHA-256 of a UTF-8 string (engine: node:crypto). */
|
|
13
|
+
sha256Hex: Sha256HexPort;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Engine `auth.js fingerprint()`: first 16 hex chars of sha256, or null for
|
|
17
|
+
* falsy input. Non-strings are coerced with `String()` exactly as the engine.
|
|
18
|
+
*/
|
|
19
|
+
export declare function fingerprint(value: unknown, sha256Hex: Sha256HexPort): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Loose contract shape: the freeze algebra reads these fields but must accept
|
|
22
|
+
* any object (parity with the untyped engine).
|
|
23
|
+
*/
|
|
24
|
+
export interface ContractLike {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
runtimeFields?: Record<string, unknown> | undefined;
|
|
27
|
+
runtimeKey?: string | null | undefined;
|
|
28
|
+
}
|
|
29
|
+
export interface FrozenRuntimeFields {
|
|
30
|
+
sessionId: unknown;
|
|
31
|
+
userId: unknown;
|
|
32
|
+
computerId: unknown;
|
|
33
|
+
harness: unknown;
|
|
34
|
+
authMethod: unknown;
|
|
35
|
+
auth: unknown;
|
|
36
|
+
modelId: unknown;
|
|
37
|
+
usageModelId: unknown;
|
|
38
|
+
cliModel: unknown;
|
|
39
|
+
reasoningEffort: unknown;
|
|
40
|
+
fastMode: boolean;
|
|
41
|
+
contextWindow: unknown;
|
|
42
|
+
maxTokens: unknown;
|
|
43
|
+
cwd: unknown;
|
|
44
|
+
runtimeHomeLayout: unknown;
|
|
45
|
+
systemPrompt: string | null;
|
|
46
|
+
compiledAgentInstructions: string | null;
|
|
47
|
+
agentConfig: string | null;
|
|
48
|
+
origin: string | null;
|
|
49
|
+
mcpServers: string | null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Engine `frozenRuntimeFields` (`contract.js:365-394`). Field order in the
|
|
53
|
+
* returned object is byte-exact — `runtimeKey` stringifies it.
|
|
54
|
+
*/
|
|
55
|
+
export declare function frozenRuntimeFields(input: any, ports: FreezePorts): FrozenRuntimeFields;
|
|
56
|
+
/** Engine `runtimeKey` (`contract.js:396-398`): fingerprint of the frozen fields. */
|
|
57
|
+
export declare function runtimeKey(input: any, ports: FreezePorts): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Engine `changedRuntimeFields` (`contract.js:405-410`): the frozen-field keys
|
|
60
|
+
* whose values differ between two contracts. Prefers precomputed
|
|
61
|
+
* `runtimeFields`; falls back to recomputing (hence the ports).
|
|
62
|
+
*/
|
|
63
|
+
export declare function changedRuntimeFields(current: any, next: any, ports: FreezePorts): string[];
|
|
64
|
+
export interface FrozenContractChangedError extends Error {
|
|
65
|
+
code: 'FROZEN_SESSION_CONTRACT_CHANGED';
|
|
66
|
+
changedFields: string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Engine `frozenContractChangedError` (`contract.js:412-421`). Message and
|
|
70
|
+
* `code` are byte-exact.
|
|
71
|
+
*/
|
|
72
|
+
export declare function frozenContractChangedError(current: any, next: any, ports: FreezePorts): FrozenContractChangedError;
|
|
73
|
+
/**
|
|
74
|
+
* Engine `continueFrozenRuntimeContract` (`contract.js:423-458`): when the
|
|
75
|
+
* next turn's contract drifts, keep the frozen identity from the current
|
|
76
|
+
* contract, carry over per-turn fields from `next`, and record the drifted
|
|
77
|
+
* keys in `continuedFromChangedContract` (warn semantics — the turn proceeds).
|
|
78
|
+
*/
|
|
79
|
+
export declare function continueFrozenRuntimeContract<T extends ContractLike>(current: any, next: T, ports: FreezePorts): T;
|
|
80
|
+
/**
|
|
81
|
+
* Engine `assertSameContract` (`contract.js:650-655`): hard rejection when
|
|
82
|
+
* the runtime key moved. Throws `frozenContractChangedError`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function assertSameContract(current: any, next: any, ports: FreezePorts): void;
|
|
85
|
+
//# sourceMappingURL=freeze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"freeze.d.ts","sourceRoot":"","sources":["../../src/contract/freeze.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAEnF;AAkCD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,mBAAmB,CA+BvF;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAExE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,CAO1F;AAED,MAAM,WAAW,0BAA2B,SAAQ,KAAK;IACvD,IAAI,EAAE,iCAAiC,CAAC;IACxC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,0BAA0B,CASlH;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,YAAY,EAClE,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,WAAW,GACjB,CAAC,CAmCH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAKpF"}
|