@wrenautomation/aerie 0.6.0 → 0.7.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/bin.js +511 -125
- package/dist/bin.js.map +4 -4
- package/dist/cli-intake.js +6 -3
- package/dist/cli-intake.js.map +1 -1
- package/dist/cli-run.d.ts +1 -1
- package/dist/cli-run.js +102 -3
- package/dist/cli-run.js.map +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +12 -4
- package/dist/cli.js.map +1 -1
- package/dist/coord/port.d.ts +2 -0
- package/dist/coord/postgres.js +23 -0
- package/dist/coord/postgres.js.map +1 -1
- package/dist/intake/index.d.ts +4 -2
- package/dist/intake/index.js +21 -4
- package/dist/intake/index.js.map +1 -1
- package/dist/peers-coord.js +30 -0
- package/dist/peers-coord.js.map +2 -2
- package/dist/pool.d.ts +71 -0
- package/dist/pool.js +205 -0
- package/dist/pool.js.map +1 -0
- package/dist/run/adapters.js +26 -2
- package/dist/run/adapters.js.map +1 -1
- package/dist/run/port.d.ts +5 -1
- package/dist/run/route.d.ts +4 -2
- package/dist/run/route.js +15 -8
- package/dist/run/route.js.map +1 -1
- package/dist/run/spawn.d.ts +4 -0
- package/dist/run/spawn.js +10 -1
- package/dist/run/spawn.js.map +1 -1
- package/dist/run/worker.d.ts +13 -0
- package/dist/run/worker.js +45 -6
- package/dist/run/worker.js.map +1 -1
- package/package.json +1 -1
- package/skills/aerie-orchestrate/SKILL.md +8 -6
- package/skills/aerie-sidecar/SKILL.md +2 -2
package/dist/pool.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { CoordStore } from "./coord/port.js";
|
|
2
|
+
/** where sessions live: tmux on a host, a fake in tests */
|
|
3
|
+
export interface Mux {
|
|
4
|
+
/** live session names with the pool's prefix */
|
|
5
|
+
list(): Promise<string[]>;
|
|
6
|
+
start(name: string, argv: string[], o: {
|
|
7
|
+
cwd: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
stop(name: string): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
/** Claude Code's own view of a session (~/.claude/sessions/<pid>.json) */
|
|
12
|
+
export interface SessionState {
|
|
13
|
+
status?: string;
|
|
14
|
+
waitingFor?: string;
|
|
15
|
+
statusUpdatedAt?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PoolSlot {
|
|
18
|
+
name: string;
|
|
19
|
+
lane: string;
|
|
20
|
+
/** --session-id: its holder ends in this id's last group */
|
|
21
|
+
session: string;
|
|
22
|
+
started: number;
|
|
23
|
+
/** last time it held a lease or was busy */
|
|
24
|
+
busyAt: number;
|
|
25
|
+
}
|
|
26
|
+
export interface PoolState {
|
|
27
|
+
slots: PoolSlot[];
|
|
28
|
+
}
|
|
29
|
+
export interface PoolOptions {
|
|
30
|
+
mux: Mux;
|
|
31
|
+
coord: CoordStore;
|
|
32
|
+
/** lane → sessions wanted while the lane has work */
|
|
33
|
+
lanes: Record<string, number>;
|
|
34
|
+
/** argv for one session; {lane} and {session} are filled in */
|
|
35
|
+
command: string[];
|
|
36
|
+
cwd: string;
|
|
37
|
+
/** idle this long with nothing queued on its lane: stopped */
|
|
38
|
+
idleMs: number;
|
|
39
|
+
state: PoolState;
|
|
40
|
+
/** Claude Code's file for a session id, null when none */
|
|
41
|
+
sessionState: (session: string) => SessionState | null;
|
|
42
|
+
now?: () => number;
|
|
43
|
+
}
|
|
44
|
+
export interface PoolAction {
|
|
45
|
+
act: "start" | "restart" | "stop" | "waits";
|
|
46
|
+
name: string;
|
|
47
|
+
lane: string;
|
|
48
|
+
why: string;
|
|
49
|
+
}
|
|
50
|
+
export declare const POOL_PREFIX = "aerie-pool-";
|
|
51
|
+
export declare const DEFAULT_COMMAND: string[];
|
|
52
|
+
/** setting pool_lanes: "ops=2,main=1" */
|
|
53
|
+
export declare function parseLanes(v: string, key?: string): Record<string, number>;
|
|
54
|
+
/** one pass; mutates o.state */
|
|
55
|
+
export declare function reconcile(o: PoolOptions): Promise<PoolAction[]>;
|
|
56
|
+
export declare function tmuxMux(bin?: string): Mux;
|
|
57
|
+
/** Claude Code's session file for an id; null when the session never wrote one */
|
|
58
|
+
export declare function claudeSessionState(dir?: string): (session: string) => SessionState | null;
|
|
59
|
+
export declare const poolDir: () => string;
|
|
60
|
+
export declare function loadPool(file?: string): PoolState;
|
|
61
|
+
export declare function savePool(s: PoolState, file?: string): void;
|
|
62
|
+
/** one pool loop per host: a pid file; a dead pid's file is taken over. Returns the unlock. */
|
|
63
|
+
export declare function lockPool(file?: string): () => void;
|
|
64
|
+
/** a mux in memory: `kill` plays a crash */
|
|
65
|
+
export declare function fakeMux(): {
|
|
66
|
+
live: Map<string, string[]>;
|
|
67
|
+
kill: (name: string) => boolean;
|
|
68
|
+
list(): Promise<string[]>;
|
|
69
|
+
start(name: string, argv: string[]): Promise<void>;
|
|
70
|
+
stop(name: string): Promise<void>;
|
|
71
|
+
};
|
package/dist/pool.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker-session pool (D22): N live sessions per session lane on this host, each in tmux (a TTY: `claude` is a TUI,
|
|
3
|
+
* the peers mod feeds it tasks through `peers serve <lane>`). One reconcile pass: start what is missing, release and
|
|
4
|
+
* restart the dead, stop the idle above the target. Leases and Claude Code's session file say busy; tmux says alive.
|
|
5
|
+
*/
|
|
6
|
+
import { execFile } from "node:child_process";
|
|
7
|
+
import { randomUUID } from "node:crypto";
|
|
8
|
+
import { closeSync, existsSync, mkdirSync, openSync, readdirSync, readFileSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
import { dirname, join } from "node:path";
|
|
11
|
+
import { promisify } from "node:util";
|
|
12
|
+
const run = promisify(execFile);
|
|
13
|
+
export const POOL_PREFIX = "aerie-pool-";
|
|
14
|
+
export const DEFAULT_COMMAND = [
|
|
15
|
+
"claude",
|
|
16
|
+
"--session-id",
|
|
17
|
+
"{session}",
|
|
18
|
+
// unattended: a permission prompt would stall it (the session's own rules still apply)
|
|
19
|
+
"--permission-mode",
|
|
20
|
+
"bypassPermissions",
|
|
21
|
+
"Run `peers serve {lane}`, then wait: tasks on lane {lane} come to you as prompts. Work each one to done.",
|
|
22
|
+
];
|
|
23
|
+
/** setting pool_lanes: "ops=2,main=1" */
|
|
24
|
+
export function parseLanes(v, key = "pool_lanes") {
|
|
25
|
+
const out = {};
|
|
26
|
+
for (const part of v
|
|
27
|
+
.split(",")
|
|
28
|
+
.map((x) => x.trim())
|
|
29
|
+
.filter(Boolean)) {
|
|
30
|
+
const [lane, n] = part.split("=");
|
|
31
|
+
const k = Number(n);
|
|
32
|
+
if (!lane || !Number.isInteger(k) || k < 0)
|
|
33
|
+
throw new Error(`${key}: "${part}" is not name=N`);
|
|
34
|
+
out[lane] = k;
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
/** peers' holder: `user@host/<slug>-<id>` or `user@host/cc-<id>`, id = the session's first 4 chars (core.mjs idOf) */
|
|
39
|
+
const holds = (holder, session) => holder.endsWith(`-${session.slice(0, 4)}`);
|
|
40
|
+
/** one pass; mutates o.state */
|
|
41
|
+
export async function reconcile(o) {
|
|
42
|
+
const now = (o.now ?? Date.now)();
|
|
43
|
+
const out = [];
|
|
44
|
+
const live = new Set(await o.mux.list());
|
|
45
|
+
const held = await o.coord.held();
|
|
46
|
+
const queue = await o.coord.queueList();
|
|
47
|
+
const leasesOf = (s) => held.flatMap((h) => h.holders
|
|
48
|
+
.filter((l) => holds(l.holder, s.session))
|
|
49
|
+
.map((l) => ({ id: h.id, holder: l.holder })));
|
|
50
|
+
const fill = (s, lane) => o.command.map((a) => a.replaceAll("{session}", s).replaceAll("{lane}", lane));
|
|
51
|
+
const startSlot = async (lane, name, act, why) => {
|
|
52
|
+
const session = randomUUID();
|
|
53
|
+
await o.mux.start(name, fill(session, lane), { cwd: o.cwd });
|
|
54
|
+
o.state.slots.push({ name, lane, session, started: now, busyAt: now });
|
|
55
|
+
out.push({ act, name, lane, why });
|
|
56
|
+
};
|
|
57
|
+
// dead: its leases go back to the queue head, then a fresh session
|
|
58
|
+
for (const s of [...o.state.slots]) {
|
|
59
|
+
if (live.has(s.name))
|
|
60
|
+
continue;
|
|
61
|
+
for (const l of leasesOf(s))
|
|
62
|
+
await o.coord.release(l.id, l.holder, { queue: true });
|
|
63
|
+
o.state.slots = o.state.slots.filter((x) => x !== s);
|
|
64
|
+
if ((o.lanes[s.lane] ?? 0) > 0)
|
|
65
|
+
await startSlot(s.lane, s.name, "restart", "its tmux session is gone");
|
|
66
|
+
}
|
|
67
|
+
for (const s of o.state.slots) {
|
|
68
|
+
const st = o.sessionState(s.session);
|
|
69
|
+
if (leasesOf(s).length || st?.status === "busy" || st?.status === "shell")
|
|
70
|
+
s.busyAt = now;
|
|
71
|
+
if (st?.waitingFor)
|
|
72
|
+
out.push({ act: "waits", name: s.name, lane: s.lane, why: st.waitingFor });
|
|
73
|
+
}
|
|
74
|
+
for (const [lane, n] of Object.entries(o.lanes)) {
|
|
75
|
+
const mine = o.state.slots.filter((s) => s.lane === lane);
|
|
76
|
+
const queued = queue.filter((q) => q.lane === lane && !q.pin).length;
|
|
77
|
+
const busy = mine.filter((s) => s.busyAt === now).length;
|
|
78
|
+
// scale to the work: busy ones stay, one more per queued task, at most n
|
|
79
|
+
const target = Math.min(n, busy + queued);
|
|
80
|
+
for (let i = 0; mine.length + i < target; i++) {
|
|
81
|
+
const name = `${POOL_PREFIX}${lane.replace(/[^a-z0-9]+/gi, "-")}-${randomUUID().slice(0, 4)}`;
|
|
82
|
+
await startSlot(lane, name, "start", `${queued} queued on ${lane}`);
|
|
83
|
+
}
|
|
84
|
+
// only idle ones above the target stop; a session that holds a lease never does
|
|
85
|
+
let extra = mine.length - target;
|
|
86
|
+
for (const s of mine.sort((a, b) => a.busyAt - b.busyAt)) {
|
|
87
|
+
if (extra <= 0)
|
|
88
|
+
break;
|
|
89
|
+
if (s.busyAt === now || now - s.busyAt < o.idleMs)
|
|
90
|
+
continue;
|
|
91
|
+
await o.mux.stop(s.name);
|
|
92
|
+
o.state.slots = o.state.slots.filter((x) => x !== s);
|
|
93
|
+
out.push({
|
|
94
|
+
act: "stop",
|
|
95
|
+
name: s.name,
|
|
96
|
+
lane,
|
|
97
|
+
why: `idle ${Math.round((now - s.busyAt) / 60_000)} min, nothing queued`,
|
|
98
|
+
});
|
|
99
|
+
extra--;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
// ── tmux ──
|
|
105
|
+
export function tmuxMux(bin = "tmux") {
|
|
106
|
+
return {
|
|
107
|
+
async list() {
|
|
108
|
+
try {
|
|
109
|
+
const { stdout } = await run(bin, ["list-sessions", "-F", "#{session_name}"]);
|
|
110
|
+
return stdout.split("\n").filter((n) => n.startsWith(POOL_PREFIX));
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
// no server: no sessions. Any other fault throws: [] would read as every session dead
|
|
114
|
+
const err = String(e.stderr ?? "");
|
|
115
|
+
if (/no server running|error connecting to/.test(err))
|
|
116
|
+
return [];
|
|
117
|
+
throw e;
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
async start(name, argv, o) {
|
|
121
|
+
await run(bin, ["new-session", "-d", "-s", name, "-c", o.cwd, "--", ...argv]);
|
|
122
|
+
},
|
|
123
|
+
async stop(name) {
|
|
124
|
+
await run(bin, ["kill-session", "-t", name]).catch(() => { });
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/** Claude Code's session file for an id; null when the session never wrote one */
|
|
129
|
+
export function claudeSessionState(dir = join(homedir(), ".claude", "sessions")) {
|
|
130
|
+
return (session) => {
|
|
131
|
+
for (const f of existsSync(dir) ? readdirSync(dir) : []) {
|
|
132
|
+
if (!f.endsWith(".json"))
|
|
133
|
+
continue;
|
|
134
|
+
try {
|
|
135
|
+
const d = JSON.parse(readFileSync(join(dir, f), "utf8"));
|
|
136
|
+
if (d.sessionId === session)
|
|
137
|
+
return d;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
// a file mid-write
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// ── host state + one loop per host ──
|
|
147
|
+
export const poolDir = () => join(homedir(), ".local", "state", "aerie");
|
|
148
|
+
export function loadPool(file = join(poolDir(), "pool.json")) {
|
|
149
|
+
try {
|
|
150
|
+
return JSON.parse(readFileSync(file, "utf8"));
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return { slots: [] };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export function savePool(s, file = join(poolDir(), "pool.json")) {
|
|
157
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
158
|
+
writeFileSync(file, `${JSON.stringify(s, null, 2)}\n`);
|
|
159
|
+
}
|
|
160
|
+
/** one pool loop per host: a pid file; a dead pid's file is taken over. Returns the unlock. */
|
|
161
|
+
export function lockPool(file = join(poolDir(), "pool.lock")) {
|
|
162
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
163
|
+
for (let i = 0; i < 2; i++) {
|
|
164
|
+
try {
|
|
165
|
+
const fd = openSync(file, "wx");
|
|
166
|
+
writeFileSync(fd, String(process.pid));
|
|
167
|
+
closeSync(fd);
|
|
168
|
+
return () => unlinkSync(file);
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
const pid = Number(readFileSync(file, "utf8"));
|
|
172
|
+
if (pid && alive(pid))
|
|
173
|
+
throw new Error(`aerie pool: already running (pid ${pid})`);
|
|
174
|
+
unlinkSync(file);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
throw new Error("aerie pool: cannot take the lock");
|
|
178
|
+
}
|
|
179
|
+
function alive(pid) {
|
|
180
|
+
try {
|
|
181
|
+
process.kill(pid, 0);
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/** a mux in memory: `kill` plays a crash */
|
|
189
|
+
export function fakeMux() {
|
|
190
|
+
const live = new Map();
|
|
191
|
+
return {
|
|
192
|
+
live,
|
|
193
|
+
kill: (name) => live.delete(name),
|
|
194
|
+
async list() {
|
|
195
|
+
return [...live.keys()];
|
|
196
|
+
},
|
|
197
|
+
async start(name, argv) {
|
|
198
|
+
live.set(name, argv);
|
|
199
|
+
},
|
|
200
|
+
async stop(name) {
|
|
201
|
+
live.delete(name);
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=pool.js.map
|
package/dist/pool.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/dist/run/adapters.js
CHANGED
|
@@ -75,6 +75,7 @@ export function claudeEvent(l) {
|
|
|
75
75
|
export function claudeRunner(o = {}) {
|
|
76
76
|
return {
|
|
77
77
|
name: "claude",
|
|
78
|
+
needs: ["ANTHROPIC_API_KEY"],
|
|
78
79
|
async run(t, ctx) {
|
|
79
80
|
let last = null;
|
|
80
81
|
let session;
|
|
@@ -132,6 +133,7 @@ function lastText(v) {
|
|
|
132
133
|
export function codexRunner(o = {}) {
|
|
133
134
|
return {
|
|
134
135
|
name: "codex",
|
|
136
|
+
needs: ["OPENAI_API_KEY", "CODEX_API_KEY"],
|
|
135
137
|
async run(t, ctx) {
|
|
136
138
|
let summary = null;
|
|
137
139
|
const r = await runLines(o.bin ?? "codex", [
|
|
@@ -158,6 +160,7 @@ export function codexRunner(o = {}) {
|
|
|
158
160
|
export function grokRunner(o = {}) {
|
|
159
161
|
return {
|
|
160
162
|
name: "grok",
|
|
163
|
+
needs: ["XAI_API_KEY"],
|
|
161
164
|
async run(t, ctx) {
|
|
162
165
|
const out = [];
|
|
163
166
|
const r = await runLines(o.bin ?? "grok", [
|
|
@@ -184,6 +187,7 @@ const DO_LINE = /^(done|needs-human|failed|planned) via (\S+)(?: ([^:]+))?: (.*)
|
|
|
184
187
|
export function autobrowseRunner(o = {}) {
|
|
185
188
|
return {
|
|
186
189
|
name: "autobrowse-do",
|
|
190
|
+
needs: ["AUTOBROWSE_OWNER"],
|
|
187
191
|
async run(t, ctx) {
|
|
188
192
|
const input = (t.extra.input ?? {});
|
|
189
193
|
const out = [];
|
|
@@ -236,7 +240,27 @@ export function apiRunner(o) {
|
|
|
236
240
|
summary: "no model for the api runner",
|
|
237
241
|
question: `No model for ${t.id} on the api runner: set AERIE_API_MODEL, or a route rule with a model?`,
|
|
238
242
|
};
|
|
239
|
-
const
|
|
243
|
+
const tenant = ctx.inherit === false;
|
|
244
|
+
// these spawn their own child on the host's env and login
|
|
245
|
+
if (tenant && /^(claude-code|command)(:|$)/.test(spec))
|
|
246
|
+
return {
|
|
247
|
+
outcome: "needs-input",
|
|
248
|
+
summary: `model ${spec} runs on the host's login`,
|
|
249
|
+
question: `${t.id}: a tenant run cannot use ${spec}. Which model, on the tenant's own key?`,
|
|
250
|
+
};
|
|
251
|
+
let m;
|
|
252
|
+
try {
|
|
253
|
+
// tenant: its own keys only, never the host's
|
|
254
|
+
m = modelFromSpec(spec, tenant ? ctx.env : { ...process.env, ...o.env, ...ctx.env });
|
|
255
|
+
}
|
|
256
|
+
catch (e) {
|
|
257
|
+
// a missing key: a retry cannot fix it
|
|
258
|
+
return {
|
|
259
|
+
outcome: "needs-input",
|
|
260
|
+
summary: e.message,
|
|
261
|
+
question: `${t.id}: ${e.message}. Add the key, then answer.`,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
240
264
|
await ctx.emit({ kind: "init", text: m.id, data: { spec, model: m.id } });
|
|
241
265
|
try {
|
|
242
266
|
const { value, usage } = await withDeadline(o.timeoutMs ?? 120_000, ctx.signal, (signal) => m.ask(`${promptOf(t, ctx.answers)}\n\nYou have no tools. Answer as JSON: outcome (done, needs-input or failed), summary, and question when a person must decide.`, ApiAnswer, { signal }));
|
|
@@ -260,7 +284,7 @@ export function apiRunner(o) {
|
|
|
260
284
|
};
|
|
261
285
|
}
|
|
262
286
|
function spawnOf(ctx) {
|
|
263
|
-
return { cwd: ctx.cwd, env: ctx.env, signal: ctx.signal };
|
|
287
|
+
return { cwd: ctx.cwd, env: ctx.env, inherit: ctx.inherit, signal: ctx.signal };
|
|
264
288
|
}
|
|
265
289
|
/** The headless runners from settings: `AERIE_<RUNNER>_BIN`, `AERIE_<RUNNER>_ARGS` (a JSON array), `AERIE_API_MODEL`. */
|
|
266
290
|
export function headlessRunners(get) {
|
package/dist/run/adapters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/run/adapters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/run/adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/run/port.d.ts
CHANGED
|
@@ -41,14 +41,18 @@ export interface RunContext {
|
|
|
41
41
|
answers?: string[] | undefined;
|
|
42
42
|
/** the scratch folder the child runs in */
|
|
43
43
|
cwd: string;
|
|
44
|
-
/** env for the child: AERIE_TASK and the like, on top of process.env */
|
|
44
|
+
/** env for the child: AERIE_TASK and the like, on top of process.env (CLEAN_ENV when inherit is false) */
|
|
45
45
|
env: Record<string, string>;
|
|
46
|
+
/** false for a tenant run: the child sees CLEAN_ENV + env only, never the host's keys or login */
|
|
47
|
+
inherit?: boolean | undefined;
|
|
46
48
|
/** aborted when the lease is lost or the worker stops: the child's process group is killed */
|
|
47
49
|
signal: AbortSignal;
|
|
48
50
|
emit(e: RunEvent): Promise<void>;
|
|
49
51
|
}
|
|
50
52
|
export interface Runner {
|
|
51
53
|
name: RunnerName;
|
|
54
|
+
/** a tenant run needs one of these in its own credential set, else no run (vendor terms, phase 6) */
|
|
55
|
+
needs?: string[];
|
|
52
56
|
/** headless only; a run settles, never throws for the child's own failure */
|
|
53
57
|
run?(task: TaskRecord, ctx: RunContext): Promise<RunResult>;
|
|
54
58
|
}
|
package/dist/run/route.d.ts
CHANGED
|
@@ -25,8 +25,10 @@ export declare const queueSpot: (r: Pick<Route, "runner" | "lane">) => {
|
|
|
25
25
|
lane: string;
|
|
26
26
|
pin: string;
|
|
27
27
|
};
|
|
28
|
+
/** the store and coord over one transaction: a route's event and its queue row land together */
|
|
29
|
+
export type Atomic = <T>(fn: (a: AerieStore, c: CoordStore) => Promise<T>) => Promise<T>;
|
|
28
30
|
/** route, log, queue; the task's own lane already holding it is fine (queueAdd moves it) */
|
|
29
|
-
export declare function route(a: AerieStore, coord: CoordStore, id: string, by: string, pick?: Picker): Promise<Route>;
|
|
31
|
+
export declare function route(a: AerieStore, coord: CoordStore, id: string, by: string, pick?: Picker, atomic?: Atomic): Promise<Route>;
|
|
30
32
|
/** Opens the question of the worker's own decision (kind `run-failed`) after MAX_FAILS. */
|
|
31
33
|
export declare const RUN_FAILED = "Run failed";
|
|
32
34
|
/**
|
|
@@ -39,7 +41,7 @@ export declare function afterDecision(a: AerieStore, coord: CoordStore, d: {
|
|
|
39
41
|
kind: string;
|
|
40
42
|
answer?: string | null | undefined;
|
|
41
43
|
blocks: string[];
|
|
42
|
-
}, by: string, pick?: Picker): Promise<{
|
|
44
|
+
}, by: string, pick?: Picker, atomic?: Atomic): Promise<{
|
|
43
45
|
id: string;
|
|
44
46
|
lane: string | null;
|
|
45
47
|
}[]>;
|
package/dist/run/route.js
CHANGED
|
@@ -67,21 +67,26 @@ export async function routeOf(a, t, pick) {
|
|
|
67
67
|
}
|
|
68
68
|
/** headless: pinned to its lane, so a session serving every lane (`*`) never takes it */
|
|
69
69
|
export const queueSpot = (r) => r.runner === "session" ? { lane: r.lane } : { lane: r.lane, pin: r.lane };
|
|
70
|
+
const direct = (a, c) => (fn) => fn(a, c);
|
|
70
71
|
/** route, log, queue; the task's own lane already holding it is fine (queueAdd moves it) */
|
|
71
|
-
export async function route(a, coord, id, by, pick) {
|
|
72
|
+
export async function route(a, coord, id, by, pick, atomic = direct(a, coord)) {
|
|
72
73
|
const t = await a.get(id);
|
|
73
74
|
if (!t)
|
|
74
75
|
throw new AerieError(`no task ${id}`, 404);
|
|
76
|
+
// the model pick runs first: never hold a transaction open on a model call
|
|
75
77
|
const r = await routeOf(a, t, pick);
|
|
76
|
-
await a
|
|
78
|
+
await atomic((a, coord) => write(a, coord, t.id, r, by));
|
|
79
|
+
return r;
|
|
80
|
+
}
|
|
81
|
+
async function write(a, coord, id, r, by) {
|
|
82
|
+
await a.log(id, by, "routed", {
|
|
77
83
|
runner: r.runner,
|
|
78
84
|
model: r.model,
|
|
79
85
|
lane: r.lane,
|
|
80
86
|
rule: r.rule,
|
|
81
87
|
picker: r.rule === null ? r.by : null,
|
|
82
88
|
}, r.why);
|
|
83
|
-
await coord.queueAdd([
|
|
84
|
-
return r;
|
|
89
|
+
await coord.queueAdd([id], queueSpot(r));
|
|
85
90
|
}
|
|
86
91
|
/** Opens the question of the worker's own decision (kind `run-failed`) after MAX_FAILS. */
|
|
87
92
|
export const RUN_FAILED = "Run failed";
|
|
@@ -90,7 +95,7 @@ export const RUN_FAILED = "Run failed";
|
|
|
90
95
|
* assigned to him, off the queue; `session` = the session lane of its area. Else (`retry`, or any answer to an
|
|
91
96
|
* agent's own question): routed again, the answer in the prompt.
|
|
92
97
|
*/
|
|
93
|
-
export async function afterDecision(a, coord, d, by, pick) {
|
|
98
|
+
export async function afterDecision(a, coord, d, by, pick, atomic = direct(a, coord)) {
|
|
94
99
|
const out = [];
|
|
95
100
|
const worker = d.kind === "run-failed";
|
|
96
101
|
for (const id of d.blocks) {
|
|
@@ -102,12 +107,14 @@ export async function afterDecision(a, coord, d, by, pick) {
|
|
|
102
107
|
out.push({ id: t.id, lane: null });
|
|
103
108
|
}
|
|
104
109
|
else if (worker && d.answer === "session") {
|
|
105
|
-
await
|
|
106
|
-
|
|
110
|
+
await atomic(async (a, coord) => {
|
|
111
|
+
await a.log(t.id, by, "routed", { runner: "session", model: null, lane: t.area, rule: null }, `decision ${d.id}`);
|
|
112
|
+
await coord.queueAdd([t.id], { lane: t.area });
|
|
113
|
+
});
|
|
107
114
|
out.push({ id: t.id, lane: t.area });
|
|
108
115
|
}
|
|
109
116
|
else
|
|
110
|
-
out.push({ id: t.id, lane: (await route(a, coord, t.id, by, pick)).lane });
|
|
117
|
+
out.push({ id: t.id, lane: (await route(a, coord, t.id, by, pick, atomic)).lane });
|
|
111
118
|
}
|
|
112
119
|
return out;
|
|
113
120
|
}
|
package/dist/run/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/run/route.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/run/route.ts"],"names":[],"mappings":"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"}
|
package/dist/run/spawn.d.ts
CHANGED
|
@@ -5,9 +5,13 @@ export interface Spawned {
|
|
|
5
5
|
aborted: boolean;
|
|
6
6
|
stderr: string;
|
|
7
7
|
}
|
|
8
|
+
/** host vars a tenant's child keeps; HOME is the tenant's, never the host's (saved logins live there) */
|
|
9
|
+
export declare const CLEAN_ENV: string[];
|
|
10
|
+
export declare function cleanEnv(from?: NodeJS.ProcessEnv): Record<string, string>;
|
|
8
11
|
export declare function runLines(bin: string, args: string[], o: {
|
|
9
12
|
cwd: string;
|
|
10
13
|
env: Record<string, string>;
|
|
14
|
+
inherit?: boolean | undefined;
|
|
11
15
|
signal: AbortSignal;
|
|
12
16
|
onLine: (line: string) => Promise<void>;
|
|
13
17
|
}): Promise<Spawned>;
|
package/dist/run/spawn.js
CHANGED
|
@@ -6,6 +6,15 @@ import { spawn } from "node:child_process";
|
|
|
6
6
|
import { createInterface } from "node:readline";
|
|
7
7
|
import { AerieError } from "../db.js";
|
|
8
8
|
const STDERR_KEEP = 64_000;
|
|
9
|
+
/** host vars a tenant's child keeps; HOME is the tenant's, never the host's (saved logins live there) */
|
|
10
|
+
export const CLEAN_ENV = ["PATH", "USER", "LANG", "LC_ALL", "TMPDIR", "SHELL", "TERM"];
|
|
11
|
+
export function cleanEnv(from = process.env) {
|
|
12
|
+
const out = {};
|
|
13
|
+
for (const k of CLEAN_ENV)
|
|
14
|
+
if (from[k] !== undefined)
|
|
15
|
+
out[k] = from[k];
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
9
18
|
export function runLines(bin, args, o) {
|
|
10
19
|
return new Promise((resolve, reject) => {
|
|
11
20
|
if (o.signal.aborted) {
|
|
@@ -14,7 +23,7 @@ export function runLines(bin, args, o) {
|
|
|
14
23
|
}
|
|
15
24
|
const child = spawn(bin, args, {
|
|
16
25
|
cwd: o.cwd,
|
|
17
|
-
env: { ...process.env, ...o.env },
|
|
26
|
+
env: o.inherit === false ? { ...cleanEnv(), ...o.env } : { ...process.env, ...o.env },
|
|
18
27
|
detached: true,
|
|
19
28
|
stdio: ["ignore", "pipe", "pipe"],
|
|
20
29
|
});
|
package/dist/run/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/run/spawn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,MAAM,UAAU,QAAQ,CACtB,GAAW,EACX,IAAc,EACd,
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/run/spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/run/worker.d.ts
CHANGED
|
@@ -15,7 +15,20 @@ export interface WorkerOptions {
|
|
|
15
15
|
env?: Record<string, string>;
|
|
16
16
|
/** the worker stops: the running child is killed, the lease kept to lapse (it goes back on the queue) */
|
|
17
17
|
signal?: AbortSignal;
|
|
18
|
+
/** a client's worker: its own keys and HOME, never the host's (vendor terms, D20) */
|
|
19
|
+
tenant?: Tenant;
|
|
20
|
+
/** most live runs on this runner's lane, all hosts (D21; setting run_cap) */
|
|
21
|
+
cap?: number;
|
|
18
22
|
}
|
|
23
|
+
export interface Tenant {
|
|
24
|
+
name: string;
|
|
25
|
+
/** the tenant's credential set: the only keys its children see */
|
|
26
|
+
keys: Record<string, string>;
|
|
27
|
+
/** HOME for its children: the tenant's own config, never the host's (claude needs a key: no Keychain fallback) */
|
|
28
|
+
home: string;
|
|
29
|
+
}
|
|
30
|
+
/** the runner's credential names the tenant lacks; [] = ok (any one of needs is enough) */
|
|
31
|
+
export declare function missingCredentials(runner: Runner, tenant: Tenant): string[];
|
|
19
32
|
export type WorkOutcome = {
|
|
20
33
|
id: string;
|
|
21
34
|
outcome: RunResult["outcome"];
|