@knpkv/ai-claude 0.3.0 → 0.4.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 +20 -2
- package/dist/activity.d.ts +9 -0
- package/dist/activity.d.ts.map +1 -0
- package/dist/activity.js +60 -0
- package/dist/activity.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +17 -4
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +80 -31
- package/dist/model.js.map +1 -1
- package/dist/prompt.d.ts +1 -1
- package/dist/prompt.d.ts.map +1 -1
- package/dist/runner.d.ts +6 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +18 -3
- package/dist/runner.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ An Effect AI `LanguageModel` backed by a local Claude CLI process.
|
|
|
5
5
|
```ts
|
|
6
6
|
import { NodeServices } from "@effect/platform-node"
|
|
7
7
|
import { Effect } from "effect"
|
|
8
|
-
import { LanguageModel } from "effect/
|
|
8
|
+
import { LanguageModel } from "effect/ai"
|
|
9
9
|
import { model } from "@knpkv/ai-claude"
|
|
10
10
|
|
|
11
11
|
const program = LanguageModel.generateText({ prompt: "Review the current change." }).pipe(
|
|
@@ -17,5 +17,23 @@ const program = LanguageModel.generateText({ prompt: "Review the current change.
|
|
|
17
17
|
The default access mode is read-only. It starts Claude in non-interactive plan mode with only read-oriented tools. Set `access: "prompt-only"` to disable all model-invocable tools, deny built-in and MCP tool names, and isolate ordinary settings without replacing enterprise-managed MCP configuration, or `access: "workspace-write"` to allow `Edit` and `Write`; shell execution remains disabled in every mode.
|
|
18
18
|
|
|
19
19
|
Requests time out after two minutes by default. Output is bounded, prompts are sent over stdin, sessions are not persisted, and Claude's JSON response is schema-decoded before it enters the Effect AI response model. Effect toolkits and file prompt parts are rejected.
|
|
20
|
+
Fixed and rest-tail tuple schemas are lowered to draft-07 positional `items` and `additionalItems`
|
|
21
|
+
before they reach the CLI. Positions, item types and length bounds are retained; unsupported
|
|
22
|
+
conflicting tuple forms fail as typed schema errors rather than being sent with changed meaning.
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
Set `effort` to `low`, `medium`, `high`, `xhigh` or `max` to pass an explicit
|
|
25
|
+
`--effort` override. Omitting it preserves the CLI-configured default.
|
|
26
|
+
|
|
27
|
+
The child process does not inherit the full host environment. It receives only `PATH`, home, account and config locations (`HOME`, `USER`, `USERPROFILE`, `XDG_CONFIG_HOME`, and `CLAUDE_CONFIG_DIR`), and direct Anthropic authentication/gateway settings (`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, and `ANTHROPIC_BASE_URL`) when those values are present. Other provider credentials and session-scoped variables are not forwarded.
|
|
28
|
+
|
|
29
|
+
Pass `onActivity` to `model` to receive live `ClaudeActivity` events during a call,
|
|
30
|
+
including `generateObject`. This enables CLI partial-message output and reports
|
|
31
|
+
the supplied request prompt, process milestones, visible assistant text,
|
|
32
|
+
`StructuredOutput` JSON fragments and the final response, even without partial
|
|
33
|
+
messages. Request events contain caller-supplied prompt content; consumers must
|
|
34
|
+
keep them within the same authorization boundary as that prompt.
|
|
35
|
+
System events, reasoning and other tool inputs are excluded. The callback applies
|
|
36
|
+
backpressure; cancellation stops the same scoped process. The stdout byte limit
|
|
37
|
+
covers all events, and the final result still passes schema validation. Without
|
|
38
|
+
this option, output remains buffered, including the `LanguageModel.streamText`
|
|
39
|
+
adapter.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Effect, Stream } from "effect";
|
|
2
|
+
/** Caller-supplied request, visible output, final response or a milestone. Excludes system events and reasoning. */
|
|
3
|
+
export interface ClaudeActivity {
|
|
4
|
+
readonly kind: "status" | "text" | "request" | "response";
|
|
5
|
+
readonly text: string;
|
|
6
|
+
}
|
|
7
|
+
/** Consume bounded NDJSON as it arrives; only the authoritative result is retained for final decoding. */
|
|
8
|
+
export declare const collectActivity: (source: Stream.Stream<Uint8Array<ArrayBufferLike>, unknown, never>, maximumBytes: number, method: string, report: (activity: ClaudeActivity) => Effect.Effect<void>) => Effect.Effect<string, import("effect/ai/AiError").AiError | import("./errors.js").ClaudeTransportError, never>;
|
|
9
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/C,oHAAoH;AACpH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAiBD,0GAA0G;AAC1G,eAAO,MAAM,eAAe,gIAIP,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mHAyDzD,CAAA"}
|
package/dist/activity.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Effect, Schema, Stream } from "effect";
|
|
2
|
+
import { ClaudeFailureCause, invalidOutput, transportFailure } from "./errors.js";
|
|
3
|
+
const Event = Schema.Struct({
|
|
4
|
+
type: Schema.String,
|
|
5
|
+
event: Schema.optional(Schema.Struct({
|
|
6
|
+
type: Schema.String,
|
|
7
|
+
index: Schema.optional(Schema.Number),
|
|
8
|
+
content_block: Schema.optional(Schema.Struct({ type: Schema.String, name: Schema.optional(Schema.String) })),
|
|
9
|
+
delta: Schema.optional(Schema.Struct({
|
|
10
|
+
type: Schema.optional(Schema.String),
|
|
11
|
+
text: Schema.optional(Schema.String),
|
|
12
|
+
partial_json: Schema.optional(Schema.String)
|
|
13
|
+
}))
|
|
14
|
+
}))
|
|
15
|
+
});
|
|
16
|
+
const decode = Schema.decodeUnknownEffect(Schema.fromJsonString(Event));
|
|
17
|
+
/** Consume bounded NDJSON as it arrives; only the authoritative result is retained for final decoding. */
|
|
18
|
+
export const collectActivity = Effect.fn("ClaudeCli.collectActivity")(function* (source, maximumBytes, method, report) {
|
|
19
|
+
let bytes = 0;
|
|
20
|
+
let result = "";
|
|
21
|
+
const structuredBlocks = new Set();
|
|
22
|
+
yield* source.pipe(Stream.mapError((cause) => transportFailure("process", "Failed reading Claude CLI stdout", cause)), Stream.mapEffect((chunk) => {
|
|
23
|
+
bytes += chunk.byteLength;
|
|
24
|
+
return bytes > maximumBytes
|
|
25
|
+
? Effect.fail(transportFailure("process", `Claude CLI stdout exceeded ${maximumBytes} bytes for ${method}`, new ClaudeFailureCause({ reason: "stdout-limit-exceeded" })))
|
|
26
|
+
: Effect.succeed(chunk);
|
|
27
|
+
}), Stream.decodeText(), Stream.splitLines, Stream.filter((line) => line.trim().length > 0), Stream.runForEach((line) => Effect.gen(function* () {
|
|
28
|
+
const envelope = yield* decode(line).pipe(Effect.mapError(() => invalidOutput("Claude CLI emitted malformed stream JSON", method)));
|
|
29
|
+
if (envelope.type === "result") {
|
|
30
|
+
result = line;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (envelope.type !== "stream_event" || envelope.event === undefined)
|
|
34
|
+
return;
|
|
35
|
+
const event = envelope.event;
|
|
36
|
+
if (event.type === "message_start") {
|
|
37
|
+
structuredBlocks.clear();
|
|
38
|
+
yield* report({ kind: "status", text: "Agent responding" });
|
|
39
|
+
}
|
|
40
|
+
if (event.type === "content_block_start" && event.index !== undefined &&
|
|
41
|
+
event.content_block?.name === "StructuredOutput") {
|
|
42
|
+
structuredBlocks.add(event.index);
|
|
43
|
+
yield* report({ kind: "status", text: "Writing structured answer" });
|
|
44
|
+
}
|
|
45
|
+
if (event.type !== "content_block_delta")
|
|
46
|
+
return;
|
|
47
|
+
const delta = event.delta;
|
|
48
|
+
const text = delta?.type === "text_delta"
|
|
49
|
+
? delta.text
|
|
50
|
+
: delta?.type === "input_json_delta" && event.index !== undefined && structuredBlocks.has(event.index)
|
|
51
|
+
? delta.partial_json
|
|
52
|
+
: undefined;
|
|
53
|
+
if (text !== undefined && text.length > 0)
|
|
54
|
+
yield* report({ kind: "text", text });
|
|
55
|
+
})));
|
|
56
|
+
if (result.length === 0)
|
|
57
|
+
return yield* invalidOutput("Claude CLI emitted no result event", method);
|
|
58
|
+
return result;
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
import { AiError } from "effect/
|
|
2
|
+
import { AiError } from "effect/ai";
|
|
3
3
|
declare const ClaudeTransportError_base: Schema.Class<ClaudeTransportError, Schema.TaggedStruct<"ClaudeTransportError", {
|
|
4
4
|
readonly cause: Schema.Defect;
|
|
5
5
|
readonly diagnostic: Schema.String;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;;;;;;AAInC,qBAAa,oBAAqB,SAAQ,yBAOzC;CAAG;;;;AAEJ,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAC;CAAG;AAEL,eAAO,MAAM,YAAY,gBAAiB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,OAKvE,CAAA;AAEJ,eAAO,MAAM,aAAa,gBAAiB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,OAKxE,CAAA;AAEJ,eAAO,MAAM,oBAAoB,UAAW,OAAO,UAAU,MAAM,KAAG,OAAO,CAAC,OAa1E,CAAA;AAEJ,eAAO,MAAM,iBAAiB,UAAW,OAAO,UAAU,MAAM,KAAG,OAAO,CAAC,OAOvE,CAAA;AAEJ,eAAO,MAAM,gBAAgB,UACpB,oBAAoB,CAAC,OAAO,CAAC,cACxB,MAAM,SACX,OAAO,KACb,oBAA8E,CAAA;AAEjF,eAAO,MAAM,kBAAkB,UAAW,oBAAoB,UAAU,MAAM,KAAG,OAAO,CAAC,OAarF,CAAA"}
|
package/dist/errors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Data, Predicate, Schema } from "effect";
|
|
2
|
-
import { AiError } from "effect/
|
|
2
|
+
import { AiError } from "effect/ai";
|
|
3
3
|
const MODULE = "ClaudeCliLanguageModel";
|
|
4
4
|
export class ClaudeTransportError extends Schema.TaggedError()("ClaudeTransportError", {
|
|
5
5
|
cause: Schema.Defect(),
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
1
2
|
import type { Duration } from "effect";
|
|
2
|
-
import { LanguageModel, Model } from "effect/
|
|
3
|
-
import { ChildProcessSpawner } from "effect/
|
|
3
|
+
import { LanguageModel, Model } from "effect/ai";
|
|
4
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
5
|
+
import type { ClaudeActivity } from "./activity.js";
|
|
4
6
|
/** Options for a local Claude CLI-backed Effect AI model. */
|
|
5
7
|
export interface ClaudeModelOptions {
|
|
6
8
|
/** Working directory exposed to Claude. */
|
|
7
9
|
readonly cwd: string;
|
|
10
|
+
/** Receives live visible output and process status. Backpressure and cancellation follow the call. */
|
|
11
|
+
readonly onActivity?: ((activity: ClaudeActivity) => Effect.Effect<void>) | undefined;
|
|
8
12
|
/** Claude executable name or absolute path. Defaults to `claude`. */
|
|
9
13
|
readonly executable?: string;
|
|
10
14
|
/** Claude model identifier. Defaults to the CLI-configured model. */
|
|
11
|
-
readonly model?: string;
|
|
12
|
-
/**
|
|
15
|
+
readonly model?: string | undefined;
|
|
16
|
+
/** Optional CLI effort override. Omission preserves the configured default. */
|
|
17
|
+
readonly effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Workspace access granted to Claude. Defaults to `read-only`.
|
|
20
|
+
*
|
|
21
|
+
* `prompt-only` withholds every tool. Use it for self-contained prompts: given file tools, the CLI
|
|
22
|
+
* will often go exploring before answering, which costs turns and wall clock for nothing. Measured
|
|
23
|
+
* on a classification prompt that needed no files at all — 42s over 6 turns with `Read,Glob,Grep`
|
|
24
|
+
* against 15s over 2 turns with no tools.
|
|
25
|
+
*/
|
|
13
26
|
readonly access?: "prompt-only" | "read-only" | "workspace-write";
|
|
14
27
|
/** Maximum duration of one CLI invocation. Defaults to two minutes. */
|
|
15
28
|
readonly timeout?: Duration.Input;
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAA4C,MAAM,QAAQ,CAAA;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAwDnD,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,sGAAsG;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;IACrF,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;IACzE;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,iBAAiB,CAAA;IACjE,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;IACjC,wDAAwD;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAoOD,uFAAuF;AACvF,eAAO,MAAM,KAAK,YACP,kBAAkB,KAC1B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,aAAa,EAAE,mBAAmB,CAAC,mBAAmB,CAK9F,CAAA"}
|
package/dist/model.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Config, Effect, Layer, Option, Predicate, Schema, Stream } from "effect";
|
|
2
|
-
import { LanguageModel, Model } from "effect/
|
|
3
|
-
import { ChildProcessSpawner } from "effect/
|
|
4
|
-
import { configurationFailure, invalidInput, invalidOutput, unsupportedSchema } from "./errors.js";
|
|
1
|
+
import { Cause, Config, Effect, Layer, Option, Predicate, Schema, Stream } from "effect";
|
|
2
|
+
import { LanguageModel, Model } from "effect/ai";
|
|
3
|
+
import { ChildProcessSpawner } from "effect/process";
|
|
4
|
+
import { configurationFailure, invalidInput, invalidOutput, transportFailure, transportToAiError, unsupportedSchema } from "./errors.js";
|
|
5
5
|
import { renderPrompt } from "./prompt.js";
|
|
6
6
|
import { runClaude } from "./runner.js";
|
|
7
7
|
const DEFAULT_MAX_OUTPUT_BYTES = 4 * 1024 * 1024;
|
|
@@ -9,7 +9,16 @@ const DEFAULT_MAX_STDERR_BYTES = 256 * 1024;
|
|
|
9
9
|
const DEFAULT_TIMEOUT = "2 minutes";
|
|
10
10
|
const STREAM_TEXT_ID = "claude-cli-output";
|
|
11
11
|
const JsonString = Schema.fromJsonString(Schema.Json);
|
|
12
|
-
const optionalEnvironmentValue = (name) => Config.option(Config.
|
|
12
|
+
const optionalEnvironmentValue = (name) => Config.option(Config.String(name));
|
|
13
|
+
/**
|
|
14
|
+
* The reviewed environment handed to the Claude CLI. Deliberately an allowlist: the child gets
|
|
15
|
+
* what it needs to find its own configuration and credentials, and nothing else.
|
|
16
|
+
*
|
|
17
|
+
* `USER` is load-bearing on macOS. Credentials live in the login Keychain, whose items are scoped
|
|
18
|
+
* to the account name, so without `USER` the CLI reports "Not logged in · Please run /login" and
|
|
19
|
+
* every call fails — even though the user is signed in. It carries no secret; it is the account
|
|
20
|
+
* name the process already runs as.
|
|
21
|
+
*/
|
|
13
22
|
const childEnvironment = Config.all({
|
|
14
23
|
anthropicApiKey: optionalEnvironmentValue("ANTHROPIC_API_KEY"),
|
|
15
24
|
anthropicAuthToken: optionalEnvironmentValue("ANTHROPIC_AUTH_TOKEN"),
|
|
@@ -17,6 +26,7 @@ const childEnvironment = Config.all({
|
|
|
17
26
|
claudeConfigDirectory: optionalEnvironmentValue("CLAUDE_CONFIG_DIR"),
|
|
18
27
|
home: optionalEnvironmentValue("HOME"),
|
|
19
28
|
path: optionalEnvironmentValue("PATH"),
|
|
29
|
+
user: optionalEnvironmentValue("USER"),
|
|
20
30
|
userProfile: optionalEnvironmentValue("USERPROFILE"),
|
|
21
31
|
xdgConfigHome: optionalEnvironmentValue("XDG_CONFIG_HOME")
|
|
22
32
|
}).pipe(Config.map((configured) => ({
|
|
@@ -28,6 +38,7 @@ const childEnvironment = Config.all({
|
|
|
28
38
|
{ CLAUDE_CONFIG_DIR: configured.claudeConfigDirectory.value }),
|
|
29
39
|
...((Option.isSome(configured.home)) && { HOME: configured.home.value }),
|
|
30
40
|
...((Option.isSome(configured.path)) && { PATH: configured.path.value }),
|
|
41
|
+
...((Option.isSome(configured.user)) && { USER: configured.user.value }),
|
|
31
42
|
...((Option.isSome(configured.userProfile)) && { USERPROFILE: configured.userProfile.value }),
|
|
32
43
|
...((Option.isSome(configured.xdgConfigHome)) && { XDG_CONFIG_HOME: configured.xdgConfigHome.value })
|
|
33
44
|
})));
|
|
@@ -49,6 +60,8 @@ const usageFrom = (usage) => ({
|
|
|
49
60
|
}
|
|
50
61
|
});
|
|
51
62
|
const encodeJson = (value, method) => Schema.encodeUnknownEffect(JsonString)(value).pipe(Effect.mapError((cause) => unsupportedSchema(cause, method)));
|
|
63
|
+
/** What a text response passes for the schema argument: nothing. */
|
|
64
|
+
const noSchemaArgument = undefined;
|
|
52
65
|
const isJsonSchemaObject = (value) => Predicate.isObjectOrArray(value) && value !== null && !Array.isArray(value);
|
|
53
66
|
const schemaMapKeys = new Set(["$defs", "definitions", "dependentSchemas", "patternProperties", "properties"]);
|
|
54
67
|
const schemaInstanceValueKeys = new Set(["const", "default", "enum", "examples"]);
|
|
@@ -76,6 +89,21 @@ const flattenJsonSchemaAllOf = (value) => {
|
|
|
76
89
|
}
|
|
77
90
|
}
|
|
78
91
|
}
|
|
92
|
+
if (value.prefixItems !== undefined) {
|
|
93
|
+
const positional = flattened.prefixItems;
|
|
94
|
+
const tail = flattened.items;
|
|
95
|
+
if (!Array.isArray(positional) ||
|
|
96
|
+
positional.some((item) => !isJsonSchemaObject(item) && !Predicate.isBoolean(item)) ||
|
|
97
|
+
(tail !== undefined && !isJsonSchemaObject(tail) && !Predicate.isBoolean(tail)) ||
|
|
98
|
+
flattened.additionalItems !== undefined)
|
|
99
|
+
throw new Error("Unsupported positional JSON Schema tuple");
|
|
100
|
+
flattened.items = positional;
|
|
101
|
+
if (tail !== undefined)
|
|
102
|
+
flattened.additionalItems = tail;
|
|
103
|
+
else if (flattened.maxItems === positional.length)
|
|
104
|
+
flattened.additionalItems = false;
|
|
105
|
+
delete flattened.prefixItems;
|
|
106
|
+
}
|
|
79
107
|
if (value.allOf === undefined)
|
|
80
108
|
return flattened;
|
|
81
109
|
if (!Array.isArray(value.allOf))
|
|
@@ -98,12 +126,19 @@ const flattenJsonSchemaAllOf = (value) => {
|
|
|
98
126
|
return flattened;
|
|
99
127
|
};
|
|
100
128
|
const schemaArgument = (options, method) => {
|
|
129
|
+
// Named rather than a bare `undefined`: this is "no `--json-schema` argument at all", which is a
|
|
130
|
+
// different outcome from an empty one, and `Effect.void` cannot carry it in a `string | undefined`.
|
|
101
131
|
if (options.responseFormat.type === "text")
|
|
102
|
-
return Effect.
|
|
132
|
+
return Effect.succeed(noSchemaArgument);
|
|
103
133
|
const responseSchema = options.responseFormat.schema;
|
|
104
134
|
return Effect.try({
|
|
105
135
|
try: () => {
|
|
106
136
|
const document = Schema.toJsonSchemaDocument(responseSchema);
|
|
137
|
+
// No `$schema`: the Claude CLI validates `--json-schema` against its own registered
|
|
138
|
+
// meta-schemas, and it has only draft-07. Declaring 2020-12 makes it reject the argument
|
|
139
|
+
// outright ("no schema with key or ref ..."), which fails *every* structured-output call.
|
|
140
|
+
// Omitting the dialect lets the CLI apply its default, which accepts the shapes Effect
|
|
141
|
+
// Schema emits.
|
|
107
142
|
return flattenJsonSchemaAllOf(Schema.decodeUnknownSync(Schema.Json)({
|
|
108
143
|
$defs: document.definitions,
|
|
109
144
|
...document.schema
|
|
@@ -114,6 +149,8 @@ const schemaArgument = (options, method) => {
|
|
|
114
149
|
};
|
|
115
150
|
const normalizeOptions = Effect.fn("ClaudeCliLanguageModel.normalizeOptions")(function* (options, method) {
|
|
116
151
|
const normalized = {
|
|
152
|
+
effort: options.effort,
|
|
153
|
+
onActivity: options.onActivity,
|
|
117
154
|
access: options.access ?? "read-only",
|
|
118
155
|
cwd: options.cwd,
|
|
119
156
|
environment: yield* childEnvironment.pipe(Effect.mapError((cause) => configurationFailure(cause, method))),
|
|
@@ -145,35 +182,47 @@ const makeService = Effect.fn("ClaudeCliLanguageModel.make")(function* (options)
|
|
|
145
182
|
const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
|
|
146
183
|
return yield* LanguageModel.make({
|
|
147
184
|
generateText: Effect.fn("ClaudeCliLanguageModel.generateText")(function* (providerOptions) {
|
|
148
|
-
const prompt = yield* renderPrompt(providerOptions, "generateText");
|
|
149
|
-
const jsonSchema = yield* schemaArgument(providerOptions, "generateText");
|
|
150
185
|
const normalized = yield* normalizeOptions(options, "generateText");
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
{
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
186
|
+
return yield* Effect.gen(function* () {
|
|
187
|
+
const prompt = yield* renderPrompt(providerOptions, "generateText");
|
|
188
|
+
const jsonSchema = yield* schemaArgument(providerOptions, "generateText");
|
|
189
|
+
const result = yield* runClaude({ ...normalized, jsonSchema, prompt }, "generateText", spawner);
|
|
190
|
+
const text = yield* resultText(result, "generateText");
|
|
191
|
+
if (options.onActivity !== undefined)
|
|
192
|
+
yield* options.onActivity({ kind: "response", text });
|
|
193
|
+
const parts = [
|
|
194
|
+
{ type: "text", text },
|
|
195
|
+
{ type: "finish", reason: "stop", response: undefined, usage: usageFrom(result.usage) }
|
|
196
|
+
];
|
|
197
|
+
return parts;
|
|
198
|
+
}).pipe(Effect.timeout(normalized.timeout), Effect.mapError((cause) => Cause.isTimeoutError(cause)
|
|
199
|
+
? transportToAiError(transportFailure("timeout", "Claude CLI timed out", cause), "generateText")
|
|
200
|
+
: cause));
|
|
158
201
|
}),
|
|
159
202
|
streamText: (providerOptions) => Stream.unwrap(Effect.gen(function* () {
|
|
160
|
-
const prompt = yield* renderPrompt(providerOptions, "streamText");
|
|
161
|
-
const jsonSchema = yield* schemaArgument(providerOptions, "streamText");
|
|
162
203
|
const normalized = yield* normalizeOptions(options, "streamText");
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
{
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
204
|
+
return yield* Effect.gen(function* () {
|
|
205
|
+
const prompt = yield* renderPrompt(providerOptions, "streamText");
|
|
206
|
+
const jsonSchema = yield* schemaArgument(providerOptions, "streamText");
|
|
207
|
+
const result = yield* runClaude({ ...normalized, jsonSchema, prompt }, "streamText", spawner);
|
|
208
|
+
const text = yield* resultText(result, "streamText");
|
|
209
|
+
if (options.onActivity !== undefined)
|
|
210
|
+
yield* options.onActivity({ kind: "response", text });
|
|
211
|
+
const parts = [
|
|
212
|
+
{ type: "text-start", id: STREAM_TEXT_ID },
|
|
213
|
+
{ type: "text-delta", id: STREAM_TEXT_ID, delta: text },
|
|
214
|
+
{ type: "text-end", id: STREAM_TEXT_ID },
|
|
215
|
+
{
|
|
216
|
+
type: "finish",
|
|
217
|
+
reason: "stop",
|
|
218
|
+
response: undefined,
|
|
219
|
+
usage: usageFrom(result.usage)
|
|
220
|
+
}
|
|
221
|
+
];
|
|
222
|
+
return Stream.fromIterable(parts);
|
|
223
|
+
}).pipe(Effect.timeout(normalized.timeout), Effect.mapError((cause) => Cause.isTimeoutError(cause)
|
|
224
|
+
? transportToAiError(transportFailure("timeout", "Claude CLI timed out", cause), "streamText")
|
|
225
|
+
: cause));
|
|
177
226
|
}))
|
|
178
227
|
});
|
|
179
228
|
});
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
-
import type { LanguageModel } from "effect/
|
|
2
|
+
import type { LanguageModel } from "effect/ai";
|
|
3
3
|
import { invalidInput } from "./errors.js";
|
|
4
4
|
export declare const renderPrompt: (options: LanguageModel.ProviderOptions, method: string) => Effect.Effect<string, ReturnType<typeof invalidInput>>;
|
|
5
5
|
//# sourceMappingURL=prompt.d.ts.map
|
package/dist/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA0B1C,eAAO,MAAM,YAAY,YACd,aAAa,CAAC,eAAe,UAC9B,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAsBpD,CAAA"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Effect, Stream } from "effect";
|
|
2
2
|
import type { Duration } from "effect";
|
|
3
|
-
import { ChildProcess, ChildProcessSpawner } from "effect/
|
|
3
|
+
import { ChildProcess, ChildProcessSpawner } from "effect/process";
|
|
4
|
+
import { type ClaudeActivity } from "./activity.js";
|
|
5
|
+
import type { ClaudeModelOptions } from "./model.js";
|
|
4
6
|
interface RunOptions {
|
|
7
|
+
readonly effort: ClaudeModelOptions["effort"];
|
|
8
|
+
readonly onActivity?: ((activity: ClaudeActivity) => Effect.Effect<void>) | undefined;
|
|
5
9
|
readonly access: "prompt-only" | "read-only" | "workspace-write";
|
|
6
10
|
readonly cwd: string;
|
|
7
11
|
readonly environment: Readonly<Record<string, string>>;
|
|
@@ -40,6 +44,6 @@ export declare const runClaude: (options: RunOptions, method: string, spawner: {
|
|
|
40
44
|
readonly cache_creation_input_tokens?: number | undefined;
|
|
41
45
|
readonly cache_read_input_tokens?: number | undefined;
|
|
42
46
|
} | undefined;
|
|
43
|
-
}, import("effect/
|
|
47
|
+
}, import("effect/ai/AiError").AiError, never>;
|
|
44
48
|
export {};
|
|
45
49
|
//# sourceMappingURL=runner.d.ts.map
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAa,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,eAAe,CAAA;AAGpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAGpD,UAAU,UAAU;IAClB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;IACrF,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,iBAAiB,CAAA;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAA;CACjC;AAiHD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA4DpB,CAAA"}
|
package/dist/runner.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Cause, Effect, Predicate, Stream } from "effect";
|
|
2
|
-
import { ChildProcess, ChildProcessSpawner } from "effect/
|
|
2
|
+
import { ChildProcess, ChildProcessSpawner } from "effect/process";
|
|
3
|
+
import { collectActivity } from "./activity.js";
|
|
3
4
|
import { ClaudeFailureCause, transportFailure, transportToAiError } from "./errors.js";
|
|
4
5
|
import { decodeClaudeOutput } from "./protocol.js";
|
|
5
6
|
const collectBounded = (source, maximumBytes, label, method) => source.pipe(Stream.mapError((cause) => transportFailure("process", `Failed while reading Claude CLI ${label} for ${method}`, cause)), Stream.runFoldEffect(() => ({ chunks: [], size: 0 }), (collected, chunk) => {
|
|
@@ -19,6 +20,8 @@ const redactDiagnostic = (diagnostic, cwd) => {
|
|
|
19
20
|
return safeLines.join("\n").trim().slice(0, 1_000);
|
|
20
21
|
};
|
|
21
22
|
const makeArguments = (options) => {
|
|
23
|
+
// `prompt-only` passes an empty tool list, which is what stops the CLI exploring the filesystem to
|
|
24
|
+
// answer a prompt that already contains everything it needs.
|
|
22
25
|
const tools = options.access === "workspace-write"
|
|
23
26
|
? "Read,Glob,Grep,Edit,Write"
|
|
24
27
|
: options.access === "read-only"
|
|
@@ -32,7 +35,7 @@ const makeArguments = (options) => {
|
|
|
32
35
|
const arguments_ = [
|
|
33
36
|
"--print",
|
|
34
37
|
"--output-format",
|
|
35
|
-
"json",
|
|
38
|
+
options.onActivity === undefined ? "json" : "stream-json",
|
|
36
39
|
"--input-format",
|
|
37
40
|
"text",
|
|
38
41
|
"--permission-mode",
|
|
@@ -42,11 +45,15 @@ const makeArguments = (options) => {
|
|
|
42
45
|
"--no-session-persistence",
|
|
43
46
|
"--safe-mode"
|
|
44
47
|
];
|
|
48
|
+
if (options.onActivity !== undefined)
|
|
49
|
+
arguments_.push("--verbose", "--include-partial-messages");
|
|
45
50
|
if (options.access === "prompt-only") {
|
|
46
51
|
arguments_.push("--setting-sources", "", "--disallowed-tools", "Bash,Edit,Write,Read,Glob,Grep,WebFetch,WebSearch,Task,NotebookEdit,TodoRead,TodoWrite,ExitPlanMode,AskUserQuestion,Skill,EnterPlanMode,mcp__*");
|
|
47
52
|
}
|
|
48
53
|
if (options.model !== undefined)
|
|
49
54
|
arguments_.push("--model", options.model);
|
|
55
|
+
if (options.effort !== undefined)
|
|
56
|
+
arguments_.push("--effort", options.effort);
|
|
50
57
|
if (options.jsonSchema !== undefined)
|
|
51
58
|
arguments_.push("--json-schema", options.jsonSchema);
|
|
52
59
|
return arguments_;
|
|
@@ -69,10 +76,16 @@ export const runClaude = Effect.fn("ClaudeCliLanguageModel.runClaude")(function*
|
|
|
69
76
|
const command = makeCommand(options, makeArguments(options));
|
|
70
77
|
const execution = Effect.gen(function* () {
|
|
71
78
|
const handle = yield* spawner.spawn(command).pipe(Effect.mapError((cause) => transportFailure("process", "Unable to start Claude CLI", cause)));
|
|
79
|
+
if (options.onActivity !== undefined) {
|
|
80
|
+
yield* options.onActivity({ kind: "request", text: options.prompt });
|
|
81
|
+
yield* options.onActivity({ kind: "status", text: "Agent started" });
|
|
82
|
+
}
|
|
72
83
|
const collected = yield* Effect.all({
|
|
73
84
|
exitCode: handle.exitCode.pipe(Effect.mapError((cause) => transportFailure("process", "Unable to read Claude CLI exit status", cause))),
|
|
74
85
|
stderr: collectBounded(handle.stderr, options.maxStderrBytes, "stderr", method),
|
|
75
|
-
stdout:
|
|
86
|
+
stdout: options.onActivity === undefined
|
|
87
|
+
? collectBounded(handle.stdout, options.maxOutputBytes, "stdout", method)
|
|
88
|
+
: collectActivity(handle.stdout, options.maxOutputBytes, method, options.onActivity)
|
|
76
89
|
}, { concurrency: "unbounded" });
|
|
77
90
|
if (collected.exitCode !== ChildProcessSpawner.ExitCode(0)) {
|
|
78
91
|
const diagnostic = redactDiagnostic(collected.stderr, options.cwd);
|
|
@@ -83,6 +96,8 @@ export const runClaude = Effect.fn("ClaudeCliLanguageModel.runClaude")(function*
|
|
|
83
96
|
if (result.is_error) {
|
|
84
97
|
return yield* transportFailure("process", "Claude CLI returned an error result", new ClaudeFailureCause({ reason: "error-result" }));
|
|
85
98
|
}
|
|
99
|
+
if (options.onActivity !== undefined)
|
|
100
|
+
yield* options.onActivity({ kind: "status", text: "Answer received" });
|
|
86
101
|
return result;
|
|
87
102
|
}).pipe(Effect.scoped);
|
|
88
103
|
return yield* execution.pipe(Effect.timeout(options.timeout), Effect.mapError((cause) => {
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knpkv/ai-claude",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Effect AI language model backed by the local Claude CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "knpkv",
|
|
@@ -30,16 +30,16 @@
|
|
|
30
30
|
"node": ">=26"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"effect": "4.0.0
|
|
33
|
+
"effect": "4.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@effect/platform-node": "4.0.0
|
|
37
|
-
"@effect/vitest": "4.0.0
|
|
36
|
+
"@effect/platform-node": "4.0.0",
|
|
37
|
+
"@effect/vitest": "4.0.0",
|
|
38
38
|
"@types/node": "latest",
|
|
39
|
-
"effect": "4.0.0
|
|
39
|
+
"effect": "4.0.0",
|
|
40
40
|
"rimraf": "^6.1.3",
|
|
41
41
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
42
|
-
"vitest": "^
|
|
42
|
+
"vitest": "^5.0.3"
|
|
43
43
|
},
|
|
44
44
|
"keywords": [
|
|
45
45
|
"effect",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
],
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "rimraf dist && tsc && node scripts/validate-dist.mjs",
|
|
52
|
-
"check": "tsc --noEmit",
|
|
52
|
+
"check": "tsc --noEmit && tsc --noEmit -p test/tsconfig.json",
|
|
53
53
|
"clean": "rimraf dist *.tsbuildinfo",
|
|
54
54
|
"lint": "eslint \"{src,test}/**/*.ts\"",
|
|
55
55
|
"test": "vitest run",
|