@opencow-ai/opencow-agent-sdk 0.4.6 → 0.4.8

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 (37) hide show
  1. package/dist/Tool.d.ts +1 -0
  2. package/dist/capabilities/SdkTool.d.ts +8 -0
  3. package/dist/capabilities/mcp/types.d.ts +1 -1
  4. package/dist/capabilities/tools/AgentTool/agentMerge.d.ts +8 -0
  5. package/dist/capabilities/tools/AgentTool/builtInAgents.d.ts +15 -0
  6. package/dist/capabilities/tools/AgentTool/runAgent.d.ts +13 -2
  7. package/dist/capabilities/tools/ToolSearchTool/ToolSearchTool.d.ts +1 -1
  8. package/dist/cli.mjs +914 -567
  9. package/dist/client.d.ts +10 -0
  10. package/dist/client.js +863 -399
  11. package/dist/constants/envVars.d.ts +1 -0
  12. package/dist/constants/tools.d.ts +1 -1
  13. package/dist/controller/compact/autoCompact.d.ts +17 -1
  14. package/dist/controller/compact/reactiveCompact.d.ts +52 -0
  15. package/dist/controller/hooks.d.ts +17 -2
  16. package/dist/controller/loop.d.ts +2 -5
  17. package/dist/controller/query/deps.d.ts +2 -1
  18. package/dist/controller/toolSearch.d.ts +20 -0
  19. package/dist/entrypoints/sdk/controlSchemas.d.ts +74 -1
  20. package/dist/entrypoints/sdk/coreSchemas.d.ts +19 -1
  21. package/dist/entrypoints/sdk/runtimeTypes.d.ts +41 -0
  22. package/dist/lib/envDynamic.d.ts +1 -1
  23. package/dist/permissions/permissions.d.ts +15 -0
  24. package/dist/providers/anthropic/teleport/api.d.ts +1 -1
  25. package/dist/providers/codex/shim.d.ts +8 -0
  26. package/dist/providers/openai/shim.d.ts +19 -12
  27. package/dist/providers/provider.d.ts +2 -5
  28. package/dist/providers/shared/clientFactory.d.ts +2 -5
  29. package/dist/providers/shared/logging.d.ts +2 -2
  30. package/dist/providers/shared/model/providers.d.ts +5 -0
  31. package/dist/providers/shared/routing.d.ts +37 -6
  32. package/dist/providers/shared/usage.d.ts +11 -0
  33. package/dist/query.d.ts +3 -0
  34. package/dist/sdk.js +863 -399
  35. package/dist/session/backgroundAbortRegistry.d.ts +23 -0
  36. package/dist/types/toolRuntime.d.ts +14 -5
  37. package/package.json +3 -3
package/dist/client.js CHANGED
@@ -25935,6 +25935,267 @@ var init_errors4 = __esm(() => {
25935
25935
  };
25936
25936
  });
25937
25937
 
25938
+ // src/constants/envVars.ts
25939
+ function envVar(primary, legacy) {
25940
+ return legacy !== undefined ? { primary, legacy } : { primary };
25941
+ }
25942
+ function readEnvVarRaw(key) {
25943
+ const { primary, legacy } = ENV_VARS[key];
25944
+ const fromPrimary = process.env[primary];
25945
+ if (fromPrimary !== undefined)
25946
+ return fromPrimary;
25947
+ if (legacy !== undefined)
25948
+ return process.env[legacy];
25949
+ return;
25950
+ }
25951
+ function resolveEnvVar(key) {
25952
+ const { primary, legacy } = ENV_VARS[key];
25953
+ const { tryGetQueryContext } = (init_als(), __toCommonJS(exports_als));
25954
+ const ctx = tryGetQueryContext();
25955
+ if (ctx) {
25956
+ const fromQueryPrimary = ctx.config.env.get(primary);
25957
+ if (fromQueryPrimary !== undefined)
25958
+ return fromQueryPrimary;
25959
+ if (legacy !== undefined) {
25960
+ const fromQueryLegacy = ctx.config.env.get(legacy);
25961
+ if (fromQueryLegacy !== undefined)
25962
+ return fromQueryLegacy;
25963
+ }
25964
+ }
25965
+ const fromProcessPrimary = process.env[primary];
25966
+ if (fromProcessPrimary !== undefined)
25967
+ return fromProcessPrimary;
25968
+ if (legacy !== undefined)
25969
+ return process.env[legacy];
25970
+ return;
25971
+ }
25972
+ function setEnvVar(key, value) {
25973
+ const { primary } = ENV_VARS[key];
25974
+ if (value === undefined) {
25975
+ delete process.env[primary];
25976
+ } else {
25977
+ process.env[primary] = value;
25978
+ }
25979
+ }
25980
+ function deleteEnvVar(key) {
25981
+ const { primary, legacy } = ENV_VARS[key];
25982
+ delete process.env[primary];
25983
+ if (legacy !== undefined)
25984
+ delete process.env[legacy];
25985
+ }
25986
+ var ENV_VARS;
25987
+ var init_envVars = __esm(() => {
25988
+ ENV_VARS = {
25989
+ ABLATION_BASELINE: envVar("OPENCOW_ABLATION_BASELINE", "CLAUDE_CODE_ABLATION_BASELINE"),
25990
+ ACCESSIBILITY: envVar("OPENCOW_ACCESSIBILITY", "CLAUDE_CODE_ACCESSIBILITY"),
25991
+ ACCOUNT_TAGGED_ID: envVar("OPENCOW_ACCOUNT_TAGGED_ID", "CLAUDE_CODE_ACCOUNT_TAGGED_ID"),
25992
+ ACCOUNT_UUID: envVar("OPENCOW_ACCOUNT_UUID", "CLAUDE_CODE_ACCOUNT_UUID"),
25993
+ ACTION: envVar("OPENCOW_ACTION", "CLAUDE_CODE_ACTION"),
25994
+ ADDITIONAL_DIRECTORIES_CLAUDE_MD: envVar("OPENCOW_ADDITIONAL_DIRECTORIES_CLAUDE_MD", "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD"),
25995
+ ADDITIONAL_PROTECTION: envVar("OPENCOW_ADDITIONAL_PROTECTION", "CLAUDE_CODE_ADDITIONAL_PROTECTION"),
25996
+ AGENT: envVar("OPENCOW_AGENT", "CLAUDE_CODE_AGENT"),
25997
+ AGENT_LIST_IN_MESSAGES: envVar("OPENCOW_AGENT_LIST_IN_MESSAGES", "CLAUDE_CODE_AGENT_LIST_IN_MESSAGES"),
25998
+ ALWAYS_ENABLE_EFFORT: envVar("OPENCOW_ALWAYS_ENABLE_EFFORT", "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT"),
25999
+ API_KEY_FILE_DESCRIPTOR: envVar("OPENCOW_API_KEY_FILE_DESCRIPTOR", "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR"),
26000
+ API_KEY_HELPER_TTL_MS: envVar("OPENCOW_API_KEY_HELPER_TTL_MS", "CLAUDE_CODE_API_KEY_HELPER_TTL_MS"),
26001
+ ATTRIBUTION_HEADER: envVar("OPENCOW_ATTRIBUTION_HEADER", "CLAUDE_CODE_ATTRIBUTION_HEADER"),
26002
+ AUTO_COMPACT_WINDOW: envVar("OPENCOW_AUTO_COMPACT_WINDOW", "CLAUDE_CODE_AUTO_COMPACT_WINDOW"),
26003
+ AUTO_CONNECT_IDE: envVar("OPENCOW_AUTO_CONNECT_IDE", "CLAUDE_CODE_AUTO_CONNECT_IDE"),
26004
+ AUTO_MODE_MODEL: envVar("OPENCOW_AUTO_MODE_MODEL", "CLAUDE_CODE_AUTO_MODE_MODEL"),
26005
+ BASE_REF: envVar("OPENCOW_BASE_REF", "CLAUDE_CODE_BASE_REF"),
26006
+ BASH_SANDBOX_SHOW_INDICATOR: envVar("OPENCOW_BASH_SANDBOX_SHOW_INDICATOR", "CLAUDE_CODE_BASH_SANDBOX_SHOW_INDICATOR"),
26007
+ BLOCKING_LIMIT_OVERRIDE: envVar("OPENCOW_BLOCKING_LIMIT_OVERRIDE", "CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE"),
26008
+ BRIEF: envVar("OPENCOW_BRIEF", "CLAUDE_CODE_BRIEF"),
26009
+ BRIEF_UPLOAD: envVar("OPENCOW_BRIEF_UPLOAD", "CLAUDE_CODE_BRIEF_UPLOAD"),
26010
+ BUBBLEWRAP: envVar("OPENCOW_BUBBLEWRAP", "CLAUDE_CODE_BUBBLEWRAP"),
26011
+ CCR_MIRROR: envVar("OPENCOW_CCR_MIRROR", "CLAUDE_CODE_CCR_MIRROR"),
26012
+ CLIENT_CERT: envVar("OPENCOW_CLIENT_CERT", "CLAUDE_CODE_CLIENT_CERT"),
26013
+ CLIENT_KEY: envVar("OPENCOW_CLIENT_KEY", "CLAUDE_CODE_CLIENT_KEY"),
26014
+ CLIENT_KEY_PASSPHRASE: envVar("OPENCOW_CLIENT_KEY_PASSPHRASE", "CLAUDE_CODE_CLIENT_KEY_PASSPHRASE"),
26015
+ COMMIT_LOG: envVar("OPENCOW_COMMIT_LOG", "CLAUDE_CODE_COMMIT_LOG"),
26016
+ CONTAINER_ID: envVar("OPENCOW_CONTAINER_ID", "CLAUDE_CODE_CONTAINER_ID"),
26017
+ COORDINATOR_MODE: envVar("OPENCOW_COORDINATOR_MODE", "CLAUDE_CODE_COORDINATOR_MODE"),
26018
+ COWORKER_TYPE: envVar("OPENCOW_COWORKER_TYPE", "CLAUDE_CODE_COWORKER_TYPE"),
26019
+ CUSTOM_OAUTH_URL: envVar("OPENCOW_CUSTOM_OAUTH_URL", "CLAUDE_CODE_CUSTOM_OAUTH_URL"),
26020
+ DATADOG_FLUSH_INTERVAL_MS: envVar("OPENCOW_DATADOG_FLUSH_INTERVAL_MS", "CLAUDE_CODE_DATADOG_FLUSH_INTERVAL_MS"),
26021
+ DEBUG_LOGS_DIR: envVar("OPENCOW_DEBUG_LOGS_DIR", "CLAUDE_CODE_DEBUG_LOGS_DIR"),
26022
+ DEBUG_LOG_LEVEL: envVar("OPENCOW_DEBUG_LOG_LEVEL", "CLAUDE_CODE_DEBUG_LOG_LEVEL"),
26023
+ DEBUG_REPAINTS: envVar("OPENCOW_DEBUG_REPAINTS", "CLAUDE_CODE_DEBUG_REPAINTS"),
26024
+ DIAGNOSTICS_FILE: envVar("OPENCOW_DIAGNOSTICS_FILE", "CLAUDE_CODE_DIAGNOSTICS_FILE"),
26025
+ DISABLE_1M_CONTEXT: envVar("OPENCOW_DISABLE_1M_CONTEXT", "CLAUDE_CODE_DISABLE_1M_CONTEXT"),
26026
+ DISABLE_ADAPTIVE_THINKING: envVar("OPENCOW_DISABLE_ADAPTIVE_THINKING", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING"),
26027
+ DISABLE_ADVISOR_TOOL: envVar("OPENCOW_DISABLE_ADVISOR_TOOL", "CLAUDE_CODE_DISABLE_ADVISOR_TOOL"),
26028
+ DISABLE_ATTACHMENTS: envVar("OPENCOW_DISABLE_ATTACHMENTS", "CLAUDE_CODE_DISABLE_ATTACHMENTS"),
26029
+ DISABLE_AUTO_MEMORY: envVar("OPENCOW_DISABLE_AUTO_MEMORY", "CLAUDE_CODE_DISABLE_AUTO_MEMORY"),
26030
+ DISABLE_BACKGROUND_TASKS: envVar("OPENCOW_DISABLE_BACKGROUND_TASKS", "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS"),
26031
+ DISABLE_CLAUDE_MDS: envVar("OPENCOW_DISABLE_CLAUDE_MDS", "CLAUDE_CODE_DISABLE_CLAUDE_MDS"),
26032
+ DISABLE_COMMAND_INJECTION_CHECK: envVar("OPENCOW_DISABLE_COMMAND_INJECTION_CHECK", "CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK"),
26033
+ DISABLE_CRON: envVar("OPENCOW_DISABLE_CRON", "CLAUDE_CODE_DISABLE_CRON"),
26034
+ DISABLE_EXPERIMENTAL_BETAS: envVar("OPENCOW_DISABLE_EXPERIMENTAL_BETAS", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"),
26035
+ DISABLE_FAST_MODE: envVar("OPENCOW_DISABLE_FAST_MODE", "CLAUDE_CODE_DISABLE_FAST_MODE"),
26036
+ DISABLE_FEEDBACK_SURVEY: envVar("OPENCOW_DISABLE_FEEDBACK_SURVEY", "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY"),
26037
+ DISABLE_FILE_CHECKPOINTING: envVar("OPENCOW_DISABLE_FILE_CHECKPOINTING", "CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING"),
26038
+ DISABLE_GIT_INSTRUCTIONS: envVar("OPENCOW_DISABLE_GIT_INSTRUCTIONS", "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS"),
26039
+ DISABLE_LEGACY_MODEL_REMAP: envVar("OPENCOW_DISABLE_LEGACY_MODEL_REMAP", "CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP"),
26040
+ DISABLE_MESSAGE_ACTIONS: envVar("OPENCOW_DISABLE_MESSAGE_ACTIONS", "CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS"),
26041
+ DISABLE_MOUSE: envVar("OPENCOW_DISABLE_MOUSE", "CLAUDE_CODE_DISABLE_MOUSE"),
26042
+ DISABLE_MOUSE_CLICKS: envVar("OPENCOW_DISABLE_MOUSE_CLICKS", "CLAUDE_CODE_DISABLE_MOUSE_CLICKS"),
26043
+ DISABLE_NONESSENTIAL_TRAFFIC: envVar("OPENCOW_DISABLE_NONESSENTIAL_TRAFFIC", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"),
26044
+ DISABLE_NONSTREAMING_FALLBACK: envVar("OPENCOW_DISABLE_NONSTREAMING_FALLBACK", "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK"),
26045
+ DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL: envVar("OPENCOW_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL", "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL"),
26046
+ DISABLE_POLICY_SKILLS: envVar("OPENCOW_DISABLE_POLICY_SKILLS", "CLAUDE_CODE_DISABLE_POLICY_SKILLS"),
26047
+ DISABLE_PRECOMPACT_SKIP: envVar("OPENCOW_DISABLE_PRECOMPACT_SKIP", "CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP"),
26048
+ DISABLE_TERMINAL_TITLE: envVar("OPENCOW_DISABLE_TERMINAL_TITLE", "CLAUDE_CODE_DISABLE_TERMINAL_TITLE"),
26049
+ DISABLE_THINKING: envVar("OPENCOW_DISABLE_THINKING", "CLAUDE_CODE_DISABLE_THINKING"),
26050
+ DISABLE_VIRTUAL_SCROLL: envVar("OPENCOW_DISABLE_VIRTUAL_SCROLL", "CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL"),
26051
+ DONT_INHERIT_ENV: envVar("OPENCOW_DONT_INHERIT_ENV", "CLAUDE_CODE_DONT_INHERIT_ENV"),
26052
+ DUMP_AUTO_MODE: envVar("OPENCOW_DUMP_AUTO_MODE", "CLAUDE_CODE_DUMP_AUTO_MODE"),
26053
+ EAGER_FLUSH: envVar("OPENCOW_EAGER_FLUSH", "CLAUDE_CODE_EAGER_FLUSH"),
26054
+ EFFORT_LEVEL: envVar("OPENCOW_EFFORT_LEVEL", "CLAUDE_CODE_EFFORT_LEVEL"),
26055
+ EMIT_SESSION_STATE_EVENTS: envVar("OPENCOW_EMIT_SESSION_STATE_EVENTS", "CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS"),
26056
+ EMIT_TOOL_USE_SUMMARIES: envVar("OPENCOW_EMIT_TOOL_USE_SUMMARIES", "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES"),
26057
+ ENABLE_CFC: envVar("OPENCOW_ENABLE_CFC", "CLAUDE_CODE_ENABLE_CFC"),
26058
+ ENABLE_FINE_GRAINED_TOOL_STREAMING: envVar("OPENCOW_ENABLE_FINE_GRAINED_TOOL_STREAMING", "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING"),
26059
+ ENABLE_PROMPT_SUGGESTION: envVar("OPENCOW_ENABLE_PROMPT_SUGGESTION", "CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION"),
26060
+ ENABLE_SDK_FILE_CHECKPOINTING: envVar("OPENCOW_ENABLE_SDK_FILE_CHECKPOINTING", "CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING"),
26061
+ ENABLE_TASKS: envVar("OPENCOW_ENABLE_TASKS", "CLAUDE_CODE_ENABLE_TASKS"),
26062
+ ENABLE_TELEMETRY: envVar("OPENCOW_ENABLE_TELEMETRY", "CLAUDE_CODE_ENABLE_TELEMETRY"),
26063
+ ENABLE_TOKEN_USAGE_ATTACHMENT: envVar("OPENCOW_ENABLE_TOKEN_USAGE_ATTACHMENT", "CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT"),
26064
+ ENABLE_TOOL_SEARCH: envVar("OPENCOW_ENABLE_TOOL_SEARCH", "ENABLE_TOOL_SEARCH"),
26065
+ ENABLE_XAA: envVar("OPENCOW_ENABLE_XAA", "CLAUDE_CODE_ENABLE_XAA"),
26066
+ ENHANCED_TELEMETRY_BETA: envVar("OPENCOW_ENHANCED_TELEMETRY_BETA", "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA"),
26067
+ ENTRYPOINT: envVar("OPENCOW_ENTRYPOINT", "CLAUDE_CODE_ENTRYPOINT"),
26068
+ ENVIRONMENT_KIND: envVar("OPENCOW_ENVIRONMENT_KIND", "CLAUDE_CODE_ENVIRONMENT_KIND"),
26069
+ ENVIRONMENT_RUNNER_VERSION: envVar("OPENCOW_ENVIRONMENT_RUNNER_VERSION", "CLAUDE_CODE_ENVIRONMENT_RUNNER_VERSION"),
26070
+ EXIT_AFTER_FIRST_RENDER: envVar("OPENCOW_EXIT_AFTER_FIRST_RENDER", "CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER"),
26071
+ EXIT_AFTER_STOP_DELAY: envVar("OPENCOW_EXIT_AFTER_STOP_DELAY", "CLAUDE_CODE_EXIT_AFTER_STOP_DELAY"),
26072
+ EXPERIMENTAL_AGENT_TEAMS: envVar("OPENCOW_EXPERIMENTAL_AGENT_TEAMS", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"),
26073
+ EXTRA_BODY: envVar("OPENCOW_EXTRA_BODY", "CLAUDE_CODE_EXTRA_BODY"),
26074
+ EXTRA_METADATA: envVar("OPENCOW_EXTRA_METADATA", "CLAUDE_CODE_EXTRA_METADATA"),
26075
+ FILE_READ_MAX_OUTPUT_TOKENS: envVar("OPENCOW_FILE_READ_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS"),
26076
+ FORCE_FULL_LOGO: envVar("OPENCOW_FORCE_FULL_LOGO", "CLAUDE_CODE_FORCE_FULL_LOGO"),
26077
+ FRAME_TIMING_LOG: envVar("OPENCOW_FRAME_TIMING_LOG", "CLAUDE_CODE_FRAME_TIMING_LOG"),
26078
+ GB_BASE_URL: envVar("OPENCOW_GB_BASE_URL", "CLAUDE_CODE_GB_BASE_URL"),
26079
+ GIT_BASH_PATH: envVar("OPENCOW_GIT_BASH_PATH", "CLAUDE_CODE_GIT_BASH_PATH"),
26080
+ GLOB_HIDDEN: envVar("OPENCOW_GLOB_HIDDEN", "CLAUDE_CODE_GLOB_HIDDEN"),
26081
+ GLOB_NO_IGNORE: envVar("OPENCOW_GLOB_NO_IGNORE", "CLAUDE_CODE_GLOB_NO_IGNORE"),
26082
+ GLOB_TIMEOUT_SECONDS: envVar("OPENCOW_GLOB_TIMEOUT_SECONDS", "CLAUDE_CODE_GLOB_TIMEOUT_SECONDS"),
26083
+ HOST_PLATFORM: envVar("OPENCOW_HOST_PLATFORM", "CLAUDE_CODE_HOST_PLATFORM"),
26084
+ IDE_HOST_OVERRIDE: envVar("OPENCOW_IDE_HOST_OVERRIDE", "CLAUDE_CODE_IDE_HOST_OVERRIDE"),
26085
+ IDE_SKIP_AUTO_INSTALL: envVar("OPENCOW_IDE_SKIP_AUTO_INSTALL", "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL"),
26086
+ IDE_SKIP_VALID_CHECK: envVar("OPENCOW_IDE_SKIP_VALID_CHECK", "CLAUDE_CODE_IDE_SKIP_VALID_CHECK"),
26087
+ IDLE_THRESHOLD_MINUTES: envVar("OPENCOW_IDLE_THRESHOLD_MINUTES", "CLAUDE_CODE_IDLE_THRESHOLD_MINUTES"),
26088
+ IDLE_TOKEN_THRESHOLD: envVar("OPENCOW_IDLE_TOKEN_THRESHOLD", "CLAUDE_CODE_IDLE_TOKEN_THRESHOLD"),
26089
+ INCLUDE_PARTIAL_MESSAGES: envVar("OPENCOW_INCLUDE_PARTIAL_MESSAGES", "CLAUDE_CODE_INCLUDE_PARTIAL_MESSAGES"),
26090
+ INTERNAL_ARTIFACTORY_BASE_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_BASE_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_BASE_URL"),
26091
+ INTERNAL_ARTIFACTORY_REGISTRY_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_REGISTRY_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_REGISTRY_URL"),
26092
+ IS_COWORK: envVar("OPENCOW_IS_COWORK", "CLAUDE_CODE_IS_COWORK"),
26093
+ JSONL_TRANSCRIPT: envVar("OPENCOW_JSONL_TRANSCRIPT", "CLAUDE_CODE_JSONL_TRANSCRIPT"),
26094
+ MANAGED_SETTINGS_PATH: envVar("OPENCOW_MANAGED_SETTINGS_PATH", "CLAUDE_CODE_MANAGED_SETTINGS_PATH"),
26095
+ MAX_CONTEXT_TOKENS: envVar("OPENCOW_MAX_CONTEXT_TOKENS", "CLAUDE_CODE_MAX_CONTEXT_TOKENS"),
26096
+ MAX_OUTPUT_TOKENS: envVar("OPENCOW_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_MAX_OUTPUT_TOKENS"),
26097
+ MAX_RETRIES: envVar("OPENCOW_MAX_RETRIES", "CLAUDE_CODE_MAX_RETRIES"),
26098
+ MAX_TOOL_USE_CONCURRENCY: envVar("OPENCOW_MAX_TOOL_USE_CONCURRENCY", "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY"),
26099
+ MCP_INSTR_DELTA: envVar("OPENCOW_MCP_INSTR_DELTA", "CLAUDE_CODE_MCP_INSTR_DELTA"),
26100
+ MESSAGING_SOCKET: envVar("OPENCOW_MESSAGING_SOCKET", "CLAUDE_CODE_MESSAGING_SOCKET"),
26101
+ NEW_INIT: envVar("OPENCOW_NEW_INIT", "CLAUDE_CODE_NEW_INIT"),
26102
+ NO_FLICKER: envVar("OPENCOW_NO_FLICKER", "CLAUDE_CODE_NO_FLICKER"),
26103
+ OAUTH_CLIENT_ID: envVar("OPENCOW_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_ID"),
26104
+ OAUTH_REFRESH_TOKEN: envVar("OPENCOW_OAUTH_REFRESH_TOKEN", "CLAUDE_CODE_OAUTH_REFRESH_TOKEN"),
26105
+ OAUTH_SCOPES: envVar("OPENCOW_OAUTH_SCOPES", "CLAUDE_CODE_OAUTH_SCOPES"),
26106
+ OAUTH_TOKEN: envVar("OPENCOW_OAUTH_TOKEN", "CLAUDE_CODE_OAUTH_TOKEN"),
26107
+ OAUTH_TOKEN_FILE_DESCRIPTOR: envVar("OPENCOW_OAUTH_TOKEN_FILE_DESCRIPTOR", "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR"),
26108
+ ORGANIZATION_UUID: envVar("OPENCOW_ORGANIZATION_UUID", "CLAUDE_CODE_ORGANIZATION_UUID"),
26109
+ OTEL_FLUSH_TIMEOUT_MS: envVar("OPENCOW_OTEL_FLUSH_TIMEOUT_MS", "CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS"),
26110
+ OTEL_HEADERS_HELPER_DEBOUNCE_MS: envVar("OPENCOW_OTEL_HEADERS_HELPER_DEBOUNCE_MS", "CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"),
26111
+ OTEL_SHUTDOWN_TIMEOUT_MS: envVar("OPENCOW_OTEL_SHUTDOWN_TIMEOUT_MS", "CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS"),
26112
+ OVERRIDE_DATE: envVar("OPENCOW_OVERRIDE_DATE", "CLAUDE_CODE_OVERRIDE_DATE"),
26113
+ PERFETTO_TRACE: envVar("OPENCOW_PERFETTO_TRACE", "CLAUDE_CODE_PERFETTO_TRACE"),
26114
+ PERFETTO_WRITE_INTERVAL_S: envVar("OPENCOW_PERFETTO_WRITE_INTERVAL_S", "CLAUDE_CODE_PERFETTO_WRITE_INTERVAL_S"),
26115
+ PLAN_MODE_INTERVIEW_PHASE: envVar("OPENCOW_PLAN_MODE_INTERVIEW_PHASE", "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE"),
26116
+ PLAN_MODE_REQUIRED: envVar("OPENCOW_PLAN_MODE_REQUIRED", "CLAUDE_CODE_PLAN_MODE_REQUIRED"),
26117
+ PLAN_V2_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_AGENT_COUNT"),
26118
+ PLAN_V2_EXPLORE_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_EXPLORE_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_EXPLORE_AGENT_COUNT"),
26119
+ PLUGIN_CACHE_DIR: envVar("OPENCOW_PLUGIN_CACHE_DIR", "CLAUDE_CODE_PLUGIN_CACHE_DIR"),
26120
+ PLUGIN_GIT_TIMEOUT_MS: envVar("OPENCOW_PLUGIN_GIT_TIMEOUT_MS", "CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS"),
26121
+ PLUGIN_SEED_DIR: envVar("OPENCOW_PLUGIN_SEED_DIR", "CLAUDE_CODE_PLUGIN_SEED_DIR"),
26122
+ PLUGIN_USE_ZIP_CACHE: envVar("OPENCOW_PLUGIN_USE_ZIP_CACHE", "CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE"),
26123
+ POST_FOR_SESSION_INGRESS_V2: envVar("OPENCOW_POST_FOR_SESSION_INGRESS_V2", "CLAUDE_CODE_POST_FOR_SESSION_INGRESS_V2"),
26124
+ PROACTIVE: envVar("OPENCOW_PROACTIVE", "CLAUDE_CODE_PROACTIVE"),
26125
+ PROFILE_QUERY: envVar("OPENCOW_PROFILE_QUERY", "CLAUDE_CODE_PROFILE_QUERY"),
26126
+ PROFILE_STARTUP: envVar("OPENCOW_PROFILE_STARTUP", "CLAUDE_CODE_PROFILE_STARTUP"),
26127
+ PROVIDER_MANAGED_BY_HOST: envVar("OPENCOW_PROVIDER_MANAGED_BY_HOST", "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST"),
26128
+ PROVIDER_PROFILE_ENV_APPLIED: envVar("OPENCOW_PROVIDER_PROFILE_ENV_APPLIED", "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED"),
26129
+ PROXY_RESOLVES_HOSTS: envVar("OPENCOW_PROXY_RESOLVES_HOSTS", "CLAUDE_CODE_PROXY_RESOLVES_HOSTS"),
26130
+ PWSH_PARSE_TIMEOUT_MS: envVar("OPENCOW_PWSH_PARSE_TIMEOUT_MS", "CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS"),
26131
+ QUESTION_PREVIEW_FORMAT: envVar("OPENCOW_QUESTION_PREVIEW_FORMAT", "CLAUDE_CODE_QUESTION_PREVIEW_FORMAT"),
26132
+ REMOTE: envVar("OPENCOW_REMOTE", "CLAUDE_CODE_REMOTE"),
26133
+ REMOTE_ENVIRONMENT_TYPE: envVar("OPENCOW_REMOTE_ENVIRONMENT_TYPE", "CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE"),
26134
+ REMOTE_MEMORY_DIR: envVar("OPENCOW_REMOTE_MEMORY_DIR", "CLAUDE_CODE_REMOTE_MEMORY_DIR"),
26135
+ REMOTE_SEND_KEEPALIVES: envVar("OPENCOW_REMOTE_SEND_KEEPALIVES", "CLAUDE_CODE_REMOTE_SEND_KEEPALIVES"),
26136
+ REMOTE_SESSION_ID: envVar("OPENCOW_REMOTE_SESSION_ID", "CLAUDE_CODE_REMOTE_SESSION_ID"),
26137
+ REPL: envVar("OPENCOW_REPL", "CLAUDE_CODE_REPL"),
26138
+ RESUME_INTERRUPTED_TURN: envVar("OPENCOW_RESUME_INTERRUPTED_TURN", "CLAUDE_CODE_RESUME_INTERRUPTED_TURN"),
26139
+ SAVE_HOOK_ADDITIONAL_CONTEXT: envVar("OPENCOW_SAVE_HOOK_ADDITIONAL_CONTEXT", "CLAUDE_CODE_SAVE_HOOK_ADDITIONAL_CONTEXT"),
26140
+ SCROLL_SPEED: envVar("OPENCOW_SCROLL_SPEED", "CLAUDE_CODE_SCROLL_SPEED"),
26141
+ SESSIONEND_HOOKS_TIMEOUT_MS: envVar("OPENCOW_SESSIONEND_HOOKS_TIMEOUT_MS", "CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS"),
26142
+ SESSION_ACCESS_TOKEN: envVar("OPENCOW_SESSION_ACCESS_TOKEN", "CLAUDE_CODE_SESSION_ACCESS_TOKEN"),
26143
+ SESSION_ID: envVar("OPENCOW_SESSION_ID", "CLAUDE_CODE_SESSION_ID"),
26144
+ SESSION_KIND: envVar("OPENCOW_SESSION_KIND", "CLAUDE_CODE_SESSION_KIND"),
26145
+ SESSION_LOG: envVar("OPENCOW_SESSION_LOG", "CLAUDE_CODE_SESSION_LOG"),
26146
+ SESSION_NAME: envVar("OPENCOW_SESSION_NAME", "CLAUDE_CODE_SESSION_NAME"),
26147
+ SHELL: envVar("OPENCOW_SHELL", "CLAUDE_CODE_SHELL"),
26148
+ SHELL_PREFIX: envVar("OPENCOW_SHELL_PREFIX", "CLAUDE_CODE_SHELL_PREFIX"),
26149
+ SIMPLE: envVar("OPENCOW_SIMPLE", "CLAUDE_CODE_SIMPLE"),
26150
+ SKIP_BEDROCK_AUTH: envVar("OPENCOW_SKIP_BEDROCK_AUTH", "CLAUDE_CODE_SKIP_BEDROCK_AUTH"),
26151
+ SKIP_FAST_MODE_NETWORK_ERRORS: envVar("OPENCOW_SKIP_FAST_MODE_NETWORK_ERRORS", "CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS"),
26152
+ SKIP_FOUNDRY_AUTH: envVar("OPENCOW_SKIP_FOUNDRY_AUTH", "CLAUDE_CODE_SKIP_FOUNDRY_AUTH"),
26153
+ SKIP_PROMPT_HISTORY: envVar("OPENCOW_SKIP_PROMPT_HISTORY", "CLAUDE_CODE_SKIP_PROMPT_HISTORY"),
26154
+ SKIP_VERTEX_AUTH: envVar("OPENCOW_SKIP_VERTEX_AUTH", "CLAUDE_CODE_SKIP_VERTEX_AUTH"),
26155
+ SLOW_OPERATION_THRESHOLD_MS: envVar("OPENCOW_SLOW_OPERATION_THRESHOLD_MS", "CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS"),
26156
+ SSE_PORT: envVar("OPENCOW_SSE_PORT", "CLAUDE_CODE_SSE_PORT"),
26157
+ STALL_TIMEOUT_MS_FOR_TESTING: envVar("OPENCOW_STALL_TIMEOUT_MS_FOR_TESTING", "CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING"),
26158
+ STREAMLINED_OUTPUT: envVar("OPENCOW_STREAMLINED_OUTPUT", "CLAUDE_CODE_STREAMLINED_OUTPUT"),
26159
+ SUBAGENT_MODEL: envVar("OPENCOW_SUBAGENT_MODEL", "CLAUDE_CODE_SUBAGENT_MODEL"),
26160
+ SUBPROCESS_ENV_SCRUB: envVar("OPENCOW_SUBPROCESS_ENV_SCRUB", "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB"),
26161
+ SYNC_PLUGIN_INSTALL: envVar("OPENCOW_SYNC_PLUGIN_INSTALL", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL"),
26162
+ SYNC_PLUGIN_INSTALL_TIMEOUT_MS: envVar("OPENCOW_SYNC_PLUGIN_INSTALL_TIMEOUT_MS", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS"),
26163
+ SYNTAX_HIGHLIGHT: envVar("OPENCOW_SYNTAX_HIGHLIGHT", "CLAUDE_CODE_SYNTAX_HIGHLIGHT"),
26164
+ TAGS: envVar("OPENCOW_TAGS", "CLAUDE_CODE_TAGS"),
26165
+ TASK_LIST_ID: envVar("OPENCOW_TASK_LIST_ID", "CLAUDE_CODE_TASK_LIST_ID"),
26166
+ TEST_FIXTURES_ROOT: envVar("OPENCOW_TEST_FIXTURES_ROOT", "CLAUDE_CODE_TEST_FIXTURES_ROOT"),
26167
+ TMPDIR: envVar("OPENCOW_TMPDIR", "CLAUDE_CODE_TMPDIR"),
26168
+ TMUX_PREFIX: envVar("OPENCOW_TMUX_PREFIX", "CLAUDE_CODE_TMUX_PREFIX"),
26169
+ TMUX_PREFIX_CONFLICTS: envVar("OPENCOW_TMUX_PREFIX_CONFLICTS", "CLAUDE_CODE_TMUX_PREFIX_CONFLICTS"),
26170
+ TMUX_SESSION: envVar("OPENCOW_TMUX_SESSION", "CLAUDE_CODE_TMUX_SESSION"),
26171
+ TMUX_TRUECOLOR: envVar("OPENCOW_TMUX_TRUECOLOR", "CLAUDE_CODE_TMUX_TRUECOLOR"),
26172
+ TWO_STAGE_CLASSIFIER: envVar("OPENCOW_TWO_STAGE_CLASSIFIER", "CLAUDE_CODE_TWO_STAGE_CLASSIFIER"),
26173
+ UNATTENDED_RETRY: envVar("OPENCOW_UNATTENDED_RETRY", "CLAUDE_CODE_UNATTENDED_RETRY"),
26174
+ USER_EMAIL: envVar("OPENCOW_USER_EMAIL", "CLAUDE_CODE_USER_EMAIL"),
26175
+ USE_BEDROCK: envVar("OPENCOW_USE_BEDROCK", "CLAUDE_CODE_USE_BEDROCK"),
26176
+ USE_CCR_V2: envVar("OPENCOW_USE_CCR_V2", "CLAUDE_CODE_USE_CCR_V2"),
26177
+ USE_COWORK_PLUGINS: envVar("OPENCOW_USE_COWORK_PLUGINS", "CLAUDE_CODE_USE_COWORK_PLUGINS"),
26178
+ USE_FOUNDRY: envVar("OPENCOW_USE_FOUNDRY", "CLAUDE_CODE_USE_FOUNDRY"),
26179
+ USE_GEMINI: envVar("OPENCOW_USE_GEMINI", "CLAUDE_CODE_USE_GEMINI"),
26180
+ USE_GITHUB: envVar("OPENCOW_USE_GITHUB", "CLAUDE_CODE_USE_GITHUB"),
26181
+ USE_NATIVE_FILE_SEARCH: envVar("OPENCOW_USE_NATIVE_FILE_SEARCH", "CLAUDE_CODE_USE_NATIVE_FILE_SEARCH"),
26182
+ USE_OPENAI: envVar("OPENCOW_USE_OPENAI", "CLAUDE_CODE_USE_OPENAI"),
26183
+ USE_POWERSHELL_TOOL: envVar("OPENCOW_USE_POWERSHELL_TOOL", "CLAUDE_CODE_USE_POWERSHELL_TOOL"),
26184
+ USE_VERTEX: envVar("OPENCOW_USE_VERTEX", "CLAUDE_CODE_USE_VERTEX"),
26185
+ VERIFY_PLAN: envVar("OPENCOW_VERIFY_PLAN", "CLAUDE_CODE_VERIFY_PLAN"),
26186
+ WEBSOCKET_AUTH_FILE_DESCRIPTOR: envVar("OPENCOW_WEBSOCKET_AUTH_FILE_DESCRIPTOR", "CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR"),
26187
+ WORKER_EPOCH: envVar("OPENCOW_WORKER_EPOCH", "CLAUDE_CODE_WORKER_EPOCH"),
26188
+ WORKSPACE_HOST_PATHS: envVar("OPENCOW_WORKSPACE_HOST_PATHS", "CLAUDE_CODE_WORKSPACE_HOST_PATHS"),
26189
+ MEMORY_EXTRA_GUIDELINES: envVar("OPENCOW_MEMORY_EXTRA_GUIDELINES", "CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES"),
26190
+ MEMORY_PATH_OVERRIDE: envVar("OPENCOW_MEMORY_PATH_OVERRIDE", "CLAUDE_COWORK_MEMORY_PATH_OVERRIDE"),
26191
+ DEBUG_INPUT: envVar("OPENCOW_DEBUG_INPUT"),
26192
+ DISABLE_CO_AUTHORED_BY: envVar("OPENCOW_DISABLE_CO_AUTHORED_BY"),
26193
+ DISABLE_EARLY_INPUT: envVar("OPENCOW_DISABLE_EARLY_INPUT"),
26194
+ ENABLE_EXTENDED_KEYS: envVar("OPENCOW_ENABLE_EXTENDED_KEYS"),
26195
+ USE_READABLE_STDIN: envVar("OPENCOW_USE_READABLE_STDIN")
26196
+ };
26197
+ });
26198
+
25938
26199
  // src/session/layout/paths.ts
25939
26200
  var exports_paths = {};
25940
26201
  __export(exports_paths, {
@@ -33097,22 +33358,22 @@ function hasNodeOption(flag) {
33097
33358
  }
33098
33359
  return nodeOptions.split(/\s+/).includes(flag);
33099
33360
  }
33100
- function isEnvTruthy(envVar) {
33101
- if (!envVar)
33361
+ function isEnvTruthy(envVar2) {
33362
+ if (!envVar2)
33102
33363
  return false;
33103
- if (typeof envVar === "boolean")
33104
- return envVar;
33105
- const normalizedValue = envVar.toLowerCase().trim();
33364
+ if (typeof envVar2 === "boolean")
33365
+ return envVar2;
33366
+ const normalizedValue = envVar2.toLowerCase().trim();
33106
33367
  return ["1", "true", "yes", "on"].includes(normalizedValue);
33107
33368
  }
33108
- function isEnvDefinedFalsy(envVar) {
33109
- if (envVar === undefined)
33369
+ function isEnvDefinedFalsy(envVar2) {
33370
+ if (envVar2 === undefined)
33110
33371
  return false;
33111
- if (typeof envVar === "boolean")
33112
- return !envVar;
33113
- if (!envVar)
33372
+ if (typeof envVar2 === "boolean")
33373
+ return !envVar2;
33374
+ if (!envVar2)
33114
33375
  return false;
33115
- const normalizedValue = envVar.toLowerCase().trim();
33376
+ const normalizedValue = envVar2.toLowerCase().trim();
33116
33377
  return ["0", "false", "no", "off"].includes(normalizedValue);
33117
33378
  }
33118
33379
  function isBareMode() {
@@ -33374,266 +33635,6 @@ var init_debug = __esm(() => {
33374
33635
  });
33375
33636
  });
33376
33637
 
33377
- // src/constants/envVars.ts
33378
- function envVar(primary, legacy) {
33379
- return legacy !== undefined ? { primary, legacy } : { primary };
33380
- }
33381
- function readEnvVarRaw(key) {
33382
- const { primary, legacy } = ENV_VARS[key];
33383
- const fromPrimary = process.env[primary];
33384
- if (fromPrimary !== undefined)
33385
- return fromPrimary;
33386
- if (legacy !== undefined)
33387
- return process.env[legacy];
33388
- return;
33389
- }
33390
- function resolveEnvVar(key) {
33391
- const { primary, legacy } = ENV_VARS[key];
33392
- const { tryGetQueryContext: tryGetQueryContext2 } = (init_als(), __toCommonJS(exports_als));
33393
- const ctx = tryGetQueryContext2();
33394
- if (ctx) {
33395
- const fromQueryPrimary = ctx.config.env.get(primary);
33396
- if (fromQueryPrimary !== undefined)
33397
- return fromQueryPrimary;
33398
- if (legacy !== undefined) {
33399
- const fromQueryLegacy = ctx.config.env.get(legacy);
33400
- if (fromQueryLegacy !== undefined)
33401
- return fromQueryLegacy;
33402
- }
33403
- }
33404
- const fromProcessPrimary = process.env[primary];
33405
- if (fromProcessPrimary !== undefined)
33406
- return fromProcessPrimary;
33407
- if (legacy !== undefined)
33408
- return process.env[legacy];
33409
- return;
33410
- }
33411
- function setEnvVar(key, value) {
33412
- const { primary } = ENV_VARS[key];
33413
- if (value === undefined) {
33414
- delete process.env[primary];
33415
- } else {
33416
- process.env[primary] = value;
33417
- }
33418
- }
33419
- function deleteEnvVar(key) {
33420
- const { primary, legacy } = ENV_VARS[key];
33421
- delete process.env[primary];
33422
- if (legacy !== undefined)
33423
- delete process.env[legacy];
33424
- }
33425
- var ENV_VARS;
33426
- var init_envVars = __esm(() => {
33427
- ENV_VARS = {
33428
- ABLATION_BASELINE: envVar("OPENCOW_ABLATION_BASELINE", "CLAUDE_CODE_ABLATION_BASELINE"),
33429
- ACCESSIBILITY: envVar("OPENCOW_ACCESSIBILITY", "CLAUDE_CODE_ACCESSIBILITY"),
33430
- ACCOUNT_TAGGED_ID: envVar("OPENCOW_ACCOUNT_TAGGED_ID", "CLAUDE_CODE_ACCOUNT_TAGGED_ID"),
33431
- ACCOUNT_UUID: envVar("OPENCOW_ACCOUNT_UUID", "CLAUDE_CODE_ACCOUNT_UUID"),
33432
- ACTION: envVar("OPENCOW_ACTION", "CLAUDE_CODE_ACTION"),
33433
- ADDITIONAL_DIRECTORIES_CLAUDE_MD: envVar("OPENCOW_ADDITIONAL_DIRECTORIES_CLAUDE_MD", "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD"),
33434
- ADDITIONAL_PROTECTION: envVar("OPENCOW_ADDITIONAL_PROTECTION", "CLAUDE_CODE_ADDITIONAL_PROTECTION"),
33435
- AGENT: envVar("OPENCOW_AGENT", "CLAUDE_CODE_AGENT"),
33436
- AGENT_LIST_IN_MESSAGES: envVar("OPENCOW_AGENT_LIST_IN_MESSAGES", "CLAUDE_CODE_AGENT_LIST_IN_MESSAGES"),
33437
- ALWAYS_ENABLE_EFFORT: envVar("OPENCOW_ALWAYS_ENABLE_EFFORT", "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT"),
33438
- API_KEY_FILE_DESCRIPTOR: envVar("OPENCOW_API_KEY_FILE_DESCRIPTOR", "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR"),
33439
- API_KEY_HELPER_TTL_MS: envVar("OPENCOW_API_KEY_HELPER_TTL_MS", "CLAUDE_CODE_API_KEY_HELPER_TTL_MS"),
33440
- ATTRIBUTION_HEADER: envVar("OPENCOW_ATTRIBUTION_HEADER", "CLAUDE_CODE_ATTRIBUTION_HEADER"),
33441
- AUTO_COMPACT_WINDOW: envVar("OPENCOW_AUTO_COMPACT_WINDOW", "CLAUDE_CODE_AUTO_COMPACT_WINDOW"),
33442
- AUTO_CONNECT_IDE: envVar("OPENCOW_AUTO_CONNECT_IDE", "CLAUDE_CODE_AUTO_CONNECT_IDE"),
33443
- AUTO_MODE_MODEL: envVar("OPENCOW_AUTO_MODE_MODEL", "CLAUDE_CODE_AUTO_MODE_MODEL"),
33444
- BASE_REF: envVar("OPENCOW_BASE_REF", "CLAUDE_CODE_BASE_REF"),
33445
- BASH_SANDBOX_SHOW_INDICATOR: envVar("OPENCOW_BASH_SANDBOX_SHOW_INDICATOR", "CLAUDE_CODE_BASH_SANDBOX_SHOW_INDICATOR"),
33446
- BLOCKING_LIMIT_OVERRIDE: envVar("OPENCOW_BLOCKING_LIMIT_OVERRIDE", "CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE"),
33447
- BRIEF: envVar("OPENCOW_BRIEF", "CLAUDE_CODE_BRIEF"),
33448
- BRIEF_UPLOAD: envVar("OPENCOW_BRIEF_UPLOAD", "CLAUDE_CODE_BRIEF_UPLOAD"),
33449
- BUBBLEWRAP: envVar("OPENCOW_BUBBLEWRAP", "CLAUDE_CODE_BUBBLEWRAP"),
33450
- CCR_MIRROR: envVar("OPENCOW_CCR_MIRROR", "CLAUDE_CODE_CCR_MIRROR"),
33451
- CLIENT_CERT: envVar("OPENCOW_CLIENT_CERT", "CLAUDE_CODE_CLIENT_CERT"),
33452
- CLIENT_KEY: envVar("OPENCOW_CLIENT_KEY", "CLAUDE_CODE_CLIENT_KEY"),
33453
- CLIENT_KEY_PASSPHRASE: envVar("OPENCOW_CLIENT_KEY_PASSPHRASE", "CLAUDE_CODE_CLIENT_KEY_PASSPHRASE"),
33454
- COMMIT_LOG: envVar("OPENCOW_COMMIT_LOG", "CLAUDE_CODE_COMMIT_LOG"),
33455
- CONTAINER_ID: envVar("OPENCOW_CONTAINER_ID", "CLAUDE_CODE_CONTAINER_ID"),
33456
- COORDINATOR_MODE: envVar("OPENCOW_COORDINATOR_MODE", "CLAUDE_CODE_COORDINATOR_MODE"),
33457
- COWORKER_TYPE: envVar("OPENCOW_COWORKER_TYPE", "CLAUDE_CODE_COWORKER_TYPE"),
33458
- CUSTOM_OAUTH_URL: envVar("OPENCOW_CUSTOM_OAUTH_URL", "CLAUDE_CODE_CUSTOM_OAUTH_URL"),
33459
- DATADOG_FLUSH_INTERVAL_MS: envVar("OPENCOW_DATADOG_FLUSH_INTERVAL_MS", "CLAUDE_CODE_DATADOG_FLUSH_INTERVAL_MS"),
33460
- DEBUG_LOGS_DIR: envVar("OPENCOW_DEBUG_LOGS_DIR", "CLAUDE_CODE_DEBUG_LOGS_DIR"),
33461
- DEBUG_LOG_LEVEL: envVar("OPENCOW_DEBUG_LOG_LEVEL", "CLAUDE_CODE_DEBUG_LOG_LEVEL"),
33462
- DEBUG_REPAINTS: envVar("OPENCOW_DEBUG_REPAINTS", "CLAUDE_CODE_DEBUG_REPAINTS"),
33463
- DIAGNOSTICS_FILE: envVar("OPENCOW_DIAGNOSTICS_FILE", "CLAUDE_CODE_DIAGNOSTICS_FILE"),
33464
- DISABLE_1M_CONTEXT: envVar("OPENCOW_DISABLE_1M_CONTEXT", "CLAUDE_CODE_DISABLE_1M_CONTEXT"),
33465
- DISABLE_ADAPTIVE_THINKING: envVar("OPENCOW_DISABLE_ADAPTIVE_THINKING", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING"),
33466
- DISABLE_ADVISOR_TOOL: envVar("OPENCOW_DISABLE_ADVISOR_TOOL", "CLAUDE_CODE_DISABLE_ADVISOR_TOOL"),
33467
- DISABLE_ATTACHMENTS: envVar("OPENCOW_DISABLE_ATTACHMENTS", "CLAUDE_CODE_DISABLE_ATTACHMENTS"),
33468
- DISABLE_AUTO_MEMORY: envVar("OPENCOW_DISABLE_AUTO_MEMORY", "CLAUDE_CODE_DISABLE_AUTO_MEMORY"),
33469
- DISABLE_BACKGROUND_TASKS: envVar("OPENCOW_DISABLE_BACKGROUND_TASKS", "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS"),
33470
- DISABLE_CLAUDE_MDS: envVar("OPENCOW_DISABLE_CLAUDE_MDS", "CLAUDE_CODE_DISABLE_CLAUDE_MDS"),
33471
- DISABLE_COMMAND_INJECTION_CHECK: envVar("OPENCOW_DISABLE_COMMAND_INJECTION_CHECK", "CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK"),
33472
- DISABLE_CRON: envVar("OPENCOW_DISABLE_CRON", "CLAUDE_CODE_DISABLE_CRON"),
33473
- DISABLE_EXPERIMENTAL_BETAS: envVar("OPENCOW_DISABLE_EXPERIMENTAL_BETAS", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"),
33474
- DISABLE_FAST_MODE: envVar("OPENCOW_DISABLE_FAST_MODE", "CLAUDE_CODE_DISABLE_FAST_MODE"),
33475
- DISABLE_FEEDBACK_SURVEY: envVar("OPENCOW_DISABLE_FEEDBACK_SURVEY", "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY"),
33476
- DISABLE_FILE_CHECKPOINTING: envVar("OPENCOW_DISABLE_FILE_CHECKPOINTING", "CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING"),
33477
- DISABLE_GIT_INSTRUCTIONS: envVar("OPENCOW_DISABLE_GIT_INSTRUCTIONS", "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS"),
33478
- DISABLE_LEGACY_MODEL_REMAP: envVar("OPENCOW_DISABLE_LEGACY_MODEL_REMAP", "CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP"),
33479
- DISABLE_MESSAGE_ACTIONS: envVar("OPENCOW_DISABLE_MESSAGE_ACTIONS", "CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS"),
33480
- DISABLE_MOUSE: envVar("OPENCOW_DISABLE_MOUSE", "CLAUDE_CODE_DISABLE_MOUSE"),
33481
- DISABLE_MOUSE_CLICKS: envVar("OPENCOW_DISABLE_MOUSE_CLICKS", "CLAUDE_CODE_DISABLE_MOUSE_CLICKS"),
33482
- DISABLE_NONESSENTIAL_TRAFFIC: envVar("OPENCOW_DISABLE_NONESSENTIAL_TRAFFIC", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"),
33483
- DISABLE_NONSTREAMING_FALLBACK: envVar("OPENCOW_DISABLE_NONSTREAMING_FALLBACK", "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK"),
33484
- DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL: envVar("OPENCOW_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL", "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL"),
33485
- DISABLE_POLICY_SKILLS: envVar("OPENCOW_DISABLE_POLICY_SKILLS", "CLAUDE_CODE_DISABLE_POLICY_SKILLS"),
33486
- DISABLE_PRECOMPACT_SKIP: envVar("OPENCOW_DISABLE_PRECOMPACT_SKIP", "CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP"),
33487
- DISABLE_TERMINAL_TITLE: envVar("OPENCOW_DISABLE_TERMINAL_TITLE", "CLAUDE_CODE_DISABLE_TERMINAL_TITLE"),
33488
- DISABLE_THINKING: envVar("OPENCOW_DISABLE_THINKING", "CLAUDE_CODE_DISABLE_THINKING"),
33489
- DISABLE_VIRTUAL_SCROLL: envVar("OPENCOW_DISABLE_VIRTUAL_SCROLL", "CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL"),
33490
- DONT_INHERIT_ENV: envVar("OPENCOW_DONT_INHERIT_ENV", "CLAUDE_CODE_DONT_INHERIT_ENV"),
33491
- DUMP_AUTO_MODE: envVar("OPENCOW_DUMP_AUTO_MODE", "CLAUDE_CODE_DUMP_AUTO_MODE"),
33492
- EAGER_FLUSH: envVar("OPENCOW_EAGER_FLUSH", "CLAUDE_CODE_EAGER_FLUSH"),
33493
- EFFORT_LEVEL: envVar("OPENCOW_EFFORT_LEVEL", "CLAUDE_CODE_EFFORT_LEVEL"),
33494
- EMIT_SESSION_STATE_EVENTS: envVar("OPENCOW_EMIT_SESSION_STATE_EVENTS", "CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS"),
33495
- EMIT_TOOL_USE_SUMMARIES: envVar("OPENCOW_EMIT_TOOL_USE_SUMMARIES", "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES"),
33496
- ENABLE_CFC: envVar("OPENCOW_ENABLE_CFC", "CLAUDE_CODE_ENABLE_CFC"),
33497
- ENABLE_FINE_GRAINED_TOOL_STREAMING: envVar("OPENCOW_ENABLE_FINE_GRAINED_TOOL_STREAMING", "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING"),
33498
- ENABLE_PROMPT_SUGGESTION: envVar("OPENCOW_ENABLE_PROMPT_SUGGESTION", "CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION"),
33499
- ENABLE_SDK_FILE_CHECKPOINTING: envVar("OPENCOW_ENABLE_SDK_FILE_CHECKPOINTING", "CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING"),
33500
- ENABLE_TASKS: envVar("OPENCOW_ENABLE_TASKS", "CLAUDE_CODE_ENABLE_TASKS"),
33501
- ENABLE_TELEMETRY: envVar("OPENCOW_ENABLE_TELEMETRY", "CLAUDE_CODE_ENABLE_TELEMETRY"),
33502
- ENABLE_TOKEN_USAGE_ATTACHMENT: envVar("OPENCOW_ENABLE_TOKEN_USAGE_ATTACHMENT", "CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT"),
33503
- ENABLE_XAA: envVar("OPENCOW_ENABLE_XAA", "CLAUDE_CODE_ENABLE_XAA"),
33504
- ENHANCED_TELEMETRY_BETA: envVar("OPENCOW_ENHANCED_TELEMETRY_BETA", "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA"),
33505
- ENTRYPOINT: envVar("OPENCOW_ENTRYPOINT", "CLAUDE_CODE_ENTRYPOINT"),
33506
- ENVIRONMENT_KIND: envVar("OPENCOW_ENVIRONMENT_KIND", "CLAUDE_CODE_ENVIRONMENT_KIND"),
33507
- ENVIRONMENT_RUNNER_VERSION: envVar("OPENCOW_ENVIRONMENT_RUNNER_VERSION", "CLAUDE_CODE_ENVIRONMENT_RUNNER_VERSION"),
33508
- EXIT_AFTER_FIRST_RENDER: envVar("OPENCOW_EXIT_AFTER_FIRST_RENDER", "CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER"),
33509
- EXIT_AFTER_STOP_DELAY: envVar("OPENCOW_EXIT_AFTER_STOP_DELAY", "CLAUDE_CODE_EXIT_AFTER_STOP_DELAY"),
33510
- EXPERIMENTAL_AGENT_TEAMS: envVar("OPENCOW_EXPERIMENTAL_AGENT_TEAMS", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"),
33511
- EXTRA_BODY: envVar("OPENCOW_EXTRA_BODY", "CLAUDE_CODE_EXTRA_BODY"),
33512
- EXTRA_METADATA: envVar("OPENCOW_EXTRA_METADATA", "CLAUDE_CODE_EXTRA_METADATA"),
33513
- FILE_READ_MAX_OUTPUT_TOKENS: envVar("OPENCOW_FILE_READ_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS"),
33514
- FORCE_FULL_LOGO: envVar("OPENCOW_FORCE_FULL_LOGO", "CLAUDE_CODE_FORCE_FULL_LOGO"),
33515
- FRAME_TIMING_LOG: envVar("OPENCOW_FRAME_TIMING_LOG", "CLAUDE_CODE_FRAME_TIMING_LOG"),
33516
- GB_BASE_URL: envVar("OPENCOW_GB_BASE_URL", "CLAUDE_CODE_GB_BASE_URL"),
33517
- GIT_BASH_PATH: envVar("OPENCOW_GIT_BASH_PATH", "CLAUDE_CODE_GIT_BASH_PATH"),
33518
- GLOB_HIDDEN: envVar("OPENCOW_GLOB_HIDDEN", "CLAUDE_CODE_GLOB_HIDDEN"),
33519
- GLOB_NO_IGNORE: envVar("OPENCOW_GLOB_NO_IGNORE", "CLAUDE_CODE_GLOB_NO_IGNORE"),
33520
- GLOB_TIMEOUT_SECONDS: envVar("OPENCOW_GLOB_TIMEOUT_SECONDS", "CLAUDE_CODE_GLOB_TIMEOUT_SECONDS"),
33521
- HOST_PLATFORM: envVar("OPENCOW_HOST_PLATFORM", "CLAUDE_CODE_HOST_PLATFORM"),
33522
- IDE_HOST_OVERRIDE: envVar("OPENCOW_IDE_HOST_OVERRIDE", "CLAUDE_CODE_IDE_HOST_OVERRIDE"),
33523
- IDE_SKIP_AUTO_INSTALL: envVar("OPENCOW_IDE_SKIP_AUTO_INSTALL", "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL"),
33524
- IDE_SKIP_VALID_CHECK: envVar("OPENCOW_IDE_SKIP_VALID_CHECK", "CLAUDE_CODE_IDE_SKIP_VALID_CHECK"),
33525
- IDLE_THRESHOLD_MINUTES: envVar("OPENCOW_IDLE_THRESHOLD_MINUTES", "CLAUDE_CODE_IDLE_THRESHOLD_MINUTES"),
33526
- IDLE_TOKEN_THRESHOLD: envVar("OPENCOW_IDLE_TOKEN_THRESHOLD", "CLAUDE_CODE_IDLE_TOKEN_THRESHOLD"),
33527
- INCLUDE_PARTIAL_MESSAGES: envVar("OPENCOW_INCLUDE_PARTIAL_MESSAGES", "CLAUDE_CODE_INCLUDE_PARTIAL_MESSAGES"),
33528
- INTERNAL_ARTIFACTORY_BASE_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_BASE_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_BASE_URL"),
33529
- INTERNAL_ARTIFACTORY_REGISTRY_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_REGISTRY_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_REGISTRY_URL"),
33530
- IS_COWORK: envVar("OPENCOW_IS_COWORK", "CLAUDE_CODE_IS_COWORK"),
33531
- JSONL_TRANSCRIPT: envVar("OPENCOW_JSONL_TRANSCRIPT", "CLAUDE_CODE_JSONL_TRANSCRIPT"),
33532
- MANAGED_SETTINGS_PATH: envVar("OPENCOW_MANAGED_SETTINGS_PATH", "CLAUDE_CODE_MANAGED_SETTINGS_PATH"),
33533
- MAX_CONTEXT_TOKENS: envVar("OPENCOW_MAX_CONTEXT_TOKENS", "CLAUDE_CODE_MAX_CONTEXT_TOKENS"),
33534
- MAX_OUTPUT_TOKENS: envVar("OPENCOW_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_MAX_OUTPUT_TOKENS"),
33535
- MAX_RETRIES: envVar("OPENCOW_MAX_RETRIES", "CLAUDE_CODE_MAX_RETRIES"),
33536
- MAX_TOOL_USE_CONCURRENCY: envVar("OPENCOW_MAX_TOOL_USE_CONCURRENCY", "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY"),
33537
- MCP_INSTR_DELTA: envVar("OPENCOW_MCP_INSTR_DELTA", "CLAUDE_CODE_MCP_INSTR_DELTA"),
33538
- MESSAGING_SOCKET: envVar("OPENCOW_MESSAGING_SOCKET", "CLAUDE_CODE_MESSAGING_SOCKET"),
33539
- NEW_INIT: envVar("OPENCOW_NEW_INIT", "CLAUDE_CODE_NEW_INIT"),
33540
- NO_FLICKER: envVar("OPENCOW_NO_FLICKER", "CLAUDE_CODE_NO_FLICKER"),
33541
- OAUTH_CLIENT_ID: envVar("OPENCOW_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_ID"),
33542
- OAUTH_REFRESH_TOKEN: envVar("OPENCOW_OAUTH_REFRESH_TOKEN", "CLAUDE_CODE_OAUTH_REFRESH_TOKEN"),
33543
- OAUTH_SCOPES: envVar("OPENCOW_OAUTH_SCOPES", "CLAUDE_CODE_OAUTH_SCOPES"),
33544
- OAUTH_TOKEN: envVar("OPENCOW_OAUTH_TOKEN", "CLAUDE_CODE_OAUTH_TOKEN"),
33545
- OAUTH_TOKEN_FILE_DESCRIPTOR: envVar("OPENCOW_OAUTH_TOKEN_FILE_DESCRIPTOR", "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR"),
33546
- ORGANIZATION_UUID: envVar("OPENCOW_ORGANIZATION_UUID", "CLAUDE_CODE_ORGANIZATION_UUID"),
33547
- OTEL_FLUSH_TIMEOUT_MS: envVar("OPENCOW_OTEL_FLUSH_TIMEOUT_MS", "CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS"),
33548
- OTEL_HEADERS_HELPER_DEBOUNCE_MS: envVar("OPENCOW_OTEL_HEADERS_HELPER_DEBOUNCE_MS", "CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"),
33549
- OTEL_SHUTDOWN_TIMEOUT_MS: envVar("OPENCOW_OTEL_SHUTDOWN_TIMEOUT_MS", "CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS"),
33550
- OVERRIDE_DATE: envVar("OPENCOW_OVERRIDE_DATE", "CLAUDE_CODE_OVERRIDE_DATE"),
33551
- PERFETTO_TRACE: envVar("OPENCOW_PERFETTO_TRACE", "CLAUDE_CODE_PERFETTO_TRACE"),
33552
- PERFETTO_WRITE_INTERVAL_S: envVar("OPENCOW_PERFETTO_WRITE_INTERVAL_S", "CLAUDE_CODE_PERFETTO_WRITE_INTERVAL_S"),
33553
- PLAN_MODE_INTERVIEW_PHASE: envVar("OPENCOW_PLAN_MODE_INTERVIEW_PHASE", "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE"),
33554
- PLAN_MODE_REQUIRED: envVar("OPENCOW_PLAN_MODE_REQUIRED", "CLAUDE_CODE_PLAN_MODE_REQUIRED"),
33555
- PLAN_V2_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_AGENT_COUNT"),
33556
- PLAN_V2_EXPLORE_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_EXPLORE_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_EXPLORE_AGENT_COUNT"),
33557
- PLUGIN_CACHE_DIR: envVar("OPENCOW_PLUGIN_CACHE_DIR", "CLAUDE_CODE_PLUGIN_CACHE_DIR"),
33558
- PLUGIN_GIT_TIMEOUT_MS: envVar("OPENCOW_PLUGIN_GIT_TIMEOUT_MS", "CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS"),
33559
- PLUGIN_SEED_DIR: envVar("OPENCOW_PLUGIN_SEED_DIR", "CLAUDE_CODE_PLUGIN_SEED_DIR"),
33560
- PLUGIN_USE_ZIP_CACHE: envVar("OPENCOW_PLUGIN_USE_ZIP_CACHE", "CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE"),
33561
- POST_FOR_SESSION_INGRESS_V2: envVar("OPENCOW_POST_FOR_SESSION_INGRESS_V2", "CLAUDE_CODE_POST_FOR_SESSION_INGRESS_V2"),
33562
- PROACTIVE: envVar("OPENCOW_PROACTIVE", "CLAUDE_CODE_PROACTIVE"),
33563
- PROFILE_QUERY: envVar("OPENCOW_PROFILE_QUERY", "CLAUDE_CODE_PROFILE_QUERY"),
33564
- PROFILE_STARTUP: envVar("OPENCOW_PROFILE_STARTUP", "CLAUDE_CODE_PROFILE_STARTUP"),
33565
- PROVIDER_MANAGED_BY_HOST: envVar("OPENCOW_PROVIDER_MANAGED_BY_HOST", "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST"),
33566
- PROVIDER_PROFILE_ENV_APPLIED: envVar("OPENCOW_PROVIDER_PROFILE_ENV_APPLIED", "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED"),
33567
- PROXY_RESOLVES_HOSTS: envVar("OPENCOW_PROXY_RESOLVES_HOSTS", "CLAUDE_CODE_PROXY_RESOLVES_HOSTS"),
33568
- PWSH_PARSE_TIMEOUT_MS: envVar("OPENCOW_PWSH_PARSE_TIMEOUT_MS", "CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS"),
33569
- QUESTION_PREVIEW_FORMAT: envVar("OPENCOW_QUESTION_PREVIEW_FORMAT", "CLAUDE_CODE_QUESTION_PREVIEW_FORMAT"),
33570
- REMOTE: envVar("OPENCOW_REMOTE", "CLAUDE_CODE_REMOTE"),
33571
- REMOTE_ENVIRONMENT_TYPE: envVar("OPENCOW_REMOTE_ENVIRONMENT_TYPE", "CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE"),
33572
- REMOTE_MEMORY_DIR: envVar("OPENCOW_REMOTE_MEMORY_DIR", "CLAUDE_CODE_REMOTE_MEMORY_DIR"),
33573
- REMOTE_SEND_KEEPALIVES: envVar("OPENCOW_REMOTE_SEND_KEEPALIVES", "CLAUDE_CODE_REMOTE_SEND_KEEPALIVES"),
33574
- REMOTE_SESSION_ID: envVar("OPENCOW_REMOTE_SESSION_ID", "CLAUDE_CODE_REMOTE_SESSION_ID"),
33575
- REPL: envVar("OPENCOW_REPL", "CLAUDE_CODE_REPL"),
33576
- RESUME_INTERRUPTED_TURN: envVar("OPENCOW_RESUME_INTERRUPTED_TURN", "CLAUDE_CODE_RESUME_INTERRUPTED_TURN"),
33577
- SAVE_HOOK_ADDITIONAL_CONTEXT: envVar("OPENCOW_SAVE_HOOK_ADDITIONAL_CONTEXT", "CLAUDE_CODE_SAVE_HOOK_ADDITIONAL_CONTEXT"),
33578
- SCROLL_SPEED: envVar("OPENCOW_SCROLL_SPEED", "CLAUDE_CODE_SCROLL_SPEED"),
33579
- SESSIONEND_HOOKS_TIMEOUT_MS: envVar("OPENCOW_SESSIONEND_HOOKS_TIMEOUT_MS", "CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS"),
33580
- SESSION_ACCESS_TOKEN: envVar("OPENCOW_SESSION_ACCESS_TOKEN", "CLAUDE_CODE_SESSION_ACCESS_TOKEN"),
33581
- SESSION_ID: envVar("OPENCOW_SESSION_ID", "CLAUDE_CODE_SESSION_ID"),
33582
- SESSION_KIND: envVar("OPENCOW_SESSION_KIND", "CLAUDE_CODE_SESSION_KIND"),
33583
- SESSION_LOG: envVar("OPENCOW_SESSION_LOG", "CLAUDE_CODE_SESSION_LOG"),
33584
- SESSION_NAME: envVar("OPENCOW_SESSION_NAME", "CLAUDE_CODE_SESSION_NAME"),
33585
- SHELL: envVar("OPENCOW_SHELL", "CLAUDE_CODE_SHELL"),
33586
- SHELL_PREFIX: envVar("OPENCOW_SHELL_PREFIX", "CLAUDE_CODE_SHELL_PREFIX"),
33587
- SIMPLE: envVar("OPENCOW_SIMPLE", "CLAUDE_CODE_SIMPLE"),
33588
- SKIP_BEDROCK_AUTH: envVar("OPENCOW_SKIP_BEDROCK_AUTH", "CLAUDE_CODE_SKIP_BEDROCK_AUTH"),
33589
- SKIP_FAST_MODE_NETWORK_ERRORS: envVar("OPENCOW_SKIP_FAST_MODE_NETWORK_ERRORS", "CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS"),
33590
- SKIP_FOUNDRY_AUTH: envVar("OPENCOW_SKIP_FOUNDRY_AUTH", "CLAUDE_CODE_SKIP_FOUNDRY_AUTH"),
33591
- SKIP_PROMPT_HISTORY: envVar("OPENCOW_SKIP_PROMPT_HISTORY", "CLAUDE_CODE_SKIP_PROMPT_HISTORY"),
33592
- SKIP_VERTEX_AUTH: envVar("OPENCOW_SKIP_VERTEX_AUTH", "CLAUDE_CODE_SKIP_VERTEX_AUTH"),
33593
- SLOW_OPERATION_THRESHOLD_MS: envVar("OPENCOW_SLOW_OPERATION_THRESHOLD_MS", "CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS"),
33594
- SSE_PORT: envVar("OPENCOW_SSE_PORT", "CLAUDE_CODE_SSE_PORT"),
33595
- STALL_TIMEOUT_MS_FOR_TESTING: envVar("OPENCOW_STALL_TIMEOUT_MS_FOR_TESTING", "CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING"),
33596
- STREAMLINED_OUTPUT: envVar("OPENCOW_STREAMLINED_OUTPUT", "CLAUDE_CODE_STREAMLINED_OUTPUT"),
33597
- SUBAGENT_MODEL: envVar("OPENCOW_SUBAGENT_MODEL", "CLAUDE_CODE_SUBAGENT_MODEL"),
33598
- SUBPROCESS_ENV_SCRUB: envVar("OPENCOW_SUBPROCESS_ENV_SCRUB", "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB"),
33599
- SYNC_PLUGIN_INSTALL: envVar("OPENCOW_SYNC_PLUGIN_INSTALL", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL"),
33600
- SYNC_PLUGIN_INSTALL_TIMEOUT_MS: envVar("OPENCOW_SYNC_PLUGIN_INSTALL_TIMEOUT_MS", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS"),
33601
- SYNTAX_HIGHLIGHT: envVar("OPENCOW_SYNTAX_HIGHLIGHT", "CLAUDE_CODE_SYNTAX_HIGHLIGHT"),
33602
- TAGS: envVar("OPENCOW_TAGS", "CLAUDE_CODE_TAGS"),
33603
- TASK_LIST_ID: envVar("OPENCOW_TASK_LIST_ID", "CLAUDE_CODE_TASK_LIST_ID"),
33604
- TEST_FIXTURES_ROOT: envVar("OPENCOW_TEST_FIXTURES_ROOT", "CLAUDE_CODE_TEST_FIXTURES_ROOT"),
33605
- TMPDIR: envVar("OPENCOW_TMPDIR", "CLAUDE_CODE_TMPDIR"),
33606
- TMUX_PREFIX: envVar("OPENCOW_TMUX_PREFIX", "CLAUDE_CODE_TMUX_PREFIX"),
33607
- TMUX_PREFIX_CONFLICTS: envVar("OPENCOW_TMUX_PREFIX_CONFLICTS", "CLAUDE_CODE_TMUX_PREFIX_CONFLICTS"),
33608
- TMUX_SESSION: envVar("OPENCOW_TMUX_SESSION", "CLAUDE_CODE_TMUX_SESSION"),
33609
- TMUX_TRUECOLOR: envVar("OPENCOW_TMUX_TRUECOLOR", "CLAUDE_CODE_TMUX_TRUECOLOR"),
33610
- TWO_STAGE_CLASSIFIER: envVar("OPENCOW_TWO_STAGE_CLASSIFIER", "CLAUDE_CODE_TWO_STAGE_CLASSIFIER"),
33611
- UNATTENDED_RETRY: envVar("OPENCOW_UNATTENDED_RETRY", "CLAUDE_CODE_UNATTENDED_RETRY"),
33612
- USER_EMAIL: envVar("OPENCOW_USER_EMAIL", "CLAUDE_CODE_USER_EMAIL"),
33613
- USE_BEDROCK: envVar("OPENCOW_USE_BEDROCK", "CLAUDE_CODE_USE_BEDROCK"),
33614
- USE_CCR_V2: envVar("OPENCOW_USE_CCR_V2", "CLAUDE_CODE_USE_CCR_V2"),
33615
- USE_COWORK_PLUGINS: envVar("OPENCOW_USE_COWORK_PLUGINS", "CLAUDE_CODE_USE_COWORK_PLUGINS"),
33616
- USE_FOUNDRY: envVar("OPENCOW_USE_FOUNDRY", "CLAUDE_CODE_USE_FOUNDRY"),
33617
- USE_GEMINI: envVar("OPENCOW_USE_GEMINI", "CLAUDE_CODE_USE_GEMINI"),
33618
- USE_GITHUB: envVar("OPENCOW_USE_GITHUB", "CLAUDE_CODE_USE_GITHUB"),
33619
- USE_NATIVE_FILE_SEARCH: envVar("OPENCOW_USE_NATIVE_FILE_SEARCH", "CLAUDE_CODE_USE_NATIVE_FILE_SEARCH"),
33620
- USE_OPENAI: envVar("OPENCOW_USE_OPENAI", "CLAUDE_CODE_USE_OPENAI"),
33621
- USE_POWERSHELL_TOOL: envVar("OPENCOW_USE_POWERSHELL_TOOL", "CLAUDE_CODE_USE_POWERSHELL_TOOL"),
33622
- USE_VERTEX: envVar("OPENCOW_USE_VERTEX", "CLAUDE_CODE_USE_VERTEX"),
33623
- VERIFY_PLAN: envVar("OPENCOW_VERIFY_PLAN", "CLAUDE_CODE_VERIFY_PLAN"),
33624
- WEBSOCKET_AUTH_FILE_DESCRIPTOR: envVar("OPENCOW_WEBSOCKET_AUTH_FILE_DESCRIPTOR", "CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR"),
33625
- WORKER_EPOCH: envVar("OPENCOW_WORKER_EPOCH", "CLAUDE_CODE_WORKER_EPOCH"),
33626
- WORKSPACE_HOST_PATHS: envVar("OPENCOW_WORKSPACE_HOST_PATHS", "CLAUDE_CODE_WORKSPACE_HOST_PATHS"),
33627
- MEMORY_EXTRA_GUIDELINES: envVar("OPENCOW_MEMORY_EXTRA_GUIDELINES", "CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES"),
33628
- MEMORY_PATH_OVERRIDE: envVar("OPENCOW_MEMORY_PATH_OVERRIDE", "CLAUDE_COWORK_MEMORY_PATH_OVERRIDE"),
33629
- DEBUG_INPUT: envVar("OPENCOW_DEBUG_INPUT"),
33630
- DISABLE_CO_AUTHORED_BY: envVar("OPENCOW_DISABLE_CO_AUTHORED_BY"),
33631
- DISABLE_EARLY_INPUT: envVar("OPENCOW_DISABLE_EARLY_INPUT"),
33632
- ENABLE_EXTENDED_KEYS: envVar("OPENCOW_ENABLE_EXTENDED_KEYS"),
33633
- USE_READABLE_STDIN: envVar("OPENCOW_USE_READABLE_STDIN")
33634
- };
33635
- });
33636
-
33637
33638
  // src/lib/slowOperations.ts
33638
33639
  import {
33639
33640
  closeSync,
@@ -63345,7 +63346,7 @@ function getToolNameForPermissionCheck(tool) {
63345
63346
  var init_mcpStringUtils = () => {};
63346
63347
 
63347
63348
  // src/constants/toolNames.ts
63348
- var AGENT_TOOL_NAME2 = "Agent", ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", BASH_TOOL_NAME = "Bash", ENTER_PLAN_MODE_TOOL_NAME = "EnterPlanMode", ENTER_WORKTREE_TOOL_NAME = "EnterWorktree", EXIT_PLAN_MODE_TOOL_NAME = "ExitPlanMode", EXIT_PLAN_MODE_V2_TOOL_NAME = "ExitPlanMode", EXIT_WORKTREE_TOOL_NAME = "ExitWorktree", FILE_EDIT_TOOL_NAME = "Edit", FILE_READ_TOOL_NAME = "Read", FILE_WRITE_TOOL_NAME = "Write", GLOB_TOOL_NAME = "Glob", GREP_TOOL_NAME = "Grep", NOTEBOOK_EDIT_TOOL_NAME = "NotebookEdit", POWERSHELL_TOOL_NAME = "PowerShell", REPL_TOOL_NAME = "REPL", SEND_MESSAGE_TOOL_NAME = "SendMessage", SKILL_TOOL_NAME = "Skill", SLEEP_TOOL_NAME = "Sleep", SYNTHETIC_OUTPUT_TOOL_NAME = "StructuredOutput", TASK_CREATE_TOOL_NAME = "TaskCreate", TASK_GET_TOOL_NAME = "TaskGet", TASK_LIST_TOOL_NAME = "TaskList", TASK_OUTPUT_TOOL_NAME = "TaskOutput", TASK_STOP_TOOL_NAME = "TaskStop", TASK_UPDATE_TOOL_NAME = "TaskUpdate", TEAM_CREATE_TOOL_NAME = "TeamCreate", TEAM_DELETE_TOOL_NAME = "TeamDelete", TODO_WRITE_TOOL_NAME = "TodoWrite", TOOL_SEARCH_TOOL_NAME = "ToolSearch", EXPLORE_AGENT_TYPE = "Explore", PLAN_AGENT_TYPE = "Plan", WEB_FETCH_TOOL_NAME = "WebFetch", WEB_SEARCH_TOOL_NAME = "WebSearch";
63349
+ var AGENT_TOOL_NAME = "Agent", ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", BASH_TOOL_NAME = "Bash", ENTER_PLAN_MODE_TOOL_NAME = "EnterPlanMode", ENTER_WORKTREE_TOOL_NAME = "EnterWorktree", EXIT_PLAN_MODE_TOOL_NAME = "ExitPlanMode", EXIT_PLAN_MODE_V2_TOOL_NAME = "ExitPlanMode", EXIT_WORKTREE_TOOL_NAME = "ExitWorktree", FILE_EDIT_TOOL_NAME = "Edit", FILE_READ_TOOL_NAME = "Read", FILE_WRITE_TOOL_NAME = "Write", GLOB_TOOL_NAME = "Glob", GREP_TOOL_NAME = "Grep", NOTEBOOK_EDIT_TOOL_NAME = "NotebookEdit", POWERSHELL_TOOL_NAME = "PowerShell", REPL_TOOL_NAME = "REPL", SEND_MESSAGE_TOOL_NAME = "SendMessage", SKILL_TOOL_NAME = "Skill", SLEEP_TOOL_NAME = "Sleep", SYNTHETIC_OUTPUT_TOOL_NAME = "StructuredOutput", TASK_CREATE_TOOL_NAME = "TaskCreate", TASK_GET_TOOL_NAME = "TaskGet", TASK_LIST_TOOL_NAME = "TaskList", TASK_OUTPUT_TOOL_NAME = "TaskOutput", TASK_STOP_TOOL_NAME = "TaskStop", TASK_UPDATE_TOOL_NAME = "TaskUpdate", TEAM_CREATE_TOOL_NAME = "TeamCreate", TEAM_DELETE_TOOL_NAME = "TeamDelete", TODO_WRITE_TOOL_NAME = "TodoWrite", TOOL_SEARCH_TOOL_NAME = "ToolSearch", EXPLORE_AGENT_TYPE = "Explore", PLAN_AGENT_TYPE = "Plan", WEB_FETCH_TOOL_NAME = "WebFetch", WEB_SEARCH_TOOL_NAME = "WebSearch";
63349
63350
 
63350
63351
  // src/permissions/permissionRuleParser.ts
63351
63352
  function normalizeLegacyToolName(name) {
@@ -63430,7 +63431,7 @@ function findLastUnescapedChar(str, char) {
63430
63431
  var LEGACY_TOOL_NAME_ALIASES;
63431
63432
  var init_permissionRuleParser = __esm(() => {
63432
63433
  LEGACY_TOOL_NAME_ALIASES = {
63433
- Task: AGENT_TOOL_NAME2,
63434
+ Task: AGENT_TOOL_NAME,
63434
63435
  KillShell: TASK_STOP_TOOL_NAME,
63435
63436
  AgentOutputTool: TASK_OUTPUT_TOOL_NAME,
63436
63437
  BashOutputTool: TASK_OUTPUT_TOOL_NAME,
@@ -69099,6 +69100,31 @@ var init_modelAllowlist = __esm(() => {
69099
69100
  init_modelStrings();
69100
69101
  });
69101
69102
 
69103
+ // src/providers/shared/model/antModels.ts
69104
+ function getAntModelOverrideConfig() {
69105
+ if (process.env.USER_TYPE !== "ant") {
69106
+ return null;
69107
+ }
69108
+ return getFeatureValue_CACHED_MAY_BE_STALE("tengu_ant_model_override", null);
69109
+ }
69110
+ function getAntModels() {
69111
+ if (process.env.USER_TYPE !== "ant") {
69112
+ return [];
69113
+ }
69114
+ return getAntModelOverrideConfig()?.antModels ?? [];
69115
+ }
69116
+ function resolveAntModel(model) {
69117
+ if (process.env.USER_TYPE !== "ant") {
69118
+ return;
69119
+ }
69120
+ if (model === undefined) {
69121
+ return;
69122
+ }
69123
+ const lower = model.toLowerCase();
69124
+ return getAntModels().find((m) => m.alias === model || lower.includes(m.model.toLowerCase()));
69125
+ }
69126
+ var init_antModels = () => {};
69127
+
69102
69128
  // src/providers/shared/model/model.ts
69103
69129
  function getSmallFastModel() {
69104
69130
  const smallFast = getQueryEnvVar("ANTHROPIC_SMALL_FAST_MODEL");
@@ -69506,6 +69532,7 @@ var init_model = __esm(() => {
69506
69532
  init_provider();
69507
69533
  init_figures2();
69508
69534
  init_modelAllowlist();
69535
+ init_antModels();
69509
69536
  init_aliases();
69510
69537
  init_stringUtils();
69511
69538
  LEGACY_OPUS_FIRSTPARTY = [
@@ -69757,6 +69784,7 @@ var init_modelContext = __esm(() => {
69757
69784
  init_envUtils();
69758
69785
  init_state2();
69759
69786
  init_model();
69787
+ init_antModels();
69760
69788
  init_openaiContextWindows();
69761
69789
  });
69762
69790
 
@@ -71540,7 +71568,7 @@ function getAPIProviderForStatsig() {
71540
71568
  return getAPIProvider();
71541
71569
  }
71542
71570
  function isFirstPartyAnthropicBaseUrl() {
71543
- const baseUrl = process.env.ANTHROPIC_BASE_URL;
71571
+ const baseUrl = getQueryEnvVar("ANTHROPIC_BASE_URL");
71544
71572
  if (!baseUrl) {
71545
71573
  return true;
71546
71574
  }
@@ -95564,12 +95592,17 @@ async function performCodexRequest(options) {
95564
95592
  body.tool_choice ??= "auto";
95565
95593
  }
95566
95594
  }
95567
- const mergedReasoning = {
95568
- ...options.request.reasoning ?? {},
95569
- ...options.providerSpecific?.reasoning ?? {}
95570
- };
95571
- if (Object.keys(mergedReasoning).length > 0) {
95572
- body.reasoning = mergedReasoning;
95595
+ const thinkingDisabled = options.params.thinking?.type === "disabled";
95596
+ if (thinkingDisabled) {
95597
+ body.reasoning = { effort: "minimal" };
95598
+ } else {
95599
+ const mergedReasoning = {
95600
+ ...options.request.reasoning ?? {},
95601
+ ...options.providerSpecific?.reasoning ?? {}
95602
+ };
95603
+ if (Object.keys(mergedReasoning).length > 0) {
95604
+ body.reasoning = mergedReasoning;
95605
+ }
95573
95606
  }
95574
95607
  const isTargetModel = options.request.resolvedModel?.toLowerCase().includes("gpt") || options.request.resolvedModel?.toLowerCase().includes("codex");
95575
95608
  if (!isTargetModel) {
@@ -95643,12 +95676,17 @@ function determineStopReason(response, sawToolUse) {
95643
95676
  }
95644
95677
  return "end_turn";
95645
95678
  }
95679
+ function codexFailureStatus(errorMessage2) {
95680
+ const m = errorMessage2.toLowerCase();
95681
+ const isContextOverflow = m.includes("prompt is too long") || m.includes("context_length_exceeded") || m.includes("maximum context length");
95682
+ return isContextOverflow ? 400 : 500;
95683
+ }
95646
95684
  async function collectCodexCompletedResponse(response) {
95647
95685
  let completedResponse;
95648
95686
  for await (const event of readSseEvents(response)) {
95649
95687
  if (event.event === "response.failed") {
95650
95688
  const msg = event.data?.response?.error?.message ?? event.data?.error?.message ?? "Codex response failed";
95651
- throw APIError.generate(500, undefined, msg, new Headers);
95689
+ throw APIError.generate(codexFailureStatus(msg), undefined, msg, new Headers);
95652
95690
  }
95653
95691
  if (event.event === "response.completed" || event.event === "response.incomplete") {
95654
95692
  completedResponse = event.data?.response;
@@ -95838,7 +95876,7 @@ async function* codexStreamToAnthropic(response, model) {
95838
95876
  }
95839
95877
  if (event.event === "response.failed") {
95840
95878
  const msg = payload?.response?.error?.message ?? payload?.error?.message ?? "Codex response failed";
95841
- throw APIError.generate(500, undefined, msg, new Headers);
95879
+ throw APIError.generate(codexFailureStatus(msg), undefined, msg, new Headers);
95842
95880
  }
95843
95881
  }
95844
95882
  yield* closeActiveTextBlock();
@@ -96012,6 +96050,7 @@ var init_providerProfile = __esm(() => {
96012
96050
  var exports_shim = {};
96013
96051
  __export(exports_shim, {
96014
96052
  toOpenAIChatReasoningEffort: () => toOpenAIChatReasoningEffort,
96053
+ openaiUsageToAnthropicUsage: () => openaiUsageToAnthropicUsage,
96015
96054
  openaiStreamToAnthropic: () => openaiStreamToAnthropic,
96016
96055
  makeMessageId: () => makeMessageId2,
96017
96056
  createOpenAIShimClient: () => createOpenAIShimClient,
@@ -96087,6 +96126,10 @@ function splitToolResultMedia2(content) {
96087
96126
  }
96088
96127
  continue;
96089
96128
  }
96129
+ if (block?.type === "tool_reference" && typeof block.tool_name === "string") {
96130
+ textChunks.push(`<discovered-tool name="${block.tool_name}" />`);
96131
+ continue;
96132
+ }
96090
96133
  if (typeof block?.text === "string") {
96091
96134
  textChunks.push(block.text);
96092
96135
  }
@@ -96263,16 +96306,21 @@ function convertTools(tools, model = "") {
96263
96306
  function makeMessageId2() {
96264
96307
  return `msg_${crypto.randomUUID().replace(/-/g, "")}`;
96265
96308
  }
96266
- function convertChunkUsage(usage) {
96267
- if (!usage)
96268
- return;
96309
+ function openaiUsageToAnthropicUsage(usage) {
96310
+ const promptTokens = usage?.prompt_tokens ?? 0;
96311
+ const cachedTokens = usage?.prompt_tokens_details?.cached_tokens ?? 0;
96269
96312
  return {
96270
- input_tokens: usage.prompt_tokens ?? 0,
96271
- output_tokens: usage.completion_tokens ?? 0,
96313
+ input_tokens: Math.max(0, promptTokens - cachedTokens),
96314
+ output_tokens: usage?.completion_tokens ?? 0,
96272
96315
  cache_creation_input_tokens: 0,
96273
- cache_read_input_tokens: usage.prompt_tokens_details?.cached_tokens ?? 0
96316
+ cache_read_input_tokens: cachedTokens
96274
96317
  };
96275
96318
  }
96319
+ function convertChunkUsage(usage) {
96320
+ if (!usage)
96321
+ return;
96322
+ return openaiUsageToAnthropicUsage(usage);
96323
+ }
96276
96324
  function toOpenAIChatReasoningEffort(effort) {
96277
96325
  return effort === "xhigh" ? "high" : effort;
96278
96326
  }
@@ -96694,7 +96742,8 @@ class OpenAIShimMessages {
96694
96742
  const self2 = this;
96695
96743
  let httpResponse;
96696
96744
  const promise3 = (async () => {
96697
- const request = resolveProviderRequest({ model: self2.providerOverride?.model ?? params.model, baseUrl: self2.providerOverride?.baseURL, reasoningEffortOverride: self2.reasoningEffort });
96745
+ const overrideTransport = self2.providerOverride?.transport === "anthropic" ? undefined : self2.providerOverride?.transport;
96746
+ const request = resolveProviderRequest({ model: self2.providerOverride?.model ?? params.model, baseUrl: self2.providerOverride?.baseURL, reasoningEffortOverride: self2.reasoningEffort, transportOverride: overrideTransport });
96698
96747
  const response = await self2._doRequest(request, params, options);
96699
96748
  httpResponse = response;
96700
96749
  if (params.stream) {
@@ -96719,7 +96768,7 @@ class OpenAIShimMessages {
96719
96768
  }
96720
96769
  async _doRequest(request, params, options) {
96721
96770
  if (request.transport === "openai_responses") {
96722
- const credentials = resolveOpenAIResponsesCredentials();
96771
+ const credentials = this.providerOverride?.apiKey ? { apiKey: this.providerOverride.apiKey, source: "env-openai" } : resolveOpenAIResponsesCredentials();
96723
96772
  if (!credentials.apiKey) {
96724
96773
  const safeModel = redactSecretValueForDisplay(request.requestedModel, process.env) ?? "the requested model";
96725
96774
  const codexAuthHint = credentials.authPath ? `, set CODEX_API_KEY, or place a Codex auth.json at ${credentials.authPath}` : " or set CODEX_API_KEY";
@@ -96738,7 +96787,7 @@ class OpenAIShimMessages {
96738
96787
  ...options?.headers ?? {}
96739
96788
  },
96740
96789
  signal: options?.signal,
96741
- providerSpecific: readOpenAIResponsesProviderSpecific()
96790
+ providerSpecific: this.providerOverride?.providerSpecific?.openaiResponses ?? readOpenAIResponsesProviderSpecific()
96742
96791
  });
96743
96792
  }
96744
96793
  return this._doOpenAIRequest(request, params, options);
@@ -96918,12 +96967,7 @@ function convertOpenAIResponseToAnthropic(data, model) {
96918
96967
  model: data.model ?? model,
96919
96968
  stop_reason: stopReason,
96920
96969
  stop_sequence: null,
96921
- usage: {
96922
- input_tokens: data.usage?.prompt_tokens ?? 0,
96923
- output_tokens: data.usage?.completion_tokens ?? 0,
96924
- cache_creation_input_tokens: 0,
96925
- cache_read_input_tokens: data.usage?.prompt_tokens_details?.cached_tokens ?? 0
96926
- }
96970
+ usage: openaiUsageToAnthropicUsage(data.usage)
96927
96971
  };
96928
96972
  }
96929
96973
 
@@ -97045,7 +97089,6 @@ async function getNormalizedClient({
97045
97089
  }
97046
97090
  };
97047
97091
  if (providerOverride) {
97048
- const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_shim2(), exports_shim));
97049
97092
  const safeHeaders = {};
97050
97093
  for (const [k, v] of Object.entries(defaultHeaders)) {
97051
97094
  const lower = k.toLowerCase();
@@ -97053,6 +97096,18 @@ async function getNormalizedClient({
97053
97096
  continue;
97054
97097
  safeHeaders[k] = v;
97055
97098
  }
97099
+ if (providerOverride.transport === "anthropic") {
97100
+ const overrideToken = providerOverride.apiKey ?? getQueryEnvVar("ANTHROPIC_AUTH_TOKEN");
97101
+ return new Anthropic({
97102
+ apiKey: null,
97103
+ ...overrideToken ? { authToken: overrideToken } : {},
97104
+ ...providerOverride.baseURL ? { baseURL: providerOverride.baseURL } : {},
97105
+ ...ARGS,
97106
+ defaultHeaders: safeHeaders,
97107
+ ...isDebugToStdErr() && { logger: createStderrLogger() }
97108
+ });
97109
+ }
97110
+ const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_shim2(), exports_shim));
97056
97111
  return createOpenAIShimClient2({
97057
97112
  defaultHeaders: safeHeaders,
97058
97113
  maxRetries,
@@ -97530,6 +97585,13 @@ function resolveProviderFromEnv(envOverride) {
97530
97585
  const model = readEnv2(envOverride, "OPENAI_MODEL")?.trim() ?? "";
97531
97586
  return model && isCodexAlias(model) ? providers.codex() : providers.openai();
97532
97587
  }
97588
+ const transport = readEnv2(envOverride, QUERY_ENV_KEY_TRANSPORT_OVERRIDE)?.trim();
97589
+ if (transport === "openai_responses" || transport === "codex_responses") {
97590
+ return providers.codex();
97591
+ }
97592
+ if (transport === "chat_completions") {
97593
+ return providers.openai();
97594
+ }
97533
97595
  if (envOverride) {
97534
97596
  const hasOAuthToken = Boolean(readEnv2(envOverride, "CLAUDE_CODE_OAUTH_TOKEN"));
97535
97597
  return providers.anthropic({
@@ -97925,7 +97987,7 @@ function cloneHookRegistry(registry2) {
97925
97987
  var queryContextStorage;
97926
97988
  var init_als = __esm(() => {
97927
97989
  init_errors4();
97928
- init_state2();
97990
+ init_envVars();
97929
97991
  queryContextStorage = new AsyncLocalStorage2;
97930
97992
  });
97931
97993
 
@@ -106666,7 +106728,14 @@ function buildToolRuntime(def) {
106666
106728
  ...def
106667
106729
  };
106668
106730
  }
106669
- var TOOL_RUNTIME_DEFAULTS;
106731
+ var getEmptyToolPermissionContext = () => ({
106732
+ mode: "default",
106733
+ additionalWorkingDirectories: new Map,
106734
+ alwaysAllowRules: {},
106735
+ alwaysDenyRules: {},
106736
+ alwaysAskRules: {},
106737
+ isBypassPermissionsModeAvailable: false
106738
+ }), TOOL_RUNTIME_DEFAULTS;
106670
106739
  var init_toolRuntime = __esm(() => {
106671
106740
  TOOL_RUNTIME_DEFAULTS = {
106672
106741
  isEnabled: () => true,
@@ -106686,7 +106755,7 @@ function toolMatchesName2(tool, name) {
106686
106755
  function findToolByName(tools, name) {
106687
106756
  return tools.find((t) => toolMatchesName2(t, name));
106688
106757
  }
106689
- var getEmptyToolPermissionContext = () => ({
106758
+ var getEmptyToolPermissionContext2 = () => ({
106690
106759
  mode: "default",
106691
106760
  additionalWorkingDirectories: new Map,
106692
106761
  alwaysAllowRules: {},
@@ -107602,7 +107671,7 @@ var init_paths2 = __esm(() => {
107602
107671
  });
107603
107672
 
107604
107673
  // src/capabilities/tools/AgentTool/constants.ts
107605
- var AGENT_TOOL_NAME3 = "Agent", LEGACY_AGENT_TOOL_NAME = "Task", VERIFICATION_AGENT_TYPE2 = "verification", ONE_SHOT_BUILTIN_AGENT_TYPES;
107674
+ var AGENT_TOOL_NAME2 = "Agent", LEGACY_AGENT_TOOL_NAME = "Task", VERIFICATION_AGENT_TYPE = "verification", ONE_SHOT_BUILTIN_AGENT_TYPES;
107606
107675
  var init_constants4 = __esm(() => {
107607
107676
  ONE_SHOT_BUILTIN_AGENT_TYPES = new Set([
107608
107677
  "Explore",
@@ -107714,7 +107783,7 @@ function getDescription() {
107714
107783
  - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
107715
107784
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
107716
107785
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
107717
- - Use ${AGENT_TOOL_NAME3} tool for open-ended searches requiring multiple rounds
107786
+ - Use ${AGENT_TOOL_NAME2} tool for open-ended searches requiring multiple rounds
107718
107787
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
107719
107788
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\`
107720
107789
  `;
@@ -107751,7 +107820,7 @@ var init_constants5 = __esm(() => {
107751
107820
  GREP_TOOL_NAME2,
107752
107821
  BASH_TOOL_NAME2,
107753
107822
  NOTEBOOK_EDIT_TOOL_NAME2,
107754
- AGENT_TOOL_NAME3
107823
+ AGENT_TOOL_NAME2
107755
107824
  ]);
107756
107825
  });
107757
107826
 
@@ -130512,13 +130581,23 @@ var init_ToolSearchTool = __esm(() => {
130512
130581
  content: text
130513
130582
  };
130514
130583
  }
130584
+ if (isNativeToolReferenceWire()) {
130585
+ return {
130586
+ type: "tool_result",
130587
+ tool_use_id: toolUseID,
130588
+ content: content.matches.map((name) => ({
130589
+ type: "tool_reference",
130590
+ tool_name: name
130591
+ }))
130592
+ };
130593
+ }
130594
+ const markerLines = content.matches.map((name) => `<discovered-tool name="${name}" />`).join(`
130595
+ `);
130515
130596
  return {
130516
130597
  type: "tool_result",
130517
130598
  tool_use_id: toolUseID,
130518
- content: content.matches.map((name) => ({
130519
- type: "tool_reference",
130520
- tool_name: name
130521
- }))
130599
+ content: `Found ${content.matches.length} tool(s) their full schemas will ` + `be included in your tools list from the next request:
130600
+ ` + markerLines
130522
130601
  };
130523
130602
  }
130524
130603
  });
@@ -131443,6 +131522,7 @@ function shouldEnableThinkingByDefault() {
131443
131522
  var init_thinking = __esm(() => {
131444
131523
  init_model();
131445
131524
  init_modelSupportOverrides();
131525
+ init_antModels();
131446
131526
  init_state2();
131447
131527
  init_settings2();
131448
131528
  });
@@ -131582,6 +131662,7 @@ var init_effort = __esm(() => {
131582
131662
  init_auth();
131583
131663
  init_state2();
131584
131664
  init_modelSupportOverrides();
131665
+ init_antModels();
131585
131666
  init_envUtils();
131586
131667
  EFFORT_LEVELS = [
131587
131668
  "low",
@@ -223847,7 +223928,7 @@ var init_tools = __esm(() => {
223847
223928
  TASK_OUTPUT_TOOL_NAME,
223848
223929
  EXIT_PLAN_MODE_V2_TOOL_NAME,
223849
223930
  ENTER_PLAN_MODE_TOOL_NAME,
223850
- ...process.env.USER_TYPE === "ant" ? [] : [AGENT_TOOL_NAME2],
223931
+ ...process.env.USER_TYPE === "ant" ? [] : [AGENT_TOOL_NAME],
223851
223932
  ASK_USER_QUESTION_TOOL_NAME,
223852
223933
  TASK_STOP_TOOL_NAME,
223853
223934
  ...[]
@@ -223881,7 +223962,7 @@ var init_tools = __esm(() => {
223881
223962
  ...[]
223882
223963
  ]);
223883
223964
  COORDINATOR_MODE_ALLOWED_TOOLS = new Set([
223884
- AGENT_TOOL_NAME2,
223965
+ AGENT_TOOL_NAME,
223885
223966
  TASK_STOP_TOOL_NAME,
223886
223967
  SEND_MESSAGE_TOOL_NAME,
223887
223968
  SYNTHETIC_OUTPUT_TOOL_NAME
@@ -231003,6 +231084,9 @@ function getPluginErrorMessage(error41) {
231003
231084
  }
231004
231085
 
231005
231086
  // src/capabilities/mcp/knownServers.ts
231087
+ function isClaudeInChromeMCPServer(name) {
231088
+ return normalizeNameForMCP(name) === CLAUDE_IN_CHROME_MCP_SERVER_NAME;
231089
+ }
231006
231090
  var CLAUDE_IN_CHROME_MCP_SERVER_NAME = "claude-in-chrome", CHROME_TOOL_SEARCH_INSTRUCTIONS = `**IMPORTANT: Before using any chrome browser tools, you MUST first load them using ToolSearch.**
231007
231091
 
231008
231092
  Chrome browser tools are MCP tools that require loading before use. Before calling any mcp__claude-in-chrome__* tool:
@@ -231969,7 +232053,7 @@ var init_exploreAgent = __esm(() => {
231969
232053
  agentType: "Explore",
231970
232054
  whenToUse: EXPLORE_WHEN_TO_USE,
231971
232055
  disallowedTools: [
231972
- AGENT_TOOL_NAME2,
232056
+ AGENT_TOOL_NAME,
231973
232057
  EXIT_PLAN_MODE_TOOL_NAME,
231974
232058
  FILE_EDIT_TOOL_NAME,
231975
232059
  FILE_WRITE_TOOL_NAME,
@@ -232075,7 +232159,7 @@ var init_planAgent = __esm(() => {
232075
232159
  agentType: "Plan",
232076
232160
  whenToUse: "Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs.",
232077
232161
  disallowedTools: [
232078
- AGENT_TOOL_NAME3,
232162
+ AGENT_TOOL_NAME2,
232079
232163
  EXIT_PLAN_MODE_TOOL_NAME,
232080
232164
  FILE_EDIT_TOOL_NAME,
232081
232165
  FILE_WRITE_TOOL_NAME,
@@ -232363,7 +232447,23 @@ Use the literal string \`VERDICT: \` followed by exactly one of \`PASS\`, \`FAIL
232363
232447
  - **PARTIAL**: what was verified, what could not be and why (missing tool/env), what the implementer should know.`;
232364
232448
  });
232365
232449
 
232450
+ // src/capabilities/tools/AgentTool/agentMerge.ts
232451
+ function mergeAgentsByType(base2, override) {
232452
+ const byType = new Map;
232453
+ for (const agent of base2)
232454
+ byType.set(agent.agentType, agent);
232455
+ for (const agent of override)
232456
+ byType.set(agent.agentType, agent);
232457
+ return [...byType.values()];
232458
+ }
232459
+
232366
232460
  // src/capabilities/tools/AgentTool/builtInAgents.ts
232461
+ var exports_builtInAgents = {};
232462
+ __export(exports_builtInAgents, {
232463
+ resolveSdkAgents: () => resolveSdkAgents,
232464
+ getBuiltInAgents: () => getBuiltInAgents,
232465
+ areExplorePlanAgentsEnabled: () => areExplorePlanAgentsEnabled
232466
+ });
232367
232467
  function areExplorePlanAgentsEnabled() {
232368
232468
  if (false) {}
232369
232469
  return false;
@@ -232387,6 +232487,9 @@ function getBuiltInAgents() {
232387
232487
  if (false) {}
232388
232488
  return agents;
232389
232489
  }
232490
+ function resolveSdkAgents(hostAgents) {
232491
+ return mergeAgentsByType(getBuiltInAgents(), hostAgents);
232492
+ }
232390
232493
  var init_builtInAgents = __esm(() => {
232391
232494
  init_state();
232392
232495
  init_envUtils();
@@ -233313,7 +233416,7 @@ function getDefaultAppState() {
233313
233416
  replBridgeInitialName: undefined,
233314
233417
  showRemoteCallout: false,
233315
233418
  toolPermissionContext: {
233316
- ...getEmptyToolPermissionContext(),
233419
+ ...getEmptyToolPermissionContext2(),
233317
233420
  mode: initialMode
233318
233421
  },
233319
233422
  agent: undefined,
@@ -234457,6 +234560,34 @@ var init_registerFrontmatterHooks = __esm(() => {
234457
234560
  init_sessionHooks();
234458
234561
  });
234459
234562
 
234563
+ // src/session/backgroundAbortRegistry.ts
234564
+ function registerBackgroundAgentAbort(agentId, controller) {
234565
+ runs.set(agentId, { controller, stopFired: false });
234566
+ }
234567
+ function unregisterBackgroundAgentAbort(agentId) {
234568
+ runs.delete(agentId);
234569
+ }
234570
+ function abortBackgroundAgentById(agentId) {
234571
+ const run = runs.get(agentId);
234572
+ if (!run)
234573
+ return false;
234574
+ run.controller.abort();
234575
+ return true;
234576
+ }
234577
+ function markSubagentStopFired(agentId) {
234578
+ const run = runs.get(agentId);
234579
+ if (run) {
234580
+ run.stopFired = true;
234581
+ }
234582
+ }
234583
+ function hasSubagentStopFired(agentId) {
234584
+ return runs.get(agentId)?.stopFired ?? false;
234585
+ }
234586
+ var runs;
234587
+ var init_backgroundAbortRegistry = __esm(() => {
234588
+ runs = new Map;
234589
+ });
234590
+
234460
234591
  // src/providers/shared/model/agent.ts
234461
234592
  function getDefaultSubagentModel() {
234462
234593
  return "inherit";
@@ -234508,6 +234639,12 @@ var init_agent = __esm(() => {
234508
234639
  });
234509
234640
 
234510
234641
  // src/providers/shared/routing.ts
234642
+ function resolveModelProvider(model, modelProviders) {
234643
+ const config2 = modelProviders?.[model];
234644
+ if (!config2)
234645
+ return null;
234646
+ return { model, ...config2 };
234647
+ }
234511
234648
  function normalize10(key) {
234512
234649
  return key.toLowerCase().replace(/[-_]/g, "");
234513
234650
  }
@@ -234810,9 +234947,6 @@ var init_caching = __esm(() => {
234810
234947
  init_microCompact();
234811
234948
  });
234812
234949
 
234813
- // src/providers/shared/model/antModels.ts
234814
- var init_antModels = () => {};
234815
-
234816
234950
  // src/lib/fingerprint.ts
234817
234951
  import { createHash as createHash4 } from "crypto";
234818
234952
  function extractFirstMessageText(messages) {
@@ -235043,7 +235177,7 @@ function filterToolsForAgent({
235043
235177
  }
235044
235178
  if (isAsync2 && !ASYNC_AGENT_ALLOWED_TOOLS.has(tool.name)) {
235045
235179
  if (isAgentSwarmsEnabled() && isInProcessTeammate()) {
235046
- if (toolMatchesName(tool, AGENT_TOOL_NAME3)) {
235180
+ if (toolMatchesName(tool, AGENT_TOOL_NAME2)) {
235047
235181
  return true;
235048
235182
  }
235049
235183
  if (IN_PROCESS_TEAMMATE_ALLOWED_TOOLS.has(tool.name)) {
@@ -235093,7 +235227,7 @@ function resolveAgentTools(agentDefinition, availableTools, isAsync2 = false, is
235093
235227
  let allowedAgentTypes;
235094
235228
  for (const toolSpec of agentTools) {
235095
235229
  const { toolName, ruleContent } = permissionRuleValueFromString(toolSpec);
235096
- if (toolName === AGENT_TOOL_NAME3) {
235230
+ if (toolName === AGENT_TOOL_NAME2) {
235097
235231
  if (ruleContent) {
235098
235232
  allowedAgentTypes = ruleContent.split(",").map((s) => s.trim());
235099
235233
  }
@@ -235312,6 +235446,8 @@ async function runAsyncAgentLifecycle({
235312
235446
  return;
235313
235447
  }
235314
235448
  const msg = errorMessage(error41);
235449
+ logForDebugging(`Background agent ${taskId} failed: ${msg}
235450
+ ${error41 instanceof Error ? error41.stack ?? "" : ""}`, { level: "error" });
235315
235451
  failAgentTask(taskId, msg, rootSetAppState);
235316
235452
  const worktreeResult = await getWorktreeResult();
235317
235453
  enqueueAgentNotification({
@@ -235466,6 +235602,49 @@ async function initializeAgentMcpServers(agentDefinition, parentClients) {
235466
235602
  function isRecordableMessage(msg) {
235467
235603
  return msg.type === "assistant" || msg.type === "user" || msg.type === "progress" || msg.type === "system" && "subtype" in msg && msg.subtype === "compact_boundary";
235468
235604
  }
235605
+ function simplifySubagentMessageBlocks(msg) {
235606
+ const content = msg.message.content;
235607
+ if (!Array.isArray(content))
235608
+ return [];
235609
+ const out = [];
235610
+ for (const raw of content) {
235611
+ if (!raw || typeof raw !== "object")
235612
+ continue;
235613
+ const block2 = raw;
235614
+ switch (block2.type) {
235615
+ case "text":
235616
+ if (typeof block2.text === "string" && block2.text) {
235617
+ out.push({ type: "text", text: block2.text });
235618
+ }
235619
+ break;
235620
+ case "thinking":
235621
+ if (typeof block2.thinking === "string" && block2.thinking) {
235622
+ out.push({ type: "thinking", thinking: block2.thinking });
235623
+ }
235624
+ break;
235625
+ case "tool_use":
235626
+ out.push({
235627
+ type: "tool_use",
235628
+ tool_use_id: block2.id,
235629
+ name: block2.name,
235630
+ input: block2.input ?? {}
235631
+ });
235632
+ break;
235633
+ case "tool_result": {
235634
+ const c6 = block2.content;
235635
+ const text = typeof c6 === "string" ? c6 : Array.isArray(c6) ? c6.map((p) => p && typeof p === "object" && p.type === "text" ? String(p.text ?? "") : "").join("") : "";
235636
+ out.push({
235637
+ type: "tool_result",
235638
+ tool_use_id: block2.tool_use_id,
235639
+ content: text,
235640
+ is_error: Boolean(block2.is_error)
235641
+ });
235642
+ break;
235643
+ }
235644
+ }
235645
+ }
235646
+ return out;
235647
+ }
235469
235648
  async function* runAgent({
235470
235649
  agentDefinition,
235471
235650
  promptMessages,
@@ -235488,13 +235667,14 @@ async function* runAgent({
235488
235667
  description,
235489
235668
  transcriptSubdir,
235490
235669
  onQueryProgress,
235670
+ onPartialAssistant,
235491
235671
  agentName
235492
235672
  }) {
235493
235673
  const appState = toolUseContext.getAppState();
235494
235674
  const permissionMode = appState.toolPermissionContext.mode;
235495
235675
  const rootSetAppState = toolUseContext.setAppStateForTasks ?? toolUseContext.setAppState;
235496
235676
  const resolvedAgentModel = getAgentModel(agentDefinition.model, toolUseContext.options.mainLoopModel, model, permissionMode);
235497
- const providerOverride = resolveAgentProvider(agentName, agentDefinition.agentType, getInitialSettings());
235677
+ const providerOverride = resolveAgentProvider(agentName, agentDefinition.agentType, getInitialSettings()) ?? resolveModelProvider(resolvedAgentModel, toolUseContext.options.modelProviders);
235498
235678
  const effectiveModel = providerOverride ? providerOverride.model : resolvedAgentModel;
235499
235679
  const agentId = override?.agentId ? override.agentId : createAgentId();
235500
235680
  if (transcriptSubdir) {
@@ -235561,12 +235741,15 @@ async function* runAgent({
235561
235741
  effortValue
235562
235742
  };
235563
235743
  };
235564
- const resolvedTools = useExactTools ? availableTools : resolveAgentTools(agentDefinition, availableTools, isAsync2).resolvedTools;
235744
+ const resolvedTools = filterSubagentDisallowedTools(useExactTools ? availableTools : resolveAgentTools(agentDefinition, availableTools, isAsync2).resolvedTools, toolUseContext.options.subagentDisallowedTools);
235565
235745
  const additionalWorkingDirectories = Array.from(appState.toolPermissionContext.additionalWorkingDirectories.keys());
235566
235746
  const agentSystemPrompt = override?.systemPrompt ? override.systemPrompt : asSystemPrompt(await getAgentSystemPrompt(agentDefinition, toolUseContext, resolvedAgentModel, additionalWorkingDirectories, resolvedTools));
235567
235747
  const agentAbortController = override?.abortController ? override.abortController : isAsync2 ? new AbortController : toolUseContext.abortController;
235748
+ if (isAsync2) {
235749
+ registerBackgroundAgentAbort(agentId, agentAbortController);
235750
+ }
235568
235751
  const additionalContexts = [];
235569
- for await (const hookResult of executeSubagentStartHooks(agentId, agentDefinition.agentType, agentAbortController.signal)) {
235752
+ for await (const hookResult of executeSubagentStartHooks(agentId, agentDefinition.agentType, agentAbortController.signal, undefined, toolUseContext.toolUseId, isAsync2)) {
235570
235753
  if (hookResult.additionalContexts && hookResult.additionalContexts.length > 0) {
235571
235754
  additionalContexts.push(...hookResult.additionalContexts);
235572
235755
  }
@@ -235631,10 +235814,11 @@ async function* runAgent({
235631
235814
  verbose: toolUseContext.options.verbose,
235632
235815
  mainLoopModel: effectiveModel,
235633
235816
  providerOverride: providerOverride ?? undefined,
235634
- thinkingConfig: useExactTools ? toolUseContext.options.thinkingConfig : { type: "disabled" },
235817
+ thinkingConfig: toolUseContext.options.thinkingConfig,
235635
235818
  mcpClients: mergedMcpClients,
235636
235819
  mcpResources: toolUseContext.options.mcpResources,
235637
235820
  agentDefinitions: toolUseContext.options.agentDefinitions,
235821
+ subagentDisallowedTools: toolUseContext.options.subagentDisallowedTools,
235638
235822
  ...useExactTools && { querySource }
235639
235823
  };
235640
235824
  const agentToolRuntimeContext = createSubagentContext(toolUseContext, {
@@ -235669,6 +235853,12 @@ async function* runAgent({
235669
235853
  ...description && { description }
235670
235854
  }).catch((_err) => logForDebugging(`Failed to write agent metadata: ${_err}`));
235671
235855
  let lastRecordedUuid = initialMessages.at(-1)?.uuid ?? null;
235856
+ let partialBaseMessage = null;
235857
+ const partialTextByIndex = new Map;
235858
+ const PARTIAL_PROGRESS_HOOK_INTERVAL_MS = 100;
235859
+ let lastPartialProgressHookAt = 0;
235860
+ let lastAssistantForFallback = null;
235861
+ let agentRunError;
235672
235862
  try {
235673
235863
  for await (const message of query({
235674
235864
  messages: initialMessages,
@@ -235681,8 +235871,37 @@ async function* runAgent({
235681
235871
  maxTurns: maxTurns ?? agentDefinition.maxTurns
235682
235872
  })) {
235683
235873
  onQueryProgress?.();
235684
- if (message.type === "stream_event" && message.event.type === "message_start" && message.ttftMs != null) {
235685
- toolUseContext.pushApiMetricsEntry?.(message.ttftMs);
235874
+ if (message.type === "stream_event") {
235875
+ const ev = message.event;
235876
+ if (ev.type === "message_start") {
235877
+ if (message.ttftMs != null) {
235878
+ toolUseContext.pushApiMetricsEntry?.(message.ttftMs);
235879
+ }
235880
+ if ((onPartialAssistant || isAsync2) && ev.message) {
235881
+ partialBaseMessage = ev.message;
235882
+ partialTextByIndex.clear();
235883
+ }
235884
+ } else if ((onPartialAssistant || isAsync2) && partialBaseMessage && ev.type === "content_block_delta" && ev.delta?.type === "text_delta" && typeof ev.delta.text === "string") {
235885
+ const idx = ev.index ?? 0;
235886
+ const acc = (partialTextByIndex.get(idx) ?? "") + ev.delta.text;
235887
+ partialTextByIndex.set(idx, acc);
235888
+ onPartialAssistant?.({
235889
+ type: "assistant",
235890
+ message: {
235891
+ ...partialBaseMessage,
235892
+ content: [{ type: "text", text: acc, citations: null }]
235893
+ },
235894
+ uuid: randomUUID6(),
235895
+ timestamp: new Date().toISOString()
235896
+ });
235897
+ if (isAsync2) {
235898
+ const now = Date.now();
235899
+ if (now - lastPartialProgressHookAt >= PARTIAL_PROGRESS_HOOK_INTERVAL_MS) {
235900
+ lastPartialProgressHookAt = now;
235901
+ executeSubagentProgressHooks(agentId, agentDefinition.agentType, partialBaseMessage.id, toolUseContext.toolUseId, [{ type: "text", text: acc }]).catch(() => {});
235902
+ }
235903
+ }
235904
+ }
235686
235905
  continue;
235687
235906
  }
235688
235907
  if (message.type === "attachment") {
@@ -235707,6 +235926,16 @@ async function* runAgent({
235707
235926
  if (message.type !== "progress") {
235708
235927
  lastRecordedUuid = message.uuid;
235709
235928
  }
235929
+ if (isAsync2 && message.type === "assistant" && message.message.content.some((b) => b.type === "text" && b.text.trim().length > 0)) {
235930
+ lastAssistantForFallback = message;
235931
+ }
235932
+ if (isAsync2 && (message.type === "assistant" || message.type === "user")) {
235933
+ const blocks = simplifySubagentMessageBlocks(message);
235934
+ if (blocks.length > 0) {
235935
+ const messageId = (message.type === "assistant" ? message.message.id : undefined) ?? message.uuid;
235936
+ executeSubagentProgressHooks(agentId, agentDefinition.agentType, messageId, toolUseContext.toolUseId, blocks).catch(() => {});
235937
+ }
235938
+ }
235710
235939
  yield message;
235711
235940
  }
235712
235941
  }
@@ -235716,7 +235945,30 @@ async function* runAgent({
235716
235945
  if (isBuiltInAgent(agentDefinition) && agentDefinition.callback) {
235717
235946
  agentDefinition.callback();
235718
235947
  }
235948
+ } catch (err2) {
235949
+ agentRunError = err2;
235950
+ throw err2;
235719
235951
  } finally {
235952
+ const naturalStopAlreadyFired = isAsync2 && hasSubagentStopFired(agentId);
235953
+ if (isAsync2) {
235954
+ unregisterBackgroundAgentAbort(agentId);
235955
+ }
235956
+ if (isAsync2 && agentRunError !== undefined) {
235957
+ logForDebugging(`Background agent ${agentId} crashed: ${errorMessage(agentRunError)}
235958
+ ${agentRunError instanceof Error ? agentRunError.stack ?? "" : ""}`, { level: "error" });
235959
+ }
235960
+ if (isAsync2 && !naturalStopAlreadyFired) {
235961
+ try {
235962
+ const fallbackAppState = agentToolRuntimeContext.getAppState();
235963
+ const terminal = agentAbortController.signal.aborted ? { status: "stopped" } : agentRunError !== undefined ? { status: "failed", errorMessage: errorMessage(agentRunError) } : { status: "completed" };
235964
+ const fallbackStop = executeStopHooks(fallbackAppState.toolPermissionContext.mode, undefined, undefined, false, agentId, agentToolRuntimeContext, lastAssistantForFallback ? [lastAssistantForFallback] : undefined, agentDefinition.agentType, undefined, terminal);
235965
+ for await (const evt of fallbackStop) {}
235966
+ } catch (err2) {
235967
+ logForDebugging(`Fallback SubagentStop failed for ${agentId}: ${err2}`, {
235968
+ level: "warn"
235969
+ });
235970
+ }
235971
+ }
235720
235972
  await mcpCleanup();
235721
235973
  if (agentDefinition.hooks) {
235722
235974
  clearSessionHooks(rootSetAppState, agentId);
@@ -235803,6 +236055,7 @@ var init_runAgent = __esm(() => {
235803
236055
  init_cacheBreak();
235804
236056
  init_client5();
235805
236057
  init_config5();
236058
+ init_permissions2();
235806
236059
  init_killShellTasks();
235807
236060
  init_attachments();
235808
236061
  init_errors5();
@@ -235812,6 +236065,7 @@ var init_runAgent = __esm(() => {
235812
236065
  init_registerFrontmatterHooks();
235813
236066
  init_sessionHooks();
235814
236067
  init_hooks2();
236068
+ init_backgroundAbortRegistry();
235815
236069
  init_messages4();
235816
236070
  init_agent();
235817
236071
  init_settings2();
@@ -236597,7 +236851,7 @@ var init_TodoWriteTool = __esm(() => {
236597
236851
  const base2 = `Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable`;
236598
236852
  const nudge = verificationNudgeNeeded ? `
236599
236853
 
236600
- NOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${VERIFICATION_AGENT_TYPE2}"). You cannot self-assign PARTIAL by listing caveats in your summary — only the verifier issues a verdict.` : "";
236854
+ NOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${VERIFICATION_AGENT_TYPE}"). You cannot self-assign PARTIAL by listing caveats in your summary — only the verifier issues a verdict.` : "";
236601
236855
  return {
236602
236856
  tool_use_id: toolUseID,
236603
236857
  type: "tool_result",
@@ -238522,7 +238776,9 @@ var init_coreSchemas = __esm(() => {
238522
238776
  SubagentStartHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external2.object({
238523
238777
  hook_event_name: exports_external2.literal("SubagentStart"),
238524
238778
  agent_id: exports_external2.string(),
238525
- agent_type: exports_external2.string()
238779
+ agent_type: exports_external2.string(),
238780
+ tool_use_id: exports_external2.string().optional().describe("tool_use id of the Agent tool call that launched this subagent. " + "Lets hosts correlate the subagent lifecycle back to the launching " + "tool call (e.g. to render an inline running indicator on its pill)."),
238781
+ is_background: exports_external2.boolean().optional().describe("True when the subagent was launched with run_in_background (async). " + "Lets hosts scope background-specific UI/notifications to async agents.")
238526
238782
  })));
238527
238783
  SubagentStopHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external2.object({
238528
238784
  hook_event_name: exports_external2.literal("SubagentStop"),
@@ -238530,7 +238786,9 @@ var init_coreSchemas = __esm(() => {
238530
238786
  agent_id: exports_external2.string(),
238531
238787
  agent_transcript_path: exports_external2.string(),
238532
238788
  agent_type: exports_external2.string(),
238533
- last_assistant_message: exports_external2.string().optional().describe("Text content of the last assistant message before stopping. " + "Avoids the need to read and parse the transcript file.")
238789
+ last_assistant_message: exports_external2.string().optional().describe("Text content of the last assistant message before stopping. " + "Avoids the need to read and parse the transcript file."),
238790
+ status: exports_external2.enum(["completed", "failed", "stopped"]).optional().describe("Terminal outcome carried by the guaranteed terminal delivery for " + "background subagents (fired from the run teardown). Absent on the " + "natural-stop path — hosts treat a missing status as completed."),
238791
+ error_message: exports_external2.string().optional().describe("Present when status is failed: the error that aborted the run.")
238534
238792
  })));
238535
238793
  PreCompactHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external2.object({
238536
238794
  hook_event_name: exports_external2.literal("PreCompact"),
@@ -239036,6 +239294,7 @@ var init_coreSchemas = __esm(() => {
239036
239294
  compact_metadata: exports_external2.object({
239037
239295
  trigger: exports_external2.enum(["manual", "auto"]),
239038
239296
  pre_tokens: exports_external2.number(),
239297
+ post_tokens: exports_external2.number().optional().describe("Estimated resulting context size after compaction."),
239039
239298
  preserved_segment: exports_external2.object({
239040
239299
  head_uuid: UUIDPlaceholder(),
239041
239300
  anchor_uuid: UUIDPlaceholder(),
@@ -250244,7 +250503,7 @@ ${forkEnabled ? "For fresh agents, terse" : "Terse"} command-style prompts produ
250244
250503
  <example>
250245
250504
  user: "What's left on this branch before we can ship?"
250246
250505
  assistant: <thinking>Forking this — it's a survey question. I want the punch list, not the git output in my context.</thinking>
250247
- ${AGENT_TOOL_NAME3}({
250506
+ ${AGENT_TOOL_NAME2}({
250248
250507
  name: "ship-audit",
250249
250508
  description: "Branch ship-readiness audit",
250250
250509
  prompt: "Audit what's left before this branch can ship. Check: uncommitted changes, commits ahead of main, whether tests exist, whether the GrowthBook gate is wired up, whether CI-relevant files changed. Report a punch list — done vs. missing. Under 200 words."
@@ -250271,7 +250530,7 @@ assistant: <thinking>I'll ask the code-reviewer agent — it won't see my analys
250271
250530
  <commentary>
250272
250531
  A subagent_type is specified, so the agent starts fresh. It needs full context in the prompt. The briefing explains what to assess and why.
250273
250532
  </commentary>
250274
- ${AGENT_TOOL_NAME3}({
250533
+ ${AGENT_TOOL_NAME2}({
250275
250534
  name: "migration-review",
250276
250535
  description: "Independent migration review",
250277
250536
  subagent_type: "code-reviewer",
@@ -250301,7 +250560,7 @@ function isPrime(n) {
250301
250560
  <commentary>
250302
250561
  Since a significant piece of code was written and the task was completed, now use the test-runner agent to run the tests
250303
250562
  </commentary>
250304
- assistant: Uses the ${AGENT_TOOL_NAME3} tool to launch the test-runner agent
250563
+ assistant: Uses the ${AGENT_TOOL_NAME2} tool to launch the test-runner agent
250305
250564
  </example>
250306
250565
 
250307
250566
  <example>
@@ -250309,7 +250568,7 @@ user: "Hello"
250309
250568
  <commentary>
250310
250569
  Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
250311
250570
  </commentary>
250312
- assistant: "I'm going to use the ${AGENT_TOOL_NAME3} tool to launch the greeting-responder agent"
250571
+ assistant: "I'm going to use the ${AGENT_TOOL_NAME2} tool to launch the greeting-responder agent"
250313
250572
  </example>
250314
250573
  `;
250315
250574
  const listViaAttachment = shouldInjectAgentListInMessages();
@@ -250318,11 +250577,11 @@ ${effectiveAgents.map((agent) => formatAgentLine(agent)).join(`
250318
250577
  `)}`;
250319
250578
  const shared2 = `Launch a new agent to handle complex, multi-step tasks autonomously.
250320
250579
 
250321
- The ${AGENT_TOOL_NAME3} tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.
250580
+ The ${AGENT_TOOL_NAME2} tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.
250322
250581
 
250323
250582
  ${agentListSection}
250324
250583
 
250325
- ${forkEnabled ? `When using the ${AGENT_TOOL_NAME3} tool, specify a subagent_type to use a specialized agent, or omit it to fork yourself — a fork inherits your full conversation context.` : `When using the ${AGENT_TOOL_NAME3} tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.`}`;
250584
+ ${forkEnabled ? `When using the ${AGENT_TOOL_NAME2} tool, specify a subagent_type to use a specialized agent, or omit it to fork yourself — a fork inherits your full conversation context.` : `When using the ${AGENT_TOOL_NAME2} tool, specify a subagent_type parameter to select which agent type to use. If omitted, the general-purpose agent is used.`}`;
250326
250585
  if (isCoordinator) {
250327
250586
  return shared2;
250328
250587
  }
@@ -250330,10 +250589,10 @@ ${forkEnabled ? `When using the ${AGENT_TOOL_NAME3} tool, specify a subagent_typ
250330
250589
  const fileSearchHint = embedded ? "`find` via the Bash tool" : `the ${GLOB_TOOL_NAME2} tool`;
250331
250590
  const contentSearchHint = embedded ? "`grep` via the Bash tool" : `the ${GLOB_TOOL_NAME2} tool`;
250332
250591
  const whenNotToUseSection = forkEnabled ? "" : `
250333
- When NOT to use the ${AGENT_TOOL_NAME3} tool:
250334
- - If you want to read a specific file path, use the ${FILE_READ_TOOL_NAME2} tool or ${fileSearchHint} instead of the ${AGENT_TOOL_NAME3} tool, to find the match more quickly
250592
+ When NOT to use the ${AGENT_TOOL_NAME2} tool:
250593
+ - If you want to read a specific file path, use the ${FILE_READ_TOOL_NAME2} tool or ${fileSearchHint} instead of the ${AGENT_TOOL_NAME2} tool, to find the match more quickly
250335
250594
  - If you are searching for a specific class definition like "class Foo", use ${contentSearchHint} instead, to find the match more quickly
250336
- - If you are searching for code within a specific file or set of 2-3 files, use the ${FILE_READ_TOOL_NAME2} tool instead of the ${AGENT_TOOL_NAME3} tool, to find the match more quickly
250595
+ - If you are searching for code within a specific file or set of 2-3 files, use the ${FILE_READ_TOOL_NAME2} tool instead of the ${AGENT_TOOL_NAME2} tool, to find the match more quickly
250337
250596
  - Other tasks that are not related to the agent descriptions above
250338
250597
  `;
250339
250598
  const concurrencyNote = !listViaAttachment && getSubscriptionType() !== "pro" ? `
@@ -250350,7 +250609,7 @@ Usage notes:
250350
250609
  - The agent's outputs should generally be trusted
250351
250610
  - Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.)${forkEnabled ? "" : ", since it is not aware of the user's intent"}
250352
250611
  - If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
250353
- - If the user specifies that they want you to run agents "in parallel", you MUST send a single message with multiple ${AGENT_TOOL_NAME3} tool use content blocks. For example, if you need to launch both a build-validator agent and a test-runner agent in parallel, send a single message with both tool calls.
250612
+ - If the user specifies that they want you to run agents "in parallel", you MUST send a single message with multiple ${AGENT_TOOL_NAME2} tool use content blocks. For example, if you need to launch both a build-validator agent and a test-runner agent in parallel, send a single message with both tool calls.
250354
250613
  - You can optionally set \`isolation: "worktree"\` to run the agent in a temporary git worktree, giving it an isolated copy of the repository. The worktree is automatically cleaned up if the agent makes no changes; if changes are made, the worktree path and branch are returned in the result.${process.env.USER_TYPE === "ant" ? `
250355
250614
  - You can set \`isolation: "remote"\` to run the agent in a remote CCR environment. This is always a background task; you'll be notified when it completes. Use for long-running tasks that need a fresh sandbox.` : ""}${isInProcessTeammate() ? `
250356
250615
  - The run_in_background, name, team_name, and mode parameters are not available in this context. Only synchronous subagents are supported.` : isTeammate() ? `
@@ -250500,11 +250759,11 @@ var init_AgentTool = __esm(() => {
250500
250759
  }
250501
250760
  }
250502
250761
  const agentsWithMcpRequirementsMet = filterAgentsByMcpRequirements(agents, mcpServersWithTools);
250503
- const filteredAgents = filterDeniedAgents(agentsWithMcpRequirementsMet, toolPermissionContext, AGENT_TOOL_NAME3);
250762
+ const filteredAgents = filterDeniedAgents(agentsWithMcpRequirementsMet, toolPermissionContext, AGENT_TOOL_NAME2);
250504
250763
  const isCoordinator = false;
250505
250764
  return await getPrompt2(filteredAgents, isCoordinator, allowedAgentTypes);
250506
250765
  },
250507
- name: AGENT_TOOL_NAME3,
250766
+ name: AGENT_TOOL_NAME2,
250508
250767
  searchHint: "delegate work to a subagent",
250509
250768
  aliases: [LEGACY_AGENT_TOOL_NAME],
250510
250769
  maxResultSizeChars: 1e5,
@@ -250584,13 +250843,13 @@ var init_AgentTool = __esm(() => {
250584
250843
  const {
250585
250844
  allowedAgentTypes
250586
250845
  } = toolUseContext.options.agentDefinitions;
250587
- const agents = filterDeniedAgents(allowedAgentTypes ? allAgents.filter((a2) => allowedAgentTypes.includes(a2.agentType)) : allAgents, appState.toolPermissionContext, AGENT_TOOL_NAME3);
250846
+ const agents = filterDeniedAgents(allowedAgentTypes ? allAgents.filter((a2) => allowedAgentTypes.includes(a2.agentType)) : allAgents, appState.toolPermissionContext, AGENT_TOOL_NAME2);
250588
250847
  const found = agents.find((agent) => agent.agentType === effectiveType);
250589
250848
  if (!found) {
250590
250849
  const agentExistsButDenied = allAgents.find((agent) => agent.agentType === effectiveType);
250591
250850
  if (agentExistsButDenied) {
250592
- const denyRule = getDenyRuleForAgent(appState.toolPermissionContext, AGENT_TOOL_NAME3, effectiveType);
250593
- throw new Error(`Agent type '${effectiveType}' has been denied by permission rule '${AGENT_TOOL_NAME3}(${effectiveType})' from ${denyRule?.source ?? "settings"}.`);
250851
+ const denyRule = getDenyRuleForAgent(appState.toolPermissionContext, AGENT_TOOL_NAME2, effectiveType);
250852
+ throw new Error(`Agent type '${effectiveType}' has been denied by permission rule '${AGENT_TOOL_NAME2}(${effectiveType})' from ${denyRule?.source ?? "settings"}.`);
250594
250853
  }
250595
250854
  throw new Error(`Agent type '${effectiveType}' not found. Available agents: ${agents.map((a2) => a2.agentType).join(", ")}`);
250596
250855
  }
@@ -250961,6 +251220,19 @@ ${reasons}`);
250961
251220
  ...runAgentParams.override,
250962
251221
  agentId: syncAgentId
250963
251222
  },
251223
+ onPartialAssistant: onProgress ? (partial2) => {
251224
+ if (partial2.message.content.length === 0)
251225
+ return;
251226
+ onProgress({
251227
+ toolUseID: `agent_${assistantMessage.message.id}`,
251228
+ data: {
251229
+ message: partial2,
251230
+ type: "agent_progress",
251231
+ prompt: "",
251232
+ agentId: syncAgentId
251233
+ }
251234
+ });
251235
+ } : undefined,
250964
251236
  onCacheSafeParams: summaryTaskId && getSdkAgentProgressSummariesEnabled() ? (params) => {
250965
251237
  const {
250966
251238
  stop
@@ -251143,21 +251415,16 @@ ${reasons}`);
251143
251415
  }
251144
251416
  const normalizedNew = normalizeMessages([message]);
251145
251417
  for (const m of normalizedNew) {
251146
- for (const content of m.message.content) {
251147
- if (content.type !== "tool_use" && content.type !== "tool_result") {
251148
- continue;
251149
- }
251150
- if (onProgress) {
251151
- onProgress({
251152
- toolUseID: `agent_${assistantMessage.message.id}`,
251153
- data: {
251154
- message: m,
251155
- type: "agent_progress",
251156
- prompt: "",
251157
- agentId: syncAgentId
251158
- }
251159
- });
251160
- }
251418
+ if (onProgress && m.message.content.length > 0) {
251419
+ onProgress({
251420
+ toolUseID: `agent_${assistantMessage.message.id}`,
251421
+ data: {
251422
+ message: m,
251423
+ type: "agent_progress",
251424
+ prompt: "",
251425
+ agentId: syncAgentId
251426
+ }
251427
+ });
251161
251428
  }
251162
251429
  }
251163
251430
  }
@@ -251305,10 +251572,9 @@ Briefly tell the user what you launched and end your response.`
251305
251572
  if (data.status === "async_launched") {
251306
251573
  const prefix = `Async agent launched successfully.
251307
251574
  agentId: ${data.agentId} (internal ID - do not mention to user. Use SendMessage with to: '${data.agentId}' to continue this agent.)
251308
- The agent is working in the background. You will be notified automatically when it completes.`;
251309
- const instructions = data.canReadOutputFile ? `Do not duplicate this agent's work — avoid working with the same files or topics it is using. Work on non-overlapping tasks, or briefly tell the user what you launched and end your response.
251310
- output_file: ${data.outputFile}
251311
- If asked, you can check progress before completion by using ${FILE_READ_TOOL_NAME2} or ${BASH_TOOL_NAME2} tail on the output file.` : `Briefly tell the user what you launched and end your response. Do not generate any other text — agent results will arrive in a subsequent message.`;
251575
+ The agent is working in the background. Its result will be delivered to you automatically when it completes.`;
251576
+ const instructions = `Do not duplicate this agent's work — avoid working with the same files or topics it is using. Work on non-overlapping tasks, or briefly tell the user what you launched and end your response.
251577
+ Do NOT read its output/transcript file to check progress — its result will arrive automatically in a subsequent message.`;
251312
251578
  const text = `${prefix}
251313
251579
  ${instructions}`;
251314
251580
  return {
@@ -256809,7 +257075,7 @@ function toComparable(p) {
256809
257075
  return IS_WINDOWS ? posixForm.toLowerCase() : posixForm;
256810
257076
  }
256811
257077
  function detectSessionFileType(filePath) {
256812
- const configDir = getClaudeConfigHomeDir();
257078
+ const configDir = resolveConfigHomeDir();
256813
257079
  const normalized = toComparable(filePath);
256814
257080
  const configDirCmp = toComparable(configDir);
256815
257081
  if (!normalized.startsWith(configDirCmp)) {
@@ -256855,6 +257121,7 @@ var init_memoryFileDetection = __esm(() => {
256855
257121
  init_agentMemory();
256856
257122
  init_state2();
256857
257123
  init_paths();
257124
+ init_envUtils();
256858
257125
  init_windowsPaths();
256859
257126
  IS_WINDOWS = process.platform === "win32";
256860
257127
  });
@@ -258095,7 +258362,7 @@ Git Safety Protocol:
258095
258362
 
258096
258363
  Important notes:
258097
258364
  - NEVER run additional commands to read or explore code, besides git bash commands
258098
- - NEVER use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME3} tools
258365
+ - NEVER use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME2} tools
258099
258366
  - DO NOT push to the remote repository unless the user explicitly asks you to do so
258100
258367
  - IMPORTANT: Never use git commands with the -i flag (like git rebase -i or git add -i) since they require interactive input which is not supported.
258101
258368
  - IMPORTANT: Do not use --no-edit with git rebase commands, as the --no-edit flag is not a valid option for git rebase.
@@ -258141,7 +258408,7 @@ EOF
258141
258408
  </example>
258142
258409
 
258143
258410
  Important:
258144
- - DO NOT use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME3} tools
258411
+ - DO NOT use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME2} tools
258145
258412
  - Return the PR URL when you're done, so the user can see it
258146
258413
 
258147
258414
  # Other common operations
@@ -278143,6 +278410,7 @@ var init_client5 = __esm(() => {
278143
278410
  init_auth();
278144
278411
  init_cleanupRegistry();
278145
278412
  init_codeIndexing();
278413
+ init_knownServers();
278146
278414
  init_debug();
278147
278415
  init_envUtils();
278148
278416
  init_errors5();
@@ -281347,6 +281615,7 @@ function productionDeps() {
281347
281615
  callModel: queryModelWithStreaming,
281348
281616
  microcompact: microcompactMessages,
281349
281617
  autocompact: autoCompactIfNeeded,
281618
+ manualCompact,
281350
281619
  uuid: randomUUID10
281351
281620
  };
281352
281621
  }
@@ -281410,7 +281679,8 @@ async function* queryLoop(params, consumedCommandUuids) {
281410
281679
  fallbackModel,
281411
281680
  querySource,
281412
281681
  maxTurns,
281413
- skipCacheWrite
281682
+ skipCacheWrite,
281683
+ compactRequest
281414
281684
  } = params;
281415
281685
  const deps = params.deps ?? productionDeps();
281416
281686
  let state3 = {
@@ -281475,6 +281745,28 @@ async function* queryLoop(params, consumedCommandUuids) {
281475
281745
  const pendingCacheEdits2 = undefined;
281476
281746
  queryCheckpoint("query_microcompact_end");
281477
281747
  if (false) {}
281748
+ if (compactRequest) {
281749
+ try {
281750
+ const { compactionResult: compactionResult2 } = await deps.manualCompact(messagesForQuery, toolUseContext, {
281751
+ systemPrompt,
281752
+ userContext,
281753
+ systemContext,
281754
+ toolUseContext,
281755
+ forkContextMessages: messagesForQuery
281756
+ }, compactRequest.instructions);
281757
+ if (compactionResult2) {
281758
+ for (const message of buildPostCompactMessages(compactionResult2)) {
281759
+ yield message;
281760
+ }
281761
+ }
281762
+ } catch (err2) {
281763
+ yield createAssistantAPIErrorMessage({
281764
+ content: err2 instanceof Error ? err2.message : String(err2),
281765
+ error: "invalid_request"
281766
+ });
281767
+ }
281768
+ return { reason: "completed" };
281769
+ }
281478
281770
  const fullSystemPrompt = asSystemPrompt(appendSystemContext(systemPrompt, systemContext));
281479
281771
  queryCheckpoint("query_autocompact_start");
281480
281772
  const { compactionResult, consecutiveFailures } = await deps.autocompact(messagesForQuery, toolUseContext, {
@@ -282194,6 +282486,9 @@ function accumulateUsage(totalUsage, messageUsage) {
282194
282486
  }
282195
282487
 
282196
282488
  // src/providers/shared/usage.ts
282489
+ function contextWindowTokens(usage) {
282490
+ return (usage.input_tokens ?? 0) + (usage.cache_read_input_tokens ?? 0) + (usage.cache_creation_input_tokens ?? 0);
282491
+ }
282197
282492
  var EMPTY_USAGE;
282198
282493
  var init_usage = __esm(() => {
282199
282494
  EMPTY_USAGE = {
@@ -282266,7 +282561,7 @@ function getAnthropicEnvMetadata() {
282266
282561
  function getBuildAgeMinutes() {
282267
282562
  if (false)
282268
282563
  ;
282269
- const buildTime = new Date("2026-06-03T14:42:10.545Z").getTime();
282564
+ const buildTime = new Date("2026-06-20T04:27:50.766Z").getTime();
282270
282565
  if (isNaN(buildTime))
282271
282566
  return;
282272
282567
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -283609,6 +283904,7 @@ async function compactConversation(messages, context4, cacheSafeParams, suppress
283609
283904
  ...postCompactFileAttachments,
283610
283905
  ...hookMessages
283611
283906
  ]);
283907
+ boundaryMarker.compactMetadata.postTokens = truePostCompactTokenCount;
283612
283908
  const compactionUsage = getTokenUsage(summaryResponse);
283613
283909
  const querySourceForEvent = recompactionInfo?.querySource ?? context4.options.querySource ?? "unknown";
283614
283910
  logEvent("tengu_compact", {
@@ -284649,6 +284945,24 @@ async function autoCompactIfNeeded(messages, toolUseContext, cacheSafeParams, qu
284649
284945
  return { wasCompacted: false, consecutiveFailures: nextFailures };
284650
284946
  }
284651
284947
  }
284948
+ async function manualCompact(messages, toolUseContext, cacheSafeParams, instructions, deps = { compactConversation, trySessionMemoryCompaction }) {
284949
+ if (isEnvTruthy(process.env.DISABLE_COMPACT)) {
284950
+ return { wasCompacted: false };
284951
+ }
284952
+ if (!instructions) {
284953
+ const sessionMemoryResult = await deps.trySessionMemoryCompaction(messages, toolUseContext.agentId);
284954
+ if (sessionMemoryResult) {
284955
+ setLastSummarizedMessageId(undefined);
284956
+ runPostCompactCleanup();
284957
+ markPostCompaction();
284958
+ return { wasCompacted: true, compactionResult: sessionMemoryResult };
284959
+ }
284960
+ }
284961
+ const compactionResult = await deps.compactConversation(messages, toolUseContext, cacheSafeParams, false, instructions, false);
284962
+ setLastSummarizedMessageId(undefined);
284963
+ runPostCompactCleanup();
284964
+ return { wasCompacted: true, compactionResult };
284965
+ }
284652
284966
  var MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20000, AUTOCOMPACT_BUFFER_TOKENS = 13000, WARNING_THRESHOLD_BUFFER_TOKENS = 20000, ERROR_THRESHOLD_BUFFER_TOKENS = 20000, MANUAL_COMPACT_BUFFER_TOKENS = 3000, MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
284653
284967
  var init_autoCompact = __esm(() => {
284654
284968
  init_state();
@@ -284767,7 +285081,7 @@ function isAutoToolSearchMode(value) {
284767
285081
  return value === "auto" || value.startsWith("auto:");
284768
285082
  }
284769
285083
  function getAutoToolSearchPercentage() {
284770
- const value = process.env.ENABLE_TOOL_SEARCH;
285084
+ const value = resolveEnvVar("ENABLE_TOOL_SEARCH");
284771
285085
  if (!value)
284772
285086
  return DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE;
284773
285087
  if (value === "auto")
@@ -284790,7 +285104,7 @@ function getToolSearchMode() {
284790
285104
  if (isEnvTruthy(resolveEnvVar("DISABLE_EXPERIMENTAL_BETAS"))) {
284791
285105
  return "standard";
284792
285106
  }
284793
- const value = process.env.ENABLE_TOOL_SEARCH;
285107
+ const value = resolveEnvVar("ENABLE_TOOL_SEARCH");
284794
285108
  const autoPercent = value ? parseAutoPercentage(value) : null;
284795
285109
  if (autoPercent === 0)
284796
285110
  return "tst";
@@ -284801,7 +285115,7 @@ function getToolSearchMode() {
284801
285115
  }
284802
285116
  if (isEnvTruthy(value))
284803
285117
  return "tst";
284804
- if (isEnvDefinedFalsy(process.env.ENABLE_TOOL_SEARCH))
285118
+ if (isEnvDefinedFalsy(value))
284805
285119
  return "standard";
284806
285120
  return "tst";
284807
285121
  }
@@ -284829,11 +285143,12 @@ function isToolSearchEnabledOptimistic() {
284829
285143
  if (mode === "standard") {
284830
285144
  if (!loggedOptimistic) {
284831
285145
  loggedOptimistic = true;
284832
- logForDebugging(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=false`);
285146
+ logForDebugging(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${resolveEnvVar("ENABLE_TOOL_SEARCH")}, result=false`);
284833
285147
  }
284834
285148
  return false;
284835
285149
  }
284836
- if (!process.env.ENABLE_TOOL_SEARCH && isFamily(getProvider(), "firstParty") && !isFirstPartyAnthropicBaseUrl()) {
285150
+ const enableToolSearchValue = resolveEnvVar("ENABLE_TOOL_SEARCH");
285151
+ if (!enableToolSearchValue && isFamily(getProvider(), "firstParty") && !isFirstPartyAnthropicBaseUrl()) {
284837
285152
  if (!loggedOptimistic) {
284838
285153
  loggedOptimistic = true;
284839
285154
  logForDebugging(`[ToolSearch:optimistic] disabled: ANTHROPIC_BASE_URL=${process.env.ANTHROPIC_BASE_URL} is not a first-party Anthropic host. Set ENABLE_TOOL_SEARCH=true (or auto / auto:N) if your proxy forwards tool_reference blocks.`);
@@ -284842,10 +285157,13 @@ function isToolSearchEnabledOptimistic() {
284842
285157
  }
284843
285158
  if (!loggedOptimistic) {
284844
285159
  loggedOptimistic = true;
284845
- logForDebugging(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=true`);
285160
+ logForDebugging(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${enableToolSearchValue}, result=true`);
284846
285161
  }
284847
285162
  return true;
284848
285163
  }
285164
+ function isNativeToolReferenceWire() {
285165
+ return isFamily(getProvider(), "firstParty") && isFirstPartyAnthropicBaseUrl();
285166
+ }
284849
285167
  function isToolSearchToolAvailable(tools) {
284850
285168
  return tools.some((tool) => toolMatchesName2(tool, TOOL_SEARCH_TOOL_NAME));
284851
285169
  }
@@ -284917,6 +285235,14 @@ function isToolReferenceWithName(obj) {
284917
285235
  function isToolResultBlockWithContent(obj) {
284918
285236
  return typeof obj === "object" && obj !== null && "type" in obj && obj.type === "tool_result" && "content" in obj && Array.isArray(obj.content);
284919
285237
  }
285238
+ function isToolResultBlockWithStringContent(obj) {
285239
+ return typeof obj === "object" && obj !== null && obj.type === "tool_result" && typeof obj.content === "string";
285240
+ }
285241
+ function scanDiscoveredToolMarkers(text, into) {
285242
+ for (const m of text.matchAll(DISCOVERED_TOOL_MARKER_RE)) {
285243
+ into.add(m[1]);
285244
+ }
285245
+ }
284920
285246
  function extractDiscoveredToolNames(messages) {
284921
285247
  const discoveredTools = new Set;
284922
285248
  let carriedFromBoundary = 0;
@@ -284940,8 +285266,12 @@ function extractDiscoveredToolNames(messages) {
284940
285266
  for (const item of block2.content) {
284941
285267
  if (isToolReferenceWithName(item)) {
284942
285268
  discoveredTools.add(item.tool_name);
285269
+ } else if (typeof item?.text === "string") {
285270
+ scanDiscoveredToolMarkers(item.text, discoveredTools);
284943
285271
  }
284944
285272
  }
285273
+ } else if (isToolResultBlockWithStringContent(block2)) {
285274
+ scanDiscoveredToolMarkers(block2.content, discoveredTools);
284945
285275
  }
284946
285276
  }
284947
285277
  }
@@ -285019,7 +285349,7 @@ async function checkAutoThreshold(tools, getToolPermissionContext, agents, model
285019
285349
  metrics: { deferredToolDescriptionChars, charThreshold }
285020
285350
  };
285021
285351
  }
285022
- var DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE = 10, CHARS_PER_TOKEN2 = 2.5, getDeferredToolTokenCount, DEFAULT_UNSUPPORTED_MODEL_PATTERNS, loggedOptimistic = false;
285352
+ var DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE = 10, CHARS_PER_TOKEN2 = 2.5, getDeferredToolTokenCount, DEFAULT_UNSUPPORTED_MODEL_PATTERNS, loggedOptimistic = false, DISCOVERED_TOOL_MARKER_RE;
285023
285353
  var init_toolSearch = __esm(() => {
285024
285354
  init_memoize();
285025
285355
  init_Tool();
@@ -285047,6 +285377,7 @@ var init_toolSearch = __esm(() => {
285047
285377
  }
285048
285378
  }, (tools) => tools.filter((t) => isDeferredTool(t)).map((t) => t.name).join(","));
285049
285379
  DEFAULT_UNSUPPORTED_MODEL_PATTERNS = ["haiku"];
285380
+ DISCOVERED_TOOL_MARKER_RE = /<discovered-tool name="([^"]+)" \/>/g;
285050
285381
  });
285051
285382
 
285052
285383
  // src/providers/shared/tokenCount.ts
@@ -286658,7 +286989,7 @@ function getDeferredToolsDeltaAttachment(tools, model, messages, scanContext) {
286658
286989
  function getAgentListingDeltaAttachment(toolUseContext, messages) {
286659
286990
  if (!shouldInjectAgentListInMessages())
286660
286991
  return [];
286661
- if (!toolUseContext.options.tools.some((t) => toolMatchesName2(t, AGENT_TOOL_NAME2))) {
286992
+ if (!toolUseContext.options.tools.some((t) => toolMatchesName2(t, AGENT_TOOL_NAME))) {
286662
286993
  return [];
286663
286994
  }
286664
286995
  const { activeAgents, allowedAgentTypes } = toolUseContext.options.agentDefinitions;
@@ -286669,7 +287000,7 @@ function getAgentListingDeltaAttachment(toolUseContext, messages) {
286669
287000
  mcpServers.add(info.serverName);
286670
287001
  }
286671
287002
  const permissionContext = toolUseContext.getAppState().toolPermissionContext;
286672
- let filtered = filterDeniedAgents(filterAgentsByMcpRequirements(activeAgents, [...mcpServers]), permissionContext, AGENT_TOOL_NAME2);
287003
+ let filtered = filterDeniedAgents(filterAgentsByMcpRequirements(activeAgents, [...mcpServers]), permissionContext, AGENT_TOOL_NAME);
286673
287004
  if (allowedAgentTypes) {
286674
287005
  filtered = filtered.filter((a2) => allowedAgentTypes.includes(a2.agentType));
286675
287006
  }
@@ -287275,8 +287606,8 @@ async function getSkillListingAttachments(toolUseContext) {
287275
287606
  sent.add(cmd.name);
287276
287607
  }
287277
287608
  logForDebugging(`Sending ${newSkills.length} skills via attachment (${isInitial ? "initial" : "dynamic"}, ${sent.size} total sent)`);
287278
- const contextWindowTokens = getContextWindowForModel(toolUseContext.options.mainLoopModel, getSdkBetas());
287279
- const content = formatCommandsWithinBudget(newSkills, contextWindowTokens);
287609
+ const contextWindowTokens2 = getContextWindowForModel(toolUseContext.options.mainLoopModel, getSdkBetas());
287610
+ const content = formatCommandsWithinBudget(newSkills, contextWindowTokens2);
287280
287611
  return [
287281
287612
  {
287282
287613
  type: "skill_listing",
@@ -288796,6 +289127,7 @@ __export(exports_hooks, {
288796
289127
  executeTaskCreatedHooks: () => executeTaskCreatedHooks,
288797
289128
  executeTaskCompletedHooks: () => executeTaskCompletedHooks,
288798
289129
  executeSubagentStartHooks: () => executeSubagentStartHooks,
289130
+ executeSubagentProgressHooks: () => executeSubagentProgressHooks,
288799
289131
  executeStopHooks: () => executeStopHooks,
288800
289132
  executeStopFailureHooks: () => executeStopFailureHooks,
288801
289133
  executeStatusLineCommand: () => executeStatusLineCommand,
@@ -290856,13 +291188,16 @@ async function executeStopFailureHooks(lastMessage, toolUseContext, timeoutMs =
290856
291188
  matchQuery: error41
290857
291189
  });
290858
291190
  }
290859
- async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, stopHookActive = false, subagentId, toolUseContext, messages, agentType, requestPrompt) {
291191
+ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, stopHookActive = false, subagentId, toolUseContext, messages, agentType, requestPrompt, terminal2) {
290860
291192
  const hookEvent = subagentId ? "SubagentStop" : "Stop";
290861
291193
  const appState = toolUseContext?.getAppState();
290862
291194
  const sessionId = toolUseContext?.agentId ?? getSessionId();
290863
291195
  if (!hasHookForEvent(hookEvent, appState, sessionId)) {
290864
291196
  return;
290865
291197
  }
291198
+ if (subagentId) {
291199
+ markSubagentStopFired(subagentId);
291200
+ }
290866
291201
  const lastAssistantMessage = messages ? getLastAssistantMessage(messages) : undefined;
290867
291202
  const lastAssistantText = lastAssistantMessage ? extractTextContent(lastAssistantMessage.message.content, `
290868
291203
  `).trim() || undefined : undefined;
@@ -290873,7 +291208,8 @@ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_E
290873
291208
  agent_id: subagentId,
290874
291209
  agent_transcript_path: getAgentTranscriptPath(subagentId),
290875
291210
  agent_type: agentType ?? "",
290876
- last_assistant_message: lastAssistantText
291211
+ last_assistant_message: lastAssistantText,
291212
+ ...terminal2 ? { status: terminal2.status, error_message: terminal2.errorMessage } : {}
290877
291213
  } : {
290878
291214
  ...createBaseHookInput(permissionMode),
290879
291215
  hook_event_name: "Stop",
@@ -290992,12 +291328,14 @@ async function* executeSetupHooks(trigger, signal, timeoutMs = TOOL_HOOK_EXECUTI
290992
291328
  forceSyncExecution
290993
291329
  });
290994
291330
  }
290995
- async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS) {
291331
+ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, toolUseId, isBackground) {
290996
291332
  const hookInput = {
290997
291333
  ...createBaseHookInput(undefined),
290998
291334
  hook_event_name: "SubagentStart",
290999
291335
  agent_id: agentId,
291000
- agent_type: agentType
291336
+ agent_type: agentType,
291337
+ ...toolUseId !== undefined ? { tool_use_id: toolUseId } : {},
291338
+ ...isBackground !== undefined ? { is_background: isBackground } : {}
291001
291339
  };
291002
291340
  yield* executeHooks({
291003
291341
  hookInput,
@@ -291007,6 +291345,24 @@ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs
291007
291345
  timeoutMs
291008
291346
  });
291009
291347
  }
291348
+ async function executeSubagentProgressHooks(agentId, agentType, messageId, parentToolUseId, blocks, signal) {
291349
+ const hookInput = {
291350
+ ...createBaseHookInput(undefined),
291351
+ hook_event_name: "SubagentProgress",
291352
+ agent_id: agentId,
291353
+ agent_type: agentType,
291354
+ message_id: messageId,
291355
+ ...parentToolUseId !== undefined ? { parent_tool_use_id: parentToolUseId } : {},
291356
+ blocks
291357
+ };
291358
+ for await (const _hookResult of executeHooks({
291359
+ hookInput,
291360
+ toolUseID: randomUUID16(),
291361
+ matchQuery: agentType,
291362
+ signal,
291363
+ timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS
291364
+ })) {}
291365
+ }
291010
291366
  async function executePreCompactHooks(compactData, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS) {
291011
291367
  const hookInput = {
291012
291368
  ...createBaseHookInput(undefined),
@@ -291646,6 +292002,7 @@ var init_hooks2 = __esm(() => {
291646
292002
  init_envUtils();
291647
292003
  init_errors5();
291648
292004
  init_state2();
292005
+ init_backgroundAbortRegistry();
291649
292006
  TOOL_HOOK_EXECUTION_TIMEOUT_MS = 10 * 60 * 1000;
291650
292007
  });
291651
292008
 
@@ -292431,6 +292788,7 @@ var init_prompts2 = __esm(() => {
292431
292788
  init_debug();
292432
292789
  init_memdir();
292433
292790
  init_mcpInstructionsDelta();
292791
+ init_antModels();
292434
292792
  init_state2();
292435
292793
  CLAUDE_4_5_OR_4_6_MODEL_IDS = {
292436
292794
  opus: "claude-opus-4-6",
@@ -292794,7 +293152,7 @@ var init_api3 = __esm(() => {
292794
293152
  init_zodToJsonSchema2();
292795
293153
  SWARM_FIELDS_BY_TOOL = {
292796
293154
  [EXIT_PLAN_MODE_V2_TOOL_NAME]: ["launchSwarm", "teammateCount"],
292797
- [AGENT_TOOL_NAME2]: ["name", "team_name", "mode"]
293155
+ [AGENT_TOOL_NAME]: ["name", "team_name", "mode"]
292798
293156
  };
292799
293157
  });
292800
293158
 
@@ -293120,7 +293478,8 @@ async function* queryModel(messages, systemPrompt, thinkingConfig, tools, signal
293120
293478
  } else {
293121
293479
  filteredTools = tools.filter((t) => !toolMatchesName2(t, TOOL_SEARCH_TOOL_NAME));
293122
293480
  }
293123
- const toolSearchHeader = useToolSearch ? getToolSearchBetaHeader() : null;
293481
+ const nativeToolReferenceWire = useToolSearch && isNativeToolReferenceWire();
293482
+ const toolSearchHeader = nativeToolReferenceWire ? getToolSearchBetaHeader() : null;
293124
293483
  if (toolSearchHeader && !betas.includes(toolSearchHeader)) {
293125
293484
  betas.push(toolSearchHeader);
293126
293485
  }
@@ -293128,7 +293487,7 @@ async function* queryModel(messages, systemPrompt, thinkingConfig, tools, signal
293128
293487
  let cacheEditingBetaHeader = "";
293129
293488
  if (false) {}
293130
293489
  const useGlobalCacheFeature = shouldUseGlobalCacheScope();
293131
- const willDefer = (t) => useToolSearch && (deferredToolNames.has(t.name) || shouldDeferLspTool(t));
293490
+ const willDefer = (t) => nativeToolReferenceWire && (deferredToolNames.has(t.name) || shouldDeferLspTool(t));
293132
293491
  const needsToolBasedCacheMarker = useGlobalCacheFeature && filteredTools.some((t) => t.isMcp === true && !willDefer(t));
293133
293492
  if (useGlobalCacheFeature && !betas.includes(PROMPT_CACHING_SCOPE_BETA_HEADER)) {
293134
293493
  betas.push(PROMPT_CACHING_SCOPE_BETA_HEADER);
@@ -294134,7 +294493,7 @@ async function queryHaiku({
294134
294493
  enablePromptCaching: options2.enablePromptCaching ?? false,
294135
294494
  outputFormat,
294136
294495
  async getToolPermissionContext() {
294137
- return getEmptyToolPermissionContext();
294496
+ return getEmptyToolPermissionContext2();
294138
294497
  }
294139
294498
  }
294140
294499
  });
@@ -295071,6 +295430,23 @@ function getDenyRules(context4) {
295071
295430
  ruleValue: permissionRuleValueFromString(ruleString)
295072
295431
  })));
295073
295432
  }
295433
+ function denySessionTools(context4, toolNames) {
295434
+ if (!toolNames || toolNames.length === 0)
295435
+ return context4;
295436
+ return {
295437
+ ...context4,
295438
+ alwaysDenyRules: {
295439
+ ...context4.alwaysDenyRules,
295440
+ session: [...context4.alwaysDenyRules.session ?? [], ...toolNames]
295441
+ }
295442
+ };
295443
+ }
295444
+ function filterSubagentDisallowedTools(tools, subagentDisallowedTools) {
295445
+ if (!subagentDisallowedTools || subagentDisallowedTools.length === 0)
295446
+ return tools;
295447
+ const context4 = denySessionTools(getEmptyToolPermissionContext(), subagentDisallowedTools);
295448
+ return tools.filter((tool) => getDenyRuleForTool(context4, tool) === null);
295449
+ }
295074
295450
  function getAskRules(context4) {
295075
295451
  return PERMISSION_RULE_SOURCES.flatMap((source) => (context4.alwaysAskRules[source] || []).map((ruleString) => ({
295076
295452
  source,
@@ -295365,6 +295741,7 @@ var _shouldUseSandbox = null, CLASSIFIER_FAIL_CLOSED_REFRESH_MS, PERMISSION_RULE
295365
295741
  var init_permissions2 = __esm(() => {
295366
295742
  init_canonical();
295367
295743
  init_mcpStringUtils();
295744
+ init_toolRuntime();
295368
295745
  init_commands();
295369
295746
  init_debug();
295370
295747
  init_errors5();
@@ -298112,7 +298489,7 @@ ${attachment.removedNames.join(`
298112
298489
  }
298113
298490
  case "verify_plan_reminder": {
298114
298491
  const toolName = resolveEnvVar("VERIFY_PLAN") === "true" ? "VerifyPlanExecution" : "";
298115
- const content = `You have completed implementing the plan. Please call the "${toolName}" tool directly (NOT the ${AGENT_TOOL_NAME2} tool or an agent) to verify that all plan items were completed correctly.`;
298492
+ const content = `You have completed implementing the plan. Please call the "${toolName}" tool directly (NOT the ${AGENT_TOOL_NAME} tool or an agent) to verify that all plan items were completed correctly.`;
298116
298493
  return wrapMessagesInSystemReminder([
298117
298494
  createUserMessage({ content, isMeta: true })
298118
298495
  ]);
@@ -299362,6 +299739,7 @@ function toSDKCompactMetadata(meta) {
299362
299739
  return {
299363
299740
  trigger: meta.trigger,
299364
299741
  pre_tokens: meta.preTokens,
299742
+ ...meta.postTokens !== undefined && { post_tokens: meta.postTokens },
299365
299743
  ...seg && {
299366
299744
  preserved_segment: {
299367
299745
  head_uuid: seg.headUuid,
@@ -299393,7 +299771,7 @@ var init_mappers = __esm(() => {
299393
299771
  // src/session/messages/systemInit.ts
299394
299772
  import { randomUUID as randomUUID22 } from "crypto";
299395
299773
  function sdkCompatToolName(name) {
299396
- return name === AGENT_TOOL_NAME3 ? LEGACY_AGENT_TOOL_NAME : name;
299774
+ return name === AGENT_TOOL_NAME2 ? LEGACY_AGENT_TOOL_NAME : name;
299397
299775
  }
299398
299776
  function buildSystemInitMessage(inputs) {
299399
299777
  const settings = getSettings_DEPRECATED();
@@ -299476,6 +299854,7 @@ class QueryEngine {
299476
299854
  maxBudgetUsd,
299477
299855
  maxOutputTokens,
299478
299856
  contextWindow,
299857
+ compact,
299479
299858
  taskBudget,
299480
299859
  canUseTool,
299481
299860
  customSystemPrompt,
@@ -299562,7 +299941,9 @@ class QueryEngine {
299562
299941
  theme: resolveThemeSetting(getGlobalConfig().theme),
299563
299942
  maxBudgetUsd,
299564
299943
  maxOutputTokens,
299565
- contextWindow
299944
+ contextWindow,
299945
+ modelProviders: this.config.modelProviders,
299946
+ subagentDisallowedTools: this.config.subagentDisallowedTools
299566
299947
  },
299567
299948
  getAppState,
299568
299949
  setAppState,
@@ -299664,7 +300045,9 @@ class QueryEngine {
299664
300045
  agentDefinitions: { activeAgents: agents, allAgents: [] },
299665
300046
  maxBudgetUsd,
299666
300047
  maxOutputTokens,
299667
- contextWindow
300048
+ contextWindow,
300049
+ modelProviders: this.config.modelProviders,
300050
+ subagentDisallowedTools: this.config.subagentDisallowedTools
299668
300051
  },
299669
300052
  getAppState,
299670
300053
  setAppState,
@@ -299698,7 +300081,7 @@ class QueryEngine {
299698
300081
  fastMode: initialAppState.fastMode
299699
300082
  });
299700
300083
  headlessProfilerCheckpoint("system_message_yielded");
299701
- if (!shouldQuery) {
300084
+ if (!shouldQuery && !compact) {
299702
300085
  for (const msg of messagesFromUserInput) {
299703
300086
  if (msg.type === "user" && typeof msg.message.content === "string" && (msg.message.content.includes(`<${LOCAL_COMMAND_STDOUT_TAG}>`) || msg.message.content.includes(`<${LOCAL_COMMAND_STDERR_TAG}>`) || msg.isCompactSummary)) {
299704
300087
  yield {
@@ -299781,6 +300164,7 @@ class QueryEngine {
299781
300164
  querySource: "sdk",
299782
300165
  maxTurns,
299783
300166
  maxOutputTokensOverride: maxOutputTokens,
300167
+ compactRequest: compact,
299784
300168
  taskBudget
299785
300169
  })) {
299786
300170
  if (message.type === "assistant" || message.type === "user" || message.type === "system" && message.subtype === "compact_boundary") {
@@ -300046,7 +300430,7 @@ class QueryEngine {
300046
300430
  await flushSessionStorage();
300047
300431
  }
300048
300432
  }
300049
- if (!isResultSuccessful(result, lastStopReason)) {
300433
+ if (!compact && !isResultSuccessful(result, lastStopReason)) {
300050
300434
  if (this.abortController.signal.aborted) {
300051
300435
  yield {
300052
300436
  type: "result",
@@ -300113,6 +300497,7 @@ class QueryEngine {
300113
300497
  session_id: getSessionId(),
300114
300498
  total_cost_usd: getTotalCostUSD(),
300115
300499
  usage: this.totalUsage,
300500
+ context_window: { used_tokens: contextWindowTokens(currentMessageUsage) },
300116
300501
  modelUsage: getModelUsage(),
300117
300502
  permission_denials: this.permissionDenials,
300118
300503
  structured_output: structuredOutputFromTool,
@@ -300150,6 +300535,7 @@ async function* ask({
300150
300535
  maxBudgetUsd,
300151
300536
  maxOutputTokens,
300152
300537
  contextWindow,
300538
+ compact,
300153
300539
  taskBudget,
300154
300540
  canUseTool,
300155
300541
  mutableMessages = [],
@@ -300159,6 +300545,7 @@ async function* ask({
300159
300545
  appendSystemPrompt,
300160
300546
  userSpecifiedModel,
300161
300547
  fallbackModel,
300548
+ modelProviders,
300162
300549
  jsonSchema,
300163
300550
  getAppState,
300164
300551
  setAppState,
@@ -300186,11 +300573,13 @@ async function* ask({
300186
300573
  appendSystemPrompt,
300187
300574
  userSpecifiedModel,
300188
300575
  fallbackModel,
300576
+ modelProviders,
300189
300577
  thinkingConfig,
300190
300578
  maxTurns,
300191
300579
  maxBudgetUsd,
300192
300580
  maxOutputTokens,
300193
300581
  contextWindow,
300582
+ compact,
300194
300583
  taskBudget,
300195
300584
  jsonSchema,
300196
300585
  verbose,
@@ -328902,6 +329291,8 @@ function registerSdkInlineSkillHandler() {
328902
329291
  }
328903
329292
 
328904
329293
  // src/session/sdkRuntime.ts
329294
+ init_LocalAgentTask();
329295
+ init_backgroundAbortRegistry();
328905
329296
  init_hooks2();
328906
329297
  init_debug();
328907
329298
  init_errors5();
@@ -328919,6 +329310,7 @@ function toInternalTool(sdkTool) {
328919
329310
  maxResultSizeChars: 1e5,
328920
329311
  inputSchema: zodObjectInputSchema,
328921
329312
  isMcp: false,
329313
+ shouldDefer: sdkTool.shouldDefer,
328922
329314
  isReadOnly: () => sdkTool.isReadOnly ?? false,
328923
329315
  isConcurrencySafe: () => sdkTool.isConcurrencySafe ?? false,
328924
329316
  async description() {
@@ -328963,11 +329355,20 @@ function extractToolUseId2(message) {
328963
329355
  return;
328964
329356
  }
328965
329357
 
329358
+ // src/session/mcpAppState.ts
329359
+ function withSessionMcpTools(appState, clients, tools) {
329360
+ return {
329361
+ ...appState,
329362
+ mcp: { ...appState.mcp, clients: [...clients], tools: [...tools] }
329363
+ };
329364
+ }
329365
+
328966
329366
  // src/session/sdkRuntime.ts
328967
329367
  init_AppStateStore();
328968
329368
  init_toolRuntime();
328969
329369
  init_tools2();
328970
329370
  init_abortController();
329371
+ init_stream2();
328971
329372
  init_config3();
328972
329373
  init_fileStateCache();
328973
329374
  init_log2();
@@ -329136,6 +329537,14 @@ function applyPermissionMode(appState, permissionMode) {
329136
329537
  toolPermissionContext: nextContext
329137
329538
  };
329138
329539
  }
329540
+ function applyDisallowedTools(appState, disallowedTools) {
329541
+ if (!disallowedTools || disallowedTools.length === 0)
329542
+ return appState;
329543
+ return {
329544
+ ...appState,
329545
+ toolPermissionContext: denySessionTools(appState.toolPermissionContext, disallowedTools)
329546
+ };
329547
+ }
329139
329548
  function filterDisallowedTools(tools, disallowedTools) {
329140
329549
  if (!Array.isArray(disallowedTools) || disallowedTools.length === 0) {
329141
329550
  return tools;
@@ -329211,6 +329620,10 @@ function createQueryLike(generator, runtimeState, onClose) {
329211
329620
  runtimeState.abortController.abort();
329212
329621
  runtimeState.abortController = createAbortController();
329213
329622
  },
329623
+ killAgent(agentId) {
329624
+ abortBackgroundAgentById(agentId);
329625
+ killAsyncAgent(agentId, runtimeState.setAppState);
329626
+ },
329214
329627
  async close() {
329215
329628
  if (runtimeState.closed)
329216
329629
  return;
@@ -329226,6 +329639,33 @@ function createQueryLike(generator, runtimeState, onClose) {
329226
329639
  }
329227
329640
  };
329228
329641
  }
329642
+ async function* mergeAskWithStatus(askIterable, statusStream) {
329643
+ const askIter = askIterable[Symbol.asyncIterator]();
329644
+ let askNext = askIter.next();
329645
+ let statusNext = statusStream.next();
329646
+ try {
329647
+ while (true) {
329648
+ const winner = await Promise.race([
329649
+ askNext.then((r) => ({ src: "ask", r })),
329650
+ statusNext.then((r) => ({ src: "status", r }))
329651
+ ]);
329652
+ if (winner.src === "status") {
329653
+ if (!winner.r.done) {
329654
+ yield winner.r.value;
329655
+ statusNext = statusStream.next();
329656
+ }
329657
+ } else {
329658
+ if (winner.r.done)
329659
+ return;
329660
+ yield winner.r.value;
329661
+ askNext = askIter.next();
329662
+ }
329663
+ }
329664
+ } finally {
329665
+ statusStream.done();
329666
+ await askIter.return?.();
329667
+ }
329668
+ }
329229
329669
  function runSdkQueryRuntime(params) {
329230
329670
  const options2 = params.options ?? {};
329231
329671
  const cwd = typeof options2.cwd === "string" && options2.cwd.trim().length > 0 ? options2.cwd : process.cwd();
@@ -329237,7 +329677,7 @@ function runSdkQueryRuntime(params) {
329237
329677
  abortController: createAbortController()
329238
329678
  };
329239
329679
  const fileCheckpointingOnChange = options2.fileCheckpointing?.onFileHistoryChange;
329240
- const appStateStore = buildAppStateStore(applyFileCheckpointingInitialState(applyPermissionMode(getDefaultAppState(), options2.permissionMode), options2.fileCheckpointing?.initialState), fileCheckpointingOnChange);
329680
+ const appStateStore = buildAppStateStore(applyFileCheckpointingInitialState(applyDisallowedTools(applyPermissionMode(getDefaultAppState(), options2.permissionMode), options2.disallowedTools), options2.fileCheckpointing?.initialState), fileCheckpointingOnChange);
329241
329681
  const initialMessagesForReplay = options2.resume ? loadAndRestampHistoricalMessages(options2.resume, queryContext.identity.sessionId, options2.initialMessages) : options2.initialMessages;
329242
329682
  let mutableMessages = normalizeInitialMessages(initialMessagesForReplay);
329243
329683
  let readFileCache = createFileStateCacheWithSizeLimit(DEFAULT_READ_FILE_CACHE_SIZE);
@@ -329364,6 +329804,7 @@ function runSdkQueryRuntime(params) {
329364
329804
  const allCommands = [...baseCommands, ...dynamicCommands, ...hostCommands];
329365
329805
  const allMcpClients = [...dynamicClients, ...sdkClients];
329366
329806
  const allMcpTools = [...dynamicTools, ...sdkTools];
329807
+ appStateStore.setAppState((prev) => withSessionMcpTools(prev, allMcpClients, allMcpTools));
329367
329808
  const externalBuiltInTools = options2.builtInTools;
329368
329809
  if (externalBuiltInTools && !_builtInToolsProviderSetByOptions) {
329369
329810
  registerBuiltInToolsProvider(() => externalBuiltInTools);
@@ -329378,7 +329819,11 @@ function runSdkQueryRuntime(params) {
329378
329819
  break;
329379
329820
  }
329380
329821
  runtimeState.runningTurn = true;
329381
- for await (const message of getAsk()({
329822
+ const { resolveSdkAgents: resolveSdkAgents2 } = (init_builtInAgents(), __toCommonJS(exports_builtInAgents));
329823
+ const hostProvidedAgents = Array.isArray(options2.agents) ? options2.agents : [];
329824
+ const mergedAgents = resolveSdkAgents2(hostProvidedAgents);
329825
+ const turnStatusStream = new Stream2;
329826
+ for await (const message of mergeAskWithStatus(getAsk()({
329382
329827
  commands: allCommands,
329383
329828
  prompt: turn.prompt,
329384
329829
  promptUuid: turn.uuid,
@@ -329391,7 +329836,9 @@ function runSdkQueryRuntime(params) {
329391
329836
  maxBudgetUsd: options2.maxBudgetUsd,
329392
329837
  maxOutputTokens: options2.maxOutputTokens,
329393
329838
  contextWindow: options2.contextWindow,
329839
+ compact: options2.compact,
329394
329840
  taskBudget: options2.taskBudget,
329841
+ subagentDisallowedTools: options2.subagentDisallowedTools,
329395
329842
  canUseTool,
329396
329843
  mutableMessages,
329397
329844
  getReadFileCache: () => readFileCache,
@@ -329403,14 +329850,24 @@ function runSdkQueryRuntime(params) {
329403
329850
  userSpecifiedModel: typeof options2.model === "string" && options2.model.length > 0 ? options2.model : undefined,
329404
329851
  fallbackModel: typeof options2.fallbackModel === "string" && options2.fallbackModel.length > 0 ? options2.fallbackModel : undefined,
329405
329852
  jsonSchema: options2.jsonSchema && typeof options2.jsonSchema === "object" ? options2.jsonSchema : undefined,
329853
+ modelProviders: options2.modelProviders && typeof options2.modelProviders === "object" ? options2.modelProviders : undefined,
329406
329854
  getAppState: appStateStore.getAppState,
329407
329855
  setAppState: appStateStore.setAppState,
329408
329856
  abortController: runtimeState.abortController,
329409
329857
  replayUserMessages: Boolean(options2.replayUserMessages),
329410
329858
  includePartialMessages: Boolean(options2.includePartialMessages),
329411
- agents: Array.isArray(options2.agents) ? options2.agents : [],
329412
- onToolInvoke: typeof options2.onToolInvoke === "function" ? options2.onToolInvoke : undefined
329413
- })) {
329859
+ agents: mergedAgents,
329860
+ onToolInvoke: typeof options2.onToolInvoke === "function" ? options2.onToolInvoke : undefined,
329861
+ setSDKStatus: (status) => {
329862
+ turnStatusStream.enqueue({
329863
+ type: "system",
329864
+ subtype: "status",
329865
+ status,
329866
+ session_id: queryContext.identity.sessionId,
329867
+ uuid: randomUUID24()
329868
+ });
329869
+ }
329870
+ }), turnStatusStream)) {
329414
329871
  if (runtimeState.closed)
329415
329872
  break;
329416
329873
  yield message;
@@ -329584,6 +330041,7 @@ function createSession(options2) {
329584
330041
 
329585
330042
  // src/client.ts
329586
330043
  init_observer();
330044
+ init_backgroundAbortRegistry();
329587
330045
  init_log2();
329588
330046
  init_log2();
329589
330047
  init_coreTypes();
@@ -331986,6 +332444,7 @@ function getTaskByType(type) {
331986
332444
 
331987
332445
  // src/tasks/stopTask.ts
331988
332446
  init_sdkEventQueue();
332447
+ init_backgroundAbortRegistry();
331989
332448
 
331990
332449
  class StopTaskError extends Error {
331991
332450
  code;
@@ -332000,6 +332459,9 @@ async function stopTask(taskId, context4) {
332000
332459
  const appState = getAppState();
332001
332460
  const task = appState.tasks?.[taskId];
332002
332461
  if (!task) {
332462
+ if (abortBackgroundAgentById(taskId)) {
332463
+ return { taskId, taskType: "local_agent", command: undefined };
332464
+ }
332003
332465
  throw new StopTaskError(`No task found with ID: ${taskId}`, "not_found");
332004
332466
  }
332005
332467
  if (task.status !== "running") {
@@ -332387,7 +332849,7 @@ var ExitPlanModeV2Tool = buildToolRuntime({
332387
332849
  }
332388
332850
  };
332389
332851
  });
332390
- const hasTaskTool = isAgentSwarmsEnabled() && context4.options.tools.some((t) => toolMatchesName(t, AGENT_TOOL_NAME3));
332852
+ const hasTaskTool = isAgentSwarmsEnabled() && context4.options.tools.some((t) => toolMatchesName(t, AGENT_TOOL_NAME2));
332391
332853
  return {
332392
332854
  data: {
332393
332855
  plan,
@@ -333328,7 +333790,7 @@ Task completed. Call TaskList now to find your next available task or see if you
333328
333790
  if (verificationNudgeNeeded) {
333329
333791
  resultContent += `
333330
333792
 
333331
- NOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${VERIFICATION_AGENT_TYPE2}"). You cannot self-assign PARTIAL by listing caveats in your summary — only the verifier issues a verdict.`;
333793
+ NOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${VERIFICATION_AGENT_TYPE}"). You cannot self-assign PARTIAL by listing caveats in your summary — only the verifier issues a verdict.`;
333332
333794
  }
333333
333795
  return {
333334
333796
  tool_use_id: toolUseID,
@@ -333549,6 +334011,7 @@ init_state2();
333549
334011
  init_modelAllowlist();
333550
334012
  init_model();
333551
334013
  init_modelContext();
334014
+ init_antModels();
333552
334015
  init_config3();
333553
334016
 
333554
334017
  // src/providers/shared/providerProfiles.ts
@@ -335403,6 +335866,7 @@ export {
335403
335866
  query2 as query,
335404
335867
  parseScopes,
335405
335868
  listSessions,
335869
+ abortBackgroundAgentById as killBackgroundAgent,
335406
335870
  isOAuthTokenExpired,
335407
335871
  getSessionMessages2 as getSessionMessages,
335408
335872
  getSessionInfo,
@@ -335447,4 +335911,4 @@ export {
335447
335911
  AbortError2 as AbortError
335448
335912
  };
335449
335913
 
335450
- //# debugId=43217E45406B3AFE64756E2164756E21
335914
+ //# debugId=1F8F3CFC5E2DADCB64756E2164756E21