@telora/daemon 0.19.3 → 0.19.6
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/build-info.json +4 -3
- package/dist/backends/codex/codex-mcp-proxy.d.ts +128 -0
- package/dist/backends/codex/codex-mcp-proxy.d.ts.map +1 -0
- package/dist/backends/codex/codex-mcp-proxy.js +297 -0
- package/dist/backends/codex/codex-mcp-proxy.js.map +1 -0
- package/dist/backends/codex/mcp-preflight.d.ts +73 -0
- package/dist/backends/codex/mcp-preflight.d.ts.map +1 -0
- package/dist/backends/codex/mcp-preflight.js +188 -0
- package/dist/backends/codex/mcp-preflight.js.map +1 -0
- package/dist/backends/codex/namespace-bridge.d.ts +131 -0
- package/dist/backends/codex/namespace-bridge.d.ts.map +1 -0
- package/dist/backends/codex/namespace-bridge.js +149 -0
- package/dist/backends/codex/namespace-bridge.js.map +1 -0
- package/dist/focus-executor.d.ts +12 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +71 -8
- package/dist/focus-executor.js.map +1 -1
- package/dist/spawner/helpers.d.ts.map +1 -1
- package/dist/spawner/helpers.js +28 -0
- package/dist/spawner/helpers.js.map +1 -1
- package/dist/types/focus.d.ts +8 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only Telora MCP preflight for local-model passes.
|
|
3
|
+
*
|
|
4
|
+
* A local-model coding team is only useful if the agent can actually reach the
|
|
5
|
+
* Telora issue/delivery control surface through its MCP server. When that
|
|
6
|
+
* provisioning is broken -- the MCP package cannot be resolved, the server fails
|
|
7
|
+
* to start, or it does not expose the required tools -- a spawned team produces
|
|
8
|
+
* no useful work and no diagnostic: the focus sits "ready" and the daemon
|
|
9
|
+
* re-spawns into the same wall every poll (UDE #3, the silent spawn-loop wedge).
|
|
10
|
+
*
|
|
11
|
+
* This preflight proves, BEFORE the coding team spawns, that the required Telora
|
|
12
|
+
* tools are present and callable, by running a read-only JSON-RPC handshake
|
|
13
|
+
* (`initialize` + `tools/list`) against the provisioned Telora MCP server over
|
|
14
|
+
* stdio. On failure it returns a non-allowed gate result carrying a precise
|
|
15
|
+
* reason; the caller turns that into a durable terminal session and skips the
|
|
16
|
+
* spawn (the same fail-closed contract as gateLocalModelBackendSpawn). It NEVER
|
|
17
|
+
* mutates Telora -- the handshake reads the tool list only.
|
|
18
|
+
*
|
|
19
|
+
* The probe is an injectable seam so the gate is unit-testable without spawning
|
|
20
|
+
* a real subprocess.
|
|
21
|
+
*/
|
|
22
|
+
import { spawn } from 'node:child_process';
|
|
23
|
+
import { resolveMcpServerPath } from '@telora/daemon-core';
|
|
24
|
+
/** Exit category stamped on the session when the MCP preflight refuses a spawn. */
|
|
25
|
+
export const MCP_PREFLIGHT_EXIT_CATEGORY = 'mcp_preflight_failed';
|
|
26
|
+
/**
|
|
27
|
+
* The Telora control-surface tools a coding team must be able to call. A local
|
|
28
|
+
* pass that cannot see these cannot keep issue/delivery state synchronized, so
|
|
29
|
+
* their absence is terminal for the spawn.
|
|
30
|
+
*/
|
|
31
|
+
export const MCP_PREFLIGHT_REQUIRED_TOOLS = [
|
|
32
|
+
'telora_product_issue',
|
|
33
|
+
'telora_product_delivery',
|
|
34
|
+
];
|
|
35
|
+
/** How long the handshake may take before the probe gives up (ms). */
|
|
36
|
+
export const MCP_PREFLIGHT_TIMEOUT_MS = 20_000;
|
|
37
|
+
/**
|
|
38
|
+
* Real probe: spawn `node <telora-mcp-server>` with the execution profile env,
|
|
39
|
+
* perform the MCP `initialize` + `tools/list` handshake over stdio, and return
|
|
40
|
+
* the exposed tool names. Throws on resolution failure, spawn error, timeout,
|
|
41
|
+
* or a malformed/absent tools list. Read-only: it lists tools and never calls
|
|
42
|
+
* one.
|
|
43
|
+
*
|
|
44
|
+
* Identity (TELORA_URL / TELORA_TRACKER_ID) is intentionally NOT injected: the
|
|
45
|
+
* MCP server resolves it from the single source `~/.telora/daemon.json` via
|
|
46
|
+
* loadCredentials() (inherited process.env still propagates when present). The
|
|
47
|
+
* `config` parameter is part of the McpToolProbe seam (used by injected test
|
|
48
|
+
* fakes) but unused by this server-handshake implementation.
|
|
49
|
+
*/
|
|
50
|
+
export async function probeMcpToolsViaHandshake(_config) {
|
|
51
|
+
let mcpServerPath;
|
|
52
|
+
try {
|
|
53
|
+
mcpServerPath = resolveMcpServerPath(import.meta.url);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
throw new Error(`Telora MCP server path could not be resolved: ${err.message}`);
|
|
57
|
+
}
|
|
58
|
+
const env = {
|
|
59
|
+
...process.env,
|
|
60
|
+
TELORA_MCP_PROFILE: 'execution',
|
|
61
|
+
};
|
|
62
|
+
return await new Promise((resolvePromise, rejectPromise) => {
|
|
63
|
+
const child = spawn('node', [mcpServerPath], {
|
|
64
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
65
|
+
env,
|
|
66
|
+
});
|
|
67
|
+
let settled = false;
|
|
68
|
+
let stdoutBuf = '';
|
|
69
|
+
let stderrBuf = '';
|
|
70
|
+
const finish = (err, tools) => {
|
|
71
|
+
if (settled)
|
|
72
|
+
return;
|
|
73
|
+
settled = true;
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
try {
|
|
76
|
+
child.kill('SIGKILL');
|
|
77
|
+
}
|
|
78
|
+
catch { /* already gone */ }
|
|
79
|
+
if (err)
|
|
80
|
+
rejectPromise(err);
|
|
81
|
+
else
|
|
82
|
+
resolvePromise(tools ?? []);
|
|
83
|
+
};
|
|
84
|
+
const timer = setTimeout(() => {
|
|
85
|
+
finish(new Error(`MCP handshake timed out after ${MCP_PREFLIGHT_TIMEOUT_MS}ms`));
|
|
86
|
+
}, MCP_PREFLIGHT_TIMEOUT_MS);
|
|
87
|
+
child.on('error', (err) => finish(new Error(`MCP server failed to start: ${err.message}`)));
|
|
88
|
+
child.stderr.on('data', (chunk) => { stderrBuf += chunk.toString(); });
|
|
89
|
+
child.on('exit', (code) => {
|
|
90
|
+
if (settled)
|
|
91
|
+
return;
|
|
92
|
+
const detail = stderrBuf.trim().slice(0, 300);
|
|
93
|
+
finish(new Error(`MCP server exited before tools/list (code ${code ?? 'null'})${detail ? `: ${detail}` : ''}`));
|
|
94
|
+
});
|
|
95
|
+
child.stdout.on('data', (chunk) => {
|
|
96
|
+
stdoutBuf += chunk.toString();
|
|
97
|
+
let newlineIdx;
|
|
98
|
+
while ((newlineIdx = stdoutBuf.indexOf('\n')) !== -1) {
|
|
99
|
+
const line = stdoutBuf.slice(0, newlineIdx).trim();
|
|
100
|
+
stdoutBuf = stdoutBuf.slice(newlineIdx + 1);
|
|
101
|
+
if (!line)
|
|
102
|
+
continue;
|
|
103
|
+
let msg;
|
|
104
|
+
try {
|
|
105
|
+
msg = JSON.parse(line);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
continue; // ignore non-JSON server chatter
|
|
109
|
+
}
|
|
110
|
+
if (msg.id === 1 && msg.result) {
|
|
111
|
+
// initialize acknowledged -> request the tool list.
|
|
112
|
+
write({ jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} });
|
|
113
|
+
}
|
|
114
|
+
else if (msg.id === 2) {
|
|
115
|
+
if (msg.error) {
|
|
116
|
+
finish(new Error(`tools/list errored: ${msg.error.message ?? 'unknown error'}`));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const result = msg.result;
|
|
120
|
+
const names = (result?.tools ?? [])
|
|
121
|
+
.map(t => t?.name)
|
|
122
|
+
.filter((n) => typeof n === 'string');
|
|
123
|
+
finish(null, names);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const write = (obj) => {
|
|
129
|
+
try {
|
|
130
|
+
child.stdin.write(JSON.stringify(obj) + '\n');
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
finish(new Error(`MCP stdin write failed: ${err.message}`));
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
// Kick off the handshake.
|
|
137
|
+
write({
|
|
138
|
+
jsonrpc: '2.0',
|
|
139
|
+
id: 1,
|
|
140
|
+
method: 'initialize',
|
|
141
|
+
params: {
|
|
142
|
+
protocolVersion: '2024-11-05',
|
|
143
|
+
capabilities: {},
|
|
144
|
+
clientInfo: { name: 'telora-daemon-preflight', version: '1.0.0' },
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Gate a local-model spawn on a read-only proof that the required Telora MCP
|
|
151
|
+
* tools are callable. Returns {allowed:true} for every non-local pass (hosted /
|
|
152
|
+
* claude) without probing -- their MCP wiring is unchanged and out of scope.
|
|
153
|
+
*
|
|
154
|
+
* For a local pass: run the probe; if every required tool is present the gate
|
|
155
|
+
* allows the spawn, otherwise it refuses with a precise, actionable reason
|
|
156
|
+
* (resolution/spawn/timeout failure, or the specific missing tool names). The
|
|
157
|
+
* caller fails the spawn closed (durable terminal session, no team launched).
|
|
158
|
+
*/
|
|
159
|
+
export async function preflightLocalModelMcp(config, isLocalModelPass, opts = {}) {
|
|
160
|
+
if (!isLocalModelPass)
|
|
161
|
+
return { allowed: true };
|
|
162
|
+
const probe = opts.probe ?? probeMcpToolsViaHandshake;
|
|
163
|
+
const requiredTools = opts.requiredTools ?? MCP_PREFLIGHT_REQUIRED_TOOLS;
|
|
164
|
+
let exposed;
|
|
165
|
+
try {
|
|
166
|
+
exposed = await probe(config);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
return {
|
|
170
|
+
allowed: false,
|
|
171
|
+
category: MCP_PREFLIGHT_EXIT_CATEGORY,
|
|
172
|
+
reason: `Telora MCP preflight failed: ${err.message}. ` +
|
|
173
|
+
`The local-model coding team cannot reach the issue/delivery control surface; refusing spawn.`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
const exposedSet = new Set(exposed);
|
|
177
|
+
const missing = requiredTools.filter(tool => !exposedSet.has(tool));
|
|
178
|
+
if (missing.length > 0) {
|
|
179
|
+
return {
|
|
180
|
+
allowed: false,
|
|
181
|
+
category: MCP_PREFLIGHT_EXIT_CATEGORY,
|
|
182
|
+
reason: `Telora MCP preflight failed: required tool(s) not exposed by the MCP server: ${missing.join(', ')}. ` +
|
|
183
|
+
`Exposed ${exposed.length} tool(s). Refusing spawn so the focus does not loop on an unusable control surface.`,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
return { allowed: true };
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=mcp-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-preflight.js","sourceRoot":"","sources":["../../../src/backends/codex/mcp-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespace <-> function tool translation for local-model (OSS) Responses
|
|
3
|
+
* servers.
|
|
4
|
+
*
|
|
5
|
+
* Codex 0.142.3 serializes each MCP server into a SINGLE Responses tool of
|
|
6
|
+
* `type:"namespace"` whose nested `tools[]` carry the individual functions:
|
|
7
|
+
*
|
|
8
|
+
* { "type":"namespace", "name":"mcp__<server>", "description":"...",
|
|
9
|
+
* "tools":[ {"type":"function","name":"<tool>","description":"...",
|
|
10
|
+
* "strict":false,"parameters":{...}}, ... ] }
|
|
11
|
+
*
|
|
12
|
+
* (Verified empirically against a captured `codex exec` request; see
|
|
13
|
+
* docs/runbook-local-model-namespace-compat.md.) OpenAI's hosted Responses API
|
|
14
|
+
* understands `type:"namespace"`; OSS inference servers (llama-server) log
|
|
15
|
+
* `unsupported Responses tool type 'namespace' skipped` and DROP the entry, so
|
|
16
|
+
* the model never receives any Telora tool schema.
|
|
17
|
+
*
|
|
18
|
+
* These pure functions are the request/response halves a localhost translating
|
|
19
|
+
* proxy uses to bridge the gap:
|
|
20
|
+
* - flattenNamespaceTools(): rewrite MCP namespace tools into flat `function`
|
|
21
|
+
* tools the OSS server understands (request, model-bound).
|
|
22
|
+
* - normalizeToolCall(): map the model's flat function call back to Codex's
|
|
23
|
+
* canonical {namespace, tool} identity (response, Codex-bound).
|
|
24
|
+
* - encodeFlatToolName()/decodeFlatToolName(): the reversible name codec.
|
|
25
|
+
* - redactRequestForLog(): strip prompt/input content for safe proxy logging.
|
|
26
|
+
*
|
|
27
|
+
* SCOPE: only `mcp__*` namespaces are flattened. Codex's own built-in
|
|
28
|
+
* namespaces (e.g. `multi_agent_v1`) are left untouched so Codex's internal
|
|
29
|
+
* dispatch is unaffected. Hosted/cloud passes never call these (the proxy is
|
|
30
|
+
* engaged only for registered local-model passes).
|
|
31
|
+
*
|
|
32
|
+
* The request-side shape is byte-confirmed. The response-side canonical
|
|
33
|
+
* identity normalizeToolCall() produces is the DESIGNED target shape; the exact
|
|
34
|
+
* envelope Codex expects for a namespace sub-tool call must be confirmed against
|
|
35
|
+
* a live OSS-model capture before proxy routing is enabled (runbook, step 3).
|
|
36
|
+
*/
|
|
37
|
+
/** Prefix that marks a Codex namespace tool as originating from an MCP server. */
|
|
38
|
+
export declare const MCP_NAMESPACE_PREFIX = "mcp__";
|
|
39
|
+
/** Separator joining a namespace name and a sub-tool name into one flat name. */
|
|
40
|
+
export declare const FLAT_NAME_SEPARATOR = "__";
|
|
41
|
+
interface FunctionTool {
|
|
42
|
+
type: 'function';
|
|
43
|
+
name: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
strict?: boolean;
|
|
46
|
+
parameters?: unknown;
|
|
47
|
+
[k: string]: unknown;
|
|
48
|
+
}
|
|
49
|
+
interface NamespaceTool {
|
|
50
|
+
type: 'namespace';
|
|
51
|
+
name: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
tools?: FunctionTool[];
|
|
54
|
+
[k: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
type ResponsesTool = FunctionTool | NamespaceTool | {
|
|
57
|
+
type: string;
|
|
58
|
+
[k: string]: unknown;
|
|
59
|
+
};
|
|
60
|
+
interface ResponsesRequest {
|
|
61
|
+
tools?: ResponsesTool[];
|
|
62
|
+
input?: unknown;
|
|
63
|
+
instructions?: unknown;
|
|
64
|
+
[k: string]: unknown;
|
|
65
|
+
}
|
|
66
|
+
/** A model-returned flat tool call, before normalization. */
|
|
67
|
+
export interface FlatToolCall {
|
|
68
|
+
name: string;
|
|
69
|
+
arguments?: unknown;
|
|
70
|
+
call_id?: string;
|
|
71
|
+
id?: string;
|
|
72
|
+
[k: string]: unknown;
|
|
73
|
+
}
|
|
74
|
+
/** The canonical {namespace, tool} identity a flat call resolves back to. */
|
|
75
|
+
export interface CanonicalToolCall {
|
|
76
|
+
/** The MCP namespace, e.g. "mcp__telora". */
|
|
77
|
+
namespace: string;
|
|
78
|
+
/** The sub-tool within the namespace, e.g. "telora_product_issue". */
|
|
79
|
+
name: string;
|
|
80
|
+
arguments?: unknown;
|
|
81
|
+
call_id?: string;
|
|
82
|
+
}
|
|
83
|
+
/** True for a namespace tool that came from an MCP server (vs a Codex built-in). */
|
|
84
|
+
export declare function isMcpNamespace(name: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Encode a (namespace, tool) pair into a single flat function name that survives
|
|
87
|
+
* the OpenAI function-name charset and round-trips through decodeFlatToolName.
|
|
88
|
+
*/
|
|
89
|
+
export declare function encodeFlatToolName(namespace: string, tool: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Decode a flat function name back into its (namespace, tool) pair.
|
|
92
|
+
*
|
|
93
|
+
* MCP namespaces are always `mcp__<server>` (two `__`-delimited segments), so
|
|
94
|
+
* the namespace is the first three segments joined (`mcp`, `<server>`) and the
|
|
95
|
+
* tool is everything after -- preserving tool names that themselves contain the
|
|
96
|
+
* separator. Returns null when the name is not an mcp__-encoded flat name (i.e.
|
|
97
|
+
* a plain built-in function the model called directly), so the caller can pass
|
|
98
|
+
* it through unchanged.
|
|
99
|
+
*/
|
|
100
|
+
export declare function decodeFlatToolName(flat: string): {
|
|
101
|
+
namespace: string;
|
|
102
|
+
tool: string;
|
|
103
|
+
} | null;
|
|
104
|
+
/**
|
|
105
|
+
* Rewrite a Responses request so every `mcp__*` namespace tool is replaced by
|
|
106
|
+
* its nested functions, flattened to top-level `type:"function"` tools with
|
|
107
|
+
* round-trippable names. Non-MCP namespaces and plain function tools are copied
|
|
108
|
+
* through untouched. Returns a NEW request object; the input is not mutated. A
|
|
109
|
+
* request with no MCP namespace tools deep-equals the input.
|
|
110
|
+
*/
|
|
111
|
+
export declare function flattenNamespaceTools(request: ResponsesRequest): ResponsesRequest;
|
|
112
|
+
/**
|
|
113
|
+
* Map a model-returned flat tool call back to Codex's canonical {namespace,
|
|
114
|
+
* tool} identity. Returns null when the call names a plain built-in function
|
|
115
|
+
* (not an mcp__-encoded name) -- the caller passes those through unchanged.
|
|
116
|
+
*
|
|
117
|
+
* NOTE: the returned CanonicalToolCall is the DESIGNED target identity. The
|
|
118
|
+
* exact wire envelope Codex expects for a namespace sub-tool call is confirmed
|
|
119
|
+
* against a live capture before proxy routing is enabled (runbook step 3); this
|
|
120
|
+
* function is the single, well-isolated place that shape is produced.
|
|
121
|
+
*/
|
|
122
|
+
export declare function normalizeToolCall(call: FlatToolCall): CanonicalToolCall | null;
|
|
123
|
+
/**
|
|
124
|
+
* Produce a log-safe shallow copy of a Responses request: prompt/input content
|
|
125
|
+
* is replaced with a count, instructions are elided. Tool definitions, model,
|
|
126
|
+
* and other structural fields are retained so the proxy can log what tools were
|
|
127
|
+
* offered without leaking conversation content.
|
|
128
|
+
*/
|
|
129
|
+
export declare function redactRequestForLog(request: ResponsesRequest): Record<string, unknown>;
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=namespace-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace-bridge.d.ts","sourceRoot":"","sources":["../../../src/backends/codex/namespace-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,UAAU,YAAY;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,KAAK,aAAa,GAAG,YAAY,GAAG,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE3F,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAuBjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,IAAI,CAU9E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQtF"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespace <-> function tool translation for local-model (OSS) Responses
|
|
3
|
+
* servers.
|
|
4
|
+
*
|
|
5
|
+
* Codex 0.142.3 serializes each MCP server into a SINGLE Responses tool of
|
|
6
|
+
* `type:"namespace"` whose nested `tools[]` carry the individual functions:
|
|
7
|
+
*
|
|
8
|
+
* { "type":"namespace", "name":"mcp__<server>", "description":"...",
|
|
9
|
+
* "tools":[ {"type":"function","name":"<tool>","description":"...",
|
|
10
|
+
* "strict":false,"parameters":{...}}, ... ] }
|
|
11
|
+
*
|
|
12
|
+
* (Verified empirically against a captured `codex exec` request; see
|
|
13
|
+
* docs/runbook-local-model-namespace-compat.md.) OpenAI's hosted Responses API
|
|
14
|
+
* understands `type:"namespace"`; OSS inference servers (llama-server) log
|
|
15
|
+
* `unsupported Responses tool type 'namespace' skipped` and DROP the entry, so
|
|
16
|
+
* the model never receives any Telora tool schema.
|
|
17
|
+
*
|
|
18
|
+
* These pure functions are the request/response halves a localhost translating
|
|
19
|
+
* proxy uses to bridge the gap:
|
|
20
|
+
* - flattenNamespaceTools(): rewrite MCP namespace tools into flat `function`
|
|
21
|
+
* tools the OSS server understands (request, model-bound).
|
|
22
|
+
* - normalizeToolCall(): map the model's flat function call back to Codex's
|
|
23
|
+
* canonical {namespace, tool} identity (response, Codex-bound).
|
|
24
|
+
* - encodeFlatToolName()/decodeFlatToolName(): the reversible name codec.
|
|
25
|
+
* - redactRequestForLog(): strip prompt/input content for safe proxy logging.
|
|
26
|
+
*
|
|
27
|
+
* SCOPE: only `mcp__*` namespaces are flattened. Codex's own built-in
|
|
28
|
+
* namespaces (e.g. `multi_agent_v1`) are left untouched so Codex's internal
|
|
29
|
+
* dispatch is unaffected. Hosted/cloud passes never call these (the proxy is
|
|
30
|
+
* engaged only for registered local-model passes).
|
|
31
|
+
*
|
|
32
|
+
* The request-side shape is byte-confirmed. The response-side canonical
|
|
33
|
+
* identity normalizeToolCall() produces is the DESIGNED target shape; the exact
|
|
34
|
+
* envelope Codex expects for a namespace sub-tool call must be confirmed against
|
|
35
|
+
* a live OSS-model capture before proxy routing is enabled (runbook, step 3).
|
|
36
|
+
*/
|
|
37
|
+
/** Prefix that marks a Codex namespace tool as originating from an MCP server. */
|
|
38
|
+
export const MCP_NAMESPACE_PREFIX = 'mcp__';
|
|
39
|
+
/** Separator joining a namespace name and a sub-tool name into one flat name. */
|
|
40
|
+
export const FLAT_NAME_SEPARATOR = '__';
|
|
41
|
+
function isNamespaceTool(tool) {
|
|
42
|
+
return tool?.type === 'namespace' && typeof tool.name === 'string';
|
|
43
|
+
}
|
|
44
|
+
/** True for a namespace tool that came from an MCP server (vs a Codex built-in). */
|
|
45
|
+
export function isMcpNamespace(name) {
|
|
46
|
+
return name.startsWith(MCP_NAMESPACE_PREFIX);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Encode a (namespace, tool) pair into a single flat function name that survives
|
|
50
|
+
* the OpenAI function-name charset and round-trips through decodeFlatToolName.
|
|
51
|
+
*/
|
|
52
|
+
export function encodeFlatToolName(namespace, tool) {
|
|
53
|
+
return `${namespace}${FLAT_NAME_SEPARATOR}${tool}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Decode a flat function name back into its (namespace, tool) pair.
|
|
57
|
+
*
|
|
58
|
+
* MCP namespaces are always `mcp__<server>` (two `__`-delimited segments), so
|
|
59
|
+
* the namespace is the first three segments joined (`mcp`, `<server>`) and the
|
|
60
|
+
* tool is everything after -- preserving tool names that themselves contain the
|
|
61
|
+
* separator. Returns null when the name is not an mcp__-encoded flat name (i.e.
|
|
62
|
+
* a plain built-in function the model called directly), so the caller can pass
|
|
63
|
+
* it through unchanged.
|
|
64
|
+
*/
|
|
65
|
+
export function decodeFlatToolName(flat) {
|
|
66
|
+
if (!flat.startsWith(MCP_NAMESPACE_PREFIX))
|
|
67
|
+
return null;
|
|
68
|
+
const parts = flat.split(FLAT_NAME_SEPARATOR);
|
|
69
|
+
// ["mcp", "<server>", "<tool...>"] -- need at least the tool segment present.
|
|
70
|
+
if (parts.length < 3)
|
|
71
|
+
return null;
|
|
72
|
+
const namespace = `${parts[0]}${FLAT_NAME_SEPARATOR}${parts[1]}`;
|
|
73
|
+
const tool = parts.slice(2).join(FLAT_NAME_SEPARATOR);
|
|
74
|
+
if (!tool)
|
|
75
|
+
return null;
|
|
76
|
+
return { namespace, tool };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Rewrite a Responses request so every `mcp__*` namespace tool is replaced by
|
|
80
|
+
* its nested functions, flattened to top-level `type:"function"` tools with
|
|
81
|
+
* round-trippable names. Non-MCP namespaces and plain function tools are copied
|
|
82
|
+
* through untouched. Returns a NEW request object; the input is not mutated. A
|
|
83
|
+
* request with no MCP namespace tools deep-equals the input.
|
|
84
|
+
*/
|
|
85
|
+
export function flattenNamespaceTools(request) {
|
|
86
|
+
const tools = request?.tools;
|
|
87
|
+
if (!Array.isArray(tools))
|
|
88
|
+
return request;
|
|
89
|
+
let changed = false;
|
|
90
|
+
const flattened = [];
|
|
91
|
+
for (const tool of tools) {
|
|
92
|
+
if (isNamespaceTool(tool) && isMcpNamespace(tool.name)) {
|
|
93
|
+
changed = true;
|
|
94
|
+
for (const inner of tool.tools ?? []) {
|
|
95
|
+
flattened.push({
|
|
96
|
+
...inner,
|
|
97
|
+
type: 'function',
|
|
98
|
+
name: encodeFlatToolName(tool.name, inner.name),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
flattened.push(tool);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!changed)
|
|
107
|
+
return request;
|
|
108
|
+
return { ...request, tools: flattened };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Map a model-returned flat tool call back to Codex's canonical {namespace,
|
|
112
|
+
* tool} identity. Returns null when the call names a plain built-in function
|
|
113
|
+
* (not an mcp__-encoded name) -- the caller passes those through unchanged.
|
|
114
|
+
*
|
|
115
|
+
* NOTE: the returned CanonicalToolCall is the DESIGNED target identity. The
|
|
116
|
+
* exact wire envelope Codex expects for a namespace sub-tool call is confirmed
|
|
117
|
+
* against a live capture before proxy routing is enabled (runbook step 3); this
|
|
118
|
+
* function is the single, well-isolated place that shape is produced.
|
|
119
|
+
*/
|
|
120
|
+
export function normalizeToolCall(call) {
|
|
121
|
+
const decoded = decodeFlatToolName(call.name);
|
|
122
|
+
if (!decoded)
|
|
123
|
+
return null;
|
|
124
|
+
const normalized = {
|
|
125
|
+
namespace: decoded.namespace,
|
|
126
|
+
name: decoded.tool,
|
|
127
|
+
arguments: call.arguments,
|
|
128
|
+
};
|
|
129
|
+
if (call.call_id !== undefined)
|
|
130
|
+
normalized.call_id = call.call_id;
|
|
131
|
+
return normalized;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Produce a log-safe shallow copy of a Responses request: prompt/input content
|
|
135
|
+
* is replaced with a count, instructions are elided. Tool definitions, model,
|
|
136
|
+
* and other structural fields are retained so the proxy can log what tools were
|
|
137
|
+
* offered without leaking conversation content.
|
|
138
|
+
*/
|
|
139
|
+
export function redactRequestForLog(request) {
|
|
140
|
+
const redacted = { ...request };
|
|
141
|
+
if ('input' in redacted) {
|
|
142
|
+
const input = redacted.input;
|
|
143
|
+
redacted.input = Array.isArray(input) ? `[redacted ${input.length} input item(s)]` : '[redacted]';
|
|
144
|
+
}
|
|
145
|
+
if ('instructions' in redacted)
|
|
146
|
+
redacted.instructions = '[redacted]';
|
|
147
|
+
return redacted;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=namespace-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace-bridge.js","sourceRoot":"","sources":["../../../src/backends/codex/namespace-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/focus-executor.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ import { type AssemblyManifestEntry } from './assembly-engine.js';
|
|
|
40
40
|
import './assembly-resolvers.js';
|
|
41
41
|
import { getLocalModel, getLocalModelSecret, type LocalModelCoordinates } from './queries/local-models.js';
|
|
42
42
|
import { writeLocalModelCodexHome } from './cli/codex-provision.js';
|
|
43
|
+
import { type CodexMcpProxyHandle } from './backends/codex/codex-mcp-proxy.js';
|
|
43
44
|
import { type HostCapability } from './host-control/index.js';
|
|
44
45
|
import { setupTeamLogStreams } from './spawner/helpers.js';
|
|
45
46
|
import { resolveBackend, type AgentBackend, type EngineOverride, type EnginePass } from './backends/index.js';
|
|
@@ -669,6 +670,10 @@ export type SpawnModelResolution = {
|
|
|
669
670
|
spawnCodexHome: string | undefined;
|
|
670
671
|
spawnLocalModelKey: string | null;
|
|
671
672
|
isLocalModelPass: boolean;
|
|
673
|
+
/** Translating proxy started for an opt-in local-model pass (else null).
|
|
674
|
+
* Carried out so the caller can attach it to the team state for
|
|
675
|
+
* close-time teardown + reception read. */
|
|
676
|
+
mcpProxy?: CodexMcpProxyHandle | null;
|
|
672
677
|
};
|
|
673
678
|
/**
|
|
674
679
|
* Phase: resolve the per-product CODEX_HOME default, apply per-pass local-model
|
|
@@ -765,7 +770,7 @@ export interface BackendSpawnGateResult {
|
|
|
765
770
|
* by the per-spawn environment after the host-level probe runs.
|
|
766
771
|
*/
|
|
767
772
|
export declare function gateLocalModelBackendSpawn(backend: AgentBackend, config: DaemonConfig, isLocalModelPass: boolean, host?: string): Promise<BackendSpawnGateResult>;
|
|
768
|
-
export declare function backendUnavailableSessionUpdate(reason: string): {
|
|
773
|
+
export declare function backendUnavailableSessionUpdate(reason: string, category?: string): {
|
|
769
774
|
status: string;
|
|
770
775
|
exit_reason: string;
|
|
771
776
|
exit_category: string;
|
|
@@ -787,6 +792,12 @@ export declare function persistSpawnFailureAfterRunning(runningTransition: Promi
|
|
|
787
792
|
* team from activeTeams, and return without spawning. Behavior byte-identical
|
|
788
793
|
* to the original inline tail of spawnFocusTeam.
|
|
789
794
|
*/
|
|
795
|
+
/**
|
|
796
|
+
* Close a team's local-model translating proxy if one is engaged, and null it so
|
|
797
|
+
* the call is idempotent across the multiple teardown paths. No-op for every
|
|
798
|
+
* hosted/Claude/flag-off team (mcpProxy undefined/null).
|
|
799
|
+
*/
|
|
800
|
+
export declare function closeTeamProxyQuietly(teamState: FocusTeamState): void;
|
|
790
801
|
export declare function spawnTeamProcess(spec: SpawnTeamProcessArgs): Promise<void>;
|
|
791
802
|
/**
|
|
792
803
|
* Spawn a focus team to execute all deliveries in a focus.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
|