praxis-agent 0.4.0 → 0.5.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 +3 -2
- package/dist/application/session-service.d.ts +8 -0
- package/dist/application/session-service.d.ts.map +1 -1
- package/dist/application/session-service.js +116 -8
- package/dist/application/session-service.js.map +1 -1
- package/dist/application/top-level-agent-manager.d.ts +15 -1
- package/dist/application/top-level-agent-manager.d.ts.map +1 -1
- package/dist/application/top-level-agent-manager.js +101 -34
- package/dist/application/top-level-agent-manager.js.map +1 -1
- package/dist/cli/agents-dashboard.d.ts.map +1 -1
- package/dist/cli/agents-dashboard.js +22 -6
- package/dist/cli/agents-dashboard.js.map +1 -1
- package/dist/cli/interactive.d.ts +18 -2
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +102 -2
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli/tui/slash-commands.d.ts.map +1 -1
- package/dist/cli/tui/slash-commands.js +5 -0
- package/dist/cli/tui/slash-commands.js.map +1 -1
- package/dist/cli.d.ts +8 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -1
- package/dist/cli.js.map +1 -1
- package/dist/persistence/claude-job-store.d.ts +11 -1
- package/dist/persistence/claude-job-store.d.ts.map +1 -1
- package/dist/persistence/claude-job-store.js +23 -2
- package/dist/persistence/claude-job-store.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ForkResult, ManualCompactResult, ManualCompactSelection, RewindPoint, SessionRunResult, SessionSummary, SideQuestionForkResult, SideQuestionResult } from '../application/session-service.js';
|
|
1
|
+
import type { ForkResult, ManualCompactResult, ManualCompactSelection, RewindPoint, SessionForkCheckpoint, SessionRunResult, SessionSummary, SideQuestionForkResult, SideQuestionResult } from '../application/session-service.js';
|
|
2
2
|
import type { ModelImage, ModelToolCall, RuntimeEventSink } from '../core/runtime.js';
|
|
3
3
|
import type { CliElicitationRequest, CliElicitationResult, CliRuntimeInfo } from './protocol.js';
|
|
4
4
|
import type { ClaudeInteractiveToolCallbacks } from '../tools/claude-interactive-tools.js';
|
|
@@ -28,6 +28,8 @@ interface InteractiveSessionCommands {
|
|
|
28
28
|
recordCdUsage?(sessionId: string): Promise<void>;
|
|
29
29
|
answerSideQuestion?(sessionId: string | undefined, question: string, signal?: AbortSignal, onDelta?: (delta: string) => void, permissionMode?: ClaudePermissionMode): Promise<SideQuestionResult>;
|
|
30
30
|
recordBtwUsage?(sessionId: string | undefined, permissionMode?: ClaudePermissionMode): Promise<string>;
|
|
31
|
+
recordBackgroundUsage?(sessionId: string | undefined, permissionMode?: ClaudePermissionMode): Promise<string>;
|
|
32
|
+
recordBackgroundLaunch?(sessionId: string): Promise<SessionForkCheckpoint>;
|
|
31
33
|
forkSideQuestion?(sessionId: string, question: string, signal?: AbortSignal): Promise<SideQuestionForkResult>;
|
|
32
34
|
rename?(sessionId: string, name: string): Promise<void>;
|
|
33
35
|
sessionNameSuggestion?(sessionId: string, signal?: AbortSignal): Promise<string | null>;
|
|
@@ -69,6 +71,17 @@ export interface InteractiveResumeOptions {
|
|
|
69
71
|
forkSessionId?: string;
|
|
70
72
|
retryInterruptedTools?: boolean;
|
|
71
73
|
}
|
|
74
|
+
export interface InteractiveBackgroundRequest {
|
|
75
|
+
sourceSessionId: string;
|
|
76
|
+
sourceCheckpoint: SessionForkCheckpoint;
|
|
77
|
+
prompt: string;
|
|
78
|
+
detail: string;
|
|
79
|
+
cwd: string;
|
|
80
|
+
}
|
|
81
|
+
export interface InteractiveBackgroundResult {
|
|
82
|
+
id: string;
|
|
83
|
+
sessionId: string;
|
|
84
|
+
}
|
|
72
85
|
interface InteractiveAppProps {
|
|
73
86
|
factory: InteractiveServiceFactory;
|
|
74
87
|
initialSessions: readonly SessionSummary[];
|
|
@@ -78,6 +91,7 @@ interface InteractiveAppProps {
|
|
|
78
91
|
onCancel?: () => void;
|
|
79
92
|
onTurnChange?: (turn: Promise<void> | null) => void;
|
|
80
93
|
onCleanup?: (closing: Promise<void>) => void;
|
|
94
|
+
onBackground?: (request: InteractiveBackgroundRequest) => Promise<InteractiveBackgroundResult>;
|
|
81
95
|
axScreenReader?: boolean;
|
|
82
96
|
allowNewSession?: boolean;
|
|
83
97
|
resume?: InteractiveResumeOptions;
|
|
@@ -113,7 +127,7 @@ interface InteractiveAppProps {
|
|
|
113
127
|
workspaceDirectoryResolver?: typeof resolveTuiWorkspaceDirectory;
|
|
114
128
|
workspaceDirectoryCompleter?: typeof completeTuiWorkspaceDirectory;
|
|
115
129
|
}
|
|
116
|
-
export declare function InteractiveApp({ factory, initialSessions, initialPrompt, initialHistory, signal, onCancel, onTurnChange, onCleanup, axScreenReader, allowNewSession, resume, display, terminalWidth, slashCommands, agents, allowDangerouslySkipPermissions, additionalDirectories, diffLoader, fileLoader, externalEditor, keybindingsConfigRoot, keybindingsFile, keybindingsLoader, keybindingsEditor, suspendProcess, clipboardReader, clipboardWriter, sideQuestionClipboardWriter, exportWriter, permissionRuleStore, workspaceDirectoryResolver, workspaceDirectoryCompleter, }: InteractiveAppProps): import("react").JSX.Element;
|
|
130
|
+
export declare function InteractiveApp({ factory, initialSessions, initialPrompt, initialHistory, signal, onCancel, onTurnChange, onCleanup, onBackground, axScreenReader, allowNewSession, resume, display, terminalWidth, slashCommands, agents, allowDangerouslySkipPermissions, additionalDirectories, diffLoader, fileLoader, externalEditor, keybindingsConfigRoot, keybindingsFile, keybindingsLoader, keybindingsEditor, suspendProcess, clipboardReader, clipboardWriter, sideQuestionClipboardWriter, exportWriter, permissionRuleStore, workspaceDirectoryResolver, workspaceDirectoryCompleter, }: InteractiveAppProps): import("react").JSX.Element;
|
|
117
131
|
export declare function runInteractive(options: {
|
|
118
132
|
factory: InteractiveServiceFactory;
|
|
119
133
|
initialPrompt?: string;
|
|
@@ -126,6 +140,8 @@ export declare function runInteractive(options: {
|
|
|
126
140
|
requireSession?: boolean;
|
|
127
141
|
missingSessionMessage?: string;
|
|
128
142
|
resume?: InteractiveResumeOptions;
|
|
143
|
+
onBackground?: (request: InteractiveBackgroundRequest) => Promise<InteractiveBackgroundResult>;
|
|
144
|
+
onBackgrounded?: (result: InteractiveBackgroundResult) => void;
|
|
129
145
|
}): Promise<number>;
|
|
130
146
|
export {};
|
|
131
147
|
//# sourceMappingURL=interactive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.tsx"],"names":[],"mappings":"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"}
|
package/dist/cli/interactive.js
CHANGED
|
@@ -186,7 +186,7 @@ function ordinal(value) {
|
|
|
186
186
|
return `${value}th`;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
export function InteractiveApp({ factory, initialSessions, initialPrompt, initialHistory = [], signal, onCancel, onTurnChange, onCleanup, axScreenReader = false, allowNewSession = true, resume, display = { version: 'dev', cwd: process.cwd() }, terminalWidth, slashCommands = EMPTY_SLASH_COMMANDS, agents = EMPTY_AGENTS, allowDangerouslySkipPermissions = false, additionalDirectories = [], diffLoader, fileLoader, externalEditor = editTuiPrompt, keybindingsConfigRoot, keybindingsFile = ensureTuiKeybindingsFile, keybindingsLoader = loadTuiKeybindings, keybindingsEditor = openTuiEditorFile, suspendProcess = suspendTuiProcess, clipboardReader = readTuiClipboard, clipboardWriter = writeTuiClipboard, sideQuestionClipboardWriter = writeTuiOsc52Clipboard, exportWriter = writeConversationExport, permissionRuleStore, workspaceDirectoryResolver = resolveTuiWorkspaceDirectory, workspaceDirectoryCompleter = completeTuiWorkspaceDirectory, }) {
|
|
189
|
+
export function InteractiveApp({ factory, initialSessions, initialPrompt, initialHistory = [], signal, onCancel, onTurnChange, onCleanup, onBackground, axScreenReader = false, allowNewSession = true, resume, display = { version: 'dev', cwd: process.cwd() }, terminalWidth, slashCommands = EMPTY_SLASH_COMMANDS, agents = EMPTY_AGENTS, allowDangerouslySkipPermissions = false, additionalDirectories = [], diffLoader, fileLoader, externalEditor = editTuiPrompt, keybindingsConfigRoot, keybindingsFile = ensureTuiKeybindingsFile, keybindingsLoader = loadTuiKeybindings, keybindingsEditor = openTuiEditorFile, suspendProcess = suspendTuiProcess, clipboardReader = readTuiClipboard, clipboardWriter = writeTuiClipboard, sideQuestionClipboardWriter = writeTuiOsc52Clipboard, exportWriter = writeConversationExport, permissionRuleStore, workspaceDirectoryResolver = resolveTuiWorkspaceDirectory, workspaceDirectoryCompleter = completeTuiWorkspaceDirectory, }) {
|
|
190
190
|
const { exit, suspendTerminal, waitUntilRenderFlush } = useApp();
|
|
191
191
|
const width = useTerminalWidth(terminalWidth);
|
|
192
192
|
const keybindingsRoot = useMemo(() => resolve(keybindingsConfigRoot ??
|
|
@@ -1030,6 +1030,27 @@ export function InteractiveApp({ factory, initialSessions, initialPrompt, initia
|
|
|
1030
1030
|
}
|
|
1031
1031
|
}
|
|
1032
1032
|
};
|
|
1033
|
+
const withLocalCommands = async (operation) => {
|
|
1034
|
+
if (serviceRef.current)
|
|
1035
|
+
return operation(serviceRef.current);
|
|
1036
|
+
const preferences = runtimePreferencesRef.current;
|
|
1037
|
+
const commands = await factory.createService({
|
|
1038
|
+
eventSink: handleEvent,
|
|
1039
|
+
requireProvider: false,
|
|
1040
|
+
...(preferences.model === undefined ? {} : { model: preferences.model }),
|
|
1041
|
+
effort: preferences.effort,
|
|
1042
|
+
permissionMode: preferences.permissionMode,
|
|
1043
|
+
additionalDirectories: preferences.additionalDirectories,
|
|
1044
|
+
cwd: runtimeCwdRef.current,
|
|
1045
|
+
...(signal ? { signal } : {}),
|
|
1046
|
+
});
|
|
1047
|
+
try {
|
|
1048
|
+
return await operation(commands);
|
|
1049
|
+
}
|
|
1050
|
+
finally {
|
|
1051
|
+
await commands.close?.();
|
|
1052
|
+
}
|
|
1053
|
+
};
|
|
1033
1054
|
const openSession = (nextSessionId) => {
|
|
1034
1055
|
setSessionId(nextSessionId);
|
|
1035
1056
|
const loadId = sessionLoadRef.current + 1;
|
|
@@ -1320,6 +1341,69 @@ export function InteractiveApp({ factory, initialSessions, initialPrompt, initia
|
|
|
1320
1341
|
onTurnChange?.(showing);
|
|
1321
1342
|
void showing.finally(() => onTurnChange?.(null));
|
|
1322
1343
|
};
|
|
1344
|
+
const backgroundSession = () => {
|
|
1345
|
+
appendPromptHistory('/background');
|
|
1346
|
+
const backgrounding = (async () => {
|
|
1347
|
+
setBusy(true);
|
|
1348
|
+
try {
|
|
1349
|
+
const hasModelTurn = history.some((item) => item.kind === 'assistant');
|
|
1350
|
+
if (!sessionId || !hasModelTurn) {
|
|
1351
|
+
const activeSessionId = await withLocalCommands(async (commands) => {
|
|
1352
|
+
if (!commands.recordBackgroundUsage) {
|
|
1353
|
+
throw new Error('Background sessions are unavailable.');
|
|
1354
|
+
}
|
|
1355
|
+
return commands.recordBackgroundUsage(sessionId ?? undefined, runtimePreferencesRef.current.permissionMode);
|
|
1356
|
+
});
|
|
1357
|
+
setSessionId(activeSessionId);
|
|
1358
|
+
append({
|
|
1359
|
+
kind: 'local-result',
|
|
1360
|
+
text: 'Nothing to background yet — send a message first.',
|
|
1361
|
+
});
|
|
1362
|
+
return;
|
|
1363
|
+
}
|
|
1364
|
+
if (!onBackground) {
|
|
1365
|
+
throw new Error('Background sessions are unavailable.');
|
|
1366
|
+
}
|
|
1367
|
+
const prompt = [...history]
|
|
1368
|
+
.reverse()
|
|
1369
|
+
.find((item) => item.kind === 'user');
|
|
1370
|
+
const detail = [...history]
|
|
1371
|
+
.reverse()
|
|
1372
|
+
.find((item) => item.kind === 'assistant' || item.kind === 'thinking');
|
|
1373
|
+
const sourceCheckpoint = await withLocalCommands(async (commands) => {
|
|
1374
|
+
if (!commands.recordBackgroundLaunch) {
|
|
1375
|
+
throw new Error('Background sessions are unavailable.');
|
|
1376
|
+
}
|
|
1377
|
+
return commands.recordBackgroundLaunch(sessionId);
|
|
1378
|
+
});
|
|
1379
|
+
setStatus('Backgrounding…');
|
|
1380
|
+
append({ kind: 'notice', text: 'Backgrounding…' });
|
|
1381
|
+
await waitUntilRenderFlush();
|
|
1382
|
+
await onBackground({
|
|
1383
|
+
sourceSessionId: sessionId,
|
|
1384
|
+
sourceCheckpoint,
|
|
1385
|
+
prompt: prompt && 'text' in prompt
|
|
1386
|
+
? prompt.text
|
|
1387
|
+
: 'empty-background-command',
|
|
1388
|
+
detail: detail && 'text' in detail ? detail.text : '',
|
|
1389
|
+
cwd: runtimeCwdRef.current,
|
|
1390
|
+
});
|
|
1391
|
+
await retireService();
|
|
1392
|
+
exit();
|
|
1393
|
+
}
|
|
1394
|
+
catch (error) {
|
|
1395
|
+
warn(error);
|
|
1396
|
+
}
|
|
1397
|
+
finally {
|
|
1398
|
+
if (componentMountedRef.current) {
|
|
1399
|
+
setBusy(false);
|
|
1400
|
+
setStatus('ready');
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1403
|
+
})();
|
|
1404
|
+
onTurnChange?.(backgrounding);
|
|
1405
|
+
void backgrounding.finally(() => onTurnChange?.(null));
|
|
1406
|
+
};
|
|
1323
1407
|
const askSideQuestion = (question) => {
|
|
1324
1408
|
const id = btwIdRef.current + 1;
|
|
1325
1409
|
btwIdRef.current = id;
|
|
@@ -3036,6 +3120,9 @@ export function InteractiveApp({ factory, initialSessions, initialPrompt, initia
|
|
|
3036
3120
|
else
|
|
3037
3121
|
showBtwUsage();
|
|
3038
3122
|
}
|
|
3123
|
+
else if (prompt === '/background') {
|
|
3124
|
+
backgroundSession();
|
|
3125
|
+
}
|
|
3039
3126
|
else if (cdCommand) {
|
|
3040
3127
|
append({ kind: 'user', text: prompt });
|
|
3041
3128
|
const requestedCwd = cdCommand[1]?.trim();
|
|
@@ -3339,13 +3426,24 @@ export async function runInteractive(options) {
|
|
|
3339
3426
|
await listing.close?.();
|
|
3340
3427
|
let activeTurn = null;
|
|
3341
3428
|
let cleanup = null;
|
|
3429
|
+
let backgrounded;
|
|
3342
3430
|
const instance = render(_jsx(InteractiveApp, { factory: options.factory, initialSessions: initialSessions, slashCommands: initialSlashCommands, agents: initialAgents, initialHistory: initialHistory, ...(options.initialPrompt === undefined
|
|
3343
3431
|
? {}
|
|
3344
3432
|
: { initialPrompt: options.initialPrompt }), signal: signal, onCancel: () => controller.abort(), onTurnChange: (turn) => {
|
|
3345
3433
|
activeTurn = turn;
|
|
3346
3434
|
}, onCleanup: (closing) => {
|
|
3347
3435
|
cleanup = closing;
|
|
3348
|
-
},
|
|
3436
|
+
}, ...(options.onBackground === undefined
|
|
3437
|
+
? {}
|
|
3438
|
+
: {
|
|
3439
|
+
onBackground: async (request) => {
|
|
3440
|
+
const result = await options.onBackground?.(request);
|
|
3441
|
+
if (!result)
|
|
3442
|
+
throw new Error('Background launch returned no job');
|
|
3443
|
+
backgrounded = result;
|
|
3444
|
+
return result;
|
|
3445
|
+
},
|
|
3446
|
+
}), allowNewSession: !options.requireSession, ...(options.additionalDirectories === undefined
|
|
3349
3447
|
? {}
|
|
3350
3448
|
: { additionalDirectories: options.additionalDirectories }), ...(resume === undefined ? {} : { resume }), ...(options.display === undefined ? {} : { display: options.display }), ...(options.axScreenReader ? { axScreenReader: true } : {}), ...(options.allowDangerouslySkipPermissions
|
|
3351
3449
|
? { allowDangerouslySkipPermissions: true }
|
|
@@ -3359,6 +3457,8 @@ export async function runInteractive(options) {
|
|
|
3359
3457
|
await activeTurn;
|
|
3360
3458
|
if (cleanup)
|
|
3361
3459
|
await cleanup;
|
|
3460
|
+
if (backgrounded)
|
|
3461
|
+
options.onBackgrounded?.(backgrounded);
|
|
3362
3462
|
return signal.aborted ? 130 : 0;
|
|
3363
3463
|
}
|
|
3364
3464
|
//# sourceMappingURL=interactive.js.map
|