flavor-code 1.4.0-beta.9 → 1.4.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.
@@ -38,9 +38,8 @@ var ProviderConfigSchema = z.object({
38
38
  // parameter. Provider thinking deltas are forwarded whenever they arrive.
39
39
  thinkingBudget: z.number().int().min(0).optional(),
40
40
  // Reasoning effort requested from the OpenAI Responses protocol (sent as
41
- // reasoning.effort). Omitted by default so strict compatible gateways never
42
- // see an unknown parameter and the endpoint uses its server-side default.
43
- thinkingEffort: z.enum(["minimal", "low", "medium", "high", "xhigh"]).optional(),
41
+ // reasoning.effort). The adapter defaults an omitted value to high.
42
+ thinkingEffort: z.enum(["minimal", "low", "medium", "high", "xhigh", "ultra"]).optional(),
44
43
  // Send the Claude Code client fingerprint (User-Agent/x-app) with Anthropic requests,
45
44
  // for gateways that restrict the Anthropic protocol to Claude clients.
46
45
  claudeClient: z.boolean().optional(),
@@ -4,7 +4,7 @@ import {
4
4
  message,
5
5
  redactErrorText,
6
6
  redactSecrets
7
- } from "./chunk-CWCYXOH6.js";
7
+ } from "./chunk-O2PC44GY.js";
8
8
 
9
9
  // src/rpc/server.ts
10
10
  import { createInterface } from "readline";
@@ -23,7 +23,7 @@ import {
23
23
  redactConfig,
24
24
  setProjectMcpServerDisabled,
25
25
  updateProtectedFile
26
- } from "./chunk-EXOSMO57.js";
26
+ } from "./chunk-7YFHRORG.js";
27
27
  import {
28
28
  AuditLogger,
29
29
  appendUsageLog,
@@ -70,6 +70,8 @@ function normalizeProviderError(error) {
70
70
  code = "context_overflow";
71
71
  } else if (status === 404 || /model.*not.?found|not.?found.*model/.test(searchable)) {
72
72
  code = "model_not_found";
73
+ } else if (status === 400 || status === 422 || /invalid schema|schema.*(?:invalid|not (?:a )?valid)/.test(searchable)) {
74
+ code = "invalid_request";
73
75
  } else if (status !== void 0 && status >= 500 && status <= 599) {
74
76
  code = "network";
75
77
  } else if (status === void 0 && /econn|enet|socket|network|fetch failed|connection|timeout/.test(searchable)) {
@@ -1012,10 +1014,11 @@ async function createExampleFlavorConfig(cwd) {
1012
1014
  pkce: {
1013
1015
  type: "oauth-callback",
1014
1016
  apiType: "anthropic",
1015
- authorizationUrl: "http://192.168.1.100:8091/authorize",
1016
- tokenUrl: "http://192.168.1.100:8091/token",
1017
+ authorizationUrl: "http://127.0.0.1:8091/authorize",
1018
+ tokenUrl: "http://127.0.0.1:8091/token",
1017
1019
  clientId: "flavor-code-cli",
1018
- scope: "models:read models:use"
1020
+ scope: "models:read models:use",
1021
+ thinkingEffort: "high"
1019
1022
  }
1020
1023
  },
1021
1024
  agents: {
@@ -8651,7 +8654,10 @@ function jsonSchemaFromZod(schema) {
8651
8654
  return z11.toJSONSchema(schema);
8652
8655
  }
8653
8656
  function strictJsonSchemaObject(schema) {
8654
- return ensureStrictSchema(schema);
8657
+ return normalizeOpenAIJsonSchemaObject(schema, true);
8658
+ }
8659
+ function openAIJsonSchemaObject(schema, strict) {
8660
+ return normalizeOpenAIJsonSchemaObject(schema, strict);
8655
8661
  }
8656
8662
  function extractJsonObject(text) {
8657
8663
  const trimmed = text.trim();
@@ -8789,41 +8795,194 @@ function jsonSchemaAllowsNull(schema) {
8789
8795
  function modelToolFromZod(name, description, schema) {
8790
8796
  return { name, description, inputSchema: strictJsonSchema(schema) };
8791
8797
  }
8792
- function ensureStrictSchema(schema) {
8798
+ var JSON_SCHEMA_TYPES = /* @__PURE__ */ new Set(["null", "boolean", "object", "array", "number", "string", "integer"]);
8799
+ var OPENAI_UNSUPPORTED_SCHEMA_KEYWORDS = [
8800
+ "$schema",
8801
+ "$id",
8802
+ "$anchor",
8803
+ "$dynamicAnchor",
8804
+ "$dynamicRef",
8805
+ "$comment",
8806
+ "default",
8807
+ "examples",
8808
+ "example",
8809
+ "deprecated",
8810
+ "readOnly",
8811
+ "writeOnly",
8812
+ "format",
8813
+ "propertyNames",
8814
+ "patternProperties",
8815
+ "unevaluatedProperties",
8816
+ "unevaluatedItems",
8817
+ "additionalItems",
8818
+ "contains",
8819
+ "minContains",
8820
+ "maxContains",
8821
+ "uniqueItems",
8822
+ "minProperties",
8823
+ "maxProperties",
8824
+ "contentEncoding",
8825
+ "contentMediaType",
8826
+ "not",
8827
+ "if",
8828
+ "then",
8829
+ "else",
8830
+ "dependentRequired",
8831
+ "dependentSchemas",
8832
+ "dependencies"
8833
+ ];
8834
+ function normalizeOpenAIJsonSchemaObject(schema, strict) {
8835
+ const normalized = normalizeOpenAIJsonSchemaNode(schema, strict);
8836
+ if (normalized.type === "object") return normalized;
8837
+ return strict ? { type: "object", properties: {}, required: [], additionalProperties: false } : { type: "object", properties: {}, additionalProperties: true };
8838
+ }
8839
+ function normalizeOpenAIJsonSchemaNode(rawSchema, strict) {
8840
+ const schema = mergeObjectAllOf(rawSchema);
8793
8841
  const output = { ...schema };
8794
- delete output.propertyNames;
8795
- delete output.patternProperties;
8796
- for (const keyword of ["anyOf", "oneOf", "allOf", "prefixItems"]) {
8797
- const branches = schema[keyword];
8798
- if (Array.isArray(branches)) {
8799
- output[keyword] = branches.map((branch) => typeof branch === "object" && branch !== null ? ensureStrictSchema(branch) : branch);
8800
- }
8801
- }
8802
- if (typeof schema.items === "object" && schema.items !== null) {
8803
- output.items = ensureStrictSchema(schema.items);
8842
+ for (const keyword of OPENAI_UNSUPPORTED_SCHEMA_KEYWORDS) delete output[keyword];
8843
+ delete output.oneOf;
8844
+ delete output.allOf;
8845
+ delete output.prefixItems;
8846
+ delete output.nullable;
8847
+ delete output.definitions;
8848
+ if (typeof output.$ref === "string" && output.$ref.startsWith("#/definitions/")) {
8849
+ output.$ref = output.$ref.replace("#/definitions/", "#/$defs/");
8850
+ }
8851
+ const compositionBranches = [
8852
+ ...Array.isArray(schema.anyOf) ? schema.anyOf : [],
8853
+ ...Array.isArray(schema.oneOf) ? schema.oneOf : [],
8854
+ ...Array.isArray(schema.allOf) ? schema.allOf : []
8855
+ ];
8856
+ if (compositionBranches.length > 0) {
8857
+ output.anyOf = compositionBranches.map((branch) => normalizeOpenAISchemaValue(branch, strict));
8858
+ } else {
8859
+ delete output.anyOf;
8804
8860
  }
8805
- for (const keyword of ["$defs", "definitions"]) {
8806
- const definitions = schema[keyword];
8807
- if (typeof definitions === "object" && definitions !== null && !Array.isArray(definitions)) {
8808
- output[keyword] = Object.fromEntries(Object.entries(definitions).map(([key, definition]) => [
8809
- key,
8810
- typeof definition === "object" && definition !== null ? ensureStrictSchema(definition) : definition
8811
- ]));
8861
+ const definitions = {
8862
+ ...isSchemaRecord(schema.definitions) ? schema.definitions : {},
8863
+ ...isSchemaRecord(schema.$defs) ? schema.$defs : {}
8864
+ };
8865
+ if (Object.keys(definitions).length > 0) {
8866
+ output.$defs = Object.fromEntries(Object.entries(definitions).map(([key, definition]) => [key, normalizeOpenAISchemaValue(definition, strict)]));
8867
+ }
8868
+ const prefixItems = Array.isArray(schema.prefixItems) ? schema.prefixItems : void 0;
8869
+ if (prefixItems !== void 0 && prefixItems.length > 0) {
8870
+ const tupleItems = prefixItems.map((item) => normalizeOpenAISchemaValue(item, strict));
8871
+ output.items = tupleItems.length === 1 ? tupleItems[0] : { anyOf: tupleItems };
8872
+ } else if (Array.isArray(schema.items)) {
8873
+ const tupleItems = schema.items.map((item) => normalizeOpenAISchemaValue(item, strict));
8874
+ output.items = tupleItems.length === 1 ? tupleItems[0] : { anyOf: tupleItems };
8875
+ } else if (isSchemaRecord(schema.items)) {
8876
+ output.items = normalizeOpenAIJsonSchemaNode(schema.items, strict);
8877
+ } else if (schema.items === true || schema.items === false) {
8878
+ output.items = universalJsonValueSchema(strict);
8879
+ }
8880
+ let type = schema.type;
8881
+ if (type === void 0 && isSchemaRecord(schema.properties)) type = "object";
8882
+ if (type === void 0 && output.items !== void 0) type = "array";
8883
+ if (type === void 0 && Array.isArray(schema.enum)) type = inferJsonTypes(schema.enum);
8884
+ if (type === void 0 && Object.hasOwn(schema, "const")) type = inferJsonTypes([schema.const]);
8885
+ if (typeof type === "string" && !JSON_SCHEMA_TYPES.has(type)) type = void 0;
8886
+ if (Array.isArray(type)) {
8887
+ const types = type.filter((candidate) => typeof candidate === "string" && JSON_SCHEMA_TYPES.has(candidate));
8888
+ type = types.length === 0 ? void 0 : types;
8889
+ }
8890
+ delete output.type;
8891
+ if (type !== void 0) output.type = type;
8892
+ if (schemaTypeIncludes(type, "array") && output.items === void 0) {
8893
+ output.items = universalJsonValueSchema(strict);
8894
+ }
8895
+ if (schemaTypeIncludes(type, "object")) {
8896
+ const sourceProperties = isSchemaRecord(schema.properties) ? schema.properties : {};
8897
+ const sourceRequired = new Set(Array.isArray(schema.required) ? schema.required.filter((key) => typeof key === "string") : []);
8898
+ const properties = {};
8899
+ for (const [key, value] of Object.entries(sourceProperties)) {
8900
+ const child = normalizeOpenAISchemaValue(value, strict);
8901
+ if (!strict || sourceRequired.has(key) || jsonSchemaAllowsNull(child)) properties[key] = child;
8902
+ else properties[key] = { anyOf: [child, { type: "null" }] };
8903
+ if (strict) sourceRequired.add(key);
8904
+ }
8905
+ output.properties = properties;
8906
+ const required2 = strict ? Object.keys(properties) : [...sourceRequired].filter((key) => Object.hasOwn(properties, key));
8907
+ if (strict || required2.length > 0 || Array.isArray(schema.required)) output.required = required2;
8908
+ else delete output.required;
8909
+ if (strict) {
8910
+ output.additionalProperties = false;
8911
+ } else if (schema.additionalProperties === true || schema.additionalProperties === false) {
8912
+ output.additionalProperties = schema.additionalProperties;
8913
+ } else if (isSchemaRecord(schema.additionalProperties)) {
8914
+ output.additionalProperties = Object.keys(schema.additionalProperties).length === 0 ? true : normalizeOpenAIJsonSchemaNode(schema.additionalProperties, false);
8915
+ } else {
8916
+ delete output.additionalProperties;
8812
8917
  }
8813
8918
  }
8814
- if (schema.type !== "object") {
8815
- return output;
8919
+ if (schema.nullable === true && !jsonSchemaAllowsNull(output)) {
8920
+ const description = typeof output.description === "string" ? output.description : void 0;
8921
+ const branch = { ...output };
8922
+ delete branch.description;
8923
+ return {
8924
+ ...description === void 0 ? {} : { description },
8925
+ anyOf: [branch, { type: "null" }]
8926
+ };
8816
8927
  }
8817
- const sourceProperties = typeof schema.properties === "object" && schema.properties !== null && !Array.isArray(schema.properties) ? schema.properties : {};
8818
- const requiredSet = new Set(Array.isArray(schema.required) ? schema.required : []);
8819
- const properties = {};
8820
- for (const [key, value] of Object.entries(sourceProperties)) {
8821
- const child = typeof value === "object" && value !== null ? ensureStrictSchema(value) : value;
8822
- if (requiredSet.has(key) || jsonSchemaAllowsNull(child)) properties[key] = child;
8823
- else properties[key] = { anyOf: [child, { type: "null" }] };
8824
- requiredSet.add(key);
8928
+ if (isTypedOrComposedSchema(output)) return output;
8929
+ return universalJsonValueSchema(strict);
8930
+ }
8931
+ function mergeObjectAllOf(schema) {
8932
+ const branches = Array.isArray(schema.allOf) ? schema.allOf.filter(isSchemaRecord) : [];
8933
+ if (branches.length === 0 || !branches.every(isObjectSchema)) return schema;
8934
+ const base = { ...schema };
8935
+ delete base.allOf;
8936
+ const properties = isSchemaRecord(base.properties) ? { ...base.properties } : {};
8937
+ const required2 = new Set(Array.isArray(base.required) ? base.required.filter((key) => typeof key === "string") : []);
8938
+ for (const branch of branches) {
8939
+ if (isSchemaRecord(branch.properties)) {
8940
+ for (const [key, value] of Object.entries(branch.properties)) {
8941
+ const existing = properties[key];
8942
+ properties[key] = existing === void 0 ? value : { anyOf: [existing, value] };
8943
+ }
8944
+ }
8945
+ if (Array.isArray(branch.required)) {
8946
+ for (const key of branch.required) if (typeof key === "string") required2.add(key);
8947
+ }
8825
8948
  }
8826
- return { ...output, additionalProperties: false, required: [...requiredSet], properties };
8949
+ return { ...base, type: "object", properties, required: [...required2] };
8950
+ }
8951
+ function normalizeOpenAISchemaValue(value, strict) {
8952
+ if (isSchemaRecord(value)) return normalizeOpenAIJsonSchemaNode(value, strict);
8953
+ return universalJsonValueSchema(strict);
8954
+ }
8955
+ function universalJsonValueSchema(strict) {
8956
+ const scalar = [{ type: "string" }, { type: "number" }, { type: "boolean" }, { type: "null" }];
8957
+ return {
8958
+ anyOf: [
8959
+ ...scalar,
8960
+ strict ? { type: "object", properties: {}, required: [], additionalProperties: false } : { type: "object", properties: {}, additionalProperties: true },
8961
+ { type: "array", items: { anyOf: scalar } }
8962
+ ]
8963
+ };
8964
+ }
8965
+ function inferJsonTypes(values) {
8966
+ const types = [...new Set(values.map((value) => {
8967
+ if (value === null) return "null";
8968
+ if (Array.isArray(value)) return "array";
8969
+ if (typeof value === "number") return Number.isInteger(value) ? "integer" : "number";
8970
+ if (typeof value === "object") return "object";
8971
+ return typeof value;
8972
+ }).filter((type) => ["null", "array", "object", "integer", "number", "string", "boolean"].includes(type)))];
8973
+ return types.length === 0 ? void 0 : types.length === 1 ? types[0] : types;
8974
+ }
8975
+ function isSchemaRecord(value) {
8976
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8977
+ }
8978
+ function isObjectSchema(schema) {
8979
+ return schema.type === "object" || isSchemaRecord(schema.properties);
8980
+ }
8981
+ function isTypedOrComposedSchema(schema) {
8982
+ return typeof schema.type === "string" || Array.isArray(schema.type) || typeof schema.$ref === "string" || Array.isArray(schema.anyOf);
8983
+ }
8984
+ function schemaTypeIncludes(type, expected) {
8985
+ return type === expected || Array.isArray(type) && type.includes(expected);
8827
8986
  }
8828
8987
  function repairMessages(messages, tool, original, candidate, error) {
8829
8988
  const details = [
@@ -9782,9 +9941,11 @@ var ToolRuntime = class {
9782
9941
  if (pre.decision === "deny") {
9783
9942
  return this.#fail(toolCallId, tool.name, input, context.agent, "hook_denied", pre.reason ?? "Tool use denied by hook");
9784
9943
  }
9944
+ const approvalInput = tool.permissionInput?.(input) ?? input;
9785
9945
  const request = {
9786
9946
  agent: context.agent,
9787
9947
  tool: tool.name,
9948
+ input: approvalInput,
9788
9949
  ...tool.permissions?.(input) ?? { paths: tool.paths(input) },
9789
9950
  ...tool.readOnly === true ? { readOnly: true } : {}
9790
9951
  };
@@ -9817,7 +9978,7 @@ var ToolRuntime = class {
9817
9978
  payload: {
9818
9979
  toolCallId,
9819
9980
  tool: tool.name,
9820
- input: tool.permissionInput?.(input) ?? input,
9981
+ input: approvalInput,
9821
9982
  agent: context.agent,
9822
9983
  reason,
9823
9984
  toolCategory: getToolCategory(tool.name),
@@ -13091,7 +13252,7 @@ ${evidence.summary}`;
13091
13252
  }
13092
13253
  };
13093
13254
  function isResumableWorkerError(error) {
13094
- return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "cancelled" && error.code !== "memory_pressure";
13255
+ return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "invalid_request" && error.code !== "cancelled" && error.code !== "memory_pressure";
13095
13256
  }
13096
13257
  function countTrailingFailureSignature(cycles, signature) {
13097
13258
  let count = 0;
@@ -13805,10 +13966,10 @@ function resumeStartRound(state) {
13805
13966
  return state.verifyRounds >= state.workerRounds ? state.workerRounds + 1 : Math.max(state.workerRounds, 1);
13806
13967
  }
13807
13968
  function isResumableWorkerError2(error) {
13808
- return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "cancelled" && error.code !== "memory_pressure";
13969
+ return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "invalid_request" && error.code !== "cancelled" && error.code !== "memory_pressure";
13809
13970
  }
13810
13971
  function isResumableStageError(error) {
13811
- return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "cancelled" && error.code !== "memory_pressure";
13972
+ return error.code !== "authentication" && error.code !== "model_not_found" && error.code !== "invalid_request" && error.code !== "cancelled" && error.code !== "memory_pressure";
13812
13973
  }
13813
13974
  function stageRetryDelay(options, attempt) {
13814
13975
  const delayMs = options.stageRetryDelayMs?.(attempt) ?? Math.min(6e4, 1e3 * 2 ** Math.min(attempt - 1, 6));
@@ -14805,6 +14966,7 @@ function resolveCacheProfile(input) {
14805
14966
  // src/models/openai.ts
14806
14967
  import OpenAI from "openai";
14807
14968
  import { readFile as readFile16 } from "fs/promises";
14969
+ var DEFAULT_THINKING_EFFORT = "high";
14808
14970
  async function toInput(message2) {
14809
14971
  if (message2.role === "tool") {
14810
14972
  if (!message2.toolCallId) throw new Error("Tool messages require toolCallId");
@@ -14880,7 +15042,7 @@ var OpenAIModelAdapter = class {
14880
15042
  ...options.baseURL === void 0 ? {} : { baseURL: options.baseURL }
14881
15043
  });
14882
15044
  this.debugUsage = options.debugUsage ?? isEnvTruthy(process.env.FLAVOR_DEBUG_USAGE);
14883
- this.thinkingEffort = options.thinkingEffort;
15045
+ this.thinkingEffort = options.thinkingEffort ?? DEFAULT_THINKING_EFFORT;
14884
15046
  }
14885
15047
  #logUsage(model, breakdown) {
14886
15048
  if (breakdown === void 0) return;
@@ -14903,12 +15065,12 @@ var OpenAIModelAdapter = class {
14903
15065
  const body = {
14904
15066
  model: request.model,
14905
15067
  input: (await Promise.all(request.messages.map(toInput))).flat(),
14906
- ...this.thinkingEffort === void 0 ? {} : { reasoning: { effort: this.thinkingEffort } },
15068
+ reasoning: { effort: this.thinkingEffort },
14907
15069
  tools: [...request.tools].sort((a, b) => a.name.localeCompare(b.name)).map((tool) => ({
14908
15070
  type: "function",
14909
15071
  name: tool.name,
14910
15072
  description: tool.description,
14911
- parameters: tool.inputSchema,
15073
+ parameters: openAIJsonSchemaObject(tool.inputSchema, tool.strict ?? true),
14912
15074
  strict: tool.strict ?? true
14913
15075
  }))
14914
15076
  };
@@ -25166,7 +25328,7 @@ function terminalProgressState(status) {
25166
25328
  return "failed";
25167
25329
  }
25168
25330
  function isResumableLongTaskError(code) {
25169
- return code !== "authentication" && code !== "model_not_found" && code !== "cancelled" && code !== "memory_pressure";
25331
+ return code !== "authentication" && code !== "model_not_found" && code !== "invalid_request" && code !== "cancelled" && code !== "memory_pressure";
25170
25332
  }
25171
25333
  async function workspaceFingerprint(workspace) {
25172
25334
  const hash = createHash18("sha256");
@@ -19604,7 +19604,7 @@ function renderNodeToOutput(node, output, {
19604
19604
  const delta = contentCached.y - contentY;
19605
19605
  const regionTop = Math.floor(y + contentYoga.getComputedTop());
19606
19606
  const regionBottom = regionTop + innerHeight - 1;
19607
- if (cached?.y === y && cached.height === height && innerHeight > 0 && Math.abs(delta) < innerHeight) {
19607
+ if (cached?.y === y && cached.height === height && innerHeight > 0 && Math.floor(x) === 0 && Math.floor(width) >= output.width && Math.abs(delta) < innerHeight) {
19608
19608
  hint = { top: regionTop, bottom: regionBottom, delta };
19609
19609
  scrollHint = hint;
19610
19610
  } else {
@@ -21447,6 +21447,7 @@ export {
21447
21447
  Box_default,
21448
21448
  Text,
21449
21449
  stripAnsi,
21450
+ stringWidth,
21450
21451
  ScrollBox_default,
21451
21452
  instances_default,
21452
21453
  osc,
@@ -10,7 +10,7 @@ import {
10
10
  useStdout,
11
11
  use_app_default,
12
12
  use_input_default
13
- } from "./chunk-XMRKRPNC.js";
13
+ } from "./chunk-VMQWXQEC.js";
14
14
  import "./chunk-ZJCAQXA7.js";
15
15
  import "./chunk-S32JRDZK.js";
16
16
  export {
package/dist/cli-main.js CHANGED
@@ -3,7 +3,7 @@ import { createRequire } from "node:module"; const require = createRequire(impor
3
3
  import {
4
4
  FlavorRpcServer,
5
5
  TraceRecorder
6
- } from "./chunk-D4OD67V6.js";
6
+ } from "./chunk-FAORPP4F.js";
7
7
  import {
8
8
  staticTaskLines
9
9
  } from "./chunk-RAYH6K2H.js";
@@ -29,7 +29,7 @@ import {
29
29
  redactErrorText,
30
30
  runDoctor,
31
31
  runPalBroker
32
- } from "./chunk-CWCYXOH6.js";
32
+ } from "./chunk-O2PC44GY.js";
33
33
  import {
34
34
  MEMORY_RESTART_EXIT_CODE
35
35
  } from "./chunk-N5MXHJKD.js";
@@ -41,7 +41,7 @@ import {
41
41
  readRecoverableFile,
42
42
  setProjectSkillDisabled,
43
43
  updateProtectedFile
44
- } from "./chunk-EXOSMO57.js";
44
+ } from "./chunk-7YFHRORG.js";
45
45
  import {
46
46
  gt,
47
47
  isValidVersion
@@ -749,7 +749,7 @@ async function runEvaluationFile(path, outputPath) {
749
749
  })),
750
750
  ...parsed.maxTokens === void 0 ? {} : { maxTokens: parsed.maxTokens }
751
751
  };
752
- const configured = await import("./load-EW56Q2MM.js").then(({ loadConfig: loadConfig2 }) => loadConfig2({ cwd: workspace, home: process.env.USERPROFILE ?? process.env.HOME ?? workspace }));
752
+ const configured = await import("./load-UPOG3XQR.js").then(({ loadConfig: loadConfig2 }) => loadConfig2({ cwd: workspace, home: process.env.USERPROFILE ?? process.env.HOME ?? workspace }));
753
753
  const environment = createExecutionEnvironment(workspace, configured.config.execution) ?? new LocalExecutionEnvironment();
754
754
  let report;
755
755
  try {
@@ -919,9 +919,9 @@ async function runInteractiveCli(props) {
919
919
  const disposeUserTimingSweeper = installUiUserTimingSweeper();
920
920
  try {
921
921
  const [{ render, AlternateScreen }, { createElement }, { App }] = await Promise.all([
922
- import("./claude-ink-6EZHF64C.js"),
922
+ import("./claude-ink-JZXNSAQS.js"),
923
923
  import("react"),
924
- import("./app-XEW4ES4R.js")
924
+ import("./app-4YRKE7VI.js")
925
925
  ]);
926
926
  const instance = await render(createElement(
927
927
  AlternateScreen,
@@ -25,6 +25,7 @@ export declare const ProviderConfigSchema: z.ZodObject<{
25
25
  low: "low";
26
26
  medium: "medium";
27
27
  minimal: "minimal";
28
+ ultra: "ultra";
28
29
  xhigh: "xhigh";
29
30
  }>>;
30
31
  claudeClient: z.ZodOptional<z.ZodBoolean>;
@@ -82,6 +83,7 @@ export declare const FlavorConfigSchema: z.ZodObject<{
82
83
  low: "low";
83
84
  medium: "medium";
84
85
  minimal: "minimal";
86
+ ultra: "ultra";
85
87
  xhigh: "xhigh";
86
88
  }>>;
87
89
  claudeClient: z.ZodOptional<z.ZodBoolean>;