@llm4ts/core 2.24.0 → 2.26.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.
@@ -75,12 +75,15 @@ declare const GeminiCliExecutionContext_base: Schema.Class<GeminiCliExecutionCon
75
75
  readonly sandbox: Schema.optionalKey<Schema.Literals<readonly ["Docker", "Podman", "SeatbeltMacOS", "Runsc", "Lxc", "Default"]>>;
76
76
  readonly turnLimit: Schema.optionalKey<Schema.Int>;
77
77
  readonly readOnly: Schema.withConstructorDefault<Schema.Boolean>;
78
+ /** The seat's own environment (a roster `env`), under llm4ts's own keys. */
79
+ readonly envVars: Schema.withConstructorDefault<Schema.$Record<Schema.String, Schema.String>>;
78
80
  }>, {}>;
79
81
  export declare class GeminiCliExecutionContext extends GeminiCliExecutionContext_base {
80
82
  }
81
83
  export declare const geminiCliExecutionContextFrom: (config: CliConnectorConfig) => GeminiCliExecutionContext;
82
84
  export interface GeminiCliExecutorShape {
83
- readonly checkGeminiInstalled: Effect.Effect<void, LlmError>;
85
+ /** Fails when the CLI is missing; answers its version text (`gemini --version`). */
86
+ readonly checkGeminiInstalled: Effect.Effect<string, LlmError>;
84
87
  readonly runGeminiProcess: (prompt: string, config: LlmConfig, context: GeminiCliExecutionContext) => Effect.Effect<string, LlmError>;
85
88
  readonly runGeminiProcessStream: (prompt: string, config: LlmConfig, context: GeminiCliExecutionContext) => Stream.Stream<GeminiCliStreamEvent, LlmError>;
86
89
  }
@@ -91,6 +94,19 @@ export declare const geminiSandboxEnvValue: (sandbox: GeminiSandbox) => string |
91
94
  export declare const buildGeminiArgs: (config: LlmConfig, context: GeminiCliExecutionContext, outputFormat: string) => ReadonlyArray<string>;
92
95
  export declare const geminiTurnLimitSettingsJson: (turns: number) => string;
93
96
  export declare const geminiProcessEnv: (context: GeminiCliExecutionContext, turnLimitSettingsPath?: string) => Readonly<Record<string, string>>;
97
+ /**
98
+ * The first Gemini CLI whose headless modes are policies, not moods: its
99
+ * policy engine denies the shell and every write tool when non-interactive
100
+ * in default mode, and every tool but the read-only set in plan mode (which
101
+ * sat behind `experimental.plan` until 0.37.0 promoted it). Below this a
102
+ * read-only seat is a request the harness may not honor, so llm4ts refuses
103
+ * it (ADR 0010).
104
+ */
105
+ export declare const geminiReadOnlyFloor = "0.37.0";
106
+ /** The `x.y.z` in a `gemini --version` answer, if it holds one. */
107
+ export declare const geminiVersionOf: (text: string) => string | undefined;
108
+ /** Why this CLI cannot hold a read-only seat, or nothing when it can. */
109
+ export declare const geminiReadOnlyProblem: (versionText: string) => string | undefined;
94
110
  export declare const geminiQuotaDiagnostic: (stderr: ReadonlyArray<string>) => string | undefined;
95
111
  /**
96
112
  * The stderr line where Gemini CLI's loop breaker reports that it halted
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiCliProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiCliProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,cAAc,CAAA;AAErB,OAAO,EAOL,KAAK,SAAS,EAEf,MAAM,cAAc,CAAA;AAGrB,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAA;;;;AAExB,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAGjC;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAIvC;CAAG;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;;;;;;IAOH,sFAAsF;;IAEtF,yDAAyD;;;AAP3D,qBAAa,iBAAkB,SAAQ,sBASrC;CAAG;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;AAEL,eAAO,MAAM,oBAAoB,qMAQ/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC,IAAI,CAAA;AAEnE,eAAO,MAAM,aAAa,4FAOxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;;;;;;;IAcnD,4EAA4E;;;AAV9E,qBAAa,yBAA0B,SAAQ,8BAc7C;CAAG;AAEL,eAAO,MAAM,6BAA6B,GACxC,QAAQ,kBAAkB,KACzB,yBAWC,CAAA;AAEJ,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC9D,QAAQ,CAAC,gBAAgB,EAAE,CACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpC,QAAQ,CAAC,sBAAsB,EAAE,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;CACnD;;AAED,qBAAa,iBAAkB,SAAQ,sBAEtC;CAAG;AAEJ,eAAO,MAAM,qBAAqB,GAAI,SAAS,aAAa,KAAG,MAAM,GAAG,SAevE,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,QAAQ,SAAS,EACjB,SAAS,yBAAyB,EAClC,cAAc,MAAM,KACnB,aAAa,CAAC,MAAM,CAsBtB,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,MAKxD,CAAA;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,SAAS,yBAAyB,EAClC,wBAAwB,MAAM,KAC7B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYjC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,WAAW,CAAA;AAO3C,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAA2C,CAAA;AAanG,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,GAAI,aAAa,MAAM,KAAG,MAAM,GAAG,SAcpE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,aAAa,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,SAanE,CAAA;AAEZ;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,QAAQ,aAAa,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,SAClB,CAAA;AAE5D,eAAO,MAAM,0BAA0B,GACrC,OAAO,oBAAoB,EAC3B,QAAQ,aAAa,CAAC,MAAM,CAAC,KAC5B,oBAoCF,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,YAAY,MAAM,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAe9B,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,QAAQ,aAAa,CAAC,MAAM,CAAC,EAC7B,kBAAkB,OAAO,EACzB,YAAY,MAAM,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CA+B9B,CAAA;AAeD,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAUL,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,OACI,CAAA;AAExD,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,OAiBvD,CAAA;AAmCD,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,wBAmCzD,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,SAAS,GAAG,SAAS,KAC3B,iBAAiB,GAAG,SA2DtB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,MAAM,MAAM,KAAG,oBAqFxD,CAAA;AAqDD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,EACjB,UAAU,sBAAsB,EAChC,mBAAkB,yBAA8D,KAC/E,iBAmPF,CAAA"}
@@ -6,7 +6,7 @@ import * as Schema from "effect/Schema";
6
6
  import * as Stream from "effect/Stream";
7
7
  import { makeCliConnector } from "../Connector.js";
8
8
  import { InvalidRequestError, ParseError, ProviderError, TurnLimitError } from "../Errors.js";
9
- import { ConnectorIds, HealthStatus, LlmChunk, TokenUsage } from "../Models.js";
9
+ import { ConnectorCapabilities, ConnectorIds, HealthStatus, LlmChunk, TokenUsage } from "../Models.js";
10
10
  import { collect } from "../Streaming.js";
11
11
  import { jsonCandidates, parseFromText, withSchemaHint } from "../StructuredOutput.js";
12
12
  import { failClassifiedCliError, isLoopDetectedMessage, jsonField, jsonIntField, jsonNumberField, jsonObjectEntries, jsonStringField, jsonText, parseJsonLine } from "./CliSupport.js";
@@ -83,13 +83,16 @@ export class GeminiCliExecutionContext extends Schema.Class("GeminiCliExecutionC
83
83
  includeDirectories: Schema.Array(Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed(emptyDirectories))),
84
84
  sandbox: Schema.optionalKey(GeminiSandbox),
85
85
  turnLimit: Schema.optionalKey(Schema.Int),
86
- readOnly: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false)))
86
+ readOnly: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
87
+ /** The seat's own environment (a roster `env`), under llm4ts's own keys. */
88
+ envVars: Schema.Record(Schema.String, Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed({})))
87
89
  }) {
88
90
  }
89
91
  export const geminiCliExecutionContextFrom = (config) => GeminiCliExecutionContext.make({
90
92
  ...(config.workingDir === undefined ? {} : { cwd: config.workingDir }),
91
93
  ...(config.turnLimit === undefined ? {} : { turnLimit: config.turnLimit }),
92
94
  readOnly: config.readOnly,
95
+ envVars: config.envVars,
93
96
  ...(config.sandbox === undefined
94
97
  ? {}
95
98
  : {
@@ -119,10 +122,18 @@ export const buildGeminiArgs = (config, context, outputFormat) => {
119
122
  "--include-directories",
120
123
  path
121
124
  ]);
125
+ // Read-only is headless default mode: Gemini's own write policy denies
126
+ // the shell and every write tool when non-interactive, and unmatched tools
127
+ // too, while the model keeps its agent prompt. Plan mode would also deny
128
+ // them, but swaps the prompt for a planning workflow (explore the codebase,
129
+ // consult the user, save a plan), which a judge answering JSON cannot
130
+ // follow. Under a sandbox, default mode pre-approves cat/ls/grep in the
131
+ // shell, so plan mode stays there.
132
+ const readOnlyMode = context.sandbox === undefined ? "default" : "plan";
122
133
  return [
123
134
  "-m",
124
135
  config.model,
125
- ...(context.readOnly ? ["--approval-mode", "plan"] : ["-y"]),
136
+ ...(context.readOnly ? ["--approval-mode", readOnlyMode] : ["-y"]),
126
137
  "--output-format",
127
138
  outputFormat,
128
139
  ...directories,
@@ -137,6 +148,7 @@ export const geminiTurnLimitSettingsJson = (turns) => JSON.stringify({
137
148
  export const geminiProcessEnv = (context, turnLimitSettingsPath) => {
138
149
  const sandbox = context.sandbox === undefined ? undefined : geminiSandboxEnvValue(context.sandbox);
139
150
  return {
151
+ ...context.envVars,
140
152
  GEMINI_CLI_TRUST_WORKSPACE: "true",
141
153
  ...(sandbox === undefined ? {} : { GEMINI_SANDBOX: sandbox }),
142
154
  ...(turnLimitSettingsPath === undefined
@@ -146,6 +158,45 @@ export const geminiProcessEnv = (context, turnLimitSettingsPath) => {
146
158
  })
147
159
  };
148
160
  };
161
+ /**
162
+ * The first Gemini CLI whose headless modes are policies, not moods: its
163
+ * policy engine denies the shell and every write tool when non-interactive
164
+ * in default mode, and every tool but the read-only set in plan mode (which
165
+ * sat behind `experimental.plan` until 0.37.0 promoted it). Below this a
166
+ * read-only seat is a request the harness may not honor, so llm4ts refuses
167
+ * it (ADR 0010).
168
+ */
169
+ export const geminiReadOnlyFloor = "0.37.0";
170
+ const versionTriple = (text) => {
171
+ const match = /(\d+)\.(\d+)\.(\d+)/.exec(text);
172
+ return match === null ? undefined : match.slice(1, 4).map(Number);
173
+ };
174
+ /** The `x.y.z` in a `gemini --version` answer, if it holds one. */
175
+ export const geminiVersionOf = (text) => versionTriple(text)?.join(".");
176
+ const atLeast = (version, floor) => {
177
+ for (let index = 0; index < floor.length; index += 1) {
178
+ const have = version[index] ?? 0;
179
+ const want = floor[index] ?? 0;
180
+ if (have !== want) {
181
+ return have > want;
182
+ }
183
+ }
184
+ return true;
185
+ };
186
+ /** Why this CLI cannot hold a read-only seat, or nothing when it can. */
187
+ export const geminiReadOnlyProblem = (versionText) => {
188
+ const version = versionTriple(versionText);
189
+ const floor = versionTriple(geminiReadOnlyFloor) ?? [];
190
+ if (version === undefined) {
191
+ return (`could not read the Gemini CLI version from '${versionText.trim()}'; a read-only seat ` +
192
+ `needs gemini >= ${geminiReadOnlyFloor}, whose plan mode is enforced by its policy engine`);
193
+ }
194
+ return atLeast(version, floor)
195
+ ? undefined
196
+ : `Gemini CLI ${version.join(".")} cannot enforce a read-only seat: plan mode is a policy ` +
197
+ `only from ${geminiReadOnlyFloor}; upgrade gemini, or give the judge and reviewer ` +
198
+ "seats to another harness";
199
+ };
149
200
  export const geminiQuotaDiagnostic = (stderr) => stderr
150
201
  .find((line) => {
151
202
  const lower = line.toLowerCase();
@@ -544,12 +595,19 @@ export const makeGeminiCliProvider = (config, executor, executionContext = Gemin
544
595
  // `gemini --version` is a second Node start-up; it ran before every turn
545
596
  // (llm4zio does the same). Once it has answered, it is not asked again for
546
597
  // this provider; a failed check is retried on the next turn (docs/parity.md).
598
+ // A read-only seat is only taken on a CLI whose plan mode is a policy
599
+ // (`geminiReadOnlyFloor`): the version answer decides before the first turn.
547
600
  let installed = false;
548
601
  const checkInstalledOnce = Effect.suspend(() => installed
549
602
  ? Effect.void
550
- : Effect.tap(executor.checkGeminiInstalled, () => Effect.sync(() => {
551
- installed = true;
552
- })));
603
+ : Effect.flatMap(executor.checkGeminiInstalled, (version) => {
604
+ const problem = executionContext.readOnly ? geminiReadOnlyProblem(version) : undefined;
605
+ return problem === undefined
606
+ ? Effect.sync(() => {
607
+ installed = true;
608
+ })
609
+ : Effect.fail(InvalidRequestError.make({ message: problem }));
610
+ }));
553
611
  const executeStream = (prompt) => Stream.concat(Stream.fromEffect(checkInstalledOnce).pipe(Stream.drain), Stream.unwrap(Effect.map(Ref.make({
554
612
  provider: "gemini-cli",
555
613
  model: config.model
@@ -667,7 +725,15 @@ export const makeGeminiCliProvider = (config, executor, executionContext = Gemin
667
725
  complete,
668
726
  completeStream: executeStream,
669
727
  healthCheck,
670
- isAvailable: Effect.map(healthCheck, (status) => status.availability === "Healthy")
728
+ isAvailable: Effect.map(healthCheck, (status) => status.availability === "Healthy"),
729
+ // Headless default and plan modes are policy-engine denies of every
730
+ // non-read-only tool from `geminiReadOnlyFloor`, and `checkInstalledOnce`
731
+ // refuses a read-only seat on anything older, so the grade holds for
732
+ // every seat that runs.
733
+ capabilities: ConnectorCapabilities.make({
734
+ interactiveSessions: true,
735
+ readOnlyEnforcement: "enforced"
736
+ })
671
737
  });
672
738
  const executeStructuredWithUsage = (prompt, schema, jsonSchema) => Effect.gen(function* () {
673
739
  const hinted = withSchemaHint(prompt, jsonSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiCliProvider.js","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiCliProvider.js","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/core",
3
- "version": "2.24.0",
3
+ "version": "2.26.0",
4
4
  "description": "Effect-native LLM contracts, providers, tools, evaluation, and observability",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -15,6 +15,7 @@ import {
15
15
  } from "../Errors.ts"
16
16
  import type { StructuredResult } from "../LlmService.ts"
17
17
  import {
18
+ ConnectorCapabilities,
18
19
  ConnectorIds,
19
20
  HealthStatus,
20
21
  LlmChunk,
@@ -120,7 +121,11 @@ export class GeminiCliExecutionContext extends Schema.Class<GeminiCliExecutionCo
120
121
  ),
121
122
  sandbox: Schema.optionalKey(GeminiSandbox),
122
123
  turnLimit: Schema.optionalKey(Schema.Int),
123
- readOnly: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false)))
124
+ readOnly: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
125
+ /** The seat's own environment (a roster `env`), under llm4ts's own keys. */
126
+ envVars: Schema.Record(Schema.String, Schema.String).pipe(
127
+ Schema.withConstructorDefault(Effect.succeed<Readonly<Record<string, string>>>({}))
128
+ )
124
129
  }) {}
125
130
 
126
131
  export const geminiCliExecutionContextFrom = (
@@ -130,6 +135,7 @@ export const geminiCliExecutionContextFrom = (
130
135
  ...(config.workingDir === undefined ? {} : { cwd: config.workingDir }),
131
136
  ...(config.turnLimit === undefined ? {} : { turnLimit: config.turnLimit }),
132
137
  readOnly: config.readOnly,
138
+ envVars: config.envVars,
133
139
  ...(config.sandbox === undefined
134
140
  ? {}
135
141
  : {
@@ -138,7 +144,8 @@ export const geminiCliExecutionContextFrom = (
138
144
  })
139
145
 
140
146
  export interface GeminiCliExecutorShape {
141
- readonly checkGeminiInstalled: Effect.Effect<void, LlmError>
147
+ /** Fails when the CLI is missing; answers its version text (`gemini --version`). */
148
+ readonly checkGeminiInstalled: Effect.Effect<string, LlmError>
142
149
  readonly runGeminiProcess: (
143
150
  prompt: string,
144
151
  config: LlmConfig,
@@ -181,10 +188,18 @@ export const buildGeminiArgs = (
181
188
  "--include-directories",
182
189
  path
183
190
  ])
191
+ // Read-only is headless default mode: Gemini's own write policy denies
192
+ // the shell and every write tool when non-interactive, and unmatched tools
193
+ // too, while the model keeps its agent prompt. Plan mode would also deny
194
+ // them, but swaps the prompt for a planning workflow (explore the codebase,
195
+ // consult the user, save a plan), which a judge answering JSON cannot
196
+ // follow. Under a sandbox, default mode pre-approves cat/ls/grep in the
197
+ // shell, so plan mode stays there.
198
+ const readOnlyMode = context.sandbox === undefined ? "default" : "plan"
184
199
  return [
185
200
  "-m",
186
201
  config.model,
187
- ...(context.readOnly ? ["--approval-mode", "plan"] : ["-y"]),
202
+ ...(context.readOnly ? ["--approval-mode", readOnlyMode] : ["-y"]),
188
203
  "--output-format",
189
204
  outputFormat,
190
205
  ...directories,
@@ -205,6 +220,7 @@ export const geminiProcessEnv = (
205
220
  ): Readonly<Record<string, string>> => {
206
221
  const sandbox = context.sandbox === undefined ? undefined : geminiSandboxEnvValue(context.sandbox)
207
222
  return {
223
+ ...context.envVars,
208
224
  GEMINI_CLI_TRUST_WORKSPACE: "true",
209
225
  ...(sandbox === undefined ? {} : { GEMINI_SANDBOX: sandbox }),
210
226
  ...(turnLimitSettingsPath === undefined
@@ -215,6 +231,52 @@ export const geminiProcessEnv = (
215
231
  }
216
232
  }
217
233
 
234
+ /**
235
+ * The first Gemini CLI whose headless modes are policies, not moods: its
236
+ * policy engine denies the shell and every write tool when non-interactive
237
+ * in default mode, and every tool but the read-only set in plan mode (which
238
+ * sat behind `experimental.plan` until 0.37.0 promoted it). Below this a
239
+ * read-only seat is a request the harness may not honor, so llm4ts refuses
240
+ * it (ADR 0010).
241
+ */
242
+ export const geminiReadOnlyFloor = "0.37.0"
243
+
244
+ const versionTriple = (text: string): ReadonlyArray<number> | undefined => {
245
+ const match = /(\d+)\.(\d+)\.(\d+)/.exec(text)
246
+ return match === null ? undefined : match.slice(1, 4).map(Number)
247
+ }
248
+
249
+ /** The `x.y.z` in a `gemini --version` answer, if it holds one. */
250
+ export const geminiVersionOf = (text: string): string | undefined => versionTriple(text)?.join(".")
251
+
252
+ const atLeast = (version: ReadonlyArray<number>, floor: ReadonlyArray<number>): boolean => {
253
+ for (let index = 0; index < floor.length; index += 1) {
254
+ const have = version[index] ?? 0
255
+ const want = floor[index] ?? 0
256
+ if (have !== want) {
257
+ return have > want
258
+ }
259
+ }
260
+ return true
261
+ }
262
+
263
+ /** Why this CLI cannot hold a read-only seat, or nothing when it can. */
264
+ export const geminiReadOnlyProblem = (versionText: string): string | undefined => {
265
+ const version = versionTriple(versionText)
266
+ const floor = versionTriple(geminiReadOnlyFloor) ?? []
267
+ if (version === undefined) {
268
+ return (
269
+ `could not read the Gemini CLI version from '${versionText.trim()}'; a read-only seat ` +
270
+ `needs gemini >= ${geminiReadOnlyFloor}, whose plan mode is enforced by its policy engine`
271
+ )
272
+ }
273
+ return atLeast(version, floor)
274
+ ? undefined
275
+ : `Gemini CLI ${version.join(".")} cannot enforce a read-only seat: plan mode is a policy ` +
276
+ `only from ${geminiReadOnlyFloor}; upgrade gemini, or give the judge and reviewer ` +
277
+ "seats to another harness"
278
+ }
279
+
218
280
  export const geminiQuotaDiagnostic = (stderr: ReadonlyArray<string>): string | undefined =>
219
281
  stderr
220
282
  .find((line) => {
@@ -698,15 +760,20 @@ export const makeGeminiCliProvider = (
698
760
  // `gemini --version` is a second Node start-up; it ran before every turn
699
761
  // (llm4zio does the same). Once it has answered, it is not asked again for
700
762
  // this provider; a failed check is retried on the next turn (docs/parity.md).
763
+ // A read-only seat is only taken on a CLI whose plan mode is a policy
764
+ // (`geminiReadOnlyFloor`): the version answer decides before the first turn.
701
765
  let installed = false
702
766
  const checkInstalledOnce: Effect.Effect<void, LlmError> = Effect.suspend(() =>
703
767
  installed
704
768
  ? Effect.void
705
- : Effect.tap(executor.checkGeminiInstalled, () =>
706
- Effect.sync(() => {
707
- installed = true
708
- })
709
- )
769
+ : Effect.flatMap(executor.checkGeminiInstalled, (version) => {
770
+ const problem = executionContext.readOnly ? geminiReadOnlyProblem(version) : undefined
771
+ return problem === undefined
772
+ ? Effect.sync(() => {
773
+ installed = true
774
+ })
775
+ : Effect.fail(InvalidRequestError.make({ message: problem }))
776
+ })
710
777
  )
711
778
 
712
779
  const executeStream = (prompt: string): Stream.Stream<LlmChunk, LlmError> =>
@@ -867,7 +934,15 @@ export const makeGeminiCliProvider = (
867
934
  complete,
868
935
  completeStream: executeStream,
869
936
  healthCheck,
870
- isAvailable: Effect.map(healthCheck, (status) => status.availability === "Healthy")
937
+ isAvailable: Effect.map(healthCheck, (status) => status.availability === "Healthy"),
938
+ // Headless default and plan modes are policy-engine denies of every
939
+ // non-read-only tool from `geminiReadOnlyFloor`, and `checkInstalledOnce`
940
+ // refuses a read-only seat on anything older, so the grade holds for
941
+ // every seat that runs.
942
+ capabilities: ConnectorCapabilities.make({
943
+ interactiveSessions: true,
944
+ readOnlyEnforcement: "enforced"
945
+ })
871
946
  })
872
947
 
873
948
  const executeStructuredWithUsage = <A, E, RD, RE>(