@cluesmith/codev 3.2.1 → 3.2.3
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/dashboard-dist/assets/{index-DM7OU-EI.js → index-BZ1x7x1X.js} +34 -34
- package/dashboard-dist/assets/index-BZ1x7x1X.js.map +1 -0
- package/dashboard-dist/index.html +1 -1
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +17 -0
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +6 -17
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +3 -2
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/db.d.ts +10 -0
- package/dist/agent-farm/commands/db.d.ts.map +1 -1
- package/dist/agent-farm/commands/db.js +77 -0
- package/dist/agent-farm/commands/db.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +40 -12
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +101 -34
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +12 -7
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +40 -19
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +15 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +24 -17
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/stop.js +2 -2
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower.d.ts +1 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +50 -0
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/commands/workspace-recover.d.ts +31 -0
- package/dist/agent-farm/commands/workspace-recover.d.ts.map +1 -1
- package/dist/agent-farm/commands/workspace-recover.js +70 -30
- package/dist/agent-farm/commands/workspace-recover.js.map +1 -1
- package/dist/agent-farm/db/consolidate.d.ts +66 -0
- package/dist/agent-farm/db/consolidate.d.ts.map +1 -0
- package/dist/agent-farm/db/consolidate.js +406 -0
- package/dist/agent-farm/db/consolidate.js.map +1 -0
- package/dist/agent-farm/db/index.d.ts +13 -4
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +108 -472
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +11 -4
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +91 -2
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +2 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +1 -0
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/lib/builder-lookup.d.ts.map +1 -1
- package/dist/agent-farm/lib/builder-lookup.js +9 -3
- package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
- package/dist/agent-farm/servers/codev-config-watcher.d.ts +37 -0
- package/dist/agent-farm/servers/codev-config-watcher.d.ts.map +1 -0
- package/dist/agent-farm/servers/{worktree-config-watcher.js → codev-config-watcher.js} +15 -14
- package/dist/agent-farm/servers/codev-config-watcher.js.map +1 -0
- package/dist/agent-farm/servers/command-relay.d.ts +54 -0
- package/dist/agent-farm/servers/command-relay.d.ts.map +1 -0
- package/dist/agent-farm/servers/command-relay.js +94 -0
- package/dist/agent-farm/servers/command-relay.js.map +1 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +12 -6
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +188 -58
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +9 -0
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-messages.js +24 -0
- package/dist/agent-farm/servers/tower-messages.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +111 -35
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +41 -27
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +47 -5
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +2 -0
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +117 -5
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +131 -14
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/state.d.ts +41 -21
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +137 -79
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +14 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/claude-session-discovery.d.ts +12 -0
- package/dist/agent-farm/utils/claude-session-discovery.d.ts.map +1 -1
- package/dist/agent-farm/utils/claude-session-discovery.js +42 -4
- package/dist/agent-farm/utils/claude-session-discovery.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +24 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +59 -3
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/harness.d.ts +57 -2
- package/dist/agent-farm/utils/harness.d.ts.map +1 -1
- package/dist/agent-farm/utils/harness.js +24 -0
- package/dist/agent-farm/utils/harness.js.map +1 -1
- package/dist/agent-farm/utils/workspace-path.d.ts +16 -0
- package/dist/agent-farm/utils/workspace-path.d.ts.map +1 -0
- package/dist/agent-farm/utils/workspace-path.js +26 -0
- package/dist/agent-farm/utils/workspace-path.js.map +1 -0
- package/dist/agent-farm/utils/worktree-write-guard.d.ts +56 -0
- package/dist/agent-farm/utils/worktree-write-guard.d.ts.map +1 -0
- package/dist/agent-farm/utils/worktree-write-guard.js +222 -0
- package/dist/agent-farm/utils/worktree-write-guard.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/consult/index.d.ts +50 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +121 -5
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +24 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/porch/verdict.js +2 -2
- package/dist/commands/porch/verdict.js.map +1 -1
- package/dist/lib/config.d.ts +10 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/forge-contracts.d.ts +8 -0
- package/dist/lib/forge-contracts.d.ts.map +1 -1
- package/dist/lib/forge-contracts.js.map +1 -1
- package/dist/lib/managed-block.d.ts +8 -2
- package/dist/lib/managed-block.d.ts.map +1 -1
- package/dist/lib/managed-block.js +32 -7
- package/dist/lib/managed-block.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +33 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +62 -1
- package/dist/terminal/session-manager.js.map +1 -1
- package/package.json +4 -4
- package/scripts/forge/gitea/issue-view.sh +4 -1
- package/scripts/forge/github/issue-view.sh +2 -2
- package/scripts/forge/gitlab/issue-view.sh +4 -1
- package/scripts/forge/linear/issue-view.sh +3 -2
- package/skeleton/protocols/pir/prompts/implement.md +1 -1
- package/skeleton/protocols/pir/prompts/review.md +1 -1
- package/skeleton/protocols/pir/protocol.md +3 -3
- package/skeleton/resources/commands/consult.md +14 -0
- package/skeleton/roles/builder.md +21 -0
- package/skeleton/templates/AGENTS.md +16 -0
- package/skeleton/templates/CLAUDE.md +16 -0
- package/dashboard-dist/assets/index-DM7OU-EI.js.map +0 -1
- package/dist/agent-farm/db/migrate.d.ts +0 -20
- package/dist/agent-farm/db/migrate.d.ts.map +0 -1
- package/dist/agent-farm/db/migrate.js +0 -107
- package/dist/agent-farm/db/migrate.js.map +0 -1
- package/dist/agent-farm/servers/worktree-config-watcher.d.ts +0 -36
- package/dist/agent-farm/servers/worktree-config-watcher.d.ts.map +0 -1
- package/dist/agent-farm/servers/worktree-config-watcher.js.map +0 -1
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
import fs from 'node:fs';
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import { tmpdir } from 'node:os';
|
|
11
|
+
import crypto from 'node:crypto';
|
|
11
12
|
import { loadRolePrompt } from '../utils/roles.js';
|
|
12
13
|
import { getArchitectHarness } from '../utils/config.js';
|
|
14
|
+
import { getArchitectByName, setArchitectSessionId } from '../state.js';
|
|
13
15
|
// ============================================================================
|
|
14
16
|
// Rate Limiting
|
|
15
17
|
// ============================================================================
|
|
@@ -55,19 +57,10 @@ export function startRateLimitCleanup() {
|
|
|
55
57
|
// ============================================================================
|
|
56
58
|
// Path Utilities
|
|
57
59
|
// ============================================================================
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
export function normalizeWorkspacePath(workspacePath) {
|
|
63
|
-
try {
|
|
64
|
-
return fs.realpathSync(workspacePath);
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
// Path doesn't exist yet, normalize without realpath
|
|
68
|
-
return path.resolve(workspacePath);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
60
|
+
// Issue #1118: normalizeWorkspacePath moved to the leaf module utils/workspace-path.ts
|
|
61
|
+
// so the data layer (state.ts, db/consolidate.ts) can share it without importing
|
|
62
|
+
// the server layer. Re-exported here so existing server-side importers are unchanged.
|
|
63
|
+
export { normalizeWorkspacePath } from '../utils/workspace-path.js';
|
|
71
64
|
/**
|
|
72
65
|
* Get workspace name from path.
|
|
73
66
|
*/
|
|
@@ -153,18 +146,142 @@ export function buildArchitectArgs(baseArgs, workspacePath) {
|
|
|
153
146
|
const codevDir = path.join(workspacePath, 'codev');
|
|
154
147
|
const bundledRolesDir = path.resolve(import.meta.dirname, '../../../skeleton/roles');
|
|
155
148
|
const config = { codevDir, bundledRolesDir, workspaceRoot: workspacePath };
|
|
149
|
+
const harness = getArchitectHarness(workspacePath);
|
|
156
150
|
const role = loadRolePrompt(config, 'architect');
|
|
157
151
|
if (!role)
|
|
158
152
|
return { args: baseArgs, env: {} };
|
|
159
153
|
const roleFile = path.join(workspacePath, '.architect-role.md');
|
|
160
154
|
fs.writeFileSync(roleFile, role.content);
|
|
161
|
-
const harness = getArchitectHarness(workspacePath);
|
|
162
155
|
const injection = harness.buildRoleInjection(role.content, roleFile);
|
|
163
156
|
return {
|
|
164
157
|
args: [...baseArgs, ...injection.args],
|
|
165
158
|
env: injection.env,
|
|
166
159
|
};
|
|
167
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Issue #1145: true when the stored session may be resumed. Harnesses that
|
|
163
|
+
* expose `session.verifyOwnership` get the final say; ones that don't are
|
|
164
|
+
* trusted (their stored ids are minted by us and have no on-disk store to
|
|
165
|
+
* cross-check). A throwing check counts as "not ours".
|
|
166
|
+
*/
|
|
167
|
+
function sessionIsOwned(harness, sessionId, workspacePath, homeDir) {
|
|
168
|
+
const verify = harness.session?.verifyOwnership;
|
|
169
|
+
if (!verify)
|
|
170
|
+
return true;
|
|
171
|
+
try {
|
|
172
|
+
return verify(sessionId, workspacePath, { homeDir });
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Issue #1150: decide whether a persisted sibling architect row still deserves
|
|
180
|
+
* a respawn, absent any live-terminal evidence (the caller checks
|
|
181
|
+
* `terminal_sessions` first; this covers the session-artifact half).
|
|
182
|
+
*
|
|
183
|
+
* A row is live when:
|
|
184
|
+
* 1. The harness has no `session` capability (Codex/Gemini): such rows can
|
|
185
|
+
* never carry resumable-session evidence, and their respawn is always a
|
|
186
|
+
* fresh spawn, so pruning them would break Spec 786 stop/start
|
|
187
|
+
* persistence while preventing nothing (no conversation can resurrect).
|
|
188
|
+
* 2. The row's stored session id passes the harness ownership check
|
|
189
|
+
* (`sessionIsOwned`, which also trusts harnesses lacking
|
|
190
|
+
* `verifyOwnership`: never prune without positive evidence of staleness).
|
|
191
|
+
*
|
|
192
|
+
* A session-capable harness row with no stored id, or an id whose session
|
|
193
|
+
* artifact is gone, is a dead registration: the reconcile loop prunes it
|
|
194
|
+
* instead of resurrecting a removed architect (the #1150 bug class).
|
|
195
|
+
*/
|
|
196
|
+
export function siblingRegistrationIsLive(workspacePath, sessionId, opts) {
|
|
197
|
+
const harness = getArchitectHarness(workspacePath);
|
|
198
|
+
if (!harness.session)
|
|
199
|
+
return true;
|
|
200
|
+
if (!sessionId)
|
|
201
|
+
return false;
|
|
202
|
+
return sessionIsOwned(harness, sessionId, workspacePath, opts?.homeDir);
|
|
203
|
+
}
|
|
204
|
+
export function resolveArchitectLaunch(opts) {
|
|
205
|
+
const { workspacePath, baseArgs, storedSessionId, homeDir } = opts;
|
|
206
|
+
const harness = getArchitectHarness(workspacePath);
|
|
207
|
+
// 1. No resumable-session support → plain fresh, nothing to persist.
|
|
208
|
+
if (!harness.session) {
|
|
209
|
+
return { ...buildArchitectArgs(baseArgs, workspacePath), sessionId: null, resumed: false };
|
|
210
|
+
}
|
|
211
|
+
// Issue #1149: emergency escape hatch. When the stored id passes the
|
|
212
|
+
// existence check but is unresumable in practice (corrupted transcript),
|
|
213
|
+
// restarting Tower with CODEV_SKIP_RESUME=1 forces every architect to a
|
|
214
|
+
// fresh launch without waiting for the automatic crash-loop fallback.
|
|
215
|
+
const skipResume = process.env['CODEV_SKIP_RESUME'] === '1';
|
|
216
|
+
// 2. Resume the persisted conversation (role injection skipped) — but only
|
|
217
|
+
// when the session still exists on disk for this workspace. A failed or
|
|
218
|
+
// throwing check falls through to a fresh spawn (Issue #1145: a stored id
|
|
219
|
+
// can outlive its jsonl, and resuming it would crash-loop the restart).
|
|
220
|
+
if (!skipResume && storedSessionId && sessionIsOwned(harness, storedSessionId, workspacePath, homeDir)) {
|
|
221
|
+
const fallbackSessionId = crypto.randomUUID();
|
|
222
|
+
const fresh = buildArchitectArgs([...baseArgs, ...harness.session.newSessionArgs(fallbackSessionId)], workspacePath);
|
|
223
|
+
return {
|
|
224
|
+
args: [...baseArgs, ...harness.session.resumeArgs(storedSessionId)],
|
|
225
|
+
env: {},
|
|
226
|
+
sessionId: storedSessionId,
|
|
227
|
+
resumed: true,
|
|
228
|
+
fallback: { args: fresh.args, env: fresh.env, sessionId: fallbackSessionId },
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
// 3. Fresh: mint an id, pin the session to it, persist it via the returned id.
|
|
232
|
+
const sessionId = crypto.randomUUID();
|
|
233
|
+
const built = buildArchitectArgs([...baseArgs, ...harness.session.newSessionArgs(sessionId)], workspacePath);
|
|
234
|
+
return { ...built, sessionId, resumed: false };
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Issue #832: resolve launch args for an architect being auto-restarted by its
|
|
238
|
+
* shellper (claude crash / reconnect). Reads the architect's stored conversation
|
|
239
|
+
* `session_id` from its state.db row and hands it to `resolveArchitectLaunch`, so an
|
|
240
|
+
* in-process crash revives the SAME conversation (the silent-context-loss path)
|
|
241
|
+
* instead of spawning fresh. A legacy row with no stored id resolves to a fresh
|
|
242
|
+
* session (then self-heals on its next cold revival via the spawn-path persist).
|
|
243
|
+
*
|
|
244
|
+
* Unlike the cold-spawn `main` path, there is **no** jsonl-discovery fallback here —
|
|
245
|
+
* the restart sites rely solely on the stored id (matching #830, which never resumed
|
|
246
|
+
* at restart). Both shellper restart-bake sites in `tower-terminals.ts` call this so
|
|
247
|
+
* the read→resolve wiring lives in one tested place. Returns `resolveArchitectLaunch`'s
|
|
248
|
+
* result plus the `storedSessionId` the caller uses for the "Resuming…" log line.
|
|
249
|
+
*/
|
|
250
|
+
export function resolveArchitectRestart(workspacePath, architectName, baseArgs, opts) {
|
|
251
|
+
const storedSessionId = getArchitectByName(workspacePath, architectName)?.sessionId ?? null;
|
|
252
|
+
const resolved = resolveArchitectLaunch({
|
|
253
|
+
workspacePath, name: architectName, baseArgs, storedSessionId, homeDir: opts?.homeDir,
|
|
254
|
+
});
|
|
255
|
+
return { ...resolved, storedSessionId };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Issue #1149: build the crash-loop fallback handed to the shellper layer when
|
|
259
|
+
* an architect launch resumes a stored conversation. If the resumed session
|
|
260
|
+
* fast-fails (the SessionManager detector), the restart loop swaps to this
|
|
261
|
+
* fresh launch and `onApply` repairs the architect row so future bakes resume
|
|
262
|
+
* the replacement conversation instead of relearning the unresumable id.
|
|
263
|
+
*
|
|
264
|
+
* The minted id is persisted rather than NULL: a NULL id would trip #1150's
|
|
265
|
+
* dead-registration pruning for siblings, and #1145's ownership check already
|
|
266
|
+
* defuses a minted id whose jsonl never materializes (next bake degrades to a
|
|
267
|
+
* fresh spawn with zero crash cycles).
|
|
268
|
+
*/
|
|
269
|
+
export function buildArchitectCrashLoopFallback(opts) {
|
|
270
|
+
const { workspacePath, architectName, storedSessionId, fallback, baseEnv, log } = opts;
|
|
271
|
+
return {
|
|
272
|
+
args: fallback.args,
|
|
273
|
+
env: { ...baseEnv, ...fallback.env },
|
|
274
|
+
onApply: () => {
|
|
275
|
+
log('WARN', `Architect '${architectName}' resume session ${storedSessionId.slice(0, 8)}… unrecoverable; falling back to a fresh session in ${workspacePath}`);
|
|
276
|
+
try {
|
|
277
|
+
setArchitectSessionId(workspacePath, architectName, fallback.sessionId);
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
log('WARN', `Failed to persist replacement session id for architect '${architectName}': ${err instanceof Error ? err.message : err}`);
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
};
|
|
284
|
+
}
|
|
168
285
|
/**
|
|
169
286
|
* Serve a static file from the React dashboard dist.
|
|
170
287
|
* Returns true if the file was served, false otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tower-utils.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AACnD,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEjD,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,oBAAoB,EAAE,CAAC;QAC9D,aAAa;QACb,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;YACxD,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,WAAW,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E
|
|
1
|
+
{"version":3,"file":"tower-utils.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,10 @@ import { closeDb } from './db/index.js';
|
|
|
16
16
|
* can enumerate ALL architects without re-querying. Main is always
|
|
17
17
|
* `architects[0]` when present.
|
|
18
18
|
*
|
|
19
|
-
* Bugfix #826:
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* Bugfix #826: takes a `workspacePath` and scopes the architect read by
|
|
20
|
+
* `workspace_path`. Issue #1118: `builders` is now workspace-scoped too (composite
|
|
21
|
+
* PK), so its read is scoped by the same `workspace_path`. `utils` and
|
|
22
|
+
* `annotations` remain global (UUID-keyed, runtime-ephemeral).
|
|
22
23
|
*/
|
|
23
24
|
export declare function loadState(workspacePath: string): DashboardState;
|
|
24
25
|
/**
|
|
@@ -42,6 +43,13 @@ export declare function setArchitect(workspacePath: string, architect: Architect
|
|
|
42
43
|
* isolated from workspace B.
|
|
43
44
|
*/
|
|
44
45
|
export declare function setArchitectByName(workspacePath: string, name: string, architect: ArchitectState | null): void;
|
|
46
|
+
/**
|
|
47
|
+
* Issue #1149: repair the stored conversation id on an architect row after a
|
|
48
|
+
* crash-loop fallback replaced an unresumable session. Targeted UPDATE so the
|
|
49
|
+
* rest of the row (cmd, terminal id, timestamps) is untouched; a no-op when
|
|
50
|
+
* the row does not exist.
|
|
51
|
+
*/
|
|
52
|
+
export declare function setArchitectSessionId(workspacePath: string, name: string, sessionId: string | null): void;
|
|
45
53
|
/**
|
|
46
54
|
* Add or update a builder
|
|
47
55
|
* Note: This is now synchronous
|
|
@@ -51,19 +59,22 @@ export declare function upsertBuilder(builder: Builder): void;
|
|
|
51
59
|
* Remove a builder
|
|
52
60
|
* Note: This is now synchronous
|
|
53
61
|
*/
|
|
54
|
-
export declare function removeBuilder(id: string): void;
|
|
62
|
+
export declare function removeBuilder(id: string, workspacePath?: string): void;
|
|
55
63
|
/**
|
|
56
|
-
* Get a single builder by ID
|
|
64
|
+
* Get a single builder by ID.
|
|
65
|
+
* Issue #1118: pass `workspacePath` to disambiguate when the same id may exist
|
|
66
|
+
* in multiple workspaces; without it, returns the first matching row.
|
|
57
67
|
*/
|
|
58
|
-
export declare function getBuilder(id: string): Builder | null;
|
|
68
|
+
export declare function getBuilder(id: string, workspacePath?: string): Builder | null;
|
|
59
69
|
/**
|
|
60
|
-
* Get all builders
|
|
70
|
+
* Get all builders. Issue #1118: pass `workspacePath` to scope to one workspace;
|
|
71
|
+
* omit it for a deliberate cross-workspace read (e.g. Tower global views).
|
|
61
72
|
*/
|
|
62
|
-
export declare function getBuilders(): Builder[];
|
|
73
|
+
export declare function getBuilders(workspacePath?: string): Builder[];
|
|
63
74
|
/**
|
|
64
|
-
* Get builders by status
|
|
75
|
+
* Get builders by status. Issue #1118: optional `workspacePath` scopes the read.
|
|
65
76
|
*/
|
|
66
|
-
export declare function getBuildersByStatus(status: Builder['status']): Builder[];
|
|
77
|
+
export declare function getBuildersByStatus(status: Builder['status'], workspacePath?: string): Builder[];
|
|
67
78
|
/**
|
|
68
79
|
* Add a utility terminal
|
|
69
80
|
* Note: This is now synchronous
|
|
@@ -114,15 +125,23 @@ export declare function clearState(): void;
|
|
|
114
125
|
* Spec 786: clear runtime state but preserve the architect registry.
|
|
115
126
|
*
|
|
116
127
|
* Used by `afx workspace stop` so sibling architects survive a graceful stop/
|
|
117
|
-
* start cycle. The `architect` table is the durable registration; `builders
|
|
118
|
-
*
|
|
128
|
+
* start cycle. The `architect` table is the durable registration; `builders`
|
|
129
|
+
* are the runtime concern and get wiped.
|
|
130
|
+
*
|
|
131
|
+
* Issue #1118: now that all workspaces share one `global.db`, this MUST be
|
|
132
|
+
* scoped by `workspace_path` — an unscoped `DELETE FROM builders` would wipe
|
|
133
|
+
* every other workspace's builders when one workspace stops. `builders` is
|
|
134
|
+
* workspace-scoped (composite PK), so the delete filters by `workspace_path`.
|
|
135
|
+
* `utils`/`annotations` are global (UUID-keyed, no workspace column) and
|
|
136
|
+
* vestigial (no producers), so they are intentionally left untouched here to
|
|
137
|
+
* avoid a cross-workspace wipe; the full-wipe `clearState()` still clears them.
|
|
119
138
|
*
|
|
120
139
|
* `clearState()` (the full-wipe variant) is preserved for callers that genuinely
|
|
121
|
-
* want everything gone (uninstall / nuke flows
|
|
140
|
+
* want everything gone (uninstall / nuke flows).
|
|
122
141
|
*/
|
|
123
|
-
export declare function clearRuntime(): void;
|
|
142
|
+
export declare function clearRuntime(workspacePath: string): void;
|
|
124
143
|
/**
|
|
125
|
-
* Spec 786: remove a single architect by name from `
|
|
144
|
+
* Spec 786: remove a single architect by name from the `architect` table.
|
|
126
145
|
*
|
|
127
146
|
* Idempotent — no-op if the named row is absent. Used by `remove-architect`
|
|
128
147
|
* (Phase 4) and the permanent-exit handler (Phase 3 / OQ-B).
|
|
@@ -169,12 +188,13 @@ export declare function getArchitectByName(workspacePath: string, name: string):
|
|
|
169
188
|
* This three-valued return cleanly distinguishes "legacy builder" from
|
|
170
189
|
* "non-builder sender." Used by the Phase 3 affinity-aware resolver.
|
|
171
190
|
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
191
|
+
* Issue #1118: builders now live in the single shared global.db, scoped by
|
|
192
|
+
* `workspace_path`. When `workspacePath` is supplied (Tower, serving multiple
|
|
193
|
+
* workspaces), the lookup is scoped `WHERE workspace_path = ? AND id = ?` — this
|
|
194
|
+
* is load-bearing, since the same builder id can exist in two workspaces and the
|
|
195
|
+
* spoofing check must resolve to the *correct* workspace's spawning architect.
|
|
196
|
+
* When omitted (a CLI caller already inside one workspace), it falls back to
|
|
197
|
+
* match by id alone.
|
|
178
198
|
*/
|
|
179
199
|
export declare function lookupBuilderSpawningArchitect(builderId: string, workspacePath?: string): string | null | undefined;
|
|
180
200
|
export { closeDb };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EAAS,OAAO,EAAE,MAAM,eAAe,CAAC;AAuC/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CA8C/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAkB1F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAoB9G;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKzG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0CpD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAUtE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAW7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAU7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAUhG;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAWhD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAUtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAiB3E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,YAAY,EAAE,CAIzC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAIvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAY1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAI7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAWjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAczE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,EAAE,CAOrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAO7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,GAAG,SAAS,CAc3B;AAGD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|