@repo-prism/dispatch-hub 1.1.16 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/api-errors.d.ts +26 -0
- package/dist/api-errors.d.ts.map +1 -0
- package/dist/api-errors.js +61 -0
- package/dist/api-errors.js.map +1 -0
- package/dist/auth.d.ts +8 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +22 -1
- package/dist/auth.js.map +1 -1
- package/dist/bin.js +0 -0
- package/dist/dashboard/app.css +1 -1
- package/dist/dashboard/app.js +199 -111
- package/dist/dashboard/app.js.map +636 -6
- package/dist/dashboard/hub.css +17449 -275
- package/dist/dashboard/index.html +4 -3
- package/dist/dashboard/prism-mark.png +0 -0
- package/dist/host-telemetry.d.ts +9 -0
- package/dist/host-telemetry.d.ts.map +1 -0
- package/dist/host-telemetry.js +30 -0
- package/dist/host-telemetry.js.map +1 -0
- package/dist/hub-record.d.ts.map +1 -1
- package/dist/hub-record.js +36 -1
- package/dist/hub-record.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/intelligence.d.ts +37 -0
- package/dist/intelligence.d.ts.map +1 -0
- package/dist/intelligence.js +102 -0
- package/dist/intelligence.js.map +1 -0
- package/dist/notes.d.ts +32 -0
- package/dist/notes.d.ts.map +1 -0
- package/dist/notes.js +117 -0
- package/dist/notes.js.map +1 -0
- package/dist/notify.d.ts +6 -0
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +66 -12
- package/dist/notify.js.map +1 -1
- package/dist/paths.d.ts +25 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -2
- package/dist/paths.js.map +1 -1
- package/dist/pick-folder.d.ts +9 -0
- package/dist/pick-folder.d.ts.map +1 -0
- package/dist/pick-folder.js +49 -0
- package/dist/pick-folder.js.map +1 -0
- package/dist/registry.d.ts +7 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +45 -6
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts +18 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +421 -29
- package/dist/server.js.map +1 -1
- package/dist/snapshot.d.ts +14 -2
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +44 -9
- package/dist/snapshot.js.map +1 -1
- package/dist/statusline.d.ts +2 -0
- package/dist/statusline.d.ts.map +1 -1
- package/dist/statusline.js +23 -5
- package/dist/statusline.js.map +1 -1
- package/dist/types.d.ts +66 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/dist/watch.d.ts +22 -5
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +59 -13
- package/dist/watch.js.map +1 -1
- package/package.json +7 -3
package/dist/watch.js
CHANGED
|
@@ -22,30 +22,48 @@ export function isInFlight(job) {
|
|
|
22
22
|
export function isTerminal(job) {
|
|
23
23
|
return TERMINAL_STATUSES.includes(job.status);
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Read every registered workspace.
|
|
27
|
+
*
|
|
28
|
+
* Failures are **reported, not swallowed** (M-067 P-S2 data integrity). The
|
|
29
|
+
* old empty `catch` meant a repo whose `.prism/dispatch` had gone unreadable
|
|
30
|
+
* simply vanished from the board with no explanation — indistinguishable from
|
|
31
|
+
* a repo with no jobs. Now the caller gets the error and the UI can say which
|
|
32
|
+
* workspace it could not read.
|
|
33
|
+
*/
|
|
34
|
+
export async function collectJobs(workspaces) {
|
|
26
35
|
const jobs = [];
|
|
36
|
+
const errors = [];
|
|
27
37
|
for (const entry of workspaces) {
|
|
28
38
|
try {
|
|
29
39
|
const records = await reapJobs(entry.path);
|
|
30
40
|
for (const record of records) {
|
|
31
|
-
jobs.push(toSnapshot(record, entry.path
|
|
41
|
+
jobs.push(toSnapshot(record, entry.path));
|
|
32
42
|
}
|
|
33
43
|
}
|
|
34
|
-
catch {
|
|
35
|
-
|
|
44
|
+
catch (cause) {
|
|
45
|
+
errors.push({
|
|
46
|
+
workspacePath: entry.path,
|
|
47
|
+
label: entry.label,
|
|
48
|
+
detail: cause instanceof Error ? cause.message : String(cause),
|
|
49
|
+
});
|
|
36
50
|
}
|
|
37
51
|
}
|
|
38
|
-
return jobs;
|
|
52
|
+
return { jobs, errors };
|
|
39
53
|
}
|
|
40
54
|
/**
|
|
41
55
|
* Diff two snapshots. `job.finished` fires once per terminal transition
|
|
42
56
|
* (deduped by workspace+id+status+updatedAt).
|
|
43
57
|
*/
|
|
58
|
+
function jobKey(job) {
|
|
59
|
+
return `${job.workspacePath}:${job.id}`;
|
|
60
|
+
}
|
|
44
61
|
export function diffJobs(previous, next, seenFinished) {
|
|
45
|
-
const prevById = new Map(previous.map((job) => [
|
|
62
|
+
const prevById = new Map(previous.map((job) => [jobKey(job), job]));
|
|
63
|
+
const nextKeys = new Set(next.map(jobKey));
|
|
46
64
|
const events = [];
|
|
47
65
|
for (const job of next) {
|
|
48
|
-
const key =
|
|
66
|
+
const key = jobKey(job);
|
|
49
67
|
const before = prevById.get(key);
|
|
50
68
|
if (!before) {
|
|
51
69
|
events.push({ type: "job.updated", job });
|
|
@@ -66,25 +84,48 @@ export function diffJobs(previous, next, seenFinished) {
|
|
|
66
84
|
}
|
|
67
85
|
}
|
|
68
86
|
}
|
|
87
|
+
for (const job of previous) {
|
|
88
|
+
if (!nextKeys.has(jobKey(job))) {
|
|
89
|
+
events.push({ type: "job.removed", job });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
69
92
|
return events;
|
|
70
93
|
}
|
|
71
94
|
export function watchWorkspaces(getWorkspaces, emit, options = {}) {
|
|
72
95
|
const debounceMs = options.debounceMs ?? DEBOUNCE_MS;
|
|
73
96
|
const pollMs = options.pollMs ?? POLL_MS;
|
|
74
97
|
let snapshots = [];
|
|
98
|
+
let workspaceErrors = [];
|
|
99
|
+
let asOf = new Date().toISOString();
|
|
75
100
|
const seenFinished = new Set();
|
|
76
101
|
const watchers = new Map();
|
|
77
102
|
let timer;
|
|
78
103
|
let poll;
|
|
79
104
|
let closed = false;
|
|
80
|
-
const refresh = async () => {
|
|
105
|
+
const refresh = async (opts) => {
|
|
81
106
|
if (closed)
|
|
82
107
|
return;
|
|
83
|
-
|
|
108
|
+
// Drain before reading, so a queued job becomes a running job in the same
|
|
109
|
+
// tick the board renders (ADR-0047). This is the safety net for jobs whose
|
|
110
|
+
// originating MCP process exited before its own kick landed.
|
|
111
|
+
// Control actions (delete) skip drain so the board does not wait on a
|
|
112
|
+
// worker spawn just to drop a row that is already gone from disk.
|
|
113
|
+
if (opts?.drain !== false && options.drain) {
|
|
114
|
+
for (const entry of getWorkspaces()) {
|
|
115
|
+
await options.drain(entry.path).catch(() => {
|
|
116
|
+
/* a failed drain leaves the job queued; the next tick retries */
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const { jobs: next, errors } = await collectJobs(getWorkspaces());
|
|
84
121
|
const events = diffJobs(snapshots, next, seenFinished);
|
|
122
|
+
const errorsChanged = errors.length !== workspaceErrors.length ||
|
|
123
|
+
errors.some((row, i) => row.detail !== workspaceErrors[i]?.detail);
|
|
85
124
|
snapshots = next;
|
|
86
|
-
|
|
87
|
-
|
|
125
|
+
workspaceErrors = errors;
|
|
126
|
+
asOf = new Date().toISOString();
|
|
127
|
+
if (events.length > 0 || errorsChanged) {
|
|
128
|
+
emit({ type: "snapshot", jobs: next, asOf, errors });
|
|
88
129
|
for (const event of events)
|
|
89
130
|
emit(event);
|
|
90
131
|
}
|
|
@@ -128,12 +169,15 @@ export function watchWorkspaces(getWorkspaces, emit, options = {}) {
|
|
|
128
169
|
}
|
|
129
170
|
};
|
|
130
171
|
void (async () => {
|
|
131
|
-
|
|
172
|
+
const initial = await collectJobs(getWorkspaces());
|
|
173
|
+
snapshots = initial.jobs;
|
|
174
|
+
workspaceErrors = initial.errors;
|
|
175
|
+
asOf = new Date().toISOString();
|
|
132
176
|
for (const job of snapshots) {
|
|
133
177
|
if (isTerminal(job))
|
|
134
178
|
seenFinished.add(finishedKey(job));
|
|
135
179
|
}
|
|
136
|
-
emit({ type: "snapshot", jobs: snapshots });
|
|
180
|
+
emit({ type: "snapshot", jobs: snapshots, asOf, errors: workspaceErrors });
|
|
137
181
|
syncWatchers();
|
|
138
182
|
if (closed)
|
|
139
183
|
return;
|
|
@@ -146,6 +190,8 @@ export function watchWorkspaces(getWorkspaces, emit, options = {}) {
|
|
|
146
190
|
return {
|
|
147
191
|
refresh,
|
|
148
192
|
jobs: () => snapshots,
|
|
193
|
+
errors: () => workspaceErrors,
|
|
194
|
+
asOf: () => asOf,
|
|
149
195
|
close: () => {
|
|
150
196
|
closed = true;
|
|
151
197
|
if (timer)
|
package/dist/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.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.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Prism Hub — loopback dashboard and OS notifications for Dispatch jobs",
|
|
6
6
|
"exports": {
|
|
@@ -16,15 +16,19 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
|
-
"build": "tsc -p tsconfig.json && bun run scripts/build-dashboard.ts",
|
|
19
|
+
"build": "tsc -p tsconfig.json && bun run scripts/build-dashboard.ts && bun run scripts/build-notify.ts",
|
|
20
20
|
"start": "node dist/bin.js",
|
|
21
21
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
22
22
|
"test": "vitest run"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@repo-prism/dispatch": "1.
|
|
25
|
+
"@repo-prism/dispatch": "1.8.0",
|
|
26
|
+
"@repo-prism/host-session": "1.1.17",
|
|
27
|
+
"@repo-prism/shared": "1.1.1"
|
|
26
28
|
},
|
|
27
29
|
"devDependencies": {
|
|
30
|
+
"gsap": "^3.15.0",
|
|
31
|
+
"lucide-react": "^1.25.0",
|
|
28
32
|
"@types/react": "^19.2.17",
|
|
29
33
|
"@types/react-dom": "^19.2.3",
|
|
30
34
|
"react": "^19.2.7",
|