@veewo/claw 0.2.3 → 0.2.4

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.
@@ -1,4 +1,4 @@
1
- export declare const CODEX_DRIVER_VERSION = 9;
1
+ export declare const CODEX_DRIVER_VERSION = 10;
2
2
  export declare const CODEX_HOST_ACTION_SCHEMA_VERSION = 1;
3
- export declare const CODEX_DRIVER_CACHE_KEY = "claw-kit:codex-driver:v9:s1";
3
+ export declare const CODEX_DRIVER_CACHE_KEY = "claw-kit:codex-driver:v10:s1";
4
4
  export declare function buildCodexDriverEnvelope(cliVersion: string): Record<string, unknown>;
@@ -1,17 +1,24 @@
1
1
  import { createHash } from "node:crypto";
2
- export const CODEX_DRIVER_VERSION = 9;
2
+ export const CODEX_DRIVER_VERSION = 10;
3
3
  export const CODEX_HOST_ACTION_SCHEMA_VERSION = 1;
4
4
  export const CODEX_DRIVER_CACHE_KEY = `claw-kit:codex-driver:v${CODEX_DRIVER_VERSION}:s${CODEX_HOST_ACTION_SCHEMA_VERSION}`;
5
- async function codexDriverRunner({ command, workdir, timeout_ms = 30000 }, { tools, text }) {
6
- if (typeof command !== "string" || command.trim().length === 0) {
7
- throw new TypeError("command is required");
5
+ async function codexDriverRunner({ argv, workdir, timeout_ms = 30000 }, { tools, text }) {
6
+ if (!Array.isArray(argv)
7
+ || argv.length === 0
8
+ || argv.some((value) => typeof value !== "string")
9
+ || !["plan", "task", "subplan"].includes(argv[0])
10
+ || argv.some((value) => value === "--host")) {
11
+ throw new TypeError("argv must be a structured plan, task, or subplan command without --host");
8
12
  }
9
13
  if (typeof workdir !== "string" || workdir.trim().length === 0) {
10
14
  throw new TypeError("workdir is required");
11
15
  }
12
- const codexCommand = /(?:^|\s)--host(?:=|\s)/.test(command)
13
- ? command
14
- : `${command} --host codex`;
16
+ const serializedArgv = JSON.stringify(argv);
17
+ let encodedArgv = "";
18
+ for (let index = 0; index < serializedArgv.length; index += 1) {
19
+ encodedArgv += serializedArgv.charCodeAt(index).toString(16).padStart(4, "0");
20
+ }
21
+ const codexCommand = `claw codex invoke ${encodedArgv}`;
15
22
  const raw = typeof tools.shell_command === "function"
16
23
  ? await tools.shell_command({ command: codexCommand, workdir, timeout_ms })
17
24
  : typeof tools.exec_command === "function"
@@ -26,34 +33,48 @@ async function codexDriverRunner({ command, workdir, timeout_ms = 30000 }, { too
26
33
  if (typeof outputText !== "string") {
27
34
  throw new TypeError("claw command returned no text output");
28
35
  }
29
- const start = outputText.indexOf("{");
30
- let depth = 0;
31
- let quoted = false;
32
- let escaped = false;
33
- let end = -1;
34
- for (let index = start; index >= 0 && index < outputText.length; index += 1) {
35
- const character = outputText[index];
36
- if (quoted) {
37
- if (escaped)
38
- escaped = false;
39
- else if (character === "\\")
40
- escaped = true;
36
+ let result;
37
+ for (let candidateStart = outputText.indexOf("{"); candidateStart >= 0; candidateStart = outputText.indexOf("{", candidateStart + 1)) {
38
+ let depth = 0;
39
+ let quoted = false;
40
+ let escaped = false;
41
+ for (let index = candidateStart; index < outputText.length; index += 1) {
42
+ const character = outputText[index];
43
+ if (quoted) {
44
+ if (escaped)
45
+ escaped = false;
46
+ else if (character === "\\")
47
+ escaped = true;
48
+ else if (character === '"')
49
+ quoted = false;
50
+ }
41
51
  else if (character === '"')
42
- quoted = false;
52
+ quoted = true;
53
+ else if (character === "{")
54
+ depth += 1;
55
+ else if (character === "}" && --depth === 0) {
56
+ try {
57
+ const parsed = JSON.parse(outputText.slice(candidateStart, index + 1));
58
+ if (parsed
59
+ && typeof parsed === "object"
60
+ && !Array.isArray(parsed)
61
+ && typeof parsed.ok === "boolean"
62
+ && typeof parsed.command === "string") {
63
+ result = parsed;
64
+ }
65
+ }
66
+ catch {
67
+ // Continue after unrelated shell diagnostics that happen to contain braces.
68
+ }
69
+ break;
70
+ }
43
71
  }
44
- else if (character === '"')
45
- quoted = true;
46
- else if (character === "{")
47
- depth += 1;
48
- else if (character === "}" && --depth === 0) {
49
- end = index + 1;
72
+ if (result)
50
73
  break;
51
- }
52
74
  }
53
- if (start < 0 || end < 0) {
54
- throw new Error("claw returned no complete JSON result");
75
+ if (!result) {
76
+ throw new Error("claw returned no valid JSON protocol result");
55
77
  }
56
- const result = JSON.parse(outputText.slice(start, end));
57
78
  if (result.ok !== true) {
58
79
  throw new Error(`claw mutation failed: ${String(result.command ?? "unknown")}`);
59
80
  }
@@ -62,11 +83,8 @@ async function codexDriverRunner({ command, workdir, timeout_ms = 30000 }, { too
62
83
  create_goal: tools.create_goal,
63
84
  update_goal: tools.update_goal,
64
85
  };
65
- const allowedInput = {
66
- update_plan: new Set(["explanation", "plan"]),
67
- create_goal: new Set(["objective"]),
68
- update_goal: new Set(["status"]),
69
- };
86
+ const planStatuses = new Set(["pending", "in_progress", "completed"]);
87
+ const goalStatuses = new Set(["complete", "blocked"]);
70
88
  const consumed = new Set();
71
89
  let goalRecovery;
72
90
  const actions = Array.isArray(result.hostActions) ? result.hostActions : [];
@@ -84,7 +102,32 @@ async function codexDriverRunner({ command, workdir, timeout_ms = 30000 }, { too
84
102
  if (!input || typeof input !== "object" || Array.isArray(input)) {
85
103
  throw new Error(`invalid Codex hostAction input: ${id}`);
86
104
  }
87
- if (Object.keys(input).some((key) => !allowedInput[tool].has(key))) {
105
+ const inputRecord = input;
106
+ if (tool === "update_plan") {
107
+ if (Object.keys(inputRecord).some((key) => key !== "explanation" && key !== "plan")
108
+ || (inputRecord.explanation !== undefined && typeof inputRecord.explanation !== "string")
109
+ || !Array.isArray(inputRecord.plan)
110
+ || inputRecord.plan.length === 0
111
+ || inputRecord.plan.some((item) => {
112
+ if (!item || typeof item !== "object" || Array.isArray(item))
113
+ return true;
114
+ const planItem = item;
115
+ return Object.keys(planItem).some((key) => key !== "step" && key !== "status")
116
+ || typeof planItem.step !== "string"
117
+ || !planStatuses.has(String(planItem.status));
118
+ })) {
119
+ throw new Error(`invalid Codex hostAction input: ${id}`);
120
+ }
121
+ }
122
+ else if (tool === "create_goal") {
123
+ if (Object.keys(inputRecord).some((key) => key !== "objective")
124
+ || typeof inputRecord.objective !== "string"
125
+ || inputRecord.objective.length === 0) {
126
+ throw new Error(`invalid Codex hostAction input: ${id}`);
127
+ }
128
+ }
129
+ else if (Object.keys(inputRecord).some((key) => key !== "status")
130
+ || !goalStatuses.has(String(inputRecord.status))) {
88
131
  throw new Error(`invalid Codex hostAction input: ${id}`);
89
132
  }
90
133
  if (tool === "create_goal" || tool === "update_goal") {
@@ -117,7 +160,7 @@ async function codexDriverRunner({ command, workdir, timeout_ms = 30000 }, { too
117
160
  continue;
118
161
  }
119
162
  }
120
- await handler(input);
163
+ await handler(inputRecord);
121
164
  consumed.add(id);
122
165
  }
123
166
  const visibleKeys = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"codex-driver.js","sourceRoot":"","sources":["../src/codex-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-driver.js","sourceRoot":"","sources":["../src/codex-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type PlanDocument, type PlanEvent, type WorkflowGuidance } from "@veewo/claw-core";
2
+ export declare function buildCodexHostActions(result: {
3
+ planStatus: string;
4
+ previousPlan?: PlanDocument;
5
+ plan?: PlanDocument;
6
+ workflowGuidance: WorkflowGuidance;
7
+ events?: PlanEvent[];
8
+ }, options?: {
9
+ forceProjectionSync?: boolean;
10
+ actionIdPrefix?: string;
11
+ }): Array<Record<string, unknown>>;
12
+ export declare function buildCodexPlanProjection(plan: PlanDocument, planStatus: string): Array<{
13
+ step: string;
14
+ status: "pending" | "in_progress" | "completed";
15
+ }>;
@@ -0,0 +1,75 @@
1
+ import { shouldUsePlanHostIntegration, } from "@veewo/claw-core";
2
+ export function buildCodexHostActions(result, options = {}) {
3
+ const latestEvent = result.events?.at(-1);
4
+ const actionIdPrefix = options.actionIdPrefix ?? latestEvent?.mutationId;
5
+ if (!actionIdPrefix)
6
+ return [];
7
+ const actions = [];
8
+ const goalTool = result.workflowGuidance.goalTool;
9
+ const isSubplanGoalHandoff = Boolean(result.plan?.parentPlan
10
+ && goalTool?.tool === "update_goal"
11
+ && goalTool.status === "complete");
12
+ if (isSubplanGoalHandoff) {
13
+ actions.push({
14
+ schemaVersion: 1,
15
+ id: `${actionIdPrefix}:update_goal`,
16
+ tool: "update_goal",
17
+ input: { status: "complete" },
18
+ });
19
+ }
20
+ if (result.plan
21
+ && shouldUsePlanHostIntegration(result.plan)
22
+ && result.plan.tasks.length > 0
23
+ && (options.forceProjectionSync
24
+ || codexPlanProjectionChanged(result.previousPlan, result.plan, result.planStatus))) {
25
+ actions.push({
26
+ schemaVersion: 1,
27
+ id: `${actionIdPrefix}:update_plan`,
28
+ tool: "update_plan",
29
+ input: {
30
+ explanation: result.workflowGuidance.summary,
31
+ plan: buildCodexPlanProjection(result.plan, result.planStatus),
32
+ },
33
+ });
34
+ }
35
+ if (goalTool && !isSubplanGoalHandoff) {
36
+ actions.push(goalTool.tool === "create_goal"
37
+ ? {
38
+ schemaVersion: 1,
39
+ id: `${actionIdPrefix}:create_goal`,
40
+ tool: "create_goal",
41
+ input: { objective: goalTool.objective },
42
+ }
43
+ : {
44
+ schemaVersion: 1,
45
+ id: `${actionIdPrefix}:update_goal`,
46
+ tool: "update_goal",
47
+ input: {
48
+ status: result.planStatus === "process.wait" || result.planStatus === "process.discussing"
49
+ ? "complete"
50
+ : goalTool.status,
51
+ },
52
+ });
53
+ }
54
+ return actions;
55
+ }
56
+ export function buildCodexPlanProjection(plan, planStatus) {
57
+ const activeTask = plan.tasks.find((task) => task.status === "in_progress" || task.status === "subagent_running") ?? (planStatus === "process.active"
58
+ ? plan.tasks.find((task) => task.status !== "done")
59
+ : undefined);
60
+ return plan.tasks.map((task) => ({
61
+ step: task.title,
62
+ status: task.status === "done"
63
+ ? "completed"
64
+ : task.id === activeTask?.id
65
+ ? "in_progress"
66
+ : "pending",
67
+ }));
68
+ }
69
+ function codexPlanProjectionChanged(previousPlan, plan, planStatus) {
70
+ if (!previousPlan)
71
+ return true;
72
+ return JSON.stringify(buildCodexPlanProjection(previousPlan, previousPlan.status))
73
+ !== JSON.stringify(buildCodexPlanProjection(plan, planStatus));
74
+ }
75
+ //# sourceMappingURL=codex-host-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-host-actions.js","sourceRoot":"","sources":["../src/codex-host-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAI7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,qBAAqB,CACnC,MAMC,EACD,UAAsE,EAAE;IAExE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,WAAW,EAAE,UAAU,CAAC;IACzE,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAmC,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAClD,MAAM,oBAAoB,GAAG,OAAO,CAClC,MAAM,CAAC,IAAI,EAAE,UAAU;WACpB,QAAQ,EAAE,IAAI,KAAK,aAAa;WAChC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAClC,CAAC;IACF,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,EAAE,EAAE,GAAG,cAAc,cAAc;YACnC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IACE,MAAM,CAAC,IAAI;WACR,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC;WACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;WAC5B,CACD,OAAO,CAAC,mBAAmB;eACxB,0BAA0B,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CACnF,EACD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,EAAE,EAAE,GAAG,cAAc,cAAc;YACnC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO;gBAC5C,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;aAC/D;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa;YAC1C,CAAC,CAAC;gBACE,aAAa,EAAE,CAAC;gBAChB,EAAE,EAAE,GAAG,cAAc,cAAc;gBACnC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE;aACzC;YACH,CAAC,CAAC;gBACE,aAAa,EAAE,CAAC;gBAChB,EAAE,EAAE,GAAG,cAAc,cAAc;gBACnC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,cAAc,IAAI,MAAM,CAAC,UAAU,KAAK,oBAAoB;wBACxF,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,QAAQ,CAAC,MAAM;iBACpB;aACF,CAAC,CAAC;IACT,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAkB,EAClB,UAAkB;IAElB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAC9E,IAAI,CAAC,UAAU,KAAK,gBAAgB;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC,CAAC;IACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,MAAM;YAC5B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE,EAAE;gBAC1B,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,SAAS;KAChB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B,CACjC,YAAsC,EACtC,IAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { type PlanEditInput, type PlanFieldUpdates, type PlanMutationOperation, type PlanRef, type PlanWriteInput, type SubplanWriteInput, type KnowledgeDelegateDispatch } from "@veewo/claw-core";
2
+ import { RegistryFocusSessionStore, SessionRegistryV2 } from "./session-registry-v2.js";
3
+ export type CommandContext = {
4
+ cwd: string;
5
+ agentSessionId?: string;
6
+ sessionKey?: string;
7
+ currentPlan?: PlanRef;
8
+ host?: string;
9
+ mode: "stateless" | "session";
10
+ };
11
+ export type ClawCommandRequest = {
12
+ operation: "plan.create";
13
+ input: Omit<PlanWriteInput, "cwd" | "ownerSessionKey">;
14
+ } | {
15
+ operation: "plan.start";
16
+ input: {
17
+ updates?: PlanFieldUpdates;
18
+ appendTasks?: Array<{
19
+ title: string;
20
+ detail?: string;
21
+ }>;
22
+ };
23
+ } | {
24
+ operation: "plan.resume";
25
+ input: {
26
+ planId?: string;
27
+ };
28
+ } | {
29
+ operation: "plan.leave";
30
+ input: Record<string, never>;
31
+ } | {
32
+ operation: "plan.show";
33
+ input: {
34
+ simple?: boolean;
35
+ };
36
+ } | {
37
+ operation: "plan.edit";
38
+ input: {
39
+ operations: PlanMutationOperation[];
40
+ };
41
+ } | {
42
+ operation: "plan.wait";
43
+ input: Record<string, never>;
44
+ } | {
45
+ operation: "plan.done";
46
+ input: PlanFieldUpdates & {
47
+ retrospectiveSummary: string;
48
+ };
49
+ } | {
50
+ operation: "subplan.create";
51
+ input: Omit<SubplanWriteInput, "cwd" | "ownerSessionKey">;
52
+ } | {
53
+ operation: "task.edit";
54
+ input: Omit<PlanEditInput, "cwd" | "taskName" | "planFile" | "ownerSessionKey">;
55
+ } | {
56
+ operation: "task.add";
57
+ input: {
58
+ tasks: Array<{
59
+ title: string;
60
+ detail?: string;
61
+ }>;
62
+ };
63
+ } | {
64
+ operation: "task.done";
65
+ input: {
66
+ tasks: Array<{
67
+ id: number;
68
+ choiceId?: string;
69
+ }>;
70
+ };
71
+ } | {
72
+ operation: "search";
73
+ input: {
74
+ query: string;
75
+ limit?: number;
76
+ dir?: string;
77
+ };
78
+ } | {
79
+ operation: string;
80
+ input: unknown;
81
+ };
82
+ export type ClawCommandResult = {
83
+ output: unknown;
84
+ hostActions?: unknown[];
85
+ postCommitEffects?: unknown[];
86
+ knowledgeDispatch?: KnowledgeDelegateDispatch;
87
+ };
88
+ export declare class ClawCommandService {
89
+ readonly registry: SessionRegistryV2;
90
+ readonly focusStore: RegistryFocusSessionStore;
91
+ constructor(registry: SessionRegistryV2);
92
+ execute(context: CommandContext, request: ClawCommandRequest): Promise<ClawCommandResult>;
93
+ private requireSessionKey;
94
+ private resolveProject;
95
+ private ownerSessionKey;
96
+ private editCurrentPlan;
97
+ private requireCurrentPlan;
98
+ private finalizeEnteredEnds;
99
+ private endPostCommitEffects;
100
+ private codexActionsFromMutation;
101
+ private codexActionsForPlan;
102
+ }