@caupulican/pi-adaptative 0.96.0 → 0.96.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/core/agent-session.d.ts +3 -3
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +17 -6
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/delegation/sanitized-context-fork.d.ts.map +1 -1
  7. package/dist/core/delegation/sanitized-context-fork.js +2 -15
  8. package/dist/core/delegation/sanitized-context-fork.js.map +1 -1
  9. package/dist/core/delegation/worker-retry-policy.d.ts.map +1 -1
  10. package/dist/core/delegation/worker-retry-policy.js +12 -4
  11. package/dist/core/delegation/worker-retry-policy.js.map +1 -1
  12. package/dist/core/foreground-recovery-controller.d.ts +1 -0
  13. package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
  14. package/dist/core/foreground-recovery-controller.js +30 -13
  15. package/dist/core/foreground-recovery-controller.js.map +1 -1
  16. package/dist/core/goal-loop-controller.d.ts +2 -2
  17. package/dist/core/goal-loop-controller.js +2 -2
  18. package/dist/core/goal-loop-controller.js.map +1 -1
  19. package/dist/core/goals/compact-goal-context.d.ts.map +1 -1
  20. package/dist/core/goals/compact-goal-context.js +12 -8
  21. package/dist/core/goals/compact-goal-context.js.map +1 -1
  22. package/dist/core/goals/goal-continuation-controller.d.ts +3 -3
  23. package/dist/core/goals/goal-continuation-controller.js +14 -15
  24. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  25. package/dist/core/goals/goal-continuation-defaults.d.ts +3 -3
  26. package/dist/core/goals/goal-continuation-defaults.js +3 -3
  27. package/dist/core/goals/goal-continuation-defaults.js.map +1 -1
  28. package/dist/core/goals/goal-lifecycle.d.ts +2 -0
  29. package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
  30. package/dist/core/goals/goal-lifecycle.js +22 -0
  31. package/dist/core/goals/goal-lifecycle.js.map +1 -1
  32. package/dist/core/goals/goal-session-controller.d.ts +8 -2
  33. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  34. package/dist/core/goals/goal-session-controller.js +22 -3
  35. package/dist/core/goals/goal-session-controller.js.map +1 -1
  36. package/dist/core/goals/goal-state.d.ts.map +1 -1
  37. package/dist/core/goals/goal-state.js +1 -7
  38. package/dist/core/goals/goal-state.js.map +1 -1
  39. package/dist/core/goals/goal-tool-core.js +1 -1
  40. package/dist/core/goals/goal-tool-core.js.map +1 -1
  41. package/dist/core/message-phase.d.ts +8 -0
  42. package/dist/core/message-phase.d.ts.map +1 -0
  43. package/dist/core/message-phase.js +48 -0
  44. package/dist/core/message-phase.js.map +1 -0
  45. package/dist/core/model-resolver.js +1 -1
  46. package/dist/core/model-resolver.js.map +1 -1
  47. package/dist/core/models/perf-profile.d.ts +1 -0
  48. package/dist/core/models/perf-profile.d.ts.map +1 -1
  49. package/dist/core/models/perf-profile.js +12 -3
  50. package/dist/core/models/perf-profile.js.map +1 -1
  51. package/dist/core/package-manager.d.ts +1 -1
  52. package/dist/core/package-manager.d.ts.map +1 -1
  53. package/dist/core/package-manager.js +2 -21
  54. package/dist/core/package-manager.js.map +1 -1
  55. package/dist/core/settings-manager.d.ts +5 -3
  56. package/dist/core/settings-manager.d.ts.map +1 -1
  57. package/dist/core/settings-manager.js +44 -12
  58. package/dist/core/settings-manager.js.map +1 -1
  59. package/dist/core/tools/goal.js +2 -2
  60. package/dist/core/tools/goal.js.map +1 -1
  61. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  62. package/dist/modes/interactive/components/assistant-message.js +5 -3
  63. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  64. package/dist/modes/interactive/components/custom-message.js +7 -2
  65. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  66. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  67. package/dist/modes/interactive/components/settings-selector.js +2 -2
  68. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  69. package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -1
  70. package/dist/modes/interactive/interactive-event-controller.js +9 -0
  71. package/dist/modes/interactive/interactive-event-controller.js.map +1 -1
  72. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  73. package/dist/modes/interactive/session-flow-commands.js +9 -2
  74. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  75. package/docs/sessions.md +1 -1
  76. package/docs/tool-repair.md +4 -3
  77. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  78. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  79. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  80. package/examples/extensions/sandbox/package-lock.json +2 -2
  81. package/examples/extensions/sandbox/package.json +1 -1
  82. package/examples/extensions/with-deps/package-lock.json +2 -2
  83. package/examples/extensions/with-deps/package.json +1 -1
  84. package/npm-shrinkwrap.json +12 -12
  85. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"settings-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThinkingLevel } from \"@caupulican/pi-agent-core\";\nimport type { Transport } from \"@caupulican/pi-ai\";\nimport {\n\tContainer,\n\tgetCapabilities,\n\tgetKeybindings,\n\tInput,\n\ttype SelectItem,\n\tSelectList,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@caupulican/pi-tui\";\nimport { type CostGuardSettings, DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD } from \"../../../core/cost-guard.ts\";\nimport { DEFAULT_WORKER_FLEET_LIMITS } from \"../../../core/delegation/worker-fleet-limits.ts\";\nimport { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from \"../../../core/http-dispatcher.ts\";\nimport { DEFAULT_AUTO_LEARN_SETTINGS, resolveAutoLearnSettings } from \"../../../core/learning/auto-learn-settings.ts\";\nimport type {\n\tAutoLearnSettings,\n\tAutonomyMode,\n\tAutonomySettings,\n\tContextCurationSettings,\n\tContextPromptEnforcementSettings,\n\tLearningPolicySettings,\n\tMemoryRetrievalSettings,\n\tModelCapabilitySettings,\n\tModelRouterSettings,\n\tResearchLaneSettings,\n\tSelfModificationSettings,\n\tSettingsScope,\n\tWarningSettings,\n\tWorkerDelegationSettings,\n} from \"../../../core/settings-manager.ts\";\nimport {\n\tDEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE,\n\tDEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS,\n\tDEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES,\n\tDEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS,\n\tDEFAULT_AUTONOMY_MAX_STALL_TURNS,\n\tDEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED,\n\tDEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS,\n\tDEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD,\n\tDEFAULT_LEARNING_POLICY_ENABLED,\n\tDEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS,\n\tDEFAULT_RESEARCH_LANE_ENABLED,\n\tDEFAULT_RESEARCH_LANE_IDLE_DELAY_MS,\n\tDEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION,\n\tDEFAULT_RESEARCH_LANE_MAX_USD,\n\tDEFAULT_RESEARCH_LANE_MAX_WALL_CLOCK_MS,\n\tDEFAULT_WORKER_DELEGATION_ENABLED,\n\tDEFAULT_WORKER_DELEGATION_MAX_CONCURRENT,\n\tDEFAULT_WORKER_DELEGATION_MAX_USD,\n\tDEFAULT_WORKER_DELEGATION_MAX_WALL_CLOCK_MS,\n\tDEFAULT_WORKER_DELEGATION_WRITE_ENABLED,\n\tMAX_WORKER_DELEGATION_MAX_USD,\n} from \"../../../core/settings-manager.ts\";\nimport { getSelectListTheme, getSettingsListTheme, theme } from \"../theme/theme.ts\";\nimport { THINKING_LEVEL_DESCRIPTIONS } from \"../thinking-level-descriptions.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\nimport { keyDisplayText } from \"./keybinding-hints.ts\";\nimport { COMPACT_SELECTOR_LIST_LAYOUT, SelectorHeading } from \"./selector-list.ts\";\n\nconst AUTO_LEARN_CUSTOM_MODEL_VALUE = \"__custom_auto_learn_model__\";\nconst MODEL_ROUTER_UNSET_MODEL_VALUE = \"__unset_model_router_model__\";\nconst MODEL_ROUTER_INHERIT_THINKING_VALUE = \"__inherit_model_router_thinking__\";\nconst MODEL_ROUTER_INHERIT_THINKING_LABEL = \"(inherit)\";\n\nconst AUTONOMY_MODES: AutonomyMode[] = [\"off\", \"safe\", \"balanced\", \"full\"];\nconst AUTONOMY_GOAL_CONTINUE_TURN_VALUES = [\"0\", \"1\", \"3\", \"5\", \"10\", \"20\"];\nconst AUTONOMY_MAX_STALL_TURN_VALUES = [\"0\", \"5\", \"10\", \"20\", \"30\", \"50\", \"100\"];\nconst AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTE_VALUES = [\"0\", \"15\", \"30\", \"60\", \"120\", \"240\", \"480\", \"1440\"];\nconst AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS_VALUES = [\"0\", \"250\", \"1000\", \"5000\", \"30000\", \"60000\"];\n\nconst RESEARCH_LANE_MAX_USD_VALUES = [\"0.05\", \"0.1\", \"0.25\", \"0.5\", \"1\", \"2\"];\nconst RESEARCH_LANE_MAX_WALL_CLOCK_MS_VALUES = [\"0\", \"30000\", \"60000\", \"120000\", \"300000\", \"600000\"];\nconst RESEARCH_LANE_IDLE_DELAY_MS_VALUES = [\"0\", \"250\", \"1000\", \"5000\", \"30000\", \"60000\"];\nconst RESEARCH_LANE_MAX_RUNS_PER_SESSION_VALUES = [\"0\", \"1\", \"3\", \"5\", \"10\", \"25\", \"50\"];\n\nconst CONTEXT_POLICY_PRESERVE_RECENT_MESSAGES_VALUES = [\"2\", \"4\", \"8\", \"16\", \"24\", \"32\"];\nconst CONTEXT_POLICY_MIN_CHARS_VALUES = [\"300\", \"600\", \"1200\", \"2400\", \"4800\"];\n\nconst CONTEXT_POLICY_ENFORCEMENT_DEFAULTS = {\n\tenabled: false,\n\tpreserveRecentMessages: 24,\n\tminChars: 1200,\n} as const;\n\nconst CONTEXT_MEMORY_RETRIEVAL_MAX_RESULTS_VALUES = [\"1\", \"3\", \"5\", \"10\", \"20\"];\n\nconst CONTEXT_MEMORY_RETRIEVAL_DEFAULTS = {\n\tenabled: true,\n\tmaxResults: 5,\n\tincludeInPrompt: true,\n\tallowExternalEgress: false,\n} as const;\n\nfunction booleanSettingValue(value: boolean | undefined, defaultValue = false): string {\n\treturn (value ?? defaultValue) ? \"true\" : \"false\";\n}\n\nfunction optionalStringValue(value: string | undefined, fallback = \"(not set)\"): string {\n\tconst trimmed = value?.trim();\n\treturn trimmed && trimmed.length > 0 ? trimmed : fallback;\n}\n\nfunction routerTierValue(\n\tmodel: string | undefined,\n\tthinking: ThinkingLevel | undefined,\n\tfallback = \"(not set)\",\n): string {\n\treturn `${optionalStringValue(model, fallback)} · thinking ${thinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL}`;\n}\n\nfunction normalizeOptionalString(value: string): string | undefined {\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction numberSettingValue(value: number | undefined, defaultValue: number): string {\n\treturn String(value ?? defaultValue);\n}\n\nfunction autoLearnModelValue(settings: AutoLearnSettings): string {\n\treturn optionalStringValue(settings.model, DEFAULT_AUTO_LEARN_SETTINGS.model);\n}\n\nfunction selfModificationSummary(settings: SelfModificationSettings): string {\n\tif (!(settings.enabled ?? false)) return \"disabled\";\n\tconst hasPath =\n\t\tBoolean(settings.sourcePath?.trim()) ||\n\t\t(Array.isArray(settings.sourcePaths) && settings.sourcePaths.some((candidate) => Boolean(candidate?.trim())));\n\treturn hasPath ? \"enabled\" : \"enabled (missing path)\";\n}\n\nfunction costGuardSummary(settings: CostGuardSettings): string {\n\tif (!settings.enabled) return \"disabled\";\n\treturn `${settings.action} at $${settings.maxTurnUsd.toFixed(2)}/turn`;\n}\n\nfunction autonomyModeValue(settings: AutonomySettings): AutonomyMode {\n\treturn settings.mode && AUTONOMY_MODES.includes(settings.mode) ? settings.mode : \"off\";\n}\n\nfunction autonomySummary(settings: AutonomySettings): string {\n\tconst mode = autonomyModeValue(settings);\n\tconst turns = settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS;\n\tconst stall = settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS;\n\tconst autoContinue = settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE;\n\tconst modeLabel = mode === \"full\" ? \"standing autonomy\" : mode;\n\treturn `${modeLabel}, ${turns === 0 ? \"unbounded turns\" : `${turns} turns`}, stall ${stall}, auto ${autoContinue ? \"on\" : \"off\"}`;\n}\n\nfunction autonomyGoalContinueTurnsValue(settings: AutonomySettings): string {\n\treturn String(settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS);\n}\n\nfunction autonomyMaxStallTurnsValue(settings: AutonomySettings): string {\n\treturn String(settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS);\n}\n\nfunction autonomyGoalContinueMaxWallClockMinutesValue(settings: AutonomySettings): string {\n\treturn String(settings.goalContinueMaxWallClockMinutes ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES);\n}\n\nfunction autonomyGoalAutoContinueValue(settings: AutonomySettings): string {\n\treturn String(settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE);\n}\n\nfunction autonomyGoalAutoContinueDelayMsValue(settings: AutonomySettings): string {\n\treturn String(settings.goalAutoContinueDelayMs ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS);\n}\n\nfunction researchLaneSummary(settings: ResearchLaneSettings): string {\n\tif (!(settings.enabled ?? DEFAULT_RESEARCH_LANE_ENABLED)) return \"disabled\";\n\tconst maxUsd = settings.maxUsd ?? DEFAULT_RESEARCH_LANE_MAX_USD;\n\tconst maxRuns = settings.maxRunsPerSession ?? DEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION;\n\treturn `enabled ($${maxUsd}/pass, ${maxRuns} runs/session)`;\n}\n\nfunction contextCurationSummary(settings: ContextCurationSettings): string {\n\tif (!settings.enabled) return \"disabled\";\n\treturn `on · ${settings.model ?? \"no model\"} · ${settings.maxJobsPerTurn ?? 4} jobs/turn`;\n}\n\nfunction learningPolicySummary(settings: LearningPolicySettings): string {\n\tif (!(settings.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED)) return \"disabled (legacy direct-apply)\";\n\tconst autoApply = settings.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED;\n\tconst confidence = settings.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD;\n\treturn `on · auto-apply ${autoApply ? \"on\" : \"off\"} · conf>=${confidence}`;\n}\n\nfunction modelCapabilitySummary(settings: ModelCapabilitySettings): string {\n\tconst mode = settings.mode ?? \"auto\";\n\treturn mode === \"auto\" ? \"auto (derived from the model's context window)\" : mode;\n}\n\nfunction workerDelegationSummary(settings: WorkerDelegationSettings): string {\n\tif (!(settings.enabled ?? DEFAULT_WORKER_DELEGATION_ENABLED)) return \"disabled\";\n\tconst maxUsd = settings.maxUsd ?? DEFAULT_WORKER_DELEGATION_MAX_USD;\n\treturn maxUsd > 0 ? `enabled ($${maxUsd}/worker)` : \"enabled (unbounded)\";\n}\n\nfunction autoLearnSummary(settings: AutoLearnSettings, autonomyMode: AutonomyMode): string {\n\tconst effective = resolveAutoLearnSettings(autonomyMode, settings);\n\treturn effective.enabled ? `enabled (${effective.model})` : \"disabled\";\n}\n\nfunction contextPolicyEnforcementSummary(settings: ContextPromptEnforcementSettings): string {\n\tif (!(settings.enabled ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.enabled)) return \"disabled\";\n\tconst preserve = settings.preserveRecentMessages ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.preserveRecentMessages;\n\tconst minChars = settings.minChars ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.minChars;\n\treturn `enabled (preserve ${preserve}, min ${minChars} chars)`;\n}\n\nfunction contextMemoryRetrievalSummary(settings: MemoryRetrievalSettings): string {\n\tconst externalEgress = settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress;\n\tif (!(settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled)) {\n\t\treturn `disabled (${externalEgress ? \"external consent on\" : \"external off\"})`;\n\t}\n\tconst maxResults = settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults;\n\tconst includeInPrompt = settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt;\n\treturn `enabled (max ${maxResults}${includeInPrompt ? \", in prompt\" : \"\"}, ${externalEgress ? \"external on\" : \"local only\"})`;\n}\n\nfunction modelRouterSummary(settings: ModelRouterSettings): string {\n\tconst state = settings.enabled ? \"enabled\" : \"disabled\";\n\tconst gate = settings.fitnessGate ? \"gate on\" : \"gate off\";\n\treturn `${state} · ${gate} · cheap: ${optionalStringValue(settings.cheapModel)} · medium: ${optionalStringValue(settings.mediumModel)} · expensive: ${optionalStringValue(settings.expensiveModel)} · learn: ${optionalStringValue(settings.learningModel, \"active\")}`;\n}\n\nfunction buildAutoLearnModelOptions(\n\tsettings: AutoLearnSettings,\n\tconfiguredModelOptions: SelectItem[] | undefined,\n\tcurrentModelPattern: string | undefined,\n): SelectItem[] {\n\tconst currentValue = autoLearnModelValue(settings);\n\tconst options: SelectItem[] = [\n\t\t{\n\t\t\tvalue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\tlabel: \"active\",\n\t\t\tdescription: currentModelPattern\n\t\t\t\t? `Use the current session model (${currentModelPattern})`\n\t\t\t\t: \"Use the current session model\",\n\t\t},\n\t];\n\tconst seen = new Set(options.map((option) => option.value));\n\n\tfor (const option of configuredModelOptions ?? []) {\n\t\tif (seen.has(option.value)) continue;\n\t\toptions.push(option);\n\t\tseen.add(option.value);\n\t}\n\n\tif (currentValue !== DEFAULT_AUTO_LEARN_SETTINGS.model && !seen.has(currentValue)) {\n\t\toptions.push({\n\t\t\tvalue: currentValue,\n\t\t\tlabel: currentValue,\n\t\t\tdescription: \"Current custom setting\",\n\t\t});\n\t\tseen.add(currentValue);\n\t}\n\n\toptions.push({\n\t\tvalue: AUTO_LEARN_CUSTOM_MODEL_VALUE,\n\t\tlabel: \"Manual / custom…\",\n\t\tdescription: \"Type a model pattern not listed above\",\n\t});\n\n\treturn options;\n}\n\nfunction buildModelRouterRoleModelOptions(options: {\n\tcurrentValue: string | undefined;\n\tconfiguredModelOptions: SelectItem[] | undefined;\n\tcurrentModelPattern: string | undefined;\n\tincludeActive: boolean;\n\tunsetDescription?: string;\n}): SelectItem[] {\n\tconst modelOptions: SelectItem[] = [];\n\tconst seen = new Set<string>();\n\n\tif (options.includeActive) {\n\t\tmodelOptions.push({\n\t\t\tvalue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\tlabel: \"active\",\n\t\t\tdescription: options.currentModelPattern\n\t\t\t\t? `Use the current session model (${options.currentModelPattern})`\n\t\t\t\t: \"Use the current session model\",\n\t\t});\n\t\tseen.add(DEFAULT_AUTO_LEARN_SETTINGS.model);\n\t} else {\n\t\tmodelOptions.push({\n\t\t\tvalue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\tlabel: \"(unset)\",\n\t\t\tdescription: options.unsetDescription ?? \"Clear this model setting\",\n\t\t});\n\t\tseen.add(MODEL_ROUTER_UNSET_MODEL_VALUE);\n\t}\n\n\tfor (const option of options.configuredModelOptions ?? []) {\n\t\tif (seen.has(option.value)) continue;\n\t\tmodelOptions.push(option);\n\t\tseen.add(option.value);\n\t}\n\n\tconst currentValue = options.currentValue?.trim();\n\tif (currentValue && !seen.has(currentValue)) {\n\t\tmodelOptions.push({\n\t\t\tvalue: currentValue,\n\t\t\tlabel: currentValue,\n\t\t\tdescription: \"Current custom setting\",\n\t\t});\n\t\tseen.add(currentValue);\n\t}\n\n\tmodelOptions.push({\n\t\tvalue: AUTO_LEARN_CUSTOM_MODEL_VALUE,\n\t\tlabel: \"Manual / custom…\",\n\t\tdescription: \"Type a model pattern not listed above\",\n\t});\n\n\treturn modelOptions;\n}\n\nfunction buildModelRouterThinkingOptions(\n\tinheritDescription: string,\n\tavailableLevels: ThinkingLevel[] = Object.keys(THINKING_LEVEL_DESCRIPTIONS) as ThinkingLevel[],\n): SelectItem[] {\n\treturn [\n\t\t{\n\t\t\tvalue: MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\tlabel: MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\tdescription: inheritDescription,\n\t\t},\n\t\t...availableLevels.map((level) => ({\n\t\t\tvalue: level,\n\t\t\tlabel: level,\n\t\t\tdescription: THINKING_LEVEL_DESCRIPTIONS[level],\n\t\t})),\n\t];\n}\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tcostGuard: CostGuardSettings;\n\tcostGuardScope?: SettingsScope;\n\tshowImages: boolean;\n\timageWidthCells: number;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\tsteeringMode: \"all\" | \"one-at-a-time\";\n\tfollowUpMode: \"all\" | \"one-at-a-time\";\n\ttransport: Transport;\n\thttpIdleTimeoutMs: number;\n\tthinkingLevel: ThinkingLevel;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tcurrentTheme: string;\n\tavailableThemes: string[];\n\thideThinkingBlock: boolean;\n\tprojectContextFiles: \"off\" | \"on-demand\";\n\tprojectContextFilesScope?: SettingsScope;\n\tcollapseChangelog: boolean;\n\tenableInstallTelemetry: boolean;\n\tdoubleEscapeAction: \"fork\" | \"tree\" | \"none\";\n\ttreeFilterMode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tshowHardwareCursor: boolean;\n\teditorPaddingX: number;\n\tautocompleteMaxVisible: number;\n\tquietStartup: boolean;\n\tclearOnShrink: boolean;\n\tshowTerminalProgress: boolean;\n\twarnings: WarningSettings;\n\tselfModification: {\n\t\tenabled: boolean;\n\t\tsourcePath?: string;\n\t\tsourcePaths?: string[];\n\t};\n\tselfModificationScope?: SettingsScope;\n\tautonomy: AutonomySettings;\n\tautonomyScope?: SettingsScope;\n\tresearchLane: ResearchLaneSettings;\n\tresearchLaneScope?: SettingsScope;\n\tworkerDelegation: WorkerDelegationSettings;\n\tcontextCuration: ContextCurationSettings;\n\tcontextCurationScope?: SettingsScope;\n\tlearningPolicy: LearningPolicySettings;\n\tlearningPolicyScope?: SettingsScope;\n\tmodelCapability: ModelCapabilitySettings;\n\tmodelCapabilityScope?: SettingsScope;\n\tworkerDelegationScope?: SettingsScope;\n\tmodelRouter: ModelRouterSettings;\n\tmodelRouterScope?: SettingsScope;\n\tautoLearn: AutoLearnSettings;\n\tautoLearnScope?: SettingsScope;\n\tcontextPolicyEnforcement: ContextPromptEnforcementSettings;\n\tcontextPolicyEnforcementScope?: SettingsScope;\n\tcontextMemoryRetrieval: MemoryRetrievalSettings;\n\tcontextMemoryRetrievalScope?: SettingsScope;\n\tcurrentModelPattern?: string;\n\tautoLearnModelOptions?: SelectItem[];\n\t/** Resolve the concrete thinking surface for a configured model pattern. */\n\tresolveModelThinkingLevels?: (modelPattern: string | undefined) => ThinkingLevel[] | undefined;\n\tactiveProfileName?: string;\n\tprofileOptions?: SelectItem[];\n\texternalResourceRoots?: string[];\n\ttrustedResourceRoots?: string[];\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonCostGuardChange: (settings: CostGuardSettings, scope: SettingsScope) => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonImageWidthCellsChange: (width: number) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonFollowUpModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonHttpIdleTimeoutMsChange: (timeoutMs: number) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonProjectContextFilesChange: (mode: \"off\" | \"on-demand\", scope: SettingsScope) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonEnableInstallTelemetryChange: (enabled: boolean) => void;\n\tonDoubleEscapeActionChange: (action: \"fork\" | \"tree\" | \"none\") => void;\n\tonTreeFilterModeChange: (mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\") => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonShowTerminalProgressChange: (enabled: boolean) => void;\n\tonWarningsChange: (warnings: WarningSettings) => void;\n\tonSelfModificationChange: (settings: SelfModificationSettings, scope: SettingsScope) => void;\n\tonAutonomyChange: (settings: AutonomySettings, scope: SettingsScope) => void;\n\tonResearchLaneChange: (settings: ResearchLaneSettings, scope: SettingsScope) => void;\n\tonWorkerDelegationChange: (settings: WorkerDelegationSettings, scope: SettingsScope) => void;\n\tonContextCurationChange: (settings: ContextCurationSettings, scope: SettingsScope) => void;\n\tonLearningPolicyChange: (settings: LearningPolicySettings, scope: SettingsScope) => void;\n\tonModelCapabilityChange: (settings: ModelCapabilitySettings, scope: SettingsScope) => void;\n\tonModelRouterChange: (settings: ModelRouterSettings, scope: SettingsScope) => void;\n\tonAutoLearnChange: (settings: AutoLearnSettings, scope: SettingsScope) => void;\n\tonContextPolicyEnforcementChange: (settings: ContextPromptEnforcementSettings, scope: SettingsScope) => void;\n\tonContextMemoryRetrievalChange: (settings: MemoryRetrievalSettings, scope: SettingsScope) => void;\n\tonResourcesHubAction?: (action: string) => void;\n\tonCancel: () => void;\n}\n\nclass TextInputSubmenu extends Container {\n\tprivate input: Input;\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\tcurrentValue: string,\n\t\tonSubmit: (value: string) => void,\n\t\tonCancel: () => void,\n\t\temptyHint = \"empty clears the setting\",\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(title, description));\n\n\t\tthis.input = new Input();\n\t\tthis.input.setValue(currentValue);\n\t\tthis.input.focused = true;\n\t\tthis.input.onSubmit = onSubmit;\n\t\tthis.input.onEscape = onCancel;\n\t\tthis.addChild(this.input);\n\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", ` Enter to save · Esc to go back · ${emptyHint}`), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.input.handleInput(data);\n\t}\n}\n\nclass ModelSelectionSubmenu extends Container {\n\tprivate searchInput: Input;\n\tprivate selectList: SelectList;\n\tprivate customInput: TextInputSubmenu | null = null;\n\n\tconstructor(\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tlabels: {\n\t\t\ttitle: string;\n\t\t\tdescription: string;\n\t\t\tcustomTitle: string;\n\t\t\tcustomDescription: string;\n\t\t\tcustomEmptyHint: string;\n\t\t\tcustomEmptyValue: string | undefined;\n\t\t} = {\n\t\t\ttitle: \"Auto Learn Scavenger Model\",\n\t\t\tdescription:\n\t\t\t\t\"Choose active or a model from currently configured subscription/API accounts. Type to filter; choose manual for a custom pattern.\",\n\t\t\tcustomTitle: \"Custom Auto Learn Model\",\n\t\t\tcustomDescription: 'Enter \"active\" or a provider/model pattern like \"openai/gpt-5.4\".',\n\t\t\tcustomEmptyHint: 'empty uses \"active\"',\n\t\t\tcustomEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t},\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(labels.title, labels.description));\n\n\t\tthis.searchInput = new Input();\n\t\tthis.searchInput.focused = true;\n\t\tthis.addChild(this.searchInput);\n\t\tthis.addChild(new Spacer(1));\n\n\t\tthis.selectList = new SelectList(\n\t\t\toptions,\n\t\t\tMath.min(options.length, 10),\n\t\t\tgetSelectListTheme(),\n\t\t\tCOMPACT_SELECTOR_LIST_LAYOUT,\n\t\t);\n\n\t\tconst currentIndex = options.findIndex((option) => option.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tif (item.value === AUTO_LEARN_CUSTOM_MODEL_VALUE) {\n\t\t\t\tthis.customInput = new TextInputSubmenu(\n\t\t\t\t\tlabels.customTitle,\n\t\t\t\t\tlabels.customDescription,\n\t\t\t\t\tcurrentValue === labels.customEmptyValue ? \"\" : currentValue,\n\t\t\t\t\t(value) => {\n\t\t\t\t\t\tonSelect(normalizeOptionalString(value) ?? labels.customEmptyValue ?? \"\");\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.customInput = null;\n\t\t\t\t\t},\n\t\t\t\t\tlabels.customEmptyHint,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(item.value);\n\t\t};\n\t\tthis.selectList.onCancel = onCancel;\n\t\tthis.addChild(this.selectList);\n\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Type to filter · Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (this.customInput) {\n\t\t\tthis.customInput.handleInput(data);\n\t\t\treturn;\n\t\t}\n\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(data, \"tui.select.up\") || kb.matches(data, \"tui.select.down\")) {\n\t\t\tthis.selectList.handleInput(data);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.confirm\") || kb.matches(data, \"tui.select.cancel\")) {\n\t\t\tthis.selectList.handleInput(data);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.searchInput.handleInput(data);\n\t\tthis.selectList.setFilter(this.searchInput.getValue());\n\t}\n\n\trender(width: number): string[] {\n\t\treturn this.customInput ? this.customInput.render(width) : super.render(width);\n\t}\n\n\tinvalidate(): void {\n\t\tsuper.invalidate();\n\t\tthis.customInput?.invalidate?.();\n\t}\n}\n\nclass SettingsListSubmenu extends Container {\n\tprivate settingsList!: SettingsList;\n\n\tprotected mountSettingsList(\n\t\titems: SettingItem[],\n\t\tonChange: (id: string, newValue: string) => void,\n\t\tonCancel: () => void,\n\t): void {\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\tMath.min(items.length, 10),\n\t\t\tgetSettingsListTheme(),\n\t\t\tonChange,\n\t\t\tonCancel,\n\t\t);\n\t\tthis.addChild(this.settingsList);\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.settingsList.handleInput(data);\n\t}\n}\n\nclass CostGuardSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: CostGuardSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: CostGuardSettings,\n\t\tonChange: (settings: CostGuardSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tthis.mountSettingsList(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-scope\",\n\t\t\t\t\tlabel: \"Save scope\",\n\t\t\t\t\tdescription: \"Save this foreground cost guard globally or in the current project's .pi/settings.json\",\n\t\t\t\t\tcurrentValue: this.scope,\n\t\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-enabled\",\n\t\t\t\t\tlabel: \"Enabled\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"Explicit opt-in. A saved threshold alone remains dormant and never limits or labels a turn.\",\n\t\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-max-turn-usd\",\n\t\t\t\t\tlabel: \"Maximum USD per turn\",\n\t\t\t\t\tdescription: \"Projected foreground plus current-turn background spend; zero keeps the guard inactive\",\n\t\t\t\t\tcurrentValue: String(this.state.maxTurnUsd),\n\t\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\t\"Foreground Cost Guard Threshold\",\n\t\t\t\t\t\t\t\"Enter a nonnegative finite USD projection threshold. The Enabled switch is still mandatory.\",\n\t\t\t\t\t\t\tString(this.state.maxTurnUsd),\n\t\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t\tconst maxTurnUsd = Number(value.trim());\n\t\t\t\t\t\t\t\tif (!Number.isFinite(maxTurnUsd) || maxTurnUsd < 0) {\n\t\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxTurnUsd };\n\t\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\t\tdone(String(maxTurnUsd));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\t\"nonnegative finite number; invalid input keeps the current value\",\n\t\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-action\",\n\t\t\t\t\tlabel: \"Action\",\n\t\t\t\t\tdescription: \"warn only, or reduce reasoning one supported level for the imminent request\",\n\t\t\t\t\tcurrentValue: this.state.action,\n\t\t\t\t\tvalues: [\"warn\", \"downgrade\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"cost-guard-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cost-guard-enabled\":\n\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tenabled: newValue === \"true\",\n\t\t\t\t\t\t\tmaxTurnUsd:\n\t\t\t\t\t\t\t\tnewValue === \"true\" && this.state.maxTurnUsd <= 0\n\t\t\t\t\t\t\t\t\t? DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD\n\t\t\t\t\t\t\t\t\t: this.state.maxTurnUsd,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cost-guard-action\":\n\t\t\t\t\t\tthis.state = { ...this.state, action: newValue === \"downgrade\" ? \"downgrade\" : \"warn\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nconst PROJECT_CONTEXT_SCOPE_VALUES = [\"this-directory\", \"this-project\", \"all-projects\"] as const;\ntype ProjectContextScopeValue = (typeof PROJECT_CONTEXT_SCOPE_VALUES)[number];\n\nfunction projectContextScopeValue(scope: SettingsScope | undefined): ProjectContextScopeValue {\n\tif (scope === \"project\") return \"this-project\";\n\tif (scope === \"global\") return \"all-projects\";\n\treturn \"this-directory\";\n}\n\nfunction projectContextScopeFromValue(value: string): SettingsScope {\n\tif (value === \"this-project\") return \"project\";\n\tif (value === \"all-projects\") return \"global\";\n\treturn \"directoryProfile\";\n}\n\nfunction projectContextFilesSummary(mode: \"off\" | \"on-demand\", scope: SettingsScope | undefined): string {\n\tif (mode !== \"on-demand\") return \"global only\";\n\tif (scope === \"project\") return \"this project\";\n\tif (scope === \"global\") return \"all projects\";\n\treturn \"this directory\";\n}\n\nclass ProjectContextFilesSubmenu extends SettingsListSubmenu {\n\tprivate mode: \"off\" | \"on-demand\";\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tmode: \"off\" | \"on-demand\",\n\t\tonChange: (mode: \"off\" | \"on-demand\", scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"directoryProfile\",\n\t) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.scope = scope;\n\t\tthis.mountSettingsList(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: \"project-context-scope\",\n\t\t\t\t\tlabel: \"Save scope\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"this-directory: this folder only (user overlay). this-project: .pi/settings.json. all-projects: every repo.\",\n\t\t\t\t\tcurrentValue: projectContextScopeValue(this.scope),\n\t\t\t\t\tvalues: [...PROJECT_CONTEXT_SCOPE_VALUES],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"project-context-load\",\n\t\t\t\t\tlabel: \"Load\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"global-only uses ~/.pi/agent/AGENTS.md. on-demand also lists this project's AGENTS.md for the agent to read.\",\n\t\t\t\t\tcurrentValue: this.mode === \"on-demand\" ? \"on-demand\" : \"global-only\",\n\t\t\t\t\tvalues: [\"global-only\", \"on-demand\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t(id, newValue) => {\n\t\t\t\tif (id === \"project-context-scope\") {\n\t\t\t\t\tthis.scope = projectContextScopeFromValue(newValue);\n\t\t\t\t\tonChange(this.mode, this.scope);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.mode = newValue === \"on-demand\" ? \"on-demand\" : \"off\";\n\t\t\t\tonChange(this.mode, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass SelfModificationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: SelfModificationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: SelfModificationSettings,\n\t\tonChange: (settings: SelfModificationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings, enabled: settings.enabled ?? false };\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"self-modification-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this self-modification configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Allow agents to modify Pi's own source/harness only when explicitly tasked\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification-source-path\",\n\t\t\t\tlabel: \"Source path\",\n\t\t\t\tdescription: \"Path to the pi-adaptative source checkout agents may edit for self-evolution\",\n\t\t\t\tcurrentValue: optionalStringValue(this.state.sourcePath),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Pi-adaptative Source Path\",\n\t\t\t\t\t\t\"Set the source checkout path used by self-evolution guardrails. Empty clears it.\",\n\t\t\t\t\t\tthis.state.sourcePath ?? \"\",\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst sourcePath = normalizeOptionalString(value);\n\t\t\t\t\t\t\tthis.state = { ...this.state, sourcePath };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(optionalStringValue(sourcePath));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"self-modification-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"self-modification-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass AutonomySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: AutonomySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: AutonomySettings,\n\t\tonChange: (settings: AutonomySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\tmode: autonomyModeValue(settings),\n\t\t\tmaxStallTurns: settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS,\n\t\t\tgoalContinueTurns: settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS,\n\t\t\tgoalContinueMaxWallClockMinutes:\n\t\t\t\tsettings.goalContinueMaxWallClockMinutes ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES,\n\t\t\tgoalAutoContinue: settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE,\n\t\t\tgoalAutoContinueDelayMs: settings.goalAutoContinueDelayMs ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autonomy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this autonomy preset globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-mode\",\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"One preset for learning and root-session reflection cues: off, safe, balanced, or standing autonomy\",\n\t\t\t\tcurrentValue: autonomyModeValue(this.state),\n\t\t\t\tvalues: AUTONOMY_MODES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-auto-continue\",\n\t\t\t\tlabel: \"Goal auto-continue\",\n\t\t\t\tdescription: \"Continue an active goal whenever Pi becomes idle until a real terminal condition\",\n\t\t\t\tcurrentValue: autonomyGoalAutoContinueValue(this.state),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-continue-turns\",\n\t\t\t\tlabel: \"Goal turns\",\n\t\t\t\tdescription: \"Optional continuation prompt limit; 0 is unbounded like Codex\",\n\t\t\t\tcurrentValue: autonomyGoalContinueTurnsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_CONTINUE_TURN_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-max-stall-turns\",\n\t\t\t\tlabel: \"Goal stall limit\",\n\t\t\t\tdescription: \"Maximum no-progress rounds before Pi stops continuing and asks the user\",\n\t\t\t\tcurrentValue: autonomyMaxStallTurnsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_MAX_STALL_TURN_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-wall-clock-minutes\",\n\t\t\t\tlabel: \"Goal max minutes\",\n\t\t\t\tdescription: \"Wall-clock budget per goal continuation loop; 0 disables the time budget\",\n\t\t\t\tcurrentValue: autonomyGoalContinueMaxWallClockMinutesValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTE_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-auto-continue-delay-ms\",\n\t\t\t\tlabel: \"Goal delay ms\",\n\t\t\t\tdescription: \"Delay before idle auto-continuation starts; 0 starts immediately after idle\",\n\t\t\t\tcurrentValue: autonomyGoalAutoContinueDelayMsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autonomy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-mode\":\n\t\t\t\t\t\tthis.state = { ...this.state, mode: newValue as AutonomyMode };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-auto-continue\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalAutoContinue: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-continue-turns\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalContinueTurns: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-max-stall-turns\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxStallTurns: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-wall-clock-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalContinueMaxWallClockMinutes: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-auto-continue-delay-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalAutoContinueDelayMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ResearchLaneSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ResearchLaneSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ResearchLaneSettings,\n\t\tonChange: (settings: ResearchLaneSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? DEFAULT_RESEARCH_LANE_ENABLED,\n\t\t\tmaxUsd: settings.maxUsd ?? DEFAULT_RESEARCH_LANE_MAX_USD,\n\t\t\tmaxWallClockMs: settings.maxWallClockMs ?? DEFAULT_RESEARCH_LANE_MAX_WALL_CLOCK_MS,\n\t\t\tidleDelayMs: settings.idleDelayMs ?? DEFAULT_RESEARCH_LANE_IDLE_DELAY_MS,\n\t\t\tmaxRunsPerSession: settings.maxRunsPerSession ?? DEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"research-lane-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these research-lane settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Run bounded, read-only background research when idle with an active goal (requires autonomy mode on)\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-usd\",\n\t\t\t\tlabel: \"Budget per pass\",\n\t\t\t\tdescription: \"USD budget per research pass; breaches mark the lane budget_exhausted in diagnostics\",\n\t\t\t\tcurrentValue: String(this.state.maxUsd),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_USD_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-wall-clock-ms\",\n\t\t\t\tlabel: \"Max milliseconds\",\n\t\t\t\tdescription: \"Wall-clock budget per research pass; 0 disables the time budget\",\n\t\t\t\tcurrentValue: String(this.state.maxWallClockMs),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_WALL_CLOCK_MS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-idle-delay-ms\",\n\t\t\t\tlabel: \"Idle delay ms\",\n\t\t\t\tdescription: \"Delay before idle-triggered research starts; 0 starts immediately after idle\",\n\t\t\t\tcurrentValue: String(this.state.idleDelayMs),\n\t\t\t\tvalues: RESEARCH_LANE_IDLE_DELAY_MS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-runs-per-session\",\n\t\t\t\tlabel: \"Runs per session\",\n\t\t\t\tdescription: \"Maximum idle-triggered research passes per session; explicit /autonomy research is uncapped\",\n\t\t\t\tcurrentValue: String(this.state.maxRunsPerSession),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_RUNS_PER_SESSION_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"research-lane-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-usd\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxUsd: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-wall-clock-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-idle-delay-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, idleDelayMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-runs-per-session\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxRunsPerSession: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass LearningPolicySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: LearningPolicySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: LearningPolicySettings,\n\t\tonChange: (settings: LearningPolicySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"learning-policy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these learning-policy settings globally or in the project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gate root-session reflection writes through the learning policy (proposals, audits, rollback). Disabled keeps legacy direct-apply with audit records.\",\n\t\t\t\tcurrentValue: String(this.state.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-auto-apply\",\n\t\t\t\tlabel: \"Auto-apply\",\n\t\t\t\tdescription: \"Allow eligible writes to auto-apply; otherwise everything becomes a proposal\",\n\t\t\t\tcurrentValue: String(this.state.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-auto-apply-supersessions\",\n\t\t\t\tlabel: \"Auto-apply supersessions\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow a memory_replace/memory_remove (overwrites or deletes an existing fact) to auto-apply once otherwise eligible; off keeps every supersession a proposal\",\n\t\t\t\tcurrentValue: String(this.state.autoApplySupersessions ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-confidence\",\n\t\t\t\tlabel: \"Confidence threshold\",\n\t\t\t\tdescription: \"Minimum confidence (0-100) before a write may auto-apply; below it, proposal or no-op\",\n\t\t\t\tcurrentValue: String(this.state.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD),\n\t\t\t\tvalues: [\"25\", \"50\", \"60\", \"75\", \"90\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-min-observations\",\n\t\t\t\tlabel: \"Min observations\",\n\t\t\t\tdescription: \"Observations required before auto-apply (allowedAutoApplyLayers stays JSON-only)\",\n\t\t\t\tcurrentValue: String(this.state.minObservations ?? DEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS),\n\t\t\t\tvalues: [\"1\", \"2\", \"3\", \"5\"],\n\t\t\t},\n\t\t];\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"learning-policy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-auto-apply\":\n\t\t\t\t\t\tthis.state = { ...this.state, autoApplyEnabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-auto-apply-supersessions\":\n\t\t\t\t\t\tthis.state = { ...this.state, autoApplySupersessions: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-confidence\":\n\t\t\t\t\t\tthis.state = { ...this.state, confidenceThreshold: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-min-observations\":\n\t\t\t\t\t\tthis.state = { ...this.state, minObservations: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ModelCapabilitySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ModelCapabilitySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ModelCapabilitySettings,\n\t\tonChange: (settings: ModelCapabilitySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"model-capability-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save globally or in the project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-capability-mode\",\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t'\"auto\" derives the tool surface and lane budgets from the model\\'s own context window; \"off\" disables adaptation; a class name forces it',\n\t\t\t\tcurrentValue: this.state.mode ?? \"auto\",\n\t\t\t\tvalues: [\"auto\", \"off\", \"full\", \"lean\", \"minimal\", \"chat\"],\n\t\t\t},\n\t\t];\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"model-capability-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-capability-mode\":\n\t\t\t\t\t\tthis.state = { ...this.state, mode: newValue as ModelCapabilitySettings[\"mode\"] };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextCurationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ContextCurationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ContextCurationSettings,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tonChange: (settings: ContextCurationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? false,\n\t\t\tmaxJobsPerTurn: settings.maxJobsPerTurn ?? 4,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst modelValues = [\"(unset)\", ...(modelOptions ?? []).map((option) => option.value).filter(Boolean)];\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-curation-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these curation settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Local brain curator: digests GC-packed stubs and scores stale-chunk relevance. Requires a digest-fit local model (run /fitness <model>).\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-model\",\n\t\t\t\tlabel: \"Curator model\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Local model that runs curation jobs; refused until it passes the digest fitness probe on this host\",\n\t\t\t\tcurrentValue: this.state.model ?? \"(unset)\",\n\t\t\t\tvalues: modelValues,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-max-jobs\",\n\t\t\t\tlabel: \"Max jobs per turn\",\n\t\t\t\tdescription: \"Curation jobs drained per turn (each is one small local completion)\",\n\t\t\t\tcurrentValue: String(this.state.maxJobsPerTurn),\n\t\t\t\tvalues: [\"1\", \"2\", \"4\", \"8\", \"16\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-curation-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-model\":\n\t\t\t\t\t\tthis.state = { ...this.state, model: newValue === \"(unset)\" ? undefined : newValue };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-max-jobs\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxJobsPerTurn: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: WorkerDelegationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: WorkerDelegationSettings,\n\t\tonChange: (settings: WorkerDelegationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? DEFAULT_WORKER_DELEGATION_ENABLED,\n\t\t\tmaxConcurrent: settings.maxConcurrent ?? DEFAULT_WORKER_DELEGATION_MAX_CONCURRENT,\n\t\t\tmaxUsd: settings.maxUsd ?? DEFAULT_WORKER_DELEGATION_MAX_USD,\n\t\t\tmaxWallClockMs: settings.maxWallClockMs ?? DEFAULT_WORKER_DELEGATION_MAX_WALL_CLOCK_MS,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these delegation settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow capable models to dispatch autonomous persistent leaf workers; enabled by default, and explicit false is a hard off-switch\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-usd\",\n\t\t\t\tlabel: \"Budget per worker task\",\n\t\t\t\tdescription: \"Cumulative USD budget for one worker task; 0 disables this ceiling\",\n\t\t\t\tcurrentValue: String(this.state.maxUsd),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Worker Task USD Budget\",\n\t\t\t\t\t\t`Enter a nonnegative finite number no greater than ${MAX_WORKER_DELEGATION_MAX_USD}. Zero disables the settings-level cost ceiling.`,\n\t\t\t\t\t\tString(this.state.maxUsd),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxUsd = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isFinite(maxUsd) && maxUsd >= 0 && maxUsd <= MAX_WORKER_DELEGATION_MAX_USD) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxUsd };\n\t\t\t\t\t\t\t\tdone(String(maxUsd));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t`number in [0, ${MAX_WORKER_DELEGATION_MAX_USD}]; invalid input keeps the current value`,\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-wall-clock-ms\",\n\t\t\t\tlabel: \"Worker task milliseconds\",\n\t\t\t\tdescription: \"Active wall-clock budget for one worker task; 0 disables the time budget\",\n\t\t\t\tcurrentValue: String(this.state.maxWallClockMs),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Worker Task Active Time\",\n\t\t\t\t\t\t\"Enter active milliseconds per worker task as a nonnegative safe integer. Zero disables the time ceiling.\",\n\t\t\t\t\t\tString(this.state.maxWallClockMs),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxWallClockMs = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isSafeInteger(maxWallClockMs) && maxWallClockMs >= 0) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs };\n\t\t\t\t\t\t\t\tdone(String(maxWallClockMs));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\"nonnegative safe integer; invalid input keeps the current value\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-write-enabled\",\n\t\t\t\tlabel: \"Allow file writes\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Let workers change files through direct write/edit tools; default authority is machine-wide and explicit false revokes it\",\n\t\t\t\tcurrentValue: String(this.state.writeEnabled ?? DEFAULT_WORKER_DELEGATION_WRITE_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-concurrent\",\n\t\t\t\tlabel: \"Max concurrent workers\",\n\t\t\t\tdescription: `Global scheduler concurrency for leaf workers; the fleet retains at most ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} logical agents per session`,\n\t\t\t\tcurrentValue: String(this.state.maxConcurrent),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Global Worker Concurrency\",\n\t\t\t\t\t\t`Enter any positive safe integer. This limits running leaf workers; fixed safety ceilings separately bound ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} session agents and ${DEFAULT_WORKER_FLEET_LIMITS.maxQueuedDispatches} queued dispatches.`,\n\t\t\t\t\t\tString(this.state.maxConcurrent),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxConcurrent = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isSafeInteger(maxConcurrent) && maxConcurrent > 0) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrent };\n\t\t\t\t\t\t\t\tdone(String(maxConcurrent));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\"positive safe integer; invalid input keeps the current value\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"worker-delegation-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-usd\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxUsd: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-wall-clock-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-write-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, writeEnabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-concurrent\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrent: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass AutoLearnSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: AutoLearnSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: AutoLearnSettings,\n\t\tautonomyMode: AutonomyMode,\n\t\tcurrentModelPattern: string | undefined,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tonChange: (settings: AutoLearnSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst defaults = resolveAutoLearnSettings(autonomyMode, settings);\n\t\tconst modelDescription = currentModelPattern\n\t\t\t? `Model for explicit/background learning. \"active\" uses ${currentModelPattern}; configured subscription/API models are listed first. Automatic reflection uses the orchestrator's current session turn.`\n\t\t\t: 'Model for explicit/background learning. Use \"active\" for the current session model, or choose a configured subscription/API model. Automatic reflection uses the orchestrator\\'s current session turn.';\n\t\tconst selectableModelOptions = buildAutoLearnModelOptions(this.state, modelOptions, currentModelPattern);\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"auto-learn-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this Auto Learn configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Autonomously trigger background history scavenging for long sessions\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, defaults.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-model\",\n\t\t\t\tlabel: \"Scavenger model\",\n\t\t\t\tdescription: modelDescription,\n\t\t\t\tcurrentValue: autoLearnModelValue(this.state),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tselectableModelOptions,\n\t\t\t\t\t\tautoLearnModelValue(this.state),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = { ...this.state, model: value };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(autoLearnModelValue(this.state));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-long-session-messages\",\n\t\t\t\tlabel: \"Message trigger\",\n\t\t\t\tdescription: \"Trigger after this many message entries in the active branch\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.longSessionMessages, defaults.longSessionMessages),\n\t\t\t\tvalues: [\"16\", \"32\", \"64\", \"128\", \"256\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-context-percent\",\n\t\t\t\tlabel: \"Context trigger %\",\n\t\t\t\tdescription: \"Trigger when current context usage reaches this percentage\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.longSessionContextPercent, defaults.longSessionContextPercent),\n\t\t\t\tvalues: [\"50\", \"60\", \"70\", \"80\", \"85\", \"90\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-cooldown-minutes\",\n\t\t\t\tlabel: \"Cooldown minutes\",\n\t\t\t\tdescription: \"Per-session-tenant cooldown between learner launches\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.cooldownMinutes, defaults.cooldownMinutes),\n\t\t\t\tvalues: [\"15\", \"30\", \"60\", \"120\", \"240\", \"1440\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-lease-minutes\",\n\t\t\t\tlabel: \"Lease minutes\",\n\t\t\t\tdescription: \"Shared-state lease duration for a running background learner\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.leaseMinutes, defaults.leaseMinutes),\n\t\t\t\tvalues: [\"30\", \"60\", \"90\", \"180\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-max-concurrent\",\n\t\t\t\tlabel: \"Max learners\",\n\t\t\t\tdescription: \"Maximum running Auto Learn background learners per session tenant\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.maxConcurrentLearners, defaults.maxConcurrentLearners),\n\t\t\t\tvalues: [\"1\", \"2\", \"3\", \"4\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-apply-high-confidence\",\n\t\t\t\tlabel: \"Apply high confidence\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow high-confidence memory candidates to be applied automatically; broader write authority follows autonomy.mode\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.applyHighConfidence, defaults.applyHighConfidence),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-review\",\n\t\t\t\tlabel: \"Reflection review\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"After corrective or complex turns, queue a durable root-session reflection cue for the next ordinary turn\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.reflectionReview, defaults.reflectionReview),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-tool-calls\",\n\t\t\t\tlabel: \"Reflection tool trigger\",\n\t\t\t\tdescription: \"Queue a root-session reflection cue after this many tool calls in one completed turn\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.reflectionMinToolCalls, defaults.reflectionMinToolCalls),\n\t\t\t\tvalues: [\"3\", \"5\", \"8\", \"12\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-cooldown\",\n\t\t\t\tlabel: \"Reflection cooldown\",\n\t\t\t\tdescription: \"Per-session-tenant cooldown between automatic root-session reflection cues\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.reflectionCooldownMinutes, defaults.reflectionCooldownMinutes),\n\t\t\t\tvalues: [\"15\", \"30\", \"60\", \"120\", \"1440\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"auto-learn-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-long-session-messages\":\n\t\t\t\t\t\tthis.state = { ...this.state, longSessionMessages: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-context-percent\":\n\t\t\t\t\t\tthis.state = { ...this.state, longSessionContextPercent: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-cooldown-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, cooldownMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-lease-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, leaseMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-max-concurrent\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrentLearners: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-apply-high-confidence\":\n\t\t\t\t\t\tthis.state = { ...this.state, applyHighConfidence: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-review\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionReview: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-tool-calls\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionMinToolCalls: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-cooldown\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionCooldownMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextPolicyEnforcementSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ContextPromptEnforcementSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ContextPromptEnforcementSettings,\n\t\tonChange: (settings: ContextPromptEnforcementSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-policy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this context/prompt-policy configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-enabled\",\n\t\t\t\tlabel: \"Prompt policy enforcement\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in: stub stale artifact-backed grep/find output in the model-visible prompt only. Never touches transcript/session history. Requires the artifact_retrieve tool to be active this turn (not configurable here -- it's a runtime fact, not a setting).\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-preserve-recent-messages\",\n\t\t\t\tlabel: \"Preserve recent messages\",\n\t\t\t\tdescription: \"Never stub a tool result within this many of the most recent messages\",\n\t\t\t\tcurrentValue: numberSettingValue(\n\t\t\t\t\tthis.state.preserveRecentMessages,\n\t\t\t\t\tCONTEXT_POLICY_ENFORCEMENT_DEFAULTS.preserveRecentMessages,\n\t\t\t\t),\n\t\t\t\tvalues: CONTEXT_POLICY_PRESERVE_RECENT_MESSAGES_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-min-chars\",\n\t\t\t\tlabel: \"Minimum chars before stubbing\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Only stub a tool result whose original provider-visible text is at least this many characters\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.minChars, CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.minChars),\n\t\t\t\tvalues: CONTEXT_POLICY_MIN_CHARS_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-policy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-preserve-recent-messages\":\n\t\t\t\t\t\tthis.state = { ...this.state, preserveRecentMessages: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-min-chars\":\n\t\t\t\t\t\tthis.state = { ...this.state, minChars: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextMemoryRetrievalSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: MemoryRetrievalSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: MemoryRetrievalSettings,\n\t\tonChange: (settings: MemoryRetrievalSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tenabled: settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled,\n\t\t\tmaxResults: settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults,\n\t\t\tincludeInPrompt: settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt,\n\t\t\tallowExternalEgress: settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-memory-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this local memory-retrieval configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-enabled\",\n\t\t\t\tlabel: \"Local memory retrieval\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default on: search local Pi memory for relevant evidence. Explicit false is a hard off-switch for both legacy recall and context retrieval. External providers remain blocked by the separate consent below.\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-max-results\",\n\t\t\t\tlabel: \"Max results\",\n\t\t\t\tdescription: \"Maximum number of memory items to retrieve per query (1-20)\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.maxResults, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults),\n\t\t\t\tvalues: CONTEXT_MEMORY_RETRIEVAL_MAX_RESULTS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-include-in-prompt\",\n\t\t\t\tlabel: \"Include in prompt\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default on and budget-gated: surface retrieved memory as bounded, source-labeled untrusted evidence in the model prompt only -- never the transcript or an instruction.\",\n\t\t\t\tcurrentValue: booleanSettingValue(\n\t\t\t\t\tthis.state.includeInPrompt,\n\t\t\t\t\tCONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt,\n\t\t\t\t),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-allow-external-egress\",\n\t\t\t\tlabel: \"Allow external queries\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Explicit consent to send bounded query text to eligible external memory providers. Default off; secret-like and oversized queries still fail closed, and returned recall is centrally fenced as untrusted data.\",\n\t\t\t\tcurrentValue: booleanSettingValue(\n\t\t\t\t\tthis.state.allowExternalEgress,\n\t\t\t\t\tCONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress,\n\t\t\t\t),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-memory-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-max-results\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxResults: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-include-in-prompt\":\n\t\t\t\t\t\tthis.state = { ...this.state, includeInPrompt: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-allow-external-egress\":\n\t\t\t\t\t\tthis.state = { ...this.state, allowExternalEgress: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ModelRouterSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ModelRouterSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ModelRouterSettings,\n\t\tcurrentModelPattern: string | undefined,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tresolveModelThinkingLevels: SettingsConfig[\"resolveModelThinkingLevels\"],\n\t\tonChange: (settings: ModelRouterSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? false,\n\t\t\tlearningModel: settings.learningModel ?? \"active\",\n\t\t};\n\t\tconst levelsForModel = (modelPattern: string | undefined): ThinkingLevel[] | undefined =>\n\t\t\tresolveModelThinkingLevels?.(modelPattern ?? currentModelPattern);\n\t\tconst keepSupportedThinking = (\n\t\t\tlevel: ThinkingLevel | undefined,\n\t\t\tmodelPattern: string | undefined,\n\t\t): ThinkingLevel | undefined => {\n\t\t\tconst levels = levelsForModel(modelPattern);\n\t\t\treturn level && levels && !levels.includes(level) ? undefined : level;\n\t\t};\n\t\tthis.state.cheapThinking = keepSupportedThinking(this.state.cheapThinking, this.state.cheapModel);\n\t\tthis.state.mediumThinking = keepSupportedThinking(this.state.mediumThinking, this.state.mediumModel);\n\t\tthis.state.expensiveThinking = keepSupportedThinking(this.state.expensiveThinking, this.state.expensiveModel);\n\t\tthis.state.executorThinking = keepSupportedThinking(this.state.executorThinking, this.state.executorModel);\n\t\tthis.state.judgeThinking = keepSupportedThinking(this.state.judgeThinking, this.state.judgeModel);\n\t\tthis.scope = scope;\n\t\tconst cheapModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.cheapModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear cheap routing model; research turns fall back to the active session model\",\n\t\t});\n\t\tconst mediumModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.mediumModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear medium routing model; implementation turns fall back according to router policy\",\n\t\t});\n\t\tconst expensiveModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.expensiveModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear expensive routing model; modify turns fall back to the active session model\",\n\t\t});\n\t\tconst judgeModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.judgeModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear judge model; routing judge falls back to the medium model\",\n\t\t});\n\t\tconst executorModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.executorModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear executor lane model; direct toolkit execution stays disabled\",\n\t\t});\n\t\tconst learningModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.learningModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: true,\n\t\t});\n\t\tconst routedTierThinkingOptions = (modelPattern: string | undefined) =>\n\t\t\tbuildModelRouterThinkingOptions(\n\t\t\t\t\"Inherit the session thinking level for this turn, clamped to the routed model\",\n\t\t\t\tlevelsForModel(modelPattern),\n\t\t\t);\n\t\tconst judgeThinkingOptions = () =>\n\t\t\tbuildModelRouterThinkingOptions(\n\t\t\t\t\"Use today's default of off for the routing judge's own completion\",\n\t\t\t\tlevelsForModel(this.state.judgeModel),\n\t\t\t);\n\t\tthis.addChild(new Text(theme.bold(theme.fg(\"accent\", \"Model Router\")), 0, 0));\n\t\tthis.addChild(new Spacer(1));\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"model-router-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this routing configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Route read-only/research turns to cheap model and modify/tool-heavy turns to expensive model\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-cheap\",\n\t\t\t\tlabel: \"Cheap model\",\n\t\t\t\tdescription: \"Pick the model for read-only, research, explanation, and question turns\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.cheapModel, this.state.cheapThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tcheapModelOptions,\n\t\t\t\t\t\tthis.state.cheapModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst cheapModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tcheapModel,\n\t\t\t\t\t\t\t\tcheapThinking: keepSupportedThinking(this.state.cheapThinking, cheapModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.cheapModel, this.state.cheapThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Cheap / Research Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Cheap / Research Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-medium\",\n\t\t\t\tlabel: \"Medium model\",\n\t\t\t\tdescription: \"Pick the model for normal scoped implementation, edits, tests, and mechanical refactors\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.mediumModel, this.state.mediumThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tmediumModelOptions,\n\t\t\t\t\t\tthis.state.mediumModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst mediumModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tmediumModel,\n\t\t\t\t\t\t\t\tmediumThinking: keepSupportedThinking(this.state.mediumThinking, mediumModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.mediumModel, this.state.mediumThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Medium / Implementation Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Medium / Implementation Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-expensive\",\n\t\t\t\tlabel: \"Expensive model\",\n\t\t\t\tdescription: \"Pick the model for modify, implementation, and escalated tool-heavy turns\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.expensiveModel, this.state.expensiveThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\texpensiveModelOptions,\n\t\t\t\t\t\tthis.state.expensiveModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst expensiveModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texpensiveModel,\n\t\t\t\t\t\t\t\texpensiveThinking: keepSupportedThinking(this.state.expensiveThinking, expensiveModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.expensiveModel, this.state.expensiveThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Expensive / Modify Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Expensive / Modify Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-judge\",\n\t\t\t\tlabel: \"Judge model\",\n\t\t\t\tdescription: \"Pick the routing-judge model; unset falls back to the medium model\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.judgeModel, this.state.judgeThinking, \"medium fallback\"),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tjudgeModelOptions,\n\t\t\t\t\t\tthis.state.judgeModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst judgeModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tjudgeModel,\n\t\t\t\t\t\t\t\tjudgeThinking: keepSupportedThinking(this.state.judgeThinking, judgeModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.judgeModel, this.state.judgeThinking, \"medium fallback\"));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Routing Judge Model\",\n\t\t\t\t\t\t\tdescription: \"Choose from configured models. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Routing Judge Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-executor\",\n\t\t\t\tlabel: \"Executor model\",\n\t\t\t\tdescription: \"Pick the local executor lane model; unset disables direct toolkit execution\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.executorModel, this.state.executorThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\texecutorModelOptions,\n\t\t\t\t\t\tthis.state.executorModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst executorModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texecutorModel,\n\t\t\t\t\t\t\t\texecutorThinking: keepSupportedThinking(this.state.executorThinking, executorModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.executorModel, this.state.executorThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Executor Lane Model\",\n\t\t\t\t\t\t\tdescription: \"Choose from configured models. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Executor Lane Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-learning\",\n\t\t\t\tlabel: \"Learning model\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Pick the model for explicit/background learning and skill-creator work; automatic reflection uses the orchestrator's current session turn\",\n\t\t\t\tcurrentValue: optionalStringValue(this.state.learningModel, \"active\"),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tlearningModelOptions,\n\t\t\t\t\t\tthis.state.learningModel ?? DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = { ...this.state, learningModel: value };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(optionalStringValue(this.state.learningModel, \"active\"));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Learning Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose active or a model from configured subscription/API accounts for explicit/background learning. Automatic reflection uses the orchestrator's current session turn. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Learning Model\",\n\t\t\t\t\t\t\tcustomDescription:\n\t\t\t\t\t\t\t\t'Enter \"active\" or a provider/model pattern for explicit/background learning from pi --list-models.',\n\t\t\t\t\t\t\tcustomEmptyHint: 'empty uses \"active\"',\n\t\t\t\t\t\t\tcustomEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-cheap-thinking\",\n\t\t\t\tlabel: \"Cheap thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for cheap-tier (read-only/research) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Cheap Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for cheap-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.cheapModel),\n\t\t\t\t\t\tthis.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tcheapThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-medium-thinking\",\n\t\t\t\tlabel: \"Medium thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for medium-tier (scoped implementation) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Medium Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for medium-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.mediumModel),\n\t\t\t\t\t\tthis.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tmediumThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-expensive-thinking\",\n\t\t\t\tlabel: \"Expensive thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for expensive-tier (modify/escalated) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Expensive Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for expensive-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.expensiveModel),\n\t\t\t\t\t\tthis.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texpensiveThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-executor-thinking\",\n\t\t\t\tlabel: \"Executor thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for the local executor-direct lane; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Executor Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for the executor-direct lane, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.executorModel),\n\t\t\t\t\t\tthis.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texecutorThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-judge-thinking\",\n\t\t\t\tlabel: \"Judge thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for the routing judge's own completion; (inherit) keeps today's default of off\",\n\t\t\t\tcurrentValue: this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Judge Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for the routing judge's own completion, or inherit today's off default\",\n\t\t\t\t\t\tjudgeThinkingOptions(),\n\t\t\t\t\t\tthis.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tjudgeThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-fitness-gate\",\n\t\t\t\tlabel: \"Fitness gate\",\n\t\t\t\tdescription: \"Opt-in subtractive gate: blocks tier models only when their probed router lane failed\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.fitnessGate),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"model-router-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-router-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-router-fitness-gate\":\n\t\t\t\t\t\tthis.state = { ...this.state, fitnessGate: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\n/**\n * A submenu component for selecting from a list of options.\n */\nclass WarningSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: WarningSettings;\n\n\tconstructor(warnings: WarningSettings, onChange: (warnings: WarningSettings) => void, onCancel: () => void) {\n\t\tsuper();\n\n\t\tthis.state = { ...warnings };\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"anthropic-extra-usage\",\n\t\t\t\tlabel: \"Anthropic extra usage\",\n\t\t\t\tdescription: \"Warn when Anthropic subscription auth may use paid extra usage\",\n\t\t\t\tcurrentValue: (this.state.anthropicExtraUsage ?? true) ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"anthropic-extra-usage\":\n\t\t\t\t\t\tthis.state = { ...this.state, anthropicExtraUsage: newValue === \"true\" };\n\t\t\t\t\t\tonChange({ ...this.state });\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nexport class SelectSubmenu extends Container {\n\tprivate selectList: SelectList;\n\n\tgetSelectList(): SelectList {\n\t\treturn this.selectList;\n\t}\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tonSelectionChange?: (value: string) => void,\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(title, description));\n\n\t\t// Select list\n\t\tthis.selectList = new SelectList(\n\t\t\toptions,\n\t\t\tMath.min(options.length, 10),\n\t\t\tgetSelectListTheme(),\n\t\t\tCOMPACT_SELECTOR_LIST_LAYOUT,\n\t\t);\n\n\t\t// Pre-select current value\n\t\tconst currentIndex = options.findIndex((o) => o.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tonSelect(item.value);\n\t\t};\n\n\t\tthis.selectList.onCancel = onCancel;\n\n\t\tif (onSelectionChange) {\n\t\t\tthis.selectList.onSelectionChange = (item) => {\n\t\t\t\tonSelectionChange(item.value);\n\t\t\t};\n\t\t}\n\n\t\tthis.addChild(this.selectList);\n\n\t\t// Hint\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(data, \"app.interrupt\") || kb.matches(data, \"app.clear\")) {\n\t\t\tthis.selectList.onCancel?.();\n\t\t\treturn;\n\t\t}\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n\n/**\n * Main settings selector component.\n */\nexport class SettingsSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(config: SettingsConfig, callbacks: SettingsCallbacks) {\n\t\tsuper();\n\n\t\tconst supportsImages = getCapabilities().images;\n\t\tconst followUpKey = keyDisplayText(\"app.message.followUp\");\n\t\tlet currentCostGuard: CostGuardSettings = { ...config.costGuard };\n\t\tlet currentWarnings = { ...config.warnings };\n\t\tlet currentSelfModification: SelfModificationSettings = { ...config.selfModification };\n\t\tlet currentAutonomy: AutonomySettings = { ...config.autonomy };\n\t\tlet currentResearchLane: ResearchLaneSettings = { ...config.researchLane };\n\t\tlet currentContextCuration: ContextCurationSettings = { ...config.contextCuration };\n\t\tlet currentLearningPolicy: LearningPolicySettings = { ...config.learningPolicy };\n\t\tlet currentModelCapability: ModelCapabilitySettings = { ...config.modelCapability };\n\t\tlet currentWorkerDelegation: WorkerDelegationSettings = { ...config.workerDelegation };\n\t\tlet currentModelRouter: ModelRouterSettings = { ...config.modelRouter };\n\t\tlet currentAutoLearn: AutoLearnSettings = { ...config.autoLearn };\n\t\tlet currentContextPolicyEnforcement: ContextPromptEnforcementSettings = { ...config.contextPolicyEnforcement };\n\t\tlet currentContextMemoryRetrieval: MemoryRetrievalSettings = { ...config.contextMemoryRetrieval };\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autocompact\",\n\t\t\t\tlabel: \"Auto-compact\",\n\t\t\t\tdescription: \"Automatically compact context when it gets too large\",\n\t\t\t\tcurrentValue: config.autoCompact ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"cost-guard\",\n\t\t\t\tlabel: \"Foreground cost guard\",\n\t\t\t\tdescription: \"Optional per-turn USD projection warning or reasoning downgrade; disabled by default\",\n\t\t\t\tcurrentValue: costGuardSummary(currentCostGuard),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew CostGuardSettingsSubmenu(\n\t\t\t\t\t\tcurrentCostGuard,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentCostGuard = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onCostGuardChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(costGuardSummary(currentCostGuard)),\n\t\t\t\t\t\tconfig.costGuardScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"steering-mode\",\n\t\t\t\tlabel: \"Steering mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.\",\n\t\t\t\tcurrentValue: config.steeringMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"follow-up-mode\",\n\t\t\t\tlabel: \"Follow-up mode\",\n\t\t\t\tdescription: `${followUpKey} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.`,\n\t\t\t\tcurrentValue: config.followUpMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"transport\",\n\t\t\t\tlabel: \"Transport\",\n\t\t\t\tdescription: \"Preferred transport for providers that support multiple transports\",\n\t\t\t\tcurrentValue: config.transport,\n\t\t\t\tvalues: [\"sse\", \"websocket\", \"websocket-cached\", \"auto\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"http-idle-timeout\",\n\t\t\t\tlabel: \"HTTP idle timeout\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes.\",\n\t\t\t\tcurrentValue: formatHttpIdleTimeoutMs(config.httpIdleTimeoutMs),\n\t\t\t\tvalues: HTTP_IDLE_TIMEOUT_CHOICES.map((choice) => choice.label),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"hide-thinking\",\n\t\t\t\tlabel: \"Hide thinking\",\n\t\t\t\tdescription: \"Hide thinking blocks in assistant responses\",\n\t\t\t\tcurrentValue: config.hideThinkingBlock ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"project-context-files\",\n\t\t\t\tlabel: \"Project AGENTS.md\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt in to listing this directory's AGENTS.md/CLAUDE.md/GEMINI.md. Global ~/.pi/agent files always load.\",\n\t\t\t\tcurrentValue: projectContextFilesSummary(config.projectContextFiles, config.projectContextFilesScope),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ProjectContextFilesSubmenu(\n\t\t\t\t\t\tconfig.projectContextFiles,\n\t\t\t\t\t\t(mode, scope) => {\n\t\t\t\t\t\t\tconfig.projectContextFiles = mode;\n\t\t\t\t\t\t\tconfig.projectContextFilesScope = scope;\n\t\t\t\t\t\t\tcallbacks.onProjectContextFilesChange(mode, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(projectContextFilesSummary(config.projectContextFiles, config.projectContextFilesScope)),\n\t\t\t\t\t\tconfig.projectContextFilesScope ?? \"directoryProfile\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"collapse-changelog\",\n\t\t\t\tlabel: \"Collapse changelog\",\n\t\t\t\tdescription: \"Show condensed changelog after updates\",\n\t\t\t\tcurrentValue: config.collapseChangelog ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"quiet-startup\",\n\t\t\t\tlabel: \"Quiet startup\",\n\t\t\t\tdescription: \"Disable verbose printing at startup\",\n\t\t\t\tcurrentValue: config.quietStartup ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"install-telemetry\",\n\t\t\t\tlabel: \"Install telemetry\",\n\t\t\t\tdescription: \"Send an anonymous version/update ping after changelog-detected updates\",\n\t\t\t\tcurrentValue: config.enableInstallTelemetry ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"double-escape-action\",\n\t\t\t\tlabel: \"Double-escape action\",\n\t\t\t\tdescription: \"Action when pressing Escape twice with empty editor\",\n\t\t\t\tcurrentValue: config.doubleEscapeAction,\n\t\t\t\tvalues: [\"tree\", \"fork\", \"none\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tree-filter-mode\",\n\t\t\t\tlabel: \"Tree filter mode\",\n\t\t\t\tdescription: \"Default filter when opening /tree\",\n\t\t\t\tcurrentValue: config.treeFilterMode,\n\t\t\t\tvalues: [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification\",\n\t\t\t\tlabel: \"Self modification\",\n\t\t\t\tdescription: \"Enable Pi self-evolution guardrails and configure the editable pi-adaptative source checkout\",\n\t\t\t\tcurrentValue: selfModificationSummary(currentSelfModification),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelfModificationSettingsSubmenu(\n\t\t\t\t\t\tcurrentSelfModification,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentSelfModification = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onSelfModificationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(selfModificationSummary(currentSelfModification)),\n\t\t\t\t\t\tconfig.selfModificationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy\",\n\t\t\t\tlabel: \"Autonomy\",\n\t\t\t\tdescription: \"Choose one autonomy preset instead of tuning many background-learning knobs\",\n\t\t\t\tcurrentValue: autonomySummary(currentAutonomy),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew AutonomySettingsSubmenu(\n\t\t\t\t\t\tcurrentAutonomy,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentAutonomy = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onAutonomyChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(autonomySummary(currentAutonomy)),\n\t\t\t\t\t\tconfig.autonomyScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane\",\n\t\t\t\tlabel: \"Research Lane\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in autonomous read-only research: bounded background passes that produce evidence bundles for active goals\",\n\t\t\t\tcurrentValue: researchLaneSummary(currentResearchLane),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ResearchLaneSettingsSubmenu(\n\t\t\t\t\t\tcurrentResearchLane,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentResearchLane = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onResearchLaneChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(researchLaneSummary(currentResearchLane)),\n\t\t\t\t\t\tconfig.researchLaneScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation\",\n\t\t\t\tlabel: \"Worker Delegation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default-on provider-neutral leaf workers with inherited authority and optional owner-authored execution presets\",\n\t\t\t\tcurrentValue: workerDelegationSummary(currentWorkerDelegation),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew WorkerDelegationSettingsSubmenu(\n\t\t\t\t\t\tcurrentWorkerDelegation,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentWorkerDelegation = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onWorkerDelegationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(workerDelegationSummary(currentWorkerDelegation)),\n\t\t\t\t\t\tconfig.workerDelegationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy\",\n\t\t\t\tlabel: \"Learning Policy\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gate reflection-sourced durable writes: proposals, confidence thresholds, audits, and rollback\",\n\t\t\t\tcurrentValue: learningPolicySummary(currentLearningPolicy),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew LearningPolicySettingsSubmenu(\n\t\t\t\t\t\tcurrentLearningPolicy,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentLearningPolicy = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onLearningPolicyChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(learningPolicySummary(currentLearningPolicy)),\n\t\t\t\t\t\tconfig.learningPolicyScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-capability\",\n\t\t\t\tlabel: \"Model Capability\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"How pi adapts the tool surface and lane budgets to small models (derived from the model's own metadata)\",\n\t\t\t\tcurrentValue: modelCapabilitySummary(currentModelCapability),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelCapabilitySettingsSubmenu(\n\t\t\t\t\t\tcurrentModelCapability,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentModelCapability = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onModelCapabilityChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(modelCapabilitySummary(currentModelCapability)),\n\t\t\t\t\t\tconfig.modelCapabilityScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation\",\n\t\t\t\tlabel: \"Context Curation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in local brain curator: digests GC-packed context stubs and scores stale-chunk relevance in small local-model jobs\",\n\t\t\t\tcurrentValue: contextCurationSummary(currentContextCuration),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextCurationSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextCuration,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextCuration = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextCurationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextCurationSummary(currentContextCuration)),\n\t\t\t\t\t\tconfig.contextCurationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router\",\n\t\t\t\tlabel: \"Model Router\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Configure models for cheap research, expensive modify/escalation, and explicit/background learning; automatic reflection uses the orchestrator's current session turn\",\n\t\t\t\tcurrentValue: modelRouterSummary(currentModelRouter),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelRouterSettingsSubmenu(\n\t\t\t\t\t\tcurrentModelRouter,\n\t\t\t\t\t\tconfig.currentModelPattern,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\tconfig.resolveModelThinkingLevels,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentModelRouter = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onModelRouterChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(modelRouterSummary(currentModelRouter)),\n\t\t\t\t\t\tconfig.modelRouterScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn\",\n\t\t\t\tlabel: \"Auto Learn Advanced\",\n\t\t\t\tdescription: \"Advanced overrides for autonomous background learning/scavenging\",\n\t\t\t\tcurrentValue: autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy)),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew AutoLearnSettingsSubmenu(\n\t\t\t\t\t\tcurrentAutoLearn,\n\t\t\t\t\t\tautonomyModeValue(currentAutonomy),\n\t\t\t\t\t\tconfig.currentModelPattern,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentAutoLearn = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onAutoLearnChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy))),\n\t\t\t\t\t\tconfig.autoLearnScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-enforcement\",\n\t\t\t\tlabel: \"Context / Prompt Policy\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in artifact-stub prompt-policy enforcement: stubs stale artifact-backed tool output in the model-visible prompt only, never the transcript. Requires the artifact_retrieve tool to be active.\",\n\t\t\t\tcurrentValue: contextPolicyEnforcementSummary(currentContextPolicyEnforcement),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextPolicyEnforcementSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextPolicyEnforcement,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextPolicyEnforcement = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextPolicyEnforcementChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextPolicyEnforcementSummary(currentContextPolicyEnforcement)),\n\t\t\t\t\t\tconfig.contextPolicyEnforcementScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-retrieval\",\n\t\t\t\tlabel: \"Context / Memory Retrieval\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default-on local safe-auto recall with budgeted prompt evidence. External query egress is a separate visible consent and remains off by default.\",\n\t\t\t\tcurrentValue: contextMemoryRetrievalSummary(currentContextMemoryRetrieval),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextMemoryRetrievalSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextMemoryRetrieval,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextMemoryRetrieval = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextMemoryRetrievalChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextMemoryRetrievalSummary(currentContextMemoryRetrieval)),\n\t\t\t\t\t\tconfig.contextMemoryRetrievalScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"warnings\",\n\t\t\t\tlabel: \"Warnings\",\n\t\t\t\tdescription: \"Enable or disable individual warnings\",\n\t\t\t\tcurrentValue: \"configure\",\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew WarningSettingsSubmenu(\n\t\t\t\t\t\tcurrentWarnings,\n\t\t\t\t\t\t(warnings) => {\n\t\t\t\t\t\t\tcurrentWarnings = warnings;\n\t\t\t\t\t\t\tcallbacks.onWarningsChange(warnings);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"thinking\",\n\t\t\t\tlabel: \"Thinking level\",\n\t\t\t\tdescription: \"Reasoning depth for the active model; delegation policy is configured independently\",\n\t\t\t\tcurrentValue: config.thinkingLevel,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Thinking Level\",\n\t\t\t\t\t\t\"Select the reasoning depth supported by the active model\",\n\t\t\t\t\t\tconfig.availableThinkingLevels.map((level) => ({\n\t\t\t\t\t\t\tvalue: level,\n\t\t\t\t\t\t\tlabel: level,\n\t\t\t\t\t\t\tdescription: THINKING_LEVEL_DESCRIPTIONS[level],\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThinkingLevelChange(value as ThinkingLevel);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme\",\n\t\t\t\tlabel: \"Theme\",\n\t\t\t\tdescription: \"Color theme for the interface\",\n\t\t\t\tcurrentValue: config.currentTheme,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Theme\",\n\t\t\t\t\t\t\"Select color theme\",\n\t\t\t\t\t\tconfig.availableThemes.map((t) => ({\n\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\tlabel: t,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t// Restore original theme on cancel\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(currentValue);\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t// Preview theme on selection change\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tconst externalRoots = config.externalResourceRoots ?? [];\n\t\tconst hasSources = externalRoots.length > 0;\n\t\tconst hasProfiles = (config.profileOptions ?? []).filter((o) => o.value !== \"(none)\").length > 0;\n\n\t\titems.push({\n\t\t\tid: \"resources\",\n\t\t\tlabel: \"Resources\",\n\t\t\tdescription: \"Manage profiles/situations, library, and external resource sources.\",\n\t\t\tcurrentValue: config.activeProfileName ?? \"(none)\",\n\t\t\tsubmenu: (_currentValue, done) => {\n\t\t\t\tconst options: SelectItem[] = [];\n\n\t\t\t\tif (!hasSources && !hasProfiles) {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tvalue: \"nudge-add-source\",\n\t\t\t\t\t\tlabel: \"Add your catalog directory →\",\n\t\t\t\t\t\tdescription: \"First-run nudge: Add a directory of shared skills, extensions, profiles, and agents.\",\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"active-profile\",\n\t\t\t\t\tlabel: \"Profile / Situation\",\n\t\t\t\t\tdescription: `Select the active profile/situation. Current: ${config.activeProfileName ?? \"(none)\"}`,\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"manage-library\",\n\t\t\t\t\tlabel: \"Manage Library\",\n\t\t\t\t\tdescription: \"Toggle allowed tools/skills/extensions in the active profile/scope.\",\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"manage-profiles\",\n\t\t\t\t\tlabel: \"Manage Profiles / Situations\",\n\t\t\t\t\tdescription: \"Create, delete, or persist profile/situation definitions.\",\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"sources\",\n\t\t\t\t\tlabel: \"Sources\",\n\t\t\t\t\tdescription: `Manage external resource roots (${externalRoots.length} registered).`,\n\t\t\t\t});\n\n\t\t\t\treturn new SelectSubmenu(\n\t\t\t\t\t\"Resources Hub\",\n\t\t\t\t\t\"Configure profiles/situations and external resource catalogs.\",\n\t\t\t\t\toptions,\n\t\t\t\t\t\"\",\n\t\t\t\t\t(value) => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\tcallbacks.onResourcesHubAction?.(value);\n\t\t\t\t\t},\n\t\t\t\t\t() => done(),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\t// Only show image toggle if terminal supports it\n\t\tif (supportsImages) {\n\t\t\t// Insert after autocompact\n\t\t\titems.splice(1, 0, {\n\t\t\t\tid: \"show-images\",\n\t\t\t\tlabel: \"Show images\",\n\t\t\t\tdescription: \"Render images inline in terminal\",\n\t\t\t\tcurrentValue: config.showImages ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t});\n\t\t\titems.splice(2, 0, {\n\t\t\t\tid: \"image-width-cells\",\n\t\t\t\tlabel: \"Image width\",\n\t\t\t\tdescription: \"Preferred inline image width in terminal cells\",\n\t\t\t\tcurrentValue: String(config.imageWidthCells),\n\t\t\t\tvalues: [\"60\", \"80\", \"120\"],\n\t\t\t});\n\t\t}\n\n\t\t// Image auto-resize toggle (always available, affects both attached and read images)\n\t\titems.splice(supportsImages ? 3 : 1, 0, {\n\t\t\tid: \"auto-resize-images\",\n\t\t\tlabel: \"Auto-resize images\",\n\t\t\tdescription: \"Resize large images to 2000x2000 max for better model compatibility\",\n\t\t\tcurrentValue: config.autoResizeImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Block images toggle (always available, insert after auto-resize-images)\n\t\tconst autoResizeIndex = items.findIndex((item) => item.id === \"auto-resize-images\");\n\t\titems.splice(autoResizeIndex + 1, 0, {\n\t\t\tid: \"block-images\",\n\t\t\tlabel: \"Block images\",\n\t\t\tdescription: \"Prevent images from being sent to LLM providers\",\n\t\t\tcurrentValue: config.blockImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Skill commands toggle (insert after block-images)\n\t\tconst blockImagesIndex = items.findIndex((item) => item.id === \"block-images\");\n\t\titems.splice(blockImagesIndex + 1, 0, {\n\t\t\tid: \"skill-commands\",\n\t\t\tlabel: \"Skill commands\",\n\t\t\tdescription: \"Register skills as /skill:name commands\",\n\t\t\tcurrentValue: config.enableSkillCommands ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Hardware cursor toggle (insert after skill-commands)\n\t\tconst skillCommandsIndex = items.findIndex((item) => item.id === \"skill-commands\");\n\t\titems.splice(skillCommandsIndex + 1, 0, {\n\t\t\tid: \"show-hardware-cursor\",\n\t\t\tlabel: \"Show hardware cursor\",\n\t\t\tdescription: \"Show the terminal cursor while still positioning it for IME support\",\n\t\t\tcurrentValue: config.showHardwareCursor ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Editor padding toggle (insert after show-hardware-cursor)\n\t\tconst hardwareCursorIndex = items.findIndex((item) => item.id === \"show-hardware-cursor\");\n\t\titems.splice(hardwareCursorIndex + 1, 0, {\n\t\t\tid: \"editor-padding\",\n\t\t\tlabel: \"Editor padding\",\n\t\t\tdescription: \"Horizontal padding for input editor (0-3)\",\n\t\t\tcurrentValue: String(config.editorPaddingX),\n\t\t\tvalues: [\"0\", \"1\", \"2\", \"3\"],\n\t\t});\n\n\t\t// Autocomplete max visible toggle (insert after editor-padding)\n\t\tconst editorPaddingIndex = items.findIndex((item) => item.id === \"editor-padding\");\n\t\titems.splice(editorPaddingIndex + 1, 0, {\n\t\t\tid: \"autocomplete-max-visible\",\n\t\t\tlabel: \"Autocomplete max items\",\n\t\t\tdescription: \"Max visible items in autocomplete dropdown (3-20)\",\n\t\t\tcurrentValue: String(config.autocompleteMaxVisible),\n\t\t\tvalues: [\"3\", \"5\", \"7\", \"10\", \"15\", \"20\"],\n\t\t});\n\n\t\t// Clear on shrink toggle (insert after autocomplete-max-visible)\n\t\tconst autocompleteIndex = items.findIndex((item) => item.id === \"autocomplete-max-visible\");\n\t\titems.splice(autocompleteIndex + 1, 0, {\n\t\t\tid: \"clear-on-shrink\",\n\t\t\tlabel: \"Clear on shrink\",\n\t\t\tdescription: \"Clear empty rows when content shrinks (may cause flicker)\",\n\t\t\tcurrentValue: config.clearOnShrink ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Terminal progress toggle (insert after clear-on-shrink)\n\t\tconst clearOnShrinkIndex = items.findIndex((item) => item.id === \"clear-on-shrink\");\n\t\titems.splice(clearOnShrinkIndex + 1, 0, {\n\t\t\tid: \"terminal-progress\",\n\t\t\tlabel: \"Terminal progress\",\n\t\t\tdescription: \"Show OSC 9;4 progress indicators in the terminal tab bar\",\n\t\t\tcurrentValue: config.showTerminalProgress ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Add borders\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autocompact\":\n\t\t\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-images\":\n\t\t\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image-width-cells\":\n\t\t\t\t\t\tcallbacks.onImageWidthCellsChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-resize-images\":\n\t\t\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"block-images\":\n\t\t\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"skill-commands\":\n\t\t\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"steering-mode\":\n\t\t\t\t\t\tcallbacks.onSteeringModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"follow-up-mode\":\n\t\t\t\t\t\tcallbacks.onFollowUpModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"transport\":\n\t\t\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"http-idle-timeout\": {\n\t\t\t\t\t\tconst choice = HTTP_IDLE_TIMEOUT_CHOICES.find((item) => item.label === newValue);\n\t\t\t\t\t\tif (choice) {\n\t\t\t\t\t\t\tcallbacks.onHttpIdleTimeoutMsChange(choice.timeoutMs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"hide-thinking\":\n\t\t\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"collapse-changelog\":\n\t\t\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"quiet-startup\":\n\t\t\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"install-telemetry\":\n\t\t\t\t\t\tcallbacks.onEnableInstallTelemetryChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"double-escape-action\":\n\t\t\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as \"fork\" | \"tree\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tree-filter-mode\":\n\t\t\t\t\t\tcallbacks.onTreeFilterModeChange(\n\t\t\t\t\t\t\tnewValue as \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-padding\":\n\t\t\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"clear-on-shrink\":\n\t\t\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"terminal-progress\":\n\t\t\t\t\t\tcallbacks.onShowTerminalProgressChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: true },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}
1
+ {"version":3,"file":"settings-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/settings-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThinkingLevel } from \"@caupulican/pi-agent-core\";\nimport type { Transport } from \"@caupulican/pi-ai\";\nimport {\n\tContainer,\n\tgetCapabilities,\n\tgetKeybindings,\n\tInput,\n\ttype SelectItem,\n\tSelectList,\n\ttype SettingItem,\n\tSettingsList,\n\tSpacer,\n\tText,\n} from \"@caupulican/pi-tui\";\nimport { type CostGuardSettings, DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD } from \"../../../core/cost-guard.ts\";\nimport { DEFAULT_WORKER_FLEET_LIMITS } from \"../../../core/delegation/worker-fleet-limits.ts\";\nimport { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from \"../../../core/http-dispatcher.ts\";\nimport { DEFAULT_AUTO_LEARN_SETTINGS, resolveAutoLearnSettings } from \"../../../core/learning/auto-learn-settings.ts\";\nimport type {\n\tAutoLearnSettings,\n\tAutonomyMode,\n\tAutonomySettings,\n\tContextCurationSettings,\n\tContextPromptEnforcementSettings,\n\tLearningPolicySettings,\n\tMemoryRetrievalSettings,\n\tModelCapabilitySettings,\n\tModelRouterSettings,\n\tResearchLaneSettings,\n\tSelfModificationSettings,\n\tSettingsScope,\n\tWarningSettings,\n\tWorkerDelegationSettings,\n} from \"../../../core/settings-manager.ts\";\nimport {\n\tDEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE,\n\tDEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS,\n\tDEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES,\n\tDEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS,\n\tDEFAULT_AUTONOMY_MAX_STALL_TURNS,\n\tDEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED,\n\tDEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS,\n\tDEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD,\n\tDEFAULT_LEARNING_POLICY_ENABLED,\n\tDEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS,\n\tDEFAULT_RESEARCH_LANE_ENABLED,\n\tDEFAULT_RESEARCH_LANE_IDLE_DELAY_MS,\n\tDEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION,\n\tDEFAULT_RESEARCH_LANE_MAX_USD,\n\tDEFAULT_RESEARCH_LANE_MAX_WALL_CLOCK_MS,\n\tDEFAULT_WORKER_DELEGATION_ENABLED,\n\tDEFAULT_WORKER_DELEGATION_MAX_CONCURRENT,\n\tDEFAULT_WORKER_DELEGATION_MAX_USD,\n\tDEFAULT_WORKER_DELEGATION_MAX_WALL_CLOCK_MS,\n\tDEFAULT_WORKER_DELEGATION_WRITE_ENABLED,\n\tMAX_WORKER_DELEGATION_MAX_USD,\n} from \"../../../core/settings-manager.ts\";\nimport { getSelectListTheme, getSettingsListTheme, theme } from \"../theme/theme.ts\";\nimport { THINKING_LEVEL_DESCRIPTIONS } from \"../thinking-level-descriptions.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\nimport { keyDisplayText } from \"./keybinding-hints.ts\";\nimport { COMPACT_SELECTOR_LIST_LAYOUT, SelectorHeading } from \"./selector-list.ts\";\n\nconst AUTO_LEARN_CUSTOM_MODEL_VALUE = \"__custom_auto_learn_model__\";\nconst MODEL_ROUTER_UNSET_MODEL_VALUE = \"__unset_model_router_model__\";\nconst MODEL_ROUTER_INHERIT_THINKING_VALUE = \"__inherit_model_router_thinking__\";\nconst MODEL_ROUTER_INHERIT_THINKING_LABEL = \"(inherit)\";\n\nconst AUTONOMY_MODES: AutonomyMode[] = [\"off\", \"safe\", \"balanced\", \"full\"];\nconst AUTONOMY_GOAL_CONTINUE_TURN_VALUES = [\"0\", \"1\", \"3\", \"5\", \"10\", \"20\"];\nconst AUTONOMY_MAX_STALL_TURN_VALUES = [\"0\", \"5\", \"10\", \"20\", \"30\", \"50\", \"100\"];\nconst AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTE_VALUES = [\"0\", \"15\", \"30\", \"60\", \"120\", \"240\", \"480\", \"1440\"];\nconst AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS_VALUES = [\"0\", \"250\", \"1000\", \"5000\", \"30000\", \"60000\"];\n\nconst RESEARCH_LANE_MAX_USD_VALUES = [\"0.05\", \"0.1\", \"0.25\", \"0.5\", \"1\", \"2\"];\nconst RESEARCH_LANE_MAX_WALL_CLOCK_MS_VALUES = [\"0\", \"30000\", \"60000\", \"120000\", \"300000\", \"600000\"];\nconst RESEARCH_LANE_IDLE_DELAY_MS_VALUES = [\"0\", \"250\", \"1000\", \"5000\", \"30000\", \"60000\"];\nconst RESEARCH_LANE_MAX_RUNS_PER_SESSION_VALUES = [\"0\", \"1\", \"3\", \"5\", \"10\", \"25\", \"50\"];\n\nconst CONTEXT_POLICY_PRESERVE_RECENT_MESSAGES_VALUES = [\"2\", \"4\", \"8\", \"16\", \"24\", \"32\"];\nconst CONTEXT_POLICY_MIN_CHARS_VALUES = [\"300\", \"600\", \"1200\", \"2400\", \"4800\"];\n\nconst CONTEXT_POLICY_ENFORCEMENT_DEFAULTS = {\n\tenabled: false,\n\tpreserveRecentMessages: 24,\n\tminChars: 1200,\n} as const;\n\nconst CONTEXT_MEMORY_RETRIEVAL_MAX_RESULTS_VALUES = [\"1\", \"3\", \"5\", \"10\", \"20\"];\n\nconst CONTEXT_MEMORY_RETRIEVAL_DEFAULTS = {\n\tenabled: true,\n\tmaxResults: 5,\n\tincludeInPrompt: true,\n\tallowExternalEgress: false,\n} as const;\n\nfunction booleanSettingValue(value: boolean | undefined, defaultValue = false): string {\n\treturn (value ?? defaultValue) ? \"true\" : \"false\";\n}\n\nfunction optionalStringValue(value: string | undefined, fallback = \"(not set)\"): string {\n\tconst trimmed = value?.trim();\n\treturn trimmed && trimmed.length > 0 ? trimmed : fallback;\n}\n\nfunction routerTierValue(\n\tmodel: string | undefined,\n\tthinking: ThinkingLevel | undefined,\n\tfallback = \"(not set)\",\n): string {\n\treturn `${optionalStringValue(model, fallback)} · thinking ${thinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL}`;\n}\n\nfunction normalizeOptionalString(value: string): string | undefined {\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction numberSettingValue(value: number | undefined, defaultValue: number): string {\n\treturn String(value ?? defaultValue);\n}\n\nfunction autoLearnModelValue(settings: AutoLearnSettings): string {\n\treturn optionalStringValue(settings.model, DEFAULT_AUTO_LEARN_SETTINGS.model);\n}\n\nfunction selfModificationSummary(settings: SelfModificationSettings): string {\n\tif (!(settings.enabled ?? false)) return \"disabled\";\n\tconst hasPath =\n\t\tBoolean(settings.sourcePath?.trim()) ||\n\t\t(Array.isArray(settings.sourcePaths) && settings.sourcePaths.some((candidate) => Boolean(candidate?.trim())));\n\treturn hasPath ? \"enabled\" : \"enabled (missing path)\";\n}\n\nfunction costGuardSummary(settings: CostGuardSettings): string {\n\tif (!settings.enabled) return \"disabled\";\n\treturn `${settings.action} at $${settings.maxTurnUsd.toFixed(2)}/turn`;\n}\n\nfunction autonomyModeValue(settings: AutonomySettings): AutonomyMode {\n\treturn settings.mode && AUTONOMY_MODES.includes(settings.mode) ? settings.mode : \"off\";\n}\n\nfunction autonomySummary(settings: AutonomySettings): string {\n\tconst mode = autonomyModeValue(settings);\n\tconst turns = settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS;\n\tconst stall = settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS;\n\tconst autoContinue = settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE;\n\tconst modeLabel = mode === \"full\" ? \"standing autonomy\" : mode;\n\treturn `${modeLabel}, ${turns === 0 ? \"unbounded turns\" : `${turns} turns`}, stall ${stall}, auto ${autoContinue ? \"on\" : \"off\"}`;\n}\n\nfunction autonomyGoalContinueTurnsValue(settings: AutonomySettings): string {\n\treturn String(settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS);\n}\n\nfunction autonomyMaxStallTurnsValue(settings: AutonomySettings): string {\n\treturn String(settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS);\n}\n\nfunction autonomyGoalContinueMaxWallClockMinutesValue(settings: AutonomySettings): string {\n\treturn String(settings.goalContinueMaxWallClockMinutes ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES);\n}\n\nfunction autonomyGoalAutoContinueValue(settings: AutonomySettings): string {\n\treturn String(settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE);\n}\n\nfunction autonomyGoalAutoContinueDelayMsValue(settings: AutonomySettings): string {\n\treturn String(settings.goalAutoContinueDelayMs ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS);\n}\n\nfunction researchLaneSummary(settings: ResearchLaneSettings): string {\n\tif (!(settings.enabled ?? DEFAULT_RESEARCH_LANE_ENABLED)) return \"disabled\";\n\tconst maxUsd = settings.maxUsd ?? DEFAULT_RESEARCH_LANE_MAX_USD;\n\tconst maxRuns = settings.maxRunsPerSession ?? DEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION;\n\treturn `enabled ($${maxUsd}/pass, ${maxRuns} runs/session)`;\n}\n\nfunction contextCurationSummary(settings: ContextCurationSettings): string {\n\tif (!settings.enabled) return \"disabled\";\n\treturn `on · ${settings.model ?? \"no model\"} · ${settings.maxJobsPerTurn ?? 4} jobs/turn`;\n}\n\nfunction learningPolicySummary(settings: LearningPolicySettings): string {\n\tif (!(settings.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED)) return \"disabled (legacy direct-apply)\";\n\tconst autoApply = settings.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED;\n\tconst confidence = settings.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD;\n\treturn `on · auto-apply ${autoApply ? \"on\" : \"off\"} · conf>=${confidence}`;\n}\n\nfunction modelCapabilitySummary(settings: ModelCapabilitySettings): string {\n\tconst mode = settings.mode ?? \"auto\";\n\treturn mode === \"auto\" ? \"auto (derived from the model's context window)\" : mode;\n}\n\nfunction workerDelegationSummary(settings: WorkerDelegationSettings): string {\n\tif (!(settings.enabled ?? DEFAULT_WORKER_DELEGATION_ENABLED)) return \"disabled\";\n\tconst maxUsd = settings.maxUsd ?? DEFAULT_WORKER_DELEGATION_MAX_USD;\n\treturn maxUsd > 0 ? `enabled ($${maxUsd}/worker)` : \"enabled (unbounded)\";\n}\n\nfunction autoLearnSummary(settings: AutoLearnSettings, autonomyMode: AutonomyMode): string {\n\tconst effective = resolveAutoLearnSettings(autonomyMode, settings);\n\treturn effective.enabled ? `enabled (${effective.model})` : \"disabled\";\n}\n\nfunction contextPolicyEnforcementSummary(settings: ContextPromptEnforcementSettings): string {\n\tif (!(settings.enabled ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.enabled)) return \"disabled\";\n\tconst preserve = settings.preserveRecentMessages ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.preserveRecentMessages;\n\tconst minChars = settings.minChars ?? CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.minChars;\n\treturn `enabled (preserve ${preserve}, min ${minChars} chars)`;\n}\n\nfunction contextMemoryRetrievalSummary(settings: MemoryRetrievalSettings): string {\n\tconst externalEgress = settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress;\n\tif (!(settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled)) {\n\t\treturn `disabled (${externalEgress ? \"external consent on\" : \"external off\"})`;\n\t}\n\tconst maxResults = settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults;\n\tconst includeInPrompt = settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt;\n\treturn `enabled (max ${maxResults}${includeInPrompt ? \", in prompt\" : \"\"}, ${externalEgress ? \"external on\" : \"local only\"})`;\n}\n\nfunction modelRouterSummary(settings: ModelRouterSettings): string {\n\tconst state = settings.enabled ? \"enabled\" : \"disabled\";\n\tconst gate = settings.fitnessGate ? \"gate on\" : \"gate off\";\n\treturn `${state} · ${gate} · cheap: ${optionalStringValue(settings.cheapModel)} · medium: ${optionalStringValue(settings.mediumModel)} · expensive: ${optionalStringValue(settings.expensiveModel)} · learn: ${optionalStringValue(settings.learningModel, \"active\")}`;\n}\n\nfunction buildAutoLearnModelOptions(\n\tsettings: AutoLearnSettings,\n\tconfiguredModelOptions: SelectItem[] | undefined,\n\tcurrentModelPattern: string | undefined,\n): SelectItem[] {\n\tconst currentValue = autoLearnModelValue(settings);\n\tconst options: SelectItem[] = [\n\t\t{\n\t\t\tvalue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\tlabel: \"active\",\n\t\t\tdescription: currentModelPattern\n\t\t\t\t? `Use the current session model (${currentModelPattern})`\n\t\t\t\t: \"Use the current session model\",\n\t\t},\n\t];\n\tconst seen = new Set(options.map((option) => option.value));\n\n\tfor (const option of configuredModelOptions ?? []) {\n\t\tif (seen.has(option.value)) continue;\n\t\toptions.push(option);\n\t\tseen.add(option.value);\n\t}\n\n\tif (currentValue !== DEFAULT_AUTO_LEARN_SETTINGS.model && !seen.has(currentValue)) {\n\t\toptions.push({\n\t\t\tvalue: currentValue,\n\t\t\tlabel: currentValue,\n\t\t\tdescription: \"Current custom setting\",\n\t\t});\n\t\tseen.add(currentValue);\n\t}\n\n\toptions.push({\n\t\tvalue: AUTO_LEARN_CUSTOM_MODEL_VALUE,\n\t\tlabel: \"Manual / custom…\",\n\t\tdescription: \"Type a model pattern not listed above\",\n\t});\n\n\treturn options;\n}\n\nfunction buildModelRouterRoleModelOptions(options: {\n\tcurrentValue: string | undefined;\n\tconfiguredModelOptions: SelectItem[] | undefined;\n\tcurrentModelPattern: string | undefined;\n\tincludeActive: boolean;\n\tunsetDescription?: string;\n}): SelectItem[] {\n\tconst modelOptions: SelectItem[] = [];\n\tconst seen = new Set<string>();\n\n\tif (options.includeActive) {\n\t\tmodelOptions.push({\n\t\t\tvalue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\tlabel: \"active\",\n\t\t\tdescription: options.currentModelPattern\n\t\t\t\t? `Use the current session model (${options.currentModelPattern})`\n\t\t\t\t: \"Use the current session model\",\n\t\t});\n\t\tseen.add(DEFAULT_AUTO_LEARN_SETTINGS.model);\n\t} else {\n\t\tmodelOptions.push({\n\t\t\tvalue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\tlabel: \"(unset)\",\n\t\t\tdescription: options.unsetDescription ?? \"Clear this model setting\",\n\t\t});\n\t\tseen.add(MODEL_ROUTER_UNSET_MODEL_VALUE);\n\t}\n\n\tfor (const option of options.configuredModelOptions ?? []) {\n\t\tif (seen.has(option.value)) continue;\n\t\tmodelOptions.push(option);\n\t\tseen.add(option.value);\n\t}\n\n\tconst currentValue = options.currentValue?.trim();\n\tif (currentValue && !seen.has(currentValue)) {\n\t\tmodelOptions.push({\n\t\t\tvalue: currentValue,\n\t\t\tlabel: currentValue,\n\t\t\tdescription: \"Current custom setting\",\n\t\t});\n\t\tseen.add(currentValue);\n\t}\n\n\tmodelOptions.push({\n\t\tvalue: AUTO_LEARN_CUSTOM_MODEL_VALUE,\n\t\tlabel: \"Manual / custom…\",\n\t\tdescription: \"Type a model pattern not listed above\",\n\t});\n\n\treturn modelOptions;\n}\n\nfunction buildModelRouterThinkingOptions(\n\tinheritDescription: string,\n\tavailableLevels: ThinkingLevel[] = Object.keys(THINKING_LEVEL_DESCRIPTIONS) as ThinkingLevel[],\n): SelectItem[] {\n\treturn [\n\t\t{\n\t\t\tvalue: MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\tlabel: MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\tdescription: inheritDescription,\n\t\t},\n\t\t...availableLevels.map((level) => ({\n\t\t\tvalue: level,\n\t\t\tlabel: level,\n\t\t\tdescription: THINKING_LEVEL_DESCRIPTIONS[level],\n\t\t})),\n\t];\n}\n\nexport interface SettingsConfig {\n\tautoCompact: boolean;\n\tcostGuard: CostGuardSettings;\n\tcostGuardScope?: SettingsScope;\n\tshowImages: boolean;\n\timageWidthCells: number;\n\tautoResizeImages: boolean;\n\tblockImages: boolean;\n\tenableSkillCommands: boolean;\n\tsteeringMode: \"all\" | \"one-at-a-time\";\n\tfollowUpMode: \"all\" | \"one-at-a-time\";\n\ttransport: Transport;\n\thttpIdleTimeoutMs: number;\n\tthinkingLevel: ThinkingLevel;\n\tavailableThinkingLevels: ThinkingLevel[];\n\tcurrentTheme: string;\n\tavailableThemes: string[];\n\thideThinkingBlock: boolean;\n\tprojectContextFiles: \"off\" | \"on-demand\";\n\tprojectContextFilesScope?: SettingsScope;\n\tcollapseChangelog: boolean;\n\tenableInstallTelemetry: boolean;\n\tdoubleEscapeAction: \"fork\" | \"tree\" | \"none\";\n\ttreeFilterMode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\";\n\tshowHardwareCursor: boolean;\n\teditorPaddingX: number;\n\tautocompleteMaxVisible: number;\n\tquietStartup: boolean;\n\tclearOnShrink: boolean;\n\tshowTerminalProgress: boolean;\n\twarnings: WarningSettings;\n\tselfModification: {\n\t\tenabled: boolean;\n\t\tsourcePath?: string;\n\t\tsourcePaths?: string[];\n\t};\n\tselfModificationScope?: SettingsScope;\n\tautonomy: AutonomySettings;\n\tautonomyScope?: SettingsScope;\n\tresearchLane: ResearchLaneSettings;\n\tresearchLaneScope?: SettingsScope;\n\tworkerDelegation: WorkerDelegationSettings;\n\tcontextCuration: ContextCurationSettings;\n\tcontextCurationScope?: SettingsScope;\n\tlearningPolicy: LearningPolicySettings;\n\tlearningPolicyScope?: SettingsScope;\n\tmodelCapability: ModelCapabilitySettings;\n\tmodelCapabilityScope?: SettingsScope;\n\tworkerDelegationScope?: SettingsScope;\n\tmodelRouter: ModelRouterSettings;\n\tmodelRouterScope?: SettingsScope;\n\tautoLearn: AutoLearnSettings;\n\tautoLearnScope?: SettingsScope;\n\tcontextPolicyEnforcement: ContextPromptEnforcementSettings;\n\tcontextPolicyEnforcementScope?: SettingsScope;\n\tcontextMemoryRetrieval: MemoryRetrievalSettings;\n\tcontextMemoryRetrievalScope?: SettingsScope;\n\tcurrentModelPattern?: string;\n\tautoLearnModelOptions?: SelectItem[];\n\t/** Resolve the concrete thinking surface for a configured model pattern. */\n\tresolveModelThinkingLevels?: (modelPattern: string | undefined) => ThinkingLevel[] | undefined;\n\tactiveProfileName?: string;\n\tprofileOptions?: SelectItem[];\n\texternalResourceRoots?: string[];\n\ttrustedResourceRoots?: string[];\n}\n\nexport interface SettingsCallbacks {\n\tonAutoCompactChange: (enabled: boolean) => void;\n\tonCostGuardChange: (settings: CostGuardSettings, scope: SettingsScope) => void;\n\tonShowImagesChange: (enabled: boolean) => void;\n\tonImageWidthCellsChange: (width: number) => void;\n\tonAutoResizeImagesChange: (enabled: boolean) => void;\n\tonBlockImagesChange: (blocked: boolean) => void;\n\tonEnableSkillCommandsChange: (enabled: boolean) => void;\n\tonSteeringModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonFollowUpModeChange: (mode: \"all\" | \"one-at-a-time\") => void;\n\tonTransportChange: (transport: Transport) => void;\n\tonHttpIdleTimeoutMsChange: (timeoutMs: number) => void;\n\tonThinkingLevelChange: (level: ThinkingLevel) => void;\n\tonThemeChange: (theme: string) => void;\n\tonThemePreview?: (theme: string) => void;\n\tonHideThinkingBlockChange: (hidden: boolean) => void;\n\tonProjectContextFilesChange: (mode: \"off\" | \"on-demand\", scope: SettingsScope) => void;\n\tonCollapseChangelogChange: (collapsed: boolean) => void;\n\tonEnableInstallTelemetryChange: (enabled: boolean) => void;\n\tonDoubleEscapeActionChange: (action: \"fork\" | \"tree\" | \"none\") => void;\n\tonTreeFilterModeChange: (mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\") => void;\n\tonShowHardwareCursorChange: (enabled: boolean) => void;\n\tonEditorPaddingXChange: (padding: number) => void;\n\tonAutocompleteMaxVisibleChange: (maxVisible: number) => void;\n\tonQuietStartupChange: (enabled: boolean) => void;\n\tonClearOnShrinkChange: (enabled: boolean) => void;\n\tonShowTerminalProgressChange: (enabled: boolean) => void;\n\tonWarningsChange: (warnings: WarningSettings) => void;\n\tonSelfModificationChange: (settings: SelfModificationSettings, scope: SettingsScope) => void;\n\tonAutonomyChange: (settings: AutonomySettings, scope: SettingsScope) => void;\n\tonResearchLaneChange: (settings: ResearchLaneSettings, scope: SettingsScope) => void;\n\tonWorkerDelegationChange: (settings: WorkerDelegationSettings, scope: SettingsScope) => void;\n\tonContextCurationChange: (settings: ContextCurationSettings, scope: SettingsScope) => void;\n\tonLearningPolicyChange: (settings: LearningPolicySettings, scope: SettingsScope) => void;\n\tonModelCapabilityChange: (settings: ModelCapabilitySettings, scope: SettingsScope) => void;\n\tonModelRouterChange: (settings: ModelRouterSettings, scope: SettingsScope) => void;\n\tonAutoLearnChange: (settings: AutoLearnSettings, scope: SettingsScope) => void;\n\tonContextPolicyEnforcementChange: (settings: ContextPromptEnforcementSettings, scope: SettingsScope) => void;\n\tonContextMemoryRetrievalChange: (settings: MemoryRetrievalSettings, scope: SettingsScope) => void;\n\tonResourcesHubAction?: (action: string) => void;\n\tonCancel: () => void;\n}\n\nclass TextInputSubmenu extends Container {\n\tprivate input: Input;\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\tcurrentValue: string,\n\t\tonSubmit: (value: string) => void,\n\t\tonCancel: () => void,\n\t\temptyHint = \"empty clears the setting\",\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(title, description));\n\n\t\tthis.input = new Input();\n\t\tthis.input.setValue(currentValue);\n\t\tthis.input.focused = true;\n\t\tthis.input.onSubmit = onSubmit;\n\t\tthis.input.onEscape = onCancel;\n\t\tthis.addChild(this.input);\n\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", ` Enter to save · Esc to go back · ${emptyHint}`), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.input.handleInput(data);\n\t}\n}\n\nclass ModelSelectionSubmenu extends Container {\n\tprivate searchInput: Input;\n\tprivate selectList: SelectList;\n\tprivate customInput: TextInputSubmenu | null = null;\n\n\tconstructor(\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tlabels: {\n\t\t\ttitle: string;\n\t\t\tdescription: string;\n\t\t\tcustomTitle: string;\n\t\t\tcustomDescription: string;\n\t\t\tcustomEmptyHint: string;\n\t\t\tcustomEmptyValue: string | undefined;\n\t\t} = {\n\t\t\ttitle: \"Auto Learn Scavenger Model\",\n\t\t\tdescription:\n\t\t\t\t\"Choose active or a model from currently configured subscription/API accounts. Type to filter; choose manual for a custom pattern.\",\n\t\t\tcustomTitle: \"Custom Auto Learn Model\",\n\t\t\tcustomDescription: 'Enter \"active\" or a provider/model pattern like \"openai/gpt-5.4\".',\n\t\t\tcustomEmptyHint: 'empty uses \"active\"',\n\t\t\tcustomEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t},\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(labels.title, labels.description));\n\n\t\tthis.searchInput = new Input();\n\t\tthis.searchInput.focused = true;\n\t\tthis.addChild(this.searchInput);\n\t\tthis.addChild(new Spacer(1));\n\n\t\tthis.selectList = new SelectList(\n\t\t\toptions,\n\t\t\tMath.min(options.length, 10),\n\t\t\tgetSelectListTheme(),\n\t\t\tCOMPACT_SELECTOR_LIST_LAYOUT,\n\t\t);\n\n\t\tconst currentIndex = options.findIndex((option) => option.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tif (item.value === AUTO_LEARN_CUSTOM_MODEL_VALUE) {\n\t\t\t\tthis.customInput = new TextInputSubmenu(\n\t\t\t\t\tlabels.customTitle,\n\t\t\t\t\tlabels.customDescription,\n\t\t\t\t\tcurrentValue === labels.customEmptyValue ? \"\" : currentValue,\n\t\t\t\t\t(value) => {\n\t\t\t\t\t\tonSelect(normalizeOptionalString(value) ?? labels.customEmptyValue ?? \"\");\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.customInput = null;\n\t\t\t\t\t},\n\t\t\t\t\tlabels.customEmptyHint,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSelect(item.value);\n\t\t};\n\t\tthis.selectList.onCancel = onCancel;\n\t\tthis.addChild(this.selectList);\n\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Type to filter · Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tif (this.customInput) {\n\t\t\tthis.customInput.handleInput(data);\n\t\t\treturn;\n\t\t}\n\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(data, \"tui.select.up\") || kb.matches(data, \"tui.select.down\")) {\n\t\t\tthis.selectList.handleInput(data);\n\t\t\treturn;\n\t\t}\n\t\tif (kb.matches(data, \"tui.select.confirm\") || kb.matches(data, \"tui.select.cancel\")) {\n\t\t\tthis.selectList.handleInput(data);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.searchInput.handleInput(data);\n\t\tthis.selectList.setFilter(this.searchInput.getValue());\n\t}\n\n\trender(width: number): string[] {\n\t\treturn this.customInput ? this.customInput.render(width) : super.render(width);\n\t}\n\n\tinvalidate(): void {\n\t\tsuper.invalidate();\n\t\tthis.customInput?.invalidate?.();\n\t}\n}\n\nclass SettingsListSubmenu extends Container {\n\tprivate settingsList!: SettingsList;\n\n\tprotected mountSettingsList(\n\t\titems: SettingItem[],\n\t\tonChange: (id: string, newValue: string) => void,\n\t\tonCancel: () => void,\n\t): void {\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\tMath.min(items.length, 10),\n\t\t\tgetSettingsListTheme(),\n\t\t\tonChange,\n\t\t\tonCancel,\n\t\t);\n\t\tthis.addChild(this.settingsList);\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.settingsList.handleInput(data);\n\t}\n}\n\nclass CostGuardSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: CostGuardSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: CostGuardSettings,\n\t\tonChange: (settings: CostGuardSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tthis.mountSettingsList(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-scope\",\n\t\t\t\t\tlabel: \"Save scope\",\n\t\t\t\t\tdescription: \"Save this foreground cost guard globally or in the current project's .pi/settings.json\",\n\t\t\t\t\tcurrentValue: this.scope,\n\t\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-enabled\",\n\t\t\t\t\tlabel: \"Enabled\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"Explicit opt-in. A saved threshold alone remains dormant and never limits or labels a turn.\",\n\t\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-max-turn-usd\",\n\t\t\t\t\tlabel: \"Maximum USD per turn\",\n\t\t\t\t\tdescription: \"Projected foreground plus current-turn background spend; zero keeps the guard inactive\",\n\t\t\t\t\tcurrentValue: String(this.state.maxTurnUsd),\n\t\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\t\"Foreground Cost Guard Threshold\",\n\t\t\t\t\t\t\t\"Enter a nonnegative finite USD projection threshold. The Enabled switch is still mandatory.\",\n\t\t\t\t\t\t\tString(this.state.maxTurnUsd),\n\t\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t\tconst maxTurnUsd = Number(value.trim());\n\t\t\t\t\t\t\t\tif (!Number.isFinite(maxTurnUsd) || maxTurnUsd < 0) {\n\t\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxTurnUsd };\n\t\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\t\tdone(String(maxTurnUsd));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\t\"nonnegative finite number; invalid input keeps the current value\",\n\t\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"cost-guard-action\",\n\t\t\t\t\tlabel: \"Action\",\n\t\t\t\t\tdescription: \"warn only, or reduce reasoning one supported level for the imminent request\",\n\t\t\t\t\tcurrentValue: this.state.action,\n\t\t\t\t\tvalues: [\"warn\", \"downgrade\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"cost-guard-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cost-guard-enabled\":\n\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tenabled: newValue === \"true\",\n\t\t\t\t\t\t\tmaxTurnUsd:\n\t\t\t\t\t\t\t\tnewValue === \"true\" && this.state.maxTurnUsd <= 0\n\t\t\t\t\t\t\t\t\t? DEFAULT_ENABLED_COST_GUARD_MAX_TURN_USD\n\t\t\t\t\t\t\t\t\t: this.state.maxTurnUsd,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"cost-guard-action\":\n\t\t\t\t\t\tthis.state = { ...this.state, action: newValue === \"downgrade\" ? \"downgrade\" : \"warn\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nconst PROJECT_CONTEXT_SCOPE_VALUES = [\"this-directory\", \"this-project\", \"all-projects\"] as const;\ntype ProjectContextScopeValue = (typeof PROJECT_CONTEXT_SCOPE_VALUES)[number];\n\nfunction projectContextScopeValue(scope: SettingsScope | undefined): ProjectContextScopeValue {\n\tif (scope === \"project\") return \"this-project\";\n\tif (scope === \"global\") return \"all-projects\";\n\treturn \"this-directory\";\n}\n\nfunction projectContextScopeFromValue(value: string): SettingsScope {\n\tif (value === \"this-project\") return \"project\";\n\tif (value === \"all-projects\") return \"global\";\n\treturn \"directoryProfile\";\n}\n\nfunction projectContextFilesSummary(mode: \"off\" | \"on-demand\", scope: SettingsScope | undefined): string {\n\tif (mode !== \"on-demand\") return \"global only\";\n\tif (scope === \"project\") return \"this project\";\n\tif (scope === \"global\") return \"all projects\";\n\treturn \"this directory\";\n}\n\nclass ProjectContextFilesSubmenu extends SettingsListSubmenu {\n\tprivate mode: \"off\" | \"on-demand\";\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tmode: \"off\" | \"on-demand\",\n\t\tonChange: (mode: \"off\" | \"on-demand\", scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"directoryProfile\",\n\t) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.scope = scope;\n\t\tthis.mountSettingsList(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tid: \"project-context-scope\",\n\t\t\t\t\tlabel: \"Save scope\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"this-directory: this folder only (user overlay). this-project: .pi/settings.json. all-projects: every repo.\",\n\t\t\t\t\tcurrentValue: projectContextScopeValue(this.scope),\n\t\t\t\t\tvalues: [...PROJECT_CONTEXT_SCOPE_VALUES],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"project-context-load\",\n\t\t\t\t\tlabel: \"Load\",\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"global-only uses ~/.pi/agent/AGENTS.md. on-demand also lists this project's AGENTS.md for the agent to read.\",\n\t\t\t\t\tcurrentValue: this.mode === \"on-demand\" ? \"on-demand\" : \"global-only\",\n\t\t\t\t\tvalues: [\"global-only\", \"on-demand\"],\n\t\t\t\t},\n\t\t\t],\n\t\t\t(id, newValue) => {\n\t\t\t\tif (id === \"project-context-scope\") {\n\t\t\t\t\tthis.scope = projectContextScopeFromValue(newValue);\n\t\t\t\t\tonChange(this.mode, this.scope);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.mode = newValue === \"on-demand\" ? \"on-demand\" : \"off\";\n\t\t\t\tonChange(this.mode, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass SelfModificationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: SelfModificationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: SelfModificationSettings,\n\t\tonChange: (settings: SelfModificationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings, enabled: settings.enabled ?? false };\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"self-modification-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this self-modification configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Allow agents to modify Pi's own source/harness only when explicitly tasked\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification-source-path\",\n\t\t\t\tlabel: \"Source path\",\n\t\t\t\tdescription: \"Path to the pi-adaptative source checkout agents may edit for self-evolution\",\n\t\t\t\tcurrentValue: optionalStringValue(this.state.sourcePath),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Pi-adaptative Source Path\",\n\t\t\t\t\t\t\"Set the source checkout path used by self-evolution guardrails. Empty clears it.\",\n\t\t\t\t\t\tthis.state.sourcePath ?? \"\",\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst sourcePath = normalizeOptionalString(value);\n\t\t\t\t\t\t\tthis.state = { ...this.state, sourcePath };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(optionalStringValue(sourcePath));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"self-modification-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"self-modification-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass AutonomySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: AutonomySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: AutonomySettings,\n\t\tonChange: (settings: AutonomySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\tmode: autonomyModeValue(settings),\n\t\t\tmaxStallTurns: settings.maxStallTurns ?? DEFAULT_AUTONOMY_MAX_STALL_TURNS,\n\t\t\tgoalContinueTurns: settings.goalContinueTurns ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_TURNS,\n\t\t\tgoalContinueMaxWallClockMinutes:\n\t\t\t\tsettings.goalContinueMaxWallClockMinutes ?? DEFAULT_AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTES,\n\t\t\tgoalAutoContinue: settings.goalAutoContinue ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE,\n\t\t\tgoalAutoContinueDelayMs: settings.goalAutoContinueDelayMs ?? DEFAULT_AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autonomy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this autonomy preset globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-mode\",\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"One preset for learning and root-session reflection cues: off, safe, balanced, or standing autonomy\",\n\t\t\t\tcurrentValue: autonomyModeValue(this.state),\n\t\t\t\tvalues: AUTONOMY_MODES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-auto-continue\",\n\t\t\t\tlabel: \"Goal auto-continue\",\n\t\t\t\tdescription: \"Continue an active goal whenever Pi becomes idle until a real terminal condition\",\n\t\t\t\tcurrentValue: autonomyGoalAutoContinueValue(this.state),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-continue-turns\",\n\t\t\t\tlabel: \"Goal turns\",\n\t\t\t\tdescription: \"Optional continuation prompt limit; 0 is unbounded like Codex\",\n\t\t\t\tcurrentValue: autonomyGoalContinueTurnsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_CONTINUE_TURN_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-max-stall-turns\",\n\t\t\t\tlabel: \"Goal recovery threshold\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Unchanged rounds before Pi must inspect failure evidence and switch approach without stopping\",\n\t\t\t\tcurrentValue: autonomyMaxStallTurnsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_MAX_STALL_TURN_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-wall-clock-minutes\",\n\t\t\t\tlabel: \"Goal max minutes\",\n\t\t\t\tdescription: \"Wall-clock budget per goal continuation loop; 0 disables the time budget\",\n\t\t\t\tcurrentValue: autonomyGoalContinueMaxWallClockMinutesValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_CONTINUE_MAX_WALL_CLOCK_MINUTE_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy-goal-auto-continue-delay-ms\",\n\t\t\t\tlabel: \"Goal delay ms\",\n\t\t\t\tdescription: \"Delay before idle auto-continuation starts; 0 starts immediately after idle\",\n\t\t\t\tcurrentValue: autonomyGoalAutoContinueDelayMsValue(this.state),\n\t\t\t\tvalues: AUTONOMY_GOAL_AUTO_CONTINUE_DELAY_MS_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autonomy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-mode\":\n\t\t\t\t\t\tthis.state = { ...this.state, mode: newValue as AutonomyMode };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-auto-continue\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalAutoContinue: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-continue-turns\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalContinueTurns: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-max-stall-turns\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxStallTurns: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-wall-clock-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalContinueMaxWallClockMinutes: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autonomy-goal-auto-continue-delay-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, goalAutoContinueDelayMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ResearchLaneSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ResearchLaneSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ResearchLaneSettings,\n\t\tonChange: (settings: ResearchLaneSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? DEFAULT_RESEARCH_LANE_ENABLED,\n\t\t\tmaxUsd: settings.maxUsd ?? DEFAULT_RESEARCH_LANE_MAX_USD,\n\t\t\tmaxWallClockMs: settings.maxWallClockMs ?? DEFAULT_RESEARCH_LANE_MAX_WALL_CLOCK_MS,\n\t\t\tidleDelayMs: settings.idleDelayMs ?? DEFAULT_RESEARCH_LANE_IDLE_DELAY_MS,\n\t\t\tmaxRunsPerSession: settings.maxRunsPerSession ?? DEFAULT_RESEARCH_LANE_MAX_RUNS_PER_SESSION,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"research-lane-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these research-lane settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Run bounded, read-only background research when idle with an active goal (requires autonomy mode on)\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-usd\",\n\t\t\t\tlabel: \"Budget per pass\",\n\t\t\t\tdescription: \"USD budget per research pass; breaches mark the lane budget_exhausted in diagnostics\",\n\t\t\t\tcurrentValue: String(this.state.maxUsd),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_USD_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-wall-clock-ms\",\n\t\t\t\tlabel: \"Max milliseconds\",\n\t\t\t\tdescription: \"Wall-clock budget per research pass; 0 disables the time budget\",\n\t\t\t\tcurrentValue: String(this.state.maxWallClockMs),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_WALL_CLOCK_MS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-idle-delay-ms\",\n\t\t\t\tlabel: \"Idle delay ms\",\n\t\t\t\tdescription: \"Delay before idle-triggered research starts; 0 starts immediately after idle\",\n\t\t\t\tcurrentValue: String(this.state.idleDelayMs),\n\t\t\t\tvalues: RESEARCH_LANE_IDLE_DELAY_MS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane-max-runs-per-session\",\n\t\t\t\tlabel: \"Runs per session\",\n\t\t\t\tdescription: \"Maximum idle-triggered research passes per session; explicit /autonomy research is uncapped\",\n\t\t\t\tcurrentValue: String(this.state.maxRunsPerSession),\n\t\t\t\tvalues: RESEARCH_LANE_MAX_RUNS_PER_SESSION_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"research-lane-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-usd\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxUsd: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-wall-clock-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-idle-delay-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, idleDelayMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"research-lane-max-runs-per-session\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxRunsPerSession: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass LearningPolicySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: LearningPolicySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: LearningPolicySettings,\n\t\tonChange: (settings: LearningPolicySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"learning-policy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these learning-policy settings globally or in the project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gate root-session reflection writes through the learning policy (proposals, audits, rollback). Disabled keeps legacy direct-apply with audit records.\",\n\t\t\t\tcurrentValue: String(this.state.enabled ?? DEFAULT_LEARNING_POLICY_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-auto-apply\",\n\t\t\t\tlabel: \"Auto-apply\",\n\t\t\t\tdescription: \"Allow eligible writes to auto-apply; otherwise everything becomes a proposal\",\n\t\t\t\tcurrentValue: String(this.state.autoApplyEnabled ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-auto-apply-supersessions\",\n\t\t\t\tlabel: \"Auto-apply supersessions\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow a memory_replace/memory_remove (overwrites or deletes an existing fact) to auto-apply once otherwise eligible; off keeps every supersession a proposal\",\n\t\t\t\tcurrentValue: String(this.state.autoApplySupersessions ?? DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-confidence\",\n\t\t\t\tlabel: \"Confidence threshold\",\n\t\t\t\tdescription: \"Minimum confidence (0-100) before a write may auto-apply; below it, proposal or no-op\",\n\t\t\t\tcurrentValue: String(this.state.confidenceThreshold ?? DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD),\n\t\t\t\tvalues: [\"25\", \"50\", \"60\", \"75\", \"90\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy-min-observations\",\n\t\t\t\tlabel: \"Min observations\",\n\t\t\t\tdescription: \"Observations required before auto-apply (allowedAutoApplyLayers stays JSON-only)\",\n\t\t\t\tcurrentValue: String(this.state.minObservations ?? DEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS),\n\t\t\t\tvalues: [\"1\", \"2\", \"3\", \"5\"],\n\t\t\t},\n\t\t];\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"learning-policy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-auto-apply\":\n\t\t\t\t\t\tthis.state = { ...this.state, autoApplyEnabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-auto-apply-supersessions\":\n\t\t\t\t\t\tthis.state = { ...this.state, autoApplySupersessions: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-confidence\":\n\t\t\t\t\t\tthis.state = { ...this.state, confidenceThreshold: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"learning-policy-min-observations\":\n\t\t\t\t\t\tthis.state = { ...this.state, minObservations: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ModelCapabilitySettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ModelCapabilitySettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ModelCapabilitySettings,\n\t\tonChange: (settings: ModelCapabilitySettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"model-capability-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save globally or in the project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-capability-mode\",\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t'\"auto\" derives the tool surface and lane budgets from the model\\'s own context window; \"off\" disables adaptation; a class name forces it',\n\t\t\t\tcurrentValue: this.state.mode ?? \"auto\",\n\t\t\t\tvalues: [\"auto\", \"off\", \"full\", \"lean\", \"minimal\", \"chat\"],\n\t\t\t},\n\t\t];\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"model-capability-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-capability-mode\":\n\t\t\t\t\t\tthis.state = { ...this.state, mode: newValue as ModelCapabilitySettings[\"mode\"] };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextCurationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ContextCurationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ContextCurationSettings,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tonChange: (settings: ContextCurationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? false,\n\t\t\tmaxJobsPerTurn: settings.maxJobsPerTurn ?? 4,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst modelValues = [\"(unset)\", ...(modelOptions ?? []).map((option) => option.value).filter(Boolean)];\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-curation-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these curation settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Local brain curator: digests GC-packed stubs and scores stale-chunk relevance. Requires a digest-fit local model (run /fitness <model>).\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-model\",\n\t\t\t\tlabel: \"Curator model\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Local model that runs curation jobs; refused until it passes the digest fitness probe on this host\",\n\t\t\t\tcurrentValue: this.state.model ?? \"(unset)\",\n\t\t\t\tvalues: modelValues,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation-max-jobs\",\n\t\t\t\tlabel: \"Max jobs per turn\",\n\t\t\t\tdescription: \"Curation jobs drained per turn (each is one small local completion)\",\n\t\t\t\tcurrentValue: String(this.state.maxJobsPerTurn),\n\t\t\t\tvalues: [\"1\", \"2\", \"4\", \"8\", \"16\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-curation-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-model\":\n\t\t\t\t\t\tthis.state = { ...this.state, model: newValue === \"(unset)\" ? undefined : newValue };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-curation-max-jobs\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxJobsPerTurn: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass WorkerDelegationSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: WorkerDelegationSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: WorkerDelegationSettings,\n\t\tonChange: (settings: WorkerDelegationSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? DEFAULT_WORKER_DELEGATION_ENABLED,\n\t\t\tmaxConcurrent: settings.maxConcurrent ?? DEFAULT_WORKER_DELEGATION_MAX_CONCURRENT,\n\t\t\tmaxUsd: settings.maxUsd ?? DEFAULT_WORKER_DELEGATION_MAX_USD,\n\t\t\tmaxWallClockMs: settings.maxWallClockMs ?? DEFAULT_WORKER_DELEGATION_MAX_WALL_CLOCK_MS,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save these delegation settings globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow capable models to dispatch autonomous persistent leaf workers; enabled by default, and explicit false is a hard off-switch\",\n\t\t\t\tcurrentValue: String(this.state.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-usd\",\n\t\t\t\tlabel: \"Budget per worker task\",\n\t\t\t\tdescription: \"Cumulative USD budget for one worker task; 0 disables this ceiling\",\n\t\t\t\tcurrentValue: String(this.state.maxUsd),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Worker Task USD Budget\",\n\t\t\t\t\t\t`Enter a nonnegative finite number no greater than ${MAX_WORKER_DELEGATION_MAX_USD}. Zero disables the settings-level cost ceiling.`,\n\t\t\t\t\t\tString(this.state.maxUsd),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxUsd = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isFinite(maxUsd) && maxUsd >= 0 && maxUsd <= MAX_WORKER_DELEGATION_MAX_USD) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxUsd };\n\t\t\t\t\t\t\t\tdone(String(maxUsd));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t`number in [0, ${MAX_WORKER_DELEGATION_MAX_USD}]; invalid input keeps the current value`,\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-wall-clock-ms\",\n\t\t\t\tlabel: \"Worker task milliseconds\",\n\t\t\t\tdescription: \"Active wall-clock budget for one worker task; 0 disables the time budget\",\n\t\t\t\tcurrentValue: String(this.state.maxWallClockMs),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Worker Task Active Time\",\n\t\t\t\t\t\t\"Enter active milliseconds per worker task as a nonnegative safe integer. Zero disables the time ceiling.\",\n\t\t\t\t\t\tString(this.state.maxWallClockMs),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxWallClockMs = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isSafeInteger(maxWallClockMs) && maxWallClockMs >= 0) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs };\n\t\t\t\t\t\t\t\tdone(String(maxWallClockMs));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\"nonnegative safe integer; invalid input keeps the current value\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-write-enabled\",\n\t\t\t\tlabel: \"Allow file writes\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Let workers change files through direct write/edit tools; default authority is machine-wide and explicit false revokes it\",\n\t\t\t\tcurrentValue: String(this.state.writeEnabled ?? DEFAULT_WORKER_DELEGATION_WRITE_ENABLED),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation-max-concurrent\",\n\t\t\t\tlabel: \"Max concurrent workers\",\n\t\t\t\tdescription: `Global scheduler concurrency for leaf workers; the fleet retains at most ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} logical agents per session`,\n\t\t\t\tcurrentValue: String(this.state.maxConcurrent),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew TextInputSubmenu(\n\t\t\t\t\t\t\"Global Worker Concurrency\",\n\t\t\t\t\t\t`Enter any positive safe integer. This limits running leaf workers; fixed safety ceilings separately bound ${DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession} session agents and ${DEFAULT_WORKER_FLEET_LIMITS.maxQueuedDispatches} queued dispatches.`,\n\t\t\t\t\t\tString(this.state.maxConcurrent),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst maxConcurrent = Number(value.trim());\n\t\t\t\t\t\t\tif (Number.isSafeInteger(maxConcurrent) && maxConcurrent > 0) {\n\t\t\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrent };\n\t\t\t\t\t\t\t\tdone(String(maxConcurrent));\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t\"positive safe integer; invalid input keeps the current value\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"worker-delegation-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-usd\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxUsd: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-wall-clock-ms\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxWallClockMs: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-write-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, writeEnabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"worker-delegation-max-concurrent\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrent: Number(newValue) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass AutoLearnSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: AutoLearnSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: AutoLearnSettings,\n\t\tautonomyMode: AutonomyMode,\n\t\tcurrentModelPattern: string | undefined,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tonChange: (settings: AutoLearnSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\t\tconst defaults = resolveAutoLearnSettings(autonomyMode, settings);\n\t\tconst modelDescription = currentModelPattern\n\t\t\t? `Model for explicit/background learning. \"active\" uses ${currentModelPattern}; configured subscription/API models are listed first. Automatic reflection uses the orchestrator's current session turn.`\n\t\t\t: 'Model for explicit/background learning. Use \"active\" for the current session model, or choose a configured subscription/API model. Automatic reflection uses the orchestrator\\'s current session turn.';\n\t\tconst selectableModelOptions = buildAutoLearnModelOptions(this.state, modelOptions, currentModelPattern);\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"auto-learn-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this Auto Learn configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Autonomously trigger background history scavenging for long sessions\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, defaults.enabled),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-model\",\n\t\t\t\tlabel: \"Scavenger model\",\n\t\t\t\tdescription: modelDescription,\n\t\t\t\tcurrentValue: autoLearnModelValue(this.state),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tselectableModelOptions,\n\t\t\t\t\t\tautoLearnModelValue(this.state),\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = { ...this.state, model: value };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(autoLearnModelValue(this.state));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-long-session-messages\",\n\t\t\t\tlabel: \"Message trigger\",\n\t\t\t\tdescription: \"Trigger after this many message entries in the active branch\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.longSessionMessages, defaults.longSessionMessages),\n\t\t\t\tvalues: [\"16\", \"32\", \"64\", \"128\", \"256\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-context-percent\",\n\t\t\t\tlabel: \"Context trigger %\",\n\t\t\t\tdescription: \"Trigger when current context usage reaches this percentage\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.longSessionContextPercent, defaults.longSessionContextPercent),\n\t\t\t\tvalues: [\"50\", \"60\", \"70\", \"80\", \"85\", \"90\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-cooldown-minutes\",\n\t\t\t\tlabel: \"Cooldown minutes\",\n\t\t\t\tdescription: \"Per-session-tenant cooldown between learner launches\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.cooldownMinutes, defaults.cooldownMinutes),\n\t\t\t\tvalues: [\"15\", \"30\", \"60\", \"120\", \"240\", \"1440\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-lease-minutes\",\n\t\t\t\tlabel: \"Lease minutes\",\n\t\t\t\tdescription: \"Shared-state lease duration for a running background learner\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.leaseMinutes, defaults.leaseMinutes),\n\t\t\t\tvalues: [\"30\", \"60\", \"90\", \"180\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-max-concurrent\",\n\t\t\t\tlabel: \"Max learners\",\n\t\t\t\tdescription: \"Maximum running Auto Learn background learners per session tenant\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.maxConcurrentLearners, defaults.maxConcurrentLearners),\n\t\t\t\tvalues: [\"1\", \"2\", \"3\", \"4\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-apply-high-confidence\",\n\t\t\t\tlabel: \"Apply high confidence\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Allow high-confidence memory candidates to be applied automatically; broader write authority follows autonomy.mode\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.applyHighConfidence, defaults.applyHighConfidence),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-review\",\n\t\t\t\tlabel: \"Reflection review\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"After corrective or complex turns, queue a durable root-session reflection cue for the next ordinary turn\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.reflectionReview, defaults.reflectionReview),\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-tool-calls\",\n\t\t\t\tlabel: \"Reflection tool trigger\",\n\t\t\t\tdescription: \"Queue a root-session reflection cue after this many tool calls in one completed turn\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.reflectionMinToolCalls, defaults.reflectionMinToolCalls),\n\t\t\t\tvalues: [\"3\", \"5\", \"8\", \"12\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn-reflection-cooldown\",\n\t\t\t\tlabel: \"Reflection cooldown\",\n\t\t\t\tdescription: \"Per-session-tenant cooldown between automatic root-session reflection cues\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.reflectionCooldownMinutes, defaults.reflectionCooldownMinutes),\n\t\t\t\tvalues: [\"15\", \"30\", \"60\", \"120\", \"1440\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"auto-learn-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-long-session-messages\":\n\t\t\t\t\t\tthis.state = { ...this.state, longSessionMessages: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-context-percent\":\n\t\t\t\t\t\tthis.state = { ...this.state, longSessionContextPercent: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-cooldown-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, cooldownMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-lease-minutes\":\n\t\t\t\t\t\tthis.state = { ...this.state, leaseMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-max-concurrent\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxConcurrentLearners: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-apply-high-confidence\":\n\t\t\t\t\t\tthis.state = { ...this.state, applyHighConfidence: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-review\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionReview: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-tool-calls\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionMinToolCalls: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-learn-reflection-cooldown\":\n\t\t\t\t\t\tthis.state = { ...this.state, reflectionCooldownMinutes: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextPolicyEnforcementSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ContextPromptEnforcementSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ContextPromptEnforcementSettings,\n\t\tonChange: (settings: ContextPromptEnforcementSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = { ...settings };\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-policy-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this context/prompt-policy configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-enabled\",\n\t\t\t\tlabel: \"Prompt policy enforcement\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in: stub stale artifact-backed grep/find output in the model-visible prompt only. Never touches transcript/session history. Requires the artifact_retrieve tool to be active this turn (not configurable here -- it's a runtime fact, not a setting).\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-preserve-recent-messages\",\n\t\t\t\tlabel: \"Preserve recent messages\",\n\t\t\t\tdescription: \"Never stub a tool result within this many of the most recent messages\",\n\t\t\t\tcurrentValue: numberSettingValue(\n\t\t\t\t\tthis.state.preserveRecentMessages,\n\t\t\t\t\tCONTEXT_POLICY_ENFORCEMENT_DEFAULTS.preserveRecentMessages,\n\t\t\t\t),\n\t\t\t\tvalues: CONTEXT_POLICY_PRESERVE_RECENT_MESSAGES_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-min-chars\",\n\t\t\t\tlabel: \"Minimum chars before stubbing\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Only stub a tool result whose original provider-visible text is at least this many characters\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.minChars, CONTEXT_POLICY_ENFORCEMENT_DEFAULTS.minChars),\n\t\t\t\tvalues: CONTEXT_POLICY_MIN_CHARS_VALUES,\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-policy-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-preserve-recent-messages\":\n\t\t\t\t\t\tthis.state = { ...this.state, preserveRecentMessages: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-policy-min-chars\":\n\t\t\t\t\t\tthis.state = { ...this.state, minChars: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ContextMemoryRetrievalSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: MemoryRetrievalSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: MemoryRetrievalSettings,\n\t\tonChange: (settings: MemoryRetrievalSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tenabled: settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled,\n\t\t\tmaxResults: settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults,\n\t\t\tincludeInPrompt: settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt,\n\t\t\tallowExternalEgress: settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress,\n\t\t};\n\t\tthis.scope = scope;\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"context-memory-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Save this local memory-retrieval configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-enabled\",\n\t\t\t\tlabel: \"Local memory retrieval\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default on: search local Pi memory for relevant evidence. Explicit false is a hard off-switch for both legacy recall and context retrieval. External providers remain blocked by the separate consent below.\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-max-results\",\n\t\t\t\tlabel: \"Max results\",\n\t\t\t\tdescription: \"Maximum number of memory items to retrieve per query (1-20)\",\n\t\t\t\tcurrentValue: numberSettingValue(this.state.maxResults, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults),\n\t\t\t\tvalues: CONTEXT_MEMORY_RETRIEVAL_MAX_RESULTS_VALUES,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-include-in-prompt\",\n\t\t\t\tlabel: \"Include in prompt\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default on and budget-gated: surface retrieved memory as bounded, source-labeled untrusted evidence in the model prompt only -- never the transcript or an instruction.\",\n\t\t\t\tcurrentValue: booleanSettingValue(\n\t\t\t\t\tthis.state.includeInPrompt,\n\t\t\t\t\tCONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt,\n\t\t\t\t),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-allow-external-egress\",\n\t\t\t\tlabel: \"Allow external queries\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Explicit consent to send bounded query text to eligible external memory providers. Default off; secret-like and oversized queries still fail closed, and returned recall is centrally fenced as untrusted data.\",\n\t\t\t\tcurrentValue: booleanSettingValue(\n\t\t\t\t\tthis.state.allowExternalEgress,\n\t\t\t\t\tCONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress,\n\t\t\t\t),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"context-memory-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-max-results\":\n\t\t\t\t\t\tthis.state = { ...this.state, maxResults: parseInt(newValue, 10) };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-include-in-prompt\":\n\t\t\t\t\t\tthis.state = { ...this.state, includeInPrompt: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"context-memory-allow-external-egress\":\n\t\t\t\t\t\tthis.state = { ...this.state, allowExternalEgress: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nclass ModelRouterSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: ModelRouterSettings;\n\tprivate scope: SettingsScope;\n\n\tconstructor(\n\t\tsettings: ModelRouterSettings,\n\t\tcurrentModelPattern: string | undefined,\n\t\tmodelOptions: SelectItem[] | undefined,\n\t\tresolveModelThinkingLevels: SettingsConfig[\"resolveModelThinkingLevels\"],\n\t\tonChange: (settings: ModelRouterSettings, scope: SettingsScope) => void,\n\t\tonCancel: () => void,\n\t\tscope: SettingsScope = \"global\",\n\t) {\n\t\tsuper();\n\t\tthis.state = {\n\t\t\t...settings,\n\t\t\tenabled: settings.enabled ?? false,\n\t\t\tlearningModel: settings.learningModel ?? \"active\",\n\t\t};\n\t\tconst levelsForModel = (modelPattern: string | undefined): ThinkingLevel[] | undefined =>\n\t\t\tresolveModelThinkingLevels?.(modelPattern ?? currentModelPattern);\n\t\tconst keepSupportedThinking = (\n\t\t\tlevel: ThinkingLevel | undefined,\n\t\t\tmodelPattern: string | undefined,\n\t\t): ThinkingLevel | undefined => {\n\t\t\tconst levels = levelsForModel(modelPattern);\n\t\t\treturn level && levels && !levels.includes(level) ? undefined : level;\n\t\t};\n\t\tthis.state.cheapThinking = keepSupportedThinking(this.state.cheapThinking, this.state.cheapModel);\n\t\tthis.state.mediumThinking = keepSupportedThinking(this.state.mediumThinking, this.state.mediumModel);\n\t\tthis.state.expensiveThinking = keepSupportedThinking(this.state.expensiveThinking, this.state.expensiveModel);\n\t\tthis.state.executorThinking = keepSupportedThinking(this.state.executorThinking, this.state.executorModel);\n\t\tthis.state.judgeThinking = keepSupportedThinking(this.state.judgeThinking, this.state.judgeModel);\n\t\tthis.scope = scope;\n\t\tconst cheapModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.cheapModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear cheap routing model; research turns fall back to the active session model\",\n\t\t});\n\t\tconst mediumModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.mediumModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear medium routing model; implementation turns fall back according to router policy\",\n\t\t});\n\t\tconst expensiveModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.expensiveModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear expensive routing model; modify turns fall back to the active session model\",\n\t\t});\n\t\tconst judgeModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.judgeModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear judge model; routing judge falls back to the medium model\",\n\t\t});\n\t\tconst executorModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.executorModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: false,\n\t\t\tunsetDescription: \"Clear executor lane model; direct toolkit execution stays disabled\",\n\t\t});\n\t\tconst learningModelOptions = buildModelRouterRoleModelOptions({\n\t\t\tcurrentValue: this.state.learningModel,\n\t\t\tconfiguredModelOptions: modelOptions,\n\t\t\tcurrentModelPattern,\n\t\t\tincludeActive: true,\n\t\t});\n\t\tconst routedTierThinkingOptions = (modelPattern: string | undefined) =>\n\t\t\tbuildModelRouterThinkingOptions(\n\t\t\t\t\"Inherit the session thinking level for this turn, clamped to the routed model\",\n\t\t\t\tlevelsForModel(modelPattern),\n\t\t\t);\n\t\tconst judgeThinkingOptions = () =>\n\t\t\tbuildModelRouterThinkingOptions(\n\t\t\t\t\"Use today's default of off for the routing judge's own completion\",\n\t\t\t\tlevelsForModel(this.state.judgeModel),\n\t\t\t);\n\t\tthis.addChild(new Text(theme.bold(theme.fg(\"accent\", \"Model Router\")), 0, 0));\n\t\tthis.addChild(new Spacer(1));\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"model-router-scope\",\n\t\t\t\tlabel: \"Save scope\",\n\t\t\t\tdescription: \"Save this routing configuration globally or in the current project's .pi/settings.json\",\n\t\t\t\tcurrentValue: this.scope,\n\t\t\t\tvalues: [\"global\", \"project\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-enabled\",\n\t\t\t\tlabel: \"Enabled\",\n\t\t\t\tdescription: \"Route read-only/research turns to cheap model and modify/tool-heavy turns to expensive model\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.enabled),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-cheap\",\n\t\t\t\tlabel: \"Cheap model\",\n\t\t\t\tdescription: \"Pick the model for read-only, research, explanation, and question turns\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.cheapModel, this.state.cheapThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tcheapModelOptions,\n\t\t\t\t\t\tthis.state.cheapModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst cheapModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tcheapModel,\n\t\t\t\t\t\t\t\tcheapThinking: keepSupportedThinking(this.state.cheapThinking, cheapModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.cheapModel, this.state.cheapThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Cheap / Research Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Cheap / Research Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-medium\",\n\t\t\t\tlabel: \"Medium model\",\n\t\t\t\tdescription: \"Pick the model for normal scoped implementation, edits, tests, and mechanical refactors\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.mediumModel, this.state.mediumThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tmediumModelOptions,\n\t\t\t\t\t\tthis.state.mediumModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst mediumModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tmediumModel,\n\t\t\t\t\t\t\t\tmediumThinking: keepSupportedThinking(this.state.mediumThinking, mediumModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.mediumModel, this.state.mediumThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Medium / Implementation Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Medium / Implementation Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-expensive\",\n\t\t\t\tlabel: \"Expensive model\",\n\t\t\t\tdescription: \"Pick the model for modify, implementation, and escalated tool-heavy turns\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.expensiveModel, this.state.expensiveThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\texpensiveModelOptions,\n\t\t\t\t\t\tthis.state.expensiveModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst expensiveModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texpensiveModel,\n\t\t\t\t\t\t\t\texpensiveThinking: keepSupportedThinking(this.state.expensiveThinking, expensiveModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.expensiveModel, this.state.expensiveThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Expensive / Modify Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose from models available through configured subscription/API accounts. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Expensive / Modify Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-judge\",\n\t\t\t\tlabel: \"Judge model\",\n\t\t\t\tdescription: \"Pick the routing-judge model; unset falls back to the medium model\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.judgeModel, this.state.judgeThinking, \"medium fallback\"),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tjudgeModelOptions,\n\t\t\t\t\t\tthis.state.judgeModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst judgeModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tjudgeModel,\n\t\t\t\t\t\t\t\tjudgeThinking: keepSupportedThinking(this.state.judgeThinking, judgeModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.judgeModel, this.state.judgeThinking, \"medium fallback\"));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Routing Judge Model\",\n\t\t\t\t\t\t\tdescription: \"Choose from configured models. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Routing Judge Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-executor\",\n\t\t\t\tlabel: \"Executor model\",\n\t\t\t\tdescription: \"Pick the local executor lane model; unset disables direct toolkit execution\",\n\t\t\t\tcurrentValue: routerTierValue(this.state.executorModel, this.state.executorThinking),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\texecutorModelOptions,\n\t\t\t\t\t\tthis.state.executorModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tconst executorModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texecutorModel,\n\t\t\t\t\t\t\t\texecutorThinking: keepSupportedThinking(this.state.executorThinking, executorModel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(routerTierValue(this.state.executorModel, this.state.executorThinking));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Executor Lane Model\",\n\t\t\t\t\t\t\tdescription: \"Choose from configured models. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Executor Lane Model\",\n\t\t\t\t\t\t\tcustomDescription: \"Enter a provider/model pattern from pi --list-models.\",\n\t\t\t\t\t\t\tcustomEmptyHint: \"empty clears the setting\",\n\t\t\t\t\t\t\tcustomEmptyValue: MODEL_ROUTER_UNSET_MODEL_VALUE,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-learning\",\n\t\t\t\tlabel: \"Learning model\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Pick the model for explicit/background learning and skill-creator work; automatic reflection uses the orchestrator's current session turn\",\n\t\t\t\tcurrentValue: optionalStringValue(this.state.learningModel, \"active\"),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelSelectionSubmenu(\n\t\t\t\t\t\tlearningModelOptions,\n\t\t\t\t\t\tthis.state.learningModel ?? DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = { ...this.state, learningModel: value };\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(optionalStringValue(this.state.learningModel, \"active\"));\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttitle: \"Learning Model\",\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Choose active or a model from configured subscription/API accounts for explicit/background learning. Automatic reflection uses the orchestrator's current session turn. Type to filter; manual is fallback.\",\n\t\t\t\t\t\t\tcustomTitle: \"Custom Learning Model\",\n\t\t\t\t\t\t\tcustomDescription:\n\t\t\t\t\t\t\t\t'Enter \"active\" or a provider/model pattern for explicit/background learning from pi --list-models.',\n\t\t\t\t\t\t\tcustomEmptyHint: 'empty uses \"active\"',\n\t\t\t\t\t\t\tcustomEmptyValue: DEFAULT_AUTO_LEARN_SETTINGS.model,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-cheap-thinking\",\n\t\t\t\tlabel: \"Cheap thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for cheap-tier (read-only/research) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Cheap Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for cheap-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.cheapModel),\n\t\t\t\t\t\tthis.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tcheapThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-medium-thinking\",\n\t\t\t\tlabel: \"Medium thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for medium-tier (scoped implementation) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Medium Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for medium-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.mediumModel),\n\t\t\t\t\t\tthis.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tmediumThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-expensive-thinking\",\n\t\t\t\tlabel: \"Expensive thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for expensive-tier (modify/escalated) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Expensive Tier Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for expensive-tier routed turns, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.expensiveModel),\n\t\t\t\t\t\tthis.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texpensiveThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-executor-thinking\",\n\t\t\t\tlabel: \"Executor thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for the local executor-direct lane; (inherit) keeps today's behavior: the session level, clamped to the routed model\",\n\t\t\t\tcurrentValue: this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Executor Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for the executor-direct lane, or inherit the session level\",\n\t\t\t\t\t\troutedTierThinkingOptions(this.state.executorModel),\n\t\t\t\t\t\tthis.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\texecutorThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-judge-thinking\",\n\t\t\t\tlabel: \"Judge thinking\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Thinking-level override for the routing judge's own completion; (inherit) keeps today's default of off\",\n\t\t\t\tcurrentValue: this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Judge Thinking\",\n\t\t\t\t\t\t\"Select a thinking-level override for the routing judge's own completion, or inherit today's off default\",\n\t\t\t\t\t\tjudgeThinkingOptions(),\n\t\t\t\t\t\tthis.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tjudgeThinking:\n\t\t\t\t\t\t\t\t\tvalue === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : (value as ThinkingLevel),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t\t\t\t\tdone(this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router-fitness-gate\",\n\t\t\t\tlabel: \"Fitness gate\",\n\t\t\t\tdescription: \"Opt-in subtractive gate: blocks tier models only when their probed router lane failed\",\n\t\t\t\tcurrentValue: booleanSettingValue(this.state.fitnessGate),\n\t\t\t\tvalues: [\"false\", \"true\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"model-router-scope\":\n\t\t\t\t\t\tthis.scope = newValue as SettingsScope;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-router-enabled\":\n\t\t\t\t\t\tthis.state = { ...this.state, enabled: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"model-router-fitness-gate\":\n\t\t\t\t\t\tthis.state = { ...this.state, fitnessGate: newValue === \"true\" };\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange({ ...this.state }, this.scope);\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\n/**\n * A submenu component for selecting from a list of options.\n */\nclass WarningSettingsSubmenu extends SettingsListSubmenu {\n\tprivate state: WarningSettings;\n\n\tconstructor(warnings: WarningSettings, onChange: (warnings: WarningSettings) => void, onCancel: () => void) {\n\t\tsuper();\n\n\t\tthis.state = { ...warnings };\n\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"anthropic-extra-usage\",\n\t\t\t\tlabel: \"Anthropic extra usage\",\n\t\t\t\tdescription: \"Warn when Anthropic subscription auth may use paid extra usage\",\n\t\t\t\tcurrentValue: (this.state.anthropicExtraUsage ?? true) ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t];\n\n\t\tthis.mountSettingsList(\n\t\t\titems,\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"anthropic-extra-usage\":\n\t\t\t\t\t\tthis.state = { ...this.state, anthropicExtraUsage: newValue === \"true\" };\n\t\t\t\t\t\tonChange({ ...this.state });\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tonCancel,\n\t\t);\n\t}\n}\n\nexport class SelectSubmenu extends Container {\n\tprivate selectList: SelectList;\n\n\tgetSelectList(): SelectList {\n\t\treturn this.selectList;\n\t}\n\n\tconstructor(\n\t\ttitle: string,\n\t\tdescription: string,\n\t\toptions: SelectItem[],\n\t\tcurrentValue: string,\n\t\tonSelect: (value: string) => void,\n\t\tonCancel: () => void,\n\t\tonSelectionChange?: (value: string) => void,\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new SelectorHeading(title, description));\n\n\t\t// Select list\n\t\tthis.selectList = new SelectList(\n\t\t\toptions,\n\t\t\tMath.min(options.length, 10),\n\t\t\tgetSelectListTheme(),\n\t\t\tCOMPACT_SELECTOR_LIST_LAYOUT,\n\t\t);\n\n\t\t// Pre-select current value\n\t\tconst currentIndex = options.findIndex((o) => o.value === currentValue);\n\t\tif (currentIndex !== -1) {\n\t\t\tthis.selectList.setSelectedIndex(currentIndex);\n\t\t}\n\n\t\tthis.selectList.onSelect = (item) => {\n\t\t\tonSelect(item.value);\n\t\t};\n\n\t\tthis.selectList.onCancel = onCancel;\n\n\t\tif (onSelectionChange) {\n\t\t\tthis.selectList.onSelectionChange = (item) => {\n\t\t\t\tonSelectionChange(item.value);\n\t\t\t};\n\t\t}\n\n\t\tthis.addChild(this.selectList);\n\n\t\t// Hint\n\t\tthis.addChild(new Spacer(1));\n\t\tthis.addChild(new Text(theme.fg(\"dim\", \" Enter to select · Esc to go back\"), 0, 0));\n\t}\n\n\thandleInput(data: string): void {\n\t\tconst kb = getKeybindings();\n\t\tif (kb.matches(data, \"app.interrupt\") || kb.matches(data, \"app.clear\")) {\n\t\t\tthis.selectList.onCancel?.();\n\t\t\treturn;\n\t\t}\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n\n/**\n * Main settings selector component.\n */\nexport class SettingsSelectorComponent extends Container {\n\tprivate settingsList: SettingsList;\n\n\tconstructor(config: SettingsConfig, callbacks: SettingsCallbacks) {\n\t\tsuper();\n\n\t\tconst supportsImages = getCapabilities().images;\n\t\tconst followUpKey = keyDisplayText(\"app.message.followUp\");\n\t\tlet currentCostGuard: CostGuardSettings = { ...config.costGuard };\n\t\tlet currentWarnings = { ...config.warnings };\n\t\tlet currentSelfModification: SelfModificationSettings = { ...config.selfModification };\n\t\tlet currentAutonomy: AutonomySettings = { ...config.autonomy };\n\t\tlet currentResearchLane: ResearchLaneSettings = { ...config.researchLane };\n\t\tlet currentContextCuration: ContextCurationSettings = { ...config.contextCuration };\n\t\tlet currentLearningPolicy: LearningPolicySettings = { ...config.learningPolicy };\n\t\tlet currentModelCapability: ModelCapabilitySettings = { ...config.modelCapability };\n\t\tlet currentWorkerDelegation: WorkerDelegationSettings = { ...config.workerDelegation };\n\t\tlet currentModelRouter: ModelRouterSettings = { ...config.modelRouter };\n\t\tlet currentAutoLearn: AutoLearnSettings = { ...config.autoLearn };\n\t\tlet currentContextPolicyEnforcement: ContextPromptEnforcementSettings = { ...config.contextPolicyEnforcement };\n\t\tlet currentContextMemoryRetrieval: MemoryRetrievalSettings = { ...config.contextMemoryRetrieval };\n\t\tconst items: SettingItem[] = [\n\t\t\t{\n\t\t\t\tid: \"autocompact\",\n\t\t\t\tlabel: \"Auto-compact\",\n\t\t\t\tdescription: \"Automatically compact context when it gets too large\",\n\t\t\t\tcurrentValue: config.autoCompact ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"cost-guard\",\n\t\t\t\tlabel: \"Foreground cost guard\",\n\t\t\t\tdescription: \"Optional per-turn USD projection warning or reasoning downgrade; disabled by default\",\n\t\t\t\tcurrentValue: costGuardSummary(currentCostGuard),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew CostGuardSettingsSubmenu(\n\t\t\t\t\t\tcurrentCostGuard,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentCostGuard = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onCostGuardChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(costGuardSummary(currentCostGuard)),\n\t\t\t\t\t\tconfig.costGuardScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"steering-mode\",\n\t\t\t\tlabel: \"Steering mode\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Enter while streaming queues steering messages. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.\",\n\t\t\t\tcurrentValue: config.steeringMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"follow-up-mode\",\n\t\t\t\tlabel: \"Follow-up mode\",\n\t\t\t\tdescription: `${followUpKey} queues follow-up messages until agent stops. 'one-at-a-time': deliver one, wait for response. 'all': deliver all at once.`,\n\t\t\t\tcurrentValue: config.followUpMode,\n\t\t\t\tvalues: [\"one-at-a-time\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"transport\",\n\t\t\t\tlabel: \"Transport\",\n\t\t\t\tdescription: \"Preferred transport for providers that support multiple transports\",\n\t\t\t\tcurrentValue: config.transport,\n\t\t\t\tvalues: [\"sse\", \"websocket\", \"websocket-cached\", \"auto\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"http-idle-timeout\",\n\t\t\t\tlabel: \"HTTP idle timeout\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Maximum idle gap while waiting for HTTP headers or body chunks. Disable for local models that pause longer than five minutes.\",\n\t\t\t\tcurrentValue: formatHttpIdleTimeoutMs(config.httpIdleTimeoutMs),\n\t\t\t\tvalues: HTTP_IDLE_TIMEOUT_CHOICES.map((choice) => choice.label),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"hide-thinking\",\n\t\t\t\tlabel: \"Hide thinking\",\n\t\t\t\tdescription: \"Hide thinking blocks in assistant responses\",\n\t\t\t\tcurrentValue: config.hideThinkingBlock ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"project-context-files\",\n\t\t\t\tlabel: \"Project AGENTS.md\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt in to listing this directory's AGENTS.md/CLAUDE.md/GEMINI.md. Global ~/.pi/agent files always load.\",\n\t\t\t\tcurrentValue: projectContextFilesSummary(config.projectContextFiles, config.projectContextFilesScope),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ProjectContextFilesSubmenu(\n\t\t\t\t\t\tconfig.projectContextFiles,\n\t\t\t\t\t\t(mode, scope) => {\n\t\t\t\t\t\t\tconfig.projectContextFiles = mode;\n\t\t\t\t\t\t\tconfig.projectContextFilesScope = scope;\n\t\t\t\t\t\t\tcallbacks.onProjectContextFilesChange(mode, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(projectContextFilesSummary(config.projectContextFiles, config.projectContextFilesScope)),\n\t\t\t\t\t\tconfig.projectContextFilesScope ?? \"directoryProfile\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"collapse-changelog\",\n\t\t\t\tlabel: \"Collapse changelog\",\n\t\t\t\tdescription: \"Show condensed changelog after updates\",\n\t\t\t\tcurrentValue: config.collapseChangelog ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"quiet-startup\",\n\t\t\t\tlabel: \"Quiet startup\",\n\t\t\t\tdescription: \"Disable verbose printing at startup\",\n\t\t\t\tcurrentValue: config.quietStartup ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"install-telemetry\",\n\t\t\t\tlabel: \"Install telemetry\",\n\t\t\t\tdescription: \"Send an anonymous version/update ping after changelog-detected updates\",\n\t\t\t\tcurrentValue: config.enableInstallTelemetry ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"double-escape-action\",\n\t\t\t\tlabel: \"Double-escape action\",\n\t\t\t\tdescription: \"Action when pressing Escape twice with empty editor\",\n\t\t\t\tcurrentValue: config.doubleEscapeAction,\n\t\t\t\tvalues: [\"tree\", \"fork\", \"none\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"tree-filter-mode\",\n\t\t\t\tlabel: \"Tree filter mode\",\n\t\t\t\tdescription: \"Default filter when opening /tree\",\n\t\t\t\tcurrentValue: config.treeFilterMode,\n\t\t\t\tvalues: [\"default\", \"no-tools\", \"user-only\", \"labeled-only\", \"all\"],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"self-modification\",\n\t\t\t\tlabel: \"Self modification\",\n\t\t\t\tdescription: \"Enable Pi self-evolution guardrails and configure the editable pi-adaptative source checkout\",\n\t\t\t\tcurrentValue: selfModificationSummary(currentSelfModification),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew SelfModificationSettingsSubmenu(\n\t\t\t\t\t\tcurrentSelfModification,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentSelfModification = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onSelfModificationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(selfModificationSummary(currentSelfModification)),\n\t\t\t\t\t\tconfig.selfModificationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"autonomy\",\n\t\t\t\tlabel: \"Autonomy\",\n\t\t\t\tdescription: \"Choose one autonomy preset instead of tuning many background-learning knobs\",\n\t\t\t\tcurrentValue: autonomySummary(currentAutonomy),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew AutonomySettingsSubmenu(\n\t\t\t\t\t\tcurrentAutonomy,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentAutonomy = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onAutonomyChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(autonomySummary(currentAutonomy)),\n\t\t\t\t\t\tconfig.autonomyScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"research-lane\",\n\t\t\t\tlabel: \"Research Lane\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in autonomous read-only research: bounded background passes that produce evidence bundles for active goals\",\n\t\t\t\tcurrentValue: researchLaneSummary(currentResearchLane),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ResearchLaneSettingsSubmenu(\n\t\t\t\t\t\tcurrentResearchLane,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentResearchLane = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onResearchLaneChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(researchLaneSummary(currentResearchLane)),\n\t\t\t\t\t\tconfig.researchLaneScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"worker-delegation\",\n\t\t\t\tlabel: \"Worker Delegation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default-on provider-neutral leaf workers with inherited authority and optional owner-authored execution presets\",\n\t\t\t\tcurrentValue: workerDelegationSummary(currentWorkerDelegation),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew WorkerDelegationSettingsSubmenu(\n\t\t\t\t\t\tcurrentWorkerDelegation,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentWorkerDelegation = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onWorkerDelegationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(workerDelegationSummary(currentWorkerDelegation)),\n\t\t\t\t\t\tconfig.workerDelegationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"learning-policy\",\n\t\t\t\tlabel: \"Learning Policy\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Gate reflection-sourced durable writes: proposals, confidence thresholds, audits, and rollback\",\n\t\t\t\tcurrentValue: learningPolicySummary(currentLearningPolicy),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew LearningPolicySettingsSubmenu(\n\t\t\t\t\t\tcurrentLearningPolicy,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentLearningPolicy = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onLearningPolicyChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(learningPolicySummary(currentLearningPolicy)),\n\t\t\t\t\t\tconfig.learningPolicyScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-capability\",\n\t\t\t\tlabel: \"Model Capability\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"How pi adapts the tool surface and lane budgets to small models (derived from the model's own metadata)\",\n\t\t\t\tcurrentValue: modelCapabilitySummary(currentModelCapability),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelCapabilitySettingsSubmenu(\n\t\t\t\t\t\tcurrentModelCapability,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentModelCapability = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onModelCapabilityChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(modelCapabilitySummary(currentModelCapability)),\n\t\t\t\t\t\tconfig.modelCapabilityScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-curation\",\n\t\t\t\tlabel: \"Context Curation\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in local brain curator: digests GC-packed context stubs and scores stale-chunk relevance in small local-model jobs\",\n\t\t\t\tcurrentValue: contextCurationSummary(currentContextCuration),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextCurationSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextCuration,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextCuration = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextCurationChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextCurationSummary(currentContextCuration)),\n\t\t\t\t\t\tconfig.contextCurationScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"model-router\",\n\t\t\t\tlabel: \"Model Router\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Configure models for cheap research, expensive modify/escalation, and explicit/background learning; automatic reflection uses the orchestrator's current session turn\",\n\t\t\t\tcurrentValue: modelRouterSummary(currentModelRouter),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ModelRouterSettingsSubmenu(\n\t\t\t\t\t\tcurrentModelRouter,\n\t\t\t\t\t\tconfig.currentModelPattern,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\tconfig.resolveModelThinkingLevels,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentModelRouter = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onModelRouterChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(modelRouterSummary(currentModelRouter)),\n\t\t\t\t\t\tconfig.modelRouterScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"auto-learn\",\n\t\t\t\tlabel: \"Auto Learn Advanced\",\n\t\t\t\tdescription: \"Advanced overrides for autonomous background learning/scavenging\",\n\t\t\t\tcurrentValue: autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy)),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew AutoLearnSettingsSubmenu(\n\t\t\t\t\t\tcurrentAutoLearn,\n\t\t\t\t\t\tautonomyModeValue(currentAutonomy),\n\t\t\t\t\t\tconfig.currentModelPattern,\n\t\t\t\t\t\tconfig.autoLearnModelOptions,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentAutoLearn = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onAutoLearnChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(autoLearnSummary(currentAutoLearn, autonomyModeValue(currentAutonomy))),\n\t\t\t\t\t\tconfig.autoLearnScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-policy-enforcement\",\n\t\t\t\tlabel: \"Context / Prompt Policy\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Opt-in artifact-stub prompt-policy enforcement: stubs stale artifact-backed tool output in the model-visible prompt only, never the transcript. Requires the artifact_retrieve tool to be active.\",\n\t\t\t\tcurrentValue: contextPolicyEnforcementSummary(currentContextPolicyEnforcement),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextPolicyEnforcementSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextPolicyEnforcement,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextPolicyEnforcement = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextPolicyEnforcementChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextPolicyEnforcementSummary(currentContextPolicyEnforcement)),\n\t\t\t\t\t\tconfig.contextPolicyEnforcementScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"context-memory-retrieval\",\n\t\t\t\tlabel: \"Context / Memory Retrieval\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Default-on local safe-auto recall with budgeted prompt evidence. External query egress is a separate visible consent and remains off by default.\",\n\t\t\t\tcurrentValue: contextMemoryRetrievalSummary(currentContextMemoryRetrieval),\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew ContextMemoryRetrievalSettingsSubmenu(\n\t\t\t\t\t\tcurrentContextMemoryRetrieval,\n\t\t\t\t\t\t(settings, scope) => {\n\t\t\t\t\t\t\tcurrentContextMemoryRetrieval = { ...settings };\n\t\t\t\t\t\t\tcallbacks.onContextMemoryRetrievalChange(settings, scope);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(contextMemoryRetrievalSummary(currentContextMemoryRetrieval)),\n\t\t\t\t\t\tconfig.contextMemoryRetrievalScope ?? \"global\",\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"warnings\",\n\t\t\t\tlabel: \"Warnings\",\n\t\t\t\tdescription: \"Enable or disable individual warnings\",\n\t\t\t\tcurrentValue: \"configure\",\n\t\t\t\tsubmenu: (_currentValue, done) =>\n\t\t\t\t\tnew WarningSettingsSubmenu(\n\t\t\t\t\t\tcurrentWarnings,\n\t\t\t\t\t\t(warnings) => {\n\t\t\t\t\t\t\tcurrentWarnings = warnings;\n\t\t\t\t\t\t\tcallbacks.onWarningsChange(warnings);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"thinking\",\n\t\t\t\tlabel: \"Thinking level\",\n\t\t\t\tdescription: \"Reasoning depth for the active model; delegation policy is configured independently\",\n\t\t\t\tcurrentValue: config.thinkingLevel,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Thinking Level\",\n\t\t\t\t\t\t\"Select the reasoning depth supported by the active model\",\n\t\t\t\t\t\tconfig.availableThinkingLevels.map((level) => ({\n\t\t\t\t\t\t\tvalue: level,\n\t\t\t\t\t\t\tlabel: level,\n\t\t\t\t\t\t\tdescription: THINKING_LEVEL_DESCRIPTIONS[level],\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThinkingLevelChange(value as ThinkingLevel);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => done(),\n\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"theme\",\n\t\t\t\tlabel: \"Theme\",\n\t\t\t\tdescription: \"Color theme for the interface\",\n\t\t\t\tcurrentValue: config.currentTheme,\n\t\t\t\tsubmenu: (currentValue, done) =>\n\t\t\t\t\tnew SelectSubmenu(\n\t\t\t\t\t\t\"Theme\",\n\t\t\t\t\t\t\"Select color theme\",\n\t\t\t\t\t\tconfig.availableThemes.map((t) => ({\n\t\t\t\t\t\t\tvalue: t,\n\t\t\t\t\t\t\tlabel: t,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tcurrentValue,\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\tcallbacks.onThemeChange(value);\n\t\t\t\t\t\t\tdone(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t// Restore original theme on cancel\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(currentValue);\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t// Preview theme on selection change\n\t\t\t\t\t\t\tcallbacks.onThemePreview?.(value);\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t];\n\n\t\tconst externalRoots = config.externalResourceRoots ?? [];\n\t\tconst hasSources = externalRoots.length > 0;\n\t\tconst hasProfiles = (config.profileOptions ?? []).filter((o) => o.value !== \"(none)\").length > 0;\n\n\t\titems.push({\n\t\t\tid: \"resources\",\n\t\t\tlabel: \"Resources\",\n\t\t\tdescription: \"Manage profiles/situations, library, and external resource sources.\",\n\t\t\tcurrentValue: config.activeProfileName ?? \"(none)\",\n\t\t\tsubmenu: (_currentValue, done) => {\n\t\t\t\tconst options: SelectItem[] = [];\n\n\t\t\t\tif (!hasSources && !hasProfiles) {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tvalue: \"nudge-add-source\",\n\t\t\t\t\t\tlabel: \"Add your catalog directory →\",\n\t\t\t\t\t\tdescription: \"First-run nudge: Add a directory of shared skills, extensions, profiles, and agents.\",\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"active-profile\",\n\t\t\t\t\tlabel: \"Profile / Situation\",\n\t\t\t\t\tdescription: `Select the active profile/situation. Current: ${config.activeProfileName ?? \"(none)\"}`,\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"manage-library\",\n\t\t\t\t\tlabel: \"Manage Library\",\n\t\t\t\t\tdescription: \"Toggle allowed tools/skills/extensions in the active profile/scope.\",\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"manage-profiles\",\n\t\t\t\t\tlabel: \"Manage Profiles / Situations\",\n\t\t\t\t\tdescription: \"Create, delete, or persist profile/situation definitions.\",\n\t\t\t\t});\n\n\t\t\t\toptions.push({\n\t\t\t\t\tvalue: \"sources\",\n\t\t\t\t\tlabel: \"Sources\",\n\t\t\t\t\tdescription: `Manage external resource roots (${externalRoots.length} registered).`,\n\t\t\t\t});\n\n\t\t\t\treturn new SelectSubmenu(\n\t\t\t\t\t\"Resources Hub\",\n\t\t\t\t\t\"Configure profiles/situations and external resource catalogs.\",\n\t\t\t\t\toptions,\n\t\t\t\t\t\"\",\n\t\t\t\t\t(value) => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\tcallbacks.onResourcesHubAction?.(value);\n\t\t\t\t\t},\n\t\t\t\t\t() => done(),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\t// Only show image toggle if terminal supports it\n\t\tif (supportsImages) {\n\t\t\t// Insert after autocompact\n\t\t\titems.splice(1, 0, {\n\t\t\t\tid: \"show-images\",\n\t\t\t\tlabel: \"Show images\",\n\t\t\t\tdescription: \"Render images inline in terminal\",\n\t\t\t\tcurrentValue: config.showImages ? \"true\" : \"false\",\n\t\t\t\tvalues: [\"true\", \"false\"],\n\t\t\t});\n\t\t\titems.splice(2, 0, {\n\t\t\t\tid: \"image-width-cells\",\n\t\t\t\tlabel: \"Image width\",\n\t\t\t\tdescription: \"Preferred inline image width in terminal cells\",\n\t\t\t\tcurrentValue: String(config.imageWidthCells),\n\t\t\t\tvalues: [\"60\", \"80\", \"120\"],\n\t\t\t});\n\t\t}\n\n\t\t// Image auto-resize toggle (always available, affects both attached and read images)\n\t\titems.splice(supportsImages ? 3 : 1, 0, {\n\t\t\tid: \"auto-resize-images\",\n\t\t\tlabel: \"Auto-resize images\",\n\t\t\tdescription: \"Resize large images to 2000x2000 max for better model compatibility\",\n\t\t\tcurrentValue: config.autoResizeImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Block images toggle (always available, insert after auto-resize-images)\n\t\tconst autoResizeIndex = items.findIndex((item) => item.id === \"auto-resize-images\");\n\t\titems.splice(autoResizeIndex + 1, 0, {\n\t\t\tid: \"block-images\",\n\t\t\tlabel: \"Block images\",\n\t\t\tdescription: \"Prevent images from being sent to LLM providers\",\n\t\t\tcurrentValue: config.blockImages ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Skill commands toggle (insert after block-images)\n\t\tconst blockImagesIndex = items.findIndex((item) => item.id === \"block-images\");\n\t\titems.splice(blockImagesIndex + 1, 0, {\n\t\t\tid: \"skill-commands\",\n\t\t\tlabel: \"Skill commands\",\n\t\t\tdescription: \"Register skills as /skill:name commands\",\n\t\t\tcurrentValue: config.enableSkillCommands ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Hardware cursor toggle (insert after skill-commands)\n\t\tconst skillCommandsIndex = items.findIndex((item) => item.id === \"skill-commands\");\n\t\titems.splice(skillCommandsIndex + 1, 0, {\n\t\t\tid: \"show-hardware-cursor\",\n\t\t\tlabel: \"Show hardware cursor\",\n\t\t\tdescription: \"Show the terminal cursor while still positioning it for IME support\",\n\t\t\tcurrentValue: config.showHardwareCursor ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Editor padding toggle (insert after show-hardware-cursor)\n\t\tconst hardwareCursorIndex = items.findIndex((item) => item.id === \"show-hardware-cursor\");\n\t\titems.splice(hardwareCursorIndex + 1, 0, {\n\t\t\tid: \"editor-padding\",\n\t\t\tlabel: \"Editor padding\",\n\t\t\tdescription: \"Horizontal padding for input editor (0-3)\",\n\t\t\tcurrentValue: String(config.editorPaddingX),\n\t\t\tvalues: [\"0\", \"1\", \"2\", \"3\"],\n\t\t});\n\n\t\t// Autocomplete max visible toggle (insert after editor-padding)\n\t\tconst editorPaddingIndex = items.findIndex((item) => item.id === \"editor-padding\");\n\t\titems.splice(editorPaddingIndex + 1, 0, {\n\t\t\tid: \"autocomplete-max-visible\",\n\t\t\tlabel: \"Autocomplete max items\",\n\t\t\tdescription: \"Max visible items in autocomplete dropdown (3-20)\",\n\t\t\tcurrentValue: String(config.autocompleteMaxVisible),\n\t\t\tvalues: [\"3\", \"5\", \"7\", \"10\", \"15\", \"20\"],\n\t\t});\n\n\t\t// Clear on shrink toggle (insert after autocomplete-max-visible)\n\t\tconst autocompleteIndex = items.findIndex((item) => item.id === \"autocomplete-max-visible\");\n\t\titems.splice(autocompleteIndex + 1, 0, {\n\t\t\tid: \"clear-on-shrink\",\n\t\t\tlabel: \"Clear on shrink\",\n\t\t\tdescription: \"Clear empty rows when content shrinks (may cause flicker)\",\n\t\t\tcurrentValue: config.clearOnShrink ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Terminal progress toggle (insert after clear-on-shrink)\n\t\tconst clearOnShrinkIndex = items.findIndex((item) => item.id === \"clear-on-shrink\");\n\t\titems.splice(clearOnShrinkIndex + 1, 0, {\n\t\t\tid: \"terminal-progress\",\n\t\t\tlabel: \"Terminal progress\",\n\t\t\tdescription: \"Show OSC 9;4 progress indicators in the terminal tab bar\",\n\t\t\tcurrentValue: config.showTerminalProgress ? \"true\" : \"false\",\n\t\t\tvalues: [\"true\", \"false\"],\n\t\t});\n\n\t\t// Add borders\n\t\tthis.addChild(new DynamicBorder());\n\n\t\tthis.settingsList = new SettingsList(\n\t\t\titems,\n\t\t\t10,\n\t\t\tgetSettingsListTheme(),\n\t\t\t(id, newValue) => {\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase \"autocompact\":\n\t\t\t\t\t\tcallbacks.onAutoCompactChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-images\":\n\t\t\t\t\t\tcallbacks.onShowImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image-width-cells\":\n\t\t\t\t\t\tcallbacks.onImageWidthCellsChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"auto-resize-images\":\n\t\t\t\t\t\tcallbacks.onAutoResizeImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"block-images\":\n\t\t\t\t\t\tcallbacks.onBlockImagesChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"skill-commands\":\n\t\t\t\t\t\tcallbacks.onEnableSkillCommandsChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"steering-mode\":\n\t\t\t\t\t\tcallbacks.onSteeringModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"follow-up-mode\":\n\t\t\t\t\t\tcallbacks.onFollowUpModeChange(newValue as \"all\" | \"one-at-a-time\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"transport\":\n\t\t\t\t\t\tcallbacks.onTransportChange(newValue as Transport);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"http-idle-timeout\": {\n\t\t\t\t\t\tconst choice = HTTP_IDLE_TIMEOUT_CHOICES.find((item) => item.label === newValue);\n\t\t\t\t\t\tif (choice) {\n\t\t\t\t\t\t\tcallbacks.onHttpIdleTimeoutMsChange(choice.timeoutMs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"hide-thinking\":\n\t\t\t\t\t\tcallbacks.onHideThinkingBlockChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"collapse-changelog\":\n\t\t\t\t\t\tcallbacks.onCollapseChangelogChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"quiet-startup\":\n\t\t\t\t\t\tcallbacks.onQuietStartupChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"install-telemetry\":\n\t\t\t\t\t\tcallbacks.onEnableInstallTelemetryChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"double-escape-action\":\n\t\t\t\t\t\tcallbacks.onDoubleEscapeActionChange(newValue as \"fork\" | \"tree\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tree-filter-mode\":\n\t\t\t\t\t\tcallbacks.onTreeFilterModeChange(\n\t\t\t\t\t\t\tnewValue as \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"show-hardware-cursor\":\n\t\t\t\t\t\tcallbacks.onShowHardwareCursorChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"editor-padding\":\n\t\t\t\t\t\tcallbacks.onEditorPaddingXChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"autocomplete-max-visible\":\n\t\t\t\t\t\tcallbacks.onAutocompleteMaxVisibleChange(parseInt(newValue, 10));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"clear-on-shrink\":\n\t\t\t\t\t\tcallbacks.onClearOnShrinkChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"terminal-progress\":\n\t\t\t\t\t\tcallbacks.onShowTerminalProgressChange(newValue === \"true\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallbacks.onCancel,\n\t\t\t{ enableSearch: true },\n\t\t);\n\n\t\tthis.addChild(this.settingsList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\tgetSettingsList(): SettingsList {\n\t\treturn this.settingsList;\n\t}\n}\n"]}