@cluesmith/codev 3.1.1 → 3.1.2
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/agent-farm/commands/attach.d.ts.map +1 -1
- package/dist/agent-farm/commands/attach.js +4 -1
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +4 -2
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +5 -1
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +2 -1
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +5 -3
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +125 -2
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/migrate.d.ts +11 -2
- package/dist/agent-farm/db/migrate.d.ts.map +1 -1
- package/dist/agent-farm/db/migrate.js +24 -5
- package/dist/agent-farm/db/migrate.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +15 -2
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +1 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +26 -14
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +2 -1
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +2 -2
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/state.d.ts +34 -15
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +92 -31
- package/dist/agent-farm/state.js.map +1 -1
- package/package.json +3 -3
|
@@ -15,24 +15,33 @@ import { closeDb } from './db/index.js';
|
|
|
15
15
|
* main-first sorted collection so callers like `afx status` (Tower-down mode)
|
|
16
16
|
* can enumerate ALL architects without re-querying. Main is always
|
|
17
17
|
* `architects[0]` when present.
|
|
18
|
+
*
|
|
19
|
+
* Bugfix #826: now takes a `workspacePath` argument and scopes the architect
|
|
20
|
+
* read by `workspace_path`. Other tables (builders, utils, annotations) are
|
|
21
|
+
* not workspace-scoped in this schema — they remain global per state.db file.
|
|
18
22
|
*/
|
|
19
|
-
export declare function loadState(): DashboardState;
|
|
23
|
+
export declare function loadState(workspacePath: string): DashboardState;
|
|
20
24
|
/**
|
|
21
25
|
* Update architect state (main-only setter — preserved for backward-compat with
|
|
22
26
|
* existing callers like `workspace start` / `stop`). Spec 755 added per-name
|
|
23
27
|
* setters/getters below.
|
|
24
28
|
*
|
|
25
29
|
* If `architect` is provided with a non-default `name`, callers should use
|
|
26
|
-
* `setArchitectByName(name, architect)` instead — this function
|
|
27
|
-
* writes the row with id = 'main'.
|
|
30
|
+
* `setArchitectByName(workspacePath, name, architect)` instead — this function
|
|
31
|
+
* always writes the row with id = 'main'.
|
|
32
|
+
*
|
|
33
|
+
* Bugfix #826: scoped by workspace_path.
|
|
28
34
|
*/
|
|
29
|
-
export declare function setArchitect(architect: ArchitectState | null): void;
|
|
35
|
+
export declare function setArchitect(workspacePath: string, architect: ArchitectState | null): void;
|
|
30
36
|
/**
|
|
31
37
|
* Update architect state by name (Spec 755). Used by the Phase 2 CLI for
|
|
32
38
|
* registering additional named architects. When `architect` is null, removes
|
|
33
39
|
* just that named architect; non-null upserts it.
|
|
40
|
+
*
|
|
41
|
+
* Bugfix #826: scoped by workspace_path so siblings in workspace A are
|
|
42
|
+
* isolated from workspace B.
|
|
34
43
|
*/
|
|
35
|
-
export declare function setArchitectByName(name: string, architect: ArchitectState | null): void;
|
|
44
|
+
export declare function setArchitectByName(workspacePath: string, name: string, architect: ArchitectState | null): void;
|
|
36
45
|
/**
|
|
37
46
|
* Add or update a builder
|
|
38
47
|
* Note: This is now synchronous
|
|
@@ -119,26 +128,36 @@ export declare function clearRuntime(): void;
|
|
|
119
128
|
* (Phase 4) and the permanent-exit handler (Phase 3 / OQ-B).
|
|
120
129
|
*
|
|
121
130
|
* For callsite clarity this is spelled as its own function rather than
|
|
122
|
-
* relying on `setArchitectByName(name, null)`. The two are
|
|
123
|
-
* equivalent today; this function exists so that "remove" reads
|
|
124
|
-
* at the call site.
|
|
131
|
+
* relying on `setArchitectByName(workspacePath, name, null)`. The two are
|
|
132
|
+
* functionally equivalent today; this function exists so that "remove" reads
|
|
133
|
+
* as "remove" at the call site.
|
|
134
|
+
*
|
|
135
|
+
* Bugfix #826: scoped by workspace_path.
|
|
125
136
|
*/
|
|
126
|
-
export declare function removeArchitect(name: string): void;
|
|
137
|
+
export declare function removeArchitect(workspacePath: string, name: string): void;
|
|
127
138
|
/**
|
|
128
139
|
* Get architect state (main-only — Spec 755 scalar shim).
|
|
129
140
|
* Returns the architect named 'main' if present, otherwise the first
|
|
130
141
|
* registered architect by name. For multi-architect access, use
|
|
131
|
-
* `getArchitects()` or `getArchitectByName(name)`
|
|
142
|
+
* `getArchitects(workspacePath)` or `getArchitectByName(workspacePath, name)`
|
|
143
|
+
* below.
|
|
144
|
+
*
|
|
145
|
+
* Bugfix #826: scoped by workspace_path.
|
|
132
146
|
*/
|
|
133
|
-
export declare function getArchitect(): ArchitectState | null;
|
|
147
|
+
export declare function getArchitect(workspacePath: string): ArchitectState | null;
|
|
134
148
|
/**
|
|
135
|
-
* Get all architects (Spec 755).
|
|
149
|
+
* Get all architects belonging to a workspace (Spec 755 + Bugfix #826).
|
|
150
|
+
*
|
|
151
|
+
* The architect table is scoped by `workspace_path` (Bugfix #826 migration v11),
|
|
152
|
+
* eliminating the cross-workspace leak by construction: a workspace's
|
|
153
|
+
* `launchInstance` only sees its own architect rows, regardless of which other
|
|
154
|
+
* workspaces this Tower process is serving.
|
|
136
155
|
*/
|
|
137
|
-
export declare function getArchitects(): ArchitectState[];
|
|
156
|
+
export declare function getArchitects(workspacePath: string): ArchitectState[];
|
|
138
157
|
/**
|
|
139
|
-
* Get a single architect by name (Spec 755).
|
|
158
|
+
* Get a single architect by name within a workspace (Spec 755 + Bugfix #826).
|
|
140
159
|
*/
|
|
141
|
-
export declare function getArchitectByName(name: string): ArchitectState | null;
|
|
160
|
+
export declare function getArchitectByName(workspacePath: string, name: string): ArchitectState | null;
|
|
142
161
|
/**
|
|
143
162
|
* Look up a builder's spawning-architect name (Spec 755).
|
|
144
163
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EAAS,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EAAS,OAAO,EAAE,MAAM,eAAe,CAAC;AAiC/C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAyC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAiB1F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAmB9G;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsCpD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAIrD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAIvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,EAAE,CAIxE;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;;;;;;;;;GASG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;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;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,GAAG,SAAS,CAsB3B;AAGD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/agent-farm/state.js
CHANGED
|
@@ -5,11 +5,34 @@
|
|
|
5
5
|
* All operations are synchronous and atomic.
|
|
6
6
|
*/
|
|
7
7
|
import path from 'node:path';
|
|
8
|
-
import { existsSync } from 'node:fs';
|
|
8
|
+
import { existsSync, realpathSync } from 'node:fs';
|
|
9
9
|
import Database from 'better-sqlite3';
|
|
10
10
|
import { getDb, closeDb } from './db/index.js';
|
|
11
11
|
import { dbArchitectToArchitectState, dbBuilderToBuilder, dbUtilToUtilTerminal, dbAnnotationToAnnotation, } from './db/types.js';
|
|
12
12
|
import { isPortConflictError } from './db/errors.js';
|
|
13
|
+
/**
|
|
14
|
+
* Normalize a workspace path to its canonical form (Bugfix #826 iter-6).
|
|
15
|
+
*
|
|
16
|
+
* The architect table's primary key includes `workspace_path`. Tower writes
|
|
17
|
+
* canonical realpaths (via `normalizeWorkspacePath` in tower-utils.ts); CLI
|
|
18
|
+
* callers and legacy migration paths often pass raw paths (e.g. a symlinked
|
|
19
|
+
* workspace root). Without normalization, accessing a workspace via two
|
|
20
|
+
* different paths (symlink + realpath) creates two distinct rows and lookups
|
|
21
|
+
* silently fail.
|
|
22
|
+
*
|
|
23
|
+
* Mirrors the contract of `servers/tower-utils.ts:normalizeWorkspacePath`.
|
|
24
|
+
* Kept inline to avoid pulling the server-layer import chain into the data
|
|
25
|
+
* layer. Uses `realpathSync` when the path exists; falls back to
|
|
26
|
+
* `path.resolve` for not-yet-existing paths (e.g. fresh installs).
|
|
27
|
+
*/
|
|
28
|
+
function canonicalize(workspacePath) {
|
|
29
|
+
try {
|
|
30
|
+
return realpathSync(workspacePath);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return path.resolve(workspacePath);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
13
36
|
/**
|
|
14
37
|
* Load complete state from database
|
|
15
38
|
*
|
|
@@ -19,17 +42,24 @@ import { isPortConflictError } from './db/errors.js';
|
|
|
19
42
|
* main-first sorted collection so callers like `afx status` (Tower-down mode)
|
|
20
43
|
* can enumerate ALL architects without re-querying. Main is always
|
|
21
44
|
* `architects[0]` when present.
|
|
45
|
+
*
|
|
46
|
+
* Bugfix #826: now takes a `workspacePath` argument and scopes the architect
|
|
47
|
+
* read by `workspace_path`. Other tables (builders, utils, annotations) are
|
|
48
|
+
* not workspace-scoped in this schema — they remain global per state.db file.
|
|
22
49
|
*/
|
|
23
|
-
export function loadState() {
|
|
50
|
+
export function loadState(workspacePath) {
|
|
24
51
|
const db = getDb();
|
|
52
|
+
const ws = canonicalize(workspacePath);
|
|
25
53
|
// Spec 786 Phase 5: load ALL architects, ordered `main` first then by
|
|
26
|
-
// started_at (so siblings appear in spawn order).
|
|
27
|
-
// only the scalar — that left `afx status` blind to siblings in Tower-down
|
|
28
|
-
// fallback mode.
|
|
54
|
+
// started_at (so siblings appear in spawn order).
|
|
29
55
|
//
|
|
30
56
|
// The ORDER BY uses `id != 'main'` so that 'main' sorts first
|
|
31
57
|
// (0 < 1 with this expression), then started_at ASC for siblings.
|
|
32
|
-
|
|
58
|
+
//
|
|
59
|
+
// Bugfix #826: scoped by workspace_path so a state.db that contains rows
|
|
60
|
+
// for multiple workspaces (Tower's CWD shared by many) returns only the
|
|
61
|
+
// architects belonging to the requested workspace.
|
|
62
|
+
const architectRows = db.prepare("SELECT * FROM architect WHERE workspace_path = ? ORDER BY (id != 'main'), started_at").all(ws);
|
|
33
63
|
const architects = architectRows.map(dbArchitectToArchitectState);
|
|
34
64
|
// The scalar shim points at architects[0] (which is `main` when present,
|
|
35
65
|
// else the first-registered architect by started_at). Preserves the legacy
|
|
@@ -58,19 +88,23 @@ export function loadState() {
|
|
|
58
88
|
* setters/getters below.
|
|
59
89
|
*
|
|
60
90
|
* If `architect` is provided with a non-default `name`, callers should use
|
|
61
|
-
* `setArchitectByName(name, architect)` instead — this function
|
|
62
|
-
* writes the row with id = 'main'.
|
|
91
|
+
* `setArchitectByName(workspacePath, name, architect)` instead — this function
|
|
92
|
+
* always writes the row with id = 'main'.
|
|
93
|
+
*
|
|
94
|
+
* Bugfix #826: scoped by workspace_path.
|
|
63
95
|
*/
|
|
64
|
-
export function setArchitect(architect) {
|
|
96
|
+
export function setArchitect(workspacePath, architect) {
|
|
65
97
|
const db = getDb();
|
|
98
|
+
const ws = canonicalize(workspacePath);
|
|
66
99
|
if (architect === null) {
|
|
67
|
-
db.prepare("DELETE FROM architect WHERE id = 'main'").run();
|
|
100
|
+
db.prepare("DELETE FROM architect WHERE workspace_path = ? AND id = 'main'").run(ws);
|
|
68
101
|
}
|
|
69
102
|
else {
|
|
70
103
|
db.prepare(`
|
|
71
|
-
INSERT OR REPLACE INTO architect (id, pid, port, cmd, started_at, terminal_id)
|
|
72
|
-
VALUES ('main', 0, 0, @cmd, @startedAt, @terminalId)
|
|
104
|
+
INSERT OR REPLACE INTO architect (workspace_path, id, pid, port, cmd, started_at, terminal_id)
|
|
105
|
+
VALUES (@workspacePath, 'main', 0, 0, @cmd, @startedAt, @terminalId)
|
|
73
106
|
`).run({
|
|
107
|
+
workspacePath: ws,
|
|
74
108
|
cmd: architect.cmd,
|
|
75
109
|
startedAt: architect.startedAt,
|
|
76
110
|
terminalId: architect.terminalId ?? null,
|
|
@@ -81,17 +115,22 @@ export function setArchitect(architect) {
|
|
|
81
115
|
* Update architect state by name (Spec 755). Used by the Phase 2 CLI for
|
|
82
116
|
* registering additional named architects. When `architect` is null, removes
|
|
83
117
|
* just that named architect; non-null upserts it.
|
|
118
|
+
*
|
|
119
|
+
* Bugfix #826: scoped by workspace_path so siblings in workspace A are
|
|
120
|
+
* isolated from workspace B.
|
|
84
121
|
*/
|
|
85
|
-
export function setArchitectByName(name, architect) {
|
|
122
|
+
export function setArchitectByName(workspacePath, name, architect) {
|
|
86
123
|
const db = getDb();
|
|
124
|
+
const ws = canonicalize(workspacePath);
|
|
87
125
|
if (architect === null) {
|
|
88
|
-
db.prepare('DELETE FROM architect WHERE id = ?').run(name);
|
|
126
|
+
db.prepare('DELETE FROM architect WHERE workspace_path = ? AND id = ?').run(ws, name);
|
|
89
127
|
return;
|
|
90
128
|
}
|
|
91
129
|
db.prepare(`
|
|
92
|
-
INSERT OR REPLACE INTO architect (id, pid, port, cmd, started_at, terminal_id)
|
|
93
|
-
VALUES (@name, 0, 0, @cmd, @startedAt, @terminalId)
|
|
130
|
+
INSERT OR REPLACE INTO architect (workspace_path, id, pid, port, cmd, started_at, terminal_id)
|
|
131
|
+
VALUES (@workspacePath, @name, 0, 0, @cmd, @startedAt, @terminalId)
|
|
94
132
|
`).run({
|
|
133
|
+
workspacePath: ws,
|
|
95
134
|
name,
|
|
96
135
|
cmd: architect.cmd,
|
|
97
136
|
startedAt: architect.startedAt,
|
|
@@ -318,44 +357,66 @@ export function clearRuntime() {
|
|
|
318
357
|
* (Phase 4) and the permanent-exit handler (Phase 3 / OQ-B).
|
|
319
358
|
*
|
|
320
359
|
* For callsite clarity this is spelled as its own function rather than
|
|
321
|
-
* relying on `setArchitectByName(name, null)`. The two are
|
|
322
|
-
* equivalent today; this function exists so that "remove" reads
|
|
323
|
-
* at the call site.
|
|
360
|
+
* relying on `setArchitectByName(workspacePath, name, null)`. The two are
|
|
361
|
+
* functionally equivalent today; this function exists so that "remove" reads
|
|
362
|
+
* as "remove" at the call site.
|
|
363
|
+
*
|
|
364
|
+
* Bugfix #826: scoped by workspace_path.
|
|
324
365
|
*/
|
|
325
|
-
export function removeArchitect(name) {
|
|
366
|
+
export function removeArchitect(workspacePath, name) {
|
|
326
367
|
const db = getDb();
|
|
327
|
-
|
|
368
|
+
const ws = canonicalize(workspacePath);
|
|
369
|
+
db.prepare('DELETE FROM architect WHERE workspace_path = ? AND id = ?').run(ws, name);
|
|
328
370
|
}
|
|
329
371
|
/**
|
|
330
372
|
* Get architect state (main-only — Spec 755 scalar shim).
|
|
331
373
|
* Returns the architect named 'main' if present, otherwise the first
|
|
332
374
|
* registered architect by name. For multi-architect access, use
|
|
333
|
-
* `getArchitects()` or `getArchitectByName(name)`
|
|
375
|
+
* `getArchitects(workspacePath)` or `getArchitectByName(workspacePath, name)`
|
|
376
|
+
* below.
|
|
377
|
+
*
|
|
378
|
+
* Bugfix #826: scoped by workspace_path.
|
|
334
379
|
*/
|
|
335
|
-
export function getArchitect() {
|
|
380
|
+
export function getArchitect(workspacePath) {
|
|
336
381
|
const db = getDb();
|
|
337
|
-
|
|
382
|
+
const ws = canonicalize(workspacePath);
|
|
383
|
+
let row = db
|
|
384
|
+
.prepare("SELECT * FROM architect WHERE workspace_path = ? AND id = 'main'")
|
|
385
|
+
.get(ws);
|
|
338
386
|
if (!row) {
|
|
339
387
|
// Spec 755: when 'main' is absent, fall back to the first-registered
|
|
340
388
|
// architect (started_at ordering), not the lexicographically-first name.
|
|
341
|
-
row = db
|
|
389
|
+
row = db
|
|
390
|
+
.prepare('SELECT * FROM architect WHERE workspace_path = ? ORDER BY started_at LIMIT 1')
|
|
391
|
+
.get(ws);
|
|
342
392
|
}
|
|
343
393
|
return row ? dbArchitectToArchitectState(row) : null;
|
|
344
394
|
}
|
|
345
395
|
/**
|
|
346
|
-
* Get all architects (Spec 755).
|
|
396
|
+
* Get all architects belonging to a workspace (Spec 755 + Bugfix #826).
|
|
397
|
+
*
|
|
398
|
+
* The architect table is scoped by `workspace_path` (Bugfix #826 migration v11),
|
|
399
|
+
* eliminating the cross-workspace leak by construction: a workspace's
|
|
400
|
+
* `launchInstance` only sees its own architect rows, regardless of which other
|
|
401
|
+
* workspaces this Tower process is serving.
|
|
347
402
|
*/
|
|
348
|
-
export function getArchitects() {
|
|
403
|
+
export function getArchitects(workspacePath) {
|
|
349
404
|
const db = getDb();
|
|
350
|
-
const
|
|
405
|
+
const ws = canonicalize(workspacePath);
|
|
406
|
+
const rows = db
|
|
407
|
+
.prepare('SELECT * FROM architect WHERE workspace_path = ? ORDER BY id')
|
|
408
|
+
.all(ws);
|
|
351
409
|
return rows.map(dbArchitectToArchitectState);
|
|
352
410
|
}
|
|
353
411
|
/**
|
|
354
|
-
* Get a single architect by name (Spec 755).
|
|
412
|
+
* Get a single architect by name within a workspace (Spec 755 + Bugfix #826).
|
|
355
413
|
*/
|
|
356
|
-
export function getArchitectByName(name) {
|
|
414
|
+
export function getArchitectByName(workspacePath, name) {
|
|
357
415
|
const db = getDb();
|
|
358
|
-
const
|
|
416
|
+
const ws = canonicalize(workspacePath);
|
|
417
|
+
const row = db
|
|
418
|
+
.prepare('SELECT * FROM architect WHERE workspace_path = ? AND id = ?')
|
|
419
|
+
.get(ws, name);
|
|
359
420
|
return row ? dbArchitectToArchitectState(row) : null;
|
|
360
421
|
}
|
|
361
422
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluesmith/codev",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "Codev CLI - AI-assisted software development framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"open": "^10.1.0",
|
|
35
35
|
"tree-kill": "^1.2.2",
|
|
36
36
|
"ws": "^8.18.0",
|
|
37
|
-
"@cluesmith/codev-core": "3.1.
|
|
37
|
+
"@cluesmith/codev-core": "3.1.2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@playwright/test": "^1.58.0",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"typescript": "^5.7.2",
|
|
51
51
|
"vitest": "^4.0.15",
|
|
52
52
|
"@cluesmith/codev-dashboard": "0.0.0",
|
|
53
|
-
"@cluesmith/codev-types": "3.1.
|
|
53
|
+
"@cluesmith/codev-types": "3.1.2"
|
|
54
54
|
},
|
|
55
55
|
"engines": {
|
|
56
56
|
"node": ">=20.0.0"
|