@paths.design/caws-cli 11.1.6 → 11.1.8

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 (190) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +55 -58
  3. package/dist/init/hook-packs/manifest-claude-code.d.ts +1 -1
  4. package/dist/init/hook-packs/manifest-claude-code.d.ts.map +1 -1
  5. package/dist/init/hook-packs/manifest-claude-code.js +317 -6
  6. package/dist/init/hook-packs/manifest-claude-code.js.map +1 -1
  7. package/dist/init/hook-packs/types.js +1 -1
  8. package/dist/init/hook-packs/types.js.map +1 -1
  9. package/dist/shell/binding/resolve-binding.d.ts.map +1 -1
  10. package/dist/shell/binding/resolve-binding.js +105 -1
  11. package/dist/shell/binding/resolve-binding.js.map +1 -1
  12. package/dist/shell/binding/types.d.ts +47 -3
  13. package/dist/shell/binding/types.d.ts.map +1 -1
  14. package/dist/shell/command-metadata.d.ts +93 -0
  15. package/dist/shell/command-metadata.d.ts.map +1 -0
  16. package/dist/shell/command-metadata.js +687 -0
  17. package/dist/shell/command-metadata.js.map +1 -0
  18. package/dist/shell/commands/agents.d.ts +48 -0
  19. package/dist/shell/commands/agents.d.ts.map +1 -0
  20. package/dist/shell/commands/agents.js +577 -0
  21. package/dist/shell/commands/agents.js.map +1 -0
  22. package/dist/shell/commands/claim.d.ts +16 -0
  23. package/dist/shell/commands/claim.d.ts.map +1 -1
  24. package/dist/shell/commands/claim.js +88 -30
  25. package/dist/shell/commands/claim.js.map +1 -1
  26. package/dist/shell/commands/events.d.ts +106 -0
  27. package/dist/shell/commands/events.d.ts.map +1 -0
  28. package/dist/shell/commands/events.js +510 -0
  29. package/dist/shell/commands/events.js.map +1 -0
  30. package/dist/shell/commands/gates.d.ts +2 -2
  31. package/dist/shell/commands/gates.d.ts.map +1 -1
  32. package/dist/shell/commands/gates.js +106 -25
  33. package/dist/shell/commands/gates.js.map +1 -1
  34. package/dist/shell/commands/init.d.ts.map +1 -1
  35. package/dist/shell/commands/init.js +26 -0
  36. package/dist/shell/commands/init.js.map +1 -1
  37. package/dist/shell/commands/prepush.d.ts +26 -0
  38. package/dist/shell/commands/prepush.d.ts.map +1 -0
  39. package/dist/shell/commands/prepush.js +373 -0
  40. package/dist/shell/commands/prepush.js.map +1 -0
  41. package/dist/shell/commands/scope.d.ts.map +1 -1
  42. package/dist/shell/commands/scope.js +31 -1
  43. package/dist/shell/commands/scope.js.map +1 -1
  44. package/dist/shell/commands/specs.d.ts +44 -3
  45. package/dist/shell/commands/specs.d.ts.map +1 -1
  46. package/dist/shell/commands/specs.js +411 -15
  47. package/dist/shell/commands/specs.js.map +1 -1
  48. package/dist/shell/commands/status.d.ts +12 -0
  49. package/dist/shell/commands/status.d.ts.map +1 -1
  50. package/dist/shell/commands/status.js +236 -21
  51. package/dist/shell/commands/status.js.map +1 -1
  52. package/dist/shell/commands/worktree.d.ts +9 -0
  53. package/dist/shell/commands/worktree.d.ts.map +1 -1
  54. package/dist/shell/commands/worktree.js +353 -1
  55. package/dist/shell/commands/worktree.js.map +1 -1
  56. package/dist/shell/gates/disposition.d.ts.map +1 -1
  57. package/dist/shell/gates/disposition.js +43 -2
  58. package/dist/shell/gates/disposition.js.map +1 -1
  59. package/dist/shell/index.d.ts +14 -6
  60. package/dist/shell/index.d.ts.map +1 -1
  61. package/dist/shell/index.js +32 -1
  62. package/dist/shell/index.js.map +1 -1
  63. package/dist/shell/legacy-command-map.js +832 -0
  64. package/dist/shell/push-range/classify-range.d.ts +99 -0
  65. package/dist/shell/push-range/classify-range.d.ts.map +1 -0
  66. package/dist/shell/push-range/classify-range.js +155 -0
  67. package/dist/shell/push-range/classify-range.js.map +1 -0
  68. package/dist/shell/push-range/scope-match.d.ts +13 -0
  69. package/dist/shell/push-range/scope-match.d.ts.map +1 -0
  70. package/dist/shell/push-range/scope-match.js +53 -0
  71. package/dist/shell/push-range/scope-match.js.map +1 -0
  72. package/dist/shell/register.d.ts.map +1 -1
  73. package/dist/shell/register.js +350 -165
  74. package/dist/shell/register.js.map +1 -1
  75. package/dist/shell/registered-command-groups.js +48 -0
  76. package/dist/shell/render/status.d.ts +7 -1
  77. package/dist/shell/render/status.d.ts.map +1 -1
  78. package/dist/shell/render/status.js +72 -0
  79. package/dist/shell/render/status.js.map +1 -1
  80. package/dist/shell/rules.d.ts +19 -0
  81. package/dist/shell/rules.d.ts.map +1 -1
  82. package/dist/shell/rules.js +27 -0
  83. package/dist/shell/rules.js.map +1 -1
  84. package/dist/shell/session/resolve-session.d.ts +29 -1
  85. package/dist/shell/session/resolve-session.d.ts.map +1 -1
  86. package/dist/shell/session/resolve-session.js +817 -11
  87. package/dist/shell/session/resolve-session.js.map +1 -1
  88. package/dist/shell/session/types.d.ts +127 -1
  89. package/dist/shell/session/types.d.ts.map +1 -1
  90. package/dist/shell/session/types.js +10 -4
  91. package/dist/shell/session/types.js.map +1 -1
  92. package/dist/store/agents-store.d.ts.map +1 -1
  93. package/dist/store/agents-store.js +9 -0
  94. package/dist/store/agents-store.js.map +1 -1
  95. package/dist/store/apply-patch.d.ts.map +1 -1
  96. package/dist/store/apply-patch.js +15 -0
  97. package/dist/store/apply-patch.js.map +1 -1
  98. package/dist/store/doctor-snapshot.d.ts.map +1 -1
  99. package/dist/store/doctor-snapshot.js +169 -3
  100. package/dist/store/doctor-snapshot.js.map +1 -1
  101. package/dist/store/events-migration.d.ts +207 -0
  102. package/dist/store/events-migration.d.ts.map +1 -0
  103. package/dist/store/events-migration.js +358 -0
  104. package/dist/store/events-migration.js.map +1 -0
  105. package/dist/store/events-store.d.ts +47 -1
  106. package/dist/store/events-store.d.ts.map +1 -1
  107. package/dist/store/events-store.js +278 -0
  108. package/dist/store/events-store.js.map +1 -1
  109. package/dist/store/git-autocommit.d.ts +46 -0
  110. package/dist/store/git-autocommit.d.ts.map +1 -0
  111. package/dist/store/git-autocommit.js +198 -0
  112. package/dist/store/git-autocommit.js.map +1 -0
  113. package/dist/store/git-sparse-checkout.d.ts +25 -0
  114. package/dist/store/git-sparse-checkout.d.ts.map +1 -0
  115. package/dist/store/git-sparse-checkout.js +101 -0
  116. package/dist/store/git-sparse-checkout.js.map +1 -0
  117. package/dist/store/index.d.ts +6 -1
  118. package/dist/store/index.d.ts.map +1 -1
  119. package/dist/store/index.js +16 -1
  120. package/dist/store/index.js.map +1 -1
  121. package/dist/store/leases-store.d.ts +89 -0
  122. package/dist/store/leases-store.d.ts.map +1 -0
  123. package/dist/store/leases-store.js +427 -0
  124. package/dist/store/leases-store.js.map +1 -0
  125. package/dist/store/lifecycle-transaction.d.ts.map +1 -1
  126. package/dist/store/lifecycle-transaction.js +34 -1
  127. package/dist/store/lifecycle-transaction.js.map +1 -1
  128. package/dist/store/rules.d.ts +74 -1
  129. package/dist/store/rules.d.ts.map +1 -1
  130. package/dist/store/rules.js +76 -0
  131. package/dist/store/rules.js.map +1 -1
  132. package/dist/store/specs-migration.d.ts +128 -0
  133. package/dist/store/specs-migration.d.ts.map +1 -0
  134. package/dist/store/specs-migration.js +481 -0
  135. package/dist/store/specs-migration.js.map +1 -0
  136. package/dist/store/specs-store.d.ts.map +1 -1
  137. package/dist/store/specs-store.js +14 -2
  138. package/dist/store/specs-store.js.map +1 -1
  139. package/dist/store/specs-writer.d.ts +130 -3
  140. package/dist/store/specs-writer.d.ts.map +1 -1
  141. package/dist/store/specs-writer.js +941 -102
  142. package/dist/store/specs-writer.js.map +1 -1
  143. package/dist/store/types.d.ts +31 -1
  144. package/dist/store/types.d.ts.map +1 -1
  145. package/dist/store/waivers-store.d.ts.map +1 -1
  146. package/dist/store/waivers-store.js +8 -1
  147. package/dist/store/waivers-store.js.map +1 -1
  148. package/dist/store/worktrees-migration.d.ts +141 -0
  149. package/dist/store/worktrees-migration.d.ts.map +1 -0
  150. package/dist/store/worktrees-migration.js +356 -0
  151. package/dist/store/worktrees-migration.js.map +1 -0
  152. package/dist/store/worktrees-writer.d.ts +28 -0
  153. package/dist/store/worktrees-writer.d.ts.map +1 -1
  154. package/dist/store/worktrees-writer.js +147 -13
  155. package/dist/store/worktrees-writer.js.map +1 -1
  156. package/package.json +5 -2
  157. package/templates/hook-packs/claude-code/CLAUDE.md +11 -5
  158. package/templates/hook-packs/claude-code/agent-heartbeat.sh +131 -0
  159. package/templates/hook-packs/claude-code/agent-register.sh +62 -0
  160. package/templates/hook-packs/claude-code/agent-stop.sh +51 -0
  161. package/templates/hook-packs/claude-code/audit.sh +1 -1
  162. package/templates/hook-packs/claude-code/block-dangerous.sh +1 -1
  163. package/templates/hook-packs/claude-code/classify_command.py +1 -1
  164. package/templates/hook-packs/claude-code/cwd-guard.sh +30 -0
  165. package/templates/hook-packs/claude-code/dispatch/post_tool_use.sh +15 -4
  166. package/templates/hook-packs/claude-code/dispatch/pre_tool_use.sh +19 -2
  167. package/templates/hook-packs/claude-code/dispatch/session_start.sh +6 -2
  168. package/templates/hook-packs/claude-code/dispatch/stop.sh +7 -2
  169. package/templates/hook-packs/claude-code/duplicate-export-check.sh +156 -0
  170. package/templates/hook-packs/claude-code/god-object-check.sh +102 -0
  171. package/templates/hook-packs/claude-code/guard-strikes.sh +1 -1
  172. package/templates/hook-packs/claude-code/lib/parse-input.sh +115 -1
  173. package/templates/hook-packs/claude-code/lib/run-handlers.sh +1 -1
  174. package/templates/hook-packs/claude-code/loc-delta-check.sh +91 -0
  175. package/templates/hook-packs/claude-code/naming-check.sh +128 -0
  176. package/templates/hook-packs/claude-code/plan-transcript-finalize.sh +59 -0
  177. package/templates/hook-packs/claude-code/plan-transcript-snapshot.sh +86 -0
  178. package/templates/hook-packs/claude-code/protected-paths.sh +59 -0
  179. package/templates/hook-packs/claude-code/quiet-merge.sh +68 -0
  180. package/templates/hook-packs/claude-code/reset-danger-latch.sh +1 -1
  181. package/templates/hook-packs/claude-code/reset-strikes.sh +1 -1
  182. package/templates/hook-packs/claude-code/runtime-paths.sh +1 -1
  183. package/templates/hook-packs/claude-code/scan-secrets.sh +98 -0
  184. package/templates/hook-packs/claude-code/scope-guard.sh +47 -65
  185. package/templates/hook-packs/claude-code/session-caws-status.sh +7 -1
  186. package/templates/hook-packs/claude-code/session-log.sh +1 -1
  187. package/templates/hook-packs/claude-code/session_log_renderer.py +956 -0
  188. package/templates/hook-packs/claude-code/shortcut-language-check.sh +147 -0
  189. package/templates/hook-packs/claude-code/worktree-guard.sh +130 -4
  190. package/templates/hook-packs/claude-code/worktree-write-guard.sh +133 -18
@@ -1,33 +1,162 @@
1
1
  "use strict";
2
2
  // `caws status` — vNext read-only dashboard.
3
3
  //
4
- // Hard constraint: status MUST NOT mutate anything. It loads state,
5
- // runs the kernel diagnoser, and renders. It does NOT mint capsules,
6
- // refresh heartbeats, write events, mutate worktrees.json, or alter
7
- // agents.json. Ownership mutation belongs to `caws claim`; spec
4
+ // Hard constraint: status MUST NOT mutate anything by default. It loads
5
+ // state, runs the kernel diagnoser, and renders. It does NOT mint
6
+ // capsules, refresh heartbeats, write events, mutate worktrees.json, or
7
+ // alter agents.json. Ownership mutation belongs to `caws claim`; spec
8
8
  // lifecycle belongs to `caws spec *`; event emission belongs to
9
9
  // `caws evidence record`.
10
10
  //
11
+ // MULTI-AGENT-ACTIVITY-REGISTRY-001 — narrowed status mutation rule
12
+ // (spec invariant 6, tightened in commit 4):
13
+ //
14
+ // caws status → read-only (default)
15
+ // caws status --session-id X → read-only; identity only
16
+ // caws status --heartbeat → may write current session's lease
17
+ // caws status --heartbeat --session-id X → writes explicit session's lease
18
+ //
19
+ // `--session-id` alone NEVER mutates. Only `--heartbeat` triggers a
20
+ // lease write. This narrows the §6 invariant 7 carve-out ("status may
21
+ // update leases") to require an explicit operator opt-in: default purity
22
+ // is safer, and prevents `status --session-id <other>` from accidentally
23
+ // impersonating or refreshing another session's lease.
24
+ //
25
+ // Status renders an "Agents" panel BEFORE the Doctor panel when leases
26
+ // exist. The panel distinguishes self/other, canonical/worktree,
27
+ // active/stale/stopped, and bound spec/worktree.
28
+ //
11
29
  // Pipeline:
12
30
  // 1. resolveRepoRoot(cwd)
13
- // 2. composeDoctorSnapshot(...) → snapshot + doctorInput
14
- // 3. inspectProjectState(doctorInput) → DoctorReport
31
+ // 2. composeDoctorSnapshot(...) → snapshot + doctorInput
32
+ // 3. inspectProjectState(doctorInput) → DoctorReport
15
33
  // 4. resolveBinding(cwd, registry, specs)
16
- // 5. resolveSession({ allowMint: false }) — read-only; never mints
17
- // 6. renderStatus(...) stdout
18
- // 7. exit 0 (regardless of doctor findings) or 2 on composition error
19
- //
20
- // Doctor findings drive PROMINENT DISPLAY in the dashboard. They do
21
- // NOT change the exit code. `caws doctor` is the diagnostic command
22
- // with 0/1/2 semantics; status is observability.
34
+ // 5. resolveSession({ allowMint: false }) — read-only; never mints
35
+ // 6. loadLeases(cawsDir) read-only
36
+ // 7. summarizeActiveAgents(leases, now, ttl) pure classification
37
+ // 8. If --heartbeat: applyLeasePatch(write_lease for self)
38
+ // 9. renderStatus(...) → stdout
39
+ // 10. exit 0 (regardless of doctor findings) or 2 on composition error
40
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
41
+ if (k2 === undefined) k2 = k;
42
+ var desc = Object.getOwnPropertyDescriptor(m, k);
43
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
44
+ desc = { enumerable: true, get: function() { return m[k]; } };
45
+ }
46
+ Object.defineProperty(o, k2, desc);
47
+ }) : (function(o, m, k, k2) {
48
+ if (k2 === undefined) k2 = k;
49
+ o[k2] = m[k];
50
+ }));
51
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
52
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
53
+ }) : function(o, v) {
54
+ o["default"] = v;
55
+ });
56
+ var __importStar = (this && this.__importStar) || (function () {
57
+ var ownKeys = function(o) {
58
+ ownKeys = Object.getOwnPropertyNames || function (o) {
59
+ var ar = [];
60
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
61
+ return ar;
62
+ };
63
+ return ownKeys(o);
64
+ };
65
+ return function (mod) {
66
+ if (mod && mod.__esModule) return mod;
67
+ var result = {};
68
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
69
+ __setModuleDefault(result, mod);
70
+ return result;
71
+ };
72
+ })();
23
73
  Object.defineProperty(exports, "__esModule", { value: true });
24
74
  exports.runStatusCommand = runStatusCommand;
25
75
  const caws_kernel_1 = require("@paths.design/caws-kernel");
76
+ const node_child_process_1 = require("node:child_process");
77
+ const fs = __importStar(require("node:fs"));
78
+ const os = __importStar(require("node:os"));
26
79
  const store_1 = require("../../store");
27
80
  const resolve_binding_1 = require("../binding/resolve-binding");
28
81
  const diagnostic_1 = require("../render/diagnostic");
29
82
  const status_1 = require("../render/status");
30
83
  const resolve_session_1 = require("../session/resolve-session");
84
+ const DEFAULT_LEASE_STALE_TTL_MS = 30 * 60 * 1000; // 30m
85
+ /**
86
+ * Safe wrapper around `summarizeActiveAgents` that defends against the
87
+ * kernel symbol being absent at runtime.
88
+ *
89
+ * The crash this guards (Bug-001/002 from USER-E2E-SETUP-REHEARSAL-001)
90
+ * occurs when caws-cli@11.1.x was installed against an older kernel
91
+ * version (1.0.0) that predates the leases substrate. The cli's dep
92
+ * range (`^1.0.0` at the time of the rehearsal) could resolve to a
93
+ * kernel without `summarizeActiveAgents`, producing the symptom:
94
+ *
95
+ * `(0 , caws_kernel_1.summarizeActiveAgents) is not a function`
96
+ *
97
+ * The dep range was tightened to `^1.1.0` in this slice, which prevents
98
+ * future installs from hitting this case. The defensive guard below is
99
+ * the second-half belt-and-suspenders: future kernel revs that remove
100
+ * or rename the function, or partial/broken installs that strip the
101
+ * dist artifact, still produce a typed diagnostic instead of a Node
102
+ * "is not a function" crash with exit 0.
103
+ *
104
+ * Returns `null` when the kernel function is unavailable so callers can
105
+ * route to a typed empty `ActivitySummary` + emit a one-line diagnostic.
106
+ * Returns the kernel's summary unchanged when the function is present.
107
+ */
108
+ function callSummarizeActiveAgentsSafe(leases, now, ttlMs) {
109
+ if (typeof caws_kernel_1.summarizeActiveAgents !== 'function') {
110
+ return null;
111
+ }
112
+ return (0, caws_kernel_1.summarizeActiveAgents)(leases, now, ttlMs);
113
+ }
114
+ const KERNEL_FEATURE_UNAVAILABLE_DIAGNOSTIC = 'caws: kernel does not export summarizeActiveAgents; agent activity unavailable. ' +
115
+ 'This typically means caws-cli is paired with a pre-1.1.0 kernel. Reinstall: ' +
116
+ 'npm install -g @paths.design/caws-cli@latest';
117
+ const EMPTY_ACTIVITY_SUMMARY = {
118
+ total: 0,
119
+ active: [],
120
+ stale: [],
121
+ stopped: [],
122
+ };
123
+ function readGitDirInfo(cwd) {
124
+ try {
125
+ const commonDir = (0, node_child_process_1.execFileSync)('git', ['rev-parse', '--path-format=absolute', '--git-common-dir'], { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }).trim();
126
+ const gitDir = (0, node_child_process_1.execFileSync)('git', ['rev-parse', '--path-format=absolute', '--git-dir'], {
127
+ cwd,
128
+ encoding: 'utf8',
129
+ stdio: ['ignore', 'pipe', 'pipe'],
130
+ }).trim();
131
+ let branch;
132
+ try {
133
+ branch = (0, node_child_process_1.execFileSync)('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
134
+ cwd,
135
+ encoding: 'utf8',
136
+ stdio: ['ignore', 'pipe', 'pipe'],
137
+ }).trim();
138
+ }
139
+ catch {
140
+ // detached HEAD; leave undefined
141
+ }
142
+ return {
143
+ git_common_dir: realpathSafe(commonDir),
144
+ git_dir: realpathSafe(gitDir),
145
+ ...(branch !== undefined && branch !== '' ? { branch } : {}),
146
+ };
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ function realpathSafe(p) {
153
+ try {
154
+ return fs.realpathSync(p);
155
+ }
156
+ catch {
157
+ return p;
158
+ }
159
+ }
31
160
  function runStatusCommand(opts = {}) {
32
161
  const cwd = opts.cwd ?? process.cwd();
33
162
  const nowFn = opts.now ?? (() => new Date());
@@ -70,18 +199,97 @@ function runStatusCommand(opts = {}) {
70
199
  registry: snapshot.worktrees,
71
200
  specs: snapshot.specs,
72
201
  });
73
- // 5. Session — READ-ONLY. Never pass allowMint: true here.
202
+ // 5. Session — READ-ONLY by default. Mint is only permitted when
203
+ // --heartbeat is set (we need a stable identity to write a lease).
204
+ const wantsHeartbeat = opts.heartbeat === true;
205
+ let sessionIdentity = null;
206
+ if (opts.sessionId !== undefined) {
207
+ // Explicit --session-id flag — validate as safe filename for
208
+ // future write (even if --heartbeat is not set, validating early
209
+ // gives the operator a clear error rather than silent acceptance).
210
+ const fnRes = (0, store_1.safeLeaseFilename)(opts.sessionId);
211
+ if (!fnRes.ok) {
212
+ err(`caws status: invalid --session-id "${opts.sessionId}".`);
213
+ err((0, diagnostic_1.renderDiagnostics)(fnRes.errors, { showData }));
214
+ return 1;
215
+ }
216
+ sessionIdentity = {
217
+ session_id: opts.sessionId,
218
+ platform: opts.platform ?? 'unknown',
219
+ };
220
+ }
74
221
  const sessionResult = (0, resolve_session_1.resolveSession)({
75
222
  cawsDir,
76
223
  worktreeRoot: cwd,
77
224
  env,
78
225
  now: nowFn,
79
- // allowMint: false read-only; status MUST NOT mint capsules.
226
+ allowMint: wantsHeartbeat && sessionIdentity === null,
80
227
  });
81
- // 6. Render
82
- // Event-chain validity is captured in the doctor findings (via
83
- // doctor.event.chain_invalid); the status dashboard surfaces a
84
- // chain-broken note only when the kernel actually emitted that finding.
228
+ if (sessionIdentity === null && sessionResult.ok) {
229
+ sessionIdentity = sessionResult.value.identity;
230
+ }
231
+ // 6. Load leases (operational cache never blocks status if leases
232
+ // dir is missing or malformed).
233
+ const leasesLoad = (0, store_1.loadLeases)(cawsDir);
234
+ let leases = {};
235
+ let leasesDiagnostics = [];
236
+ if (leasesLoad.ok) {
237
+ leases = leasesLoad.value.leases;
238
+ leasesDiagnostics = leasesLoad.value.diagnostics;
239
+ }
240
+ else if (showData) {
241
+ err((0, diagnostic_1.renderDiagnostics)(leasesLoad.errors, { showData }));
242
+ }
243
+ // 7. Summarize (pure read-side classification; no write side effect).
244
+ // Defensive feature-detect: if the kernel does not export
245
+ // summarizeActiveAgents (e.g., a partial/stale install or a future
246
+ // kernel rev that removes it), fall back to an empty summary and
247
+ // emit a typed diagnostic on stderr rather than crashing.
248
+ const leaseTtl = opts.leaseStaleTtlMs ?? DEFAULT_LEASE_STALE_TTL_MS;
249
+ const initialSummary = callSummarizeActiveAgentsSafe(leases, now, leaseTtl);
250
+ if (initialSummary === null) {
251
+ err(KERNEL_FEATURE_UNAVAILABLE_DIAGNOSTIC);
252
+ }
253
+ const summary = initialSummary ?? EMPTY_ACTIVITY_SUMMARY;
254
+ // 8. OPT-IN heartbeat write. Only fires when --heartbeat is set.
255
+ // --session-id alone never triggers this.
256
+ if (wantsHeartbeat) {
257
+ if (sessionIdentity === null) {
258
+ err('caws status: --heartbeat requires resolvable session identity (set CLAUDE_SESSION_ID, use a capsule, or pass --session-id).');
259
+ // Continue rendering — heartbeat failure is non-fatal.
260
+ }
261
+ else {
262
+ const gitInfo = readGitDirInfo(cwd);
263
+ if (gitInfo !== null) {
264
+ const context = {
265
+ repo_root: repoRoot,
266
+ cwd,
267
+ git_common_dir: gitInfo.git_common_dir,
268
+ git_dir: gitInfo.git_dir,
269
+ ...(gitInfo.branch !== undefined ? { branch: gitInfo.branch } : {}),
270
+ ...(binding.worktreeName !== undefined ? { bound_worktree: binding.worktreeName } : {}),
271
+ ...(binding.binding.kind === 'bound' ? { bound_spec_id: binding.binding.spec.id } : {}),
272
+ pid: process.pid,
273
+ hostname: os.hostname(),
274
+ };
275
+ const patchRes = (0, caws_kernel_1.heartbeatAgentSession)(leases, sessionIdentity, context, now, 'status');
276
+ if (patchRes.ok) {
277
+ const applyRes = (0, store_1.applyLeasePatch)(cawsDir, patchRes.value);
278
+ if (applyRes.ok) {
279
+ // Re-summarize to include the fresh write.
280
+ const reload = (0, store_1.loadLeases)(cawsDir);
281
+ if (reload.ok) {
282
+ leases = reload.value.leases;
283
+ }
284
+ }
285
+ else if (showData) {
286
+ err((0, diagnostic_1.renderDiagnostics)(applyRes.errors, { showData }));
287
+ }
288
+ }
289
+ }
290
+ }
291
+ }
292
+ // 9. Render
85
293
  const chainBroken = report.findings.some((f) => f.rule === 'doctor.event.chain_invalid' && f.severity === 'error');
86
294
  out((0, status_1.renderStatus)({
87
295
  repoRoot,
@@ -90,8 +298,12 @@ function runStatusCommand(opts = {}) {
90
298
  specs: snapshot.specs,
91
299
  worktrees: snapshot.worktrees,
92
300
  agents: snapshot.agents,
301
+ leases,
302
+ leaseSummary: wantsHeartbeat
303
+ ? (callSummarizeActiveAgentsSafe(leases, now, leaseTtl) ?? EMPTY_ACTIVITY_SUMMARY)
304
+ : summary,
305
+ selfSessionId: sessionIdentity?.session_id ?? null,
93
306
  eventCount: snapshot.events.length,
94
- // Only emit a chain-OK/broken label when there are events to chain.
95
307
  ...(snapshot.events.length > 0 ? { eventChainOk: !chainBroken } : {}),
96
308
  binding,
97
309
  session: sessionResult.ok ? sessionResult.value : null,
@@ -100,7 +312,10 @@ function runStatusCommand(opts = {}) {
100
312
  ...(opts.staleTtlMs !== undefined ? { staleTtlMs: opts.staleTtlMs } : {}),
101
313
  ...(opts.findingCap !== undefined ? { findingCap: opts.findingCap } : {}),
102
314
  }));
103
- // 7. Exit. Status is observability, never a gate.
315
+ // Surface lease-load diagnostics in showData mode (non-blocking).
316
+ if (showData && Array.isArray(leasesDiagnostics) && leasesDiagnostics.length > 0) {
317
+ err((0, diagnostic_1.renderDiagnostics)(leasesDiagnostics, { showData }));
318
+ }
104
319
  return 0;
105
320
  }
106
321
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/shell/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/shell/commands/status.ts"],"names":[],"mappings":"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"}
@@ -33,5 +33,14 @@ export interface WorktreeMergeOptions extends BaseCommandOptions {
33
33
  readonly message?: string;
34
34
  }
35
35
  export declare function runWorktreeMergeCommand(opts: WorktreeMergeOptions): number;
36
+ export interface WorktreeMigrateRegistryOptions extends BaseCommandOptions {
37
+ /** When true, classify and report but do not write. */
38
+ readonly dryRun?: boolean;
39
+ }
40
+ export declare function runWorktreeMigrateRegistryCommand(opts: WorktreeMigrateRegistryOptions): number;
41
+ export interface WorktreeRepairSparseOptions extends BaseCommandOptions {
42
+ readonly name: string;
43
+ }
44
+ export declare function runWorktreeRepairSparseCommand(opts: WorktreeRepairSparseOptions): number;
36
45
  export {};
37
46
  //# sourceMappingURL=worktree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/worktree.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,2BAA2B,CAAC;AAcjE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAkED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAuC5E;AAID,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAwB7E;AAID,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA+BxE;AAID,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAkC9E;AAID,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CA0C1E"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/shell/commands/worktree.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,SAAS,EAAQ,MAAM,2BAA2B,CAAC;AAoBjE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAkGD,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA2C5E;AAID,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAwB7E;AAID,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAgCxE;AAID,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CA6C9E;AAID,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAmD1E;AA0BD,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;IACxE,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAiFD,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,8BAA8B,GACnC,MAAM,CAgFR;AA6BD,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAyDD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,2BAA2B,GAAG,MAAM,CA6GxF"}