@productbrain/cli 0.1.0-beta.1919 → 0.1.0-beta.1963
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__/conversation.test.d.ts +2 -0
- package/dist/__tests__/conversation.test.d.ts.map +1 -0
- package/dist/__tests__/conversation.test.js +113 -0
- package/dist/__tests__/conversation.test.js.map +1 -0
- package/dist/__tests__/ingest.test.js +9 -0
- package/dist/__tests__/ingest.test.js.map +1 -1
- package/dist/__tests__/orient.test.js +28 -1
- package/dist/__tests__/orient.test.js.map +1 -1
- package/dist/__tests__/profiles.test.js +10 -6
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/session-label.test.d.ts +2 -0
- package/dist/__tests__/session-label.test.d.ts.map +1 -0
- package/dist/__tests__/session-label.test.js +46 -0
- package/dist/__tests__/session-label.test.js.map +1 -0
- package/dist/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/__tests__/session-list-show.test.js +174 -0
- package/dist/__tests__/session-list-show.test.js.map +1 -0
- package/dist/__tests__/session-reset.test.js +23 -7
- package/dist/__tests__/session-reset.test.js.map +1 -1
- package/dist/__tests__/session-resume-backstop.test.js +2 -0
- package/dist/__tests__/session-resume-backstop.test.js.map +1 -1
- package/dist/__tests__/session-state-machine.test.js +190 -9
- package/dist/__tests__/session-state-machine.test.js.map +1 -1
- package/dist/__tests__/session-switch.test.js +4 -2
- package/dist/__tests__/session-switch.test.js.map +1 -1
- package/dist/__tests__/vocabulary-leak.test.js +5 -0
- package/dist/__tests__/vocabulary-leak.test.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +5 -4
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/ingest.d.ts.map +1 -1
- package/dist/commands/ingest.js +9 -0
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +35 -6
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +10 -5
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.d.ts +29 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +141 -23
- package/dist/commands/session.js.map +1 -1
- package/dist/formatters/__tests__/session-list-show.test.d.ts +2 -0
- package/dist/formatters/__tests__/session-list-show.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/session-list-show.test.js +159 -0
- package/dist/formatters/__tests__/session-list-show.test.js.map +1 -0
- package/dist/formatters/session.d.ts +46 -0
- package/dist/formatters/session.d.ts.map +1 -1
- package/dist/formatters/session.js +111 -0
- package/dist/formatters/session.js.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/conversation.d.ts +36 -0
- package/dist/lib/conversation.d.ts.map +1 -0
- package/dist/lib/conversation.js +66 -0
- package/dist/lib/conversation.js.map +1 -0
- package/dist/lib/productbrain-files.d.ts.map +1 -1
- package/dist/lib/productbrain-files.js +1 -0
- package/dist/lib/productbrain-files.js.map +1 -1
- package/dist/lib/productbrain-files.test.js +4 -2
- package/dist/lib/productbrain-files.test.js.map +1 -1
- package/dist/lib/session.d.ts +58 -12
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +196 -24
- package/dist/lib/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,17 @@
|
|
|
8
8
|
type SessionStartOptions = {
|
|
9
9
|
/** @deprecated Use global --json flag instead. Preserved for backward compatibility. */
|
|
10
10
|
json?: boolean;
|
|
11
|
+
/** WP-479 E2: explicit conversation-identity override (the manual seam — same tier as
|
|
12
|
+
* PB_CONVERSATION_ID, takes priority over every env-detected channel). */
|
|
13
|
+
conversation?: string;
|
|
11
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Auto-populate the session `label` (WP-479 E2, founder-day fix Pass 2) — the founder's recall
|
|
17
|
+
* cue for "which of my N conversations" is the worktree/branch, never a UUID. Priority:
|
|
18
|
+
* SUPERSET_WORKSPACE_NAME env → git branch (silent fail) → cwd basename. Server-side clamps to
|
|
19
|
+
* ~120 chars (mirrors MAX_TASK_LEN) — no client-side truncation needed here.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveSessionLabel(): string;
|
|
12
22
|
export declare function runSessionStart(options?: SessionStartOptions): Promise<void>;
|
|
13
23
|
/**
|
|
14
24
|
* pb session id — print current session ID bare to stdout (machine-readable).
|
|
@@ -33,6 +43,13 @@ export declare function runSessionId(): void;
|
|
|
33
43
|
* Guard (R4): if there IS an active session, confirm before discarding so in-flight captures
|
|
34
44
|
* aren't silently stranded. `--force` skips the prompt. In a non-interactive context the prompt
|
|
35
45
|
* can't run, so `--force` is required there.
|
|
46
|
+
*
|
|
47
|
+
* WP-479 review fix (Codex re-review): reset clears ALL session markers — the legacy session.json
|
|
48
|
+
* AND every per-conversation marker under `.productbrain/sessions/`. This is the recovery the
|
|
49
|
+
* pb:real/pb:preview binding-flip guard prints, and that guard refuses on ANY active marker; a
|
|
50
|
+
* conversation-scoped reset couldn't clear a sibling marker it has no env to resolve, so the flip
|
|
51
|
+
* would stay blocked unless `--force` (which strands the server session). A hard reset legitimately
|
|
52
|
+
* clears the whole worktree's local session state.
|
|
36
53
|
*/
|
|
37
54
|
export declare function runSessionReset(options?: {
|
|
38
55
|
force?: boolean;
|
|
@@ -40,5 +57,17 @@ export declare function runSessionReset(options?: {
|
|
|
40
57
|
export declare function runSessionClose(options?: {
|
|
41
58
|
force?: boolean;
|
|
42
59
|
}): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* pb session list — active sessions (with the per-key quota gauge) + a handful of recent
|
|
62
|
+
* non-active ones. Pure read over `agent.listSessions`; no local session required — this is
|
|
63
|
+
* exactly the command you run when you're NOT sure which session is yours.
|
|
64
|
+
*/
|
|
65
|
+
export declare function runSessionList(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* pb session show <id-or-conversation> — reconstruct the full conversation lineage (all
|
|
68
|
+
* agentSessions rows across 2h resumes + legacy linkedPreviousSessionId chains) plus the
|
|
69
|
+
* governance serves recorded for the conversation.
|
|
70
|
+
*/
|
|
71
|
+
export declare function runSessionShow(idOrConversation: string): Promise<void>;
|
|
43
72
|
export {};
|
|
44
73
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA+DH,KAAK,mBAAmB,GAAG;IACzB,wFAAwF;IACxF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;+EAC2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAc5C;AAgDD,wBAAsB,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtF;AAuND;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAUnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CtF;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKtF;AAID;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAQpD;AAWD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B5E"}
|
package/dist/commands/session.js
CHANGED
|
@@ -5,20 +5,45 @@
|
|
|
5
5
|
* BET-181 Slice 0: uses isJsonMode() for output branching. Existing --json flag
|
|
6
6
|
* on session start preserved for backward compatibility.
|
|
7
7
|
*/
|
|
8
|
+
import { execSync } from 'child_process';
|
|
9
|
+
import { basename } from 'path';
|
|
8
10
|
import { getConfigOrGuide } from '../lib/config.js';
|
|
9
11
|
import { kernelCall } from '../lib/client.js';
|
|
10
|
-
import { readSession, writeSession, clearSession, discardSession,
|
|
11
|
-
import {
|
|
12
|
+
import { readSession, writeSession, clearSession, discardSession, discardAllSessions, hasAnySessionMarker, hasAnyActiveSession, readClosedMarker, RESUME_WINDOW_MS, } from '../lib/session.js';
|
|
13
|
+
import { resolveConversationId } from '../lib/conversation.js';
|
|
14
|
+
import { isJsonMode, runCliCommand } from '../lib/runner.js';
|
|
12
15
|
import { confirm, isInteractive } from '../lib/prompts.js';
|
|
13
|
-
import { formatSessionStart, formatSessionClose, formatLoopUnfinished, buildPromoteCommand, } from '../formatters/session.js';
|
|
16
|
+
import { formatSessionStart, formatSessionClose, formatLoopUnfinished, formatSessionList, formatSessionShow, buildPromoteCommand, } from '../formatters/session.js';
|
|
14
17
|
import { runHandshake } from './handshake.js';
|
|
15
18
|
import { CLIError, ErrorCode } from '../lib/errors.js';
|
|
16
19
|
import { getActiveProfile } from '../lib/profiles.js';
|
|
17
20
|
import { readLocalProjectConfig, resolveEffectiveProfile, refreshPreviewApiKeyFromDisk } from '../lib/config.js';
|
|
18
21
|
import { resolveAppUrl } from '../lib/constants.js';
|
|
19
22
|
import { composeWrapupView } from '../lib/compose-wrapup-view.js';
|
|
20
|
-
/**
|
|
21
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Auto-populate the session `label` (WP-479 E2, founder-day fix Pass 2) — the founder's recall
|
|
25
|
+
* cue for "which of my N conversations" is the worktree/branch, never a UUID. Priority:
|
|
26
|
+
* SUPERSET_WORKSPACE_NAME env → git branch (silent fail) → cwd basename. Server-side clamps to
|
|
27
|
+
* ~120 chars (mirrors MAX_TASK_LEN) — no client-side truncation needed here.
|
|
28
|
+
*/
|
|
29
|
+
export function resolveSessionLabel() {
|
|
30
|
+
const superset = process.env.SUPERSET_WORKSPACE_NAME;
|
|
31
|
+
if (superset && superset.trim())
|
|
32
|
+
return superset.trim();
|
|
33
|
+
try {
|
|
34
|
+
const branch = execSync('git rev-parse --abbrev-ref HEAD', {
|
|
35
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
36
|
+
})
|
|
37
|
+
.toString()
|
|
38
|
+
.trim();
|
|
39
|
+
if (branch)
|
|
40
|
+
return branch;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Silent fail — not a git repo, git not installed, detached HEAD edge cases, etc.
|
|
44
|
+
}
|
|
45
|
+
return basename(process.cwd());
|
|
46
|
+
}
|
|
22
47
|
/**
|
|
23
48
|
* True for the auth/INTERNAL failure a stale preview apiKey produces (WP-458 E2). The server
|
|
24
49
|
* returns an opaque INTERNAL for a rejected key, and a true 401 maps to category 'auth' — either
|
|
@@ -112,15 +137,30 @@ async function establishSession(options) {
|
|
|
112
137
|
// Effective profile for this start — used both for the switch-backstop decision and to
|
|
113
138
|
// stamp the session (one read, one value, so they can't disagree mid-start).
|
|
114
139
|
const effectiveProfile = resolveEffectiveProfile().profile;
|
|
140
|
+
// WP-479 E2: resolve the conversation identity ONCE here (explicit --conversation flag wins
|
|
141
|
+
// over every env-detected channel — see lib/conversation.ts). Every session.ts read/write call
|
|
142
|
+
// below reuses this exact value (re-normalizing an already-normalized value is a no-op) so a
|
|
143
|
+
// single `pb session start` invocation can never target two different markers.
|
|
144
|
+
const conversationId = resolveConversationId(options.conversation);
|
|
145
|
+
// Review fix (Codex): `--conversation` is a manual override only `pb session start` sees — later
|
|
146
|
+
// bare `pb` commands (orient, capture, close) resolve identity from env only. If the flag resolves
|
|
147
|
+
// to a DIFFERENT conversation than a bare env-only resolution would, those follow-ups fall back to
|
|
148
|
+
// the wrong marker (or the legacy one) and can't find this session. Warn so the "advertised manual
|
|
149
|
+
// seam" gap is surfaced, not silent (the flag's documented contract is to pair it with
|
|
150
|
+
// PB_CONVERSATION_ID — index.ts). Compare RESOLVED identities so a normalized value doesn't
|
|
151
|
+
// false-trigger.
|
|
152
|
+
if (options.conversation && !json && resolveConversationId() !== conversationId) {
|
|
153
|
+
process.stderr.write(`⚠ --conversation is only read by \`pb session start\`. Set PB_CONVERSATION_ID=${conversationId} in this shell so later bare \`pb\` commands attribute to the same conversation.\n`);
|
|
154
|
+
}
|
|
115
155
|
// Check for existing session
|
|
116
|
-
const existing = readSession();
|
|
156
|
+
const existing = readSession(conversationId ?? undefined);
|
|
117
157
|
if (existing) {
|
|
118
158
|
// Backstop (TEN-2163): if the effective profile changed since this session started,
|
|
119
159
|
// it's pinned to the old workspace — discard it and start fresh. Local, offline-safe.
|
|
120
160
|
const currentProfile = effectiveProfile;
|
|
121
161
|
const switched = existing.profile && currentProfile && existing.profile !== currentProfile;
|
|
122
162
|
if (switched) {
|
|
123
|
-
discardSession();
|
|
163
|
+
discardSession(conversationId ?? undefined);
|
|
124
164
|
// fall through to the fresh-start path below
|
|
125
165
|
}
|
|
126
166
|
else {
|
|
@@ -149,7 +189,7 @@ async function establishSession(options) {
|
|
|
149
189
|
}
|
|
150
190
|
}
|
|
151
191
|
// WP-322 E1: Check for a recent closed session — auto-resume within 2h window
|
|
152
|
-
const closedMarker = readClosedMarker();
|
|
192
|
+
const closedMarker = readClosedMarker(conversationId ?? undefined);
|
|
153
193
|
if (closedMarker) {
|
|
154
194
|
const elapsed = Date.now() - new Date(closedMarker.closedAt).getTime();
|
|
155
195
|
if (elapsed < RESUME_WINDOW_MS) {
|
|
@@ -162,7 +202,7 @@ async function establishSession(options) {
|
|
|
162
202
|
// to a fresh start instead. This mirrors the active-session profile backstop above, keyed
|
|
163
203
|
// on workspaceId — the resume path previously had no such guard, which is the gap E2 closes.
|
|
164
204
|
if (wsForResume?._id && closedMarker.workspaceId !== wsForResume._id) {
|
|
165
|
-
discardSession();
|
|
205
|
+
discardSession(conversationId ?? undefined);
|
|
166
206
|
// fall through to the fresh-start path below
|
|
167
207
|
}
|
|
168
208
|
else if (wsForResume?.keyId) {
|
|
@@ -173,6 +213,7 @@ async function establishSession(options) {
|
|
|
173
213
|
apiKeyId: wsForResume.keyId,
|
|
174
214
|
previousSessionId: closedMarker.sessionId,
|
|
175
215
|
clientKind: 'cli',
|
|
216
|
+
conversationId: conversationId ?? undefined,
|
|
176
217
|
});
|
|
177
218
|
const shortPrevId = closedMarker.sessionId.slice(-8);
|
|
178
219
|
const state = {
|
|
@@ -183,7 +224,7 @@ async function establishSession(options) {
|
|
|
183
224
|
entriesCaptured: [],
|
|
184
225
|
profile: effectiveProfile ?? undefined,
|
|
185
226
|
};
|
|
186
|
-
writeSession(state);
|
|
227
|
+
writeSession(state, conversationId ?? undefined);
|
|
187
228
|
if (json) {
|
|
188
229
|
process.stdout.write(JSON.stringify({
|
|
189
230
|
sessionId: state.sessionId,
|
|
@@ -207,7 +248,7 @@ async function establishSession(options) {
|
|
|
207
248
|
}
|
|
208
249
|
else {
|
|
209
250
|
// Marker is stale (>2h) — clear it so next session starts fresh
|
|
210
|
-
clearSession();
|
|
251
|
+
clearSession(conversationId ?? undefined);
|
|
211
252
|
}
|
|
212
253
|
}
|
|
213
254
|
// Resolve workspace + keyId
|
|
@@ -219,13 +260,17 @@ async function establishSession(options) {
|
|
|
219
260
|
guidance: 'Generate a readwrite key: Product Brain app → Settings → API Keys.',
|
|
220
261
|
});
|
|
221
262
|
}
|
|
222
|
-
// Start agent session with clientKind attribution (DEC-184)
|
|
263
|
+
// Start agent session with clientKind attribution (DEC-184). WP-479 E2: thread the resolved
|
|
264
|
+
// conversationId and an auto-populated label — parentSessionId is dormant, never set here.
|
|
265
|
+
const label = resolveSessionLabel();
|
|
223
266
|
if (!json)
|
|
224
267
|
process.stdout.write('Starting session...\n');
|
|
225
268
|
const result = await kernelCall('agent.startSession', {
|
|
226
269
|
workspaceId: workspace._id,
|
|
227
270
|
apiKeyId: workspace.keyId,
|
|
228
271
|
clientKind: 'cli',
|
|
272
|
+
conversationId: conversationId ?? undefined,
|
|
273
|
+
label,
|
|
229
274
|
});
|
|
230
275
|
// Persist session state
|
|
231
276
|
const state = {
|
|
@@ -236,7 +281,7 @@ async function establishSession(options) {
|
|
|
236
281
|
entriesCaptured: [],
|
|
237
282
|
profile: effectiveProfile ?? undefined,
|
|
238
283
|
};
|
|
239
|
-
writeSession(state);
|
|
284
|
+
writeSession(state, conversationId ?? undefined);
|
|
240
285
|
if (json) {
|
|
241
286
|
process.stdout.write(JSON.stringify({
|
|
242
287
|
sessionId: state.sessionId,
|
|
@@ -285,27 +330,43 @@ export function runSessionId() {
|
|
|
285
330
|
* Guard (R4): if there IS an active session, confirm before discarding so in-flight captures
|
|
286
331
|
* aren't silently stranded. `--force` skips the prompt. In a non-interactive context the prompt
|
|
287
332
|
* can't run, so `--force` is required there.
|
|
333
|
+
*
|
|
334
|
+
* WP-479 review fix (Codex re-review): reset clears ALL session markers — the legacy session.json
|
|
335
|
+
* AND every per-conversation marker under `.productbrain/sessions/`. This is the recovery the
|
|
336
|
+
* pb:real/pb:preview binding-flip guard prints, and that guard refuses on ANY active marker; a
|
|
337
|
+
* conversation-scoped reset couldn't clear a sibling marker it has no env to resolve, so the flip
|
|
338
|
+
* would stay blocked unless `--force` (which strands the server session). A hard reset legitimately
|
|
339
|
+
* clears the whole worktree's local session state.
|
|
288
340
|
*/
|
|
289
341
|
export async function runSessionReset(options = {}) {
|
|
290
342
|
const active = readSession();
|
|
291
|
-
//
|
|
343
|
+
// Reset clears ALL markers, so the confirmation guard must consider ANY active session — including a
|
|
344
|
+
// SIBLING conversation's — not just the current one (Codex re-review): otherwise reset would
|
|
345
|
+
// silently delete a sibling active marker (even non-interactively) and strand that server session.
|
|
346
|
+
const anyActive = active !== null || hasAnyActiveSession();
|
|
347
|
+
// Nothing local to reset — no active session and no marker of any conversation. (A lone
|
|
292
348
|
// PREVIEW_MODE marker is binding state, not session state — `npm run pb:real` clears it.)
|
|
293
|
-
if (!active && !
|
|
349
|
+
if (!active && !hasAnySessionMarker()) {
|
|
294
350
|
process.stdout.write('Nothing to reset — no local session state.\n');
|
|
295
351
|
return;
|
|
296
352
|
}
|
|
297
|
-
//
|
|
298
|
-
if (
|
|
353
|
+
// Any active session present (current OR sibling): confirm before discarding (R4) unless --force.
|
|
354
|
+
if (anyActive && !options.force) {
|
|
299
355
|
if (!isInteractive()) {
|
|
300
356
|
throw new CLIError('Active session present — refusing to reset without confirmation.', {
|
|
301
357
|
code: ErrorCode.NON_INTERACTIVE,
|
|
302
358
|
category: 'session',
|
|
303
|
-
guidance: 'Re-run with `pb session reset --force` to discard the active session.',
|
|
359
|
+
guidance: 'Re-run with `pb session reset --force` to discard the active session(s).',
|
|
304
360
|
});
|
|
305
361
|
}
|
|
306
|
-
|
|
362
|
+
if (active) {
|
|
363
|
+
process.stdout.write(`Active session: ${active.sessionId} (${active.entriesCaptured.length} entries captured)\n`);
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
process.stdout.write('An active session exists in another conversation in this worktree.\n');
|
|
367
|
+
}
|
|
307
368
|
const ok = await confirm({
|
|
308
|
-
message: 'Discard
|
|
369
|
+
message: 'Discard all local sessions and any in-flight captures?',
|
|
309
370
|
initialValue: false,
|
|
310
371
|
});
|
|
311
372
|
if (!ok) {
|
|
@@ -313,9 +374,9 @@ export async function runSessionReset(options = {}) {
|
|
|
313
374
|
return;
|
|
314
375
|
}
|
|
315
376
|
}
|
|
316
|
-
// Hard-reset: discard session
|
|
317
|
-
|
|
318
|
-
process.stdout.write('Session state reset — session
|
|
377
|
+
// Hard-reset: discard ALL session markers (no resume marker). Binding state is left untouched.
|
|
378
|
+
discardAllSessions();
|
|
379
|
+
process.stdout.write('Session state reset — all local session markers cleared.\n');
|
|
319
380
|
}
|
|
320
381
|
export async function runSessionClose(options = {}) {
|
|
321
382
|
const config = await getConfigOrGuide(() => runSessionClose(options));
|
|
@@ -445,4 +506,61 @@ export async function runSessionClose(options = {}) {
|
|
|
445
506
|
process.stdout.write('Refreshing context...\n');
|
|
446
507
|
await runHandshake({ force: false, apply: true, lenient: true, invocationPath: 'session-close' });
|
|
447
508
|
}
|
|
509
|
+
// ─── WP-479 E4: pb session list / pb session show ────────────────────────────
|
|
510
|
+
/**
|
|
511
|
+
* pb session list — active sessions (with the per-key quota gauge) + a handful of recent
|
|
512
|
+
* non-active ones. Pure read over `agent.listSessions`; no local session required — this is
|
|
513
|
+
* exactly the command you run when you're NOT sure which session is yours.
|
|
514
|
+
*/
|
|
515
|
+
export async function runSessionList() {
|
|
516
|
+
const config = await getConfigOrGuide(() => runSessionList());
|
|
517
|
+
if (!config)
|
|
518
|
+
return;
|
|
519
|
+
await runCliCommand({
|
|
520
|
+
fn: () => kernelCall('agent.listSessions', {}),
|
|
521
|
+
formatPretty: (data) => formatSessionList(data),
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Convex document ids are ~32 chars of lowercase base32 — used only to decide which arg KIND to
|
|
526
|
+
* try first. It is a routing heuristic, not a validator: a conversationId can coincidentally match
|
|
527
|
+
* (it allows the same charset), so a shaped arg that fails as a sessionId is retried as a
|
|
528
|
+
* conversationId before giving up (the spec's contract: a copied `list` row id — either column —
|
|
529
|
+
* must be directly usable by `show`).
|
|
530
|
+
*/
|
|
531
|
+
const CONVEX_DOC_ID_RE = /^[a-z0-9]{25,40}$/;
|
|
532
|
+
/**
|
|
533
|
+
* pb session show <id-or-conversation> — reconstruct the full conversation lineage (all
|
|
534
|
+
* agentSessions rows across 2h resumes + legacy linkedPreviousSessionId chains) plus the
|
|
535
|
+
* governance serves recorded for the conversation.
|
|
536
|
+
*/
|
|
537
|
+
export async function runSessionShow(idOrConversation) {
|
|
538
|
+
const config = await getConfigOrGuide(() => runSessionShow(idOrConversation));
|
|
539
|
+
if (!config)
|
|
540
|
+
return;
|
|
541
|
+
const arg = idOrConversation.trim();
|
|
542
|
+
if (!arg) {
|
|
543
|
+
throw new CLIError('Provide a session id or conversation id.', {
|
|
544
|
+
code: ErrorCode.VALIDATION_FAILED,
|
|
545
|
+
category: 'validation',
|
|
546
|
+
guidance: 'Copy one from `pb session list`.',
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
const fetchShow = async () => {
|
|
550
|
+
if (CONVEX_DOC_ID_RE.test(arg)) {
|
|
551
|
+
try {
|
|
552
|
+
return await kernelCall('agent.showConversation', { sessionId: arg });
|
|
553
|
+
}
|
|
554
|
+
catch {
|
|
555
|
+
// Not a session doc id after all (validation reject or not-found) — fall through and
|
|
556
|
+
// retry the same string as a conversationId before reporting failure.
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
return await kernelCall('agent.showConversation', { conversationId: arg });
|
|
560
|
+
};
|
|
561
|
+
await runCliCommand({
|
|
562
|
+
fn: fetchShow,
|
|
563
|
+
formatPretty: (data) => formatSessionShow(data),
|
|
564
|
+
});
|
|
565
|
+
}
|
|
448
566
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-list-show.test.d.ts","sourceRoot":"","sources":["../../../src/formatters/__tests__/session-list-show.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pb session list / show formatters — WP-479 E4 (traceback + quota observability).
|
|
3
|
+
*
|
|
4
|
+
* Covers the founder-facing contract from the design spec:
|
|
5
|
+
* - list: quota gauge ("N of CAP active"), copyable ids, truncated conversationId,
|
|
6
|
+
* and the label-collision cue (≥2 ACTIVE rows sharing a label get ordinal suffixes).
|
|
7
|
+
* - show: lineage header + per-session blocks + bounded serves rendering.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import { formatSessionList, formatSessionShow, } from '../session.js';
|
|
11
|
+
function listRow(overrides = {}) {
|
|
12
|
+
return {
|
|
13
|
+
sessionId: 'js7abc123def456ghi789jkl012mno',
|
|
14
|
+
conversationId: 'conv-a',
|
|
15
|
+
label: 'session-attribution',
|
|
16
|
+
clientKind: 'cli',
|
|
17
|
+
initiatedBy: 'Randy',
|
|
18
|
+
status: 'active',
|
|
19
|
+
startedAt: Date.now() - 10 * 60_000,
|
|
20
|
+
lastToolCallAt: Date.now() - 60_000,
|
|
21
|
+
entriesCreatedCount: 2,
|
|
22
|
+
entriesModifiedCount: 1,
|
|
23
|
+
purpose: null,
|
|
24
|
+
...overrides,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function showRow(overrides = {}) {
|
|
28
|
+
return {
|
|
29
|
+
...listRow(),
|
|
30
|
+
entriesCreated: ['e1', 'e2'],
|
|
31
|
+
entriesModified: ['e3'],
|
|
32
|
+
relationsCreated: 4,
|
|
33
|
+
gateFailures: 0,
|
|
34
|
+
contradictionWarnings: 1,
|
|
35
|
+
...overrides,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function serve(overrides = {}) {
|
|
39
|
+
return {
|
|
40
|
+
servedAt: Date.now() - 5 * 60_000,
|
|
41
|
+
entryId: 'STD-12',
|
|
42
|
+
surface: 'orient',
|
|
43
|
+
renderMode: 'brief',
|
|
44
|
+
task: 'build the thing',
|
|
45
|
+
sessionId: 'js7abc123def456ghi789jkl012mno',
|
|
46
|
+
...overrides,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
describe('formatSessionList', () => {
|
|
50
|
+
it('renders the quota gauge as "N of CAP active"', () => {
|
|
51
|
+
const data = {
|
|
52
|
+
active: [listRow()],
|
|
53
|
+
recent: [],
|
|
54
|
+
quota: { activeCount: 1, cap: 50 },
|
|
55
|
+
};
|
|
56
|
+
expect(formatSessionList(data)).toContain('Quota: 1 of 50 active');
|
|
57
|
+
});
|
|
58
|
+
it('appends ordinal suffixes when two ACTIVE rows share a label (collision cue), stable oldest-first', () => {
|
|
59
|
+
const older = listRow({ sessionId: 'sess-older', startedAt: Date.now() - 60 * 60_000 });
|
|
60
|
+
const newer = listRow({ sessionId: 'sess-newer', startedAt: Date.now() - 5 * 60_000 });
|
|
61
|
+
const data = {
|
|
62
|
+
active: [newer, older], // deliberately newest-first input — ordinals must still be oldest-first
|
|
63
|
+
recent: [],
|
|
64
|
+
quota: { activeCount: 2, cap: 50 },
|
|
65
|
+
};
|
|
66
|
+
const out = formatSessionList(data);
|
|
67
|
+
expect(out).toContain('session-attribution (1)');
|
|
68
|
+
expect(out).toContain('session-attribution (2)');
|
|
69
|
+
// The OLDER session gets (1): find each row line and check pairing.
|
|
70
|
+
const olderLine = out.split('\n').find((l) => l.includes('sess-older'));
|
|
71
|
+
const newerLine = out.split('\n').find((l) => l.includes('sess-newer'));
|
|
72
|
+
expect(olderLine).toContain('session-attribution (1)');
|
|
73
|
+
expect(newerLine).toContain('session-attribution (2)');
|
|
74
|
+
});
|
|
75
|
+
it('does not add ordinals for unique labels or for a collision that spans only non-active rows', () => {
|
|
76
|
+
const active = listRow({ sessionId: 'sess-a', label: 'wt-unique' });
|
|
77
|
+
const recentSameLabel = listRow({ sessionId: 'sess-b', label: 'wt-unique', status: 'closed' });
|
|
78
|
+
const data = {
|
|
79
|
+
active: [active],
|
|
80
|
+
recent: [recentSameLabel],
|
|
81
|
+
quota: { activeCount: 1, cap: 50 },
|
|
82
|
+
};
|
|
83
|
+
const out = formatSessionList(data);
|
|
84
|
+
expect(out).not.toContain('wt-unique (1)');
|
|
85
|
+
expect(out).toContain('wt-unique');
|
|
86
|
+
});
|
|
87
|
+
it('truncates a long conversationId to ~12 chars in the table', () => {
|
|
88
|
+
const sha = 'a'.repeat(64);
|
|
89
|
+
const data = {
|
|
90
|
+
active: [listRow({ conversationId: sha })],
|
|
91
|
+
recent: [],
|
|
92
|
+
quota: { activeCount: 1, cap: 50 },
|
|
93
|
+
};
|
|
94
|
+
const out = formatSessionList(data);
|
|
95
|
+
expect(out).toContain(`${'a'.repeat(12)}…`);
|
|
96
|
+
expect(out).not.toContain(sha);
|
|
97
|
+
});
|
|
98
|
+
it('renders the empty state and the recent section', () => {
|
|
99
|
+
const data = {
|
|
100
|
+
active: [],
|
|
101
|
+
recent: [listRow({ sessionId: 'sess-closed', status: 'closed' })],
|
|
102
|
+
quota: { activeCount: 0, cap: 50 },
|
|
103
|
+
};
|
|
104
|
+
const out = formatSessionList(data);
|
|
105
|
+
expect(out).toContain('No active sessions.');
|
|
106
|
+
expect(out).toContain('Recent (1):');
|
|
107
|
+
expect(out).toContain('sess-closed');
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('formatSessionShow', () => {
|
|
111
|
+
it('renders the lineage header (conversationId, label, N sessions) and per-session blocks', () => {
|
|
112
|
+
const out = formatSessionShow({
|
|
113
|
+
conversationId: 'conv-lineage',
|
|
114
|
+
sessions: [
|
|
115
|
+
showRow({ sessionId: 'sess-new', status: 'active' }),
|
|
116
|
+
showRow({ sessionId: 'sess-old', status: 'closed' }),
|
|
117
|
+
],
|
|
118
|
+
serves: [],
|
|
119
|
+
});
|
|
120
|
+
expect(out).toContain('Conversation: conv-lineage');
|
|
121
|
+
expect(out).toContain('Label: session-attribution');
|
|
122
|
+
expect(out).toContain('2 session(s) in lineage');
|
|
123
|
+
expect(out).toContain('sess-new');
|
|
124
|
+
expect(out).toContain('sess-old');
|
|
125
|
+
expect(out).toContain('Created: e1, e2');
|
|
126
|
+
expect(out).toContain('Modified: e3');
|
|
127
|
+
expect(out).toContain('Relations: 4');
|
|
128
|
+
});
|
|
129
|
+
it('marks a legacy lineage that has no conversationId', () => {
|
|
130
|
+
const out = formatSessionShow({
|
|
131
|
+
conversationId: null,
|
|
132
|
+
sessions: [showRow({ conversationId: null })],
|
|
133
|
+
serves: [],
|
|
134
|
+
});
|
|
135
|
+
expect(out).toContain('(legacy — no conversationId)');
|
|
136
|
+
});
|
|
137
|
+
it('shows at most 10 serves, newest first, with entry id + renderMode, and the total count', () => {
|
|
138
|
+
const serves = Array.from({ length: 12 }, (_, i) => serve({ entryId: `STD-${i + 1}`, servedAt: Date.now() - i * 60_000 }));
|
|
139
|
+
const out = formatSessionShow({
|
|
140
|
+
conversationId: 'conv-served',
|
|
141
|
+
sessions: [showRow()],
|
|
142
|
+
serves,
|
|
143
|
+
});
|
|
144
|
+
expect(out).toContain('Serves (10 of 12 shown, most recent first):');
|
|
145
|
+
expect(out).toContain('STD-1 ');
|
|
146
|
+
expect(out).toContain('STD-10');
|
|
147
|
+
expect(out).not.toContain('STD-11');
|
|
148
|
+
expect(out).toContain('brief');
|
|
149
|
+
});
|
|
150
|
+
it('renders the no-serves state', () => {
|
|
151
|
+
const out = formatSessionShow({
|
|
152
|
+
conversationId: 'conv-quiet',
|
|
153
|
+
sessions: [showRow()],
|
|
154
|
+
serves: [],
|
|
155
|
+
});
|
|
156
|
+
expect(out).toContain('No governance serves recorded for this conversation.');
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=session-list-show.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-list-show.test.js","sourceRoot":"","sources":["../../../src/formatters/__tests__/session-list-show.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,4 +45,50 @@ export declare function formatSessionClose(session: SessionState, wrapup: Sessio
|
|
|
45
45
|
* session was closed.
|
|
46
46
|
*/
|
|
47
47
|
export declare function formatLoopUnfinished(wrapup: SessionCloseWrapup): string;
|
|
48
|
+
/** One session row as returned by `agent.listSessions` / carried in `agent.showConversation`. */
|
|
49
|
+
export interface SessionListRow {
|
|
50
|
+
sessionId: string;
|
|
51
|
+
conversationId: string | null;
|
|
52
|
+
label: string | null;
|
|
53
|
+
clientKind: string | null;
|
|
54
|
+
initiatedBy: string;
|
|
55
|
+
status: string;
|
|
56
|
+
startedAt: number;
|
|
57
|
+
lastToolCallAt: number;
|
|
58
|
+
entriesCreatedCount: number;
|
|
59
|
+
entriesModifiedCount: number;
|
|
60
|
+
purpose: string | null;
|
|
61
|
+
}
|
|
62
|
+
export interface SessionListData {
|
|
63
|
+
active: SessionListRow[];
|
|
64
|
+
recent: SessionListRow[];
|
|
65
|
+
quota: {
|
|
66
|
+
activeCount: number;
|
|
67
|
+
cap: number;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** A lineage row as returned by `agent.showConversation` — SessionListRow plus per-session activity detail. */
|
|
71
|
+
export interface ShowLineageRow extends SessionListRow {
|
|
72
|
+
entriesCreated: string[];
|
|
73
|
+
entriesModified: string[];
|
|
74
|
+
relationsCreated: number;
|
|
75
|
+
gateFailures: number;
|
|
76
|
+
contradictionWarnings: number;
|
|
77
|
+
}
|
|
78
|
+
/** One governanceServedLog row surfaced by `agent.showConversation`. */
|
|
79
|
+
export interface ShowServeRow {
|
|
80
|
+
servedAt: number;
|
|
81
|
+
entryId: string;
|
|
82
|
+
surface: string;
|
|
83
|
+
renderMode: string | null;
|
|
84
|
+
task: string | null;
|
|
85
|
+
sessionId: string | null;
|
|
86
|
+
}
|
|
87
|
+
export interface ShowConversationData {
|
|
88
|
+
conversationId: string | null;
|
|
89
|
+
sessions: ShowLineageRow[];
|
|
90
|
+
serves: ShowServeRow[];
|
|
91
|
+
}
|
|
92
|
+
export declare function formatSessionList(data: SessionListData): string;
|
|
93
|
+
export declare function formatSessionShow(data: ShowConversationData): string;
|
|
48
94
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/formatters/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/formatters/session.ts"],"names":[],"mappings":"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"}
|