@howells/envelope 0.1.0 → 0.1.2
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 +6 -2
- package/dist/claude-code.d.ts +9 -0
- package/dist/claude-code.d.ts.map +1 -1
- package/dist/claude-code.js +69 -5
- package/dist/claude-code.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -16,7 +16,11 @@ This is designed for local Node apps where you want "model calls" to look like a
|
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
18
|
import { z } from "zod";
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
createEnvelope,
|
|
21
|
+
createClaudeCodeClient,
|
|
22
|
+
createCodexClient,
|
|
23
|
+
} from "@howells/envelope";
|
|
20
24
|
|
|
21
25
|
const summarizeClaude = createEnvelope({
|
|
22
26
|
client: createClaudeCodeClient({ model: "opus", maxBudgetUsd: 2 }),
|
|
@@ -42,7 +46,7 @@ console.log(out.summary);
|
|
|
42
46
|
|
|
43
47
|
```ts
|
|
44
48
|
import { generateText } from "ai";
|
|
45
|
-
import { claudeCode, codex } from "envelope/ai-sdk";
|
|
49
|
+
import { claudeCode, codex } from "@howells/envelope/ai-sdk";
|
|
46
50
|
|
|
47
51
|
const { text } = await generateText({
|
|
48
52
|
model: claudeCode("opus"),
|
package/dist/claude-code.d.ts
CHANGED
|
@@ -6,6 +6,15 @@ export interface ClaudeCodeOptions {
|
|
|
6
6
|
model?: ClaudeCodeModel;
|
|
7
7
|
maxBudgetUsd?: number;
|
|
8
8
|
timeoutMs?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Number of retries after a timeout (SIGTERM kill) or transient failure.
|
|
11
|
+
* Total attempts = 1 + retries.
|
|
12
|
+
*/
|
|
13
|
+
retries?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Base delay between retries (ms). Uses simple linear backoff by attempt.
|
|
16
|
+
*/
|
|
17
|
+
retryDelayMs?: number;
|
|
9
18
|
permissionMode?: "dontAsk" | "default" | "bypassPermissions";
|
|
10
19
|
tools?: string;
|
|
11
20
|
}
|
|
@@ -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,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;
|
|
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;AAqDD,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"}
|
package/dist/claude-code.js
CHANGED
|
@@ -12,7 +12,10 @@ function execFileAsync(file, args, opts) {
|
|
|
12
12
|
encoding: "utf8",
|
|
13
13
|
}, (err, stdout, stderr) => {
|
|
14
14
|
if (err) {
|
|
15
|
-
const
|
|
15
|
+
const code = err.code ?? "?";
|
|
16
|
+
const signal = err.signal ?? "?";
|
|
17
|
+
const killed = err.killed ?? false;
|
|
18
|
+
const e = new Error(`claude CLI failed (code=${code}, signal=${signal}, killed=${killed}): ${stderr || stdout}`);
|
|
16
19
|
e.cause = err;
|
|
17
20
|
reject(e);
|
|
18
21
|
return;
|
|
@@ -24,6 +27,13 @@ function execFileAsync(file, args, opts) {
|
|
|
24
27
|
function buildBaseArgs(opts) {
|
|
25
28
|
return ["--model", opts.model, "-p", "--permission-mode", opts.permissionMode, "--tools", opts.tools];
|
|
26
29
|
}
|
|
30
|
+
function sleep(ms) {
|
|
31
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
32
|
+
}
|
|
33
|
+
function isTimeoutKill(err) {
|
|
34
|
+
const e = err;
|
|
35
|
+
return Boolean(e && e.killed === true && e.signal === "SIGTERM");
|
|
36
|
+
}
|
|
27
37
|
export async function claudeCodeStructured(args) {
|
|
28
38
|
const options = {
|
|
29
39
|
claudePath: args.options?.claudePath ?? "claude",
|
|
@@ -32,10 +42,12 @@ export async function claudeCodeStructured(args) {
|
|
|
32
42
|
model: args.options?.model ?? "opus",
|
|
33
43
|
maxBudgetUsd: args.options?.maxBudgetUsd ?? 5,
|
|
34
44
|
timeoutMs: args.options?.timeoutMs ?? 120_000,
|
|
45
|
+
retries: args.options?.retries ?? 1,
|
|
46
|
+
retryDelayMs: args.options?.retryDelayMs ?? 800,
|
|
35
47
|
permissionMode: args.options?.permissionMode ?? "dontAsk",
|
|
36
48
|
tools: args.options?.tools ?? "",
|
|
37
49
|
};
|
|
38
|
-
const
|
|
50
|
+
const cliArgs = [
|
|
39
51
|
...buildBaseArgs(options),
|
|
40
52
|
"--max-budget-usd",
|
|
41
53
|
String(options.maxBudgetUsd),
|
|
@@ -44,7 +56,33 @@ export async function claudeCodeStructured(args) {
|
|
|
44
56
|
"--json-schema",
|
|
45
57
|
args.jsonSchema,
|
|
46
58
|
args.prompt,
|
|
47
|
-
]
|
|
59
|
+
];
|
|
60
|
+
let stdout = null;
|
|
61
|
+
let lastErr = null;
|
|
62
|
+
for (let attempt = 0; attempt <= options.retries; attempt++) {
|
|
63
|
+
try {
|
|
64
|
+
({ stdout } = await execFileAsync(options.claudePath, cliArgs, {
|
|
65
|
+
cwd: options.cwd,
|
|
66
|
+
env: options.env,
|
|
67
|
+
timeoutMs: options.timeoutMs,
|
|
68
|
+
}));
|
|
69
|
+
lastErr = null;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
lastErr = e;
|
|
74
|
+
// Retry only if it's likely transient (timeout kill). Other errors should
|
|
75
|
+
// generally be surfaced immediately to avoid masking real failures.
|
|
76
|
+
if (!isTimeoutKill(e?.cause ?? e) || attempt >= options.retries) {
|
|
77
|
+
throw e;
|
|
78
|
+
}
|
|
79
|
+
const delay = options.retryDelayMs * (attempt + 1);
|
|
80
|
+
await sleep(delay);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (stdout == null) {
|
|
84
|
+
throw lastErr instanceof Error ? lastErr : new Error("claude CLI failed");
|
|
85
|
+
}
|
|
48
86
|
let envelopeUnknown;
|
|
49
87
|
try {
|
|
50
88
|
envelopeUnknown = JSON.parse(stdout);
|
|
@@ -69,17 +107,43 @@ export async function claudeCodeText(args) {
|
|
|
69
107
|
model: args.options?.model ?? "opus",
|
|
70
108
|
maxBudgetUsd: args.options?.maxBudgetUsd ?? 5,
|
|
71
109
|
timeoutMs: args.options?.timeoutMs ?? 120_000,
|
|
110
|
+
retries: args.options?.retries ?? 1,
|
|
111
|
+
retryDelayMs: args.options?.retryDelayMs ?? 800,
|
|
72
112
|
permissionMode: args.options?.permissionMode ?? "dontAsk",
|
|
73
113
|
tools: args.options?.tools ?? "",
|
|
74
114
|
};
|
|
75
|
-
const
|
|
115
|
+
const cliArgs = [
|
|
76
116
|
...buildBaseArgs(options),
|
|
77
117
|
"--max-budget-usd",
|
|
78
118
|
String(options.maxBudgetUsd),
|
|
79
119
|
"--output-format",
|
|
80
120
|
"json",
|
|
81
121
|
args.prompt,
|
|
82
|
-
]
|
|
122
|
+
];
|
|
123
|
+
let stdout = null;
|
|
124
|
+
let lastErr = null;
|
|
125
|
+
for (let attempt = 0; attempt <= options.retries; attempt++) {
|
|
126
|
+
try {
|
|
127
|
+
({ stdout } = await execFileAsync(options.claudePath, cliArgs, {
|
|
128
|
+
cwd: options.cwd,
|
|
129
|
+
env: options.env,
|
|
130
|
+
timeoutMs: options.timeoutMs,
|
|
131
|
+
}));
|
|
132
|
+
lastErr = null;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
lastErr = e;
|
|
137
|
+
if (!isTimeoutKill(e?.cause ?? e) || attempt >= options.retries) {
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
const delay = options.retryDelayMs * (attempt + 1);
|
|
141
|
+
await sleep(delay);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (stdout == null) {
|
|
145
|
+
throw lastErr instanceof Error ? lastErr : new Error("claude CLI failed");
|
|
146
|
+
}
|
|
83
147
|
let envelopeUnknown;
|
|
84
148
|
try {
|
|
85
149
|
envelopeUnknown = JSON.parse(stdout);
|
package/dist/claude-code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../src/claude-code.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@howells/envelope",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
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",
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@ai-sdk/provider": "^1.0.0",
|
|
53
|
-
"@ai-sdk/provider-utils": "^3.0.0",
|
|
54
53
|
"zod": "^3.25.0",
|
|
55
54
|
"zod-to-json-schema": "^3.24.6"
|
|
56
55
|
},
|