@howells/envelope 0.1.3 → 0.2.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 CHANGED
@@ -1,28 +1,68 @@
1
1
  # envelope
2
2
 
3
- Thin wrapper around the `claude` (Claude Code) CLI for **strict** Zod-validated input/output.
3
+ Thin wrapper around the `claude` (Claude Code) and `codex` (Codex CLI) for **strict** Zod-validated input/output.
4
4
 
5
5
  This is designed for local Node apps where you want "model calls" to look like a normal API:
6
6
  - validate inputs with Zod
7
- - request structured JSON output via `--json-schema`
7
+ - request structured JSON output via `--json-schema` / `--output-schema`
8
8
  - validate outputs with Zod again (defense in depth)
9
9
 
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @howells/envelope
14
+ ```
15
+
10
16
  ## Requirements
11
17
 
12
18
  - Node 20+
13
- - `claude` CLI installed and authenticated (Claude Code)
19
+ - `claude` CLI installed and authenticated (Claude Code), or
20
+ - `codex` CLI installed and authenticated (Codex)
21
+
22
+ ## Claude Code Options
23
+
24
+ ### `createClaudeCodeClient()`
25
+
26
+ | Option | Type | Default | Description |
27
+ |--------|------|---------|-------------|
28
+ | `model` | `string` | `"opus"` | Model name passed to `--model` |
29
+ | `maxBudgetUsd` | `number` | `5` | Spend cap per call via `--max-budget-usd` |
30
+ | `timeoutMs` | `number` | `120_000` | Kill the process after this many ms |
31
+ | `options.claudePath` | `string` | `"claude"` | Path to the `claude` binary |
32
+ | `options.cwd` | `string` | `process.cwd()` | Working directory for the subprocess |
33
+ | `options.env` | `NodeJS.ProcessEnv` | `process.env` | Environment variables for the subprocess |
34
+ | `options.permissionMode` | `string` | `"dontAsk"` | One of `"default"`, `"plan"`, `"dontAsk"`, `"acceptEdits"`, `"bypassPermissions"`, `"delegate"` |
35
+ | `options.tools` | `string` | `""` | Tools flag; `""` disables all, `"default"` enables built-ins |
36
+ | `options.systemPrompt` | `string` | — | Full system prompt via `--system-prompt` |
37
+ | `options.appendSystemPrompt` | `string` | — | Appended system prompt via `--append-system-prompt` |
38
+ | `options.allowedTools` | `string[]` | `[]` | Repeated `--allowedTools` per entry |
39
+ | `options.disallowedTools` | `string[]` | `[]` | Repeated `--disallowedTools` per entry |
40
+ | `options.fallbackModel` | `string` | — | Fallback model via `--fallback-model` |
41
+ | `options.betas` | `string[]` | `[]` | Repeated `--betas` per entry |
42
+ | `options.agent` | `string` | — | Agent name via `--agent` |
43
+ | `options.agents` | `string` | — | Agents directory via `--agents` |
44
+ | `options.retries` | `number` | `1` | Retries after timeout kill (total attempts = 1 + retries) |
45
+ | `options.retryDelayMs` | `number` | `800` | Base delay between retries (linear backoff) |
14
46
 
15
- ## CLI Options
47
+ Note: `total_cost_usd` is reported by the Claude Code CLI. If you're using a subscription plan, this may be an estimate and not necessarily an incremental billed amount.
16
48
 
17
- `createClaudeCodeClient()` accepts:
18
- - `model` (default `"opus"`)
19
- - `maxBudgetUsd` (default `5`)
20
- - `timeoutMs` (default `120_000`)
21
- - `options.permissionMode` (default `"dontAsk"`)
22
- - `options.tools` (default `""` to disable all tools; pass `"default"` to enable built-ins)
23
- - `options.retries` (default `1`) and `options.retryDelayMs` (default `800`) for retry-on-timeout
49
+ ## Codex Options
24
50
 
25
- Note: `total_cost_usd` is reported by the Claude Code CLI. If you're using a subscription plan, this may be an estimate and not necessarily an incremental billed amount.
51
+ ### `createCodexClient()`
52
+
53
+ | Option | Type | Default | Description |
54
+ |--------|------|---------|-------------|
55
+ | `model` | `string` | `"gpt-5.3-codex"` | Model name passed to `--model` |
56
+ | `timeoutMs` | `number` | `180_000` | Kill the process after this many ms |
57
+ | `options.codexPath` | `string` | `"codex"` | Path to the `codex` binary |
58
+ | `options.cwd` | `string` | `process.cwd()` | Working directory for the subprocess |
59
+ | `options.env` | `NodeJS.ProcessEnv` | `process.env` | Environment variables for the subprocess |
60
+ | `options.skipGitRepoCheck` | `boolean` | `true` | Skip git repo validation via `--skip-git-repo-check` |
61
+ | `options.sandbox` | `string` | `"danger-full-access"` | One of `"read-only"`, `"workspace-write"`, `"danger-full-access"` |
62
+ | `options.profile` | `string` | — | Profile name via `--profile` |
63
+ | `options.config` | `string[]` | `[]` | Repeated `--config key=value` per entry |
64
+ | `options.jsonlEvents` | `boolean` | `false` | Enable JSONL event output via `--json` |
65
+ | `options.image` | `string[]` | `[]` | Repeated `--image path` per entry |
26
66
 
27
67
  ## Usage (Zod envelope)
28
68
 
@@ -71,6 +111,37 @@ const r2 = await generateText({
71
111
  });
72
112
  ```
73
113
 
114
+ Structured JSON output is also supported via `Output.object()`:
115
+
116
+ ```ts
117
+ import { generateText, Output, jsonSchema } from "ai";
118
+ import { claudeCode } from "@howells/envelope/ai-sdk";
119
+
120
+ const { output } = await generateText({
121
+ model: claudeCode("sonnet"),
122
+ prompt: "List three colours and their hex codes.",
123
+ output: Output.object({
124
+ schema: jsonSchema({
125
+ type: "object",
126
+ properties: {
127
+ colours: {
128
+ type: "array",
129
+ items: {
130
+ type: "object",
131
+ properties: {
132
+ name: { type: "string" },
133
+ hex: { type: "string" },
134
+ },
135
+ required: ["name", "hex"],
136
+ },
137
+ },
138
+ },
139
+ required: ["colours"],
140
+ }),
141
+ }),
142
+ });
143
+ ```
144
+
74
145
  Notes:
75
- - Current adapter is text-only and uses a single-shot call under the hood.
146
+ - The adapter uses single-shot calls under the hood (streaming is simulated).
76
147
  - If we want true streaming, we can extend it to use `claude --output-format stream-json`.
package/dist/ai-sdk.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { LanguageModelV1 } from "@ai-sdk/provider";
1
+ import type { LanguageModelV2 } from "@ai-sdk/provider";
2
2
  import { type CliTool } from "./client.js";
3
3
  export declare function cliModel(args: {
4
4
  tool: CliTool;
5
5
  model: string;
6
6
  clientOptions?: any;
7
- }): LanguageModelV1;
8
- export declare function claudeCode(model: string, clientOptions?: any): LanguageModelV1;
9
- export declare function codex(model: string, clientOptions?: any): LanguageModelV1;
7
+ }): LanguageModelV2;
8
+ export declare function claudeCode(model: string, clientOptions?: any): LanguageModelV2;
9
+ export declare function codex(model: string, clientOptions?: any): LanguageModelV2;
10
10
  //# sourceMappingURL=ai-sdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../src/ai-sdk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA6D,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAkCtG,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,GAAG,eAAe,CAwDlB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,mBAE5D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,mBAEvD"}
1
+ {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../src/ai-sdk.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA6D,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAiCtG,wBAAgB,QAAQ,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,GAAG,eAAe,CAqElB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,mBAE5D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,mBAEvD"}
package/dist/ai-sdk.js CHANGED
@@ -1,30 +1,31 @@
1
- // AI SDK adapter for CLI tools (Claude Code, Codex).
1
+ // AI SDK v2 adapter for CLI tools (Claude Code, Codex).
2
2
  //
3
- // This is intentionally minimal and text-first. For `object-json` mode, it
4
- // maps the JSON schema to the tool's structured output mode.
3
+ // Implements LanguageModelV2 from @ai-sdk/provider >=3, compatible with ai@6.
4
+ // Text-first; for JSON mode it maps responseFormat.schema to the CLI's
5
+ // structured-output mode.
5
6
  import { createClaudeCodeClient, createCodexClient } from "./client.js";
6
- function v1PromptToText(prompt) {
7
+ function extractText(content) {
8
+ return content
9
+ .filter((p) => p.type === "text" && "text" in p && typeof p.text === "string")
10
+ .map((p) => p.text)
11
+ .join("");
12
+ }
13
+ function v2PromptToText(prompt) {
7
14
  const parts = [];
8
15
  for (const m of prompt) {
9
- const role = m.role;
10
- const content = m.content;
11
- if (!Array.isArray(content))
16
+ if (m.role === "system") {
17
+ parts.push(`system: ${m.content}`);
18
+ continue;
19
+ }
20
+ if (!Array.isArray(m.content))
12
21
  continue;
13
- const text = content
14
- .filter((p) => p && typeof p === "object" && p.type === "text" && typeof p.text === "string")
15
- .map((p) => p.text)
16
- .join("");
22
+ const text = extractText(m.content);
17
23
  if (text) {
18
- parts.push(`${role}: ${text}`);
24
+ parts.push(`${m.role}: ${text}`);
19
25
  }
20
26
  }
21
27
  return parts.join("\n");
22
28
  }
23
- function toSchema(schema) {
24
- if (!schema)
25
- return null;
26
- return schema;
27
- }
28
29
  function makeClient(tool, model, opts) {
29
30
  if (tool === "codex") {
30
31
  return createCodexClient({ model, ...(opts ?? {}) });
@@ -34,51 +35,59 @@ function makeClient(tool, model, opts) {
34
35
  export function cliModel(args) {
35
36
  const client = makeClient(args.tool, args.model, args.clientOptions);
36
37
  return {
37
- specificationVersion: "v1",
38
+ specificationVersion: "v2",
38
39
  provider: args.tool,
39
40
  modelId: args.model,
40
- defaultObjectGenerationMode: "json",
41
- supportsStructuredOutputs: true,
41
+ supportedUrls: {},
42
42
  async doGenerate(callOptions) {
43
- const promptText = v1PromptToText(callOptions.prompt);
44
- const finishReason = "stop";
45
- if (callOptions.mode.type === "object-json") {
46
- const schema = toSchema(callOptions.mode.schema);
47
- if (!schema) {
48
- throw new Error("object-json mode requires a JSON schema");
49
- }
43
+ const promptText = v2PromptToText(callOptions.prompt);
44
+ // Structured JSON output mode
45
+ if (callOptions.responseFormat?.type === "json" &&
46
+ callOptions.responseFormat.schema) {
47
+ const schema = callOptions.responseFormat.schema;
50
48
  const res = await client.structured({ prompt: promptText, jsonSchema: schema });
49
+ const text = JSON.stringify(res.structured ?? null);
51
50
  return {
52
- text: JSON.stringify(res.structured ?? null),
53
- finishReason,
54
- usage: { promptTokens: 0, completionTokens: 0 },
55
- rawCall: { rawPrompt: promptText, rawSettings: { mode: callOptions.mode } },
51
+ content: [{ type: "text", text }],
52
+ finishReason: "stop",
53
+ usage: { inputTokens: undefined, outputTokens: undefined, totalTokens: undefined },
54
+ warnings: [],
56
55
  };
57
56
  }
57
+ // Plain text mode (default)
58
58
  const res = await client.text({ prompt: promptText });
59
59
  return {
60
- text: res.text,
61
- finishReason,
62
- usage: { promptTokens: 0, completionTokens: 0 },
63
- rawCall: { rawPrompt: promptText, rawSettings: { mode: callOptions.mode } },
60
+ content: [{ type: "text", text: res.text }],
61
+ finishReason: "stop",
62
+ usage: { inputTokens: undefined, outputTokens: undefined, totalTokens: undefined },
63
+ warnings: [],
64
64
  };
65
65
  },
66
66
  async doStream(callOptions) {
67
- const res = await this.doGenerate(callOptions);
67
+ // CLI tools don't truly stream, so we fake it with a single chunk.
68
+ const result = await this.doGenerate(callOptions);
69
+ const textContent = result.content.find((c) => c.type === "text");
70
+ const textId = "t0";
68
71
  const stream = new ReadableStream({
69
72
  start(controller) {
70
- if (res.text) {
71
- controller.enqueue({ type: "text-delta", textDelta: res.text });
73
+ controller.enqueue({
74
+ type: "stream-start",
75
+ warnings: result.warnings,
76
+ });
77
+ if (textContent) {
78
+ controller.enqueue({ type: "text-start", id: textId });
79
+ controller.enqueue({ type: "text-delta", id: textId, delta: textContent.text });
80
+ controller.enqueue({ type: "text-end", id: textId });
72
81
  }
73
82
  controller.enqueue({
74
83
  type: "finish",
75
- finishReason: res.finishReason,
76
- usage: res.usage,
84
+ finishReason: result.finishReason,
85
+ usage: result.usage,
77
86
  });
78
87
  controller.close();
79
88
  },
80
89
  });
81
- return { stream, rawCall: res.rawCall, warnings: [] };
90
+ return { stream };
82
91
  },
83
92
  };
84
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../src/ai-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../src/ai-sdk.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,16 @@ export interface ClaudeCodeOptions {
15
15
  * Base delay between retries (ms). Uses simple linear backoff by attempt.
16
16
  */
17
17
  retryDelayMs?: number;
18
- permissionMode?: "dontAsk" | "default" | "bypassPermissions";
18
+ permissionMode?: "default" | "plan" | "dontAsk" | "acceptEdits" | "bypassPermissions" | "delegate";
19
19
  tools?: string;
20
+ systemPrompt?: string;
21
+ appendSystemPrompt?: string;
22
+ allowedTools?: string[];
23
+ disallowedTools?: string[];
24
+ fallbackModel?: string;
25
+ betas?: string[];
26
+ agent?: string;
27
+ agents?: string;
20
28
  }
21
29
  export interface ClaudeCodeEnvelope<TStructured> {
22
30
  type?: string;
@@ -29,6 +37,8 @@ export interface ClaudeCodeEnvelope<TStructured> {
29
37
  session_id?: string;
30
38
  permission_denials?: unknown[];
31
39
  }
40
+ export declare function defaultClaudeOptions(opts?: ClaudeCodeOptions): Required<ClaudeCodeOptions>;
41
+ export declare function buildBaseArgs(opts: Required<ClaudeCodeOptions>): string[];
32
42
  export declare function claudeCodeStructured<TStructured>(args: {
33
43
  prompt: string;
34
44
  jsonSchema: string;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB,CAAC,WAAW;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;CAChC;AAgID,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,4CAqEA;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;;GA8DA"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EACX,SAAS,GACT,MAAM,GACN,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,UAAU,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB,CAAC,WAAW;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;CAChC;AAmHD,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAqB1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,YAgC9D;AA2CD,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,4CAiCA;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;;GA4BA"}
@@ -88,8 +88,60 @@ function spawnAsync(file, args, opts) {
88
88
  });
89
89
  });
90
90
  }
91
- function buildBaseArgs(opts) {
92
- return ["--model", opts.model, "-p", "--permission-mode", opts.permissionMode, "--tools", opts.tools];
91
+ export function defaultClaudeOptions(opts) {
92
+ return {
93
+ claudePath: opts?.claudePath ?? "claude",
94
+ cwd: opts?.cwd ?? process.cwd(),
95
+ env: opts?.env ?? process.env,
96
+ model: opts?.model ?? "opus",
97
+ maxBudgetUsd: opts?.maxBudgetUsd ?? 5,
98
+ timeoutMs: opts?.timeoutMs ?? 120_000,
99
+ retries: opts?.retries ?? 1,
100
+ retryDelayMs: opts?.retryDelayMs ?? 800,
101
+ permissionMode: opts?.permissionMode ?? "dontAsk",
102
+ tools: opts?.tools ?? "",
103
+ systemPrompt: opts?.systemPrompt ?? "",
104
+ appendSystemPrompt: opts?.appendSystemPrompt ?? "",
105
+ allowedTools: opts?.allowedTools ?? [],
106
+ disallowedTools: opts?.disallowedTools ?? [],
107
+ fallbackModel: opts?.fallbackModel ?? "",
108
+ betas: opts?.betas ?? [],
109
+ agent: opts?.agent ?? "",
110
+ agents: opts?.agents ?? "",
111
+ };
112
+ }
113
+ export function buildBaseArgs(opts) {
114
+ const args = [
115
+ "--model", opts.model,
116
+ "-p",
117
+ "--permission-mode", opts.permissionMode,
118
+ "--tools", opts.tools,
119
+ ];
120
+ if (opts.systemPrompt) {
121
+ args.push("--system-prompt", opts.systemPrompt);
122
+ }
123
+ if (opts.appendSystemPrompt) {
124
+ args.push("--append-system-prompt", opts.appendSystemPrompt);
125
+ }
126
+ for (const t of opts.allowedTools) {
127
+ args.push("--allowedTools", t);
128
+ }
129
+ for (const t of opts.disallowedTools) {
130
+ args.push("--disallowedTools", t);
131
+ }
132
+ if (opts.fallbackModel) {
133
+ args.push("--fallback-model", opts.fallbackModel);
134
+ }
135
+ for (const b of opts.betas) {
136
+ args.push("--betas", b);
137
+ }
138
+ if (opts.agent) {
139
+ args.push("--agent", opts.agent);
140
+ }
141
+ if (opts.agents) {
142
+ args.push("--agents", opts.agents);
143
+ }
144
+ return args;
93
145
  }
94
146
  function sleep(ms) {
95
147
  return new Promise((r) => setTimeout(r, ms));
@@ -98,29 +150,7 @@ function isTimeoutKill(err) {
98
150
  const e = err;
99
151
  return Boolean(e && e.killed === true && e.signal === "SIGTERM");
100
152
  }
101
- export async function claudeCodeStructured(args) {
102
- const options = {
103
- claudePath: args.options?.claudePath ?? "claude",
104
- cwd: args.options?.cwd ?? process.cwd(),
105
- env: args.options?.env ?? process.env,
106
- model: args.options?.model ?? "opus",
107
- maxBudgetUsd: args.options?.maxBudgetUsd ?? 5,
108
- timeoutMs: args.options?.timeoutMs ?? 120_000,
109
- retries: args.options?.retries ?? 1,
110
- retryDelayMs: args.options?.retryDelayMs ?? 800,
111
- permissionMode: args.options?.permissionMode ?? "dontAsk",
112
- tools: args.options?.tools ?? "",
113
- };
114
- const cliArgs = [
115
- ...buildBaseArgs(options),
116
- "--max-budget-usd",
117
- String(options.maxBudgetUsd),
118
- "--output-format",
119
- "json",
120
- "--json-schema",
121
- args.jsonSchema,
122
- args.prompt,
123
- ];
153
+ async function spawnWithRetry(options, cliArgs) {
124
154
  let stdout = null;
125
155
  let lastErr = null;
126
156
  for (let attempt = 0; attempt <= options.retries; attempt++) {
@@ -135,8 +165,6 @@ export async function claudeCodeStructured(args) {
135
165
  }
136
166
  catch (e) {
137
167
  lastErr = e;
138
- // Retry only if it's likely transient (timeout kill). Other errors should
139
- // generally be surfaced immediately to avoid masking real failures.
140
168
  if (!isTimeoutKill(e?.cause ?? e) || attempt >= options.retries) {
141
169
  throw e;
142
170
  }
@@ -147,6 +175,21 @@ export async function claudeCodeStructured(args) {
147
175
  if (stdout == null) {
148
176
  throw lastErr instanceof Error ? lastErr : new Error("claude CLI failed");
149
177
  }
178
+ return stdout;
179
+ }
180
+ export async function claudeCodeStructured(args) {
181
+ const options = defaultClaudeOptions(args.options);
182
+ const cliArgs = [
183
+ ...buildBaseArgs(options),
184
+ "--max-budget-usd",
185
+ String(options.maxBudgetUsd),
186
+ "--output-format",
187
+ "json",
188
+ "--json-schema",
189
+ args.jsonSchema,
190
+ args.prompt,
191
+ ];
192
+ const stdout = await spawnWithRetry(options, cliArgs);
150
193
  let envelopeUnknown;
151
194
  try {
152
195
  envelopeUnknown = JSON.parse(stdout);
@@ -164,18 +207,7 @@ export async function claudeCodeStructured(args) {
164
207
  return envelope;
165
208
  }
166
209
  export async function claudeCodeText(args) {
167
- const options = {
168
- claudePath: args.options?.claudePath ?? "claude",
169
- cwd: args.options?.cwd ?? process.cwd(),
170
- env: args.options?.env ?? process.env,
171
- model: args.options?.model ?? "opus",
172
- maxBudgetUsd: args.options?.maxBudgetUsd ?? 5,
173
- timeoutMs: args.options?.timeoutMs ?? 120_000,
174
- retries: args.options?.retries ?? 1,
175
- retryDelayMs: args.options?.retryDelayMs ?? 800,
176
- permissionMode: args.options?.permissionMode ?? "dontAsk",
177
- tools: args.options?.tools ?? "",
178
- };
210
+ const options = defaultClaudeOptions(args.options);
179
211
  const cliArgs = [
180
212
  ...buildBaseArgs(options),
181
213
  "--max-budget-usd",
@@ -184,30 +216,7 @@ export async function claudeCodeText(args) {
184
216
  "json",
185
217
  args.prompt,
186
218
  ];
187
- let stdout = null;
188
- let lastErr = null;
189
- for (let attempt = 0; attempt <= options.retries; attempt++) {
190
- try {
191
- ({ stdout } = await spawnAsync(options.claudePath, cliArgs, {
192
- cwd: options.cwd,
193
- env: options.env,
194
- timeoutMs: options.timeoutMs,
195
- }));
196
- lastErr = null;
197
- break;
198
- }
199
- catch (e) {
200
- lastErr = e;
201
- if (!isTimeoutKill(e?.cause ?? e) || attempt >= options.retries) {
202
- throw e;
203
- }
204
- const delay = options.retryDelayMs * (attempt + 1);
205
- await sleep(delay);
206
- }
207
- }
208
- if (stdout == null) {
209
- throw lastErr instanceof Error ? lastErr : new Error("claude CLI failed");
210
- }
219
+ const stdout = await spawnWithRetry(options, cliArgs);
211
220
  let envelopeUnknown;
212
221
  try {
213
222
  envelopeUnknown = JSON.parse(stdout);
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,WAAW,CAOnE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;CAC3E,GAAG,SAAS,CAyBZ;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;CACrD,GAAG,SAAS,CAwBZ"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,WAAW,CAEnE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;CAC3E,GAAG,SAAS,CAyBZ;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;CACrD,GAAG,SAAS,CAwBZ"}
package/dist/client.js CHANGED
@@ -1,13 +1,8 @@
1
- import { zodToJsonSchema } from "zod-to-json-schema";
1
+ import { toJSONSchema } from "zod/v4";
2
2
  import { claudeCodeStructured, claudeCodeText, } from "./claude-code.js";
3
3
  import { codexStructured, codexText } from "./codex-cli.js";
4
4
  export function jsonSchemaFromZod(schema) {
5
- // Important: do NOT provide `name`. `zod-to-json-schema` wraps named schemas
6
- // in a `$ref`/`definitions` envelope, which breaks Codex's `--output-schema`
7
- // requirement that the root schema is `type: "object"`.
8
- return zodToJsonSchema(schema, {
9
- $refStrategy: "none",
10
- });
5
+ return toJSONSchema(schema);
11
6
  }
12
7
  export function createClaudeCodeClient(args) {
13
8
  const cfg = args;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,oBAAoB,EACpB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAC;AAoB/E,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,6EAA6E;IAC7E,6EAA6E;IAC7E,wDAAwD;IACxD,OAAO,eAAe,CAAC,MAAM,EAAE;QAC7B,YAAY,EAAE,MAAM;KACrB,CAA2B,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAKtC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,EAAE,YAAY,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;aAC7D,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,UAAU,CAAI,KAA6B;YAC/C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAI;gBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;aAC7D,CAAC,CAAC;YACH,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,iBAAsB,EAAE,CAAC;QACzD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAIjC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,eAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,UAAU,CAAI,KAA6B;YAC/C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAI;gBACnC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAC;AAoB/E,MAAM,UAAU,iBAAiB,CAAC,MAAoB;IACpD,OAAO,YAAY,CAAC,MAAM,CAA2B,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAKtC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,EAAE,YAAY,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;aAC7D,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,UAAU,CAAI,KAA6B;YAC/C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAI;gBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;aAC7D,CAAC,CAAC;YACH,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,iBAAsB,EAAE,CAAC;QACzD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAIjC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,eAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,KAAuB;YAChC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,UAAU,CAAI,KAA6B;YAC/C,MAAM,GAAG,GAAG,MAAM,eAAe,CAAI;gBACnC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -10,7 +10,10 @@ export interface CodexOptions {
10
10
  profile?: string;
11
11
  config?: Array<string>;
12
12
  jsonlEvents?: boolean;
13
+ image?: string[];
13
14
  }
15
+ export declare function baseArgs(options: Required<CodexOptions>): string[];
16
+ export declare function defaultOptions(opts?: CodexOptions): Required<CodexOptions>;
14
17
  export declare function codexText(args: {
15
18
  prompt: string;
16
19
  options?: CodexOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../src/codex-cli.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA0ED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE;;GAwB/E;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;gBAiCkC,WAAW;;GAI7C"}
1
+ {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../src/codex-cli.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAiCD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,YA2BvD;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAc1E;AA8BD,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE;;GAI/E;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;gBAgBgC,WAAW;;GAC3C"}
package/dist/codex-cli.js CHANGED
@@ -21,7 +21,7 @@ function execFileAsync(file, args, opts) {
21
21
  });
22
22
  });
23
23
  }
24
- function baseArgs(options) {
24
+ export function baseArgs(options) {
25
25
  const args = ["exec"];
26
26
  if (options.skipGitRepoCheck) {
27
27
  args.push("--skip-git-repo-check");
@@ -44,9 +44,12 @@ function baseArgs(options) {
44
44
  if (options.jsonlEvents) {
45
45
  args.push("--json");
46
46
  }
47
+ for (const img of options.image) {
48
+ args.push("--image", img);
49
+ }
47
50
  return args;
48
51
  }
49
- function defaultOptions(opts) {
52
+ export function defaultOptions(opts) {
50
53
  return {
51
54
  codexPath: opts?.codexPath ?? "codex",
52
55
  cwd: opts?.cwd ?? process.cwd(),
@@ -58,63 +61,50 @@ function defaultOptions(opts) {
58
61
  profile: opts?.profile ?? "",
59
62
  config: opts?.config ?? [],
60
63
  jsonlEvents: opts?.jsonlEvents ?? false,
64
+ image: opts?.image ?? [],
61
65
  };
62
66
  }
63
- export async function codexText(args) {
64
- const options = defaultOptions(args.options);
67
+ async function execInTempDir(options, setup) {
65
68
  const td = await mkdtemp(join(tmpdir(), "envelope-codex-"));
66
69
  try {
67
70
  const outPath = join(td, "last.txt");
71
+ const extraArgs = await setup(td, outPath);
68
72
  const cliArgs = [
69
73
  ...baseArgs(options),
74
+ ...extraArgs,
70
75
  "--output-last-message",
71
76
  outPath,
72
- args.prompt,
73
77
  ];
74
78
  await execFileAsync(options.codexPath, cliArgs, {
75
79
  cwd: options.cwd,
76
80
  env: options.env,
77
81
  timeoutMs: options.timeoutMs,
78
82
  });
79
- const text = await readFile(outPath, "utf8");
80
- return { text };
83
+ return await readFile(outPath, "utf8");
81
84
  }
82
85
  finally {
83
86
  await rm(td, { recursive: true, force: true });
84
87
  }
85
88
  }
89
+ export async function codexText(args) {
90
+ const options = defaultOptions(args.options);
91
+ const text = await execInTempDir(options, async () => [args.prompt]);
92
+ return { text };
93
+ }
86
94
  export async function codexStructured(args) {
87
95
  const options = defaultOptions(args.options);
88
- const td = await mkdtemp(join(tmpdir(), "envelope-codex-"));
89
- try {
96
+ const raw = await execInTempDir(options, async (td) => {
90
97
  const schemaPath = join(td, "schema.json");
91
- const outPath = join(td, "last.txt");
92
98
  await writeFile(schemaPath, args.jsonSchema, "utf8");
93
- const cliArgs = [
94
- ...baseArgs(options),
95
- "--output-schema",
96
- schemaPath,
97
- "--output-last-message",
98
- outPath,
99
- args.prompt,
100
- ];
101
- await execFileAsync(options.codexPath, cliArgs, {
102
- cwd: options.cwd,
103
- env: options.env,
104
- timeoutMs: options.timeoutMs,
105
- });
106
- const raw = await readFile(outPath, "utf8");
107
- let parsed;
108
- try {
109
- parsed = JSON.parse(raw);
110
- }
111
- catch {
112
- throw new Error(`codex output was not JSON. First 200 chars:\n${raw.slice(0, 200)}`);
113
- }
114
- return { structured: parsed, raw };
99
+ return ["--output-schema", schemaPath, args.prompt];
100
+ });
101
+ let parsed;
102
+ try {
103
+ parsed = JSON.parse(raw);
115
104
  }
116
- finally {
117
- await rm(td, { recursive: true, force: true });
105
+ catch {
106
+ throw new Error(`codex output was not JSON. First 200 chars:\n${raw.slice(0, 200)}`);
118
107
  }
108
+ return { structured: parsed, raw };
119
109
  }
120
110
  //# sourceMappingURL=codex-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../src/codex-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../src/codex-cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from "./claude-code.js";
2
- export * from "./codex-cli.js";
3
- export * from "./client.js";
4
- export * from "./envelope.js";
1
+ export { createEnvelope, EnvelopeError, type CreateEnvelopeArgs, } from "./envelope.js";
2
+ export { createClaudeCodeClient, createCodexClient, jsonSchemaFromZod, type CliClient, type CliTool, type GenerateTextArgs, type GenerateStructuredArgs, } from "./client.js";
3
+ export { claudeCodeStructured, claudeCodeText, type ClaudeCodeOptions, } from "./claude-code.js";
4
+ export { codexStructured, codexText, type CodexOptions, } from "./codex-cli.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,SAAS,EACT,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- export * from "./claude-code.js";
2
- export * from "./codex-cli.js";
3
- export * from "./client.js";
4
- export * from "./envelope.js";
1
+ // Core API
2
+ export { createEnvelope, EnvelopeError, } from "./envelope.js";
3
+ export { createClaudeCodeClient, createCodexClient, jsonSchemaFromZod, } from "./client.js";
4
+ // CLI-level API (for power users who need direct CLI access)
5
+ export { claudeCodeStructured, claudeCodeText, } from "./claude-code.js";
6
+ export { codexStructured, codexText, } from "./codex-cli.js";
5
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,cAAc,EACd,aAAa,GAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAKlB,MAAM,aAAa,CAAC;AAErB,6DAA6D;AAC7D,OAAO,EACL,oBAAoB,EACpB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,SAAS,GAEV,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@howells/envelope",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "description": "Strict Zod IO wrapper around local CLI LLMs (Claude Code, Codex), plus an AI SDK adapter.",
6
6
  "type": "module",
@@ -34,12 +34,6 @@
34
34
  "engines": {
35
35
  "node": ">=20"
36
36
  },
37
- "scripts": {
38
- "build": "tsc -p tsconfig.json",
39
- "dev": "tsc -p tsconfig.json -w",
40
- "prepack": "pnpm build",
41
- "typecheck": "tsc -p tsconfig.json --noEmit"
42
- },
43
37
  "keywords": [
44
38
  "llm",
45
39
  "cli",
@@ -49,13 +43,21 @@
49
43
  "ai-sdk"
50
44
  ],
51
45
  "dependencies": {
52
- "@ai-sdk/provider": "^1.0.0",
53
- "zod": "^3.25.0",
54
- "zod-to-json-schema": "^3.24.6"
46
+ "@ai-sdk/provider": "^3.0.0"
47
+ },
48
+ "peerDependencies": {
49
+ "zod": "^4.0.0"
55
50
  },
56
51
  "devDependencies": {
57
52
  "@types/node": "^22.0.0",
58
- "typescript": "^5.7.0"
53
+ "typescript": "^5.7.0",
54
+ "vitest": "^4.0.18",
55
+ "zod": "^4.3.6"
59
56
  },
60
- "packageManager": "pnpm@10.12.4"
61
- }
57
+ "scripts": {
58
+ "build": "tsc -p tsconfig.json",
59
+ "dev": "tsc -p tsconfig.json -w",
60
+ "test": "vitest run",
61
+ "typecheck": "tsc -p tsconfig.json --noEmit"
62
+ }
63
+ }