@openrig/cli 0.1.1 → 0.1.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/daemon/assets/guidance/{using-openrig.md → openrig-start.md} +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +4 -24
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +4 -22
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +2 -1
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts +2 -0
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +22 -4
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/cwd-resolution.d.ts +5 -0
- package/daemon/dist/domain/cwd-resolution.d.ts.map +1 -0
- package/daemon/dist/domain/cwd-resolution.js +29 -0
- package/daemon/dist/domain/cwd-resolution.js.map +1 -0
- package/daemon/dist/domain/managed-blocks.d.ts +18 -0
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -0
- package/daemon/dist/domain/managed-blocks.js +61 -0
- package/daemon/dist/domain/managed-blocks.js.map +1 -0
- package/daemon/dist/domain/profile-resolver.d.ts +2 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +7 -2
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts +2 -0
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +35 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +33 -12
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +1 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +12 -0
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/routes/bootstrap.js +12 -2
- package/daemon/dist/routes/bootstrap.js.map +1 -1
- package/daemon/dist/routes/up.js +11 -2
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/specs/agents/analyst/agent.yaml +9 -1
- package/daemon/specs/agents/design/agent.yaml +9 -1
- package/daemon/specs/agents/impl/agent.yaml +9 -1
- package/daemon/specs/agents/lead/agent.yaml +9 -1
- package/daemon/specs/agents/qa/agent.yaml +9 -1
- package/daemon/specs/agents/reviewer/agent.yaml +9 -1
- package/daemon/specs/agents/shared/agent.yaml +10 -0
- package/daemon/specs/agents/shared/skills/openrig-user/SKILL.md +264 -0
- package/daemon/specs/agents/synthesizer/agent.yaml +9 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +7 -1
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +11 -3
- package/dist/commands/up.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +2 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
- package/ui/dist/assets/{index-CrjgHtlk.js → index-VA_A8dpm.js} +1 -1
- package/ui/dist/index.html +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const MANAGED_BLOCK_START: (id: string) => string;
|
|
2
|
+
export declare const MANAGED_BLOCK_END: (id: string) => string;
|
|
3
|
+
export interface ManagedBlockMergeFsOps {
|
|
4
|
+
exists(path: string): boolean;
|
|
5
|
+
readFile(path: string): string;
|
|
6
|
+
writeFile(path: string, content: string): void;
|
|
7
|
+
mkdirp?(path: string): void;
|
|
8
|
+
}
|
|
9
|
+
export interface ManagedBlockCleanupFsOps extends ManagedBlockMergeFsOps {
|
|
10
|
+
deleteFile(path: string): void;
|
|
11
|
+
}
|
|
12
|
+
export interface MergeManagedBlockOptions {
|
|
13
|
+
replaceBlockIds?: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function mergeManagedBlock(fs: ManagedBlockMergeFsOps, targetPath: string, blockId: string, content: string, options?: MergeManagedBlockOptions): void;
|
|
16
|
+
export declare function removeManagedBlocksFromFile(fs: ManagedBlockCleanupFsOps, targetPath: string): boolean;
|
|
17
|
+
export declare function stripManagedBlocks(content: string): string;
|
|
18
|
+
//# sourceMappingURL=managed-blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-blocks.d.ts","sourceRoot":"","sources":["../../src/domain/managed-blocks.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAI,IAAI,MAAM,WAAiD,CAAC;AAChG,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,WAA+C,CAAC;AAE5F,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,sBAAsB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB,GACjC,IAAI,CAmCN;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAkBrG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK1D"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import nodePath from "node:path";
|
|
2
|
+
export const MANAGED_BLOCK_START = (id) => `<!-- BEGIN RIGGED MANAGED BLOCK: ${id} -->`;
|
|
3
|
+
export const MANAGED_BLOCK_END = (id) => `<!-- END RIGGED MANAGED BLOCK: ${id} -->`;
|
|
4
|
+
export function mergeManagedBlock(fs, targetPath, blockId, content, options) {
|
|
5
|
+
const begin = MANAGED_BLOCK_START(blockId);
|
|
6
|
+
const end = MANAGED_BLOCK_END(blockId);
|
|
7
|
+
const block = `${begin}\n${content}\n${end}`;
|
|
8
|
+
if (!fs.exists(targetPath)) {
|
|
9
|
+
fs.mkdirp?.(nodePath.dirname(targetPath));
|
|
10
|
+
fs.writeFile(targetPath, block);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const existing = fs.readFile(targetPath);
|
|
14
|
+
const allReplaceIds = Array.from(new Set([blockId, ...(options?.replaceBlockIds ?? [])]));
|
|
15
|
+
const replaceableIds = allReplaceIds.filter((id) => {
|
|
16
|
+
const candidateBegin = MANAGED_BLOCK_START(id);
|
|
17
|
+
const candidateEnd = MANAGED_BLOCK_END(id);
|
|
18
|
+
return existing.includes(candidateBegin) && existing.includes(candidateEnd);
|
|
19
|
+
});
|
|
20
|
+
if (replaceableIds.length > 0) {
|
|
21
|
+
let updated = existing;
|
|
22
|
+
for (const id of replaceableIds) {
|
|
23
|
+
const candidateBegin = MANAGED_BLOCK_START(id);
|
|
24
|
+
const candidateEnd = MANAGED_BLOCK_END(id);
|
|
25
|
+
const regex = new RegExp(`${escapeRegex(candidateBegin)}[\\s\\S]*?${escapeRegex(candidateEnd)}`, "g");
|
|
26
|
+
updated = updated.replace(regex, id === blockId ? block : "");
|
|
27
|
+
}
|
|
28
|
+
if (!updated.includes(begin) || !updated.includes(end)) {
|
|
29
|
+
updated = `${updated.trim()}\n\n${block}`.trim();
|
|
30
|
+
}
|
|
31
|
+
fs.writeFile(targetPath, `${updated}\n`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
fs.writeFile(targetPath, `${existing}\n\n${block}`);
|
|
35
|
+
}
|
|
36
|
+
export function removeManagedBlocksFromFile(fs, targetPath) {
|
|
37
|
+
if (!fs.exists(targetPath)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const original = fs.readFile(targetPath);
|
|
41
|
+
const cleaned = stripManagedBlocks(original);
|
|
42
|
+
if (cleaned.length === 0) {
|
|
43
|
+
fs.deleteFile(targetPath);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (cleaned !== original.trim()) {
|
|
47
|
+
fs.writeFile(targetPath, `${cleaned}\n`);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
export function stripManagedBlocks(content) {
|
|
53
|
+
return content
|
|
54
|
+
.replace(/(?:\n|^)\s*<!-- BEGIN RIGGED MANAGED BLOCK: [\s\S]*?<!-- END RIGGED MANAGED BLOCK: [^>]+ -->\s*(?=\n|$)/g, "\n")
|
|
55
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
56
|
+
.trim();
|
|
57
|
+
}
|
|
58
|
+
function escapeRegex(value) {
|
|
59
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=managed-blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-blocks.js","sourceRoot":"","sources":["../../src/domain/managed-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-resolver.d.ts","sourceRoot":"","sources":["../../src/domain/profile-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile-resolver.d.ts","sourceRoot":"","sources":["../../src/domain/profile-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAC8B,iBAAiB,EACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EACnD,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EACjF,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKhF,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe,CAAC;CAChG;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAwBpC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,gBAAgB,CAyE1E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import nodePath from "node:path";
|
|
1
2
|
import { resolveStartup } from "./startup-resolver.js";
|
|
2
3
|
// -- Constants --
|
|
3
4
|
const RESOURCE_CATEGORIES = ["skills", "guidance", "subagents", "hooks", "runtimeResources"];
|
|
@@ -46,7 +47,11 @@ export function resolveNodeConfig(ctx) {
|
|
|
46
47
|
?? profile.preferences?.model
|
|
47
48
|
?? spec.defaults?.model;
|
|
48
49
|
// 6. Resolve cwd (member authoritative, required)
|
|
49
|
-
const cwd =
|
|
50
|
+
const cwd = ctx.cwdOverride
|
|
51
|
+
? nodePath.resolve(ctx.cwdOverride)
|
|
52
|
+
: ctx.specRoot
|
|
53
|
+
? (nodePath.isAbsolute(member.cwd) ? member.cwd : nodePath.resolve(ctx.specRoot, member.cwd))
|
|
54
|
+
: member.cwd;
|
|
50
55
|
// 7. Resolve restorePolicy with narrowing
|
|
51
56
|
const restorePolicyResult = resolveRestorePolicy(spec, profile, member);
|
|
52
57
|
if (!restorePolicyResult.ok) {
|
|
@@ -114,7 +119,7 @@ function buildResourcePool(base, imports) {
|
|
|
114
119
|
// If a base resource exists, the base owns the unqualified id (no collision).
|
|
115
120
|
// If multiple imports share the same unqualified id (no base), it's ambiguous.
|
|
116
121
|
if (!pool[cat].has(r.id)) {
|
|
117
|
-
pool[cat].set(r.id, [{ effectiveId:
|
|
122
|
+
pool[cat].set(r.id, [{ effectiveId: r.id, sourceSpec: imp.spec.name, sourcePath: imp.sourcePath, resource: r }]);
|
|
118
123
|
}
|
|
119
124
|
else {
|
|
120
125
|
const existing = pool[cat].get(r.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-resolver.js","sourceRoot":"","sources":["../../src/domain/profile-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile-resolver.js","sourceRoot":"","sources":["../../src/domain/profile-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,8 @@ export declare class RigTeardownOrchestrator {
|
|
|
46
46
|
private atomicDelete;
|
|
47
47
|
/** Get latest session per node, filtered to live statuses */
|
|
48
48
|
private getLatestLiveSessions;
|
|
49
|
+
private cleanupManagedGuidanceFiles;
|
|
50
|
+
private cleanupManagedGuidanceFileForNode;
|
|
49
51
|
}
|
|
50
52
|
export {};
|
|
51
53
|
//# sourceMappingURL=rig-teardown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rig-teardown.d.ts","sourceRoot":"","sources":["../../src/domain/rig-teardown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"rig-teardown.d.ts","sourceRoot":"","sources":["../../src/domain/rig-teardown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAK9E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;sFACkF;IAClF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAaD;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAe;gBAEf,IAAI,EAAE,YAAY;IASxB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAgF9E,qEAAqE;IACrE,OAAO,CAAC,iBAAiB;IAQzB,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAepB,6DAA6D;IAC7D,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,iCAAiC;CAmB1C"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { RigNotFoundError } from "./errors.js";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import nodePath from "node:path";
|
|
4
|
+
import { removeManagedBlocksFromFile } from "./managed-blocks.js";
|
|
2
5
|
/**
|
|
3
6
|
* Graceful rig shutdown. Kills tmux sessions, clears bindings, marks
|
|
4
7
|
* sessions exited. Optionally snapshots before teardown, optionally
|
|
@@ -32,6 +35,7 @@ export class RigTeardownOrchestrator {
|
|
|
32
35
|
const liveSessions = this.getLatestLiveSessions(rigId);
|
|
33
36
|
// 3. Check if already stopped
|
|
34
37
|
if (liveSessions.length === 0) {
|
|
38
|
+
this.cleanupManagedGuidanceFiles(rigId);
|
|
35
39
|
result.alreadyStopped = true;
|
|
36
40
|
// Skip to delete if requested
|
|
37
41
|
if (opts?.delete) {
|
|
@@ -62,6 +66,7 @@ export class RigTeardownOrchestrator {
|
|
|
62
66
|
if (killResult.ok || killResult.code === "session_not_found") {
|
|
63
67
|
// Success or already gone — update DB atomically
|
|
64
68
|
this.atomicNodeCleanup(session);
|
|
69
|
+
this.cleanupManagedGuidanceFileForNode(session.runtime, session.cwd);
|
|
65
70
|
result.sessionsKilled++;
|
|
66
71
|
}
|
|
67
72
|
else {
|
|
@@ -70,6 +75,7 @@ export class RigTeardownOrchestrator {
|
|
|
70
75
|
killFailures++;
|
|
71
76
|
}
|
|
72
77
|
}
|
|
78
|
+
this.cleanupManagedGuidanceFiles(rigId);
|
|
73
79
|
// 6. Delete if requested (blocked by kill failures)
|
|
74
80
|
if (opts?.delete) {
|
|
75
81
|
if (killFailures > 0) {
|
|
@@ -138,5 +144,34 @@ export class RigTeardownOrchestrator {
|
|
|
138
144
|
cwd: r.cwd,
|
|
139
145
|
}));
|
|
140
146
|
}
|
|
147
|
+
cleanupManagedGuidanceFiles(rigId) {
|
|
148
|
+
const rows = this.db.prepare(`
|
|
149
|
+
SELECT DISTINCT runtime, cwd
|
|
150
|
+
FROM nodes
|
|
151
|
+
WHERE rig_id = ?
|
|
152
|
+
`).all(rigId);
|
|
153
|
+
for (const row of rows) {
|
|
154
|
+
this.cleanupManagedGuidanceFileForNode(row.runtime, row.cwd);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
cleanupManagedGuidanceFileForNode(runtime, cwd) {
|
|
158
|
+
if (!runtime || !cwd) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const targetPath = runtime === "claude-code"
|
|
162
|
+
? nodePath.join(cwd, "CLAUDE.md")
|
|
163
|
+
: runtime === "codex"
|
|
164
|
+
? nodePath.join(cwd, "AGENTS.md")
|
|
165
|
+
: null;
|
|
166
|
+
if (!targetPath) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
removeManagedBlocksFromFile({
|
|
170
|
+
exists: (path) => fs.existsSync(path),
|
|
171
|
+
readFile: (path) => fs.readFileSync(path, "utf-8"),
|
|
172
|
+
writeFile: (path, content) => fs.writeFileSync(path, content, "utf-8"),
|
|
173
|
+
deleteFile: (path) => fs.unlinkSync(path),
|
|
174
|
+
}, targetPath);
|
|
175
|
+
}
|
|
141
176
|
}
|
|
142
177
|
//# sourceMappingURL=rig-teardown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rig-teardown.js","sourceRoot":"","sources":["../../src/domain/rig-teardown.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rig-teardown.js","sourceRoot":"","sources":["../../src/domain/rig-teardown.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,7 +112,9 @@ export declare class PodRigInstantiator {
|
|
|
112
112
|
suppressSummaryEvent?: boolean;
|
|
113
113
|
}): Promise<MaterializeOutcome>;
|
|
114
114
|
launchMaterialized(rigSpecYaml: string, rigRoot: string, targetRigId: string): Promise<LaunchMaterializedOutcome>;
|
|
115
|
-
instantiate(rigSpecYaml: string, rigRoot: string
|
|
115
|
+
instantiate(rigSpecYaml: string, rigRoot: string, opts?: {
|
|
116
|
+
cwdOverride?: string;
|
|
117
|
+
}): Promise<InstantiateOutcome>;
|
|
116
118
|
private computePodLaunchOrder;
|
|
117
119
|
private processTerminalMember;
|
|
118
120
|
private findMemberContext;
|
|
@@ -121,6 +123,7 @@ export declare class PodRigInstantiator {
|
|
|
121
123
|
private updateNodeResolvedConfig;
|
|
122
124
|
private buildTerminalResolvedStartupFiles;
|
|
123
125
|
private buildResolvedStartupFiles;
|
|
126
|
+
private dedupeProjectedManagedStartupFiles;
|
|
124
127
|
private buildSessionIdentityAction;
|
|
125
128
|
/**
|
|
126
129
|
* Resolve any remaining 'auto' delivery hints to concrete hints at plan time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rigspec-instantiator.d.ts","sourceRoot":"","sources":["../../src/domain/rigspec-instantiator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,KAAK,EAAE,aAAa,IAAI,OAAO,EAAoC,kBAAkB,EAAqB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rigspec-instantiator.d.ts","sourceRoot":"","sources":["../../src/domain/rigspec-instantiator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import nodePath from "node:path";
|
|
|
2
2
|
import { deriveCanonicalSessionName, validateSessionComponents } from "./session-name.js";
|
|
3
3
|
import { LegacyRigSpecSchema as RigSpecSchema } from "./rigspec-schema.js"; // TODO: AS-T08b — migrate to pod-aware RigSpec
|
|
4
4
|
import { LegacyRigSpecCodec as RigSpecCodec } from "./rigspec-codec.js"; // TODO: AS-T08b — migrate to pod-aware RigSpec
|
|
5
|
+
import { resolveLaunchCwd } from "./cwd-resolution.js";
|
|
5
6
|
// Only these edge kinds constrain launch order
|
|
6
7
|
const LAUNCH_DEPENDENCY_KINDS = new Set(["delegates_to", "spawned_by"]);
|
|
7
8
|
export class RigInstantiator {
|
|
@@ -486,7 +487,7 @@ export class PodRigInstantiator {
|
|
|
486
487
|
},
|
|
487
488
|
};
|
|
488
489
|
}
|
|
489
|
-
async instantiate(rigSpecYaml, rigRoot) {
|
|
490
|
+
async instantiate(rigSpecYaml, rigRoot, opts) {
|
|
490
491
|
// 1. Parse + validate
|
|
491
492
|
let rigSpec;
|
|
492
493
|
try {
|
|
@@ -501,7 +502,7 @@ export class PodRigInstantiator {
|
|
|
501
502
|
return { ok: false, code: "validation_failed", errors: [err.message] };
|
|
502
503
|
}
|
|
503
504
|
// 2. Preflight
|
|
504
|
-
const preflight = rigPreflight({ rigSpecYaml, rigRoot, fsOps: this.deps.fsOps });
|
|
505
|
+
const preflight = rigPreflight({ rigSpecYaml, rigRoot, cwdOverride: opts?.cwdOverride, fsOps: this.deps.fsOps });
|
|
505
506
|
if (!preflight.ready) {
|
|
506
507
|
return { ok: false, code: "preflight_failed", errors: preflight.errors, warnings: preflight.warnings };
|
|
507
508
|
}
|
|
@@ -557,7 +558,7 @@ export class PodRigInstantiator {
|
|
|
557
558
|
for (const { pod, member, podId, qualifiedId } of memberEntries) {
|
|
558
559
|
// Terminal fast-path: skip agent resolution and profile resolution
|
|
559
560
|
if (member.agentRef === "builtin:terminal") {
|
|
560
|
-
const termResult = await this.processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, podInstantiateWarnings);
|
|
561
|
+
const termResult = await this.processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, podInstantiateWarnings, opts?.cwdOverride);
|
|
561
562
|
nodeResults.push(termResult);
|
|
562
563
|
continue;
|
|
563
564
|
}
|
|
@@ -576,6 +577,8 @@ export class PodRigInstantiator {
|
|
|
576
577
|
importedSpecs: resolveResult.imports,
|
|
577
578
|
collisions: resolveResult.collisions,
|
|
578
579
|
profileName: member.profile,
|
|
580
|
+
specRoot: rigRoot,
|
|
581
|
+
cwdOverride: opts?.cwdOverride,
|
|
579
582
|
member,
|
|
580
583
|
pod,
|
|
581
584
|
rig: rigSpec,
|
|
@@ -590,7 +593,7 @@ export class PodRigInstantiator {
|
|
|
590
593
|
const node = this.deps.rigRepo.addNode(rigId, qualifiedId, {
|
|
591
594
|
runtime: member.runtime,
|
|
592
595
|
model: member.model,
|
|
593
|
-
cwd:
|
|
596
|
+
cwd: configResult.config.cwd,
|
|
594
597
|
restorePolicy: configResult.config.restorePolicy,
|
|
595
598
|
podId,
|
|
596
599
|
agentRef: member.agentRef,
|
|
@@ -611,6 +614,7 @@ export class PodRigInstantiator {
|
|
|
611
614
|
rigId,
|
|
612
615
|
rigSpec,
|
|
613
616
|
rigRoot,
|
|
617
|
+
cwdOverride: opts?.cwdOverride,
|
|
614
618
|
pod,
|
|
615
619
|
member,
|
|
616
620
|
qualifiedId,
|
|
@@ -749,14 +753,15 @@ export class PodRigInstantiator {
|
|
|
749
753
|
}
|
|
750
754
|
return order;
|
|
751
755
|
}
|
|
752
|
-
async processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, warnings) {
|
|
756
|
+
async processTerminalMember(rigId, rigSpec, rigRoot, pod, member, podId, qualifiedId, nodeIdMap, launchedSessionNames, warnings, cwdOverride) {
|
|
757
|
+
const effectiveCwd = resolveLaunchCwd(member.cwd, rigRoot, cwdOverride);
|
|
753
758
|
// Create node with sentinel values
|
|
754
759
|
let nodeId;
|
|
755
760
|
try {
|
|
756
761
|
const node = this.deps.rigRepo.addNode(rigId, qualifiedId, {
|
|
757
762
|
runtime: member.runtime,
|
|
758
763
|
model: member.model,
|
|
759
|
-
cwd:
|
|
764
|
+
cwd: effectiveCwd,
|
|
760
765
|
restorePolicy: "checkpoint_only",
|
|
761
766
|
podId,
|
|
762
767
|
agentRef: member.agentRef,
|
|
@@ -773,6 +778,7 @@ export class PodRigInstantiator {
|
|
|
773
778
|
rigId,
|
|
774
779
|
rigSpec,
|
|
775
780
|
rigRoot,
|
|
781
|
+
cwdOverride,
|
|
776
782
|
pod,
|
|
777
783
|
member,
|
|
778
784
|
qualifiedId,
|
|
@@ -811,6 +817,8 @@ export class PodRigInstantiator {
|
|
|
811
817
|
importedSpecs: resolveResult.imports,
|
|
812
818
|
collisions: resolveResult.collisions,
|
|
813
819
|
profileName: input.member.profile,
|
|
820
|
+
specRoot: input.rigRoot,
|
|
821
|
+
cwdOverride: input.cwdOverride,
|
|
814
822
|
member: input.member,
|
|
815
823
|
pod: input.pod,
|
|
816
824
|
rig: input.rigSpec,
|
|
@@ -846,6 +854,7 @@ export class PodRigInstantiator {
|
|
|
846
854
|
return { status: "failed", error: planResult.errors.join("; "), sessionName: canonicalSessionName, warnings: launchResult.warnings };
|
|
847
855
|
}
|
|
848
856
|
const resolvedFiles = this.buildResolvedStartupFiles(resolveResult.resolved.spec, resolveResult.resolved.sourcePath, resolveResult.resolved.spec.profiles[input.member.profile], input.rigSpec, input.rigRoot, input.pod, input.member);
|
|
857
|
+
const dedupedResolvedFiles = this.dedupeProjectedManagedStartupFiles(planResult.plan, resolvedFiles);
|
|
849
858
|
const binding = {
|
|
850
859
|
id: launchResult.binding.id,
|
|
851
860
|
nodeId: input.nodeId,
|
|
@@ -855,7 +864,7 @@ export class PodRigInstantiator {
|
|
|
855
864
|
cmuxWorkspace: null,
|
|
856
865
|
cmuxSurface: null,
|
|
857
866
|
updatedAt: "",
|
|
858
|
-
cwd:
|
|
867
|
+
cwd: configResult.config.cwd,
|
|
859
868
|
};
|
|
860
869
|
const startupResult = await this.deps.startupOrchestrator.startNode({
|
|
861
870
|
rigId: input.rigId,
|
|
@@ -864,7 +873,7 @@ export class PodRigInstantiator {
|
|
|
864
873
|
binding,
|
|
865
874
|
adapter,
|
|
866
875
|
plan: planResult.plan,
|
|
867
|
-
resolvedStartupFiles:
|
|
876
|
+
resolvedStartupFiles: dedupedResolvedFiles,
|
|
868
877
|
startupActions: [
|
|
869
878
|
...configResult.config.startup.actions,
|
|
870
879
|
this.buildSessionIdentityAction({
|
|
@@ -886,6 +895,7 @@ export class PodRigInstantiator {
|
|
|
886
895
|
};
|
|
887
896
|
}
|
|
888
897
|
async launchExistingTerminalMember(input) {
|
|
898
|
+
const effectiveCwd = resolveLaunchCwd(input.member.cwd, input.rigRoot, input.cwdOverride);
|
|
889
899
|
const sessionNameErrors = validateSessionComponents(input.pod.id, input.member.id, input.rigSpec.name);
|
|
890
900
|
if (sessionNameErrors.length > 0) {
|
|
891
901
|
return { status: "failed", error: sessionNameErrors.join("; ") };
|
|
@@ -924,7 +934,7 @@ export class PodRigInstantiator {
|
|
|
924
934
|
cmuxWorkspace: null,
|
|
925
935
|
cmuxSurface: null,
|
|
926
936
|
updatedAt: "",
|
|
927
|
-
cwd:
|
|
937
|
+
cwd: effectiveCwd,
|
|
928
938
|
};
|
|
929
939
|
const adapter = this.deps.adapters["terminal"];
|
|
930
940
|
if (!adapter) {
|
|
@@ -936,7 +946,7 @@ export class PodRigInstantiator {
|
|
|
936
946
|
conflicts: [],
|
|
937
947
|
noOps: [],
|
|
938
948
|
runtime: "terminal",
|
|
939
|
-
cwd:
|
|
949
|
+
cwd: effectiveCwd,
|
|
940
950
|
};
|
|
941
951
|
const startupResult = await this.deps.startupOrchestrator.startNode({
|
|
942
952
|
rigId: input.rigId,
|
|
@@ -1046,9 +1056,9 @@ export class PodRigInstantiator {
|
|
|
1046
1056
|
}
|
|
1047
1057
|
}
|
|
1048
1058
|
// 7. Built-in OpenRig onboarding overlay (appended last, does not replace agent guidance)
|
|
1049
|
-
const onboardingPath = nodePath.resolve(import.meta.dirname, "../../assets/guidance/
|
|
1059
|
+
const onboardingPath = nodePath.resolve(import.meta.dirname, "../../assets/guidance/openrig-start.md");
|
|
1050
1060
|
files.push({
|
|
1051
|
-
path: "
|
|
1061
|
+
path: "openrig-start.md",
|
|
1052
1062
|
absolutePath: onboardingPath,
|
|
1053
1063
|
ownerRoot: nodePath.resolve(import.meta.dirname, "../../assets"),
|
|
1054
1064
|
deliveryHint: "guidance_merge",
|
|
@@ -1057,6 +1067,17 @@ export class PodRigInstantiator {
|
|
|
1057
1067
|
});
|
|
1058
1068
|
return this.resolveAutoHints(files);
|
|
1059
1069
|
}
|
|
1070
|
+
dedupeProjectedManagedStartupFiles(plan, files) {
|
|
1071
|
+
const projectedManagedGuidancePaths = new Set(plan.entries
|
|
1072
|
+
.filter((entry) => entry.category === "guidance" && entry.mergeStrategy === "managed_block")
|
|
1073
|
+
.map((entry) => entry.absolutePath));
|
|
1074
|
+
return files.filter((file) => {
|
|
1075
|
+
if (file.deliveryHint !== "guidance_merge") {
|
|
1076
|
+
return true;
|
|
1077
|
+
}
|
|
1078
|
+
return !projectedManagedGuidancePaths.has(file.absolutePath);
|
|
1079
|
+
});
|
|
1080
|
+
}
|
|
1060
1081
|
buildSessionIdentityAction(input) {
|
|
1061
1082
|
const lines = [
|
|
1062
1083
|
"OpenRig session identity:",
|