@amalgm/shell 0.1.164-preview.35136989415 → 0.1.164-preview.35157059187
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 +41 -5
- package/dist/agent-execution.d.ts +70 -0
- package/dist/agent-execution.js +86 -0
- package/dist/agent-execution.js.map +1 -0
- package/dist/boot.d.ts +1 -1
- package/dist/boot.js +11 -20
- package/dist/boot.js.map +1 -1
- package/dist/channel-session.d.ts +50 -0
- package/dist/channel-session.js +32 -0
- package/dist/channel-session.js.map +1 -0
- package/dist/chat-composition.js +8 -121
- package/dist/chat-composition.js.map +1 -1
- package/dist/chat-toolbox.js +7 -4
- package/dist/chat-toolbox.js.map +1 -1
- package/dist/machine-host.js +22 -6
- package/dist/machine-host.js.map +1 -1
- package/dist/official-mcp-host.js +7 -1
- package/dist/official-mcp-host.js.map +1 -1
- package/dist/platform-product-host.d.ts +2 -0
- package/dist/platform-product-host.js +4 -1
- package/dist/platform-product-host.js.map +1 -1
- package/dist/tool-mcp-client.js +19 -1
- package/dist/tool-mcp-client.js.map +1 -1
- package/dist/toolbox-host.d.ts +4 -0
- package/dist/toolbox-host.js +10 -0
- package/dist/toolbox-host.js.map +1 -0
- package/dist/wire-client.d.ts +2 -0
- package/dist/wire-client.js +87 -4
- package/dist/wire-client.js.map +1 -1
- package/dist/workspace-host.d.ts +11 -0
- package/dist/workspace-host.js +21 -2
- package/dist/workspace-host.js.map +1 -1
- package/dist/workspace-store.js +1 -3
- package/dist/workspace-store.js.map +1 -1
- package/npm-shrinkwrap.json +23 -20
- package/package.json +6 -6
package/PURPOSE.md
CHANGED
|
@@ -12,6 +12,11 @@ Shell code.
|
|
|
12
12
|
|
|
13
13
|
## Operating axioms
|
|
14
14
|
|
|
15
|
+
For outgoing email, Shell supplies its source computer and home directory to
|
|
16
|
+
Channels' local adapter. Agents continue producing resource references; UI's
|
|
17
|
+
portable link grammar derives surface URLs. This context names the source and
|
|
18
|
+
never grants the recipient access.
|
|
19
|
+
|
|
15
20
|
These are the required operating contract, not a statement that every current
|
|
16
21
|
installation satisfies it. The [operating contract](docs/operating-contract.md)
|
|
17
22
|
defines the terms and examinations; the [September 2026 audit](docs/operating-audit-2026-09-05.md)
|
|
@@ -47,6 +52,11 @@ gap to resolve at its owning SDK, not a reason to perpetuate the violation.
|
|
|
47
52
|
|
|
48
53
|
## Axioms
|
|
49
54
|
|
|
55
|
+
Channel orchestration resolves an explicit thread seed through Agents for a new
|
|
56
|
+
Chat session. The seed supplies computer, cwd, model overrides and instructions;
|
|
57
|
+
Shell never guesses from recent activity. Existing sessions remain Chat's
|
|
58
|
+
authority, and Channels sends carry the trusted originating session identity.
|
|
59
|
+
|
|
50
60
|
Registry acceptance and public installability are separate states; publication
|
|
51
61
|
waits for the exact examined bytes to become readable before recording success.
|
|
52
62
|
|
|
@@ -56,6 +66,24 @@ Shell owns neither email rendering nor a second media parser. The same client
|
|
|
56
66
|
serves MCP, CLI, and automation sends, so all local entry points capture media
|
|
57
67
|
through one contract.
|
|
58
68
|
|
|
69
|
+
Workspace selection lets an agent work in an exact existing folder on the selected
|
|
70
|
+
computer. Every Shell startup composes Live's durable folder-link registry and
|
|
71
|
+
Core's snapshot/event projection together, including when Files has no cloud rail.
|
|
72
|
+
One folder remains a direct link; a named group remembers its selected child;
|
|
73
|
+
neither registration nor removal copies, moves, or deletes the linked contents.
|
|
74
|
+
The machine workspace root exists before an unscoped chat can use it as its cwd.
|
|
75
|
+
Installed machines keep these local links and their event tail in machine state.
|
|
76
|
+
The registry file is authoritative. Replacement validates the complete registry,
|
|
77
|
+
flushes private temporary bytes and atomically renames them; a failed write cannot
|
|
78
|
+
publish uncommitted entries from memory, and corrupt state is never treated as empty.
|
|
79
|
+
|
|
80
|
+
Remote HTTP requests target the same authenticated Shell mounts as loopback
|
|
81
|
+
requests. The existing wire stream protocol preserves response status and bytes
|
|
82
|
+
incrementally with bounded buffering. A request belongs to its original wire;
|
|
83
|
+
subscriber cancellation or wire loss aborts only that HTTP subscription, never
|
|
84
|
+
the product operation it observes. Product interruption requires its explicit API.
|
|
85
|
+
Shell advertises HTTP streaming explicitly in the authenticated wire hello.
|
|
86
|
+
|
|
59
87
|
A materialized row proves local observation, not completed official delivery.
|
|
60
88
|
An independent later observation starts from a settled basis only after earlier
|
|
61
89
|
mutations are accepted, their matching Inbox records resolve, and Apply releases
|
|
@@ -1162,12 +1190,20 @@ writable state; format-1 and format-2 runtimes cannot recover after adoption.
|
|
|
1162
1190
|
`channels.notify_user` is one registered automation action, never a special
|
|
1163
1191
|
scheduling path. Gateway is not a product relay, and Shell stores no
|
|
1164
1192
|
portable Automations or Channels database.
|
|
1193
|
+
Chat and Automations share one Toolbox whose host composition always supplies
|
|
1194
|
+
the authenticated MCP driver for installed product routes. An automation's
|
|
1195
|
+
run-step idempotency key crosses that loopback route as trusted execution
|
|
1196
|
+
metadata; the owning product applies it without changing the workflow input.
|
|
1197
|
+
Runtime credentials and trusted host headers never accompany external MCP
|
|
1198
|
+
connections.
|
|
1165
1199
|
Channels inbound work stays hosted only until Chat durably admits its turn.
|
|
1166
|
-
A new email conversation
|
|
1167
|
-
|
|
1168
|
-
alone is not an executable selection
|
|
1169
|
-
|
|
1170
|
-
|
|
1200
|
+
A new email conversation resolves the thread's explicit saved defaults --
|
|
1201
|
+
agent, model settings, computer, working directory and instructions --
|
|
1202
|
+
through Agents; an agent id alone is not an executable selection, and Shell
|
|
1203
|
+
never guesses from recent activity. Missing defaults hold the work for
|
|
1204
|
+
configuration, the defaults must name this computer, and the selected agent
|
|
1205
|
+
must already carry Channels send access. Replies resume the session's latest
|
|
1206
|
+
admitted execution, which stays Chat's authority.
|
|
1171
1207
|
The machine reconciles on every event-stream connection, so a wakeup is
|
|
1172
1208
|
never the authority. Shell preserves Chat's session id as hidden MCP
|
|
1173
1209
|
metadata and never exposes it as a model-chosen Channels argument. The
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Agents } from "@amalgm/agents";
|
|
2
|
+
import type { Toolbox } from "@amalgm/tools";
|
|
3
|
+
/** Resolve an installed agent once through its owning SDK before Chat starts. */
|
|
4
|
+
export interface AgentExecutionContext {
|
|
5
|
+
readonly agents: Agents;
|
|
6
|
+
readonly toolbox?: Toolbox;
|
|
7
|
+
readonly computerId: string;
|
|
8
|
+
readonly stateDir: string;
|
|
9
|
+
readonly amalgmDir?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveAgentRun(options: AgentExecutionContext, installationId: string, selection?: {
|
|
12
|
+
modelId?: string;
|
|
13
|
+
}): Readonly<{
|
|
14
|
+
title: string;
|
|
15
|
+
execution: {
|
|
16
|
+
agent: {
|
|
17
|
+
adapterId: string;
|
|
18
|
+
installationId: string;
|
|
19
|
+
revisionId: string;
|
|
20
|
+
};
|
|
21
|
+
model: {
|
|
22
|
+
settings: ({
|
|
23
|
+
configId: string;
|
|
24
|
+
type: "boolean";
|
|
25
|
+
value: boolean;
|
|
26
|
+
} | {
|
|
27
|
+
configId: string;
|
|
28
|
+
value: string;
|
|
29
|
+
type?: undefined;
|
|
30
|
+
})[];
|
|
31
|
+
providerId: string;
|
|
32
|
+
modelId: string;
|
|
33
|
+
};
|
|
34
|
+
auth: {
|
|
35
|
+
mode: "byok";
|
|
36
|
+
bindingId: string;
|
|
37
|
+
} | {
|
|
38
|
+
mode: "subscription";
|
|
39
|
+
bindingId: string;
|
|
40
|
+
} | {
|
|
41
|
+
mode: "platform";
|
|
42
|
+
bindingId: string;
|
|
43
|
+
};
|
|
44
|
+
tools: {
|
|
45
|
+
exposure?: Record<string, "direct" | "search" | "hidden"> | undefined;
|
|
46
|
+
revisionId: string | null;
|
|
47
|
+
toolIds: string[];
|
|
48
|
+
};
|
|
49
|
+
cwd: {
|
|
50
|
+
path: string;
|
|
51
|
+
workspaceId: null;
|
|
52
|
+
materializationRevision: null;
|
|
53
|
+
};
|
|
54
|
+
permissionMode: "ask" | "full_access";
|
|
55
|
+
computerId: string;
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
58
|
+
export declare function modelSelection(id: string, adapterId: string): {
|
|
59
|
+
providerId: string;
|
|
60
|
+
modelId: string;
|
|
61
|
+
};
|
|
62
|
+
export declare function modelSettings(settings: Readonly<Record<string, unknown>>): ({
|
|
63
|
+
configId: string;
|
|
64
|
+
type: "boolean";
|
|
65
|
+
value: boolean;
|
|
66
|
+
} | {
|
|
67
|
+
configId: string;
|
|
68
|
+
value: string;
|
|
69
|
+
type?: undefined;
|
|
70
|
+
})[];
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export function resolveAgentRun(options, installationId, selection = {}) {
|
|
2
|
+
const record = options.agents.getAgent(installationId);
|
|
3
|
+
if (!record)
|
|
4
|
+
throw Object.assign(new Error(`Installed agent was not found: ${installationId}`), {
|
|
5
|
+
code: "AGENT_NOT_FOUND",
|
|
6
|
+
});
|
|
7
|
+
const revision = options.agents.getAgentRevision(installationId, record.currentRevisionId);
|
|
8
|
+
const definition = revision.definition;
|
|
9
|
+
const modelId = selection.modelId ?? definition.model?.id;
|
|
10
|
+
if (!modelId) {
|
|
11
|
+
throw Object.assign(new Error(`Installed agent has no model: ${installationId}`), {
|
|
12
|
+
code: "AGENT_MODEL_REQUIRED",
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
const model = modelSelection(modelId, definition.driver.id);
|
|
16
|
+
const tools = [...new Set([
|
|
17
|
+
...definition.toolbox.toolIds,
|
|
18
|
+
...definition.toolbox.actionIds,
|
|
19
|
+
...strings(definition.metadata["mcpAppIds"]),
|
|
20
|
+
])];
|
|
21
|
+
return Object.freeze({
|
|
22
|
+
title: definition.name,
|
|
23
|
+
execution: {
|
|
24
|
+
agent: {
|
|
25
|
+
adapterId: definition.driver.id,
|
|
26
|
+
installationId,
|
|
27
|
+
revisionId: revision.id,
|
|
28
|
+
},
|
|
29
|
+
model: { ...model, settings: modelSettings(definition.model?.settings ?? {}) },
|
|
30
|
+
auth: authSelection(installationId, definition.authRef),
|
|
31
|
+
tools: {
|
|
32
|
+
revisionId: tools.length > 0 ? requiredToolbox(options).catalog().revisionId : null,
|
|
33
|
+
toolIds: tools,
|
|
34
|
+
...(definition.toolbox.exposure ? { exposure: definition.toolbox.exposure } : {}),
|
|
35
|
+
},
|
|
36
|
+
cwd: {
|
|
37
|
+
path: definition.workspace.cwd || options.amalgmDir || options.stateDir,
|
|
38
|
+
workspaceId: null,
|
|
39
|
+
materializationRevision: null,
|
|
40
|
+
},
|
|
41
|
+
permissionMode: definition.metadata["permissionMode"] === "ask" ? "ask" : "full_access",
|
|
42
|
+
computerId: options.computerId,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function requiredToolbox(options) {
|
|
47
|
+
if (!options.toolbox)
|
|
48
|
+
throw new Error("Agent tools require the Shell Toolbox capability");
|
|
49
|
+
return options.toolbox;
|
|
50
|
+
}
|
|
51
|
+
export function modelSelection(id, adapterId) {
|
|
52
|
+
const slash = id.indexOf("/");
|
|
53
|
+
if (slash > 0)
|
|
54
|
+
return { providerId: id.slice(0, slash), modelId: id.slice(slash + 1) };
|
|
55
|
+
return {
|
|
56
|
+
providerId: adapterId === "claude_code" ? "anthropic" : adapterId === "codex" ? "openai" : adapterId,
|
|
57
|
+
modelId: id,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function modelSettings(settings) {
|
|
61
|
+
return Object.entries(settings).map(([rawId, value]) => {
|
|
62
|
+
const configId = rawId === "effort" ? "reasoning_effort" : rawId === "fastMode" ? "fast" : rawId;
|
|
63
|
+
if (typeof value === "boolean")
|
|
64
|
+
return { configId, type: "boolean", value };
|
|
65
|
+
if (typeof value === "string" || typeof value === "number")
|
|
66
|
+
return { configId, value: String(value) };
|
|
67
|
+
throw Object.assign(new Error(`Agent model setting must be scalar: ${rawId}`), {
|
|
68
|
+
code: "AGENT_MODEL_SETTING_INVALID",
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function authSelection(installationId, authRef) {
|
|
73
|
+
const selected = authRef || "amalgm";
|
|
74
|
+
if (selected === "byok")
|
|
75
|
+
return { mode: "byok", bindingId: "default" };
|
|
76
|
+
if (selected === "provider_auth" || selected === "subscription") {
|
|
77
|
+
return { mode: "subscription", bindingId: `${installationId}:provider_auth` };
|
|
78
|
+
}
|
|
79
|
+
return { mode: "platform", bindingId: `${installationId}:${selected}` };
|
|
80
|
+
}
|
|
81
|
+
function strings(value) {
|
|
82
|
+
return Array.isArray(value)
|
|
83
|
+
? value.filter((item) => typeof item === "string" && Boolean(item.trim()))
|
|
84
|
+
: [];
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=agent-execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-execution.js","sourceRoot":"","sources":["../src/agent-execution.ts"],"names":[],"mappings":"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"}
|
package/dist/boot.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { PlatformCredentialBroker } from "@amalgm/chat/host";
|
|
|
7
7
|
import { StateRail } from "@amalgm/core/state";
|
|
8
8
|
import type { Toolbox } from "@amalgm/tools";
|
|
9
9
|
import type { PtySessionManager } from "@amalgm/core/pty";
|
|
10
|
-
import { WorkspaceRegistry } from "@amalgm/live/workspace";
|
|
10
|
+
import type { WorkspaceRegistry } from "@amalgm/live/workspace";
|
|
11
11
|
import type { AutomationsHostConfig } from "./automations-host.js";
|
|
12
12
|
import type { ChatHost } from "./chat-host.js";
|
|
13
13
|
import type { ShellConfig } from "./compose.js";
|
package/dist/boot.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
1
|
import { homedir } from "node:os";
|
|
3
2
|
import { join } from "node:path";
|
|
4
3
|
import { Agents, listAgentConfigs } from "@amalgm/agents";
|
|
@@ -15,9 +14,8 @@ import { runtimeTokenFromEnv } from "@amalgm/core/transport";
|
|
|
15
14
|
import { createChatMcpServer } from "@amalgm/chat/mcp";
|
|
16
15
|
import { coerceRuntimeLabel, runtimeLogDir, runtimeStateDir, userMachineDir } from "@amalgm/core/identity";
|
|
17
16
|
import { StateRail } from "@amalgm/core/state";
|
|
18
|
-
import { createMcpServer as createToolsMcp
|
|
17
|
+
import { createMcpServer as createToolsMcp } from "@amalgm/tools";
|
|
19
18
|
import { createToolboxHttpServer } from "@amalgm/tools/http";
|
|
20
|
-
import { WorkspaceRegistry } from "@amalgm/live/workspace";
|
|
21
19
|
import { automationsMount } from "./automations-host.js";
|
|
22
20
|
import { installBuiltinAgents } from "./builtin-agents.js";
|
|
23
21
|
import { createShellChatComposition } from "./chat-composition.js";
|
|
@@ -27,7 +25,7 @@ import { createShellBundlePort } from "./bundle-port.js";
|
|
|
27
25
|
import { InstalledAutomations } from "./installed-automations.js";
|
|
28
26
|
import { composeShell } from "./compose.js";
|
|
29
27
|
import { createCredentialVault, credentialVaultMounts } from "./credentials-host.js";
|
|
30
|
-
import {
|
|
28
|
+
import { createShellToolsMcp } from "./toolbox-host.js";
|
|
31
29
|
import { forwardMount } from "./forward.js";
|
|
32
30
|
import { filesBrowserMount } from "./files-browser-host.js";
|
|
33
31
|
import { eventTriggersMount } from "./event-triggers-host.js";
|
|
@@ -39,8 +37,7 @@ import { portsMounts } from "./ports-host.js";
|
|
|
39
37
|
import { localMount } from "./local-host.js";
|
|
40
38
|
import { stateMount } from "./state-host.js";
|
|
41
39
|
import { FileStateEventStore } from "./state-store.js";
|
|
42
|
-
import {
|
|
43
|
-
import { FileWorkspaceStore } from "./workspace-store.js";
|
|
40
|
+
import { createWorkspaceHost, workspacePathHost } from "./workspace-host.js";
|
|
44
41
|
/**
|
|
45
42
|
* Boot the shell: identity law hands every brick its state dir, each
|
|
46
43
|
* brick's surface mounts on its Shell prefix, and kernel law guards
|
|
@@ -63,15 +60,13 @@ export async function bootShell(config = {}) {
|
|
|
63
60
|
const workspaceRoot = env.AMALGM_WORKSPACES_DIR
|
|
64
61
|
? workspacePathHost.resolve(env.AMALGM_WORKSPACES_DIR)
|
|
65
62
|
: stateDirs.workspaces;
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
paths: workspacePathHost,
|
|
63
|
+
const workspaceHost = createWorkspaceHost({
|
|
64
|
+
file: `${stateDirs.system}/workspaces.json`,
|
|
69
65
|
computerId: env.AMALGM_COMPUTER_ID || "local-computer",
|
|
70
66
|
workspaceRoot,
|
|
71
|
-
|
|
72
|
-
randomBytes,
|
|
73
|
-
onEvent: (event) => state.append(event),
|
|
67
|
+
state,
|
|
74
68
|
});
|
|
69
|
+
const workspace = workspaceHost.registry;
|
|
75
70
|
const platformTools = await platformToolDefinitions({
|
|
76
71
|
agents: { tools: createAgentsMcpTools({}) },
|
|
77
72
|
apps: { tools: createAppsMcpTools({}) },
|
|
@@ -89,11 +84,7 @@ export async function bootShell(config = {}) {
|
|
|
89
84
|
}),
|
|
90
85
|
});
|
|
91
86
|
const credentialVault = createCredentialVault(join(userMachineDir(userDir, deviceId), "credentials"));
|
|
92
|
-
const
|
|
93
|
-
localBaseUrl: () => `http://127.0.0.1:${gatewayPort()}`, runtimeToken: () => token,
|
|
94
|
-
});
|
|
95
|
-
const tools = createToolsMcp({
|
|
96
|
-
drivers: [createMcpDriver(toolMcpClient)],
|
|
87
|
+
const tools = await createShellToolsMcp({
|
|
97
88
|
credentials: { get: (ref) => credentialVault.getSecret(ref), set: (ref, value) => credentialVault.putSecret(ref, value), delete: (ref) => credentialVault.deleteSecret(ref) },
|
|
98
89
|
databaseFile: join(runtimeDir, "services", "tools", "tools.db"),
|
|
99
90
|
deploymentDir: stateDirs.toolbox,
|
|
@@ -104,6 +95,8 @@ export async function bootShell(config = {}) {
|
|
|
104
95
|
state.append({ resource: "tools", op: "replace", value: catalog.tools, source: "toolbox-projection" });
|
|
105
96
|
state.append({ resource: "tool_actions", op: "replace", value: catalog.actions, source: "toolbox-projection" });
|
|
106
97
|
},
|
|
98
|
+
}, {
|
|
99
|
+
localBaseUrl: () => `http://127.0.0.1:${gatewayPort()}`, runtimeToken: () => token,
|
|
107
100
|
});
|
|
108
101
|
const toolDeploymentSurface = tools.toolbox.deploymentSurface();
|
|
109
102
|
const stopToolDeploymentEvents = toolDeploymentSurface.observeEdits((activation) => {
|
|
@@ -153,8 +146,6 @@ export async function bootShell(config = {}) {
|
|
|
153
146
|
snapshotDefault: false,
|
|
154
147
|
read: () => tools.toolbox.deploymentSnapshot(),
|
|
155
148
|
});
|
|
156
|
-
state.registerResource("projects", { snapshotDefault: true, read: () => workspace.list() });
|
|
157
|
-
state.registerResource("workspaces", { snapshotDefault: true, read: () => workspace.list() });
|
|
158
149
|
const bundlePrincipal = config.automations?.bundlePrincipal
|
|
159
150
|
?? (config.automations && !config.automations.principal
|
|
160
151
|
? { userId: "local", scopes: ["*"] }
|
|
@@ -239,7 +230,7 @@ export async function bootShell(config = {}) {
|
|
|
239
230
|
...(config.automations ? [automationsMount(config.automations)] : []),
|
|
240
231
|
...(config.automations ? [eventTriggersMount(config.automations)] : []),
|
|
241
232
|
stateMount(state),
|
|
242
|
-
|
|
233
|
+
workspaceHost.mount,
|
|
243
234
|
filesBrowserMount({
|
|
244
235
|
userEmail: config.userEmail ?? config.scope ?? env.AMALGM_USER_EMAIL ?? "local",
|
|
245
236
|
computerId,
|
package/dist/boot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boot.js","sourceRoot":"","sources":["../src/boot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type AgentExecutionContext } from './agent-execution.js';
|
|
2
|
+
/** Only a new email-origin session consumes the thread's snapshotted defaults. */
|
|
3
|
+
export declare function resolveChannelSession(options: AgentExecutionContext, input: unknown): {
|
|
4
|
+
execution: {
|
|
5
|
+
cwd: {
|
|
6
|
+
path: string;
|
|
7
|
+
workspaceId: null;
|
|
8
|
+
materializationRevision: null;
|
|
9
|
+
};
|
|
10
|
+
model: {
|
|
11
|
+
settings: ({
|
|
12
|
+
configId: string;
|
|
13
|
+
type: "boolean";
|
|
14
|
+
value: boolean;
|
|
15
|
+
} | {
|
|
16
|
+
configId: string;
|
|
17
|
+
value: string;
|
|
18
|
+
type?: undefined;
|
|
19
|
+
})[];
|
|
20
|
+
providerId: string;
|
|
21
|
+
modelId: string;
|
|
22
|
+
};
|
|
23
|
+
agent: {
|
|
24
|
+
adapterId: string;
|
|
25
|
+
installationId: string;
|
|
26
|
+
revisionId: string;
|
|
27
|
+
};
|
|
28
|
+
auth: {
|
|
29
|
+
mode: "byok";
|
|
30
|
+
bindingId: string;
|
|
31
|
+
} | {
|
|
32
|
+
mode: "subscription";
|
|
33
|
+
bindingId: string;
|
|
34
|
+
} | {
|
|
35
|
+
mode: "platform";
|
|
36
|
+
bindingId: string;
|
|
37
|
+
};
|
|
38
|
+
tools: {
|
|
39
|
+
exposure?: Record<string, "direct" | "search" | "hidden"> | undefined;
|
|
40
|
+
revisionId: string | null;
|
|
41
|
+
toolIds: string[];
|
|
42
|
+
};
|
|
43
|
+
permissionMode: "ask" | "full_access";
|
|
44
|
+
computerId: string;
|
|
45
|
+
};
|
|
46
|
+
instructions: string;
|
|
47
|
+
metadata: {
|
|
48
|
+
agentInstallationId: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { normalizeChannelConfiguration } from '@amalgm/channels';
|
|
2
|
+
import { resolveAgentRun, modelSettings } from './agent-execution.js';
|
|
3
|
+
/** Only a new email-origin session consumes the thread's snapshotted defaults. */
|
|
4
|
+
export function resolveChannelSession(options, input) {
|
|
5
|
+
if (!input)
|
|
6
|
+
throw Object.assign(new Error('Configure an Email channel agent and workspace first'), {
|
|
7
|
+
code: 'CHANNEL_DEFAULTS_REQUIRED',
|
|
8
|
+
});
|
|
9
|
+
const defaults = normalizeChannelConfiguration(input);
|
|
10
|
+
if (!defaults.enabled || !defaults.agentId || defaults.computerId !== options.computerId) {
|
|
11
|
+
throw Object.assign(new Error('Email defaults do not target this computer'), { code: 'CHANNEL_COMPUTER_MISMATCH' });
|
|
12
|
+
}
|
|
13
|
+
const resolved = resolveAgentRun(options, defaults.agentId, defaults);
|
|
14
|
+
if (!resolved.execution.tools.toolIds.some(id => id === 'channels' || id === 'channels.amalgm_channels_send')) {
|
|
15
|
+
throw Object.assign(new Error('The selected agent needs Channels send access to answer email'), {
|
|
16
|
+
code: 'CHANNEL_REPLY_ACCESS_REQUIRED',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
execution: {
|
|
21
|
+
...resolved.execution,
|
|
22
|
+
cwd: { ...resolved.execution.cwd, path: defaults.cwd },
|
|
23
|
+
model: {
|
|
24
|
+
...resolved.execution.model,
|
|
25
|
+
settings: defaults.modelSettings ? modelSettings(defaults.modelSettings) : resolved.execution.model.settings,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
instructions: defaults.instructions,
|
|
29
|
+
metadata: { agentInstallationId: defaults.agentId },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=channel-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-session.js","sourceRoot":"","sources":["../src/channel-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,aAAa,EAA8B,MAAM,sBAAsB,CAAC;AAElG,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,OAA8B,EAAE,KAAc;IAClF,IAAI,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,EAAE;YACjG,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;QACzF,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,IAAI,EAAE,KAAK,+BAA+B,CAAC,EAAE,CAAC;QAC9G,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+DAA+D,CAAC,EAAE;YAC9F,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,SAAS,EAAE;YACT,GAAG,QAAQ,CAAC,SAAS;YACrB,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE;YACtD,KAAK,EAAE;gBACL,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ;aAC7G;SACF;QACD,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,QAAQ,EAAE,EAAE,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE;KACpD,CAAC;AACJ,CAAC"}
|
package/dist/chat-composition.js
CHANGED
|
@@ -4,6 +4,8 @@ import { createExternalMessageRunner } from "@amalgm/chat";
|
|
|
4
4
|
import { createChatHost } from "@amalgm/chat/host";
|
|
5
5
|
import { createChatAgentRunner } from "@amalgm/chat/mcp";
|
|
6
6
|
import { ChatHost } from "./chat-host.js";
|
|
7
|
+
import { resolveAgentRun } from "./agent-execution.js";
|
|
8
|
+
import { resolveChannelSession } from "./channel-session.js";
|
|
7
9
|
import { ChatToolbox } from "./chat-toolbox.js";
|
|
8
10
|
import { agentToolSelection, resolveToolboxServers } from "./chat-tools.js";
|
|
9
11
|
/** The one Chat composition used by every Shell host. */
|
|
@@ -32,8 +34,12 @@ export async function createShellChatComposition(options) {
|
|
|
32
34
|
digest: (value) => createHash("sha256").update(value).digest("hex"),
|
|
33
35
|
});
|
|
34
36
|
const externalMessages = createExternalMessageRunner(composed.chat, {
|
|
35
|
-
resolveNew:
|
|
36
|
-
resolveExisting: (
|
|
37
|
+
resolveNew: (input) => resolveChannelSession(options, input.context?.defaults),
|
|
38
|
+
resolveExisting: () => {
|
|
39
|
+
throw Object.assign(new Error('The channel session has no durable execution to resume'), {
|
|
40
|
+
code: 'CHANNEL_SESSION_EXECUTION_REQUIRED',
|
|
41
|
+
});
|
|
42
|
+
},
|
|
37
43
|
});
|
|
38
44
|
return new ChatHost({
|
|
39
45
|
chat: composed.chat,
|
|
@@ -44,125 +50,6 @@ export async function createShellChatComposition(options) {
|
|
|
44
50
|
close: async () => { await composed.close(); toolExecutions.close(); },
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
|
-
async function lastUsedExecution(options, chat) {
|
|
48
|
-
// Empty conversations have no execution choice to inherit. Read the durable
|
|
49
|
-
// turn through Chat's public capability, never reconstruct it from an agent id.
|
|
50
|
-
const limit = 64;
|
|
51
|
-
for (let offset = 0;; offset += limit) {
|
|
52
|
-
const records = await chat.listConversations({ limit, offset });
|
|
53
|
-
for (const record of records) {
|
|
54
|
-
const turn = await chat.latestTurn(record.id);
|
|
55
|
-
if (turn)
|
|
56
|
-
return { execution: turn.execution };
|
|
57
|
-
}
|
|
58
|
-
if (records.length < limit)
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
const available = options.agents.listAgents().find((agent) => Boolean(agent.definition.model?.id));
|
|
62
|
-
if (!available)
|
|
63
|
-
throw Object.assign(new Error('No configured agent is available for inbound email'), {
|
|
64
|
-
code: 'CHANNEL_AGENT_REQUIRED',
|
|
65
|
-
});
|
|
66
|
-
return resolveAgentRun(options, available.id);
|
|
67
|
-
}
|
|
68
|
-
function channelExecution(options, resolved) {
|
|
69
|
-
const catalog = requiredToolbox(options).catalog();
|
|
70
|
-
return Object.freeze({
|
|
71
|
-
title: resolved.title,
|
|
72
|
-
metadata: { agentInstallationId: resolved.execution.agent.installationId, replyTool: 'channels' },
|
|
73
|
-
execution: {
|
|
74
|
-
...resolved.execution,
|
|
75
|
-
tools: {
|
|
76
|
-
revisionId: catalog.revisionId,
|
|
77
|
-
toolIds: [...new Set([...resolved.execution.tools.toolIds, 'channels'])],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
function resolveAgentRun(options, installationId) {
|
|
83
|
-
const record = options.agents.getAgent(installationId);
|
|
84
|
-
if (!record)
|
|
85
|
-
throw Object.assign(new Error(`Installed agent was not found: ${installationId}`), {
|
|
86
|
-
code: "AGENT_NOT_FOUND",
|
|
87
|
-
});
|
|
88
|
-
const revision = options.agents.getAgentRevision(installationId, record.currentRevisionId);
|
|
89
|
-
const definition = revision.definition;
|
|
90
|
-
if (!definition.model?.id) {
|
|
91
|
-
throw Object.assign(new Error(`Installed agent has no model: ${installationId}`), {
|
|
92
|
-
code: "AGENT_MODEL_REQUIRED",
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
const model = modelSelection(definition.model.id, definition.driver.id);
|
|
96
|
-
const tools = [...new Set([
|
|
97
|
-
...definition.toolbox.toolIds,
|
|
98
|
-
...definition.toolbox.actionIds,
|
|
99
|
-
...strings(definition.metadata["mcpAppIds"]),
|
|
100
|
-
])];
|
|
101
|
-
return Object.freeze({
|
|
102
|
-
title: definition.name,
|
|
103
|
-
execution: {
|
|
104
|
-
agent: {
|
|
105
|
-
adapterId: definition.driver.id,
|
|
106
|
-
installationId,
|
|
107
|
-
revisionId: revision.id,
|
|
108
|
-
},
|
|
109
|
-
model: { ...model, settings: modelSettings(definition.model.settings) },
|
|
110
|
-
auth: authSelection(installationId, definition.authRef),
|
|
111
|
-
tools: {
|
|
112
|
-
revisionId: tools.length > 0 ? requiredToolbox(options).catalog().revisionId : null,
|
|
113
|
-
toolIds: tools,
|
|
114
|
-
...(definition.toolbox.exposure ? { exposure: definition.toolbox.exposure } : {}),
|
|
115
|
-
},
|
|
116
|
-
cwd: {
|
|
117
|
-
path: definition.workspace.cwd || options.amalgmDir || options.stateDir,
|
|
118
|
-
workspaceId: null,
|
|
119
|
-
materializationRevision: null,
|
|
120
|
-
},
|
|
121
|
-
permissionMode: definition.metadata["permissionMode"] === "ask" ? "ask" : "full_access",
|
|
122
|
-
computerId: options.computerId,
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
function requiredToolbox(options) {
|
|
127
|
-
if (!options.toolbox)
|
|
128
|
-
throw new Error("Agent tools require the Shell Toolbox capability");
|
|
129
|
-
return options.toolbox;
|
|
130
|
-
}
|
|
131
|
-
function modelSelection(id, adapterId) {
|
|
132
|
-
const slash = id.indexOf("/");
|
|
133
|
-
if (slash > 0)
|
|
134
|
-
return { providerId: id.slice(0, slash), modelId: id.slice(slash + 1) };
|
|
135
|
-
return {
|
|
136
|
-
providerId: adapterId === "claude_code" ? "anthropic" : adapterId === "codex" ? "openai" : adapterId,
|
|
137
|
-
modelId: id,
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
function modelSettings(settings) {
|
|
141
|
-
return Object.entries(settings).map(([rawId, value]) => {
|
|
142
|
-
const configId = rawId === "effort" ? "reasoning_effort" : rawId === "fastMode" ? "fast" : rawId;
|
|
143
|
-
if (typeof value === "boolean")
|
|
144
|
-
return { configId, type: "boolean", value };
|
|
145
|
-
if (typeof value === "string" || typeof value === "number")
|
|
146
|
-
return { configId, value: String(value) };
|
|
147
|
-
throw Object.assign(new Error(`Agent model setting must be scalar: ${rawId}`), {
|
|
148
|
-
code: "AGENT_MODEL_SETTING_INVALID",
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
function authSelection(installationId, authRef) {
|
|
153
|
-
const selected = authRef || "amalgm";
|
|
154
|
-
if (selected === "byok")
|
|
155
|
-
return { mode: "byok", bindingId: "default" };
|
|
156
|
-
if (selected === "provider_auth" || selected === "subscription") {
|
|
157
|
-
return { mode: "subscription", bindingId: `${installationId}:provider_auth` };
|
|
158
|
-
}
|
|
159
|
-
return { mode: "platform", bindingId: `${installationId}:${selected}` };
|
|
160
|
-
}
|
|
161
|
-
function strings(value) {
|
|
162
|
-
return Array.isArray(value)
|
|
163
|
-
? value.filter((item) => typeof item === "string" && Boolean(item.trim()))
|
|
164
|
-
: [];
|
|
165
|
-
}
|
|
166
53
|
function nativeAgent(revision) {
|
|
167
54
|
const definition = revision.definition;
|
|
168
55
|
const config = {
|