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
package/README.md
CHANGED
|
@@ -84,8 +84,9 @@ troubleshooting. Run `praxis --help` for the authoritative command surface.
|
|
|
84
84
|
thinking, grouped multi-file reads, globally expandable tool results,
|
|
85
85
|
command-specific `/add-dir`, `/copy`, `/branch`, `/rename`, `/export`,
|
|
86
86
|
provider-backed `/compact`, native `/rewind`, runtime `/cd`, transcript-free
|
|
87
|
-
`/btw` side questions with background-Agent handoff,
|
|
88
|
-
`/mcp`, and live
|
|
87
|
+
`/btw` side questions with background-Agent handoff, interactive
|
|
88
|
+
`/background` terminal handoff, `/config`, `/usage`, `/mcp`, and live
|
|
89
|
+
extension-reload controls,
|
|
89
90
|
cursor/history composer, per-session model/effort/permission controls,
|
|
90
91
|
context/status/skill/task dashboards, prompt stash and continuation shortcuts,
|
|
91
92
|
filterable `@` file and agent references, composer undo, `Ctrl+G` external
|
|
@@ -103,6 +103,10 @@ export interface ForkResult {
|
|
|
103
103
|
sessionId: string;
|
|
104
104
|
parentSessionId: string;
|
|
105
105
|
}
|
|
106
|
+
export interface SessionForkCheckpoint {
|
|
107
|
+
resumeSessionAt: string;
|
|
108
|
+
entryCount: number;
|
|
109
|
+
}
|
|
106
110
|
export interface ManualCompactResult {
|
|
107
111
|
summary: string;
|
|
108
112
|
usage: ModelUsage;
|
|
@@ -157,8 +161,12 @@ export declare class ClaudeSessionService {
|
|
|
157
161
|
changeCwd(sessionId: string | undefined, requestedCwd: string): Promise<string>;
|
|
158
162
|
recordCdUsage(sessionId: string): Promise<void>;
|
|
159
163
|
recordBtwUsage(sessionId: string | undefined, permissionMode?: ClaudePermissionMode): Promise<string>;
|
|
164
|
+
recordBackgroundUsage(sessionId: string | undefined, permissionMode?: ClaudePermissionMode): Promise<string>;
|
|
165
|
+
recordBackgroundLaunch(sessionId: string): Promise<SessionForkCheckpoint>;
|
|
160
166
|
compact(sessionId: string, signal?: AbortSignal, selection?: ManualCompactSelection): Promise<ManualCompactResult>;
|
|
161
167
|
fork(parentSessionId: string, sessionId?: string, resumeSessionAt?: string): Promise<ForkResult>;
|
|
168
|
+
ensureFork(parentSessionId: string, sessionId: string, checkpoint?: SessionForkCheckpoint): Promise<ForkResult>;
|
|
169
|
+
private nativeForkEntries;
|
|
162
170
|
rewindFiles(sessionId: string, userMessageId: string): Promise<void>;
|
|
163
171
|
rewindPoints(sessionId: string): Promise<RewindPoint[]>;
|
|
164
172
|
setPermissionMode(sessionId: string, permissionMode: ClaudePermissionMode): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-service.d.ts","sourceRoot":"","sources":["../../src/application/session-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-service.d.ts","sourceRoot":"","sources":["../../src/application/session-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -837,6 +837,86 @@ export class ClaudeSessionService {
|
|
|
837
837
|
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
838
838
|
}
|
|
839
839
|
}
|
|
840
|
+
async recordBackgroundUsage(sessionId, permissionMode = 'default') {
|
|
841
|
+
this.assertWritable();
|
|
842
|
+
const activeSessionId = await this.ensureLocalSession(sessionId, permissionMode);
|
|
843
|
+
await this.appendInputHistory('/background', activeSessionId);
|
|
844
|
+
while (true) {
|
|
845
|
+
const result = await this.turnStore(activeSessionId).withLease(async (lease) => {
|
|
846
|
+
const snapshot = await lease.load();
|
|
847
|
+
if (snapshot.entries.length === 0) {
|
|
848
|
+
throw new Error(`Claude session not found: ${activeSessionId}`);
|
|
849
|
+
}
|
|
850
|
+
const timestamp = new Date().toISOString();
|
|
851
|
+
const promptId = randomUUID();
|
|
852
|
+
const firstUuid = randomUUID();
|
|
853
|
+
const commandUuid = randomUUID();
|
|
854
|
+
const common = {
|
|
855
|
+
isSidechain: false,
|
|
856
|
+
promptId,
|
|
857
|
+
timestamp,
|
|
858
|
+
userType: 'external',
|
|
859
|
+
entrypoint: 'cli',
|
|
860
|
+
cwd: this.activeCwd(),
|
|
861
|
+
sessionId: activeSessionId,
|
|
862
|
+
version: this.options.claudeVersion,
|
|
863
|
+
gitBranch: null,
|
|
864
|
+
};
|
|
865
|
+
const appended = await lease.appendMany(snapshot.tail, [
|
|
866
|
+
{
|
|
867
|
+
...common,
|
|
868
|
+
parentUuid: this.logicalTailUuid(snapshot.tail),
|
|
869
|
+
type: 'user',
|
|
870
|
+
message: {
|
|
871
|
+
role: 'user',
|
|
872
|
+
content: '<local-command-caveat>Caveat: The messages below were generated by the user while running local commands. DO NOT respond to these messages or otherwise consider them in your response unless the user explicitly asks you to.</local-command-caveat>',
|
|
873
|
+
},
|
|
874
|
+
isMeta: true,
|
|
875
|
+
uuid: firstUuid,
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
...common,
|
|
879
|
+
parentUuid: firstUuid,
|
|
880
|
+
type: 'user',
|
|
881
|
+
message: {
|
|
882
|
+
role: 'user',
|
|
883
|
+
content: '<command-name>/background</command-name>\n <command-message>background</command-message>\n <command-args></command-args>',
|
|
884
|
+
},
|
|
885
|
+
uuid: commandUuid,
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
...common,
|
|
889
|
+
parentUuid: commandUuid,
|
|
890
|
+
type: 'user',
|
|
891
|
+
message: {
|
|
892
|
+
role: 'user',
|
|
893
|
+
content: '<local-command-stdout>Nothing to background yet — send a message first.</local-command-stdout>',
|
|
894
|
+
},
|
|
895
|
+
uuid: randomUUID(),
|
|
896
|
+
},
|
|
897
|
+
]);
|
|
898
|
+
if (appended.status === 'conflict') {
|
|
899
|
+
throw new Error(`Claude background command append conflict: ${appended.reason}`);
|
|
900
|
+
}
|
|
901
|
+
});
|
|
902
|
+
if (result.status === 'completed')
|
|
903
|
+
return activeSessionId;
|
|
904
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
async recordBackgroundLaunch(sessionId) {
|
|
908
|
+
this.assertWritable();
|
|
909
|
+
const result = await this.turnStore(sessionId).withLease((lease) => lease.load());
|
|
910
|
+
if (result.status === 'conflict') {
|
|
911
|
+
throw new Error(`Claude background checkpoint conflict: ${result.reason}`);
|
|
912
|
+
}
|
|
913
|
+
const resumeSessionAt = this.logicalTailUuid(result.value.tail);
|
|
914
|
+
if (!resumeSessionAt) {
|
|
915
|
+
throw new Error(`Claude session not found: ${sessionId}`);
|
|
916
|
+
}
|
|
917
|
+
await this.appendInputHistory('/background', sessionId);
|
|
918
|
+
return { resumeSessionAt, entryCount: result.value.entries.length };
|
|
919
|
+
}
|
|
840
920
|
async compact(sessionId, signal, selection) {
|
|
841
921
|
this.assertWritable();
|
|
842
922
|
const provider = this.provider();
|
|
@@ -959,6 +1039,33 @@ export class ClaudeSessionService {
|
|
|
959
1039
|
async fork(parentSessionId, sessionId = randomUUID(), resumeSessionAt) {
|
|
960
1040
|
this.assertSessionPersistence();
|
|
961
1041
|
this.assertWritable();
|
|
1042
|
+
const entries = await this.nativeForkEntries(parentSessionId, sessionId, resumeSessionAt);
|
|
1043
|
+
const result = await this.store(sessionId).create(entries);
|
|
1044
|
+
if (result.status === 'conflict') {
|
|
1045
|
+
throw new Error('Generated Claude fork session already exists');
|
|
1046
|
+
}
|
|
1047
|
+
return { sessionId, parentSessionId };
|
|
1048
|
+
}
|
|
1049
|
+
async ensureFork(parentSessionId, sessionId, checkpoint) {
|
|
1050
|
+
this.assertSessionPersistence();
|
|
1051
|
+
this.assertWritable();
|
|
1052
|
+
const expected = await this.nativeForkEntries(parentSessionId, sessionId, checkpoint?.resumeSessionAt, checkpoint?.entryCount);
|
|
1053
|
+
const target = this.store(sessionId);
|
|
1054
|
+
const created = await target.create(expected);
|
|
1055
|
+
if (created.status === 'created')
|
|
1056
|
+
return { sessionId, parentSessionId };
|
|
1057
|
+
const existing = await target.withLease((lease) => lease.load());
|
|
1058
|
+
if (existing.status === 'conflict') {
|
|
1059
|
+
throw new Error(`Claude transcript fork conflict: ${existing.reason}`);
|
|
1060
|
+
}
|
|
1061
|
+
if (existing.value.entries.length < expected.length ||
|
|
1062
|
+
expected.some((entry, index) => JSON.stringify(existing.value.entries[index]) !==
|
|
1063
|
+
JSON.stringify(entry))) {
|
|
1064
|
+
throw new Error('Claude handoff target is not the expected native fork');
|
|
1065
|
+
}
|
|
1066
|
+
return { sessionId, parentSessionId };
|
|
1067
|
+
}
|
|
1068
|
+
async nativeForkEntries(parentSessionId, sessionId, resumeSessionAt, sourceEntryCount) {
|
|
962
1069
|
const sourceResult = await this.store(parentSessionId).withLease((lease) => lease.load());
|
|
963
1070
|
if (sourceResult.status === 'conflict') {
|
|
964
1071
|
throw new Error(`Claude transcript fork conflict: ${sourceResult.reason}`);
|
|
@@ -967,17 +1074,18 @@ export class ClaudeSessionService {
|
|
|
967
1074
|
if (source.entries.length === 0) {
|
|
968
1075
|
throw new Error(`Claude session not found: ${parentSessionId}`);
|
|
969
1076
|
}
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
source
|
|
1077
|
+
if (sourceEntryCount !== undefined &&
|
|
1078
|
+
(sourceEntryCount <= 0 || sourceEntryCount > source.entries.length)) {
|
|
1079
|
+
throw new Error('Claude handoff source checkpoint is no longer available');
|
|
1080
|
+
}
|
|
1081
|
+
return createClaudeNativeFork({
|
|
1082
|
+
source: sourceEntryCount === undefined
|
|
1083
|
+
? source.entries
|
|
1084
|
+
: source.entries.slice(0, sourceEntryCount),
|
|
973
1085
|
sourceSessionId: parentSessionId,
|
|
974
1086
|
sessionId,
|
|
975
1087
|
...(resumeSessionAt === undefined ? {} : { resumeSessionAt }),
|
|
976
|
-
})
|
|
977
|
-
if (result.status === 'conflict') {
|
|
978
|
-
throw new Error('Generated Claude fork session already exists');
|
|
979
|
-
}
|
|
980
|
-
return { sessionId, parentSessionId };
|
|
1088
|
+
});
|
|
981
1089
|
}
|
|
982
1090
|
async rewindFiles(sessionId, userMessageId) {
|
|
983
1091
|
const result = await this.store(sessionId).withLease(async (lease) => {
|