@llm4ts/runner 2.3.0 → 2.3.1

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.
@@ -100,6 +100,16 @@ const toolResultInLastMessage = (body) => {
100
100
  return undefined;
101
101
  };
102
102
  const userTextInLastMessage = (body) => contentBlocksText(jsonField(lastMessage(body), "content"));
103
+ /**
104
+ * The route to match, without the query string. `request.url` carries it,
105
+ * and pi's bundled Anthropic SDK posts to `/v1/messages?beta=true` for
106
+ * tool-enabled requests — routing on the raw value 404s exactly the request
107
+ * this bridge exists to serve.
108
+ */
109
+ export const requestPath = (url) => {
110
+ const path = (url ?? "/").split(/[?#]/)[0];
111
+ return path === undefined || path.length === 0 ? "/" : path;
112
+ };
103
113
  const anthropicResponse = (model, outcome) => ({
104
114
  id: `msg_${Date.now()}`,
105
115
  type: "message",
@@ -114,7 +124,12 @@ const anthropicResponse = (model, outcome) => ({
114
124
  // the field. Real usage accounting for this path is future work.
115
125
  usage: { input_tokens: 0, output_tokens: 0 }
116
126
  });
117
- export const handleMessagesRequest = Effect.fn("@llm4ts/runner/NodeGeminiAcpBridge.handleMessagesRequest")(function* (state, body) {
127
+ /**
128
+ * Drive one turn to its outcome. Split from the response rendering because a
129
+ * streaming request must write `message_start` before this resolves — pi
130
+ * hardcodes `stream: true`, and gemini can take a while to answer.
131
+ */
132
+ export const resolveTurn = Effect.fn("@llm4ts/runner/NodeGeminiAcpBridge.resolveTurn")(function* (state, body) {
118
133
  const continuation = toolResultInLastMessage(body);
119
134
  let pendingToResolve;
120
135
  if (continuation !== undefined) {
@@ -154,7 +169,98 @@ export const handleMessagesRequest = Effect.fn("@llm4ts/runner/NodeGeminiAcpBrid
154
169
  }
155
170
  const outcome = yield* Deferred.await(outcomeDeferred);
156
171
  yield* Ref.set(state.turnOutcome, Option.none());
157
- return anthropicResponse(jsonStringField(body, "model") ?? "gemini", outcome);
172
+ return outcome;
173
+ });
174
+ export const requestModel = (body) => jsonStringField(body, "model") ?? "gemini";
175
+ const emptyUsage = { input_tokens: 0, output_tokens: 0 };
176
+ /** Sent before the turn resolves, so the client sees a live response. */
177
+ export const turnStartEvents = (id, model) => [
178
+ {
179
+ event: "message_start",
180
+ data: {
181
+ type: "message_start",
182
+ message: {
183
+ id,
184
+ type: "message",
185
+ role: "assistant",
186
+ model,
187
+ content: [],
188
+ stop_reason: null,
189
+ stop_sequence: null,
190
+ usage: emptyUsage
191
+ }
192
+ }
193
+ }
194
+ ];
195
+ /**
196
+ * The blocks and stop events for a resolved turn. A `tool_use` block carries
197
+ * an empty `input` and supplies the real arguments through `input_json_delta`,
198
+ * which is the shape the Anthropic client expects to accumulate.
199
+ */
200
+ export const turnOutcomeEvents = (outcome) => {
201
+ const blocks = outcome._tag === "Text"
202
+ ? [
203
+ {
204
+ event: "content_block_start",
205
+ data: {
206
+ type: "content_block_start",
207
+ index: 0,
208
+ content_block: { type: "text", text: "" }
209
+ }
210
+ },
211
+ {
212
+ event: "content_block_delta",
213
+ data: {
214
+ type: "content_block_delta",
215
+ index: 0,
216
+ delta: { type: "text_delta", text: outcome.text }
217
+ }
218
+ }
219
+ ]
220
+ : [
221
+ {
222
+ event: "content_block_start",
223
+ data: {
224
+ type: "content_block_start",
225
+ index: 0,
226
+ content_block: { type: "tool_use", id: outcome.id, name: outcome.name, input: {} }
227
+ }
228
+ },
229
+ {
230
+ event: "content_block_delta",
231
+ data: {
232
+ type: "content_block_delta",
233
+ index: 0,
234
+ delta: { type: "input_json_delta", partial_json: JSON.stringify(outcome.input) }
235
+ }
236
+ }
237
+ ];
238
+ return [
239
+ ...blocks,
240
+ { event: "content_block_stop", data: { type: "content_block_stop", index: 0 } },
241
+ {
242
+ event: "message_delta",
243
+ data: {
244
+ type: "message_delta",
245
+ delta: {
246
+ stop_reason: outcome._tag === "Text" ? "end_turn" : "tool_use",
247
+ stop_sequence: null
248
+ },
249
+ usage: { output_tokens: 0 }
250
+ }
251
+ },
252
+ { event: "message_stop", data: { type: "message_stop" } }
253
+ ];
254
+ };
255
+ /** A failure after `message_start` can only be reported in-band. */
256
+ export const turnErrorEvent = (message) => ({
257
+ event: "error",
258
+ data: { type: "error", error: { type: "api_error", message } }
259
+ });
260
+ export const messageId = () => `msg_${Date.now()}`;
261
+ export const handleMessagesRequest = Effect.fn("@llm4ts/runner/NodeGeminiAcpBridge.handleMessagesRequest")(function* (state, body) {
262
+ const outcome = yield* resolveTurn(state, body);
263
+ return anthropicResponse(requestModel(body), outcome);
158
264
  });
159
265
  const readBody = (request) => Effect.callback((resume) => {
160
266
  const chunks = [];
@@ -167,6 +273,35 @@ const parseJsonBody = (raw) => Effect.try({
167
273
  try: () => parseJson(raw),
168
274
  catch: () => InvalidRequestError.make({ message: "request body is not valid JSON" })
169
275
  });
276
+ const writeStreamEvent = (response, event) => {
277
+ response.write(`event: ${event.event}\ndata: ${JSON.stringify(event.data)}\n\n`);
278
+ };
279
+ /**
280
+ * Stream one turn. The head goes out before the turn resolves so the client
281
+ * has a live response while gemini works; after that point a failure can only
282
+ * be reported as an in-band `error` event, never as a status code.
283
+ */
284
+ const respondStreaming = (response, state, body) => Effect.sync(() => {
285
+ response.writeHead(200, {
286
+ "Content-Type": "text/event-stream",
287
+ "Cache-Control": "no-cache",
288
+ Connection: "keep-alive"
289
+ });
290
+ for (const event of turnStartEvents(messageId(), requestModel(body))) {
291
+ writeStreamEvent(response, event);
292
+ }
293
+ }).pipe(Effect.andThen(resolveTurn(state, body)), Effect.matchEffect({
294
+ onSuccess: (outcome) => Effect.sync(() => {
295
+ for (const event of turnOutcomeEvents(outcome)) {
296
+ writeStreamEvent(response, event);
297
+ }
298
+ response.end();
299
+ }),
300
+ onFailure: (error) => Effect.sync(() => {
301
+ writeStreamEvent(response, turnErrorEvent(error.message));
302
+ response.end();
303
+ })
304
+ }));
170
305
  const writeJson = (response, status, body) => {
171
306
  const text = JSON.stringify(body);
172
307
  response.writeHead(status, { "Content-Type": "application/json" });
@@ -201,7 +336,7 @@ export const runGeminiAcpBridge = Effect.fn("@llm4ts/runner/NodeGeminiAcpBridge.
201
336
  });
202
337
  const state = yield* makeBridgeState(session, config.cwd, mcpServerUrl, forkBackground);
203
338
  const requestListener = (request, response) => {
204
- const path = request.url ?? "/";
339
+ const path = requestPath(request.url);
205
340
  if (request.method !== "POST" || (path !== "/v1/messages" && path !== "/mcp")) {
206
341
  writeJson(response, 404, { error: { message: "not found" } });
207
342
  return;
@@ -213,15 +348,26 @@ export const runGeminiAcpBridge = Effect.fn("@llm4ts/runner/NodeGeminiAcpBridge.
213
348
  const tools = yield* Ref.get(state.tools);
214
349
  const mcpTools = tools.map((tool) => anthropicToolToMcpTool(state, tool));
215
350
  const reply = yield* handleMcpRequest(body, mcpTools);
216
- return { status: 200, body: reply ?? {} };
351
+ return yield* Effect.sync(() => writeJson(response, 200, reply ?? {}));
352
+ }
353
+ if (jsonBooleanField(body, "stream") === true) {
354
+ return yield* respondStreaming(response, state, body);
217
355
  }
218
356
  const reply = yield* handleMessagesRequest(state, body);
219
- return { status: 200, body: reply };
220
- }).pipe(Effect.catch((error) => Effect.succeed({
221
- status: errorStatus(error),
222
- body: { error: { message: error.message } }
357
+ return yield* Effect.sync(() => writeJson(response, 200, reply));
358
+ }).pipe(
359
+ // Only a failure before the head went out can still choose a status;
360
+ // `respondStreaming` owns everything after that and never fails.
361
+ Effect.catch((error) => Effect.sync(() => {
362
+ if (!response.headersSent) {
363
+ writeJson(response, errorStatus(error), { error: { message: error.message } });
364
+ }
223
365
  })));
224
- Effect.runPromise(handled).then(({ status, body }) => writeJson(response, status, body), (defect) => writeJson(response, 500, { error: { message: String(defect) } }));
366
+ Effect.runPromise(handled).catch((defect) => {
367
+ if (!response.headersSent) {
368
+ writeJson(response, 500, { error: { message: String(defect) } });
369
+ }
370
+ });
225
371
  };
226
372
  const server = yield* acquireServer(config.port, requestListener);
227
373
  const address = server.address();
@@ -1 +1 @@
1
- {"version":3,"file":"NodeGeminiAcpBridge.js","sourceRoot":"","sources":["../src/NodeGeminiAcpBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeGeminiAcpBridge.js","sourceRoot":"","sources":["../src/NodeGeminiAcpBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ export declare const defaultGeminiBridgePort = "8731";
2
+ /**
3
+ * `~/.pi/agent/models.json`. Read only — llm4ts never writes it. Missing is
4
+ * not an error: the file simply doesn't exist yet.
5
+ */
6
+ export declare const defaultReadPiModelsJson: () => string | undefined;
7
+ export declare const geminiBridgePort: (environment: Readonly<Record<string, string | undefined>>) => string;
8
+ /**
9
+ * One value pi accepts for `--model`: `<provider>/<model>`, where the
10
+ * provider is a key under `providers` in `~/.pi/agent/models.json` and the
11
+ * model is a `models` entry's `id`. `bridged` marks the pairs whose provider
12
+ * points at this machine's ACP bridge — the ones that draw inference from
13
+ * gemini's OAuth session instead of a model API key.
14
+ *
15
+ * `authConfigured` tracks pi's availability rule rather than its schema: a
16
+ * provider with no `apiKey` still loads, but its models stay hidden from
17
+ * `--model` and `--list-models` until `/login`, `auth.json`, or `--api-key`
18
+ * supplies one. The bridge needs no real credential, so a placeholder is
19
+ * enough — but something must be there.
20
+ */
21
+ export interface PiModelRef {
22
+ readonly ref: string;
23
+ readonly bridged: boolean;
24
+ readonly authConfigured: boolean;
25
+ }
26
+ /**
27
+ * What pi makes of `~/.pi/agent/models.json`. `problems` mirrors pi's own
28
+ * schema validation, and a non-empty list means pi loads *nothing* from the
29
+ * file — it reports "errors loading models.json" and falls back to built-in
30
+ * providers, so `refs` is what the file intended, not what pi will accept.
31
+ */
32
+ export interface PiModelsConfig {
33
+ readonly refs: ReadonlyArray<PiModelRef>;
34
+ readonly problems: ReadonlyArray<string>;
35
+ }
36
+ /**
37
+ * Read pi's config the way pi reads it, so a report can say why a model is
38
+ * missing rather than only that it is. Deliberately total: an unreadable or
39
+ * malformed file yields problems, never a raised error, because this runs
40
+ * only to explain a failure and must never become one.
41
+ */
42
+ export declare const piModelsConfig: (modelsJson: string | undefined, port: string) => PiModelsConfig;
43
+ /** Back-compat shape for callers that only want the pairs. */
44
+ export declare const piModelRefs: (modelsJson: string | undefined, port: string) => ReadonlyArray<PiModelRef>;
45
+ /** The `provider/model` values that reach gemini through the bridge. */
46
+ export declare const bridgeModelRefs: (modelsJson: string | undefined, port: string) => ReadonlyArray<string>;
47
+ /**
48
+ * Which bridge-backed model a run should hand pi, decided from pi's own
49
+ * config rather than a guessed default. Shared by the flow runner and the
50
+ * ADR 0016 smoke test so both fail the same way for the same reason.
51
+ */
52
+ export type BridgeModelResolution = {
53
+ readonly _tag: "Resolved";
54
+ readonly model: string;
55
+ } | {
56
+ readonly _tag: "Ambiguous";
57
+ readonly candidates: ReadonlyArray<string>;
58
+ } | {
59
+ readonly _tag: "Unavailable";
60
+ readonly problems: ReadonlyArray<string>;
61
+ };
62
+ export declare const resolveBridgeModel: (modelsJson: string | undefined, port: string, configured: string | undefined) => BridgeModelResolution;
63
+ /** Why no bridge model could be chosen, phrased for a run that must stop. */
64
+ export declare const bridgeModelProblem: (resolution: BridgeModelResolution, port: string) => string | undefined;
65
+ //# sourceMappingURL=PiModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PiModels.d.ts","sourceRoot":"","sources":["../src/PiModels.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,uBAAuB,SAAS,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAO,MAAM,GAAG,SAMnD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACxD,MAG0B,CAAA;AAE7B;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACzC;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,KAAG,cA8C7E,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,WAAW,GACtB,YAAY,MAAM,GAAG,SAAS,EAC9B,MAAM,MAAM,KACX,aAAa,CAAC,UAAU,CAA0C,CAAA;AAErE,wEAAwE;AACxE,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,GAAG,SAAS,EAC9B,MAAM,MAAM,KACX,aAAa,CAAC,MAAM,CAGO,CAAA;AAE9B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AAE9E,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,GAAG,SAAS,EAC9B,MAAM,MAAM,EACZ,YAAY,MAAM,GAAG,SAAS,KAC7B,qBAoBF,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,GAC7B,YAAY,qBAAqB,EACjC,MAAM,MAAM,KACX,MAAM,GAAG,SAqBX,CAAA"}
@@ -0,0 +1,148 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ /**
5
+ * Reading `pi`'s own model config (ADR 0016). Separate from `Doctor.ts` so
6
+ * the flow runner can consult it without importing the doctor — which
7
+ * imports the runner — and so the parsing has no dependency on either.
8
+ *
9
+ * pi owns this file; llm4ts only ever reads it.
10
+ */
11
+ const isSet = (value) => value !== undefined && value.trim().length > 0;
12
+ export const defaultGeminiBridgePort = "8731";
13
+ /**
14
+ * `~/.pi/agent/models.json`. Read only — llm4ts never writes it. Missing is
15
+ * not an error: the file simply doesn't exist yet.
16
+ */
17
+ export const defaultReadPiModelsJson = () => {
18
+ try {
19
+ return readFileSync(join(homedir(), ".pi", "agent", "models.json"), "utf8");
20
+ }
21
+ catch {
22
+ return undefined;
23
+ }
24
+ };
25
+ export const geminiBridgePort = (environment) => isSet(environment.LLM4TS_GEMINI_BRIDGE_PORT)
26
+ ? environment.LLM4TS_GEMINI_BRIDGE_PORT.trim()
27
+ : defaultGeminiBridgePort;
28
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
29
+ /** Annotated rather than asserted, matching `NodeGeminiAcpBridge.parseJson`. */
30
+ const parseJson = (raw) => {
31
+ try {
32
+ return JSON.parse(raw);
33
+ }
34
+ catch {
35
+ return undefined;
36
+ }
37
+ };
38
+ /**
39
+ * pi's schema requires each `models` entry to be an object carrying a string
40
+ * `id`; a bare `"model-name"` string fails validation with
41
+ * `models.<i>: must be object` and takes the whole file down with it.
42
+ */
43
+ const modelId = (entry) => {
44
+ if (!isRecord(entry)) {
45
+ return undefined;
46
+ }
47
+ const id = entry.id;
48
+ return typeof id === "string" && id.length > 0 ? id : undefined;
49
+ };
50
+ /**
51
+ * Read pi's config the way pi reads it, so a report can say why a model is
52
+ * missing rather than only that it is. Deliberately total: an unreadable or
53
+ * malformed file yields problems, never a raised error, because this runs
54
+ * only to explain a failure and must never become one.
55
+ */
56
+ export const piModelsConfig = (modelsJson, port) => {
57
+ if (modelsJson === undefined) {
58
+ return { refs: [], problems: [] };
59
+ }
60
+ const parsed = parseJson(modelsJson);
61
+ if (parsed === undefined) {
62
+ return { refs: [], problems: ["models.json is not valid JSON"] };
63
+ }
64
+ const providers = isRecord(parsed) ? parsed.providers : undefined;
65
+ if (!isRecord(providers)) {
66
+ return { refs: [], problems: ["providers: must be an object"] };
67
+ }
68
+ const refs = [];
69
+ const problems = [];
70
+ for (const [provider, entry] of Object.entries(providers)) {
71
+ if (!isRecord(entry)) {
72
+ problems.push(`providers.${provider}: must be an object`);
73
+ continue;
74
+ }
75
+ const baseUrl = entry.baseUrl;
76
+ const bridged = typeof baseUrl === "string" && baseUrl.includes(`127.0.0.1:${port}`);
77
+ // pi resolves `apiKey` from a literal, `$ENV`, or a `!command`; any of
78
+ // them counts as configured here, because presence is the availability
79
+ // rule and llm4ts must never resolve the value itself.
80
+ const authConfigured = typeof entry.apiKey === "string" && entry.apiKey.length > 0;
81
+ const models = entry.models;
82
+ if (models === undefined) {
83
+ continue;
84
+ }
85
+ if (!Array.isArray(models)) {
86
+ problems.push(`providers.${provider}.models: must be an array`);
87
+ continue;
88
+ }
89
+ if (typeof baseUrl !== "string" || baseUrl.length === 0) {
90
+ problems.push(`providers.${provider}.baseUrl: required for a provider with models`);
91
+ }
92
+ models.forEach((model, index) => {
93
+ const id = modelId(model);
94
+ if (id === undefined) {
95
+ problems.push(`providers.${provider}.models.${index}: must be an object with a string id`);
96
+ return;
97
+ }
98
+ refs.push({ ref: `${provider}/${id}`, bridged, authConfigured });
99
+ });
100
+ }
101
+ return { refs, problems };
102
+ };
103
+ /** Back-compat shape for callers that only want the pairs. */
104
+ export const piModelRefs = (modelsJson, port) => piModelsConfig(modelsJson, port).refs;
105
+ /** The `provider/model` values that reach gemini through the bridge. */
106
+ export const bridgeModelRefs = (modelsJson, port) => piModelRefs(modelsJson, port)
107
+ .filter((entry) => entry.bridged)
108
+ .map((entry) => entry.ref);
109
+ export const resolveBridgeModel = (modelsJson, port, configured) => {
110
+ if (isSet(configured)) {
111
+ return { _tag: "Resolved", model: configured.trim() };
112
+ }
113
+ const { refs, problems } = piModelsConfig(modelsJson, port);
114
+ // pi discards the whole file on any schema error, so a bridge entry that
115
+ // parses here is still invisible to pi. Never offer one.
116
+ if (problems.length > 0) {
117
+ return { _tag: "Unavailable", problems };
118
+ }
119
+ const candidates = refs
120
+ .filter((entry) => entry.bridged && entry.authConfigured)
121
+ .map((entry) => entry.ref);
122
+ const [only] = candidates;
123
+ if (only !== undefined && candidates.length === 1) {
124
+ return { _tag: "Resolved", model: only };
125
+ }
126
+ return candidates.length === 0
127
+ ? { _tag: "Unavailable", problems: [] }
128
+ : { _tag: "Ambiguous", candidates };
129
+ };
130
+ /** Why no bridge model could be chosen, phrased for a run that must stop. */
131
+ export const bridgeModelProblem = (resolution, port) => {
132
+ if (resolution._tag === "Resolved") {
133
+ return undefined;
134
+ }
135
+ if (resolution._tag === "Ambiguous") {
136
+ return (`Several bridge models are available; set LLM4TS_GEMINI_BRIDGE_MODEL to one of:\n` +
137
+ resolution.candidates.map((ref) => ` ${ref}`).join("\n"));
138
+ }
139
+ const detail = resolution.problems.length > 0
140
+ ? ` It currently fails pi's schema:\n${resolution.problems.map((p) => ` ${p}`).join("\n")}`
141
+ : "";
142
+ return (`No usable bridge model in ~/.pi/agent/models.json for port ${port}. Add a provider ` +
143
+ `with baseUrl "http://127.0.0.1:${port}", any placeholder apiKey, and a models entry ` +
144
+ `shaped { "id": "..." } (see docs/configuration.md).${detail}\n` +
145
+ `\`pi --list-models\` is the final word on what pi accepts; ` +
146
+ `\`LLM4TS_GEMINI_BRIDGE=1 llm4ts doctor\` explains what it makes of the file.`);
147
+ };
148
+ //# sourceMappingURL=PiModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PiModels.js","sourceRoot":"","sources":["../src/PiModels.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/runner",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
4
4
  "description": "Node runner, CLI, terminal, and MCP composition for llm4ts",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,6 +31,7 @@
31
31
  "./NodeWorkspace": "./dist/NodeWorkspace.js",
32
32
  "./NodeRuntime": "./dist/NodeRuntime.js",
33
33
  "./Packs": "./dist/Packs.js",
34
+ "./PiModels": "./dist/PiModels.js",
34
35
  "./ReviewFingerprint": "./dist/ReviewFingerprint.js",
35
36
  "./Terminal": "./dist/Terminal.js",
36
37
  "./TerminalInteraction": "./dist/TerminalInteraction.js",
@@ -60,8 +61,8 @@
60
61
  "typescript"
61
62
  ],
62
63
  "dependencies": {
63
- "@llm4ts/core": "2.3.0",
64
- "@llm4ts/flow": "2.3.0"
64
+ "@llm4ts/core": "2.3.1",
65
+ "@llm4ts/flow": "2.3.1"
65
66
  },
66
67
  "peerDependencies": {
67
68
  "effect": "4.0.0-rc.115"