@gajae-code/coding-agent 0.18.10 → 0.18.12

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.
Files changed (270) hide show
  1. package/CHANGELOG.md +295 -0
  2. package/dist/types/async/job-manager.d.ts +7 -3
  3. package/dist/types/async/result-formatting.d.ts +2 -0
  4. package/dist/types/autoresearch/git.d.ts +1 -1
  5. package/dist/types/capability/fs.d.ts +2 -2
  6. package/dist/types/cli/accounts-cli.d.ts +2 -2
  7. package/dist/types/cli/doctor/install-repairs.d.ts +4 -1
  8. package/dist/types/cli/install-activation.d.ts +10 -4
  9. package/dist/types/cli/public-command-errors.d.ts +1 -0
  10. package/dist/types/cli/update-cli.d.ts +14 -1
  11. package/dist/types/cli-ordinary.d.ts +2 -2
  12. package/dist/types/commands/accounts.d.ts +2 -1
  13. package/dist/types/commands/migrate.d.ts +1 -1
  14. package/dist/types/commands/sdk.d.ts +5 -0
  15. package/dist/types/commit/changelog/index.d.ts +1 -0
  16. package/dist/types/config/autorouting-tier-map.d.ts +30 -0
  17. package/dist/types/config/config-hot-reload-trust.d.ts +12 -0
  18. package/dist/types/config/config-hot-reload.d.ts +39 -0
  19. package/dist/types/config/file-lock.d.ts +8 -1
  20. package/dist/types/config/model-discovery-manager.d.ts +2 -0
  21. package/dist/types/config/model-profile-activation.d.ts +62 -6
  22. package/dist/types/config/model-registry.d.ts +56 -5
  23. package/dist/types/config/model-resolver.d.ts +2 -0
  24. package/dist/types/config/models-config-schema.d.ts +10 -0
  25. package/dist/types/config/settings-schema.d.ts +46 -3
  26. package/dist/types/config/settings.d.ts +33 -1
  27. package/dist/types/dap/config.d.ts +8 -4
  28. package/dist/types/debug/system-info.d.ts +6 -1
  29. package/dist/types/discovery/mcp-compat.d.ts +3 -1
  30. package/dist/types/edit/modes/patch.d.ts +5 -0
  31. package/dist/types/edit/modes/replace.d.ts +3 -0
  32. package/dist/types/exec/bash-executor.d.ts +12 -0
  33. package/dist/types/gjc-runtime/managed-owner-admission.d.ts +3 -0
  34. package/dist/types/gjc-runtime/session-state-lock.d.ts +2 -0
  35. package/dist/types/gjc-runtime/state-runtime.d.ts +0 -2
  36. package/dist/types/migrate/adapters/codex.d.ts +2 -1
  37. package/dist/types/migrate/adapters/index.d.ts +10 -1
  38. package/dist/types/migrate/executor.d.ts +3 -1
  39. package/dist/types/migrate/types.d.ts +15 -3
  40. package/dist/types/modes/components/settings-selector.d.ts +6 -0
  41. package/dist/types/modes/controllers/selector-controller.d.ts +2 -0
  42. package/dist/types/modes/theme/theme.d.ts +1 -0
  43. package/dist/types/runtime-mcp/content-limits.d.ts +4 -0
  44. package/dist/types/runtime-mcp/manager.d.ts +7 -0
  45. package/dist/types/runtime-mcp/plugin-mcp-name-filter.d.ts +22 -0
  46. package/dist/types/runtime-mcp/tool-bridge.d.ts +4 -0
  47. package/dist/types/sdk/broker/broker-exit.d.ts +2 -2
  48. package/dist/types/sdk/broker/broker.d.ts +7 -1
  49. package/dist/types/sdk/broker/daemon-entry.d.ts +11 -1
  50. package/dist/types/sdk/broker/doctor-restart.d.ts +1 -1
  51. package/dist/types/sdk/broker/ensure.d.ts +136 -7
  52. package/dist/types/sdk/broker/hop.d.ts +36 -0
  53. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +18 -10
  54. package/dist/types/sdk/broker/lock-host-identity.d.ts +5 -0
  55. package/dist/types/sdk/broker/session-index.d.ts +4 -1
  56. package/dist/types/sdk/bus/chat-command-policy.d.ts +2 -1
  57. package/dist/types/sdk/bus/index.d.ts +23 -0
  58. package/dist/types/sdk/bus/reconciliation-store.d.ts +10 -0
  59. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +3 -1
  60. package/dist/types/sdk/cli/session-cli.d.ts +0 -1
  61. package/dist/types/sdk/host/session-runtime.d.ts +32 -0
  62. package/dist/types/sdk/prompt-deadline-flush.d.ts +42 -4
  63. package/dist/types/sdk/prompt-deadline-manager.d.ts +2 -0
  64. package/dist/types/sdk/protocol/adapter-validation.d.ts +10 -4
  65. package/dist/types/sdk/reconciliation-extensions.d.ts +1 -1
  66. package/dist/types/sdk/session-list.d.ts +1 -1
  67. package/dist/types/session/agent-session.d.ts +58 -2
  68. package/dist/types/session/internal/managed-session-scope.d.ts +2 -2
  69. package/dist/types/session/internal/managed-session-storage.d.ts +1 -1
  70. package/dist/types/session/internal/native-publish-outcome.d.ts +1 -1
  71. package/dist/types/session/messages.d.ts +5 -1
  72. package/dist/types/session/session-manager.d.ts +13 -3
  73. package/dist/types/session/startup-auth-config.d.ts +24 -2
  74. package/dist/types/session/streaming-output.d.ts +11 -0
  75. package/dist/types/session/terminal-abort.d.ts +3 -1
  76. package/dist/types/session-import/service.d.ts +1 -1
  77. package/dist/types/skill-state/workflow-mutation-guard.d.ts +7 -3
  78. package/dist/types/slash-commands/helpers/provider-auth-status.d.ts +8 -0
  79. package/dist/types/task/executor.d.ts +19 -2
  80. package/dist/types/tools/ast-edit-write-path.d.ts +10 -0
  81. package/dist/types/tools/atomic-file-write.d.ts +9 -7
  82. package/dist/types/tools/bash-allowed-prefixes.d.ts +11 -0
  83. package/dist/types/tools/descriptors.d.ts +2 -0
  84. package/dist/types/tools/fetch.d.ts +1 -1
  85. package/dist/types/tools/index.d.ts +2 -0
  86. package/dist/types/tools/python.d.ts +1 -1
  87. package/dist/types/tools/report-issue.d.ts +41 -0
  88. package/dist/types/tools/subagent.d.ts +23 -0
  89. package/dist/types/web/scrapers/types.d.ts +8 -1
  90. package/dist/types/web/search/providers/insane.d.ts +7 -1
  91. package/dist/types/web/search/providers/searxng.d.ts +5 -0
  92. package/package.json +8 -8
  93. package/scripts/build-binary.ts +2 -1
  94. package/scripts/capture-subagent-compact-panel-showcase.ts +105 -0
  95. package/scripts/generate-docs-index.ts +8 -1
  96. package/scripts/generate-sdk-operation-inventory.ts +22 -4
  97. package/src/async/job-manager.ts +356 -56
  98. package/src/async/result-formatting.ts +40 -0
  99. package/src/autoresearch/git.ts +9 -2
  100. package/src/autoresearch/prompts/prompt-setup.md +1 -1
  101. package/src/capability/fs.ts +27 -19
  102. package/src/capability/index.ts +2 -2
  103. package/src/cli/accounts-cli.ts +176 -8
  104. package/src/cli/auth-broker-cli.ts +21 -11
  105. package/src/cli/doctor/install-repairs.ts +35 -5
  106. package/src/cli/fast-help.ts +1 -1
  107. package/src/cli/install-activation.ts +47 -4
  108. package/src/cli/migrate-cli.ts +7 -5
  109. package/src/cli/public-command-errors.ts +4 -0
  110. package/src/cli/root-flags.ts +2 -2
  111. package/src/cli/stats-cli.ts +9 -5
  112. package/src/cli/update-cli.ts +224 -7
  113. package/src/cli-ordinary.ts +7 -2
  114. package/src/commands/accounts.ts +10 -5
  115. package/src/commands/migrate.ts +3 -3
  116. package/src/commands/sdk.ts +199 -42
  117. package/src/commands/ultragoal.ts +16 -8
  118. package/src/commit/changelog/index.ts +39 -1
  119. package/src/commit/message.ts +10 -3
  120. package/src/config/autorouting-tier-map.ts +30 -0
  121. package/src/config/config-hot-reload-trust.ts +148 -0
  122. package/src/config/config-hot-reload.ts +734 -0
  123. package/src/config/file-lock.ts +216 -56
  124. package/src/config/model-bindings-applier.ts +85 -47
  125. package/src/config/model-discovery-manager.ts +10 -0
  126. package/src/config/model-profile-activation.ts +716 -113
  127. package/src/config/model-registry.ts +1334 -158
  128. package/src/config/model-resolver.ts +3 -1
  129. package/src/config/models-config-schema.ts +6 -0
  130. package/src/config/settings-schema.ts +60 -3
  131. package/src/config/settings.ts +458 -24
  132. package/src/coordinator-mcp/policy.ts +26 -1
  133. package/src/crash/sanitize.ts +4 -0
  134. package/src/customization/import.ts +3 -1
  135. package/src/dap/config.ts +31 -11
  136. package/src/dap/defaults.json +1 -1
  137. package/src/debug/crash-diagnostics.ts +2 -1
  138. package/src/debug/report-bundle.ts +19 -0
  139. package/src/debug/system-info.ts +8 -3
  140. package/src/defaults/gjc/extensions/grok-cli-vendor/src/shared/base-url.ts +21 -7
  141. package/src/discovery/agents-md.ts +1 -1
  142. package/src/discovery/helpers.ts +1 -2
  143. package/src/discovery/mcp-compat.ts +120 -17
  144. package/src/edit/apply-patch/index.ts +12 -1
  145. package/src/edit/index.ts +13 -17
  146. package/src/edit/modes/patch.ts +187 -8
  147. package/src/edit/modes/replace.ts +136 -0
  148. package/src/eval/js/context-manager.ts +29 -3
  149. package/src/eval/js/worker-entry.ts +51 -18
  150. package/src/eval/py/executor.ts +14 -4
  151. package/src/eval/py/runner.py +144 -5
  152. package/src/exec/bash-executor.ts +81 -4
  153. package/src/exec/bash-shell-guardian.ts +4 -1
  154. package/src/exec/bash-shell-supervisor.ts +8 -4
  155. package/src/exec/isolated-shell.ts +5 -1
  156. package/src/export/html/index.ts +46 -6
  157. package/src/extensibility/custom-tools/wrapper.ts +3 -1
  158. package/src/extensibility/extensions/loader.ts +8 -1
  159. package/src/extensibility/plugins/marketplace/fetcher.ts +2 -2
  160. package/src/gjc-runtime/gc-runtime.ts +33 -6
  161. package/src/gjc-runtime/launch-tmux.ts +7 -2
  162. package/src/gjc-runtime/launch-worktree.test.ts +148 -0
  163. package/src/gjc-runtime/launch-worktree.ts +101 -14
  164. package/src/gjc-runtime/managed-owner-admission.ts +46 -2
  165. package/src/gjc-runtime/session-resolution.ts +38 -6
  166. package/src/gjc-runtime/session-state-lock.ts +59 -14
  167. package/src/gjc-runtime/state-runtime.ts +23 -19
  168. package/src/hooks/native-skill-hook.ts +14 -11
  169. package/src/internal-urls/docs-index.generated.ts +14 -13
  170. package/src/internal-urls/local-protocol.ts +142 -8
  171. package/src/lsp/index.ts +29 -0
  172. package/src/lsp/workspace-path.ts +23 -0
  173. package/src/migrate/action-planner.ts +57 -0
  174. package/src/migrate/adapters/claude-code.ts +23 -4
  175. package/src/migrate/adapters/codex.ts +22 -4
  176. package/src/migrate/adapters/index.ts +22 -4
  177. package/src/migrate/adapters/opencode.ts +6 -1
  178. package/src/migrate/executor.ts +84 -7
  179. package/src/migrate/report.ts +19 -2
  180. package/src/migrate/types.ts +14 -4
  181. package/src/modes/DESIGN.md +51 -0
  182. package/src/modes/acp/permission-mode.ts +18 -1
  183. package/src/modes/components/assistant-message.ts +55 -1
  184. package/src/modes/components/settings-selector.ts +103 -37
  185. package/src/modes/controllers/command-controller.ts +38 -2
  186. package/src/modes/controllers/plan-mode-controller.ts +17 -7
  187. package/src/modes/controllers/selector-controller.ts +62 -6
  188. package/src/modes/interactive-mode.ts +68 -0
  189. package/src/modes/theme/theme.ts +15 -0
  190. package/src/prompts/tools/debug.md +1 -1
  191. package/src/prompts/tools/read.md +1 -1
  192. package/src/prompts/tools/report-issue.md +13 -0
  193. package/src/prompts/tools/task.md +1 -1
  194. package/src/runtime-credential-selector.ts +2 -2
  195. package/src/runtime-mcp/content-limits.ts +7 -0
  196. package/src/runtime-mcp/manager-pool.test.ts +5 -4
  197. package/src/runtime-mcp/manager.ts +32 -0
  198. package/src/runtime-mcp/oauth-flow.ts +32 -6
  199. package/src/runtime-mcp/plugin-mcp-name-filter.ts +62 -0
  200. package/src/runtime-mcp/render.ts +16 -1
  201. package/src/runtime-mcp/tool-bridge.ts +126 -17
  202. package/src/sdk/broker/broker-exit.ts +8 -5
  203. package/src/sdk/broker/broker.ts +342 -82
  204. package/src/sdk/broker/daemon-entry.ts +338 -116
  205. package/src/sdk/broker/doctor-restart.ts +2 -1
  206. package/src/sdk/broker/ensure.ts +1143 -265
  207. package/src/sdk/broker/hop.ts +274 -0
  208. package/src/sdk/broker/lifecycle-ledger.ts +35 -11
  209. package/src/sdk/broker/lock-host-identity.ts +29 -0
  210. package/src/sdk/broker/session-index.ts +62 -12
  211. package/src/sdk/bus/chat-command-policy.ts +16 -3
  212. package/src/sdk/bus/index.ts +52 -21
  213. package/src/sdk/bus/reconciliation-store.ts +201 -8
  214. package/src/sdk/bus/telegram-daemon-contract.ts +3 -1
  215. package/src/sdk/cli/session-cli.ts +21 -6
  216. package/src/sdk/host/session-runtime.test.ts +118 -23
  217. package/src/sdk/host/session-runtime.ts +352 -47
  218. package/src/sdk/lifecycle/service.ts +1 -0
  219. package/src/sdk/prompt-deadline-flush.ts +78 -5
  220. package/src/sdk/prompt-deadline-manager.ts +68 -14
  221. package/src/sdk/protocol/adapter-validation.ts +53 -11
  222. package/src/sdk/protocol/operation-inventory.generated.json +101 -2
  223. package/src/sdk/reconciliation-extensions.ts +1 -0
  224. package/src/sdk/session-list.ts +1 -0
  225. package/src/sdk/session.ts +114 -61
  226. package/src/session/agent-session.ts +1043 -81
  227. package/src/session/internal/managed-session-scope.ts +126 -39
  228. package/src/session/internal/managed-session-storage.ts +14 -11
  229. package/src/session/internal/native-publish-outcome.ts +5 -1
  230. package/src/session/messages.ts +47 -6
  231. package/src/session/session-manager.ts +236 -14
  232. package/src/session/startup-auth-config.ts +116 -8
  233. package/src/session/streaming-output.ts +262 -4
  234. package/src/session/terminal-abort.ts +14 -2
  235. package/src/session-import/service.ts +1 -0
  236. package/src/skill-state/workflow-mutation-guard.ts +491 -32
  237. package/src/slash-commands/builtin-registry.ts +15 -3
  238. package/src/slash-commands/helpers/credential-switch.ts +10 -5
  239. package/src/slash-commands/helpers/provider-auth-status.ts +456 -0
  240. package/src/task/executor.ts +103 -12
  241. package/src/task/index.ts +389 -175
  242. package/src/tools/ast-edit-write-path.ts +64 -0
  243. package/src/tools/ast-edit.ts +18 -1
  244. package/src/tools/atomic-file-write.ts +46 -15
  245. package/src/tools/auto-generated-guard.ts +3 -0
  246. package/src/tools/bash-allowed-prefixes.ts +153 -5
  247. package/src/tools/bash-interactive.ts +14 -2
  248. package/src/tools/bash.ts +14 -0
  249. package/src/tools/debug.ts +7 -6
  250. package/src/tools/descriptors.test.ts +44 -0
  251. package/src/tools/descriptors.ts +34 -2
  252. package/src/tools/fetch.ts +3 -2
  253. package/src/tools/index.ts +2 -0
  254. package/src/tools/output-meta.ts +23 -2
  255. package/src/tools/python.ts +1 -1
  256. package/src/tools/read.ts +17 -35
  257. package/src/tools/report-issue.ts +184 -0
  258. package/src/tools/subagent-render.ts +114 -12
  259. package/src/tools/subagent.ts +108 -1
  260. package/src/tools/todo-write.ts +41 -3
  261. package/src/tools/tool-catalog.generated.ts +31 -3
  262. package/src/tools/write.ts +35 -3
  263. package/src/utils/commit-message-generator.ts +9 -2
  264. package/src/utils/file-mentions.ts +29 -1
  265. package/src/utils/title-generator.ts +7 -2
  266. package/src/web/scrapers/index.ts +3 -1
  267. package/src/web/scrapers/types.ts +8 -0
  268. package/src/web/scrapers/youtube.ts +3 -2
  269. package/src/web/search/providers/insane.ts +91 -28
  270. package/src/web/search/providers/searxng.ts +62 -10
@@ -1081,6 +1081,8 @@ export interface ModelChainResolutionOptions {
1081
1081
  canonicalSessionId?: string | null;
1082
1082
  credentialSessionId?: string;
1083
1083
  isCredentialUnavailable?: (provider: string) => boolean;
1084
+ /** Read-only auth eligibility for staged profile preflight when no access token can be exposed. */
1085
+ isProviderAuthAvailable?: (provider: string) => boolean;
1084
1086
  signal?: AbortSignal;
1085
1087
  }
1086
1088
 
@@ -1198,7 +1200,7 @@ async function resolveModelChainEntries(
1198
1200
  skips.push({ selector, reason: "credential_unavailable" });
1199
1201
  break;
1200
1202
  }
1201
- if (isAuthenticatedOrKeyless(key)) {
1203
+ if (isAuthenticatedOrKeyless(key) || options?.isProviderAuthAvailable?.(candidate.model.provider)) {
1202
1204
  return { ...candidate, activeIndex, skips };
1203
1205
  }
1204
1206
  skips.push({ selector, reason: "unauthenticated" });
@@ -26,6 +26,7 @@ export const ModelCompatSchema = z.object({
26
26
  sendSessionHeaders: z.boolean().optional(),
27
27
  supportsResponsesSessionAffinity: z.boolean().optional(),
28
28
  supportsServiceTier: z.boolean().optional(),
29
+ supportsUltrafastTier: z.boolean().optional(),
29
30
  supportsMultipleSystemMessages: z.boolean().optional(),
30
31
  supportsReasoningEffort: z.boolean().optional(),
31
32
  reasoningEffortMap: ReasoningEffortMapSchema.optional(),
@@ -68,6 +69,8 @@ export const GJC_MODEL_ASSIGNMENT_TARGET_IDS = [
68
69
  ] as const;
69
70
  export const EffortSchema = z.enum(GJC_MODEL_EFFORT_IDS);
70
71
  const CacheRetentionSchema = z.enum(["none", "short", "long"]);
72
+ const MAX_STREAM_IDLE_TIMEOUT_MS = 2 ** 31 - 1;
73
+ const StreamIdleTimeoutMsSchema = z.number().int().finite().nonnegative().max(MAX_STREAM_IDLE_TIMEOUT_MS);
71
74
 
72
75
  const ThinkingControlModeSchema = z.enum([
73
76
  "effort",
@@ -166,6 +169,7 @@ const ModelDefinitionSchema = z
166
169
  wireModelId: z.string().min(1).optional(),
167
170
  requestTransform: RequestTransformSchema.optional(),
168
171
  cacheRetention: CacheRetentionSchema.optional(),
172
+ streamIdleTimeoutMs: StreamIdleTimeoutMsSchema.optional(),
169
173
  })
170
174
  .strict();
171
175
 
@@ -193,6 +197,7 @@ export const ModelOverrideSchema = z
193
197
  wireModelId: z.string().min(1).optional(),
194
198
  requestTransform: RequestTransformSchema.optional(),
195
199
  cacheRetention: CacheRetentionSchema.optional(),
200
+ streamIdleTimeoutMs: StreamIdleTimeoutMsSchema.optional(),
196
201
  })
197
202
  .strict();
198
203
 
@@ -257,6 +262,7 @@ const ProviderConfigSchema = z
257
262
  */
258
263
  transport: z.literal("pi-native").optional(),
259
264
  cacheRetention: CacheRetentionSchema.optional(),
265
+ streamIdleTimeoutMs: StreamIdleTimeoutMsSchema.optional(),
260
266
  openaiCompat: LocalOpenAICompatSchema.optional(),
261
267
  })
262
268
  .strict();
@@ -1,5 +1,6 @@
1
1
  import type { Effort } from "@gajae-code/ai/model-thinking";
2
2
  import { PET_MODE_IDS, PET_SKIN_IDS, PET_SKINS } from "@gajae-code/tui/components/gajae-pet";
3
+ import { type CredentialPreferenceEntryValue, parseCredentialPreferenceList } from "../session/startup-auth-config";
3
4
  import { TASK_SIMPLE_MODES } from "../task/simple-mode";
4
5
  import { getThinkingLevelMetadata } from "../thinking-metadata";
5
6
  import { DEFAULT_EDIT_MODE_SETTING, EDIT_MODE_SETTINGS, EDIT_MODES, type EditMode } from "../utils/edit-mode";
@@ -214,7 +215,11 @@ interface ArrayDef<T> {
214
215
  type RecordValueDef =
215
216
  | { type: "model-selector-value" }
216
217
  | { type: "string-enum"; values: readonly string[] }
217
- | { type: "credential-selector" };
218
+ | { type: "credential-selector" }
219
+ | { type: "credential-preference-list" };
220
+
221
+ /** A provider's `auth.credentialPreferences` value: one account or a non-empty ordered list of entries. */
222
+ export type CredentialPreferenceSettingValue = string | CredentialPreferenceEntryValue[];
218
223
 
219
224
  interface ConstrainedRecordValueDef {
220
225
  type: "autorouting-selector-value";
@@ -452,6 +457,13 @@ export const SETTINGS_SCHEMA = {
452
457
  valueSchema: { type: "credential-selector" } as const,
453
458
  },
454
459
  "auth.credentialPinStoreIdentity": { type: "string", default: undefined },
460
+ // Ordered soft per-provider OAuth account preferences with optional per-entry usage caps. Global-only, like pins;
461
+ // read at startup.
462
+ "auth.credentialPreferences": {
463
+ type: "record",
464
+ default: {} as Record<string, CredentialPreferenceSettingValue>,
465
+ valueSchema: { type: "credential-preference-list" } as const,
466
+ },
455
467
  "session.directoryMigration": {
456
468
  type: "enum",
457
469
  values: ["copy-retain", "disabled"] as const,
@@ -1470,19 +1482,30 @@ export const SETTINGS_SCHEMA = {
1470
1482
 
1471
1483
  serviceTier: {
1472
1484
  type: "enum",
1473
- values: ["none", "auto", "default", "flex", "scale", "priority", "openai-only", "claude-only"] as const,
1485
+ values: [
1486
+ "none",
1487
+ "auto",
1488
+ "default",
1489
+ "flex",
1490
+ "scale",
1491
+ "priority",
1492
+ "ultrafast",
1493
+ "openai-only",
1494
+ "claude-only",
1495
+ ] as const,
1474
1496
  default: "none",
1475
1497
  ui: {
1476
1498
  tab: "model",
1477
1499
  label: "Service Tier",
1478
1500
  description:
1479
- 'Processing priority hint (none = omit). OpenAI accepts the tier values directly; Anthropic realizes `priority` as `speed: "fast"` on supported Opus models. Scoped values target one family.',
1501
+ 'Processing priority hint (none = omit). OpenAI accepts the tier values directly; ultrafast is a 6x premium tier. Anthropic realizes `priority` as `speed: "fast"` on supported Opus models. Scoped values target one family.',
1480
1502
  options: [
1481
1503
  { value: "none", label: "None", description: "Omit service_tier parameter" },
1482
1504
  { value: "auto", label: "Auto", description: "Use provider default tier selection (OpenAI)" },
1483
1505
  { value: "default", label: "Default", description: "Standard priority processing (OpenAI)" },
1484
1506
  { value: "flex", label: "Flex", description: "Flexible capacity tier when available (OpenAI)" },
1485
1507
  { value: "scale", label: "Scale", description: "Scale Tier credits when available (OpenAI)" },
1508
+ { value: "ultrafast", label: "Ultrafast", description: "Ultrafast processing at a 6x premium (OpenAI)" },
1486
1509
  {
1487
1510
  value: "priority",
1488
1511
  label: "Priority",
@@ -1512,6 +1535,7 @@ export const SETTINGS_SCHEMA = {
1512
1535
  "flex",
1513
1536
  "scale",
1514
1537
  "priority",
1538
+ "ultrafast",
1515
1539
  "openai-only",
1516
1540
  "claude-only",
1517
1541
  ] as const,
@@ -1532,6 +1556,7 @@ export const SETTINGS_SCHEMA = {
1532
1556
  { value: "default", label: "Default", description: "Standard priority processing (OpenAI)" },
1533
1557
  { value: "flex", label: "Flex", description: "Flexible capacity tier when available (OpenAI)" },
1534
1558
  { value: "scale", label: "Scale", description: "Scale Tier credits when available (OpenAI)" },
1559
+ { value: "ultrafast", label: "Ultrafast", description: "Ultrafast processing at a 6x premium (OpenAI)" },
1535
1560
  {
1536
1561
  value: "priority",
1537
1562
  label: "Priority",
@@ -2821,6 +2846,12 @@ export const SETTINGS_SCHEMA = {
2821
2846
  type: "string",
2822
2847
  default: undefined,
2823
2848
  },
2849
+ // xxHash64 hex pin for settingsPath. Only the user/global value is a pin;
2850
+ // a project file cannot authorize the TOML path it names.
2851
+ "shellMinimizer.settingsHash": {
2852
+ type: "string",
2853
+ default: undefined,
2854
+ },
2824
2855
  "shellMinimizer.only": { type: "array", default: EMPTY_STRING_ARRAY },
2825
2856
  "shellMinimizer.except": { type: "array", default: EMPTY_STRING_ARRAY },
2826
2857
  "shellMinimizer.maxCaptureBytes": {
@@ -3004,6 +3035,17 @@ export const SETTINGS_SCHEMA = {
3004
3035
  },
3005
3036
  },
3006
3037
 
3038
+ "reportIssue.enabled": {
3039
+ type: "boolean",
3040
+ default: false,
3041
+ ui: {
3042
+ tab: "tools",
3043
+ label: "Tool issue reporting",
3044
+ description:
3045
+ "Enable the report_issue tool: the model records tool behavior that contradicts the tool's description into the local ~/.gjc/tool-issues.db. Nothing is sent anywhere.",
3046
+ },
3047
+ },
3048
+
3007
3049
  "debug.enabled": {
3008
3050
  type: "boolean",
3009
3051
  default: true,
@@ -3780,6 +3822,17 @@ export const SETTINGS_SCHEMA = {
3780
3822
  },
3781
3823
  },
3782
3824
 
3825
+ "task.compactSubagentPanel": {
3826
+ type: "boolean",
3827
+ default: false,
3828
+ ui: {
3829
+ tab: "tasks",
3830
+ label: "Compact Subagent Panel",
3831
+ description:
3832
+ "Collapse awaited subagents into one summary line (expand tool output to see each one) and refresh only when the summary changes",
3833
+ },
3834
+ },
3835
+
3783
3836
  "task.enableLsp": {
3784
3837
  type: "boolean",
3785
3838
  default: false,
@@ -4358,6 +4411,9 @@ function validRecordValue(valueSchema: RecordValueDef, value: unknown): boolean
4358
4411
  /^account:\S+$/.test(value))
4359
4412
  );
4360
4413
  }
4414
+ if (valueSchema.type === "credential-preference-list") {
4415
+ return parseCredentialPreferenceList(value) !== undefined;
4416
+ }
4361
4417
  return typeof value === "string" && valueSchema.values.includes(value);
4362
4418
  }
4363
4419
 
@@ -4700,6 +4756,7 @@ export interface BashInterceptorRule {
4700
4756
  export interface ShellMinimizerSettings {
4701
4757
  enabled: boolean;
4702
4758
  settingsPath: string | undefined;
4759
+ settingsHash: string | undefined;
4703
4760
  only: string[];
4704
4761
  except: string[];
4705
4762
  maxCaptureBytes: number;