@patze/code-cli 0.10.6 → 0.15.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.
Files changed (146) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/VERSION +1 -1
  3. package/bin/patze.mjs +0 -0
  4. package/dist/backend/agent-trace.d.ts +15 -0
  5. package/dist/backend/agent-trace.d.ts.map +1 -0
  6. package/dist/backend/agent-trace.js +53 -0
  7. package/dist/backend/agent-trace.js.map +1 -0
  8. package/dist/backend/execute-client.d.ts +51 -0
  9. package/dist/backend/execute-client.d.ts.map +1 -0
  10. package/dist/backend/execute-client.js +140 -0
  11. package/dist/backend/execute-client.js.map +1 -0
  12. package/dist/backend/preview-payload.d.ts +15 -3
  13. package/dist/backend/preview-payload.d.ts.map +1 -1
  14. package/dist/backend/preview-payload.js +38 -10
  15. package/dist/backend/preview-payload.js.map +1 -1
  16. package/dist/backend/run-record.d.ts +16 -0
  17. package/dist/backend/run-record.d.ts.map +1 -0
  18. package/dist/backend/run-record.js +43 -0
  19. package/dist/backend/run-record.js.map +1 -0
  20. package/dist/backend/run-stream-client.d.ts +36 -0
  21. package/dist/backend/run-stream-client.d.ts.map +1 -0
  22. package/dist/backend/run-stream-client.js +109 -0
  23. package/dist/backend/run-stream-client.js.map +1 -0
  24. package/dist/backend/runs-client.d.ts +35 -0
  25. package/dist/backend/runs-client.d.ts.map +1 -0
  26. package/dist/backend/runs-client.js +87 -0
  27. package/dist/backend/runs-client.js.map +1 -0
  28. package/dist/backend/session-client.d.ts +17 -0
  29. package/dist/backend/session-client.d.ts.map +1 -0
  30. package/dist/backend/session-client.js +54 -0
  31. package/dist/backend/session-client.js.map +1 -0
  32. package/dist/backend/sse-parse.d.ts +14 -0
  33. package/dist/backend/sse-parse.d.ts.map +1 -0
  34. package/dist/backend/sse-parse.js +63 -0
  35. package/dist/backend/sse-parse.js.map +1 -0
  36. package/dist/cli/commands/agent.d.ts +8 -0
  37. package/dist/cli/commands/agent.d.ts.map +1 -0
  38. package/dist/cli/commands/agent.js +72 -0
  39. package/dist/cli/commands/agent.js.map +1 -0
  40. package/dist/cli/commands/plan.d.ts +3 -0
  41. package/dist/cli/commands/plan.d.ts.map +1 -1
  42. package/dist/cli/commands/plan.js +3 -0
  43. package/dist/cli/commands/plan.js.map +1 -1
  44. package/dist/cli/commands/runs-format.d.ts +4 -0
  45. package/dist/cli/commands/runs-format.d.ts.map +1 -0
  46. package/dist/cli/commands/runs-format.js +50 -0
  47. package/dist/cli/commands/runs-format.js.map +1 -0
  48. package/dist/cli/commands/runs.d.ts.map +1 -1
  49. package/dist/cli/commands/runs.js +78 -8
  50. package/dist/cli/commands/runs.js.map +1 -1
  51. package/dist/cli/commands/status-format.d.ts.map +1 -1
  52. package/dist/cli/commands/status-format.js +11 -0
  53. package/dist/cli/commands/status-format.js.map +1 -1
  54. package/dist/cli/help.d.ts.map +1 -1
  55. package/dist/cli/help.js +7 -3
  56. package/dist/cli/help.js.map +1 -1
  57. package/dist/cli/interactive/agent-execute-turn.d.ts +26 -0
  58. package/dist/cli/interactive/agent-execute-turn.d.ts.map +1 -0
  59. package/dist/cli/interactive/agent-execute-turn.js +127 -0
  60. package/dist/cli/interactive/agent-execute-turn.js.map +1 -0
  61. package/dist/cli/interactive/agent-stream-format.d.ts +24 -0
  62. package/dist/cli/interactive/agent-stream-format.d.ts.map +1 -0
  63. package/dist/cli/interactive/agent-stream-format.js +170 -0
  64. package/dist/cli/interactive/agent-stream-format.js.map +1 -0
  65. package/dist/cli/interactive/agent-turn-context.d.ts +11 -0
  66. package/dist/cli/interactive/agent-turn-context.d.ts.map +1 -0
  67. package/dist/cli/interactive/agent-turn-context.js +57 -0
  68. package/dist/cli/interactive/agent-turn-context.js.map +1 -0
  69. package/dist/cli/interactive/agent-turn-format.d.ts +4 -3
  70. package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -1
  71. package/dist/cli/interactive/agent-turn-format.js +38 -39
  72. package/dist/cli/interactive/agent-turn-format.js.map +1 -1
  73. package/dist/cli/interactive/agent-turn.d.ts +5 -1
  74. package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
  75. package/dist/cli/interactive/agent-turn.js +84 -7
  76. package/dist/cli/interactive/agent-turn.js.map +1 -1
  77. package/dist/cli/interactive/cloud-git.d.ts +13 -0
  78. package/dist/cli/interactive/cloud-git.d.ts.map +1 -0
  79. package/dist/cli/interactive/cloud-git.js +43 -0
  80. package/dist/cli/interactive/cloud-git.js.map +1 -0
  81. package/dist/cli/interactive/header.d.ts +2 -1
  82. package/dist/cli/interactive/header.d.ts.map +1 -1
  83. package/dist/cli/interactive/header.js +9 -1
  84. package/dist/cli/interactive/header.js.map +1 -1
  85. package/dist/cli/interactive/launcher.d.ts +3 -0
  86. package/dist/cli/interactive/launcher.d.ts.map +1 -0
  87. package/dist/cli/interactive/launcher.js +43 -0
  88. package/dist/cli/interactive/launcher.js.map +1 -0
  89. package/dist/cli/interactive/line-editor.d.ts.map +1 -1
  90. package/dist/cli/interactive/line-editor.js +19 -8
  91. package/dist/cli/interactive/line-editor.js.map +1 -1
  92. package/dist/cli/interactive/model-command.d.ts +6 -0
  93. package/dist/cli/interactive/model-command.d.ts.map +1 -0
  94. package/dist/cli/interactive/model-command.js +40 -0
  95. package/dist/cli/interactive/model-command.js.map +1 -0
  96. package/dist/cli/interactive/run-replay.d.ts +17 -0
  97. package/dist/cli/interactive/run-replay.d.ts.map +1 -0
  98. package/dist/cli/interactive/run-replay.js +114 -0
  99. package/dist/cli/interactive/run-replay.js.map +1 -0
  100. package/dist/cli/interactive/session-controller.d.ts +22 -0
  101. package/dist/cli/interactive/session-controller.d.ts.map +1 -0
  102. package/dist/cli/interactive/session-controller.js +103 -0
  103. package/dist/cli/interactive/session-controller.js.map +1 -0
  104. package/dist/cli/interactive/session-store.d.ts +20 -0
  105. package/dist/cli/interactive/session-store.d.ts.map +1 -0
  106. package/dist/cli/interactive/session-store.js +88 -0
  107. package/dist/cli/interactive/session-store.js.map +1 -0
  108. package/dist/cli/interactive/session.d.ts +30 -0
  109. package/dist/cli/interactive/session.d.ts.map +1 -1
  110. package/dist/cli/interactive/session.js +69 -0
  111. package/dist/cli/interactive/session.js.map +1 -1
  112. package/dist/cli/interactive/shell.d.ts.map +1 -1
  113. package/dist/cli/interactive/shell.js +14 -43
  114. package/dist/cli/interactive/shell.js.map +1 -1
  115. package/dist/cli/interactive/slash-dispatch.d.ts +7 -1
  116. package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
  117. package/dist/cli/interactive/slash-dispatch.js +116 -8
  118. package/dist/cli/interactive/slash-dispatch.js.map +1 -1
  119. package/dist/cli/interactive/slash-registry.d.ts.map +1 -1
  120. package/dist/cli/interactive/slash-registry.js +6 -0
  121. package/dist/cli/interactive/slash-registry.js.map +1 -1
  122. package/dist/cli/interactive/transcript-format.d.ts +3 -0
  123. package/dist/cli/interactive/transcript-format.d.ts.map +1 -0
  124. package/dist/cli/interactive/transcript-format.js +29 -0
  125. package/dist/cli/interactive/transcript-format.js.map +1 -0
  126. package/dist/cli/main.d.ts.map +1 -1
  127. package/dist/cli/main.js +35 -3
  128. package/dist/cli/main.js.map +1 -1
  129. package/dist/cli/one-shot-args.d.ts +9 -0
  130. package/dist/cli/one-shot-args.d.ts.map +1 -0
  131. package/dist/cli/one-shot-args.js +35 -0
  132. package/dist/cli/one-shot-args.js.map +1 -0
  133. package/dist/cli/read-stdin.d.ts +2 -0
  134. package/dist/cli/read-stdin.d.ts.map +1 -0
  135. package/dist/cli/read-stdin.js +12 -0
  136. package/dist/cli/read-stdin.js.map +1 -0
  137. package/dist/config/config.d.ts +2 -0
  138. package/dist/config/config.d.ts.map +1 -1
  139. package/dist/config/config.js +8 -0
  140. package/dist/config/config.js.map +1 -1
  141. package/dist/config/models.d.ts +11 -0
  142. package/dist/config/models.d.ts.map +1 -0
  143. package/dist/config/models.js +51 -0
  144. package/dist/config/models.js.map +1 -0
  145. package/docs/known-limitations.md +12 -6
  146. package/package.json +4 -1
@@ -0,0 +1,103 @@
1
+ import { renderInteractiveHeader } from "./header.js";
2
+ import { redactSensitiveInput } from "./redact-input.js";
3
+ import { InteractiveSession } from "./session.js";
4
+ import { parseSlashInput } from "./slash-parse.js";
5
+ import { dispatchAgentPrompt, dispatchSlashCommand, } from "./slash-dispatch.js";
6
+ import { formatTranscriptEntry } from "./transcript-format.js";
7
+ import { runApplyConfirmationLine } from "../commands/apply.js";
8
+ import { loadPersistedSession, savePersistedSession } from "./session-store.js";
9
+ export function createInteractiveController(options) {
10
+ const cwd = options.cwd;
11
+ const session = new InteractiveSession(cwd);
12
+ const persisted = loadPersistedSession(cwd);
13
+ if (persisted) {
14
+ session.hydratePersistedState({
15
+ lastRunId: persisted.lastRunId,
16
+ modelOverride: persisted.modelOverride,
17
+ executionMode: persisted.executionMode,
18
+ permissionMode: persisted.permissionMode,
19
+ conversationEpoch: persisted.conversationEpoch,
20
+ transcript: persisted.transcript,
21
+ });
22
+ }
23
+ const persistSession = () => {
24
+ savePersistedSession(cwd, session.exportPersistedState());
25
+ };
26
+ const canStreamPartials = options.streamPartials !== false && options.interactive !== false;
27
+ const processLine = async (rawLine, output) => {
28
+ const line = rawLine.trim();
29
+ if (!line) {
30
+ return { exitShell: false, exitCode: 0 };
31
+ }
32
+ const parsed = parseSlashInput(line);
33
+ if (!parsed) {
34
+ if (session.hasPendingApplyConfirmation()) {
35
+ const result = runApplyConfirmationLine(session, line);
36
+ session.append({ input: line, lines: result.lines });
37
+ for (const entry of result.lines) {
38
+ output.line(entry);
39
+ }
40
+ output.line("");
41
+ persistSession();
42
+ return { exitShell: false, exitCode: result.exitCode };
43
+ }
44
+ for (const entry of formatTranscriptEntry("you", line)) {
45
+ output.line(entry);
46
+ }
47
+ let partialActive = false;
48
+ const result = await dispatchAgentPrompt(session, line, {
49
+ onTranscriptLine: (entry) => {
50
+ output.line(entry);
51
+ },
52
+ onTranscriptPartial: canStreamPartials
53
+ ? (chunk) => {
54
+ partialActive = true;
55
+ options.onPartial?.(chunk);
56
+ }
57
+ : undefined,
58
+ });
59
+ session.append({ input: line, lines: result.lines });
60
+ if (!result.streamed) {
61
+ for (const entry of result.lines) {
62
+ output.line(entry);
63
+ }
64
+ }
65
+ else if (partialActive) {
66
+ output.line("");
67
+ }
68
+ output.line("");
69
+ persistSession();
70
+ return { exitShell: result.exitShell, exitCode: result.exitCode, streamed: result.streamed };
71
+ }
72
+ const result = await dispatchSlashCommand(session, parsed, {
73
+ permissionsInteractive: options.interactive === true,
74
+ onTranscriptLine: canStreamPartials
75
+ ? (entry) => {
76
+ output.line(entry);
77
+ }
78
+ : undefined,
79
+ onTranscriptPartial: canStreamPartials
80
+ ? (chunk) => {
81
+ options.onPartial?.(chunk);
82
+ }
83
+ : undefined,
84
+ });
85
+ session.append({ input: redactSensitiveInput(line), lines: result.lines });
86
+ if (!result.streamed) {
87
+ for (const entry of result.lines) {
88
+ output.line(entry);
89
+ }
90
+ }
91
+ output.line("");
92
+ persistSession();
93
+ return { exitShell: result.exitShell, exitCode: result.exitCode, streamed: result.streamed };
94
+ };
95
+ return {
96
+ session,
97
+ cwd,
98
+ renderHeaderLines: () => renderInteractiveHeader(cwd, session.getPermissionMode(), session.getModelOverride(), session.getExecutionMode()),
99
+ persistSession,
100
+ processLine,
101
+ };
102
+ }
103
+ //# sourceMappingURL=session-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/cli/interactive/session-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { PermissionMode } from "../../runtime/permissions.js";
2
+ import type { SessionTranscriptEntry } from "./session.js";
3
+ export type ExecutionMode = "local" | "cloud";
4
+ export type PersistedCliSession = {
5
+ version: 1;
6
+ cwd: string;
7
+ savedAt: string;
8
+ lastRunId: string | null;
9
+ modelOverride: string | null;
10
+ executionMode: ExecutionMode;
11
+ permissionMode: PermissionMode;
12
+ conversationEpoch: number;
13
+ transcript: SessionTranscriptEntry[];
14
+ };
15
+ export declare function sessionFilePath(cwd: string): string;
16
+ export declare function loadPersistedSession(cwd: string): PersistedCliSession | null;
17
+ export declare function savePersistedSession(cwd: string, snapshot: Omit<PersistedCliSession, "version" | "cwd" | "savedAt">): void;
18
+ export declare function trimTranscript(entries: SessionTranscriptEntry[]): SessionTranscriptEntry[];
19
+ export declare function buildConversationContext(entries: SessionTranscriptEntry[]): string;
20
+ //# sourceMappingURL=session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/session-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,CAAC,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,sBAAsB,EAAE,CAAA;CACrC,CAAA;AAMD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAqB5E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,IAAI,CAU1H;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,EAAE,CAK1F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAelF"}
@@ -0,0 +1,88 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { join, resolve } from "node:path";
5
+ const SESSION_DIR = join(homedir(), ".patze", "sessions");
6
+ const MAX_TRANSCRIPT_ENTRIES = 40;
7
+ const MAX_TRANSCRIPT_LINES = 12;
8
+ export function sessionFilePath(cwd) {
9
+ const normalized = resolve(cwd);
10
+ const hash = createHash("sha256").update(normalized).digest("hex").slice(0, 16);
11
+ return join(SESSION_DIR, `${hash}.json`);
12
+ }
13
+ export function loadPersistedSession(cwd) {
14
+ const path = sessionFilePath(cwd);
15
+ if (!existsSync(path)) {
16
+ return null;
17
+ }
18
+ try {
19
+ const raw = JSON.parse(readFileSync(path, "utf8"));
20
+ if (!raw || typeof raw !== "object") {
21
+ return null;
22
+ }
23
+ const row = raw;
24
+ if (row.version !== 1 || typeof row.cwd !== "string") {
25
+ return null;
26
+ }
27
+ if (resolve(row.cwd) !== resolve(cwd)) {
28
+ return null;
29
+ }
30
+ return normalizeSnapshot(row);
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ export function savePersistedSession(cwd, snapshot) {
37
+ mkdirSync(SESSION_DIR, { recursive: true });
38
+ const payload = {
39
+ version: 1,
40
+ cwd: resolve(cwd),
41
+ savedAt: new Date().toISOString(),
42
+ ...snapshot,
43
+ transcript: trimTranscript(snapshot.transcript),
44
+ };
45
+ writeFileSync(sessionFilePath(cwd), `${JSON.stringify(payload, null, 2)}\n`, "utf8");
46
+ }
47
+ export function trimTranscript(entries) {
48
+ return entries.slice(-MAX_TRANSCRIPT_ENTRIES).map((entry) => ({
49
+ input: entry.input.slice(0, 500),
50
+ lines: entry.lines.slice(0, MAX_TRANSCRIPT_LINES).map((line) => line.slice(0, 500)),
51
+ }));
52
+ }
53
+ export function buildConversationContext(entries) {
54
+ const trimmed = trimTranscript(entries);
55
+ if (!trimmed.length) {
56
+ return "";
57
+ }
58
+ const blocks = [];
59
+ for (const entry of trimmed.slice(-8)) {
60
+ const reply = entry.lines.find((line) => line.trim())?.trim() ?? "";
61
+ blocks.push(`User: ${entry.input.slice(0, 400)}`);
62
+ if (reply) {
63
+ blocks.push(`Assistant: ${reply.slice(0, 400)}`);
64
+ }
65
+ }
66
+ const text = blocks.join("\n");
67
+ return text.length > 4000 ? text.slice(-4000) : text;
68
+ }
69
+ function normalizeSnapshot(row) {
70
+ return {
71
+ version: 1,
72
+ cwd: resolve(row.cwd ?? process.cwd()),
73
+ savedAt: typeof row.savedAt === "string" ? row.savedAt : "",
74
+ lastRunId: typeof row.lastRunId === "string" ? row.lastRunId : null,
75
+ modelOverride: typeof row.modelOverride === "string" ? row.modelOverride : null,
76
+ executionMode: row.executionMode === "cloud" ? "cloud" : "local",
77
+ permissionMode: row.permissionMode === "suggest" ||
78
+ row.permissionMode === "edit-with-approval" ||
79
+ row.permissionMode === "read-only"
80
+ ? row.permissionMode
81
+ : "read-only",
82
+ conversationEpoch: typeof row.conversationEpoch === "number" ? row.conversationEpoch : 0,
83
+ transcript: Array.isArray(row.transcript)
84
+ ? trimTranscript(row.transcript.filter((entry) => Boolean(entry && typeof entry === "object" && typeof entry.input === "string" && Array.isArray(entry.lines))))
85
+ : [],
86
+ };
87
+ }
88
+ //# sourceMappingURL=session-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/cli/interactive/session-store.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,11 @@ export declare class InteractiveSession {
22
22
  private verifyDriftGateKey;
23
23
  private consumedGateKeys;
24
24
  private permissionMode;
25
+ private lastRunId;
26
+ private modelOverride;
27
+ private executionMode;
28
+ private transcriptStartIndex;
29
+ private conversationEpoch;
25
30
  constructor(cwd: string);
26
31
  append(entry: SessionTranscriptEntry): void;
27
32
  clear(): void;
@@ -67,5 +72,30 @@ export declare class InteractiveSession {
67
72
  isApprovalGateConsumed(gate: ApprovalGate): boolean;
68
73
  getPermissionMode(): PermissionMode;
69
74
  setPermissionMode(mode: PermissionMode): void;
75
+ setLastRunId(runId: string | null): void;
76
+ getLastRunId(): string | null;
77
+ setModelOverride(model: string | null): void;
78
+ getModelOverride(): string | null;
79
+ getExecutionMode(): import("./session-store.js").ExecutionMode;
80
+ setExecutionMode(mode: import("./session-store.js").ExecutionMode): void;
81
+ getConversationEpoch(): number;
82
+ getTranscriptStartIndex(): number;
83
+ getActiveTranscript(): SessionTranscriptEntry[];
84
+ hydratePersistedState(input: {
85
+ lastRunId?: string | null;
86
+ modelOverride?: string | null;
87
+ executionMode?: import("./session-store.js").ExecutionMode;
88
+ permissionMode?: PermissionMode;
89
+ conversationEpoch?: number;
90
+ transcript?: SessionTranscriptEntry[];
91
+ }): void;
92
+ exportPersistedState(): {
93
+ lastRunId: string | null;
94
+ modelOverride: string | null;
95
+ executionMode: import("./session-store.js").ExecutionMode;
96
+ permissionMode: PermissionMode;
97
+ conversationEpoch: number;
98
+ transcript: SessionTranscriptEntry[];
99
+ };
70
100
  }
71
101
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/session.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,11 @@ export class InteractiveSession {
17
17
  verifyDriftGateKey = null;
18
18
  consumedGateKeys = new Set();
19
19
  permissionMode = DEFAULT_PERMISSION_MODE;
20
+ lastRunId = null;
21
+ modelOverride = null;
22
+ executionMode = "local";
23
+ transcriptStartIndex = 0;
24
+ conversationEpoch = 0;
20
25
  constructor(cwd) {
21
26
  this.cwd = cwd;
22
27
  }
@@ -41,6 +46,9 @@ export class InteractiveSession {
41
46
  this.verifyDriftBlocked = false;
42
47
  this.verifyDriftGateKey = null;
43
48
  this.consumedGateKeys.clear();
49
+ this.lastRunId = null;
50
+ this.transcriptStartIndex = this.transcript.length;
51
+ this.conversationEpoch += 1;
44
52
  }
45
53
  size() {
46
54
  return this.transcript.length;
@@ -240,5 +248,66 @@ export class InteractiveSession {
240
248
  setPermissionMode(mode) {
241
249
  this.permissionMode = mode;
242
250
  }
251
+ setLastRunId(runId) {
252
+ this.lastRunId = runId?.trim() || null;
253
+ }
254
+ getLastRunId() {
255
+ return this.lastRunId;
256
+ }
257
+ setModelOverride(model) {
258
+ this.modelOverride = model?.trim() || null;
259
+ }
260
+ getModelOverride() {
261
+ return this.modelOverride;
262
+ }
263
+ getExecutionMode() {
264
+ return this.executionMode;
265
+ }
266
+ setExecutionMode(mode) {
267
+ this.executionMode = mode === "cloud" ? "cloud" : "local";
268
+ }
269
+ getConversationEpoch() {
270
+ return this.conversationEpoch;
271
+ }
272
+ getTranscriptStartIndex() {
273
+ return this.transcriptStartIndex;
274
+ }
275
+ getActiveTranscript() {
276
+ return this.transcript.slice(this.transcriptStartIndex);
277
+ }
278
+ hydratePersistedState(input) {
279
+ if (input.lastRunId) {
280
+ this.lastRunId = input.lastRunId;
281
+ }
282
+ if (input.modelOverride) {
283
+ this.modelOverride = input.modelOverride;
284
+ }
285
+ if (input.executionMode) {
286
+ this.executionMode = input.executionMode;
287
+ }
288
+ if (input.permissionMode) {
289
+ this.permissionMode = input.permissionMode;
290
+ }
291
+ if (typeof input.conversationEpoch === "number") {
292
+ this.conversationEpoch = input.conversationEpoch;
293
+ }
294
+ if (input.transcript?.length) {
295
+ this.transcript = input.transcript.map((entry) => ({
296
+ input: entry.input,
297
+ lines: [...entry.lines],
298
+ }));
299
+ this.transcriptStartIndex = 0;
300
+ }
301
+ }
302
+ exportPersistedState() {
303
+ return {
304
+ lastRunId: this.lastRunId,
305
+ modelOverride: this.modelOverride,
306
+ executionMode: this.executionMode,
307
+ permissionMode: this.permissionMode,
308
+ conversationEpoch: this.conversationEpoch,
309
+ transcript: this.snapshot(),
310
+ };
311
+ }
243
312
  }
244
313
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/interactive/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/interactive/session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAatD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA6GjC"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA+EjC"}
@@ -1,12 +1,8 @@
1
1
  import { createInterface } from "node:readline";
2
2
  import { createBufferWriter, createStdoutWriter } from "../ui/text-writer.js";
3
- import { INTERACTIVE_PROMPT, renderInteractiveHeader } from "./header.js";
3
+ import { INTERACTIVE_PROMPT } from "./header.js";
4
4
  import { SlashLineEditor } from "./line-editor.js";
5
- import { redactSensitiveInput } from "./redact-input.js";
6
- import { InteractiveSession } from "./session.js";
7
- import { parseSlashInput } from "./slash-parse.js";
8
- import { dispatchAgentPrompt, dispatchSlashCommand, } from "./slash-dispatch.js";
9
- import { runApplyConfirmationLine } from "../commands/apply.js";
5
+ import { createInteractiveController } from "./session-controller.js";
10
6
  export async function runInteractiveShell(options = {}) {
11
7
  const cwd = options.cwd ?? process.cwd();
12
8
  const buffer = createBufferWriter();
@@ -18,53 +14,29 @@ export async function runInteractiveShell(options = {}) {
18
14
  },
19
15
  };
20
16
  const prompt = options.prompt ?? INTERACTIVE_PROMPT;
21
- const session = new InteractiveSession(cwd);
22
- for (const line of renderInteractiveHeader(cwd, session.getPermissionMode())) {
17
+ const interactive = !options.input && Boolean(process.stdin.isTTY && process.stdout.isTTY);
18
+ const controller = createInteractiveController({
19
+ cwd,
20
+ interactive,
21
+ streamPartials: interactive,
22
+ onPartial: interactive ? (chunk) => process.stdout.write(chunk) : undefined,
23
+ });
24
+ for (const line of controller.renderHeaderLines()) {
23
25
  output.line(line);
24
26
  }
25
27
  output.line("");
26
28
  let exitCode = 0;
27
29
  const processLine = async (rawLine) => {
28
- const line = rawLine.trim();
29
- if (!line) {
30
- return false;
31
- }
32
- const parsed = parseSlashInput(line);
33
- if (!parsed) {
34
- if (session.hasPendingApplyConfirmation()) {
35
- const result = runApplyConfirmationLine(session, line);
36
- session.append({ input: line, lines: result.lines });
37
- for (const entry of result.lines) {
38
- output.line(entry);
39
- }
40
- output.line("");
41
- exitCode = result.exitCode;
42
- return false;
43
- }
44
- const result = await dispatchAgentPrompt(session, line);
45
- session.append({ input: line, lines: result.lines });
46
- for (const entry of result.lines) {
47
- output.line(entry);
48
- }
49
- output.line("");
50
- exitCode = result.exitCode;
51
- return result.exitShell;
52
- }
53
- const result = await dispatchSlashCommand(session, parsed, {
54
- permissionsInteractive: Boolean(!options.input && process.stdin.isTTY && process.stdout.isTTY),
55
- });
56
- session.append({ input: redactSensitiveInput(line), lines: result.lines });
57
- for (const entry of result.lines) {
58
- output.line(entry);
59
- }
60
- output.line("");
30
+ const result = await controller.processLine(rawLine, output);
61
31
  exitCode = result.exitCode;
32
+ if (result.streamed && interactive) {
33
+ process.stdout.write("\n");
34
+ }
62
35
  return result.exitShell;
63
36
  };
64
37
  if (options.input) {
65
38
  output.line(`${prompt}(interactive)`);
66
39
  for (const rawLine of options.input) {
67
- output.line(`${prompt}${rawLine}`);
68
40
  const shouldExit = await processLine(rawLine);
69
41
  if (shouldExit) {
70
42
  break;
@@ -77,7 +49,6 @@ export async function runInteractiveShell(options = {}) {
77
49
  output.line(`${prompt}(piped)`);
78
50
  try {
79
51
  for await (const rawLine of rl) {
80
- output.line(`${prompt}${rawLine}`);
81
52
  const shouldExit = await processLine(rawLine);
82
53
  if (shouldExit) {
83
54
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,18 @@ import type { ParsedSlashInput } from "./slash-parse.js";
3
3
  export type SlashDispatchContext = {
4
4
  permissionsInteractive?: boolean;
5
5
  permissionKeySequence?: readonly string[];
6
+ onTranscriptLine?: (line: string) => void;
7
+ onTranscriptPartial?: (chunk: string) => void;
6
8
  };
7
9
  export type SlashDispatchResult = {
8
10
  lines: string[];
9
11
  exitShell: boolean;
10
12
  exitCode: number;
13
+ streamed?: boolean;
11
14
  };
12
15
  export declare function dispatchSlashCommand(session: InteractiveSession, parsed: ParsedSlashInput, context?: SlashDispatchContext): Promise<SlashDispatchResult>;
13
- export declare function dispatchAgentPrompt(session: InteractiveSession, text: string): Promise<SlashDispatchResult>;
16
+ export declare function dispatchAgentPrompt(session: InteractiveSession, text: string, options?: {
17
+ onTranscriptLine?: (line: string) => void;
18
+ onTranscriptPartial?: (chunk: string) => void;
19
+ }): Promise<SlashDispatchResult>;
14
20
  //# sourceMappingURL=slash-dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slash-dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/slash-dispatch.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAaxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CA2D9B;AAyTD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAO9B"}
1
+ {"version":3,"file":"slash-dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/slash-dispatch.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAcxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAkG9B;AA6XD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACzG,OAAO,CAAC,mBAAmB,CAAC,CAW9B"}