@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 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/unstable/ai"
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
- The child process does not inherit the full host environment. It receives only `PATH`, home/config locations (`HOME`, `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.
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"}
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAQjF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5G,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ,CAAC,CAAA;AACF,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;AAEvE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,EAC7E,MAA0C,EAC1C,YAAoB,EACpB,MAAc,EACd,MAAyD;IAEzD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,kCAAkC,EAAE,KAAK,CAAC,CAAC,EAClG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;QACzB,OAAO,KAAK,GAAG,YAAY;YACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,gBAAgB,CACd,SAAS,EACT,8BAA8B,YAAY,cAAc,MAAM,EAAE,EAChE,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAC5D,CACF;YACD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAC,EACF,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC,CACzF,CAAA;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,IAAI,CAAA;YACb,OAAM;QACR,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,OAAM;QAC5E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACxB,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YACjE,KAAK,CAAC,aAAa,EAAE,IAAI,KAAK,kBAAkB,EAChD,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACjC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAAE,OAAM;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACzB,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,KAAK,YAAY;YACvC,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtG,CAAC,CAAC,KAAK,CAAC,YAAY;gBACpB,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAClF,CAAC,CAAC,CACH,CACF,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAA;IAClG,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,CAAA"}
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Schema } from "effect";
2
- import { AiError } from "effect/unstable/ai";
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;
@@ -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,oBAAoB,CAAA;;;;;;AAI5C,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"}
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/unstable/ai";
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(),
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * @since 0.0.0
5
5
  */
6
+ export type { ClaudeActivity } from "./activity.js";
6
7
  export { model } from "./model.js";
7
8
  export type { ClaudeModelOptions } from "./model.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -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;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA"}
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/unstable/ai";
3
- import { ChildProcessSpawner } from "effect/unstable/process";
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
- /** Workspace access granted to Claude. Defaults to `read-only`; `prompt-only` disables all tools. */
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;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAsC7D,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,qGAAqG;IACrG,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;AAoLD,uFAAuF;AACvF,eAAO,MAAM,KAAK,YACP,kBAAkB,KAC1B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,aAAa,EAAE,mBAAmB,CAAC,mBAAmB,CAK9F,CAAA"}
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/unstable/ai";
3
- import { ChildProcessSpawner } from "effect/unstable/process";
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.string(name));
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.map(Effect.succeed(true), () => undefined);
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
- const result = yield* runClaude({ ...normalized, jsonSchema, prompt }, "generateText", spawner);
152
- const text = yield* resultText(result, "generateText");
153
- const parts = [
154
- { type: "text", text },
155
- { type: "finish", reason: "stop", response: undefined, usage: usageFrom(result.usage) }
156
- ];
157
- return parts;
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
- const result = yield* runClaude({ ...normalized, jsonSchema, prompt }, "streamText", spawner);
164
- const text = yield* resultText(result, "streamText");
165
- const parts = [
166
- { type: "text-start", id: STREAM_TEXT_ID },
167
- { type: "text-delta", id: STREAM_TEXT_ID, delta: text },
168
- { type: "text-end", id: STREAM_TEXT_ID },
169
- {
170
- type: "finish",
171
- reason: "stop",
172
- response: undefined,
173
- usage: usageFrom(result.usage)
174
- }
175
- ];
176
- return Stream.fromIterable(parts);
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEjF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAChD,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAA;AAC3C,MAAM,eAAe,GAAG,WAAW,CAAA;AACnC,MAAM,cAAc,GAAG,mBAAmB,CAAA;AAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAErD,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAErF,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC;IAClC,eAAe,EAAE,wBAAwB,CAAC,mBAAmB,CAAC;IAC9D,kBAAkB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC;IACpE,gBAAgB,EAAE,wBAAwB,CAAC,oBAAoB,CAAC;IAChE,qBAAqB,EAAE,wBAAwB,CAAC,mBAAmB,CAAC;IACpE,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC;IACpD,aAAa,EAAE,wBAAwB,CAAC,iBAAiB,CAAC;CAC3D,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC3G,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAChD,EAAE,oBAAoB,EAAE,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAChE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC9G,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACnD,EAAE,iBAAiB,EAAE,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAChE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACxE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACxE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7F,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;CACtG,CAAC,CAAC,CACJ,CAAA;AAoBD,MAAM,SAAS,GAAG,CAAC,KAA4B,EAAiC,EAAE,CAAC,CAAC;IAClF,WAAW,EAAE;QACX,SAAS,EAAE,KAAK,EAAE,uBAAuB;QACzC,UAAU,EAAE,KAAK,EAAE,2BAA2B;QAC9C,KAAK,EAAE,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBACzB,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;gBACxC,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACxC,QAAQ,EAAE,KAAK,EAAE,YAAY;KAC9B;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,KAAK,EAAE,aAAa;QAC1B,KAAK,EAAE,KAAK,EAAE,aAAa;KAC5B;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CAAgB,KAAoB,EAAE,MAAc,EAA0C,EAAE,CACjH,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAC7D,CAAA;AAMH,MAAM,kBAAkB,GAAG,CAAC,KAAkB,EAA6B,EAAE,CAC3E,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAE7E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAA;AAC9G,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;AAEjF,mFAAmF;AACnF,MAAM,sBAAsB,GAAG,CAAC,KAAkB,EAAe,EAAE;IACjE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAClE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE5C,MAAM,SAAS,GAAgC,EAAE,CAAA;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC7C,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACxB,CAAC;iBAAM,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GAAgC,EAAE,CAAA;gBAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;gBAChD,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACtF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5D,IAAI,GAAG,KAAK,aAAa;gBAAE,SAAQ;YACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAA;YAC/D,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,OAAsC,EACtC,MAAc,EACsC,EAAE;IACtD,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACpG,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAA;IACpD,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAC5D,OAAO,sBAAsB,CAC3B,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,EAAE,QAAQ,CAAC,WAAW;gBAC3B,GAAG,QAAQ,CAAC,MAAM;aACnB,CAAC,CACH,CAAA;QACH,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC;KACnD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAC3D,CAAA;AACH,CAAC,CAAA;AAaD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC,EACrF,OAA2B,EAC3B,MAAc;IAEd,MAAM,UAAU,GAAsB;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,WAAW;QACrC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,CACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAChE;QACD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,wBAAwB;QAClE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,wBAAwB;QAClE,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;KAC5C,CAAA;IACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CAAC,MAAoB,EAAE,MAAc,EAA0C,EAAE;IAClG,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC/F,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,EAAC,OAA2B;IAChG,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAA;IAC9D,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,EAAC,eAAe;YACtF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;YACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;YACzE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YACnE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;YAC/F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;YACtD,MAAM,KAAK,GAAgC;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBACtB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACxF,CAAA;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;QACF,UAAU,EAAE,CAAC,eAAe,EAAE,EAAE,CAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;YACjE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;YACvE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACjE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;YACpD,MAAM,KAAK,GAAsC;gBAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE;gBAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvD,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE;gBACxC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/B;aACF,CAAA;YACD,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC,CAAC,CAAC;KACN,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,OAA2B,EACsE,EAAE,CACnG,KAAK,CAAC,IAAI,CACR,YAAY,EACZ,OAAO,CAAC,KAAK,IAAI,SAAS,EAC1B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAChE,CAAA"}
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/unstable/ai";
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
@@ -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,oBAAoB,CAAA;AAC/D,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"}
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/unstable/process";
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/unstable/ai/AiError").AiError, never>;
47
+ }, import("effect/ai/AiError").AiError, never>;
44
48
  export {};
45
49
  //# sourceMappingURL=runner.d.ts.map
@@ -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,yBAAyB,CAAA;AAK3E,UAAU,UAAU;IAClB,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;AA6GD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAqDpB,CAAA"}
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/unstable/process";
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: collectBounded(handle.stdout, options.maxOutputBytes, "stdout", method)
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) => {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
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.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-rc.109"
33
+ "effect": "4.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@effect/platform-node": "4.0.0-rc.109",
37
- "@effect/vitest": "4.0.0-rc.109",
36
+ "@effect/platform-node": "4.0.0",
37
+ "@effect/vitest": "4.0.0",
38
38
  "@types/node": "latest",
39
- "effect": "4.0.0-rc.109",
39
+ "effect": "4.0.0",
40
40
  "rimraf": "^6.1.3",
41
41
  "typescript": "npm:@typescript/typescript6@^6.0.2",
42
- "vitest": "^4.1.10"
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",