@llm4ts/shell 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,7 +28,7 @@ import { FlowEvents, Info } from "@llm4ts/flow/FlowEvents";
28
28
  import { capped, withShrink } from "@llm4ts/flow/Context";
29
29
  import { withDraftApproval } from "@llm4ts/flow/Approval";
30
30
  import { legacySourceWorkspaceLimits, workspaceLimitsFromEnv } from "@llm4ts/flow/Workspace";
31
- import { asReadOnly, coderFromEnv, makeNodeWorkspace, nodePlainFileStore, openPack, resolveFlowInput, runFlowMain, runNode, ScriptUsage, stage } from "@llm4ts/runner";
31
+ import { asReadOnly, asToolless, coderFromEnv, makeNodeWorkspace, nodePlainFileStore, openPack, resolveFlowInput, runFlowMain, runNode, ScriptUsage, stage } from "@llm4ts/runner";
32
32
  import { ConventionSection, conventionPassAsk, conventionSectionJsonSchema, forkPackMarkdown, forkedReadme, parseForkAs, parseTargetKind, passesForTargetKind, readGroundingFiles, targetConventionsReviewer, techStackGroundingFiles } from "./lib/pack-fork.js";
33
33
  const forkPackFiles = Effect.fn("flows/pack-fork.forkPackFiles")(function* (source, destinationAbs, files) {
34
34
  // `source.dir` is "." for an absolute-path pack reference (Packs.ts's
@@ -80,7 +80,14 @@ const program = Effect.gen(function* () {
80
80
  workspace: input.workspace,
81
81
  userPrompt: input.prompt,
82
82
  coder,
83
- reasoning: coder,
83
+ // Every convention pass runs as a one-shot structuredAndPublish()
84
+ // call with no tool-loop continuation — a model that reaches for a
85
+ // tool mid-turn (invited by "Explore the repository…" in three of
86
+ // the four passes) resolves with no text instead of an error
87
+ // ("empty response … no text to parse as structured output"). A
88
+ // read-only coder still offers a read tool over some connectors
89
+ // (pi in particular); asToolless offers none.
90
+ reasoning: asToolless(coderFromEnv(process.env)),
84
91
  environment: process.env
85
92
  }, (context) => Effect.gen(function* () {
86
93
  const repo = yield* makeNodeWorkspace(input.workDir, workspaceLimitsFromEnv(process.env, legacySourceWorkspaceLimits));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/shell",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "Interactive shell and CLI for llm4ts: flow discovery, run-a-flow, and view",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -52,9 +52,9 @@
52
52
  "dependencies": {
53
53
  "@effect/platform-node": "4.0.0-rc.115",
54
54
  "@effect/platform-node-shared": "4.0.0-rc.115",
55
- "@llm4ts/core": "2.4.1",
56
- "@llm4ts/runner": "2.4.1",
57
- "@llm4ts/flow": "2.4.1"
55
+ "@llm4ts/core": "2.4.2",
56
+ "@llm4ts/flow": "2.4.2",
57
+ "@llm4ts/runner": "2.4.2"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "effect": "4.0.0-rc.115"