@productbrain/cli 0.1.0-beta.63 → 0.1.0-beta.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/capture.test.js +238 -17
- package/dist/__tests__/capture.test.js.map +1 -1
- package/dist/commands/admin/cockpit.d.ts +39 -10
- package/dist/commands/admin/cockpit.d.ts.map +1 -1
- package/dist/commands/admin/cockpit.js +205 -25
- package/dist/commands/admin/cockpit.js.map +1 -1
- package/dist/commands/admin/index.d.ts.map +1 -1
- package/dist/commands/admin/index.js +53 -0
- package/dist/commands/admin/index.js.map +1 -1
- package/dist/commands/capture.d.ts +5 -0
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +130 -0
- package/dist/commands/capture.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pb capture extensions — --link, --json flags.
|
|
2
|
+
* pb capture extensions — --link, --json flags, WP-319 grounding.
|
|
3
3
|
* TEN-341 test contract: capture --link calls createEntryRelation, capture --json outputs JSON.
|
|
4
|
+
* WP-319 S3: grounding fires in parallel, fail-open, --suggest-only, --strict, PB_GROUNDING_MODE.
|
|
4
5
|
*/
|
|
5
6
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
6
7
|
import { runCapture } from '../commands/capture.js';
|
|
@@ -23,9 +24,15 @@ describe('runCapture --link', () => {
|
|
|
23
24
|
});
|
|
24
25
|
it('creates entry then links to target with default relation type', async () => {
|
|
25
26
|
// Prefix "TEN:" is extracted → skips classification, routes directly to tensions
|
|
26
|
-
mcpCallWithSessionMock
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
28
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
29
|
+
return Promise.resolve([]);
|
|
30
|
+
if (fn === 'chain.createEntry')
|
|
31
|
+
return Promise.resolve({ docId: 'doc-1', entryId: 'TEN-710' });
|
|
32
|
+
if (fn === 'chain.createEntryRelation')
|
|
33
|
+
return Promise.resolve({});
|
|
34
|
+
return Promise.resolve({});
|
|
35
|
+
});
|
|
29
36
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
30
37
|
await runCapture({ text: 'TEN: missing validation', link: 'BET-151' });
|
|
31
38
|
// Verify classification was skipped (no resolveCollection call)
|
|
@@ -44,9 +51,15 @@ describe('runCapture --link', () => {
|
|
|
44
51
|
});
|
|
45
52
|
it('uses custom relation type when --type provided', async () => {
|
|
46
53
|
// Prefix "INS:" is extracted → skips classification, routes directly to insights
|
|
47
|
-
mcpCallWithSessionMock
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
55
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
56
|
+
return Promise.resolve([]);
|
|
57
|
+
if (fn === 'chain.createEntry')
|
|
58
|
+
return Promise.resolve({ docId: 'doc-2', entryId: 'INS-50' });
|
|
59
|
+
if (fn === 'chain.createEntryRelation')
|
|
60
|
+
return Promise.resolve({});
|
|
61
|
+
return Promise.resolve({});
|
|
62
|
+
});
|
|
50
63
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
51
64
|
await runCapture({ text: 'INS: discovered X', link: 'DEC-264', type: 'informed_by' });
|
|
52
65
|
expect(mcpCallWithSessionMock).not.toHaveBeenCalledWith('chain.resolveCollection', expect.anything());
|
|
@@ -65,8 +78,13 @@ describe('runCapture --json', () => {
|
|
|
65
78
|
});
|
|
66
79
|
it('outputs valid JSON with id field and no other stdout', async () => {
|
|
67
80
|
// Prefix "TEN:" is extracted → skips classification
|
|
68
|
-
mcpCallWithSessionMock
|
|
69
|
-
|
|
81
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
82
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
83
|
+
return Promise.resolve([]);
|
|
84
|
+
if (fn === 'chain.createEntry')
|
|
85
|
+
return Promise.resolve({ docId: 'doc-1', entryId: 'TEN-711' });
|
|
86
|
+
return Promise.resolve({});
|
|
87
|
+
});
|
|
70
88
|
let stdoutOutput = '';
|
|
71
89
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
|
|
72
90
|
stdoutOutput += String(chunk);
|
|
@@ -100,8 +118,13 @@ describe('runCapture description field routing', () => {
|
|
|
100
118
|
// The CLI always sends `description` — the Convex write gate remaps it to `belief`
|
|
101
119
|
// for the assumptions collection (TEN-1258). Verify the CLI routes correctly and
|
|
102
120
|
// sends the text as description so the Convex remap can fire.
|
|
103
|
-
mcpCallWithSessionMock
|
|
104
|
-
|
|
121
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
122
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
123
|
+
return Promise.resolve([]);
|
|
124
|
+
if (fn === 'chain.createEntry')
|
|
125
|
+
return Promise.resolve({ docId: 'doc-5', entryId: 'ASM-1' });
|
|
126
|
+
return Promise.resolve({});
|
|
127
|
+
});
|
|
105
128
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
106
129
|
await runCapture({ text: 'ASM: users won\'t pay before seeing value' });
|
|
107
130
|
const createCall = mcpCallWithSessionMock.mock.calls.find(([fn]) => fn === 'chain.createEntry');
|
|
@@ -129,9 +152,15 @@ describe('runCapture date inference', () => {
|
|
|
129
152
|
mockSession = { sessionId: 'sess-test' };
|
|
130
153
|
});
|
|
131
154
|
it('does not default date to today when no source date is present', async () => {
|
|
132
|
-
mcpCallWithSessionMock
|
|
133
|
-
|
|
134
|
-
|
|
155
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
156
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
157
|
+
return Promise.resolve([]);
|
|
158
|
+
if (fn === 'chain.resolveCollection')
|
|
159
|
+
return Promise.resolve({ collection: 'decisions', confidence: 0.9, tier: 'high' });
|
|
160
|
+
if (fn === 'chain.createEntry')
|
|
161
|
+
return Promise.resolve({ docId: 'doc-3', entryId: 'DEC-10' });
|
|
162
|
+
return Promise.resolve({});
|
|
163
|
+
});
|
|
135
164
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
136
165
|
await runCapture({ text: 'Decision without explicit source date' });
|
|
137
166
|
const createCall = mcpCallWithSessionMock.mock.calls.find(([fn]) => fn === 'chain.createEntry');
|
|
@@ -143,9 +172,15 @@ describe('runCapture date inference', () => {
|
|
|
143
172
|
writeSpy.mockRestore();
|
|
144
173
|
});
|
|
145
174
|
it('uses inferred source date when the capture text includes one', async () => {
|
|
146
|
-
mcpCallWithSessionMock
|
|
147
|
-
|
|
148
|
-
|
|
175
|
+
mcpCallWithSessionMock.mockImplementation((fn) => {
|
|
176
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
177
|
+
return Promise.resolve([]);
|
|
178
|
+
if (fn === 'chain.resolveCollection')
|
|
179
|
+
return Promise.resolve({ collection: 'decisions', confidence: 0.9, tier: 'high' });
|
|
180
|
+
if (fn === 'chain.createEntry')
|
|
181
|
+
return Promise.resolve({ docId: 'doc-4', entryId: 'DEC-11' });
|
|
182
|
+
return Promise.resolve({});
|
|
183
|
+
});
|
|
149
184
|
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
150
185
|
await runCapture({ text: 'Decision from April 1, 2026 steering meeting' });
|
|
151
186
|
const createCall = mcpCallWithSessionMock.mock.calls.find(([fn]) => fn === 'chain.createEntry');
|
|
@@ -153,4 +188,190 @@ describe('runCapture date inference', () => {
|
|
|
153
188
|
writeSpy.mockRestore();
|
|
154
189
|
});
|
|
155
190
|
});
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
// WP-319 S3: Pre-write grounding tests
|
|
193
|
+
// ---------------------------------------------------------------------------
|
|
194
|
+
describe('runCapture WP-319 grounding', () => {
|
|
195
|
+
const emptyGrounding = { index: 0, related: [], duplicates: [], governance: [], v: 1 };
|
|
196
|
+
const groundingWithDuplicate = {
|
|
197
|
+
index: 0,
|
|
198
|
+
related: [],
|
|
199
|
+
duplicates: [{ entryId: 'TEN-5', name: 'Similar tension', collectionSlug: 'tensions', matchType: 'possible_duplicate', overlapRatio: 0.9 }],
|
|
200
|
+
governance: [],
|
|
201
|
+
v: 1,
|
|
202
|
+
};
|
|
203
|
+
beforeEach(() => {
|
|
204
|
+
mcpCallWithSessionMock.mockReset();
|
|
205
|
+
mockSession = { sessionId: 'sess-test' };
|
|
206
|
+
delete process.env.PB_GROUNDING_MODE;
|
|
207
|
+
});
|
|
208
|
+
it('fires chain.suggestLinksForCapture in parallel and still calls createEntry', async () => {
|
|
209
|
+
// Prefix-based route skips classification; grounding fires for TEN prefix
|
|
210
|
+
mcpCallWithSessionMock
|
|
211
|
+
.mockImplementation((fn) => {
|
|
212
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
213
|
+
return Promise.resolve([emptyGrounding]);
|
|
214
|
+
if (fn === 'chain.createEntry')
|
|
215
|
+
return Promise.resolve({ docId: 'doc-1', entryId: 'TEN-720' });
|
|
216
|
+
return Promise.resolve({});
|
|
217
|
+
});
|
|
218
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
219
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
220
|
+
await runCapture({ text: 'TEN: grounding test tension' });
|
|
221
|
+
expect(mcpCallWithSessionMock).toHaveBeenCalledWith('chain.suggestLinksForCapture', expect.objectContaining({
|
|
222
|
+
entries: expect.arrayContaining([expect.objectContaining({ name: 'grounding test tension' })]),
|
|
223
|
+
}));
|
|
224
|
+
expect(mcpCallWithSessionMock).toHaveBeenCalledWith('chain.createEntry', expect.anything());
|
|
225
|
+
writeSpy.mockRestore();
|
|
226
|
+
stderrSpy.mockRestore();
|
|
227
|
+
});
|
|
228
|
+
it('does NOT block capture when grounding call fails', async () => {
|
|
229
|
+
mcpCallWithSessionMock
|
|
230
|
+
.mockImplementation((fn) => {
|
|
231
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
232
|
+
return Promise.reject(new Error('network error'));
|
|
233
|
+
if (fn === 'chain.createEntry')
|
|
234
|
+
return Promise.resolve({ docId: 'doc-2', entryId: 'TEN-721' });
|
|
235
|
+
return Promise.resolve({});
|
|
236
|
+
});
|
|
237
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
238
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
239
|
+
// Must not throw — grounding failure is fail-open
|
|
240
|
+
await expect(runCapture({ text: 'TEN: grounding failure test' })).resolves.toBeUndefined();
|
|
241
|
+
expect(mcpCallWithSessionMock).toHaveBeenCalledWith('chain.createEntry', expect.anything());
|
|
242
|
+
writeSpy.mockRestore();
|
|
243
|
+
stderrSpy.mockRestore();
|
|
244
|
+
});
|
|
245
|
+
it('--suggest-only does NOT call createEntry and outputs grounding data', async () => {
|
|
246
|
+
// In test env (non-TTY), isJsonMode() returns true → JSON path is taken.
|
|
247
|
+
mcpCallWithSessionMock
|
|
248
|
+
.mockImplementation((fn) => {
|
|
249
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
250
|
+
return Promise.resolve([groundingWithDuplicate]);
|
|
251
|
+
return Promise.resolve({});
|
|
252
|
+
});
|
|
253
|
+
let stdoutOutput = '';
|
|
254
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
|
|
255
|
+
stdoutOutput += String(chunk);
|
|
256
|
+
return true;
|
|
257
|
+
});
|
|
258
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
259
|
+
await runCapture({ text: 'TEN: duplicate candidate', suggestOnly: true });
|
|
260
|
+
expect(mcpCallWithSessionMock).not.toHaveBeenCalledWith('chain.createEntry', expect.anything());
|
|
261
|
+
// JSON output contains suggestOnly flag and grounding report
|
|
262
|
+
const jsonLines = stdoutOutput.split('\n').filter((l) => { try {
|
|
263
|
+
JSON.parse(l);
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return false;
|
|
268
|
+
} });
|
|
269
|
+
expect(jsonLines).toHaveLength(1);
|
|
270
|
+
const parsed = JSON.parse(jsonLines[0]);
|
|
271
|
+
expect(parsed.suggestOnly).toBe(true);
|
|
272
|
+
expect(parsed.groundingReport).toBeDefined();
|
|
273
|
+
writeSpy.mockRestore();
|
|
274
|
+
stderrSpy.mockRestore();
|
|
275
|
+
});
|
|
276
|
+
it('--suggest-only with --json outputs machine-readable object without calling createEntry', async () => {
|
|
277
|
+
mcpCallWithSessionMock
|
|
278
|
+
.mockImplementation((fn) => {
|
|
279
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
280
|
+
return Promise.resolve([emptyGrounding]);
|
|
281
|
+
return Promise.resolve({});
|
|
282
|
+
});
|
|
283
|
+
let stdoutOutput = '';
|
|
284
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
|
|
285
|
+
stdoutOutput += String(chunk);
|
|
286
|
+
return true;
|
|
287
|
+
});
|
|
288
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
289
|
+
await runCapture({ text: 'TEN: dry run json', json: true, suggestOnly: true });
|
|
290
|
+
expect(mcpCallWithSessionMock).not.toHaveBeenCalledWith('chain.createEntry', expect.anything());
|
|
291
|
+
const jsonLines = stdoutOutput.split('\n').filter((l) => { try {
|
|
292
|
+
JSON.parse(l);
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
return false;
|
|
297
|
+
} });
|
|
298
|
+
expect(jsonLines).toHaveLength(1);
|
|
299
|
+
const parsed = JSON.parse(jsonLines[0]);
|
|
300
|
+
expect(parsed.suggestOnly).toBe(true);
|
|
301
|
+
writeSpy.mockRestore();
|
|
302
|
+
stderrSpy.mockRestore();
|
|
303
|
+
});
|
|
304
|
+
it('banner is suppressed when grounding has no matches (zero-noise floor)', async () => {
|
|
305
|
+
mcpCallWithSessionMock
|
|
306
|
+
.mockImplementation((fn) => {
|
|
307
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
308
|
+
return Promise.resolve([emptyGrounding]);
|
|
309
|
+
if (fn === 'chain.createEntry')
|
|
310
|
+
return Promise.resolve({ docId: 'doc-3', entryId: 'TEN-722' });
|
|
311
|
+
return Promise.resolve({});
|
|
312
|
+
});
|
|
313
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
314
|
+
const stderrLines = [];
|
|
315
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation((chunk) => {
|
|
316
|
+
stderrLines.push(String(chunk));
|
|
317
|
+
return true;
|
|
318
|
+
});
|
|
319
|
+
await runCapture({ text: 'TEN: no matches tension' });
|
|
320
|
+
// No "Grounding" banner in stderr when zero matches
|
|
321
|
+
const groundingInStderr = stderrLines.some((l) => l.includes('Grounding'));
|
|
322
|
+
expect(groundingInStderr).toBe(false);
|
|
323
|
+
writeSpy.mockRestore();
|
|
324
|
+
stderrSpy.mockRestore();
|
|
325
|
+
});
|
|
326
|
+
it('PB_GROUNDING_MODE=off skips grounding call entirely', async () => {
|
|
327
|
+
process.env.PB_GROUNDING_MODE = 'off';
|
|
328
|
+
mcpCallWithSessionMock
|
|
329
|
+
.mockImplementation((fn) => {
|
|
330
|
+
if (fn === 'chain.createEntry')
|
|
331
|
+
return Promise.resolve({ docId: 'doc-4', entryId: 'TEN-723' });
|
|
332
|
+
return Promise.resolve({});
|
|
333
|
+
});
|
|
334
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
335
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
336
|
+
await runCapture({ text: 'TEN: no grounding env off' });
|
|
337
|
+
expect(mcpCallWithSessionMock).not.toHaveBeenCalledWith('chain.suggestLinksForCapture', expect.anything());
|
|
338
|
+
expect(mcpCallWithSessionMock).toHaveBeenCalledWith('chain.createEntry', expect.anything());
|
|
339
|
+
delete process.env.PB_GROUNDING_MODE;
|
|
340
|
+
writeSpy.mockRestore();
|
|
341
|
+
stderrSpy.mockRestore();
|
|
342
|
+
});
|
|
343
|
+
it('--json output stdout is clean (no grounding on stdout)', async () => {
|
|
344
|
+
mcpCallWithSessionMock
|
|
345
|
+
.mockImplementation((fn) => {
|
|
346
|
+
if (fn === 'chain.suggestLinksForCapture')
|
|
347
|
+
return Promise.resolve([groundingWithDuplicate]);
|
|
348
|
+
if (fn === 'chain.createEntry')
|
|
349
|
+
return Promise.resolve({ docId: 'doc-5', entryId: 'TEN-724' });
|
|
350
|
+
return Promise.resolve({});
|
|
351
|
+
});
|
|
352
|
+
let stdoutOutput = '';
|
|
353
|
+
const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation((chunk) => {
|
|
354
|
+
stdoutOutput += String(chunk);
|
|
355
|
+
return true;
|
|
356
|
+
});
|
|
357
|
+
const stderrSpy = vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
|
|
358
|
+
await runCapture({ text: 'TEN: json clean stdout', json: true });
|
|
359
|
+
// Stdout must be exactly one valid JSON line (jq .id must work)
|
|
360
|
+
const jsonLines = stdoutOutput.split('\n').filter((l) => { try {
|
|
361
|
+
JSON.parse(l);
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
catch {
|
|
365
|
+
return false;
|
|
366
|
+
} });
|
|
367
|
+
expect(jsonLines).toHaveLength(1);
|
|
368
|
+
const parsed = JSON.parse(jsonLines[0]);
|
|
369
|
+
expect(parsed.id).toBe('TEN-724');
|
|
370
|
+
// No grounding content in stdout
|
|
371
|
+
expect(stdoutOutput).not.toContain('Grounding');
|
|
372
|
+
expect(stdoutOutput).not.toContain('duplicate');
|
|
373
|
+
writeSpy.mockRestore();
|
|
374
|
+
stderrSpy.mockRestore();
|
|
375
|
+
});
|
|
376
|
+
});
|
|
156
377
|
//# sourceMappingURL=capture.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.test.js","sourceRoot":"","sources":["../../src/__tests__/capture.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capture.test.js","sourceRoot":"","sources":["../../src/__tests__/capture.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ink TUI cockpit for pb admin (WP-314 S1).
|
|
2
|
+
* Ink TUI cockpit for pb admin (WP-314 S1, WP-317 S3).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* WP-317 S3 adds:
|
|
5
|
+
* - Persistent env banner (DEV/PROD) on every tab
|
|
6
|
+
* - Tab navigation: Workspaces | Seeds | Changelog
|
|
7
|
+
* - Tab/Shift+Tab keyboard switching; mouse enable/disable sequences (best-effort)
|
|
8
|
+
* - Seeds tab: shows SEED_COMMAND_ENTRIES with static status (real runtime data in S4)
|
|
6
9
|
*
|
|
7
10
|
* Keyboard bindings:
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Tab Next tab
|
|
12
|
+
* Shift+Tab Previous tab
|
|
13
|
+
* / Enter filter mode (Workspaces + Seeds tabs)
|
|
14
|
+
* Escape Exit filter mode / clear filter, or exit cockpit
|
|
15
|
+
* Up/Down Navigate rows
|
|
16
|
+
* Enter Drill into selected workspace (Workspaces tab only)
|
|
17
|
+
* q Quit cockpit
|
|
18
|
+
* ? Toggle help overlay
|
|
14
19
|
*/
|
|
15
20
|
/** Mirrors NextCommand from adminBootstrap.ts (no cross-import). WP-314 S2. */
|
|
16
21
|
export type NextCommand = {
|
|
@@ -34,6 +39,24 @@ export type WorkspaceRow = {
|
|
|
34
39
|
nextCommand: NextCommand;
|
|
35
40
|
};
|
|
36
41
|
};
|
|
42
|
+
/** WP-317 S4 — seed row for Seeds tab, wired to real system_migrations data. */
|
|
43
|
+
export type SeedRow = {
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
requiresWorkspaceId: boolean;
|
|
47
|
+
dryRunSupported: boolean;
|
|
48
|
+
migrationId: string;
|
|
49
|
+
argsHash: string;
|
|
50
|
+
appliedAt: number | null;
|
|
51
|
+
lastRunAt: number | null;
|
|
52
|
+
status: 'applied' | 'failed' | 'no-op' | 'unknown';
|
|
53
|
+
};
|
|
54
|
+
/** WP-317 E8 — changelog row for heatmap tab. */
|
|
55
|
+
export type ChangelogRow = {
|
|
56
|
+
timestamp: number;
|
|
57
|
+
definitionSlug: string;
|
|
58
|
+
};
|
|
59
|
+
export type CockpitTab = 'workspaces' | 'seeds' | 'changelog';
|
|
37
60
|
export type CockpitProps = {
|
|
38
61
|
workspaces: WorkspaceRow[];
|
|
39
62
|
currentKeyWorkspaceId: string | null;
|
|
@@ -41,8 +64,14 @@ export type CockpitProps = {
|
|
|
41
64
|
onDrillIn: (ws: WorkspaceRow) => void;
|
|
42
65
|
/** Called when user confirms 'f' fix for a row. Parent runs the command. */
|
|
43
66
|
onRunFix: (ws: WorkspaceRow, cmd: NextCommand) => Promise<void>;
|
|
67
|
+
/** Gateway siteUrl — used for env banner and envLabel derivation. WP-317 S3. */
|
|
68
|
+
siteUrl: string;
|
|
69
|
+
/** Seed rows for Seeds tab. WP-317 S3. */
|
|
70
|
+
seedRows: SeedRow[];
|
|
71
|
+
/** Changelog rows for heatmap. WP-317 E8 / S4. */
|
|
72
|
+
changelogRows: ChangelogRow[];
|
|
44
73
|
};
|
|
45
|
-
export declare function Cockpit({ workspaces, currentKeyWorkspaceId, onExit, onDrillIn, onRunFix }: CockpitProps): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export declare function Cockpit({ workspaces, currentKeyWorkspaceId, onExit, onDrillIn, onRunFix, siteUrl, seedRows, changelogRows }: CockpitProps): import("react/jsx-runtime").JSX.Element;
|
|
46
75
|
export type WorkspaceHealthData = {
|
|
47
76
|
readiness: unknown;
|
|
48
77
|
collections: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cockpit.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/cockpit.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cockpit.d.ts","sourceRoot":"","sources":["../../../src/commands/admin/cockpit.tsx"],"names":[],"mappings":"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"}
|