flavor-code 1.4.0-beta.8 → 1.4.1-beta.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-LLC7WBXP.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,
@@ -66,10 +66,12 @@ function normalizeProviderError(error) {
66
66
  code = "authentication";
67
67
  } else if (status === 429 || /rate.?limit|overloaded/.test(searchable)) {
68
68
  code = "rate_limit";
69
- } else if (/context|too many tokens|prompt.*long/.test(searchable)) {
69
+ } else if (/context[_\s-]?(?:length|window|overflow)(?:[_\s-]?(?:exceeded|limit))?/.test(searchable) || /maximum context length|too many tokens|prompt.*(?:too )?long/.test(searchable)) {
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,40 +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" || typeof schema.properties !== "object" || schema.properties === null) {
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 requiredSet = new Set(Array.isArray(schema.required) ? schema.required : []);
8818
- const properties = {};
8819
- for (const [key, value] of Object.entries(schema.properties)) {
8820
- const child = typeof value === "object" && value !== null ? ensureStrictSchema(value) : value;
8821
- if (requiredSet.has(key) || jsonSchemaAllowsNull(child)) properties[key] = child;
8822
- else properties[key] = { anyOf: [child, { type: "null" }] };
8823
- 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
+ }
8824
8948
  }
8825
- 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);
8826
8986
  }
8827
8987
  function repairMessages(messages, tool, original, candidate, error) {
8828
8988
  const details = [
@@ -9781,9 +9941,11 @@ var ToolRuntime = class {
9781
9941
  if (pre.decision === "deny") {
9782
9942
  return this.#fail(toolCallId, tool.name, input, context.agent, "hook_denied", pre.reason ?? "Tool use denied by hook");
9783
9943
  }
9944
+ const approvalInput = tool.permissionInput?.(input) ?? input;
9784
9945
  const request = {
9785
9946
  agent: context.agent,
9786
9947
  tool: tool.name,
9948
+ input: approvalInput,
9787
9949
  ...tool.permissions?.(input) ?? { paths: tool.paths(input) },
9788
9950
  ...tool.readOnly === true ? { readOnly: true } : {}
9789
9951
  };
@@ -9816,7 +9978,7 @@ var ToolRuntime = class {
9816
9978
  payload: {
9817
9979
  toolCallId,
9818
9980
  tool: tool.name,
9819
- input: tool.permissionInput?.(input) ?? input,
9981
+ input: approvalInput,
9820
9982
  agent: context.agent,
9821
9983
  reason,
9822
9984
  toolCategory: getToolCategory(tool.name),
@@ -13090,7 +13252,7 @@ ${evidence.summary}`;
13090
13252
  }
13091
13253
  };
13092
13254
  function isResumableWorkerError(error) {
13093
- 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";
13094
13256
  }
13095
13257
  function countTrailingFailureSignature(cycles, signature) {
13096
13258
  let count = 0;
@@ -13804,10 +13966,10 @@ function resumeStartRound(state) {
13804
13966
  return state.verifyRounds >= state.workerRounds ? state.workerRounds + 1 : Math.max(state.workerRounds, 1);
13805
13967
  }
13806
13968
  function isResumableWorkerError2(error) {
13807
- 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";
13808
13970
  }
13809
13971
  function isResumableStageError(error) {
13810
- 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";
13811
13973
  }
13812
13974
  function stageRetryDelay(options, attempt) {
13813
13975
  const delayMs = options.stageRetryDelayMs?.(attempt) ?? Math.min(6e4, 1e3 * 2 ** Math.min(attempt - 1, 6));
@@ -14804,6 +14966,7 @@ function resolveCacheProfile(input) {
14804
14966
  // src/models/openai.ts
14805
14967
  import OpenAI from "openai";
14806
14968
  import { readFile as readFile16 } from "fs/promises";
14969
+ var DEFAULT_THINKING_EFFORT = "high";
14807
14970
  async function toInput(message2) {
14808
14971
  if (message2.role === "tool") {
14809
14972
  if (!message2.toolCallId) throw new Error("Tool messages require toolCallId");
@@ -14879,7 +15042,7 @@ var OpenAIModelAdapter = class {
14879
15042
  ...options.baseURL === void 0 ? {} : { baseURL: options.baseURL }
14880
15043
  });
14881
15044
  this.debugUsage = options.debugUsage ?? isEnvTruthy(process.env.FLAVOR_DEBUG_USAGE);
14882
- this.thinkingEffort = options.thinkingEffort;
15045
+ this.thinkingEffort = options.thinkingEffort ?? DEFAULT_THINKING_EFFORT;
14883
15046
  }
14884
15047
  #logUsage(model, breakdown) {
14885
15048
  if (breakdown === void 0) return;
@@ -14902,12 +15065,12 @@ var OpenAIModelAdapter = class {
14902
15065
  const body = {
14903
15066
  model: request.model,
14904
15067
  input: (await Promise.all(request.messages.map(toInput))).flat(),
14905
- ...this.thinkingEffort === void 0 ? {} : { reasoning: { effort: this.thinkingEffort } },
15068
+ reasoning: { effort: this.thinkingEffort },
14906
15069
  tools: [...request.tools].sort((a, b) => a.name.localeCompare(b.name)).map((tool) => ({
14907
15070
  type: "function",
14908
15071
  name: tool.name,
14909
15072
  description: tool.description,
14910
- parameters: tool.inputSchema,
15073
+ parameters: openAIJsonSchemaObject(tool.inputSchema, tool.strict ?? true),
14911
15074
  strict: tool.strict ?? true
14912
15075
  }))
14913
15076
  };
@@ -19982,6 +20145,15 @@ var RegisterManagedToolInputSchema = z31.object({
19982
20145
  "Agent roles allowed to call the generated tool; omit to allow both"
19983
20146
  )
19984
20147
  }).strict();
20148
+ var RegisterManagedToolModelInputSchema = (() => {
20149
+ const schema = jsonSchemaFromZod(RegisterManagedToolInputSchema);
20150
+ const properties = schema.properties;
20151
+ const inputSchema = { ...properties.inputSchema };
20152
+ delete inputSchema.propertyNames;
20153
+ delete inputSchema.patternProperties;
20154
+ inputSchema.additionalProperties = true;
20155
+ return { ...schema, properties: { ...properties, inputSchema } };
20156
+ })();
19985
20157
  var RemoveManagedToolInputSchema = z31.object({
19986
20158
  name: z31.string().regex(TOOL_NAME).describe("Managed tool name to remove"),
19987
20159
  scope: z31.enum(["project", "global"]).optional().describe("Required only when the same name exists in both scopes")
@@ -20127,6 +20299,8 @@ function createManagedToolManagementTools(options) {
20127
20299
  name: "RegisterTool",
20128
20300
  description: "Create a durable custom tool from JSON Schema and async JavaScript, then expose it immediately",
20129
20301
  inputSchema: RegisterManagedToolInputSchema,
20302
+ modelInputSchema: RegisterManagedToolModelInputSchema,
20303
+ modelStrict: false,
20130
20304
  agents: mainOnly,
20131
20305
  paths: (rawInput) => {
20132
20306
  const parsed = RegisterManagedToolInputSchema.safeParse(rawInput);
@@ -25154,7 +25328,7 @@ function terminalProgressState(status) {
25154
25328
  return "failed";
25155
25329
  }
25156
25330
  function isResumableLongTaskError(code) {
25157
- 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";
25158
25332
  }
25159
25333
  async function workspaceFingerprint(workspace) {
25160
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-EUKT7HEU.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-LLC7WBXP.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-KSUBHHLR.js")
924
+ import("./app-UKTPW3E6.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>;