@cotal-ai/cli 0.36.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agents.js +1 -1
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +4 -1
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -1
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +8 -7
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/down.d.ts +10 -2
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +21 -10
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/endpoints.d.ts +1 -1
- package/dist/commands/endpoints.d.ts.map +1 -1
- package/dist/commands/endpoints.js +1 -0
- package/dist/commands/endpoints.js.map +1 -1
- package/dist/commands/ext.d.ts.map +1 -1
- package/dist/commands/ext.js +3 -1
- package/dist/commands/ext.js.map +1 -1
- package/dist/commands/join.d.ts.map +1 -1
- package/dist/commands/join.js +5 -1
- package/dist/commands/join.js.map +1 -1
- package/dist/commands/setup.d.ts +34 -8
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +130 -267
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/spawn-manifest.js +5 -5
- package/dist/commands/spawn-manifest.js.map +1 -1
- package/dist/commands/spawn.d.ts +1 -1
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +8 -2
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +44 -18
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.js +10 -10
- package/dist/commands/up.js.map +1 -1
- package/dist/console/ui/Detail.js +1 -1
- package/dist/console/ui/Detail.js.map +1 -1
- package/dist/console/ui/Roster.d.ts.map +1 -1
- package/dist/console/ui/Roster.js +9 -2
- package/dist/console/ui/Roster.js.map +1 -1
- package/dist/console/ui/StatusBar.d.ts.map +1 -1
- package/dist/console/ui/StatusBar.js +1 -1
- package/dist/console/ui/StatusBar.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-skills.d.ts +4 -4
- package/dist/lib/agent-skills.js +4 -4
- package/dist/lib/control.d.ts.map +1 -1
- package/dist/lib/control.js +3 -2
- package/dist/lib/control.js.map +1 -1
- package/dist/lib/delivery-proc.d.ts +8 -7
- package/dist/lib/delivery-proc.d.ts.map +1 -1
- package/dist/lib/delivery-proc.js +51 -36
- package/dist/lib/delivery-proc.js.map +1 -1
- package/dist/lib/manager-proc.d.ts +16 -10
- package/dist/lib/manager-proc.d.ts.map +1 -1
- package/dist/lib/manager-proc.js +65 -36
- package/dist/lib/manager-proc.js.map +1 -1
- package/dist/lib/manifest/live.d.ts.map +1 -1
- package/dist/lib/manifest/live.js +3 -0
- package/dist/lib/manifest/live.js.map +1 -1
- package/dist/lib/status.d.ts +5 -2
- package/dist/lib/status.d.ts.map +1 -1
- package/dist/lib/status.js +8 -5
- package/dist/lib/status.js.map +1 -1
- package/dist/lib/transient.d.ts.map +1 -1
- package/dist/lib/transient.js +1 -0
- package/dist/lib/transient.js.map +1 -1
- package/dist/lib/version.d.ts +6 -0
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +14 -0
- package/dist/lib/version.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +1 -0
- package/dist/render.js.map +1 -1
- package/dist/seed/authority.d.ts +5 -1
- package/dist/seed/authority.d.ts.map +1 -1
- package/dist/seed/authority.js +10 -3
- package/dist/seed/authority.js.map +1 -1
- package/dist/seed/paths.d.ts +6 -0
- package/dist/seed/paths.d.ts.map +1 -1
- package/dist/seed/paths.js +21 -15
- package/dist/seed/paths.js.map +1 -1
- package/dist/seed/reconcile.d.ts.map +1 -1
- package/dist/seed/reconcile.js +37 -5
- package/dist/seed/reconcile.js.map +1 -1
- package/dist/ui.js +1 -1
- package/dist/ui.js.map +1 -1
- package/dist/view/mesh-view.d.ts +4 -0
- package/dist/view/mesh-view.d.ts.map +1 -1
- package/dist/view/mesh-view.js +10 -0
- package/dist/view/mesh-view.js.map +1 -1
- package/package.json +5 -4
- package/cotal-skills/.claude-plugin/plugin.json +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/lib/manifest/live.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAmB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGvH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sFACkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;6BAEyB;IACzB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAID;4EAC4E;AAC5E,wBAAsB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/lib/manifest/live.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAmB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGvH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sFACkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;6BAEyB;IACzB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAID;4EAC4E;AAC5E,wBAAsB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAuBzE;AAED;6DAC6D;AAC7D,wBAAsB,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CASzE;AAED;;0FAE0F;AAC1F,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAY9F;AAED;;6FAE6F;AAC7F,wBAAsB,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1F;AAED;;;;;;;iCAOiC;AACjC,wBAAsB,WAAW,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAY9H"}
|
|
@@ -29,6 +29,9 @@ export async function connectProbe(conn) {
|
|
|
29
29
|
watchPresence: true,
|
|
30
30
|
});
|
|
31
31
|
ep.on("error", () => { }); // a presence/control hiccup must never crash the deploy
|
|
32
|
+
// A recoverable bearer refresh failure must remain visible during a long user-mode deploy even
|
|
33
|
+
// though this advisory probe never blocks the operation on its side channel.
|
|
34
|
+
ep.on("warning", (e) => console.error(`! spawn-f probe: ${e.message}`));
|
|
32
35
|
await ep.start();
|
|
33
36
|
return ep;
|
|
34
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/lib/manifest/live.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/lib/manifest/live.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/status.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { resolveSpace } from "@cotal-ai/workspace";
|
|
1
|
+
export { resolveRuntimeSpace, resolveSpace } from "@cotal-ai/workspace";
|
|
2
2
|
export interface MeshStatus {
|
|
3
3
|
reachable: boolean;
|
|
4
4
|
server: string;
|
|
@@ -18,7 +18,10 @@ export declare function meshStatus(cwd: string): Promise<MeshStatus>;
|
|
|
18
18
|
export interface MachineStatus {
|
|
19
19
|
nats: "path" | "bundled" | "missing";
|
|
20
20
|
claudePlugin: boolean;
|
|
21
|
-
claudeSkills:
|
|
21
|
+
claudeSkills: {
|
|
22
|
+
state: "current" | "stale" | "missing" | "broken" | "unknown";
|
|
23
|
+
version?: string;
|
|
24
|
+
};
|
|
22
25
|
agents: {
|
|
23
26
|
claude: boolean;
|
|
24
27
|
opencode: boolean;
|
package/dist/lib/status.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;qDAEqD;AACrD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,OAAO,iCAAwC,CAAC;AAE7D,+EAA+E;AAC/E,wBAAgB,KAAK,CAAC,IAAI,GAAE,MAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAY/D;AAED;8FAC8F;AAC9F,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CASjE;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE;QAAE,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;CAChD;AAED,kEAAkE;AAClE,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAoB5D;AAoBD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmB3C"}
|
package/dist/lib/status.js
CHANGED
|
@@ -7,7 +7,7 @@ import { authDir, findCotalRoot, loadSoleSpaceAuth, loadSpaceAuth } from "@cotal
|
|
|
7
7
|
import { resolveNatsServer } from "./nats-bin.js";
|
|
8
8
|
import { cliVersion } from "./version.js";
|
|
9
9
|
// Moved into `@cotal-ai/workspace` (stage 4); re-exported for the CLI's many importers.
|
|
10
|
-
export { resolveSpace } from "@cotal-ai/workspace";
|
|
10
|
+
export { resolveRuntimeSpace, resolveSpace } from "@cotal-ai/workspace";
|
|
11
11
|
/** The dashboard's default port + branded URL. The `web` command moved out to the `@cotal-ai/web`
|
|
12
12
|
* extension (stage 4); the CLI keeps these constants and the port probe so the setup ready-card
|
|
13
13
|
* can report the dashboard without importing it. */
|
|
@@ -70,14 +70,17 @@ export async function machineStatus() {
|
|
|
70
70
|
* or can't be queried. */
|
|
71
71
|
function claudeSkillsState(entries) {
|
|
72
72
|
if (entries === undefined)
|
|
73
|
-
return "unknown";
|
|
73
|
+
return { state: "unknown" };
|
|
74
74
|
const match = entries.find((e) => e.id === "cotal-skills@cotal-mesh" && e.scope === "user");
|
|
75
75
|
if (!match || match.enabled === false)
|
|
76
|
-
return "missing";
|
|
76
|
+
return { state: "missing" };
|
|
77
77
|
const errs = (match.errors ?? match.error);
|
|
78
78
|
if (Array.isArray(errs) ? errs.length > 0 : Boolean(errs))
|
|
79
|
-
return "broken"; // present but failed to load: never "current"
|
|
80
|
-
return
|
|
79
|
+
return { state: "broken" }; // present but failed to load: never "current"
|
|
80
|
+
return {
|
|
81
|
+
state: match.version === cliVersion() ? "current" : "stale",
|
|
82
|
+
version: typeof match.version === "string" ? match.version : undefined,
|
|
83
|
+
};
|
|
81
84
|
}
|
|
82
85
|
export function onPath(bin) {
|
|
83
86
|
const exts = process.platform === "win32"
|
package/dist/lib/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wFAAwF;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transient.d.ts","sourceRoot":"","sources":["../../src/lib/transient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIpE;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;kFAGkF;AAClF,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAE/E;AAED;iGACiG;AACjG,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"transient.d.ts","sourceRoot":"","sources":["../../src/lib/transient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIpE;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;kFAGkF;AAClF,wBAAsB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAE/E;AAED;iGACiG;AACjG,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB/C"}
|
package/dist/lib/transient.js
CHANGED
|
@@ -24,6 +24,7 @@ export async function openTransient(values, name) {
|
|
|
24
24
|
card: { name, kind: "endpoint" },
|
|
25
25
|
});
|
|
26
26
|
ep.on("error", (e) => console.error(c.red("! " + e.message)));
|
|
27
|
+
ep.on("warning", (e) => console.error(c.yellow("! " + e.message)));
|
|
27
28
|
await ep.start();
|
|
28
29
|
return { ep, space: conn.space };
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transient.js","sourceRoot":"","sources":["../../src/lib/transient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7C;;;kFAGkF;AAClF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB;IACxD,OAAO,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;iGACiG;AACjG,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,IAAY;IAEZ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,GAAG,YAAY,CAAC,IAAI,CAAC;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;KACjC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"transient.js","sourceRoot":"","sources":["../../src/lib/transient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7C;;;kFAGkF;AAClF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAqB;IACxD,OAAO,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;iGACiG;AACjG,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,IAAY;IAEZ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,GAAG,YAAY,CAAC,IAAI,CAAC;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;KACjC,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC"}
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** This binary's own published version. Re-exported here so the version surfaces (`cotal -v` and
|
|
2
2
|
* `cotal status`) have a single import for all version reporting. */
|
|
3
3
|
export { cliVersion } from "../seed/paths.js";
|
|
4
|
+
export interface CliProvenance {
|
|
5
|
+
kind: "source" | "installed" | "npx";
|
|
6
|
+
root: string;
|
|
7
|
+
}
|
|
8
|
+
/** The running CLI artifact, resolved through the same package root used for its version. */
|
|
9
|
+
export declare function cliProvenance(): CliProvenance;
|
|
4
10
|
export interface ExtensionVersion {
|
|
5
11
|
/** Short label — the extension's provided names (`claude`, `web`), deduped; the package name if
|
|
6
12
|
* it provides nothing named. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAMA;sEACsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,IAAI,aAAa,CAO7C;AAED,MAAM,WAAW,gBAAgB;IAC/B;qCACiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;wGAGwG;AACxG,wBAAgB,iBAAiB,IAAI,gBAAgB,EAAE,CAYtD"}
|
package/dist/lib/version.js
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { basename, dirname, join } from "node:path";
|
|
1
3
|
import { extensionProvides, loadExtensionsManifest } from "@cotal-ai/workspace";
|
|
4
|
+
import { cliPackageRoot } from "../seed/paths.js";
|
|
5
|
+
import { isNpx } from "./self-exec.js";
|
|
2
6
|
/** This binary's own published version. Re-exported here so the version surfaces (`cotal -v` and
|
|
3
7
|
* `cotal status`) have a single import for all version reporting. */
|
|
4
8
|
export { cliVersion } from "../seed/paths.js";
|
|
9
|
+
/** The running CLI artifact, resolved through the same package root used for its version. */
|
|
10
|
+
export function cliProvenance() {
|
|
11
|
+
const packageRoot = cliPackageRoot();
|
|
12
|
+
if (isNpx())
|
|
13
|
+
return { kind: "npx", root: packageRoot };
|
|
14
|
+
const source = basename(packageRoot) === "bin" && existsSync(join(packageRoot, "..", "implementations"));
|
|
15
|
+
return source
|
|
16
|
+
? { kind: "source", root: dirname(packageRoot) }
|
|
17
|
+
: { kind: "installed", root: packageRoot };
|
|
18
|
+
}
|
|
5
19
|
/** Installed extensions (seeded built-in connectors + operator `ext add`s) with their pinned
|
|
6
20
|
* versions, for `cotal -v` and `cotal status`. Reads the on-disk manifest directly — no import, no
|
|
7
21
|
* seeding side effect. Returns `[]` on an absent or corrupt manifest: the version view stays
|
package/dist/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAA2B,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;sEACsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,6FAA6F;AAC7F,MAAM,UAAU,aAAa;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzG,OAAO,MAAM;QACX,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;QAChD,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAYD;;;wGAGwG;AACxG,MAAM,UAAU,iBAAiB;IAC/B,IAAI,UAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,UAAU,GAAG,sBAAsB,EAAE,CAAC,UAAU,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG;QACpF,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAYnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAS9D;AAmCD;;oFAEoF;AACpF,wBAAsB,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,gBAAgB,CAAC;AAYnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAS9D;AAmCD;;oFAEoF;AACpF,wBAAsB,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAejG"}
|
package/dist/render.js
CHANGED
|
@@ -49,6 +49,7 @@ function presenceLine(ev) {
|
|
|
49
49
|
export async function runLog(ep, space, tapSubject) {
|
|
50
50
|
const view = new MeshView(ep, tapSubject ? { tapSubject } : {});
|
|
51
51
|
ep.on("error", (e) => console.error(c.red("! " + e.message)));
|
|
52
|
+
view.on("warning", (e) => console.error(c.yellow("! " + e.message)));
|
|
52
53
|
view.on("presence", (ev) => console.log(presenceLine(ev)));
|
|
53
54
|
view.on("entry", (e) => console.log(feedLine(e)));
|
|
54
55
|
await view.start();
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/seed/authority.d.ts
CHANGED
|
@@ -21,6 +21,10 @@ export interface Witness {
|
|
|
21
21
|
export interface Stamp {
|
|
22
22
|
/** The generation the last completed reconcile ran for. */
|
|
23
23
|
readonly generation: string;
|
|
24
|
+
/** The exact CLI entry script that committed this generation. Absent on legacy stamps. */
|
|
25
|
+
readonly writtenBy?: string;
|
|
26
|
+
/** ISO-8601 commit time. Absent on legacy stamps. */
|
|
27
|
+
readonly writtenAt?: string;
|
|
24
28
|
}
|
|
25
29
|
export declare function readAuthority(): Authority | undefined;
|
|
26
30
|
export declare function readAuthorityBackup(): Authority | undefined;
|
|
@@ -41,7 +45,7 @@ export declare function writeAuthority(everSeeded: Set<string>): void;
|
|
|
41
45
|
/** Write the initialization witness once (idempotent; refreshing it would erase the first-seen gen). */
|
|
42
46
|
export declare function ensureWitness(generation: string): void;
|
|
43
47
|
/** Write the version stamp LAST — the only thing that flips the fast path to "reconcile complete". */
|
|
44
|
-
export declare function writeStamp(generation: string):
|
|
48
|
+
export declare function writeStamp(generation: string, writtenBy: string): Stamp;
|
|
45
49
|
/** Recover a lost authority from the durable backup (for `--repair`). Undefined when even the backup
|
|
46
50
|
* is gone — the caller REFUSES, because a witness alone cannot tell a removed connector from a
|
|
47
51
|
* never-seeded future one. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../../src/seed/authority.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,mGAAmG;IACnG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,KAAK;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAeD,wBAAgB,aAAa,IAAI,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,mBAAmB,IAAI,SAAS,GAAG,SAAS,CAE3D;AAED,wBAAgB,WAAW,IAAI,OAAO,GAAG,SAAS,CAEjD;AAED,wBAAgB,SAAS,IAAI,KAAK,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"authority.d.ts","sourceRoot":"","sources":["../../src/seed/authority.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,mGAAmG;IACnG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,KAAK;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAeD,wBAAgB,aAAa,IAAI,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,mBAAmB,IAAI,SAAS,GAAG,SAAS,CAE3D;AAED,wBAAgB,WAAW,IAAI,OAAO,GAAG,SAAS,CAEjD;AAED,wBAAgB,SAAS,IAAI,KAAK,GAAG,SAAS,CAS7C;AAED;;;0GAG0G;AAC1G,wBAAgB,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAKzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAK5D;AAED,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAIvE;AAED;;+BAE+B;AAC/B,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAGpE;AAED;;;qGAGqG;AACrG,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAmBrD"}
|
package/dist/seed/authority.js
CHANGED
|
@@ -24,7 +24,12 @@ export function readWitness() {
|
|
|
24
24
|
return validate(witnessPath(), readJsonFile(witnessPath()), (v) => v.initialized === true && typeof v.firstGeneration === "string");
|
|
25
25
|
}
|
|
26
26
|
export function readStamp() {
|
|
27
|
-
return validate(stampPath(), readJsonFile(stampPath()), (v) =>
|
|
27
|
+
return validate(stampPath(), readJsonFile(stampPath()), (v) => {
|
|
28
|
+
const stamp = v;
|
|
29
|
+
return (typeof stamp.generation === "string" &&
|
|
30
|
+
(stamp.writtenBy === undefined || typeof stamp.writtenBy === "string") &&
|
|
31
|
+
(stamp.writtenAt === undefined || (typeof stamp.writtenAt === "string" && Number.isFinite(Date.parse(stamp.writtenAt)))));
|
|
32
|
+
});
|
|
28
33
|
}
|
|
29
34
|
/** The ever-seeded set unioned with its monotonic backup. A live authority that lost ids (a truncated
|
|
30
35
|
* or partially-corrupt write that still parsed) can only SHRINK the set; the backup is a superset, so
|
|
@@ -55,8 +60,10 @@ export function ensureWitness(generation) {
|
|
|
55
60
|
writeJsonAtomic(witnessPath(), { initialized: true, firstGeneration: generation });
|
|
56
61
|
}
|
|
57
62
|
/** Write the version stamp LAST — the only thing that flips the fast path to "reconcile complete". */
|
|
58
|
-
export function writeStamp(generation) {
|
|
59
|
-
|
|
63
|
+
export function writeStamp(generation, writtenBy) {
|
|
64
|
+
const writtenAt = new Date().toISOString();
|
|
65
|
+
writeJsonAtomic(stampPath(), { generation, writtenBy, writtenAt });
|
|
66
|
+
return { generation, writtenBy, writtenAt };
|
|
60
67
|
}
|
|
61
68
|
/** Recover a lost authority from the durable backup (for `--repair`). Undefined when even the backup
|
|
62
69
|
* is gone — the caller REFUSES, because a witness alone cannot tell a removed connector from a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/seed/authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/seed/authority.ts"],"names":[],"mappings":"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"}
|
package/dist/seed/paths.d.ts
CHANGED
|
@@ -43,6 +43,12 @@ export declare function reconcileRecoveryPath(): string;
|
|
|
43
43
|
export declare function seedStoreDir(): string;
|
|
44
44
|
/** A seeded connector's stable copy for one generation: `store/<generation>/<name>`. */
|
|
45
45
|
export declare function seedStorePath(generation: string, name: string): string;
|
|
46
|
+
/** Resolve package-manager bin symlinks to the exact CLI entry this process is running. */
|
|
47
|
+
export declare function entryScript(): string;
|
|
48
|
+
/** The package root that owns this process's resolved entry script. This is the shared artifact
|
|
49
|
+
* identity for version and provenance reporting, so a package-manager bin symlink cannot make the
|
|
50
|
+
* two surfaces describe different installs. */
|
|
51
|
+
export declare function cliPackageRoot(): string;
|
|
46
52
|
/**
|
|
47
53
|
* This `cotal-ai` binary's published version — the nearest `package.json` above the {@link entryScript}
|
|
48
54
|
* (`cotal-ai` published, or `bin/package.json` in a dev `tsx bin/cotal.ts` run). Surfaced by
|
package/dist/seed/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/seed/paths.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AAEH;yCACyC;AACzC,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAmC,CAAC;AAE/E,4FAA4F;AAC5F,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;wGACwG;AACxG,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;oFACoF;AACpF,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;sFACsF;AACtF,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;iEACiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;+FAC+F;AAC/F,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;iEAEiE;AACjE,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;wEAGwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gEAAgE;AAChE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/seed/paths.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AAEH;yCACyC;AACzC,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAmC,CAAC;AAE/E,4FAA4F;AAC5F,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;wGACwG;AACxG,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;oFACoF;AACpF,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;sFACsF;AACtF,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;iEACiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;+FAC+F;AAC/F,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;iEAEiE;AACjE,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;wEAGwE;AACxE,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gEAAgE;AAChE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED;;gDAEgD;AAChD,wBAAgB,cAAc,IAAI,MAAM,CASvC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AASD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAED;yFACyF;AACzF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,SAAQ,GAAG,IAAI,CAMhF;AAED;sGACsG;AACtG,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAa3D"}
|
package/dist/seed/paths.js
CHANGED
|
@@ -70,8 +70,8 @@ export function seedStoreDir() {
|
|
|
70
70
|
export function seedStorePath(generation, name) {
|
|
71
71
|
return join(seedStoreDir(), generation, name);
|
|
72
72
|
}
|
|
73
|
-
/** Resolve package-manager bin symlinks
|
|
74
|
-
function entryScript() {
|
|
73
|
+
/** Resolve package-manager bin symlinks to the exact CLI entry this process is running. */
|
|
74
|
+
export function entryScript() {
|
|
75
75
|
const entry = process.argv[1];
|
|
76
76
|
if (!entry)
|
|
77
77
|
throw new Error("cannot resolve the cotal entry script: no entry script (process.argv[1])");
|
|
@@ -82,27 +82,33 @@ function entryScript() {
|
|
|
82
82
|
throw new Error(`cannot resolve the cotal entry script ${entry}: ${e.message}`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
|
|
89
|
-
*/
|
|
90
|
-
export function cliVersion() {
|
|
85
|
+
/** The package root that owns this process's resolved entry script. This is the shared artifact
|
|
86
|
+
* identity for version and provenance reporting, so a package-manager bin symlink cannot make the
|
|
87
|
+
* two surfaces describe different installs. */
|
|
88
|
+
export function cliPackageRoot() {
|
|
91
89
|
const entry = entryScript();
|
|
92
90
|
let dir = dirname(entry);
|
|
93
91
|
for (;;) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const version = JSON.parse(readFileSync(pj, "utf8")).version;
|
|
97
|
-
if (typeof version === "string" && version)
|
|
98
|
-
return version;
|
|
99
|
-
}
|
|
92
|
+
if (existsSync(join(dir, "package.json")))
|
|
93
|
+
return dir;
|
|
100
94
|
const parent = dirname(dir);
|
|
101
95
|
if (parent === dir)
|
|
102
|
-
throw new Error(`cannot determine the cotal
|
|
96
|
+
throw new Error(`cannot determine the cotal package root: no package.json above ${entry}`);
|
|
103
97
|
dir = parent;
|
|
104
98
|
}
|
|
105
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* This `cotal-ai` binary's published version — the nearest `package.json` above the {@link entryScript}
|
|
102
|
+
* (`cotal-ai` published, or `bin/package.json` in a dev `tsx bin/cotal.ts` run). Surfaced by
|
|
103
|
+
* `cotal --version` / `cotal -v` and `cotal status`. Fails loud if unreadable.
|
|
104
|
+
*/
|
|
105
|
+
export function cliVersion() {
|
|
106
|
+
const root = cliPackageRoot();
|
|
107
|
+
const version = JSON.parse(readFileSync(join(root, "package.json"), "utf8")).version;
|
|
108
|
+
if (typeof version === "string" && version)
|
|
109
|
+
return version;
|
|
110
|
+
throw new Error(`cannot determine the cotal version: ${join(root, "package.json")} has no version`);
|
|
111
|
+
}
|
|
106
112
|
/**
|
|
107
113
|
* The seed generation: this binary's version ({@link cliVersion}). Ties a reconcile-refresh to the
|
|
108
114
|
* shipped payload changing — including the bundled `connector-core`, so a `cotal-ai` upgrade re-seeds
|
package/dist/seed/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/seed/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;GASG;AAEH;yCACyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAsB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE/E,4FAA4F;AAC5F,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC3C,CAAC;AAED;wGACwG;AACxG,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC/C,CAAC;AAED;oFACoF;AACpF,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED;sFACsF;AACtF,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED;iEACiE;AACjE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC3C,CAAC;AAED;+FAC+F;AAC/F,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;AAClD,CAAC;AAED;;iEAEiE;AACjE,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,CAAC;AACjD,CAAC;AAED;;;wEAGwE;AACxE,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,IAAY;IAC5D,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/seed/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/seed/reconcile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/seed/reconcile.ts"],"names":[],"mappings":"AAqEA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,4FAA4F;AAC5F,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED,4FAA4F;AAC5F,wBAAsB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7D;AAkeD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAyB1D"}
|
package/dist/seed/reconcile.js
CHANGED
|
@@ -6,7 +6,7 @@ import { SEEDED_EXTENSIONS, extensionPackageDir, installedExtensionVersion, load
|
|
|
6
6
|
import { c } from "../ui.js";
|
|
7
7
|
import { selfArgv } from "../lib/self-exec.js";
|
|
8
8
|
import { claimExtensionMutation } from "../lib/ext-mutation.js";
|
|
9
|
-
import { SEED_BUILTINS, seedGeneration, stampPath } from "./paths.js";
|
|
9
|
+
import { entryScript, SEED_BUILTINS, seedGeneration, stampPath } from "./paths.js";
|
|
10
10
|
import { acquireReconcileLock, clearChildMarker, clearCursor, clearRecovery, readCursor, readRecovery, reconcileLockActive, recoveryPending, sanitizeCorruptCrashState, seedChildStatus, writeCursor, writePendingChildMarker, writeRecovery, } from "./lock.js";
|
|
11
11
|
import { ensureWitness, everSeededUnion, quarantineCorruptSeedState, readAuthority, readStamp, readWitness, recoverAuthorityFromBackup, writeAuthority, writeStamp, } from "./authority.js";
|
|
12
12
|
import { gcSeedStore, stageSeedPayload } from "./store.js";
|
|
@@ -52,7 +52,7 @@ async function reconcile(mode) {
|
|
|
52
52
|
throw new Error("a previous connector seed or repair was interrupted - run `cotal ext seed --repair`");
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
else if (readWitness() && authorityIntact() && builtinsAccounted() && readStamp()?.generation === generation && !reconcileLockActive()) {
|
|
55
|
+
else if (readWitness() && authorityIntact() && builtinsAccounted() && builtinsMetadataCurrent() && readStamp()?.generation === generation && !reconcileLockActive()) {
|
|
56
56
|
// Steady state AND no reconcile in flight. The lock check is LAST (immediately before NOOP) so
|
|
57
57
|
// it is the linearization point: a `--force` that link-publishes the lock during the slower
|
|
58
58
|
// health/stamp reads is still caught here, and we fall through to acquire/wait rather than
|
|
@@ -105,6 +105,19 @@ function builtinsAccounted() {
|
|
|
105
105
|
return false;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
+
/** A package can add a registry provider without changing the seed generation in a source checkout.
|
|
109
|
+
* The fast path must not preserve an older manifest that advertises only a subset of what the packed
|
|
110
|
+
* built-in now registers, or lazy materialization of the new provider can never find its owner. */
|
|
111
|
+
function builtinsMetadataCurrent() {
|
|
112
|
+
for (const name of SEED_BUILTINS) {
|
|
113
|
+
const entry = installedEntry(name);
|
|
114
|
+
if (!entry || entry.source !== "seeded")
|
|
115
|
+
continue;
|
|
116
|
+
if (name === "claude" && !entry.provides?.some((ref) => ref.kind === "connector-setup" && ref.name === "claude"))
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
108
121
|
async function runUnderLocks(mode, generation, nonce) {
|
|
109
122
|
// Refuse to touch the prefix while an orphaned seed child (a crashed parent's still-running
|
|
110
123
|
// installer) is mutating it — reclaiming the lock does not stop that process. An ambiguous marker
|
|
@@ -140,7 +153,8 @@ async function runUnderLocks(mode, generation, nonce) {
|
|
|
140
153
|
storeGeneration !== undefined &&
|
|
141
154
|
isValidSemver(storeGeneration) &&
|
|
142
155
|
isStrictlyNewer(storeGeneration, generation)) {
|
|
143
|
-
|
|
156
|
+
const stampProvenance = describeStampProvenance(readStamp());
|
|
157
|
+
throw new Error(`this cotal ${generation} is older than the seed store's generation ${storeGeneration}${stampProvenance} - ` +
|
|
144
158
|
"run the newer cotal, or `cotal ext seed --reset` to rebuild the store for this version");
|
|
145
159
|
}
|
|
146
160
|
// Maintenance modes must survive a corrupt manifest / corrupt seed state: quarantine the unreadable
|
|
@@ -173,10 +187,17 @@ async function runUnderLocks(mode, generation, nonce) {
|
|
|
173
187
|
!cursor &&
|
|
174
188
|
!recoveryPending() &&
|
|
175
189
|
readWitness() &&
|
|
190
|
+
builtinsMetadataCurrent() &&
|
|
176
191
|
readStamp()?.generation === generation &&
|
|
177
192
|
SEED_BUILTINS.every((name) => everSeeded.has(name)))
|
|
178
193
|
return NOOP;
|
|
179
194
|
const stampGen = readStamp()?.generation;
|
|
195
|
+
const migrationFrom = mode !== "reset" &&
|
|
196
|
+
stampGen !== undefined &&
|
|
197
|
+
isValidSemver(stampGen) &&
|
|
198
|
+
isStrictlyNewer(generation, stampGen)
|
|
199
|
+
? stampGen
|
|
200
|
+
: undefined;
|
|
180
201
|
const repairTarget = mode === "repair" ? cursor?.package : undefined;
|
|
181
202
|
const seeded = [];
|
|
182
203
|
const refreshed = [];
|
|
@@ -207,7 +228,8 @@ async function runUnderLocks(mode, generation, nonce) {
|
|
|
207
228
|
// is never auto-refreshed on upgrade — only --force may replace it.
|
|
208
229
|
const isSeeded = entry.source === "seeded";
|
|
209
230
|
const torn = mode === "repair" && isSeeded && (repairAllSeeded || !isIntact(name));
|
|
210
|
-
const
|
|
231
|
+
const metadataStale = isSeeded && name === "claude" && !entry.provides?.some((ref) => ref.kind === "connector-setup" && ref.name === "claude");
|
|
232
|
+
const refresh = mode === "force" || torn || metadataStale || (isSeeded && isStrictlyNewer(generation, stampGen));
|
|
211
233
|
if (refresh) {
|
|
212
234
|
seedOne(name, generation, nonce, true);
|
|
213
235
|
verifyInstalled(name, generation);
|
|
@@ -232,12 +254,22 @@ async function runUnderLocks(mode, generation, nonce) {
|
|
|
232
254
|
// recoverable partial run on the next boot.
|
|
233
255
|
writeAuthority(everSeeded);
|
|
234
256
|
ensureWitness(generation);
|
|
235
|
-
writeStamp(generation);
|
|
257
|
+
const committedStamp = writeStamp(generation, entryScript());
|
|
258
|
+
if (migrationFrom)
|
|
259
|
+
announceSeedMigration(migrationFrom, committedStamp);
|
|
236
260
|
clearCursor();
|
|
237
261
|
clearRecovery();
|
|
238
262
|
gcSeedStore(generation, loadExtensionsManifest().extensions.map((e) => e.spec));
|
|
239
263
|
return { noop: false, seeded, refreshed, removedKept };
|
|
240
264
|
}
|
|
265
|
+
function describeStampProvenance(stamp) {
|
|
266
|
+
if (!stamp?.writtenBy || !stamp.writtenAt)
|
|
267
|
+
return "";
|
|
268
|
+
return `, written by ${stamp.writtenBy} at ${stamp.writtenAt}`;
|
|
269
|
+
}
|
|
270
|
+
function announceSeedMigration(from, stamp) {
|
|
271
|
+
process.stderr.write(`→ migrated operator-global seed store generation ${from} -> ${stamp.generation}, written by ${stamp.writtenBy} at ${stamp.writtenAt}: ${stampPath()}\n`);
|
|
272
|
+
}
|
|
241
273
|
/** Quarantine any corrupt manifest / seed-state so a maintenance run rebuilds clean instead of wedging
|
|
242
274
|
* on the same unreadable read, and DURABLY journal the resulting obligation BEFORE the destructive
|
|
243
275
|
* quarantine — so a repair SIGKILL'd after the quarantine but before the reinstalls doesn't forget it.
|