@amalgm/chat 0.1.1 → 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 -104
- 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 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -23
- 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 +45 -21
- 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/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
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The merge law — engine `chat-core/chat-payload.js:33-160`
|
|
3
|
-
* (`applyPayloadRecord`), ported byte-exact, plus the error shapes of
|
|
4
|
-
* `resolveMachineChatPayload` (`chat-payload.js:162-185`) as exported
|
|
5
|
-
* builders. The sqlite payload fetch and MCP server resolution stay host.
|
|
6
|
-
*
|
|
7
|
-
* Precedence: machine payload record > structured chatInput > raw body.
|
|
8
|
-
* Client-supplied `cliModel` / `internalModelId` / `contextWindow` /
|
|
9
|
-
* `maxTokens` are always deleted — those identities are derived server-side.
|
|
10
|
-
*/
|
|
11
|
-
import type { ChatInput } from './chat-input.js';
|
|
12
|
-
/** Engine `chat-payload.js harnessToAgent` — harness id back to UI agent id. */
|
|
13
|
-
export declare function harnessToAgent(harness: unknown): string;
|
|
14
|
-
/**
|
|
15
|
-
* Engine `agent-config/loadout.js normalizeLoadout` — pure, ported fully
|
|
16
|
-
* (applyPayloadRecord calls it on `payload.loadout || payload.tools`).
|
|
17
|
-
*/
|
|
18
|
-
export declare function normalizeLoadout(value: unknown, fallback?: unknown, options?: {
|
|
19
|
-
defaultToolIds?: readonly string[] | undefined;
|
|
20
|
-
}): {
|
|
21
|
-
toolIds: string[];
|
|
22
|
-
};
|
|
23
|
-
/** A machine chat-payload record (`chat-payloads` store row). */
|
|
24
|
-
export interface ChatPayloadRecord {
|
|
25
|
-
payload?: unknown;
|
|
26
|
-
revision?: unknown;
|
|
27
|
-
[key: string]: unknown;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Host collaborators of `applyPayloadRecord`. Engine defaults:
|
|
31
|
-
* - `getAgentConfig` — `amalgm-mcp/agent-config/store.js getAgentConfig`
|
|
32
|
-
* (sqlite); SDK default returns null (no hydration).
|
|
33
|
-
* - `env` — `process.env.AMALGM_COMPUTER_ID` / `AMALGM_CONTAINER_ID`;
|
|
34
|
-
* pass both raw values so the engine's per-value trim/precedence holds.
|
|
35
|
-
*/
|
|
36
|
-
export interface ApplyPayloadRecordPorts {
|
|
37
|
-
getAgentConfig?(agentConfigId: string): unknown | null;
|
|
38
|
-
env?: {
|
|
39
|
-
AMALGM_COMPUTER_ID?: string | undefined;
|
|
40
|
-
AMALGM_CONTAINER_ID?: string | undefined;
|
|
41
|
-
} | undefined;
|
|
42
|
-
}
|
|
43
|
-
export interface MergedChatBody {
|
|
44
|
-
[key: string]: unknown;
|
|
45
|
-
chatInput: ChatInput;
|
|
46
|
-
harness: string;
|
|
47
|
-
mcpAppIds: string[];
|
|
48
|
-
modelSettings: Record<string, unknown>;
|
|
49
|
-
agentId: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Engine `applyPayloadRecord(body, record)` (`chat-payload.js:33-160`):
|
|
53
|
-
* overlay a machine payload record onto a raw request body. Field precedence
|
|
54
|
-
* and the final deletions are byte-exact.
|
|
55
|
-
*/
|
|
56
|
-
export declare function applyPayloadRecord(body: Record<string, any>, record: ChatPayloadRecord | null | undefined, ports?: ApplyPayloadRecordPorts): MergedChatBody;
|
|
57
|
-
export interface ChatPayloadNotFoundError extends Error {
|
|
58
|
-
status: 404;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* The 404 from `resolveMachineChatPayload` when the payload record is missing
|
|
62
|
-
* (`chat-payload.js:167-169`). Message and status are byte-exact.
|
|
63
|
-
*/
|
|
64
|
-
export declare function chatPayloadNotFoundError(payloadId: string): ChatPayloadNotFoundError;
|
|
65
|
-
export interface ChatPayloadRevisionMismatchError extends Error {
|
|
66
|
-
status: 409;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* The 409 from `resolveMachineChatPayload` when the launch payload's revision
|
|
70
|
-
* moved before launch (`chat-payload.js:173-178`). Message and status are
|
|
71
|
-
* byte-exact. The revision comparison itself stays host (it needs the sqlite
|
|
72
|
-
* record); the engine only throws when BOTH revisions are non-empty strings
|
|
73
|
-
* and differ.
|
|
74
|
-
*/
|
|
75
|
-
export declare function chatPayloadRevisionMismatchError(): ChatPayloadRevisionMismatchError;
|
|
76
|
-
//# sourceMappingURL=payload-merge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"payload-merge.d.ts","sourceRoot":"","sources":["../../src/contract/payload-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkBjD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAMvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,OAAY,EACtB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAAO,GAC/D;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAkBvB;AAoBD,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACvD,GAAG,CAAC,EAAE;QACJ,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1C,GAAG,SAAS,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC5C,KAAK,GAAE,uBAA4B,GAClC,cAAc,CAgIhB;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,CAKpF;AAED,MAAM,WAAW,gCAAiC,SAAQ,KAAK;IAC7D,MAAM,EAAE,GAAG,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,IAAI,gCAAgC,CAKnF"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The merge law — engine `chat-core/chat-payload.js:33-160`
|
|
3
|
-
* (`applyPayloadRecord`), ported byte-exact, plus the error shapes of
|
|
4
|
-
* `resolveMachineChatPayload` (`chat-payload.js:162-185`) as exported
|
|
5
|
-
* builders. The sqlite payload fetch and MCP server resolution stay host.
|
|
6
|
-
*
|
|
7
|
-
* Precedence: machine payload record > structured chatInput > raw body.
|
|
8
|
-
* Client-supplied `cliModel` / `internalModelId` / `contextWindow` /
|
|
9
|
-
* `maxTokens` are always deleted — those identities are derived server-side.
|
|
10
|
-
*/
|
|
11
|
-
import { chatInputToLegacyFields, normalizeChatInput } from './chat-input.js';
|
|
12
|
-
function isObject(value) {
|
|
13
|
-
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
14
|
-
}
|
|
15
|
-
function nullableString(value) {
|
|
16
|
-
return typeof value === 'string' && value.trim() ? value.trim() : null;
|
|
17
|
-
}
|
|
18
|
-
function uniqueStrings(value) {
|
|
19
|
-
if (!Array.isArray(value))
|
|
20
|
-
return [];
|
|
21
|
-
return [...new Set(value
|
|
22
|
-
.filter((item) => typeof item === 'string')
|
|
23
|
-
.map((item) => item.trim())
|
|
24
|
-
.filter(Boolean))];
|
|
25
|
-
}
|
|
26
|
-
/** Engine `chat-payload.js harnessToAgent` — harness id back to UI agent id. */
|
|
27
|
-
export function harnessToAgent(harness) {
|
|
28
|
-
if (harness === 'codex')
|
|
29
|
-
return 'codex';
|
|
30
|
-
if (harness === 'opencode')
|
|
31
|
-
return 'opencode';
|
|
32
|
-
if (harness === 'cursor')
|
|
33
|
-
return 'cursor';
|
|
34
|
-
if (harness === 'pi')
|
|
35
|
-
return 'pi';
|
|
36
|
-
return 'claude';
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Engine `agent-config/loadout.js normalizeLoadout` — pure, ported fully
|
|
40
|
-
* (applyPayloadRecord calls it on `payload.loadout || payload.tools`).
|
|
41
|
-
*/
|
|
42
|
-
export function normalizeLoadout(value, fallback = {}, options = {}) {
|
|
43
|
-
const raw = isObject(value) ? value : {};
|
|
44
|
-
const prior = isObject(fallback) ? fallback : {};
|
|
45
|
-
const explicit = rawToolIds(raw);
|
|
46
|
-
const previous = rawToolIds(prior);
|
|
47
|
-
const defaultToolIds = uniqueStrings(options.defaultToolIds || []);
|
|
48
|
-
if (hasExplicitToolIds(raw))
|
|
49
|
-
return { toolIds: explicit };
|
|
50
|
-
if (explicit.length > 0)
|
|
51
|
-
return { toolIds: explicit };
|
|
52
|
-
if (hasExplicitToolIds(prior))
|
|
53
|
-
return { toolIds: previous };
|
|
54
|
-
if (previous.length > 0)
|
|
55
|
-
return { toolIds: previous };
|
|
56
|
-
const isLegacyAll = (raw.mode && raw.mode !== 'selected')
|
|
57
|
-
|| (prior.mode && prior.mode !== 'selected');
|
|
58
|
-
if (isLegacyAll && defaultToolIds.length > 0)
|
|
59
|
-
return { toolIds: defaultToolIds };
|
|
60
|
-
return { toolIds: [] };
|
|
61
|
-
}
|
|
62
|
-
function rawToolIds(value) {
|
|
63
|
-
return uniqueStrings(value.toolIds
|
|
64
|
-
|| value.selectedToolIds
|
|
65
|
-
|| value.selected
|
|
66
|
-
|| value.tools
|
|
67
|
-
|| []);
|
|
68
|
-
}
|
|
69
|
-
function hasExplicitToolIds(value) {
|
|
70
|
-
if (!isObject(value))
|
|
71
|
-
return false;
|
|
72
|
-
return Object.prototype.hasOwnProperty.call(value, 'toolIds')
|
|
73
|
-
|| Object.prototype.hasOwnProperty.call(value, 'selectedToolIds')
|
|
74
|
-
|| Object.prototype.hasOwnProperty.call(value, 'selected')
|
|
75
|
-
|| Object.prototype.hasOwnProperty.call(value, 'tools');
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Engine `applyPayloadRecord(body, record)` (`chat-payload.js:33-160`):
|
|
79
|
-
* overlay a machine payload record onto a raw request body. Field precedence
|
|
80
|
-
* and the final deletions are byte-exact.
|
|
81
|
-
*/
|
|
82
|
-
export function applyPayloadRecord(body, record, ports = {}) {
|
|
83
|
-
const payload = isObject(record?.payload) ? record.payload : {};
|
|
84
|
-
const rawChatInput = isObject(body.chatInput) ? body.chatInput : {};
|
|
85
|
-
const rawAgent = isObject(rawChatInput.agent) ? rawChatInput.agent : {};
|
|
86
|
-
const rawTools = isObject(rawChatInput.tools) ? rawChatInput.tools : {};
|
|
87
|
-
const rawExecution = isObject(rawChatInput.execution) ? rawChatInput.execution : {};
|
|
88
|
-
const agentConfigSnapshot = isObject(payload.agentConfigSnapshot) ? payload.agentConfigSnapshot : null;
|
|
89
|
-
const snapshotAgentConfig = isObject(agentConfigSnapshot?.config) ? agentConfigSnapshot.config : null;
|
|
90
|
-
const snapshotAgentId = nullableString(agentConfigSnapshot?.agentId);
|
|
91
|
-
const snapshotCompiledAgentInstructions = nullableString(agentConfigSnapshot?.compiledInstructions);
|
|
92
|
-
const modelSettings = isObject(payload.modelSettings)
|
|
93
|
-
? payload.modelSettings
|
|
94
|
-
: isObject(body.modelSettings)
|
|
95
|
-
? body.modelSettings
|
|
96
|
-
: {};
|
|
97
|
-
const harness = nullableString(payload.resolvedHarnessId)
|
|
98
|
-
|| nullableString(payload.harness)
|
|
99
|
-
|| nullableString(rawAgent.harness)
|
|
100
|
-
|| nullableString(body.harness)
|
|
101
|
-
|| 'claude_code';
|
|
102
|
-
const modelId = nullableString(payload.modelId)
|
|
103
|
-
|| nullableString(rawAgent.model)
|
|
104
|
-
|| nullableString(body.modelId)
|
|
105
|
-
|| nullableString(body.model);
|
|
106
|
-
const authMethod = nullableString(payload.authMethod)
|
|
107
|
-
|| nullableString(rawAgent.authMethod)
|
|
108
|
-
|| nullableString(body.authMethod);
|
|
109
|
-
const customAgentId = nullableString(payload.customAgentId)
|
|
110
|
-
|| nullableString(rawAgent.customAgentId)
|
|
111
|
-
|| snapshotAgentId;
|
|
112
|
-
const agentConfigId = snapshotAgentId
|
|
113
|
-
|| nullableString(payload.agentConfigId)
|
|
114
|
-
|| nullableString(body.agentConfigId)
|
|
115
|
-
|| customAgentId;
|
|
116
|
-
const getAgentConfig = ports.getAgentConfig || (() => null);
|
|
117
|
-
const agentConfig = snapshotAgentConfig
|
|
118
|
-
|| (isObject(payload.agentConfig) && payload.agentConfig)
|
|
119
|
-
|| (isObject(body.agentConfig) && body.agentConfig)
|
|
120
|
-
|| (agentConfigId ? getAgentConfig(agentConfigId) : null);
|
|
121
|
-
const compiledAgentInstructions = snapshotCompiledAgentInstructions
|
|
122
|
-
|| nullableString(payload.compiledAgentInstructions)
|
|
123
|
-
|| nullableString(body.compiledAgentInstructions);
|
|
124
|
-
const legacySystemPrompt = nullableString(payload.systemPrompt)
|
|
125
|
-
|| nullableString(rawAgent.systemPrompt)
|
|
126
|
-
|| nullableString(body.systemPrompt);
|
|
127
|
-
const systemPrompt = agentConfig || compiledAgentInstructions ? null : legacySystemPrompt;
|
|
128
|
-
const cwd = nullableString(body.cwd)
|
|
129
|
-
|| nullableString(rawExecution.cwd)
|
|
130
|
-
|| nullableString(payload.cwd);
|
|
131
|
-
const computerId = nullableString(payload.machineId)
|
|
132
|
-
|| nullableString(body.computerId)
|
|
133
|
-
|| nullableString(rawExecution.computerId)
|
|
134
|
-
|| nullableString(ports.env?.AMALGM_COMPUTER_ID)
|
|
135
|
-
|| nullableString(ports.env?.AMALGM_CONTAINER_ID);
|
|
136
|
-
const mcpAppIds = uniqueStrings(payload.mcpAppIds);
|
|
137
|
-
const toolIds = normalizeLoadout(payload.loadout || payload.tools).toolIds;
|
|
138
|
-
const chatInput = normalizeChatInput({
|
|
139
|
-
...rawChatInput,
|
|
140
|
-
agent: {
|
|
141
|
-
...rawAgent,
|
|
142
|
-
harness,
|
|
143
|
-
...(modelId ? { model: modelId } : {}),
|
|
144
|
-
...(authMethod ? { authMethod } : {}),
|
|
145
|
-
customAgentId,
|
|
146
|
-
systemPrompt,
|
|
147
|
-
},
|
|
148
|
-
tools: {
|
|
149
|
-
...rawTools,
|
|
150
|
-
mcpAppIds,
|
|
151
|
-
toolIds,
|
|
152
|
-
},
|
|
153
|
-
execution: {
|
|
154
|
-
...rawExecution,
|
|
155
|
-
cwd,
|
|
156
|
-
computerId,
|
|
157
|
-
},
|
|
158
|
-
}, {
|
|
159
|
-
prompt: body.prompt,
|
|
160
|
-
userParts: body.userParts,
|
|
161
|
-
harness,
|
|
162
|
-
modelId,
|
|
163
|
-
authMethod,
|
|
164
|
-
cwd,
|
|
165
|
-
computerId,
|
|
166
|
-
mcpAppIds,
|
|
167
|
-
systemPrompt,
|
|
168
|
-
});
|
|
169
|
-
const legacy = chatInputToLegacyFields(chatInput, { prompt: body.prompt });
|
|
170
|
-
const reasoningEffort = nullableString(modelSettings.effort)
|
|
171
|
-
|| nullableString(modelSettings.reasoningEffort)
|
|
172
|
-
|| nullableString(modelSettings.reasoning);
|
|
173
|
-
const next = {
|
|
174
|
-
...body,
|
|
175
|
-
chatInput,
|
|
176
|
-
...legacy,
|
|
177
|
-
harness,
|
|
178
|
-
...(modelId ? { modelId, model: modelId } : {}),
|
|
179
|
-
...(authMethod ? { authMethod } : {}),
|
|
180
|
-
...(systemPrompt ? { systemPrompt } : {}),
|
|
181
|
-
...(cwd ? { cwd, projectPath: cwd } : {}),
|
|
182
|
-
...(computerId ? { computerId } : {}),
|
|
183
|
-
mcpAppIds,
|
|
184
|
-
modelSettings,
|
|
185
|
-
agentId: customAgentId || harnessToAgent(harness),
|
|
186
|
-
...(agentConfigId ? { agentConfigId } : {}),
|
|
187
|
-
...(agentConfig ? { agentConfig } : {}),
|
|
188
|
-
...(compiledAgentInstructions ? { compiledAgentInstructions } : {}),
|
|
189
|
-
...(reasoningEffort ? { reasoningEffort } : {}),
|
|
190
|
-
...(modelSettings.fastMode === true ? { fastMode: true } : {}),
|
|
191
|
-
};
|
|
192
|
-
delete next.cliModel;
|
|
193
|
-
delete next.internalModelId;
|
|
194
|
-
delete next.contextWindow;
|
|
195
|
-
delete next.maxTokens;
|
|
196
|
-
return next;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* The 404 from `resolveMachineChatPayload` when the payload record is missing
|
|
200
|
-
* (`chat-payload.js:167-169`). Message and status are byte-exact.
|
|
201
|
-
*/
|
|
202
|
-
export function chatPayloadNotFoundError(payloadId) {
|
|
203
|
-
return Object.assign(new Error(`Chat payload not found: ${payloadId}`), { status: 404 });
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* The 409 from `resolveMachineChatPayload` when the launch payload's revision
|
|
207
|
-
* moved before launch (`chat-payload.js:173-178`). Message and status are
|
|
208
|
-
* byte-exact. The revision comparison itself stays host (it needs the sqlite
|
|
209
|
-
* record); the engine only throws when BOTH revisions are non-empty strings
|
|
210
|
-
* and differ.
|
|
211
|
-
*/
|
|
212
|
-
export function chatPayloadRevisionMismatchError() {
|
|
213
|
-
return Object.assign(new Error('Chat payload changed before launch; retry with the latest machine payload.'), { status: 409 });
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=payload-merge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"payload-merge.js","sourceRoot":"","sources":["../../src/contract/payload-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal subset of engine `chat-core/tool-display.js` (149 lines) needed by
|
|
3
|
-
* the event grammar: text compaction and the action/output descriptor
|
|
4
|
-
* injectors used at event build time, ported byte-exact.
|
|
5
|
-
*
|
|
6
|
-
* NOTE (dedupe): the canonical public home for tool presentation is the
|
|
7
|
-
* transcript module (`src/transcript/`, per ROADMAP). This copy exists so
|
|
8
|
-
* `src/events` + `src/wire` build stand-alone; when the transcript port
|
|
9
|
-
* lands, these definitions should be unified. Not re-exported from the
|
|
10
|
-
* events barrel.
|
|
11
|
-
*/
|
|
12
|
-
/** Engine tool-display.js:3-5. */
|
|
13
|
-
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
14
|
-
/** Engine tool-display.js:20-24. Whitespace-collapse then ellipsize at `max`. */
|
|
15
|
-
export declare function compactText(value: unknown, max?: number): string;
|
|
16
|
-
/** Engine tool-display.js:26-33. Non-records become `{}`; an existing string actionDescriptor wins. */
|
|
17
|
-
export declare function withActionDescriptor(input: unknown, detail?: unknown): Record<string, unknown>;
|
|
18
|
-
/** Engine tool-display.js:35-40. Non-records pass through untouched. */
|
|
19
|
-
export declare function withOutputDescriptor(output: unknown, detail?: unknown): unknown;
|
|
20
|
-
/** Engine tool-display.js:131-139. */
|
|
21
|
-
export declare function stringifyResult(value: unknown): string;
|
|
22
|
-
//# sourceMappingURL=tool-display.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-display.d.ts","sourceRoot":"","sources":["../../src/events/tool-display.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAQD,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAM,GAAG,MAAM,CAI7D;AAED,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO9F;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAK/E;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQtD"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal subset of engine `chat-core/tool-display.js` (149 lines) needed by
|
|
3
|
-
* the event grammar: text compaction and the action/output descriptor
|
|
4
|
-
* injectors used at event build time, ported byte-exact.
|
|
5
|
-
*
|
|
6
|
-
* NOTE (dedupe): the canonical public home for tool presentation is the
|
|
7
|
-
* transcript module (`src/transcript/`, per ROADMAP). This copy exists so
|
|
8
|
-
* `src/events` + `src/wire` build stand-alone; when the transcript port
|
|
9
|
-
* lands, these definitions should be unified. Not re-exported from the
|
|
10
|
-
* events barrel.
|
|
11
|
-
*/
|
|
12
|
-
/** Engine tool-display.js:3-5. */
|
|
13
|
-
export function isRecord(value) {
|
|
14
|
-
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
15
|
-
}
|
|
16
|
-
/** Engine tool-display.js:7-10. */
|
|
17
|
-
function trimText(value) {
|
|
18
|
-
if (typeof value !== 'string')
|
|
19
|
-
return '';
|
|
20
|
-
return value.trim();
|
|
21
|
-
}
|
|
22
|
-
/** Engine tool-display.js:20-24. Whitespace-collapse then ellipsize at `max`. */
|
|
23
|
-
export function compactText(value, max = 160) {
|
|
24
|
-
const text = trimText(String(value ?? '').replace(/\s+/g, ' '));
|
|
25
|
-
if (!text)
|
|
26
|
-
return '';
|
|
27
|
-
return text.length > max ? `${text.slice(0, Math.max(0, max - 1)).trimEnd()}...` : text;
|
|
28
|
-
}
|
|
29
|
-
/** Engine tool-display.js:26-33. Non-records become `{}`; an existing string actionDescriptor wins. */
|
|
30
|
-
export function withActionDescriptor(input, detail) {
|
|
31
|
-
const next = isRecord(input) ? { ...input } : {};
|
|
32
|
-
const cleanDetail = compactText(detail);
|
|
33
|
-
if (cleanDetail && typeof next['actionDescriptor'] !== 'string') {
|
|
34
|
-
next['actionDescriptor'] = cleanDetail;
|
|
35
|
-
}
|
|
36
|
-
return next;
|
|
37
|
-
}
|
|
38
|
-
/** Engine tool-display.js:35-40. Non-records pass through untouched. */
|
|
39
|
-
export function withOutputDescriptor(output, detail) {
|
|
40
|
-
if (!isRecord(output))
|
|
41
|
-
return output;
|
|
42
|
-
const cleanDetail = compactText(detail);
|
|
43
|
-
if (!cleanDetail || typeof output['actionDescriptor'] === 'string')
|
|
44
|
-
return output;
|
|
45
|
-
return { ...output, actionDescriptor: cleanDetail };
|
|
46
|
-
}
|
|
47
|
-
/** Engine tool-display.js:131-139. */
|
|
48
|
-
export function stringifyResult(value) {
|
|
49
|
-
if (value == null)
|
|
50
|
-
return '';
|
|
51
|
-
if (typeof value === 'string')
|
|
52
|
-
return value;
|
|
53
|
-
try {
|
|
54
|
-
return JSON.stringify(value);
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return String(value);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=tool-display.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-display.js","sourceRoot":"","sources":["../../src/events/tool-display.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,mCAAmC;AACnC,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,MAAgB;IACnE,MAAM,IAAI,GAA4B,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,WAAW,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,MAAe,EAAE,MAAgB;IACpE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAClF,OAAO,EAAE,GAAG,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AACtD,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Internal port of engine `chat-core/tool-shape.js` (173 lines): tool
|
|
3
|
-
* identity — kind classification, human titles, and MCP name parsing
|
|
4
|
-
* (`mcp__<server>__<tool>`, `amalgm_<tool>`), ported byte-exact.
|
|
5
|
-
*
|
|
6
|
-
* NOTE (dedupe): the canonical public home for tool identity is the
|
|
7
|
-
* transcript module (`src/transcript/`, per ROADMAP). This copy exists so
|
|
8
|
-
* `src/events` + `src/wire` build stand-alone; unify when the transcript
|
|
9
|
-
* port lands. Not re-exported from the events barrel.
|
|
10
|
-
*/
|
|
11
|
-
import type { ToolKind } from './schema.js';
|
|
12
|
-
/** Engine tool-shape.js:9-17. Hostname without `www.`; unparseable URLs compact to 80 chars. */
|
|
13
|
-
export declare function hostLabel(url: unknown): string;
|
|
14
|
-
/** Engine tool-shape.js:19-28. */
|
|
15
|
-
export declare function humanizeToolName(value?: unknown): string;
|
|
16
|
-
/** Engine tool-shape.js:30-37. `mcp__<server>__<tool>` or `amalgm_<tool>`; null otherwise. */
|
|
17
|
-
export declare function parseMcpName(name?: unknown): {
|
|
18
|
-
server: string;
|
|
19
|
-
tool: string;
|
|
20
|
-
} | null;
|
|
21
|
-
export interface NormalizedToolError {
|
|
22
|
-
message: string;
|
|
23
|
-
code?: string;
|
|
24
|
-
details?: unknown;
|
|
25
|
-
}
|
|
26
|
-
/** Engine tool-shape.js:39-51. Falsy errors normalize to undefined; records keep themselves as `details`. */
|
|
27
|
-
export declare function normalizeError(error: unknown, fallback?: string): NormalizedToolError | undefined;
|
|
28
|
-
/** Engine tool-shape.js:53-76. Canonical kind classifier (name, then MCP, then input-shape heuristics). */
|
|
29
|
-
export declare function toolKind(name?: unknown, input?: unknown, metadata?: Record<string, unknown>): ToolKind;
|
|
30
|
-
export interface TitleForToolOptions {
|
|
31
|
-
name?: unknown;
|
|
32
|
-
input?: Record<string, unknown>;
|
|
33
|
-
/** Accepted for engine-signature parity; unused by the engine implementation too. */
|
|
34
|
-
output?: unknown;
|
|
35
|
-
error?: unknown;
|
|
36
|
-
metadata?: Record<string, unknown>;
|
|
37
|
-
fallback?: unknown;
|
|
38
|
-
}
|
|
39
|
-
/** Engine tool-shape.js:125-157. Descriptor > metadata title > MCP title > per-tool heuristics > fallback. */
|
|
40
|
-
export declare function titleForTool({ name, input, error, metadata, fallback }?: TitleForToolOptions): string;
|
|
41
|
-
/** Engine tool-shape.js:159-162. */
|
|
42
|
-
export declare function mcpMetadataFromName(name: unknown): {
|
|
43
|
-
mcp?: {
|
|
44
|
-
server: string;
|
|
45
|
-
tool: string;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=tool-shape.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-shape.d.ts","sourceRoot":"","sources":["../../src/events/tool-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAQ9C;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,OAAY,GAAG,MAAM,CAS5D;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,IAAI,GAAE,OAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOxF;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAgB,GAAG,mBAAmB,GAAG,SAAS,CAYxG;AAED,2GAA2G;AAC3G,wBAAgB,QAAQ,CAAC,IAAI,GAAE,OAAY,EAAE,KAAK,GAAE,OAAY,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,QAAQ,CAwBlH;AAmDD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,8GAA8G;AAC9G,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,KAAU,EAAE,KAAK,EAAE,QAAa,EAAE,QAAQ,EAAE,GAAE,mBAAwB,GAAG,MAAM,CAiCnH;AAED,oCAAoC;AACpC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,GAAG,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAG7F"}
|