@cluesmith/codev 3.2.0 → 3.2.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/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/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 +100 -470
- 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 +65 -55
- 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 +22 -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 +50 -5
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +64 -14
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/state.d.ts +34 -21
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +125 -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/architect-name.d.ts +6 -33
- package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
- package/dist/agent-farm/utils/architect-name.js +7 -62
- package/dist/agent-farm/utils/architect-name.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 +45 -2
- package/dist/agent-farm/utils/harness.d.ts.map +1 -1
- package/dist/agent-farm/utils/harness.js +21 -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 +125 -7
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +25 -3
- 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/package.json +3 -3
- 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/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
|
@@ -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":"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"}
|
package/dist/agent-farm/state.js
CHANGED
|
@@ -5,33 +5,37 @@
|
|
|
5
5
|
* All operations are synchronous and atomic.
|
|
6
6
|
*/
|
|
7
7
|
import path from 'node:path';
|
|
8
|
-
import { existsSync, realpathSync } from 'node:fs';
|
|
9
|
-
import Database from 'better-sqlite3';
|
|
10
8
|
import { getDb, closeDb } from './db/index.js';
|
|
11
9
|
import { dbArchitectToArchitectState, dbBuilderToBuilder, dbUtilToUtilTerminal, dbAnnotationToAnnotation, } from './db/types.js';
|
|
12
10
|
import { isPortConflictError } from './db/errors.js';
|
|
11
|
+
// Issue #1118: shared workspace-path canonicalization (single source of truth).
|
|
12
|
+
// The architect/builders tables key on `workspace_path`; writers and readers
|
|
13
|
+
// must agree on its exact form, so both layers normalize through this one leaf
|
|
14
|
+
// helper (Bugfix #826 iter-6). Aliased to `canonicalize` for the local callsites.
|
|
15
|
+
import { normalizeWorkspacePath as canonicalize } from './utils/workspace-path.js';
|
|
13
16
|
/**
|
|
14
|
-
*
|
|
17
|
+
* Derive a builder's owning workspace from its worktree path (Issue #1118).
|
|
15
18
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
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).
|
|
19
|
+
* Builder worktrees are always `<workspace>/.builders/<id>`, so the workspace is
|
|
20
|
+
* the path prefix before `/.builders/`. Falls back to two-levels-up if the
|
|
21
|
+
* marker is absent (defensive — e.g. an ad-hoc worktree). The result is
|
|
22
|
+
* canonicalized to match the workspace_path normalization used everywhere else,
|
|
23
|
+
* so a builder's row is keyed by the same canonical workspace its architect is.
|
|
27
24
|
*/
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
function deriveWorkspaceFromWorktree(worktree) {
|
|
26
|
+
// lastIndexOf, not indexOf: the workspace is the prefix before the FINAL
|
|
27
|
+
// `/.builders/` — robust when the path itself contains an earlier `.builders`
|
|
28
|
+
// segment (e.g. a builder worktree nested under another).
|
|
29
|
+
const marker = '/.builders/';
|
|
30
|
+
const idx = worktree.lastIndexOf(marker);
|
|
31
|
+
let root;
|
|
32
|
+
if (idx >= 0) {
|
|
33
|
+
root = worktree.slice(0, idx);
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
else {
|
|
36
|
+
root = path.dirname(path.dirname(worktree));
|
|
34
37
|
}
|
|
38
|
+
return canonicalize(root);
|
|
35
39
|
}
|
|
36
40
|
/**
|
|
37
41
|
* Load complete state from database
|
|
@@ -43,9 +47,10 @@ function canonicalize(workspacePath) {
|
|
|
43
47
|
* can enumerate ALL architects without re-querying. Main is always
|
|
44
48
|
* `architects[0]` when present.
|
|
45
49
|
*
|
|
46
|
-
* Bugfix #826:
|
|
47
|
-
*
|
|
48
|
-
*
|
|
50
|
+
* Bugfix #826: takes a `workspacePath` and scopes the architect read by
|
|
51
|
+
* `workspace_path`. Issue #1118: `builders` is now workspace-scoped too (composite
|
|
52
|
+
* PK), so its read is scoped by the same `workspace_path`. `utils` and
|
|
53
|
+
* `annotations` remain global (UUID-keyed, runtime-ephemeral).
|
|
49
54
|
*/
|
|
50
55
|
export function loadState(workspacePath) {
|
|
51
56
|
const db = getDb();
|
|
@@ -56,8 +61,8 @@ export function loadState(workspacePath) {
|
|
|
56
61
|
// The ORDER BY uses `id != 'main'` so that 'main' sorts first
|
|
57
62
|
// (0 < 1 with this expression), then started_at ASC for siblings.
|
|
58
63
|
//
|
|
59
|
-
// Bugfix #826: scoped by workspace_path so
|
|
60
|
-
//
|
|
64
|
+
// Bugfix #826 / Issue #1118: scoped by workspace_path so the single shared
|
|
65
|
+
// global.db (which holds every workspace's architect rows) returns only the
|
|
61
66
|
// architects belonging to the requested workspace.
|
|
62
67
|
const architectRows = db.prepare("SELECT * FROM architect WHERE workspace_path = ? ORDER BY (id != 'main'), started_at").all(ws);
|
|
63
68
|
const architects = architectRows.map(dbArchitectToArchitectState);
|
|
@@ -65,8 +70,11 @@ export function loadState(workspacePath) {
|
|
|
65
70
|
// else the first-registered architect by started_at). Preserves the legacy
|
|
66
71
|
// /api/state contract.
|
|
67
72
|
const architect = architects[0] ?? null;
|
|
68
|
-
// Load builders
|
|
69
|
-
|
|
73
|
+
// Load builders. Issue #1118: builders are now workspace-scoped (composite PK
|
|
74
|
+
// with workspace_path), so scope the read to this workspace — consistent with
|
|
75
|
+
// the architect read above, and correct now that one shared DB holds every
|
|
76
|
+
// workspace's builders.
|
|
77
|
+
const builderRows = db.prepare('SELECT * FROM builders WHERE workspace_path = ? ORDER BY started_at').all(ws);
|
|
70
78
|
const builders = builderRows.map(dbBuilderToBuilder);
|
|
71
79
|
// Load utils
|
|
72
80
|
const utilRows = db.prepare('SELECT * FROM utils ORDER BY started_at').all();
|
|
@@ -101,13 +109,14 @@ export function setArchitect(workspacePath, architect) {
|
|
|
101
109
|
}
|
|
102
110
|
else {
|
|
103
111
|
db.prepare(`
|
|
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)
|
|
112
|
+
INSERT OR REPLACE INTO architect (workspace_path, id, pid, port, cmd, started_at, terminal_id, session_id)
|
|
113
|
+
VALUES (@workspacePath, 'main', 0, 0, @cmd, @startedAt, @terminalId, @sessionId)
|
|
106
114
|
`).run({
|
|
107
115
|
workspacePath: ws,
|
|
108
116
|
cmd: architect.cmd,
|
|
109
117
|
startedAt: architect.startedAt,
|
|
110
118
|
terminalId: architect.terminalId ?? null,
|
|
119
|
+
sessionId: architect.sessionId ?? null,
|
|
111
120
|
});
|
|
112
121
|
}
|
|
113
122
|
}
|
|
@@ -127,14 +136,15 @@ export function setArchitectByName(workspacePath, name, architect) {
|
|
|
127
136
|
return;
|
|
128
137
|
}
|
|
129
138
|
db.prepare(`
|
|
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)
|
|
139
|
+
INSERT OR REPLACE INTO architect (workspace_path, id, pid, port, cmd, started_at, terminal_id, session_id)
|
|
140
|
+
VALUES (@workspacePath, @name, 0, 0, @cmd, @startedAt, @terminalId, @sessionId)
|
|
132
141
|
`).run({
|
|
133
142
|
workspacePath: ws,
|
|
134
143
|
name,
|
|
135
144
|
cmd: architect.cmd,
|
|
136
145
|
startedAt: architect.startedAt,
|
|
137
146
|
terminalId: architect.terminalId ?? null,
|
|
147
|
+
sessionId: architect.sessionId ?? null,
|
|
138
148
|
});
|
|
139
149
|
}
|
|
140
150
|
/**
|
|
@@ -143,16 +153,19 @@ export function setArchitectByName(workspacePath, name, architect) {
|
|
|
143
153
|
*/
|
|
144
154
|
export function upsertBuilder(builder) {
|
|
145
155
|
const db = getDb();
|
|
156
|
+
// Issue #1118: derive the owning workspace from the worktree so the row is
|
|
157
|
+
// keyed by (workspace_path, id) — letting the same id exist in two workspaces.
|
|
158
|
+
const ws = deriveWorkspaceFromWorktree(builder.worktree);
|
|
146
159
|
db.prepare(`
|
|
147
160
|
INSERT INTO builders (
|
|
148
|
-
id, name, port, pid, status, phase, worktree, branch,
|
|
161
|
+
workspace_path, id, name, port, pid, status, phase, worktree, branch,
|
|
149
162
|
type, task_text, protocol_name, issue_number, terminal_id, spawned_by_architect
|
|
150
163
|
)
|
|
151
164
|
VALUES (
|
|
152
|
-
@id, @name, 0, 0, @status, @phase, @worktree, @branch,
|
|
165
|
+
@workspacePath, @id, @name, 0, 0, @status, @phase, @worktree, @branch,
|
|
153
166
|
@type, @taskText, @protocolName, @issueNumber, @terminalId, @spawnedByArchitect
|
|
154
167
|
)
|
|
155
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
168
|
+
ON CONFLICT(workspace_path, id) DO UPDATE SET
|
|
156
169
|
name = excluded.name,
|
|
157
170
|
status = excluded.status,
|
|
158
171
|
phase = excluded.phase,
|
|
@@ -165,6 +178,7 @@ export function upsertBuilder(builder) {
|
|
|
165
178
|
terminal_id = excluded.terminal_id,
|
|
166
179
|
spawned_by_architect = COALESCE(excluded.spawned_by_architect, builders.spawned_by_architect)
|
|
167
180
|
`).run({
|
|
181
|
+
workspacePath: ws,
|
|
168
182
|
id: builder.id,
|
|
169
183
|
name: builder.name,
|
|
170
184
|
status: builder.status,
|
|
@@ -183,32 +197,66 @@ export function upsertBuilder(builder) {
|
|
|
183
197
|
* Remove a builder
|
|
184
198
|
* Note: This is now synchronous
|
|
185
199
|
*/
|
|
186
|
-
export function removeBuilder(id) {
|
|
200
|
+
export function removeBuilder(id, workspacePath) {
|
|
187
201
|
const db = getDb();
|
|
188
|
-
|
|
202
|
+
// Issue #1118: when a workspace is in scope, delete the workspace-scoped row
|
|
203
|
+
// (the same id can exist in another workspace). Without one, fall back to
|
|
204
|
+
// delete-by-id (legacy callers; ids were unique within the old per-file DB).
|
|
205
|
+
if (workspacePath) {
|
|
206
|
+
db.prepare('DELETE FROM builders WHERE workspace_path = ? AND id = ?').run(canonicalize(workspacePath), id);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
db.prepare('DELETE FROM builders WHERE id = ?').run(id);
|
|
210
|
+
}
|
|
189
211
|
}
|
|
190
212
|
/**
|
|
191
|
-
* Get a single builder by ID
|
|
213
|
+
* Get a single builder by ID.
|
|
214
|
+
* Issue #1118: pass `workspacePath` to disambiguate when the same id may exist
|
|
215
|
+
* in multiple workspaces; without it, returns the first matching row.
|
|
192
216
|
*/
|
|
193
|
-
export function getBuilder(id) {
|
|
217
|
+
export function getBuilder(id, workspacePath) {
|
|
194
218
|
const db = getDb();
|
|
195
|
-
|
|
196
|
-
|
|
219
|
+
let row;
|
|
220
|
+
if (workspacePath) {
|
|
221
|
+
row = db.prepare('SELECT * FROM builders WHERE workspace_path = ? AND id = ?')
|
|
222
|
+
.get(canonicalize(workspacePath), id);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
row = db.prepare('SELECT * FROM builders WHERE id = ?').get(id);
|
|
226
|
+
}
|
|
227
|
+
if (!row)
|
|
228
|
+
return null;
|
|
229
|
+
return dbBuilderToBuilder(row);
|
|
197
230
|
}
|
|
198
231
|
/**
|
|
199
|
-
* Get all builders
|
|
232
|
+
* Get all builders. Issue #1118: pass `workspacePath` to scope to one workspace;
|
|
233
|
+
* omit it for a deliberate cross-workspace read (e.g. Tower global views).
|
|
200
234
|
*/
|
|
201
|
-
export function getBuilders() {
|
|
235
|
+
export function getBuilders(workspacePath) {
|
|
202
236
|
const db = getDb();
|
|
203
|
-
|
|
237
|
+
let rows;
|
|
238
|
+
if (workspacePath) {
|
|
239
|
+
rows = db.prepare('SELECT * FROM builders WHERE workspace_path = ? ORDER BY started_at')
|
|
240
|
+
.all(canonicalize(workspacePath));
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
rows = db.prepare('SELECT * FROM builders ORDER BY started_at').all();
|
|
244
|
+
}
|
|
204
245
|
return rows.map(dbBuilderToBuilder);
|
|
205
246
|
}
|
|
206
247
|
/**
|
|
207
|
-
* Get builders by status
|
|
248
|
+
* Get builders by status. Issue #1118: optional `workspacePath` scopes the read.
|
|
208
249
|
*/
|
|
209
|
-
export function getBuildersByStatus(status) {
|
|
250
|
+
export function getBuildersByStatus(status, workspacePath) {
|
|
210
251
|
const db = getDb();
|
|
211
|
-
|
|
252
|
+
let rows;
|
|
253
|
+
if (workspacePath) {
|
|
254
|
+
rows = db.prepare('SELECT * FROM builders WHERE workspace_path = ? AND status = ? ORDER BY started_at')
|
|
255
|
+
.all(canonicalize(workspacePath), status);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
rows = db.prepare('SELECT * FROM builders WHERE status = ? ORDER BY started_at').all(status);
|
|
259
|
+
}
|
|
212
260
|
return rows.map(dbBuilderToBuilder);
|
|
213
261
|
}
|
|
214
262
|
/**
|
|
@@ -335,23 +383,27 @@ export function clearState() {
|
|
|
335
383
|
* Spec 786: clear runtime state but preserve the architect registry.
|
|
336
384
|
*
|
|
337
385
|
* Used by `afx workspace stop` so sibling architects survive a graceful stop/
|
|
338
|
-
* start cycle. The `architect` table is the durable registration; `builders
|
|
339
|
-
*
|
|
386
|
+
* start cycle. The `architect` table is the durable registration; `builders`
|
|
387
|
+
* are the runtime concern and get wiped.
|
|
388
|
+
*
|
|
389
|
+
* Issue #1118: now that all workspaces share one `global.db`, this MUST be
|
|
390
|
+
* scoped by `workspace_path` — an unscoped `DELETE FROM builders` would wipe
|
|
391
|
+
* every other workspace's builders when one workspace stops. `builders` is
|
|
392
|
+
* workspace-scoped (composite PK), so the delete filters by `workspace_path`.
|
|
393
|
+
* `utils`/`annotations` are global (UUID-keyed, no workspace column) and
|
|
394
|
+
* vestigial (no producers), so they are intentionally left untouched here to
|
|
395
|
+
* avoid a cross-workspace wipe; the full-wipe `clearState()` still clears them.
|
|
340
396
|
*
|
|
341
397
|
* `clearState()` (the full-wipe variant) is preserved for callers that genuinely
|
|
342
|
-
* want everything gone (uninstall / nuke flows
|
|
398
|
+
* want everything gone (uninstall / nuke flows).
|
|
343
399
|
*/
|
|
344
|
-
export function clearRuntime() {
|
|
400
|
+
export function clearRuntime(workspacePath) {
|
|
345
401
|
const db = getDb();
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
db.prepare('DELETE FROM utils').run();
|
|
349
|
-
db.prepare('DELETE FROM annotations').run();
|
|
350
|
-
});
|
|
351
|
-
clear();
|
|
402
|
+
const ws = canonicalize(workspacePath);
|
|
403
|
+
db.prepare('DELETE FROM builders WHERE workspace_path = ?').run(ws);
|
|
352
404
|
}
|
|
353
405
|
/**
|
|
354
|
-
* Spec 786: remove a single architect by name from `
|
|
406
|
+
* Spec 786: remove a single architect by name from the `architect` table.
|
|
355
407
|
*
|
|
356
408
|
* Idempotent — no-op if the named row is absent. Used by `remove-architect`
|
|
357
409
|
* (Phase 4) and the permanent-exit handler (Phase 3 / OQ-B).
|
|
@@ -430,33 +482,27 @@ export function getArchitectByName(workspacePath, name) {
|
|
|
430
482
|
* This three-valued return cleanly distinguishes "legacy builder" from
|
|
431
483
|
* "non-builder sender." Used by the Phase 3 affinity-aware resolver.
|
|
432
484
|
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
*
|
|
436
|
-
*
|
|
437
|
-
*
|
|
438
|
-
*
|
|
485
|
+
* Issue #1118: builders now live in the single shared global.db, scoped by
|
|
486
|
+
* `workspace_path`. When `workspacePath` is supplied (Tower, serving multiple
|
|
487
|
+
* workspaces), the lookup is scoped `WHERE workspace_path = ? AND id = ?` — this
|
|
488
|
+
* is load-bearing, since the same builder id can exist in two workspaces and the
|
|
489
|
+
* spoofing check must resolve to the *correct* workspace's spawning architect.
|
|
490
|
+
* When omitted (a CLI caller already inside one workspace), it falls back to
|
|
491
|
+
* match by id alone.
|
|
439
492
|
*/
|
|
440
493
|
export function lookupBuilderSpawningArchitect(builderId, workspacePath) {
|
|
494
|
+
const db = getDb();
|
|
495
|
+
let row;
|
|
441
496
|
if (workspacePath) {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
if (!row)
|
|
451
|
-
return undefined;
|
|
452
|
-
return row.spawned_by_architect;
|
|
453
|
-
}
|
|
454
|
-
finally {
|
|
455
|
-
wsDb.close();
|
|
456
|
-
}
|
|
497
|
+
row = db
|
|
498
|
+
.prepare('SELECT spawned_by_architect FROM builders WHERE workspace_path = ? AND id = ?')
|
|
499
|
+
.get(canonicalize(workspacePath), builderId);
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
row = db
|
|
503
|
+
.prepare('SELECT spawned_by_architect FROM builders WHERE id = ?')
|
|
504
|
+
.get(builderId);
|
|
457
505
|
}
|
|
458
|
-
const db = getDb();
|
|
459
|
-
const row = db.prepare('SELECT spawned_by_architect FROM builders WHERE id = ?').get(builderId);
|
|
460
506
|
if (!row)
|
|
461
507
|
return undefined;
|
|
462
508
|
return row.spawned_by_architect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/agent-farm/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ export interface ArchitectState {
|
|
|
35
35
|
cmd: string;
|
|
36
36
|
startedAt: string;
|
|
37
37
|
terminalId?: string;
|
|
38
|
+
sessionId?: string;
|
|
38
39
|
}
|
|
39
40
|
export interface DashboardState {
|
|
40
41
|
architect: ArchitectState | null;
|
|
@@ -208,6 +209,19 @@ export interface UserConfig {
|
|
|
208
209
|
url: string;
|
|
209
210
|
}>;
|
|
210
211
|
};
|
|
212
|
+
/**
|
|
213
|
+
* Activity hooks: URL sinks the VSCode extension fires when an abstract event
|
|
214
|
+
* occurs (`window-focus`, `builder-active`). Integration-agnostic — the
|
|
215
|
+
* destination url (a deep link, a companion app, a webhook launcher) is yours.
|
|
216
|
+
* Like other array settings, a higher config layer REPLACES a lower one's list,
|
|
217
|
+
* so define them in a single layer: `~/.codev/config.json` for a personal hook
|
|
218
|
+
* across all repos, or `.codev/config.local.json` for a per-repo personal one.
|
|
219
|
+
*/
|
|
220
|
+
activityHooks?: Array<{
|
|
221
|
+
on?: Array<'window-focus' | 'builder-active'>;
|
|
222
|
+
url?: string;
|
|
223
|
+
background?: boolean;
|
|
224
|
+
}>;
|
|
211
225
|
}
|
|
212
226
|
/**
|
|
213
227
|
* Resolved shell commands (after processing config hierarchy)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-farm/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEjG,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-farm/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,40 +5,13 @@
|
|
|
5
5
|
* - autoNumberArchitectName: returns the next available `architect-<N>` name
|
|
6
6
|
* (smallest unused integer ≥ 2) given the set of already-registered names.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* `validateArchitectName`, `autoNumberArchitectName`, and the name constants
|
|
9
|
+
* live in codev-core (Issue 841) so the VS Code extension's "Add Architect"
|
|
10
|
+
* InputBox validates with the exact same rule Tower enforces server-side; we
|
|
11
|
+
* re-export them here so existing agent-farm callsites are unaffected.
|
|
12
|
+
* `currentArchitectName` reads the process env and stays local to this package.
|
|
11
13
|
*/
|
|
12
|
-
export
|
|
13
|
-
export declare const MAX_ARCHITECT_NAME_LENGTH = 64;
|
|
14
|
-
/** Reserved default for the singleton case. */
|
|
15
|
-
export declare const DEFAULT_ARCHITECT_NAME = "main";
|
|
16
|
-
/**
|
|
17
|
-
* Validate an architect name. Returns `null` if valid, or a human-readable
|
|
18
|
-
* error message otherwise. Callers should treat a non-null return as "reject
|
|
19
|
-
* with this message" — the text is intentionally operator-facing.
|
|
20
|
-
*
|
|
21
|
-
* Spec 786: the name `main` is reserved for the workspace's default architect
|
|
22
|
-
* and is rejected here. Pre-#786, `main` was rejected only by collision check
|
|
23
|
-
* at the add-architect call site (which depended on a race-free in-memory map);
|
|
24
|
-
* rejecting in the pure validator is more robust.
|
|
25
|
-
*/
|
|
26
|
-
export declare function validateArchitectName(name: string): string | null;
|
|
27
|
-
/**
|
|
28
|
-
* Compute the next auto-numbered architect name, given the set of names
|
|
29
|
-
* already in use. Uses "smallest unused integer ≥ 2" semantics:
|
|
30
|
-
*
|
|
31
|
-
* - {} → 'architect-2'
|
|
32
|
-
* - {'main'} → 'architect-2'
|
|
33
|
-
* - {'main', 'architect-2'} → 'architect-3'
|
|
34
|
-
* - {'main', 'architect-3'} → 'architect-2' (fills the gap)
|
|
35
|
-
* - {'main', 'architect-2', 'architect-3'} → 'architect-4'
|
|
36
|
-
* - {'main', 'sibling'} → 'architect-2' (custom names don't shift numbering)
|
|
37
|
-
*
|
|
38
|
-
* Custom names (anything not matching `architect-<N>` exactly) are ignored
|
|
39
|
-
* by the numbering loop — they're not part of the auto-numbered sequence.
|
|
40
|
-
*/
|
|
41
|
-
export declare function autoNumberArchitectName(existingNames: Iterable<string>): string;
|
|
14
|
+
export { ARCHITECT_NAME_PATTERN, MAX_ARCHITECT_NAME_LENGTH, DEFAULT_ARCHITECT_NAME, validateArchitectName, autoNumberArchitectName, } from '@cluesmith/codev-core/architect-name';
|
|
42
15
|
/**
|
|
43
16
|
* Resolve the *current* terminal session's architect name (Spec 1057).
|
|
44
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect-name.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/utils/architect-name.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"architect-name.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/utils/architect-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGjF"}
|
|
@@ -5,69 +5,14 @@
|
|
|
5
5
|
* - autoNumberArchitectName: returns the next available `architect-<N>` name
|
|
6
6
|
* (smallest unused integer ≥ 2) given the set of already-registered names.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* `validateArchitectName`, `autoNumberArchitectName`, and the name constants
|
|
9
|
+
* live in codev-core (Issue 841) so the VS Code extension's "Add Architect"
|
|
10
|
+
* InputBox validates with the exact same rule Tower enforces server-side; we
|
|
11
|
+
* re-export them here so existing agent-farm callsites are unaffected.
|
|
12
|
+
* `currentArchitectName` reads the process env and stays local to this package.
|
|
11
13
|
*/
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
/** Reserved default for the singleton case. */
|
|
15
|
-
export const DEFAULT_ARCHITECT_NAME = 'main';
|
|
16
|
-
/**
|
|
17
|
-
* Validate an architect name. Returns `null` if valid, or a human-readable
|
|
18
|
-
* error message otherwise. Callers should treat a non-null return as "reject
|
|
19
|
-
* with this message" — the text is intentionally operator-facing.
|
|
20
|
-
*
|
|
21
|
-
* Spec 786: the name `main` is reserved for the workspace's default architect
|
|
22
|
-
* and is rejected here. Pre-#786, `main` was rejected only by collision check
|
|
23
|
-
* at the add-architect call site (which depended on a race-free in-memory map);
|
|
24
|
-
* rejecting in the pure validator is more robust.
|
|
25
|
-
*/
|
|
26
|
-
export function validateArchitectName(name) {
|
|
27
|
-
if (!name) {
|
|
28
|
-
return 'Architect name cannot be empty.';
|
|
29
|
-
}
|
|
30
|
-
if (name === DEFAULT_ARCHITECT_NAME) {
|
|
31
|
-
return `Architect name '${DEFAULT_ARCHITECT_NAME}' is reserved for the workspace's default architect.`;
|
|
32
|
-
}
|
|
33
|
-
if (name.length > MAX_ARCHITECT_NAME_LENGTH) {
|
|
34
|
-
return `Architect name must be at most ${MAX_ARCHITECT_NAME_LENGTH} characters (got ${name.length}).`;
|
|
35
|
-
}
|
|
36
|
-
if (!ARCHITECT_NAME_PATTERN.test(name)) {
|
|
37
|
-
return `Architect name '${name}' is invalid. Names must match [a-z][a-z0-9-]* (lowercase letter, then lowercase letters / digits / dashes).`;
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Compute the next auto-numbered architect name, given the set of names
|
|
43
|
-
* already in use. Uses "smallest unused integer ≥ 2" semantics:
|
|
44
|
-
*
|
|
45
|
-
* - {} → 'architect-2'
|
|
46
|
-
* - {'main'} → 'architect-2'
|
|
47
|
-
* - {'main', 'architect-2'} → 'architect-3'
|
|
48
|
-
* - {'main', 'architect-3'} → 'architect-2' (fills the gap)
|
|
49
|
-
* - {'main', 'architect-2', 'architect-3'} → 'architect-4'
|
|
50
|
-
* - {'main', 'sibling'} → 'architect-2' (custom names don't shift numbering)
|
|
51
|
-
*
|
|
52
|
-
* Custom names (anything not matching `architect-<N>` exactly) are ignored
|
|
53
|
-
* by the numbering loop — they're not part of the auto-numbered sequence.
|
|
54
|
-
*/
|
|
55
|
-
export function autoNumberArchitectName(existingNames) {
|
|
56
|
-
const usedNumbers = new Set();
|
|
57
|
-
for (const name of existingNames) {
|
|
58
|
-
const match = /^architect-(\d+)$/.exec(name);
|
|
59
|
-
if (match) {
|
|
60
|
-
const n = Number.parseInt(match[1], 10);
|
|
61
|
-
if (Number.isFinite(n) && n >= 2) {
|
|
62
|
-
usedNumbers.add(n);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
let n = 2;
|
|
67
|
-
while (usedNumbers.has(n))
|
|
68
|
-
n++;
|
|
69
|
-
return `architect-${n}`;
|
|
70
|
-
}
|
|
14
|
+
export { ARCHITECT_NAME_PATTERN, MAX_ARCHITECT_NAME_LENGTH, DEFAULT_ARCHITECT_NAME, validateArchitectName, autoNumberArchitectName, } from '@cluesmith/codev-core/architect-name';
|
|
15
|
+
import { DEFAULT_ARCHITECT_NAME } from '@cluesmith/codev-core/architect-name';
|
|
71
16
|
/**
|
|
72
17
|
* Resolve the *current* terminal session's architect name (Spec 1057).
|
|
73
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect-name.js","sourceRoot":"","sources":["../../../src/agent-farm/utils/architect-name.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"architect-name.js","sourceRoot":"","sources":["../../../src/agent-farm/utils/architect-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,MAAM,KAAK,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,KAAK,IAAI,sBAAsB,CAAC;AACzC,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { Config, ResolvedCommands } from '../types.js';
|
|
5
5
|
import { type HarnessProvider } from './harness.js';
|
|
6
|
-
import type { ResolvedWorktreeConfig, WorktreeDevUrl } from '@cluesmith/codev-types';
|
|
6
|
+
import type { ResolvedWorktreeConfig, WorktreeDevUrl, ResolvedActivityHooks } from '@cluesmith/codev-types';
|
|
7
7
|
export type { ResolvedWorktreeConfig, WorktreeDevUrl };
|
|
8
8
|
/**
|
|
9
9
|
* Check if we're in a git worktree and return the main repo root if so
|
|
@@ -33,11 +33,22 @@ export declare function getResolvedCommands(workspaceRoot?: string): ResolvedCom
|
|
|
33
33
|
/**
|
|
34
34
|
* Get the resolved harness provider for the architect shell.
|
|
35
35
|
* Resolution: explicit architectHarness → auto-detect from architect command → default claude.
|
|
36
|
+
*
|
|
37
|
+
* The command auto-detect source is the *override-aware* resolved command
|
|
38
|
+
* (getResolvedCommands → cliOverrides / TOWER_ARCHITECT_CMD / config), not the
|
|
39
|
+
* raw config value. Without this, `--architect-cmd gemini` / `TOWER_ARCHITECT_CMD=gemini`
|
|
40
|
+
* with no matching harness config would launch gemini but resolve the claude
|
|
41
|
+
* harness, re-arming the #929 resume crash-loop (claude buildResume injecting
|
|
42
|
+
* `--resume <stale-claude-uuid>` into a non-claude command).
|
|
36
43
|
*/
|
|
37
44
|
export declare function getArchitectHarness(workspaceRoot?: string): HarnessProvider;
|
|
38
45
|
/**
|
|
39
46
|
* Get the resolved harness provider for the builder shell.
|
|
40
47
|
* Resolution: explicit builderHarness → auto-detect from builder command → default claude.
|
|
48
|
+
*
|
|
49
|
+
* Like getArchitectHarness, the command auto-detect source is the override-aware
|
|
50
|
+
* resolved command (so `--builder-cmd gemini` with no matching harness config
|
|
51
|
+
* resolves the gemini harness, not claude — see #929).
|
|
41
52
|
*/
|
|
42
53
|
export declare function getBuilderHarness(workspaceRoot?: string): HarnessProvider;
|
|
43
54
|
/**
|
|
@@ -47,6 +58,18 @@ export declare function getBuilderHarness(workspaceRoot?: string): HarnessProvid
|
|
|
47
58
|
* commands, `afx dev` errors with a clear message pointing at the config).
|
|
48
59
|
*/
|
|
49
60
|
export declare function getWorktreeConfig(workspaceRoot?: string): ResolvedWorktreeConfig;
|
|
61
|
+
/**
|
|
62
|
+
* Resolved `activityHooks` for a workspace.
|
|
63
|
+
*
|
|
64
|
+
* SECURITY: hooks EXECUTE (the VSCode extension opens their url), so they are
|
|
65
|
+
* resolved ONLY from the user's trusted personal config layers — `~/.codev/config.json`
|
|
66
|
+
* (global, across all repos) and `<root>/.codev/config.local.json` (per-engineer,
|
|
67
|
+
* gitignored) — and NEVER from the committed `.codev/config.json`, which a cloned repo
|
|
68
|
+
* controls (a committed hook would be a zero-click RCE). The project-local layer
|
|
69
|
+
* replaces the global one when present. Malformed entries (no url, or no valid `on`
|
|
70
|
+
* event) are dropped.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getActivityHooks(workspaceRoot?: string): ResolvedActivityHooks;
|
|
50
73
|
/**
|
|
51
74
|
* Build configuration for the current project
|
|
52
75
|
*/
|