@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.
Files changed (98) hide show
  1. package/dist/commands/agents.js +1 -1
  2. package/dist/commands/agents.js.map +1 -1
  3. package/dist/commands/backup.d.ts.map +1 -1
  4. package/dist/commands/backup.js +4 -1
  5. package/dist/commands/backup.js.map +1 -1
  6. package/dist/commands/clean.d.ts +1 -1
  7. package/dist/commands/clean.d.ts.map +1 -1
  8. package/dist/commands/clean.js +8 -7
  9. package/dist/commands/clean.js.map +1 -1
  10. package/dist/commands/down.d.ts +10 -2
  11. package/dist/commands/down.d.ts.map +1 -1
  12. package/dist/commands/down.js +21 -10
  13. package/dist/commands/down.js.map +1 -1
  14. package/dist/commands/endpoints.d.ts +1 -1
  15. package/dist/commands/endpoints.d.ts.map +1 -1
  16. package/dist/commands/endpoints.js +1 -0
  17. package/dist/commands/endpoints.js.map +1 -1
  18. package/dist/commands/ext.d.ts.map +1 -1
  19. package/dist/commands/ext.js +3 -1
  20. package/dist/commands/ext.js.map +1 -1
  21. package/dist/commands/join.d.ts.map +1 -1
  22. package/dist/commands/join.js +5 -1
  23. package/dist/commands/join.js.map +1 -1
  24. package/dist/commands/setup.d.ts +34 -8
  25. package/dist/commands/setup.d.ts.map +1 -1
  26. package/dist/commands/setup.js +130 -267
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/commands/spawn-manifest.js +5 -5
  29. package/dist/commands/spawn-manifest.js.map +1 -1
  30. package/dist/commands/spawn.d.ts +1 -1
  31. package/dist/commands/spawn.d.ts.map +1 -1
  32. package/dist/commands/spawn.js +8 -2
  33. package/dist/commands/spawn.js.map +1 -1
  34. package/dist/commands/status.d.ts.map +1 -1
  35. package/dist/commands/status.js +44 -18
  36. package/dist/commands/status.js.map +1 -1
  37. package/dist/commands/up.js +10 -10
  38. package/dist/commands/up.js.map +1 -1
  39. package/dist/console/ui/Detail.js +1 -1
  40. package/dist/console/ui/Detail.js.map +1 -1
  41. package/dist/console/ui/Roster.d.ts.map +1 -1
  42. package/dist/console/ui/Roster.js +9 -2
  43. package/dist/console/ui/Roster.js.map +1 -1
  44. package/dist/console/ui/StatusBar.d.ts.map +1 -1
  45. package/dist/console/ui/StatusBar.js +1 -1
  46. package/dist/console/ui/StatusBar.js.map +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +8 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/lib/agent-skills.d.ts +4 -4
  51. package/dist/lib/agent-skills.js +4 -4
  52. package/dist/lib/control.d.ts.map +1 -1
  53. package/dist/lib/control.js +3 -2
  54. package/dist/lib/control.js.map +1 -1
  55. package/dist/lib/delivery-proc.d.ts +8 -7
  56. package/dist/lib/delivery-proc.d.ts.map +1 -1
  57. package/dist/lib/delivery-proc.js +51 -36
  58. package/dist/lib/delivery-proc.js.map +1 -1
  59. package/dist/lib/manager-proc.d.ts +16 -10
  60. package/dist/lib/manager-proc.d.ts.map +1 -1
  61. package/dist/lib/manager-proc.js +65 -36
  62. package/dist/lib/manager-proc.js.map +1 -1
  63. package/dist/lib/manifest/live.d.ts.map +1 -1
  64. package/dist/lib/manifest/live.js +3 -0
  65. package/dist/lib/manifest/live.js.map +1 -1
  66. package/dist/lib/status.d.ts +5 -2
  67. package/dist/lib/status.d.ts.map +1 -1
  68. package/dist/lib/status.js +8 -5
  69. package/dist/lib/status.js.map +1 -1
  70. package/dist/lib/transient.d.ts.map +1 -1
  71. package/dist/lib/transient.js +1 -0
  72. package/dist/lib/transient.js.map +1 -1
  73. package/dist/lib/version.d.ts +6 -0
  74. package/dist/lib/version.d.ts.map +1 -1
  75. package/dist/lib/version.js +14 -0
  76. package/dist/lib/version.js.map +1 -1
  77. package/dist/render.d.ts.map +1 -1
  78. package/dist/render.js +1 -0
  79. package/dist/render.js.map +1 -1
  80. package/dist/seed/authority.d.ts +5 -1
  81. package/dist/seed/authority.d.ts.map +1 -1
  82. package/dist/seed/authority.js +10 -3
  83. package/dist/seed/authority.js.map +1 -1
  84. package/dist/seed/paths.d.ts +6 -0
  85. package/dist/seed/paths.d.ts.map +1 -1
  86. package/dist/seed/paths.js +21 -15
  87. package/dist/seed/paths.js.map +1 -1
  88. package/dist/seed/reconcile.d.ts.map +1 -1
  89. package/dist/seed/reconcile.js +37 -5
  90. package/dist/seed/reconcile.js.map +1 -1
  91. package/dist/ui.js +1 -1
  92. package/dist/ui.js.map +1 -1
  93. package/dist/view/mesh-view.d.ts +4 -0
  94. package/dist/view/mesh-view.d.ts.map +1 -1
  95. package/dist/view/mesh-view.js +10 -0
  96. package/dist/view/mesh-view.js.map +1 -1
  97. package/package.json +5 -4
  98. 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,CAoBzE;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"}
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":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAyD,MAAM,gBAAgB,CAAC;AACvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAejD,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF;4EAC4E;AAC5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,GAAG,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC;gBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;gBACtC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAmB,EAAE;aACrG;YACH,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAmB,EAAE,EAAE,CAAC;QAChF,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,KAAK,EAAE,iEAAiE;QAC1F,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,wDAAwD;IAClF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;6DAC6D;AAC7D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAiB;IAClD,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM;QACtB,IAAI,GAAG,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;AACxB,CAAC;AAED;;0FAE0F;AAC1F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAiB,EAAE,SAAS,GAAG,MAAM;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;QACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;6FAE6F;AAC7F,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAiB,EAAE,SAAiB;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;iCAOiC;AACjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAiB,EAAE,KAAa,EAAE,IAAY,EAAE,IAAqB;IACrG,6FAA6F;IAC7F,gGAAgG;IAChG,IAAI,CAAC;QACH,2FAA2F;QAC3F,6FAA6F;QAC7F,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClJ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;QACvH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACrF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAE,CAAW,CAAC,OAAO,EAAE,CAAC;IAC/G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/lib/manifest/live.ts"],"names":[],"mappings":"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"}
@@ -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: "current" | "stale" | "missing" | "broken" | "unknown";
21
+ claudeSkills: {
22
+ state: "current" | "stale" | "missing" | "broken" | "unknown";
23
+ version?: string;
24
+ };
22
25
  agents: {
23
26
  claude: boolean;
24
27
  opencode: boolean;
@@ -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;AAEnD,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,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrE,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;AAiBD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmB3C"}
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"}
@@ -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 match.version === cliVersion() ? "current" : "stale";
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"
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"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"}
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,mBAAmB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AASxE;;qDAEqD;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAG,0BAA0B,QAAQ,GAAG,CAAC;AAE7D,+EAA+E;AAC/E,MAAM,UAAU,KAAK,CAAC,OAAe,QAAQ;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,EAAW,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,GAAG,CAAC,EAAE,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;8FAC8F;AAC9F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,MAAM,GAAG,cAAc,CAAC;IAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO;QACL,SAAS,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC;QACpC,MAAM;QACN,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;KACpB,CAAC;AACJ,CAAC;AASD,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,IAAI,GAA0B,SAAS,CAAC;IAC5C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC;IACD,8FAA8F;IAC9F,kGAAkG;IAClG,mCAAmC;IACnC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,OAAO;QACL,IAAI;QACJ,YAAY,EAAE,qBAAqB,CAAC,OAAO,CAAC;QAC5C,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;;;;2BAK2B;AAC3B,SAAS,iBAAiB,CAAC,OAAkC;IAC3D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,yBAAyB,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAC5F,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAY,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,8CAA8C;IACrI,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QAC3D,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;QACvC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE;gBAChB,CAAC,CAAC,GAAG,CAAC;YACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAkC;IAC/D,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC,IAAI,KAAK,CAAC;AACpE,CAAC;AAKD;iGACiG;AACjG,SAAS,gBAAgB;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -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,CAe/C"}
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"}
@@ -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"}
@@ -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":"AAEA;sEACsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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"}
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"}
@@ -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
@@ -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;AAEzG;sEACsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAY9C;;;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"}
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"}
@@ -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,CAcjG"}
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();
@@ -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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"}
@@ -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): void;
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,CAE7C;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,GAAG,IAAI,CAEnD;AAED;;+BAE+B;AAC/B,wBAAgB,0BAA0B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAGpE;AAED;;;qGAGqG;AACrG,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAmBrD"}
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"}
@@ -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) => typeof v.generation === "string");
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
- writeJsonAtomic(stampPath(), { generation });
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":"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"}
1
+ {"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/seed/authority.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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;AAaD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAanC;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"}
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"}
@@ -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 before looking for package-owned files. */
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
- * This `cotal-ai` binary's published version the nearest `package.json` above the {@link entryScript}
87
- * (`cotal-ai` published, or `bin/package.json` in a dev `tsx bin/cotal.ts` run). Surfaced by
88
- * `cotal --version` / `cotal -v` and `cotal status`. Fails loud if unreadable.
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
- const pj = join(dir, "package.json");
95
- if (existsSync(pj)) {
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 version: no versioned package.json above ${entry}`);
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
@@ -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,mFAAmF;AACnF,SAAS,WAAW;IAClB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IACxG,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,SAAS,CAAC;QACR,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACrC,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAA0B,CAAC,OAAO,CAAC;YACvF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,KAAK,EAAE,CAAC,CAAC;QACpH,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED;;kFAEkF;AAClF,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,iDAAiD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1H,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC7E,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,gBAAgB,MAAM,QAAQ,MAAM,0DAA0D,CACxI,CAAC;AACJ,CAAC;AAED;yFACyF;AACzF,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAc,EAAE,IAAI,GAAG,KAAK;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClF,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;sGACsG;AACtG,MAAM,UAAU,YAAY,CAAI,IAAY;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,KAAM,CAAW,CAAC,OAAO,yDAAyD,CAAC,CAAC;IAChI,CAAC;AACH,CAAC"}
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,2FAA2F;AAC3F,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IACxG,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED;;gDAEgD;AAChD,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,KAAK,EAAE,CAAC,CAAC;QAC/G,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA0B,CAAC,OAAO,CAAC;IAC/G,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3D,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;AACtG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED;;kFAEkF;AAClF,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,iDAAiD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1H,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC7E,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,gBAAgB,MAAM,QAAQ,MAAM,0DAA0D,CACxI,CAAC;AACJ,CAAC;AAED;yFACyF;AACzF,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAc,EAAE,IAAI,GAAG,KAAK;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClF,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;sGACsG;AACtG,MAAM,UAAU,YAAY,CAAI,IAAY;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,KAAM,CAAW,CAAC,OAAO,yDAAyD,CAAC,CAAC;IAChI,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/seed/reconcile.ts"],"names":[],"mappings":"AAoEA,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;AAgcD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAyB1D"}
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"}
@@ -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
- throw new Error(`this cotal ${generation} is older than the seed store's generation ${storeGeneration} - ` +
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 refresh = mode === "force" || torn || (isSeeded && isStrictlyNewer(generation, stampGen));
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.