@gkorepanov/ccodex 0.5.0-rc.8 → 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.
Files changed (88) hide show
  1. package/README.md +159 -157
  2. package/config/compatibility.json +1 -1
  3. package/dist/claude/delegation.d.ts +10 -0
  4. package/dist/claude/delegation.js +41 -0
  5. package/dist/claude/delegation.js.map +1 -0
  6. package/dist/claude/native/catalog.d.ts +5 -0
  7. package/dist/claude/native/catalog.js +26 -17
  8. package/dist/claude/native/catalog.js.map +1 -1
  9. package/dist/claude/native/history.js +4 -3
  10. package/dist/claude/native/history.js.map +1 -1
  11. package/dist/claude/native/pages.d.ts +2 -0
  12. package/dist/claude/native/pages.js +6 -1
  13. package/dist/claude/native/pages.js.map +1 -1
  14. package/dist/claude/native/projector.js +33 -12
  15. package/dist/claude/native/projector.js.map +1 -1
  16. package/dist/claude/native/records.js +19 -0
  17. package/dist/claude/native/records.js.map +1 -1
  18. package/dist/claude/native/search.d.ts +7 -0
  19. package/dist/claude/native/search.js +79 -0
  20. package/dist/claude/native/search.js.map +1 -0
  21. package/dist/claude/native/summary.d.ts +6 -1
  22. package/dist/claude/native/summary.js +24 -6
  23. package/dist/claude/native/summary.js.map +1 -1
  24. package/dist/claude/peers.d.ts +2 -0
  25. package/dist/claude/peers.js +13 -4
  26. package/dist/claude/peers.js.map +1 -1
  27. package/dist/claude/processes.d.ts +2 -0
  28. package/dist/claude/processes.js +15 -0
  29. package/dist/claude/processes.js.map +1 -1
  30. package/dist/claude/sdk.d.ts +6 -5
  31. package/dist/claude/sdk.js +15 -8
  32. package/dist/claude/sdk.js.map +1 -1
  33. package/dist/claude/session.d.ts +25 -5
  34. package/dist/claude/session.js +134 -29
  35. package/dist/claude/session.js.map +1 -1
  36. package/dist/claude/threads.d.ts +43 -3
  37. package/dist/claude/threads.js +255 -60
  38. package/dist/claude/threads.js.map +1 -1
  39. package/dist/claude/toolMapper.d.ts +7 -0
  40. package/dist/claude/toolMapper.js +14 -1
  41. package/dist/claude/toolMapper.js.map +1 -1
  42. package/dist/config.d.ts +2 -0
  43. package/dist/config.js +2 -1
  44. package/dist/config.js.map +1 -1
  45. package/dist/daemon/daemon.d.ts +3 -0
  46. package/dist/daemon/daemon.js +6 -3
  47. package/dist/daemon/daemon.js.map +1 -1
  48. package/dist/daemon/supervisor.d.ts +3 -0
  49. package/dist/daemon/supervisor.js +2 -0
  50. package/dist/daemon/supervisor.js.map +1 -1
  51. package/dist/desktop/stdioFrontend.js +1 -1
  52. package/dist/desktop/stdioFrontend.js.map +1 -1
  53. package/dist/gateway/catalog.js +35 -20
  54. package/dist/gateway/catalog.js.map +1 -1
  55. package/dist/gateway/connection.d.ts +2 -0
  56. package/dist/gateway/connection.js +14 -2
  57. package/dist/gateway/connection.js.map +1 -1
  58. package/dist/gateway/lineage.d.ts +9 -1
  59. package/dist/gateway/lineage.js +134 -37
  60. package/dist/gateway/lineage.js.map +1 -1
  61. package/dist/gateway/server.d.ts +2 -1
  62. package/dist/gateway/server.js +24 -12
  63. package/dist/gateway/server.js.map +1 -1
  64. package/dist/gateway/status.d.ts +15 -5
  65. package/dist/gateway/status.js +142 -47
  66. package/dist/gateway/status.js.map +1 -1
  67. package/dist/gateway/stock.js +17 -2
  68. package/dist/gateway/stock.js.map +1 -1
  69. package/dist/instructions.d.ts +4 -0
  70. package/dist/instructions.js +13 -0
  71. package/dist/instructions.js.map +1 -0
  72. package/dist/management/commands.js +19 -2
  73. package/dist/management/commands.js.map +1 -1
  74. package/dist/meta.d.ts +39 -11
  75. package/dist/meta.js +59 -28
  76. package/dist/meta.js.map +1 -1
  77. package/dist/protocol/codex.d.ts +1 -3
  78. package/dist/protocol/codex.js +1 -4
  79. package/dist/protocol/codex.js.map +1 -1
  80. package/dist/protocol/turnPagination.d.ts +27 -2
  81. package/dist/protocol/turnPagination.js +46 -18
  82. package/dist/protocol/turnPagination.js.map +1 -1
  83. package/examples/config.toml +6 -2
  84. package/instructions/ccodex_extra_claude_instructions.md +20 -0
  85. package/instructions/ccodex_extra_common_instructions.md +23 -0
  86. package/legal/THIRD_PARTY_NOTICES.md +9 -9
  87. package/package.json +6 -5
  88. package/scripts/migrate-0.4-to-0.5.mjs +29 -18
@@ -0,0 +1,79 @@
1
+ /** Stock's `thread/search` for Claude sessions: ripgrep finds the transcript lines holding the term, the first
2
+ * visible message (a user prompt or Claude's text, not tool calls or their output) holding it is the snippet. */
3
+ import { spawn } from "node:child_process";
4
+ import { createInterface } from "node:readline";
5
+ import { parseTranscriptLine } from "./records.js";
6
+ import { slashCommand, startsTurn, userText } from "./summary.js";
7
+ /** Stock's snippet (codex-rs/rollout/src/search.rs `excerpt_around_match`): whitespace collapsed, the match with the
8
+ * 49 characters before it and 96 after, "... " / " ..." where the text goes on. */
9
+ export function snippet(text, term) {
10
+ const flat = text.split(/\s+/u).filter(Boolean).join(" ");
11
+ const at = flat.toLowerCase().indexOf(term);
12
+ if (at < 0)
13
+ return undefined;
14
+ const before = [...flat.slice(0, at)];
15
+ const after = [...flat.slice(at + term.length)];
16
+ const start = Math.max(0, before.length - 49);
17
+ const cut = after.length > 96;
18
+ const excerpt = `${before.slice(start).join("")}${flat.slice(at, at + term.length)}${after.slice(0, 96).join("")}`.trim();
19
+ return `${start > 0 ? "... " : ""}${excerpt}${cut ? " ..." : ""}`;
20
+ }
21
+ function visibleText(line) {
22
+ const record = parseTranscriptLine(Buffer.from(line));
23
+ if (!record || ("isSidechain" in record && record.isSidechain))
24
+ return undefined;
25
+ if (record.type === "user")
26
+ return startsTurn(record) ? slashCommand(userText(record)) ?? userText(record) : undefined;
27
+ if (record.type !== "assistant" || !Array.isArray(record.message.content))
28
+ return undefined;
29
+ return record.message.content.flatMap((block) => block.type === "text" ? [String(block.text)] : []).join("\n");
30
+ }
31
+ /** Claude's own ripgrep (its binary run as `rg`) over `args`, a fixed string any case; each output line to `line`, which stops the search by returning true. Lines over 100 KB (tool output) are left out. */
32
+ async function ripgrep(claudeBinary, args, line) {
33
+ const child = spawn(claudeBinary, ["--fixed-strings", "--ignore-case", "--max-columns", "100000", "--no-ignore", "--hidden", ...args], { argv0: "rg", stdio: ["ignore", "pipe", "pipe"] });
34
+ let stderr = "";
35
+ child.stderr.on("data", (chunk) => { stderr += chunk; });
36
+ // 0: found, 1: nothing found; stopped early: killed.
37
+ const exited = new Promise((resolve, reject) => {
38
+ child.on("error", reject);
39
+ child.on("close", (code) => code === 0 || code === 1 || child.killed ? resolve() : reject(new Error(`rg: ${stderr.trim()}`)));
40
+ });
41
+ for await (const text of createInterface({ input: child.stdout, crlfDelay: Infinity })) {
42
+ if (line(text)) {
43
+ child.kill();
44
+ break;
45
+ }
46
+ }
47
+ await exited;
48
+ }
49
+ /** Transcript path → snippet for every top-level transcript under `projectsDir` whose visible messages hold `term`. */
50
+ export async function searchTranscripts(claudeBinary, projectsDir, term) {
51
+ const lower = term.toLowerCase();
52
+ const found = new Map();
53
+ await ripgrep(claudeBinary, ["--null", "--no-heading", "--no-line-number", "--max-depth", "2", "--glob", "*.jsonl", "--", term, projectsDir], (line) => {
54
+ const split = line.indexOf("\0");
55
+ const path = line.slice(0, split);
56
+ if (found.has(path))
57
+ return false;
58
+ const text = visibleText(line.slice(split + 1));
59
+ const match = text && snippet(text, lower);
60
+ if (match)
61
+ found.set(path, match);
62
+ return false;
63
+ });
64
+ return found;
65
+ }
66
+ /** Where (bytes into the file) the first visible message of the transcript holding `term` is, if one does. */
67
+ export async function firstMatch(claudeBinary, path, term) {
68
+ const lower = term.toLowerCase();
69
+ let offset;
70
+ await ripgrep(claudeBinary, ["--byte-offset", "--no-filename", "--no-line-number", "--", term, path], (line) => {
71
+ const split = line.indexOf(":");
72
+ if (!visibleText(line.slice(split + 1))?.toLowerCase().includes(lower))
73
+ return false;
74
+ offset = Number(line.slice(0, split));
75
+ return true;
76
+ });
77
+ return offset;
78
+ }
79
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/claude/native/search.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /** Owns the constant-memory reduction of native transcript records into thread header fields. */
2
1
  import { type TranscriptRecord, type UserRecord } from "./records.js";
3
2
  export interface TranscriptHeader {
4
3
  readonly cwd: string;
@@ -24,6 +23,8 @@ export interface NativeGoal {
24
23
  }
25
24
  export interface TranscriptSummaryState extends TranscriptHeader {
26
25
  readonly hasCreatedAt: boolean;
26
+ /** `cwd` is the session's own (its first record's), as a stock thread's: a `cd` Claude runs moves its later records'. */
27
+ readonly hasCwd: boolean;
27
28
  /**
28
29
  * A thread is a session with a prompt, as stock lists only threads with a user message: not a session that only ran
29
30
  * a local command, nor a deleted one whose metadata (title, cost) Claude rewrote after closing it.
@@ -32,10 +33,14 @@ export interface TranscriptSummaryState extends TranscriptHeader {
32
33
  /** Cross-session messages (`msg_id`) the session sent (its SendMessage results) and got (peer records). */
33
34
  readonly sentMessages: readonly string[];
34
35
  readonly receivedMessages: readonly string[];
36
+ /** Proactive delegation (CCodex's `ultra` effort) as its mode message last told Claude. */
37
+ readonly delegating: boolean;
35
38
  }
36
39
  export declare function timestampSeconds(timestamp: string | undefined): number | null;
37
40
  export declare function userText(record: UserRecord): string;
38
41
  /** `/name args` for a user-typed slash command record (`<command-name>/goal</command-name>...`). */
42
+ /** A thread's preview: the start of its first prompt (the list shows one line of it; the full text only bloats it). */
43
+ export declare function preview(text: string): string;
39
44
  export declare function slashCommand(text: string): string | undefined;
40
45
  export declare function startsTurn(record: UserRecord, subagentPromptUuid?: string): boolean;
41
46
  export declare class TranscriptSummarizer {
@@ -1,4 +1,5 @@
1
1
  /** Owns the constant-memory reduction of native transcript records into thread header fields. */
2
+ import { DELEGATION_OFF, DELEGATION_ON } from "../delegation.js";
2
3
  import { isChainRecord } from "./records.js";
3
4
  export function timestampSeconds(timestamp) {
4
5
  if (!timestamp)
@@ -16,6 +17,10 @@ function hasToolResult(record) {
16
17
  && record.message.content.some((block) => block.type === "tool_result");
17
18
  }
18
19
  /** `/name args` for a user-typed slash command record (`<command-name>/goal</command-name>...`). */
20
+ /** A thread's preview: the start of its first prompt (the list shows one line of it; the full text only bloats it). */
21
+ export function preview(text) {
22
+ return [...text.trim()].slice(0, 100).join("");
23
+ }
19
24
  export function slashCommand(text) {
20
25
  const name = /^<command-name>(\/[^<]+)<\/command-name>/u.exec(text)?.[1];
21
26
  if (!name)
@@ -34,13 +39,14 @@ export function startsTurn(record, subagentPromptUuid) {
34
39
  return false;
35
40
  const text = userText(record);
36
41
  const command = slashCommand(text);
37
- // The SDK's setModel records a model switch as `/model <name>`: a setting, not a turn.
42
+ // The SDK's setModel records a model switch as `/model <name>`: a setting, not a turn; so is clearing a goal.
38
43
  if (command)
39
- return !/^\/model(?:\s|$)/u.test(command);
44
+ return !/^\/(?:model(?:\s|$)|goal clear$)/u.test(command);
40
45
  return !/<command-name>|<command-message>|<command-args>|<local-command-[^>]*>|<task-notification>/u.test(text)
41
- && !text.startsWith("[Injected model-visible history]")
46
+ && !text.startsWith(INJECTED)
42
47
  && !/^\[Request interrupted by user(?: for tool use)?\]$/u.test(text);
43
48
  }
49
+ const INJECTED = "[Injected model-visible history]";
44
50
  const EMPTY_STATE = {
45
51
  cwd: "/",
46
52
  gitBranch: null,
@@ -56,15 +62,18 @@ const EMPTY_STATE = {
56
62
  cliVersion: null,
57
63
  goal: null,
58
64
  hasCreatedAt: false,
65
+ hasCwd: false,
59
66
  hasFirstPrompt: false,
60
67
  sentMessages: [],
61
68
  receivedMessages: [],
69
+ delegating: false,
62
70
  };
63
71
  function serviceTier(record) {
64
72
  if (record.type !== "assistant" || record.message.stop_reason === null
65
73
  || record.message.stop_reason === undefined)
66
74
  return null;
67
- return record.message.usage?.service_tier === "priority" ? "fast" : null;
75
+ // Claude records the speed it answered at (its `service_tier` is another thing).
76
+ return record.message.usage?.speed === "fast" ? "fast" : null;
68
77
  }
69
78
  export class TranscriptSummarizer {
70
79
  subagentPromptUuid;
@@ -82,8 +91,10 @@ export class TranscriptSummarizer {
82
91
  if (timestamp !== null)
83
92
  this.state.updatedAt = timestamp;
84
93
  if (isChainRecord(record)) {
85
- if (record.cwd !== undefined)
94
+ if (record.cwd !== undefined && !this.state.hasCwd) {
86
95
  this.state.cwd = record.cwd;
96
+ this.state.hasCwd = true;
97
+ }
87
98
  if (record.gitBranch !== undefined)
88
99
  this.state.gitBranch = record.gitBranch;
89
100
  if (record.version !== undefined)
@@ -92,11 +103,18 @@ export class TranscriptSummarizer {
92
103
  if (record.type === "user") {
93
104
  if (!this.state.hasFirstPrompt && startsTurn(record, this.subagentPromptUuid)) {
94
105
  const text = userText(record);
95
- this.state.preview = (slashCommand(text) ?? text).trim();
106
+ this.state.preview = preview(slashCommand(text) ?? text);
96
107
  this.state.hasFirstPrompt = true;
97
108
  }
98
109
  if (record.permissionMode !== undefined)
99
110
  this.state.permissionMode = record.permissionMode;
111
+ if (record.origin === undefined && !hasToolResult(record)) {
112
+ const text = userText(record);
113
+ if (text === `${INJECTED}\n${DELEGATION_ON}`)
114
+ this.state.delegating = true;
115
+ else if (text === `${INJECTED}\n${DELEGATION_OFF}`)
116
+ this.state.delegating = false;
117
+ }
100
118
  const sent = record.toolUseResult?.msg_id;
101
119
  if (typeof sent === "string")
102
120
  this.state.sentMessages = [...this.state.sentMessages, sent];
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/claude/native/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/claude/native/summary.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export declare function subagentFiles(transcriptPath: string | undefined): Peers
19
19
  export declare const NO_PEERS: Peers;
20
20
  type Fields = Readonly<Record<string, unknown>>;
21
21
  export declare function peerOrigin(origin: unknown): Fields | undefined;
22
+ /** A live Claude process that has the session open and is not ours (the claude CLI, another app): its pid. */
23
+ export declare function foreignOwner(home: string, sessionId: string): number | undefined;
22
24
  /** The thread a peer message came from: a sub-agent of this session, or the session that sent it. */
23
25
  export declare function peerSource(origin: Fields, peers: Peers): string | undefined;
24
26
  /** One message, whether read from its record or from the result of the turn it started. */
@@ -6,6 +6,7 @@
6
6
  import { existsSync, readdirSync, readFileSync } from "node:fs";
7
7
  import { join } from "node:path";
8
8
  import { claudeHome } from "../config.js";
9
+ import { parentPid } from "./processes.js";
9
10
  /** A session's sub-agents are its transcripts under `<session>/subagents` (a resumed session's earlier ones too). */
10
11
  export function subagentFiles(transcriptPath) {
11
12
  const session = transcriptPath?.replace(/\.jsonl$/u, "");
@@ -35,7 +36,7 @@ function runningSession(home, match) {
35
36
  try {
36
37
  const session = fields(JSON.parse(readFileSync(join(directory, name), "utf8")));
37
38
  if (session && match(session))
38
- return text(session.sessionId);
39
+ return session;
39
40
  }
40
41
  catch { }
41
42
  }
@@ -43,6 +44,14 @@ function runningSession(home, match) {
43
44
  catch { }
44
45
  return undefined;
45
46
  }
47
+ /** A live Claude process that has the session open and is not ours (the claude CLI, another app): its pid. */
48
+ export function foreignOwner(home, sessionId) {
49
+ const owner = runningSession(home, (session) => {
50
+ const parent = session.sessionId === sessionId ? parentPid(Number(session.pid)) : undefined;
51
+ return parent !== undefined && parent !== process.pid;
52
+ });
53
+ return owner && Number(owner.pid);
54
+ }
46
55
  function thread(peers, sessionId) {
47
56
  return sessionId && peers.directory.has(sessionId) ? sessionId : undefined;
48
57
  }
@@ -56,9 +65,9 @@ export function peerSource(origin, peers) {
56
65
  const procStart = text(origin.verifiedPeerProcStart);
57
66
  const name = text(origin.name);
58
67
  return thread(peers, msgId && peers.directory.sender(msgId))
59
- ?? thread(peers, runningSession(peers.home ?? claudeHome(), (session) => pid !== undefined
68
+ ?? thread(peers, text(runningSession(peers.home ?? claudeHome(), (session) => pid !== undefined
60
69
  ? text(session.pid) === pid && (!procStart || !session.procStart || text(session.procStart) === procStart)
61
- : name !== undefined && session.name === name));
70
+ : name !== undefined && session.name === name)?.sessionId));
62
71
  }
63
72
  /** One message, whether read from its record or from the result of the turn it started. */
64
73
  export function peerKey(origin, recordText) {
@@ -102,7 +111,7 @@ export function sentMessageItem(item, input, result, peers) {
102
111
  // `to` names a session as ListAgents lists it ("work-8c", "work-8c [5bc12a]"), or (a reply) the address it wrote from.
103
112
  const name = to?.replace(/\s*\[[^\]]*\]$/u, "");
104
113
  const target = thread(peers, msgId && peers.directory.receiver(msgId))
105
- ?? thread(peers, name && runningSession(peers.home ?? claudeHome(), (session) => session.name === name || session.sessionId === name || `uds:${text(session.messagingSocketPath)}` === name));
114
+ ?? thread(peers, name && text(runningSession(peers.home ?? claudeHome(), (session) => session.name === name || session.sessionId === name || `uds:${text(session.messagingSocketPath)}` === name)?.sessionId));
106
115
  if (!target)
107
116
  return item;
108
117
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/claude/peers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../src/claude/peers.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,7 @@ export interface SessionProcess {
8
8
  export declare function cpuSeconds(time: string): number;
9
9
  /** The commands Claude sessions still run in their process trees, by session. */
10
10
  export declare function sessionProcesses(): SessionProcess[];
11
+ /** The parent of a running process; undefined once it is gone. */
12
+ export declare function parentPid(pid: number): number | undefined;
11
13
  /** SIGTERM now, SIGKILL whatever is left a moment later. */
12
14
  export declare function killProcesses(pids: readonly number[]): void;
@@ -55,6 +55,21 @@ export function sessionProcesses() {
55
55
  return session && claude && inTree(sample.pid, claude) ? [{ pid: sample.pid, session, cpu: sample.cpu }] : [];
56
56
  });
57
57
  }
58
+ /** The parent of a running process; undefined once it is gone. */
59
+ export function parentPid(pid) {
60
+ try {
61
+ const stat = readFileSync(`/proc/${pid}/stat`, "utf8");
62
+ return Number(stat.slice(stat.lastIndexOf(")") + 2).split(" ")[1]);
63
+ }
64
+ catch {
65
+ try {
66
+ return Number(execFileSync("ps", ["-o", "ppid=", "-p", String(pid)], { encoding: "utf8" }).trim()) || undefined;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
72
+ }
58
73
  /** SIGTERM now, SIGKILL whatever is left a moment later. */
59
74
  export function killProcesses(pids) {
60
75
  const signal = (name) => {
@@ -1 +1 @@
1
- {"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/claude/processes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/claude/processes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ModelInfo, type Options, type Query, type SlashCommand } from "@anthropic-ai/claude-agent-sdk";
1
+ import { type ModelInfo, type Options, type PermissionMode, type Query, type SlashCommand } from "@anthropic-ai/claude-agent-sdk";
2
2
  import type { Config } from "../config.js";
3
3
  import type { JsonObject } from "../protocol/codex.js";
4
4
  import type { SessionSettings } from "./session.js";
@@ -14,11 +14,12 @@ export interface CodexPermissions {
14
14
  };
15
15
  }
16
16
  /**
17
- * The chat's permission mode after a Codex settings change: it changes only with the permission fields Desktop sends
18
- * (Desktop sends them as null to keep them); plan mode follows the collaboration mode and, left, gives back the mode
19
- * the chat had before it.
17
+ * The chat's permissions and plan mode after a Codex settings change, apart like stock's: the permission mode changes
18
+ * only with the permission fields Desktop sends (null to keep them), plan mode with the collaboration mode.
20
19
  */
21
- export declare function permissionSettings(params: JsonObject, current: Pick<SessionSettings, "permissionMode" | "planFrom">): Pick<SessionSettings, "permissionMode" | "planFrom">;
20
+ export declare function permissionSettings(params: JsonObject, current: Pick<SessionSettings, "permissionMode" | "plan">): Pick<SessionSettings, "permissionMode" | "plan">;
21
+ /** The mode Claude runs in: its plan mode while the chat is in plan mode. */
22
+ export declare function claudeMode(settings: Pick<SessionSettings, "permissionMode" | "plan">): PermissionMode;
22
23
  export declare function codexPermissions(mode: string | null, cwd: string): CodexPermissions;
23
24
  export declare function claudeModelDisplayName(model: ModelInfo): string;
24
25
  export declare function mapClaudeModel(model: ModelInfo, prefix: string): JsonObject;
@@ -3,6 +3,7 @@ import { dirname, join } from "node:path";
3
3
  import { query } from "@anthropic-ai/claude-agent-sdk";
4
4
  import { modelCatalogValue, normalizeClaudeModelIdentifier } from "./modelSelection.js";
5
5
  import { claudeSkillFile } from "./toolMapper.js";
6
+ import { ULTRA } from "./delegation.js";
6
7
  export function claudeEnvironment() {
7
8
  const env = { ...process.env, CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS: "1" };
8
9
  delete env.CCODEX_SHIM_ACTIVE;
@@ -33,16 +34,19 @@ function chosenPermissionMode(params, current) {
33
34
  return undefined;
34
35
  }
35
36
  /**
36
- * The chat's permission mode after a Codex settings change: it changes only with the permission fields Desktop sends
37
- * (Desktop sends them as null to keep them); plan mode follows the collaboration mode and, left, gives back the mode
38
- * the chat had before it.
37
+ * The chat's permissions and plan mode after a Codex settings change, apart like stock's: the permission mode changes
38
+ * only with the permission fields Desktop sends (null to keep them), plan mode with the collaboration mode.
39
39
  */
40
40
  export function permissionSettings(params, current) {
41
- const planned = current.permissionMode === "plan";
42
- const kept = planned ? current.planFrom ?? "default" : current.permissionMode;
43
- const base = chosenPermissionMode(params, kept) ?? kept;
44
41
  const collaboration = params.collaborationMode?.mode;
45
- return (collaboration ? collaboration === "plan" : planned) ? { permissionMode: "plan", planFrom: base } : { permissionMode: base };
42
+ return {
43
+ permissionMode: chosenPermissionMode(params, current.permissionMode) ?? current.permissionMode,
44
+ plan: collaboration ? collaboration === "plan" : current.plan,
45
+ };
46
+ }
47
+ /** The mode Claude runs in: its plan mode while the chat is in plan mode. */
48
+ export function claudeMode(settings) {
49
+ return settings.plan ? "plan" : settings.permissionMode;
46
50
  }
47
51
  export function codexPermissions(mode, cwd) {
48
52
  if (mode === "bypassPermissions") {
@@ -68,6 +72,7 @@ const effortDescriptions = {
68
72
  high: "Deep reasoning for complex work.",
69
73
  xhigh: "Extra-high reasoning effort.",
70
74
  max: "Maximum available reasoning effort.",
75
+ ultra: "Maximum reasoning with automatic task delegation",
71
76
  };
72
77
  export function claudeModelDisplayName(model) {
73
78
  const displayName = model.displayName.replace(/\s*\(1M context\)\s*$/iu, "");
@@ -85,7 +90,9 @@ export function claudeModelDisplayName(model) {
85
90
  return `${displayName} · ${label}`;
86
91
  }
87
92
  export function mapClaudeModel(model, prefix) {
88
- const efforts = model.supportsEffort ? (model.supportedEffortLevels ?? []) : [];
93
+ const supported = model.supportsEffort ? (model.supportedEffortLevels ?? []) : [];
94
+ // Stock's `ultra`: Claude's max with proactive sub-agent delegation.
95
+ const efforts = supported.includes("max") ? [...supported, ULTRA] : supported;
89
96
  // Like stock models: Desktop adds the standard speed itself.
90
97
  const serviceTiers = model.supportsFastMode ? [{ id: "fast", name: "Fast", description: "Claude fast mode." }] : [];
91
98
  const id = `${prefix}${modelCatalogValue(model)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/claude/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/claude/sdk.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,10 @@ export interface SessionSettings {
7
7
  model: string | null;
8
8
  effort: string | null;
9
9
  fast: boolean;
10
+ /** The chat's permissions (never Claude's plan mode: that is `plan`). */
10
11
  permissionMode: PermissionMode;
11
- /** The mode plan mode gives back. */
12
- planFrom?: PermissionMode;
12
+ /** Codex plan mode (the collaboration mode). */
13
+ plan: boolean;
13
14
  }
14
15
  interface ActiveTurn {
15
16
  readonly id: string;
@@ -35,10 +36,14 @@ export declare class ClaudeSession {
35
36
  readonly threadId: string;
36
37
  settings: SessionSettings;
37
38
  turn: ActiveTurn | undefined;
39
+ /** A turn was started here: before that the chat is Desktop's new-chat draft, which stock lists nowhere. */
40
+ started: boolean;
38
41
  state: "idle" | "running" | "requires_action";
39
42
  readonly tasks: Map<string, BackgroundTask>;
40
43
  /** Background commands running on past their turn (stock's background terminals), by task id. */
41
44
  private readonly background;
45
+ /** Output files of commands Stop killed while Claude waited on them, by their call. */
46
+ private readonly killed;
42
47
  /** TaskStop calls: shown on the command they stop, as stock shows a Ctrl-C (by tool use id). */
43
48
  private readonly stops;
44
49
  /** Claude's sub-agents running (in the background they keep no turn open: each has a chat of its own). */
@@ -46,8 +51,6 @@ export declare class ClaudeSession {
46
51
  queued: QueuedSubmissionLike[];
47
52
  totalUsage: TokenUsageBreakdown;
48
53
  lastUsage: TokenUsageBreakdown;
49
- contextWindow: number | null;
50
- costUsd: number;
51
54
  liveModel: string | null;
52
55
  private sdk?;
53
56
  /** Last sign of life: a message from Claude, a prompt, a command. */
@@ -74,8 +77,12 @@ export declare class ClaudeSession {
74
77
  private readonly plan;
75
78
  /** Messages from other agents shown (peerKey), whichever of transcript and result told them first. */
76
79
  private readonly peerMessages;
80
+ /** The goal last sent to Claude with `/goal` (null: cleared); undefined until this session sends one. */
81
+ goalObjective: string | null | undefined;
77
82
  /** The running turn's result came: Claude answering again means it took another prompt by itself. */
78
83
  private afterResult;
84
+ /** Proactive delegation (the `ultra` effort) as last told to Claude (its transcript's, for a chat loaded again). */
85
+ private delegating;
79
86
  /** A task's end came with no turn running: the command Claude runs for it goes on after the last answer. */
80
87
  private notified;
81
88
  /** Claude's last block since a turn began (its item id; the text item while it streams text). */
@@ -87,12 +94,17 @@ export declare class ClaudeSession {
87
94
  exists: boolean;
88
95
  resumeAt?: string;
89
96
  });
97
+ /** Claude's transcript records only its plan mode and the model it plans on: from plan mode on, the chat's own settings
98
+ * wait in meta.json until a turn out of plan mode records them (turning plan mode off records nothing). */
99
+ private keepPlan;
90
100
  private resumeAt;
91
101
  get loaded(): boolean;
92
102
  get busy(): boolean;
93
103
  /** Nothing to do for `idleMs` (closing its process loses nothing: the next turn resumes from disk). */
94
104
  quiet(now: number, idleMs: number): boolean;
95
105
  /** No turn runs, only background tasks. */
106
+ /** Tasks running on their own: not a command or sub-agent the turn still waits on (its call open). */
107
+ get backgroundTasks(): BackgroundTask[];
96
108
  get waitingOnTasks(): boolean;
97
109
  /** The item ids of the background commands running (history shows them ended unless they run here). */
98
110
  get runningCommands(): ReadonlySet<string>;
@@ -115,6 +127,14 @@ export declare class ClaudeSession {
115
127
  steer(params: JsonObject): Promise<string>;
116
128
  /** Model-visible context without a model reply (provider switch summary, injected items). */
117
129
  inject(text: string): Promise<void>;
130
+ /**
131
+ * Claude's `/goal` (its only goal API). Claude pursues a goal in one turn until it is met and runs a command sent
132
+ * meanwhile only after that: with a goal active, a running turn stops first. Clearing is no turn: Codex clients show
133
+ * goals themselves.
134
+ */
135
+ goal(args: string, active: boolean): Promise<void>;
136
+ /** A message that opens no turn; resolves once Claude has taken it. */
137
+ private quietly;
118
138
  /** Resolves with the final status once the turn completes. */
119
139
  turnDone(turnId: string): Promise<string>;
120
140
  interrupt(): Promise<void>;
@@ -123,7 +143,7 @@ export declare class ClaudeSession {
123
143
  private endBackground;
124
144
  askSideQuestion(question: string): Promise<string>;
125
145
  private applyTurnSettings;
126
- updateSettings(params: JsonObject): Promise<boolean>;
146
+ updateSettings(params: JsonObject): Promise<void>;
127
147
  private newTurnObject;
128
148
  /** `announced`: the provider switch already started the turn under this preallocated id. */
129
149
  private openTurn;