@repo-prism/dispatch-hub 1.1.13 → 1.1.15

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.
@@ -704,4 +704,4 @@ html[data-theme="light"] .prism-theme {
704
704
  }
705
705
  }
706
706
 
707
- html,body{background:var(--prism-canvas);color:var(--prism-ink);font-family:var(--prism-font,Inter,system-ui,sans-serif);min-height:100%;margin:0}#root{min-height:100vh}.hub{max-width:960px;margin:0 auto;padding:32px 24px 64px}.hub-header{display:flex;justify-content:space-between;align-items: flex-end;gap:16px;margin-bottom:28px}.hub-kicker{color:var(--prism-brand);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px}.hub h1{margin:0;font-size:28px;font-weight:600}.hub-meta,.hub-error,.ov-empty{color:var(--prism-ink-muted)}.hub-error{color:var(--prism-rose)}.hub-repo{margin-top:28px}.hub-repo h2{color:var(--prism-ink-muted);margin:0 0 12px;font-size:14px;font-weight:600}.hub-list{list-style:none;display:grid;gap:12px;margin:0;padding:0}.hub-card{background:var(--prism-panel);border:1px solid var(--prism-line);border-radius:12px;padding:16px 18px}.hub-card-top{display:flex;justify-content:space-between;align-items: center;gap:12px}.hub-activity{color:var(--prism-ink-muted);margin:8px 0 0;font-size:14px}.hub-facts{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0 0}.hub-facts dt{text-transform:uppercase;letter-spacing:.06em;color:var(--prism-ink-muted);font-size:11px}.hub-facts dd{margin:2px 0 0;font-size:13px}.hub-facts code{font-family:var(--prism-mono,ui-monospace,monospace);font-size:12px}.hub-pill{text-transform:capitalize;border-radius:999px;padding:2px 10px;font-size:12px}.hub-pill-brand{background:color-mix(in srgb,var(--prism-brand)18%,transparent);color:var(--prism-brand-strong)}.hub-pill-emerald{background:color-mix(in srgb,var(--prism-emerald)18%,transparent);color:var(--prism-emerald)}.hub-pill-rose{background:color-mix(in srgb,var(--prism-rose)18%,transparent);color:var(--prism-rose)}.hub-pill-amber{background:color-mix(in srgb,var(--prism-amber)18%,transparent);color:var(--prism-amber)}.hub-pill-muted{background:var(--prism-tile);color:var(--prism-ink-muted)}.hub-actions{display:flex;gap:8px;margin-top:12px}.hub-actions button{appearance:none;border:1px solid var(--prism-line);background:var(--prism-tile);color:var(--prism-ink);cursor:pointer;font:inherit;border-radius:8px;padding:6px 12px;font-size:13px}.hub-actions button:hover{border-color:var(--prism-brand)}
707
+ html,body{background:var(--prism-canvas);color:var(--prism-ink);font-family:var(--prism-font,Inter,system-ui,sans-serif);min-height:100%;margin:0}#root{min-height:100vh}.hub{max-width:960px;margin:0 auto;padding:32px 24px 64px}.hub-header{display:flex;justify-content:space-between;align-items: flex-end;gap:16px;margin-bottom:28px}.hub-kicker{color:var(--prism-brand);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px}.hub h1{margin:0;font-size:28px;font-weight:600}.hub-meta,.hub-error,.ov-empty{color:var(--prism-ink-muted)}.hub-error{color:var(--prism-rose)}.hub-repo{margin-top:28px}.hub-repo h2{color:var(--prism-ink-muted);margin:0 0 12px;font-size:14px;font-weight:600}.hub-list{list-style:none;display:grid;gap:12px;margin:0;padding:0}.hub-card{background:var(--prism-panel);border:1px solid var(--prism-line);border-radius:12px;padding:16px 18px}.hub-card-top{display:flex;justify-content:space-between;align-items: center;gap:12px}.hub-activity{color:var(--prism-ink-muted);margin:8px 0 0;font-size:14px}.hub-facts{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0 0}.hub-facts dt{text-transform:uppercase;letter-spacing:.06em;color:var(--prism-ink-muted);font-size:11px}.hub-facts dd{margin:2px 0 0;font-size:13px}.hub-facts code{font-family:var(--prism-mono,ui-monospace,monospace);font-size:12px}.hub-pill{text-transform:capitalize;border-radius:999px;padding:2px 10px;font-size:12px}.hub-pill-brand{background:color-mix(in srgb,var(--prism-brand)18%,transparent);color:var(--prism-brand-strong)}.hub-pill-emerald{background:color-mix(in srgb,var(--prism-emerald)18%,transparent);color:var(--prism-emerald)}.hub-pill-rose{background:color-mix(in srgb,var(--prism-rose)18%,transparent);color:var(--prism-rose)}.hub-pill-amber{background:color-mix(in srgb,var(--prism-amber)18%,transparent);color:var(--prism-amber)}.hub-pill-muted{background:var(--prism-tile);color:var(--prism-ink-muted)}.hub-actions{display:flex;gap:8px;margin-top:12px}.hub-actions button{appearance:none;border:1px solid var(--prism-line);background:var(--prism-tile);color:var(--prism-ink);cursor:pointer;font:inherit;border-radius:8px;padding:6px 12px;font-size:13px}.hub-actions button:hover{border-color:var(--prism-brand)}.hub-console{border:1px solid var(--prism-line);background:var(--prism-tile);overflow-y:auto;font-family:var(--prism-font-mono,ui-monospace,monospace);border-radius:8px;max-height:320px;margin-top:12px;padding:10px 12px;font-size:12px;line-height:1.5}.hub-console-empty{color:var(--prism-ink-muted);margin:0}.hub-console-line{color:var(--prism-ink);word-break:break-word;margin:2px 0}.hub-console-phase{color:var(--prism-ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-right:8px;font-size:10px}.hub-console-sub{border-left:2px solid var(--prism-line);color:var(--prism-ink-muted);margin-left:18px;padding-left:8px}.hub-console-err{color:var(--prism-rose,#e11d48)}
@@ -20,6 +20,6 @@ export function isHubRecordLive(record) {
20
20
  return Boolean(record && isProcessAlive(record.pid));
21
21
  }
22
22
  export function packageVersion() {
23
- return "1.1.13";
23
+ return "1.1.15";
24
24
  }
25
25
  //# sourceMappingURL=hub-record.js.map
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
7
7
  export { diffJobs, collectJobs, isInFlight, isTerminal } from "./watch.js";
8
8
  export { toSnapshot } from "./snapshot.js";
9
9
  export { registerWorkspace, workspaceLabel, loadRegistry } from "./registry.js";
10
+ export { buildStatusline, formatStatusline, parseStatuslineStdin, statuslineSetupSnippet, } from "./statusline.js";
10
11
  export { readHubRecord, newHubToken } from "./hub-record.js";
11
12
  export type { HubEvent, HubRecord, JobSnapshot, WorkspaceEntry, } from "./types.js";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -7,5 +7,6 @@ export { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
7
7
  export { diffJobs, collectJobs, isInFlight, isTerminal } from "./watch.js";
8
8
  export { toSnapshot } from "./snapshot.js";
9
9
  export { registerWorkspace, workspaceLabel, loadRegistry } from "./registry.js";
10
+ export { buildStatusline, formatStatusline, parseStatuslineStdin, statuslineSetupSnippet, } from "./statusline.js";
10
11
  export { readHubRecord, newHubToken } from "./hub-record.js";
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAoC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAsB,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,0BAAmC,CAAC;AAEhE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAoC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAsB,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,YAAY,CAAC;AAgBpB,MAAM,MAAM,YAAY,GAAG,CACzB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAsBF,wBAAsB,QAAQ,CAC5B,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,UAAU,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,CAAC,CAsPhD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,YAAY,CAAC;AAgBpB,MAAM,MAAM,YAAY,GAAG,CACzB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAuBF,wBAAsB,QAAQ,CAC5B,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,UAAU,GAAG;IAAE,cAAc,EAAE,IAAI,CAAA;CAAE,CAAC,CAyQhD"}
package/dist/server.js CHANGED
@@ -3,7 +3,7 @@ import { access } from "node:fs/promises";
3
3
  import { createReadStream } from "node:fs";
4
4
  import { dirname, extname, join } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
- import { createCursorWorkerPort, createDispatchRuntime, } from "@repo-prism/dispatch";
6
+ import { createClaudeWorkerPort, createCursorWorkerPort, createDispatchRuntime, readRunLog, } from "@repo-prism/dispatch";
7
7
  import { originAllowed, tokenFromRequest, tokensMatch } from "./auth.js";
8
8
  import { createIdleTimer, IDLE_MS } from "./idle.js";
9
9
  import { newHubToken, packageVersion, writeHubRecord } from "./hub-record.js";
@@ -26,6 +26,7 @@ async function defaultControl(workspacePath, jobId, action) {
26
26
  const runtime = createDispatchRuntime({
27
27
  workspaceRoot: workspacePath,
28
28
  worker: createCursorWorkerPort(),
29
+ claudeWorker: createClaudeWorkerPort(),
29
30
  });
30
31
  return runtime.handle("job_control", { jobId, action });
31
32
  }
@@ -160,6 +161,23 @@ export async function startHub(options = {}) {
160
161
  json(res, 200, { jobs });
161
162
  return;
162
163
  }
164
+ // Per-job console for the board's expander (M-066 P-P6).
165
+ const logsMatch = /^\/api\/jobs\/([^/]+)\/logs$/.exec(url.pathname);
166
+ if (req.method === "GET" && logsMatch) {
167
+ const jobId = decodeURIComponent(logsMatch[1] ?? "");
168
+ const workspace = url.searchParams.get("workspace") ??
169
+ jobs.find((job) => job.id === jobId)?.workspacePath ??
170
+ "";
171
+ if (!workspace) {
172
+ json(res, 400, { error: "workspace required" });
173
+ return;
174
+ }
175
+ const page = await readRunLog(workspace, jobId, {
176
+ limit: Number(url.searchParams.get("limit") ?? "200") || 200,
177
+ });
178
+ json(res, 200, page);
179
+ return;
180
+ }
163
181
  if (req.method === "GET" && url.pathname === "/api/events") {
164
182
  res.writeHead(200, {
165
183
  "Content-Type": "text/event-stream",
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Claude Code statusLine support (M-066 P-P5).
3
+ *
4
+ * `prism-hub statusline` prints one compact line of live Dispatch state for
5
+ * the footer Claude Code pins under the prompt. It reads the same per-repo
6
+ * `.prism/dispatch/` files the hub watches — no daemon, no network — so it
7
+ * works over SSH, in tmux, and when the hub has idle-exited.
8
+ *
9
+ * Claude Code pipes session JSON on stdin; we use `workspace.current_dir` to
10
+ * put the repo you're sitting in first.
11
+ */
12
+ import { type JobRecord } from "@repo-prism/dispatch";
13
+ import type { HubEnv } from "./paths.js";
14
+ /** Claude Code's statusLine stdin payload (the fields we read). */
15
+ export type StatuslineStdin = {
16
+ readonly cwd?: string;
17
+ readonly workspace?: {
18
+ readonly current_dir?: string;
19
+ };
20
+ };
21
+ export declare function parseStatuslineStdin(raw: string): {
22
+ cwd: string;
23
+ };
24
+ /** One line, ≤ ~120 chars, ADR-0039 voice: titles, never paths. */
25
+ export declare function formatStatusline(current: readonly JobRecord[], others: readonly JobRecord[], now?: number): string;
26
+ /**
27
+ * The line for this moment. Empty string when nothing is happening anywhere —
28
+ * a quiet footer is the correct default.
29
+ */
30
+ export declare function buildStatusline(stdinRaw: string, env?: HubEnv): Promise<string>;
31
+ /** The settings.json block Claude Code needs, for `statusline --setup`. */
32
+ export declare function statuslineSetupSnippet(): string;
33
+ //# sourceMappingURL=statusline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAQjE;AAgBD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,GAAG,SAAa,GACf,MAAM,CAiCR;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,IAAI,MAAM,CAa/C"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Claude Code statusLine support (M-066 P-P5).
3
+ *
4
+ * `prism-hub statusline` prints one compact line of live Dispatch state for
5
+ * the footer Claude Code pins under the prompt. It reads the same per-repo
6
+ * `.prism/dispatch/` files the hub watches — no daemon, no network — so it
7
+ * works over SSH, in tmux, and when the hub has idle-exited.
8
+ *
9
+ * Claude Code pipes session JSON on stdin; we use `workspace.current_dir` to
10
+ * put the repo you're sitting in first.
11
+ */
12
+ import { formatStallDuration, isLiveJobStatus, reapJobs, } from "@repo-prism/dispatch";
13
+ import { loadRegistry } from "./registry.js";
14
+ export function parseStatuslineStdin(raw) {
15
+ try {
16
+ const parsed = JSON.parse(raw);
17
+ const cwd = parsed.workspace?.current_dir ?? parsed.cwd ?? "";
18
+ return { cwd: typeof cwd === "string" ? cwd : "" };
19
+ }
20
+ catch {
21
+ return { cwd: "" };
22
+ }
23
+ }
24
+ function isAwaitingReview(job) {
25
+ return job.status === "needs_review";
26
+ }
27
+ function isFailed(job) {
28
+ return job.status === "error";
29
+ }
30
+ function elapsed(job, now) {
31
+ const started = Date.parse(job.updatedAt || job.createdAt);
32
+ if (!Number.isFinite(started))
33
+ return "";
34
+ return formatStallDuration(Math.max(0, now - started));
35
+ }
36
+ /** One line, ≤ ~120 chars, ADR-0039 voice: titles, never paths. */
37
+ export function formatStatusline(current, others, now = Date.now()) {
38
+ const live = current.filter((job) => isLiveJobStatus(job.status));
39
+ const review = current.filter(isAwaitingReview);
40
+ const failed = current.filter(isFailed);
41
+ const otherLive = others.filter((job) => isLiveJobStatus(job.status) || isAwaitingReview(job));
42
+ const parts = [];
43
+ const freshest = [...live].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))[0];
44
+ if (freshest) {
45
+ const activity = freshest.lastActivity?.trim();
46
+ const when = elapsed(freshest, now);
47
+ parts.push([`◆ ${freshest.title || freshest.id}`, activity, when ? `${when}` : ""]
48
+ .filter(Boolean)
49
+ .join(" · "));
50
+ if (live.length > 1)
51
+ parts.push(`+${live.length - 1} running`);
52
+ }
53
+ for (const job of review.slice(0, 2)) {
54
+ parts.push(`✓ ${job.title || job.id} ready for review`);
55
+ }
56
+ if (review.length > 2)
57
+ parts.push(`+${review.length - 2} more to review`);
58
+ for (const job of failed.slice(0, 1)) {
59
+ parts.push(`✗ ${job.title || job.id} stopped`);
60
+ }
61
+ if (otherLive.length > 0) {
62
+ parts.push(`${otherLive.length} in other repos`);
63
+ }
64
+ return parts.join(" | ");
65
+ }
66
+ /**
67
+ * The line for this moment. Empty string when nothing is happening anywhere —
68
+ * a quiet footer is the correct default.
69
+ */
70
+ export async function buildStatusline(stdinRaw, env = process.env) {
71
+ const { cwd } = parseStatuslineStdin(stdinRaw);
72
+ const workspaces = await loadRegistry(env);
73
+ const current = [];
74
+ const others = [];
75
+ for (const entry of workspaces) {
76
+ let jobs = [];
77
+ try {
78
+ jobs = await reapJobs(entry.path);
79
+ }
80
+ catch {
81
+ continue; // a vanished repo must not break the footer
82
+ }
83
+ if (cwd && (cwd === entry.path || cwd.startsWith(`${entry.path}/`))) {
84
+ current.push(...jobs);
85
+ }
86
+ else {
87
+ others.push(...jobs);
88
+ }
89
+ }
90
+ return formatStatusline(current, others);
91
+ }
92
+ /** The settings.json block Claude Code needs, for `statusline --setup`. */
93
+ export function statuslineSetupSnippet() {
94
+ return JSON.stringify({
95
+ statusLine: {
96
+ type: "command",
97
+ command: "npx -y --prefer-online @repo-prism/dispatch-hub@latest statusline",
98
+ refreshInterval: 5,
99
+ },
100
+ }, null, 2);
101
+ }
102
+ //# sourceMappingURL=statusline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.js","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repo-prism/dispatch-hub",
3
- "version": "1.1.13",
3
+ "version": "1.1.15",
4
4
  "type": "module",
5
5
  "description": "Prism Hub — loopback dashboard and OS notifications for Dispatch jobs",
6
6
  "exports": {
@@ -22,7 +22,7 @@
22
22
  "test": "vitest run"
23
23
  },
24
24
  "dependencies": {
25
- "@repo-prism/dispatch": "1.1.13"
25
+ "@repo-prism/dispatch": "1.1.15"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/react": "^19.2.17",