@cotal-ai/manager 0.70.0 → 0.71.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/dist/launch.js +2 -2
- package/dist/launch.js.map +1 -1
- package/dist/manager-service-contract.d.ts +6 -1
- package/dist/manager-service-contract.d.ts.map +1 -1
- package/dist/manager-service-contract.js +18 -2
- package/dist/manager-service-contract.js.map +1 -1
- package/dist/manager.d.ts +14 -2
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +126 -64
- package/dist/manager.js.map +1 -1
- package/dist/resume.d.ts.map +1 -1
- package/dist/resume.js +17 -41
- package/dist/resume.js.map +1 -1
- package/dist/roster.d.ts +2 -0
- package/dist/roster.d.ts.map +1 -1
- package/dist/roster.js +9 -0
- package/dist/roster.js.map +1 -1
- package/dist/runtime/pty.d.ts +1 -1
- package/dist/runtime/pty.d.ts.map +1 -1
- package/dist/runtime/pty.js +11 -3
- package/dist/runtime/pty.js.map +1 -1
- package/package.json +12 -12
package/dist/resume.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C;;;8DAG8D;AAC9D,eAAO,MAAM,UAAU,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C;;;8DAG8D;AAC9D,eAAO,MAAM,UAAU,KAAK,CAAC;AAsI7B,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAiBD,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAExE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAE3E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAEzG"}
|
package/dist/resume.js
CHANGED
|
@@ -11,6 +11,7 @@ const TOKEN = /^[A-Za-z0-9_]+$/;
|
|
|
11
11
|
const SHA256 = /^[a-f0-9]{64}$/;
|
|
12
12
|
const token = z.string().min(1).max(128).regex(TOKEN, "must be a safe identity token");
|
|
13
13
|
const label = z.string().min(1).max(128).regex(/^[A-Za-z0-9_-]+$/, "must be a safe token");
|
|
14
|
+
const attemptId = z.string().min(1).max(128).regex(/^[A-Za-z0-9_-]+$/, "must be a safe attempt token");
|
|
14
15
|
const short = z.string().max(512);
|
|
15
16
|
const path = z.string().min(1).max(4096);
|
|
16
17
|
const digest = z.string().regex(SHA256, "must be a lowercase SHA-256 digest");
|
|
@@ -122,66 +123,41 @@ const inventory = z.discriminatedUnion("version", [
|
|
|
122
123
|
})),
|
|
123
124
|
]);
|
|
124
125
|
const argsSchema = z.strictObject({
|
|
125
|
-
attemptId
|
|
126
|
+
attemptId,
|
|
126
127
|
inventory,
|
|
127
128
|
});
|
|
128
129
|
const commitArgsSchema = z.strictObject({
|
|
129
|
-
attemptId
|
|
130
|
+
attemptId,
|
|
130
131
|
});
|
|
131
132
|
const finalizeArgsSchema = z.strictObject({
|
|
132
|
-
attemptId
|
|
133
|
+
attemptId,
|
|
133
134
|
durableCommitToken: z.string().regex(SHA256, "must be a lowercase 32-byte token"),
|
|
134
135
|
});
|
|
135
|
-
|
|
136
|
-
export function parseResumeControlArgs(value) {
|
|
136
|
+
function parseBounded(op, capBytes, schema, value) {
|
|
137
137
|
let encoded;
|
|
138
138
|
try {
|
|
139
139
|
encoded = JSON.stringify(value);
|
|
140
140
|
}
|
|
141
141
|
catch {
|
|
142
|
-
throw new Error(
|
|
142
|
+
throw new Error(`${op} args must be JSON-serializable`);
|
|
143
143
|
}
|
|
144
144
|
if (encoded === undefined)
|
|
145
|
-
throw new Error(
|
|
146
|
-
if (Buffer.byteLength(encoded, "utf8") >
|
|
147
|
-
throw new Error(
|
|
148
|
-
const parsed =
|
|
145
|
+
throw new Error(`${op} args must be a JSON object`);
|
|
146
|
+
if (Buffer.byteLength(encoded, "utf8") > capBytes)
|
|
147
|
+
throw new Error(`${op} args exceed ${capBytes} bytes`);
|
|
148
|
+
const parsed = schema.safeParse(value);
|
|
149
149
|
if (!parsed.success)
|
|
150
|
-
throw new Error(
|
|
150
|
+
throw new Error(`${op}: ${parsed.error.issues.map((issue) => `${issue.path.join(".") || "<root>"}: ${issue.message}`).join("; ")}`);
|
|
151
151
|
return parsed.data;
|
|
152
152
|
}
|
|
153
|
+
/** Strict, bounded wire parser. Unknown fields are rejected so secrets cannot hitchhike in inventory. */
|
|
154
|
+
export function parseResumeControlArgs(value) {
|
|
155
|
+
return parseBounded("resumePreserved", MAX_RESUME_CONTROL_BYTES, argsSchema, value);
|
|
156
|
+
}
|
|
153
157
|
export function parseResumeCommitArgs(value) {
|
|
154
|
-
|
|
155
|
-
try {
|
|
156
|
-
encoded = JSON.stringify(value);
|
|
157
|
-
}
|
|
158
|
-
catch {
|
|
159
|
-
throw new Error("commitResume args must be JSON-serializable");
|
|
160
|
-
}
|
|
161
|
-
if (encoded === undefined)
|
|
162
|
-
throw new Error("commitResume args must be a JSON object");
|
|
163
|
-
if (Buffer.byteLength(encoded, "utf8") > MAX_RESUME_COMMIT_BYTES)
|
|
164
|
-
throw new Error(`commitResume args exceed ${MAX_RESUME_COMMIT_BYTES} bytes`);
|
|
165
|
-
const parsed = commitArgsSchema.safeParse(value);
|
|
166
|
-
if (!parsed.success)
|
|
167
|
-
throw new Error(`commitResume: ${parsed.error.issues.map((issue) => `${issue.path.join(".") || "<root>"}: ${issue.message}`).join("; ")}`);
|
|
168
|
-
return parsed.data;
|
|
158
|
+
return parseBounded("commitResume", MAX_RESUME_COMMIT_BYTES, commitArgsSchema, value);
|
|
169
159
|
}
|
|
170
160
|
export function parseResumeFinalizeArgs(value) {
|
|
171
|
-
|
|
172
|
-
try {
|
|
173
|
-
encoded = JSON.stringify(value);
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
throw new Error("finalizeResume args must be JSON-serializable");
|
|
177
|
-
}
|
|
178
|
-
if (encoded === undefined)
|
|
179
|
-
throw new Error("finalizeResume args must be a JSON object");
|
|
180
|
-
if (Buffer.byteLength(encoded, "utf8") > MAX_RESUME_COMMIT_BYTES)
|
|
181
|
-
throw new Error(`finalizeResume args exceed ${MAX_RESUME_COMMIT_BYTES} bytes`);
|
|
182
|
-
const parsed = finalizeArgsSchema.safeParse(value);
|
|
183
|
-
if (!parsed.success)
|
|
184
|
-
throw new Error(`finalizeResume: ${parsed.error.issues.map((issue) => `${issue.path.join(".") || "<root>"}: ${issue.message}`).join("; ")}`);
|
|
185
|
-
return parsed.data;
|
|
161
|
+
return parseBounded("finalizeResume", MAX_RESUME_COMMIT_BYTES, finalizeArgsSchema, value);
|
|
186
162
|
}
|
|
187
163
|
//# sourceMappingURL=resume.js.map
|
package/dist/resume.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
|
package/dist/roster.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ import type { StartAgentOpts } from "./manager.js";
|
|
|
14
14
|
* optional; persona/model come from the same file, and `cwd` roots the agent at a folder of its
|
|
15
15
|
* own (default: the manager's workspace root). `share-tools` is an optional list narrowing the
|
|
16
16
|
* operator's declared MCP servers for this agent, like `--share-tools` (absent: all; `[]`: none).
|
|
17
|
+
* Any other key, in an entry or beside `agents:`, is refused, because a misspelling such as
|
|
18
|
+
* `share_tools` would otherwise boot the agent with the default the operator meant to override.
|
|
17
19
|
*/
|
|
18
20
|
export declare function loadRoster(path: string): StartAgentOpts[];
|
|
19
21
|
//# sourceMappingURL=roster.d.ts.map
|
package/dist/roster.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CA6BzD"}
|
package/dist/roster.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import { parse } from "yaml";
|
|
3
|
+
const ENTRY_KEYS = new Set(["name", "agent", "role", "config", "cwd", "share-tools"]);
|
|
3
4
|
/**
|
|
4
5
|
* A roster file: a supervisor's declarative boot list.
|
|
5
6
|
*
|
|
@@ -15,17 +16,25 @@ import { parse } from "yaml";
|
|
|
15
16
|
* optional; persona/model come from the same file, and `cwd` roots the agent at a folder of its
|
|
16
17
|
* own (default: the manager's workspace root). `share-tools` is an optional list narrowing the
|
|
17
18
|
* operator's declared MCP servers for this agent, like `--share-tools` (absent: all; `[]`: none).
|
|
19
|
+
* Any other key, in an entry or beside `agents:`, is refused, because a misspelling such as
|
|
20
|
+
* `share_tools` would otherwise boot the agent with the default the operator meant to override.
|
|
18
21
|
*/
|
|
19
22
|
export function loadRoster(path) {
|
|
20
23
|
const doc = parse(readFileSync(path, "utf8"));
|
|
21
24
|
if (!doc || typeof doc !== "object" || !Array.isArray(doc.agents))
|
|
22
25
|
throw new Error(`roster ${path}: expected a top-level "agents:" list`);
|
|
26
|
+
const topKey = Object.keys(doc).find((k) => k !== "agents");
|
|
27
|
+
if (topKey !== undefined)
|
|
28
|
+
throw new Error(`roster ${path}: ${topKey} is not a roster key`);
|
|
23
29
|
const agents = doc.agents;
|
|
24
30
|
return agents.map((entry, i) => {
|
|
25
31
|
const at = `roster ${path}: agents[${i}]`;
|
|
26
32
|
if (!entry || typeof entry !== "object" || Array.isArray(entry))
|
|
27
33
|
throw new Error(`${at} is not a map`);
|
|
28
34
|
const e = entry;
|
|
35
|
+
const key = Object.keys(e).find((k) => !ENTRY_KEYS.has(k));
|
|
36
|
+
if (key !== undefined)
|
|
37
|
+
throw new Error(`${at}.${key} is not a roster key`);
|
|
29
38
|
const str = (k) => {
|
|
30
39
|
const v = e[k];
|
|
31
40
|
if (v === undefined)
|
package/dist/roster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roster.js","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B
|
|
1
|
+
{"version":3,"file":"roster.js","sourceRoot":"","sources":["../src/roster.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/pty.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AgentHandle, type LaunchSpec, type Runtime, type RuntimeReference } from "@cotal-ai/core";
|
|
2
2
|
/**
|
|
3
3
|
* In-process node-pty ownership. The worker is the child's parent, so killing
|
|
4
4
|
* the worker kills the seat. `createRuntime("pty")` spawns here on every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,WAAW,EAAsB,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAc1I;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAE/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAqM/D,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW;CAGjD;AAED,2FAA2F;AAC3F,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/runtime/pty.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as pty from "@lydell/node-pty";
|
|
2
2
|
import Headless from "@xterm/headless";
|
|
3
3
|
import { SerializeAddon } from "@xterm/addon-serialize";
|
|
4
|
+
import { SpawnRefused } from "@cotal-ai/core";
|
|
4
5
|
import { ConnectorDiagnosticReader, StartupConfirmMatcher, unmatchedConfirmMessage, unsupportedTransport, preferSeatForOomKill } from "@cotal-ai/seat";
|
|
5
6
|
import { preparePtyLaunch } from "./windows-launch.js";
|
|
6
7
|
const DEFAULT_COLS = 120;
|
|
@@ -26,6 +27,16 @@ export class LegacyPtyRuntime {
|
|
|
26
27
|
// against `spec.env` (the env we actually launch with), not the manager's, so executable
|
|
27
28
|
// selection stays inside P3 isolation.
|
|
28
29
|
const { command, args } = preparePtyLaunch(spec.command, spec.args, spec.env ?? {});
|
|
30
|
+
// Honor LaunchSpec.confirm literally: match the connector-owned text in normalized early output,
|
|
31
|
+
// press Enter exactly once when it appears, and fail loud if the declared gate never materializes.
|
|
32
|
+
// Built before the child exists, so a prompt that cannot match is a refusal.
|
|
33
|
+
let confirmMatcher;
|
|
34
|
+
try {
|
|
35
|
+
confirmMatcher = spec.confirm === undefined ? undefined : new StartupConfirmMatcher(spec.confirm);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
throw new SpawnRefused(err.message);
|
|
39
|
+
}
|
|
29
40
|
const proc = pty.spawn(command, args, {
|
|
30
41
|
name: "xterm-256color",
|
|
31
42
|
cols: DEFAULT_COLS,
|
|
@@ -65,9 +76,6 @@ export class LegacyPtyRuntime {
|
|
|
65
76
|
let exit;
|
|
66
77
|
// The child's last connector diagnostic, carried on `exit` so the reap line can name it.
|
|
67
78
|
const diagnostic = new ConnectorDiagnosticReader();
|
|
68
|
-
// Honor LaunchSpec.confirm literally: match the connector-owned text in normalized early output,
|
|
69
|
-
// press Enter exactly once when it appears, and fail loud if the declared gate never materializes.
|
|
70
|
-
const confirmMatcher = spec.confirm ? new StartupConfirmMatcher(spec.confirm) : undefined;
|
|
71
79
|
let confirmTimer;
|
|
72
80
|
if (confirmMatcher) {
|
|
73
81
|
confirmTimer = setTimeout(() => {
|
package/dist/runtime/pty.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"pty.js","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/manager",
|
|
3
3
|
"description": "Cotal agent supervisor: spawns and manages mesh nodes via a pluggable runtime (pty/tmux/cmux/orca/herdr).",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.71.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@cotal-ai/core": "0.
|
|
22
|
-
"@cotal-ai/seat": "0.
|
|
23
|
-
"@cotal-ai/workspace": "0.
|
|
21
|
+
"@cotal-ai/core": "0.71.0",
|
|
22
|
+
"@cotal-ai/seat": "0.71.0",
|
|
23
|
+
"@cotal-ai/workspace": "0.71.0",
|
|
24
24
|
"@lydell/node-pty": "1.2.0-beta.12",
|
|
25
25
|
"@nats-io/jetstream": "^3.4.0",
|
|
26
26
|
"@nats-io/kv": "^3.4.0",
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
"zod": "^4.4.3"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@cotal-ai/auth": "0.
|
|
39
|
-
"@cotal-ai/connector-claude-code": "0.
|
|
40
|
-
"@cotal-ai/connector-codex": "0.
|
|
38
|
+
"@cotal-ai/auth": "0.71.0",
|
|
39
|
+
"@cotal-ai/connector-claude-code": "0.71.0",
|
|
40
|
+
"@cotal-ai/connector-codex": "0.71.0",
|
|
41
41
|
"@cotal-ai/smoke-kit": "0.0.0",
|
|
42
|
-
"@cotal-ai/connector-core": "0.
|
|
43
|
-
"@cotal-ai/connector-hermes": "0.
|
|
44
|
-
"@cotal-ai/connector-opencode": "0.
|
|
45
|
-
"@cotal-ai/delivery": "0.
|
|
46
|
-
"@cotal-ai/runtime": "0.
|
|
42
|
+
"@cotal-ai/connector-core": "0.71.0",
|
|
43
|
+
"@cotal-ai/connector-hermes": "0.71.0",
|
|
44
|
+
"@cotal-ai/connector-opencode": "0.71.0",
|
|
45
|
+
"@cotal-ai/delivery": "0.71.0",
|
|
46
|
+
"@cotal-ai/runtime": "0.71.0",
|
|
47
47
|
"@nats-io/nats-core": "^3.4.0",
|
|
48
48
|
"@types/ws": "^8.18.1",
|
|
49
49
|
"esbuild": "^0.28.1"
|