@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/cli.mjs CHANGED
@@ -698,6 +698,267 @@ var init_errors = __esm(() => {
698
698
  };
699
699
  });
700
700
 
701
+ // src/constants/envVars.ts
702
+ function envVar(primary, legacy) {
703
+ return legacy !== undefined ? { primary, legacy } : { primary };
704
+ }
705
+ function readEnvVarRaw(key) {
706
+ const { primary, legacy } = ENV_VARS[key];
707
+ const fromPrimary = process.env[primary];
708
+ if (fromPrimary !== undefined)
709
+ return fromPrimary;
710
+ if (legacy !== undefined)
711
+ return process.env[legacy];
712
+ return;
713
+ }
714
+ function resolveEnvVar(key) {
715
+ const { primary, legacy } = ENV_VARS[key];
716
+ const { tryGetQueryContext } = (init_als(), __toCommonJS(exports_als));
717
+ const ctx = tryGetQueryContext();
718
+ if (ctx) {
719
+ const fromQueryPrimary = ctx.config.env.get(primary);
720
+ if (fromQueryPrimary !== undefined)
721
+ return fromQueryPrimary;
722
+ if (legacy !== undefined) {
723
+ const fromQueryLegacy = ctx.config.env.get(legacy);
724
+ if (fromQueryLegacy !== undefined)
725
+ return fromQueryLegacy;
726
+ }
727
+ }
728
+ const fromProcessPrimary = process.env[primary];
729
+ if (fromProcessPrimary !== undefined)
730
+ return fromProcessPrimary;
731
+ if (legacy !== undefined)
732
+ return process.env[legacy];
733
+ return;
734
+ }
735
+ function setEnvVar(key, value) {
736
+ const { primary } = ENV_VARS[key];
737
+ if (value === undefined) {
738
+ delete process.env[primary];
739
+ } else {
740
+ process.env[primary] = value;
741
+ }
742
+ }
743
+ function deleteEnvVar(key) {
744
+ const { primary, legacy } = ENV_VARS[key];
745
+ delete process.env[primary];
746
+ if (legacy !== undefined)
747
+ delete process.env[legacy];
748
+ }
749
+ var ENV_VARS;
750
+ var init_envVars = __esm(() => {
751
+ ENV_VARS = {
752
+ ABLATION_BASELINE: envVar("OPENCOW_ABLATION_BASELINE", "CLAUDE_CODE_ABLATION_BASELINE"),
753
+ ACCESSIBILITY: envVar("OPENCOW_ACCESSIBILITY", "CLAUDE_CODE_ACCESSIBILITY"),
754
+ ACCOUNT_TAGGED_ID: envVar("OPENCOW_ACCOUNT_TAGGED_ID", "CLAUDE_CODE_ACCOUNT_TAGGED_ID"),
755
+ ACCOUNT_UUID: envVar("OPENCOW_ACCOUNT_UUID", "CLAUDE_CODE_ACCOUNT_UUID"),
756
+ ACTION: envVar("OPENCOW_ACTION", "CLAUDE_CODE_ACTION"),
757
+ ADDITIONAL_DIRECTORIES_CLAUDE_MD: envVar("OPENCOW_ADDITIONAL_DIRECTORIES_CLAUDE_MD", "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD"),
758
+ ADDITIONAL_PROTECTION: envVar("OPENCOW_ADDITIONAL_PROTECTION", "CLAUDE_CODE_ADDITIONAL_PROTECTION"),
759
+ AGENT: envVar("OPENCOW_AGENT", "CLAUDE_CODE_AGENT"),
760
+ AGENT_LIST_IN_MESSAGES: envVar("OPENCOW_AGENT_LIST_IN_MESSAGES", "CLAUDE_CODE_AGENT_LIST_IN_MESSAGES"),
761
+ ALWAYS_ENABLE_EFFORT: envVar("OPENCOW_ALWAYS_ENABLE_EFFORT", "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT"),
762
+ API_KEY_FILE_DESCRIPTOR: envVar("OPENCOW_API_KEY_FILE_DESCRIPTOR", "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR"),
763
+ API_KEY_HELPER_TTL_MS: envVar("OPENCOW_API_KEY_HELPER_TTL_MS", "CLAUDE_CODE_API_KEY_HELPER_TTL_MS"),
764
+ ATTRIBUTION_HEADER: envVar("OPENCOW_ATTRIBUTION_HEADER", "CLAUDE_CODE_ATTRIBUTION_HEADER"),
765
+ AUTO_COMPACT_WINDOW: envVar("OPENCOW_AUTO_COMPACT_WINDOW", "CLAUDE_CODE_AUTO_COMPACT_WINDOW"),
766
+ AUTO_CONNECT_IDE: envVar("OPENCOW_AUTO_CONNECT_IDE", "CLAUDE_CODE_AUTO_CONNECT_IDE"),
767
+ AUTO_MODE_MODEL: envVar("OPENCOW_AUTO_MODE_MODEL", "CLAUDE_CODE_AUTO_MODE_MODEL"),
768
+ BASE_REF: envVar("OPENCOW_BASE_REF", "CLAUDE_CODE_BASE_REF"),
769
+ BASH_SANDBOX_SHOW_INDICATOR: envVar("OPENCOW_BASH_SANDBOX_SHOW_INDICATOR", "CLAUDE_CODE_BASH_SANDBOX_SHOW_INDICATOR"),
770
+ BLOCKING_LIMIT_OVERRIDE: envVar("OPENCOW_BLOCKING_LIMIT_OVERRIDE", "CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE"),
771
+ BRIEF: envVar("OPENCOW_BRIEF", "CLAUDE_CODE_BRIEF"),
772
+ BRIEF_UPLOAD: envVar("OPENCOW_BRIEF_UPLOAD", "CLAUDE_CODE_BRIEF_UPLOAD"),
773
+ BUBBLEWRAP: envVar("OPENCOW_BUBBLEWRAP", "CLAUDE_CODE_BUBBLEWRAP"),
774
+ CCR_MIRROR: envVar("OPENCOW_CCR_MIRROR", "CLAUDE_CODE_CCR_MIRROR"),
775
+ CLIENT_CERT: envVar("OPENCOW_CLIENT_CERT", "CLAUDE_CODE_CLIENT_CERT"),
776
+ CLIENT_KEY: envVar("OPENCOW_CLIENT_KEY", "CLAUDE_CODE_CLIENT_KEY"),
777
+ CLIENT_KEY_PASSPHRASE: envVar("OPENCOW_CLIENT_KEY_PASSPHRASE", "CLAUDE_CODE_CLIENT_KEY_PASSPHRASE"),
778
+ COMMIT_LOG: envVar("OPENCOW_COMMIT_LOG", "CLAUDE_CODE_COMMIT_LOG"),
779
+ CONTAINER_ID: envVar("OPENCOW_CONTAINER_ID", "CLAUDE_CODE_CONTAINER_ID"),
780
+ COORDINATOR_MODE: envVar("OPENCOW_COORDINATOR_MODE", "CLAUDE_CODE_COORDINATOR_MODE"),
781
+ COWORKER_TYPE: envVar("OPENCOW_COWORKER_TYPE", "CLAUDE_CODE_COWORKER_TYPE"),
782
+ CUSTOM_OAUTH_URL: envVar("OPENCOW_CUSTOM_OAUTH_URL", "CLAUDE_CODE_CUSTOM_OAUTH_URL"),
783
+ DATADOG_FLUSH_INTERVAL_MS: envVar("OPENCOW_DATADOG_FLUSH_INTERVAL_MS", "CLAUDE_CODE_DATADOG_FLUSH_INTERVAL_MS"),
784
+ DEBUG_LOGS_DIR: envVar("OPENCOW_DEBUG_LOGS_DIR", "CLAUDE_CODE_DEBUG_LOGS_DIR"),
785
+ DEBUG_LOG_LEVEL: envVar("OPENCOW_DEBUG_LOG_LEVEL", "CLAUDE_CODE_DEBUG_LOG_LEVEL"),
786
+ DEBUG_REPAINTS: envVar("OPENCOW_DEBUG_REPAINTS", "CLAUDE_CODE_DEBUG_REPAINTS"),
787
+ DIAGNOSTICS_FILE: envVar("OPENCOW_DIAGNOSTICS_FILE", "CLAUDE_CODE_DIAGNOSTICS_FILE"),
788
+ DISABLE_1M_CONTEXT: envVar("OPENCOW_DISABLE_1M_CONTEXT", "CLAUDE_CODE_DISABLE_1M_CONTEXT"),
789
+ DISABLE_ADAPTIVE_THINKING: envVar("OPENCOW_DISABLE_ADAPTIVE_THINKING", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING"),
790
+ DISABLE_ADVISOR_TOOL: envVar("OPENCOW_DISABLE_ADVISOR_TOOL", "CLAUDE_CODE_DISABLE_ADVISOR_TOOL"),
791
+ DISABLE_ATTACHMENTS: envVar("OPENCOW_DISABLE_ATTACHMENTS", "CLAUDE_CODE_DISABLE_ATTACHMENTS"),
792
+ DISABLE_AUTO_MEMORY: envVar("OPENCOW_DISABLE_AUTO_MEMORY", "CLAUDE_CODE_DISABLE_AUTO_MEMORY"),
793
+ DISABLE_BACKGROUND_TASKS: envVar("OPENCOW_DISABLE_BACKGROUND_TASKS", "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS"),
794
+ DISABLE_CLAUDE_MDS: envVar("OPENCOW_DISABLE_CLAUDE_MDS", "CLAUDE_CODE_DISABLE_CLAUDE_MDS"),
795
+ DISABLE_COMMAND_INJECTION_CHECK: envVar("OPENCOW_DISABLE_COMMAND_INJECTION_CHECK", "CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK"),
796
+ DISABLE_CRON: envVar("OPENCOW_DISABLE_CRON", "CLAUDE_CODE_DISABLE_CRON"),
797
+ DISABLE_EXPERIMENTAL_BETAS: envVar("OPENCOW_DISABLE_EXPERIMENTAL_BETAS", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"),
798
+ DISABLE_FAST_MODE: envVar("OPENCOW_DISABLE_FAST_MODE", "CLAUDE_CODE_DISABLE_FAST_MODE"),
799
+ DISABLE_FEEDBACK_SURVEY: envVar("OPENCOW_DISABLE_FEEDBACK_SURVEY", "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY"),
800
+ DISABLE_FILE_CHECKPOINTING: envVar("OPENCOW_DISABLE_FILE_CHECKPOINTING", "CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING"),
801
+ DISABLE_GIT_INSTRUCTIONS: envVar("OPENCOW_DISABLE_GIT_INSTRUCTIONS", "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS"),
802
+ DISABLE_LEGACY_MODEL_REMAP: envVar("OPENCOW_DISABLE_LEGACY_MODEL_REMAP", "CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP"),
803
+ DISABLE_MESSAGE_ACTIONS: envVar("OPENCOW_DISABLE_MESSAGE_ACTIONS", "CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS"),
804
+ DISABLE_MOUSE: envVar("OPENCOW_DISABLE_MOUSE", "CLAUDE_CODE_DISABLE_MOUSE"),
805
+ DISABLE_MOUSE_CLICKS: envVar("OPENCOW_DISABLE_MOUSE_CLICKS", "CLAUDE_CODE_DISABLE_MOUSE_CLICKS"),
806
+ DISABLE_NONESSENTIAL_TRAFFIC: envVar("OPENCOW_DISABLE_NONESSENTIAL_TRAFFIC", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"),
807
+ DISABLE_NONSTREAMING_FALLBACK: envVar("OPENCOW_DISABLE_NONSTREAMING_FALLBACK", "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK"),
808
+ DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL: envVar("OPENCOW_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL", "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL"),
809
+ DISABLE_POLICY_SKILLS: envVar("OPENCOW_DISABLE_POLICY_SKILLS", "CLAUDE_CODE_DISABLE_POLICY_SKILLS"),
810
+ DISABLE_PRECOMPACT_SKIP: envVar("OPENCOW_DISABLE_PRECOMPACT_SKIP", "CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP"),
811
+ DISABLE_TERMINAL_TITLE: envVar("OPENCOW_DISABLE_TERMINAL_TITLE", "CLAUDE_CODE_DISABLE_TERMINAL_TITLE"),
812
+ DISABLE_THINKING: envVar("OPENCOW_DISABLE_THINKING", "CLAUDE_CODE_DISABLE_THINKING"),
813
+ DISABLE_VIRTUAL_SCROLL: envVar("OPENCOW_DISABLE_VIRTUAL_SCROLL", "CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL"),
814
+ DONT_INHERIT_ENV: envVar("OPENCOW_DONT_INHERIT_ENV", "CLAUDE_CODE_DONT_INHERIT_ENV"),
815
+ DUMP_AUTO_MODE: envVar("OPENCOW_DUMP_AUTO_MODE", "CLAUDE_CODE_DUMP_AUTO_MODE"),
816
+ EAGER_FLUSH: envVar("OPENCOW_EAGER_FLUSH", "CLAUDE_CODE_EAGER_FLUSH"),
817
+ EFFORT_LEVEL: envVar("OPENCOW_EFFORT_LEVEL", "CLAUDE_CODE_EFFORT_LEVEL"),
818
+ EMIT_SESSION_STATE_EVENTS: envVar("OPENCOW_EMIT_SESSION_STATE_EVENTS", "CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS"),
819
+ EMIT_TOOL_USE_SUMMARIES: envVar("OPENCOW_EMIT_TOOL_USE_SUMMARIES", "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES"),
820
+ ENABLE_CFC: envVar("OPENCOW_ENABLE_CFC", "CLAUDE_CODE_ENABLE_CFC"),
821
+ ENABLE_FINE_GRAINED_TOOL_STREAMING: envVar("OPENCOW_ENABLE_FINE_GRAINED_TOOL_STREAMING", "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING"),
822
+ ENABLE_PROMPT_SUGGESTION: envVar("OPENCOW_ENABLE_PROMPT_SUGGESTION", "CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION"),
823
+ ENABLE_SDK_FILE_CHECKPOINTING: envVar("OPENCOW_ENABLE_SDK_FILE_CHECKPOINTING", "CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING"),
824
+ ENABLE_TASKS: envVar("OPENCOW_ENABLE_TASKS", "CLAUDE_CODE_ENABLE_TASKS"),
825
+ ENABLE_TELEMETRY: envVar("OPENCOW_ENABLE_TELEMETRY", "CLAUDE_CODE_ENABLE_TELEMETRY"),
826
+ ENABLE_TOKEN_USAGE_ATTACHMENT: envVar("OPENCOW_ENABLE_TOKEN_USAGE_ATTACHMENT", "CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT"),
827
+ ENABLE_TOOL_SEARCH: envVar("OPENCOW_ENABLE_TOOL_SEARCH", "ENABLE_TOOL_SEARCH"),
828
+ ENABLE_XAA: envVar("OPENCOW_ENABLE_XAA", "CLAUDE_CODE_ENABLE_XAA"),
829
+ ENHANCED_TELEMETRY_BETA: envVar("OPENCOW_ENHANCED_TELEMETRY_BETA", "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA"),
830
+ ENTRYPOINT: envVar("OPENCOW_ENTRYPOINT", "CLAUDE_CODE_ENTRYPOINT"),
831
+ ENVIRONMENT_KIND: envVar("OPENCOW_ENVIRONMENT_KIND", "CLAUDE_CODE_ENVIRONMENT_KIND"),
832
+ ENVIRONMENT_RUNNER_VERSION: envVar("OPENCOW_ENVIRONMENT_RUNNER_VERSION", "CLAUDE_CODE_ENVIRONMENT_RUNNER_VERSION"),
833
+ EXIT_AFTER_FIRST_RENDER: envVar("OPENCOW_EXIT_AFTER_FIRST_RENDER", "CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER"),
834
+ EXIT_AFTER_STOP_DELAY: envVar("OPENCOW_EXIT_AFTER_STOP_DELAY", "CLAUDE_CODE_EXIT_AFTER_STOP_DELAY"),
835
+ EXPERIMENTAL_AGENT_TEAMS: envVar("OPENCOW_EXPERIMENTAL_AGENT_TEAMS", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"),
836
+ EXTRA_BODY: envVar("OPENCOW_EXTRA_BODY", "CLAUDE_CODE_EXTRA_BODY"),
837
+ EXTRA_METADATA: envVar("OPENCOW_EXTRA_METADATA", "CLAUDE_CODE_EXTRA_METADATA"),
838
+ FILE_READ_MAX_OUTPUT_TOKENS: envVar("OPENCOW_FILE_READ_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS"),
839
+ FORCE_FULL_LOGO: envVar("OPENCOW_FORCE_FULL_LOGO", "CLAUDE_CODE_FORCE_FULL_LOGO"),
840
+ FRAME_TIMING_LOG: envVar("OPENCOW_FRAME_TIMING_LOG", "CLAUDE_CODE_FRAME_TIMING_LOG"),
841
+ GB_BASE_URL: envVar("OPENCOW_GB_BASE_URL", "CLAUDE_CODE_GB_BASE_URL"),
842
+ GIT_BASH_PATH: envVar("OPENCOW_GIT_BASH_PATH", "CLAUDE_CODE_GIT_BASH_PATH"),
843
+ GLOB_HIDDEN: envVar("OPENCOW_GLOB_HIDDEN", "CLAUDE_CODE_GLOB_HIDDEN"),
844
+ GLOB_NO_IGNORE: envVar("OPENCOW_GLOB_NO_IGNORE", "CLAUDE_CODE_GLOB_NO_IGNORE"),
845
+ GLOB_TIMEOUT_SECONDS: envVar("OPENCOW_GLOB_TIMEOUT_SECONDS", "CLAUDE_CODE_GLOB_TIMEOUT_SECONDS"),
846
+ HOST_PLATFORM: envVar("OPENCOW_HOST_PLATFORM", "CLAUDE_CODE_HOST_PLATFORM"),
847
+ IDE_HOST_OVERRIDE: envVar("OPENCOW_IDE_HOST_OVERRIDE", "CLAUDE_CODE_IDE_HOST_OVERRIDE"),
848
+ IDE_SKIP_AUTO_INSTALL: envVar("OPENCOW_IDE_SKIP_AUTO_INSTALL", "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL"),
849
+ IDE_SKIP_VALID_CHECK: envVar("OPENCOW_IDE_SKIP_VALID_CHECK", "CLAUDE_CODE_IDE_SKIP_VALID_CHECK"),
850
+ IDLE_THRESHOLD_MINUTES: envVar("OPENCOW_IDLE_THRESHOLD_MINUTES", "CLAUDE_CODE_IDLE_THRESHOLD_MINUTES"),
851
+ IDLE_TOKEN_THRESHOLD: envVar("OPENCOW_IDLE_TOKEN_THRESHOLD", "CLAUDE_CODE_IDLE_TOKEN_THRESHOLD"),
852
+ INCLUDE_PARTIAL_MESSAGES: envVar("OPENCOW_INCLUDE_PARTIAL_MESSAGES", "CLAUDE_CODE_INCLUDE_PARTIAL_MESSAGES"),
853
+ INTERNAL_ARTIFACTORY_BASE_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_BASE_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_BASE_URL"),
854
+ INTERNAL_ARTIFACTORY_REGISTRY_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_REGISTRY_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_REGISTRY_URL"),
855
+ IS_COWORK: envVar("OPENCOW_IS_COWORK", "CLAUDE_CODE_IS_COWORK"),
856
+ JSONL_TRANSCRIPT: envVar("OPENCOW_JSONL_TRANSCRIPT", "CLAUDE_CODE_JSONL_TRANSCRIPT"),
857
+ MANAGED_SETTINGS_PATH: envVar("OPENCOW_MANAGED_SETTINGS_PATH", "CLAUDE_CODE_MANAGED_SETTINGS_PATH"),
858
+ MAX_CONTEXT_TOKENS: envVar("OPENCOW_MAX_CONTEXT_TOKENS", "CLAUDE_CODE_MAX_CONTEXT_TOKENS"),
859
+ MAX_OUTPUT_TOKENS: envVar("OPENCOW_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_MAX_OUTPUT_TOKENS"),
860
+ MAX_RETRIES: envVar("OPENCOW_MAX_RETRIES", "CLAUDE_CODE_MAX_RETRIES"),
861
+ MAX_TOOL_USE_CONCURRENCY: envVar("OPENCOW_MAX_TOOL_USE_CONCURRENCY", "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY"),
862
+ MCP_INSTR_DELTA: envVar("OPENCOW_MCP_INSTR_DELTA", "CLAUDE_CODE_MCP_INSTR_DELTA"),
863
+ MESSAGING_SOCKET: envVar("OPENCOW_MESSAGING_SOCKET", "CLAUDE_CODE_MESSAGING_SOCKET"),
864
+ NEW_INIT: envVar("OPENCOW_NEW_INIT", "CLAUDE_CODE_NEW_INIT"),
865
+ NO_FLICKER: envVar("OPENCOW_NO_FLICKER", "CLAUDE_CODE_NO_FLICKER"),
866
+ OAUTH_CLIENT_ID: envVar("OPENCOW_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_ID"),
867
+ OAUTH_REFRESH_TOKEN: envVar("OPENCOW_OAUTH_REFRESH_TOKEN", "CLAUDE_CODE_OAUTH_REFRESH_TOKEN"),
868
+ OAUTH_SCOPES: envVar("OPENCOW_OAUTH_SCOPES", "CLAUDE_CODE_OAUTH_SCOPES"),
869
+ OAUTH_TOKEN: envVar("OPENCOW_OAUTH_TOKEN", "CLAUDE_CODE_OAUTH_TOKEN"),
870
+ OAUTH_TOKEN_FILE_DESCRIPTOR: envVar("OPENCOW_OAUTH_TOKEN_FILE_DESCRIPTOR", "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR"),
871
+ ORGANIZATION_UUID: envVar("OPENCOW_ORGANIZATION_UUID", "CLAUDE_CODE_ORGANIZATION_UUID"),
872
+ OTEL_FLUSH_TIMEOUT_MS: envVar("OPENCOW_OTEL_FLUSH_TIMEOUT_MS", "CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS"),
873
+ OTEL_HEADERS_HELPER_DEBOUNCE_MS: envVar("OPENCOW_OTEL_HEADERS_HELPER_DEBOUNCE_MS", "CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"),
874
+ OTEL_SHUTDOWN_TIMEOUT_MS: envVar("OPENCOW_OTEL_SHUTDOWN_TIMEOUT_MS", "CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS"),
875
+ OVERRIDE_DATE: envVar("OPENCOW_OVERRIDE_DATE", "CLAUDE_CODE_OVERRIDE_DATE"),
876
+ PERFETTO_TRACE: envVar("OPENCOW_PERFETTO_TRACE", "CLAUDE_CODE_PERFETTO_TRACE"),
877
+ PERFETTO_WRITE_INTERVAL_S: envVar("OPENCOW_PERFETTO_WRITE_INTERVAL_S", "CLAUDE_CODE_PERFETTO_WRITE_INTERVAL_S"),
878
+ PLAN_MODE_INTERVIEW_PHASE: envVar("OPENCOW_PLAN_MODE_INTERVIEW_PHASE", "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE"),
879
+ PLAN_MODE_REQUIRED: envVar("OPENCOW_PLAN_MODE_REQUIRED", "CLAUDE_CODE_PLAN_MODE_REQUIRED"),
880
+ PLAN_V2_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_AGENT_COUNT"),
881
+ PLAN_V2_EXPLORE_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_EXPLORE_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_EXPLORE_AGENT_COUNT"),
882
+ PLUGIN_CACHE_DIR: envVar("OPENCOW_PLUGIN_CACHE_DIR", "CLAUDE_CODE_PLUGIN_CACHE_DIR"),
883
+ PLUGIN_GIT_TIMEOUT_MS: envVar("OPENCOW_PLUGIN_GIT_TIMEOUT_MS", "CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS"),
884
+ PLUGIN_SEED_DIR: envVar("OPENCOW_PLUGIN_SEED_DIR", "CLAUDE_CODE_PLUGIN_SEED_DIR"),
885
+ PLUGIN_USE_ZIP_CACHE: envVar("OPENCOW_PLUGIN_USE_ZIP_CACHE", "CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE"),
886
+ POST_FOR_SESSION_INGRESS_V2: envVar("OPENCOW_POST_FOR_SESSION_INGRESS_V2", "CLAUDE_CODE_POST_FOR_SESSION_INGRESS_V2"),
887
+ PROACTIVE: envVar("OPENCOW_PROACTIVE", "CLAUDE_CODE_PROACTIVE"),
888
+ PROFILE_QUERY: envVar("OPENCOW_PROFILE_QUERY", "CLAUDE_CODE_PROFILE_QUERY"),
889
+ PROFILE_STARTUP: envVar("OPENCOW_PROFILE_STARTUP", "CLAUDE_CODE_PROFILE_STARTUP"),
890
+ PROVIDER_MANAGED_BY_HOST: envVar("OPENCOW_PROVIDER_MANAGED_BY_HOST", "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST"),
891
+ PROVIDER_PROFILE_ENV_APPLIED: envVar("OPENCOW_PROVIDER_PROFILE_ENV_APPLIED", "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED"),
892
+ PROXY_RESOLVES_HOSTS: envVar("OPENCOW_PROXY_RESOLVES_HOSTS", "CLAUDE_CODE_PROXY_RESOLVES_HOSTS"),
893
+ PWSH_PARSE_TIMEOUT_MS: envVar("OPENCOW_PWSH_PARSE_TIMEOUT_MS", "CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS"),
894
+ QUESTION_PREVIEW_FORMAT: envVar("OPENCOW_QUESTION_PREVIEW_FORMAT", "CLAUDE_CODE_QUESTION_PREVIEW_FORMAT"),
895
+ REMOTE: envVar("OPENCOW_REMOTE", "CLAUDE_CODE_REMOTE"),
896
+ REMOTE_ENVIRONMENT_TYPE: envVar("OPENCOW_REMOTE_ENVIRONMENT_TYPE", "CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE"),
897
+ REMOTE_MEMORY_DIR: envVar("OPENCOW_REMOTE_MEMORY_DIR", "CLAUDE_CODE_REMOTE_MEMORY_DIR"),
898
+ REMOTE_SEND_KEEPALIVES: envVar("OPENCOW_REMOTE_SEND_KEEPALIVES", "CLAUDE_CODE_REMOTE_SEND_KEEPALIVES"),
899
+ REMOTE_SESSION_ID: envVar("OPENCOW_REMOTE_SESSION_ID", "CLAUDE_CODE_REMOTE_SESSION_ID"),
900
+ REPL: envVar("OPENCOW_REPL", "CLAUDE_CODE_REPL"),
901
+ RESUME_INTERRUPTED_TURN: envVar("OPENCOW_RESUME_INTERRUPTED_TURN", "CLAUDE_CODE_RESUME_INTERRUPTED_TURN"),
902
+ SAVE_HOOK_ADDITIONAL_CONTEXT: envVar("OPENCOW_SAVE_HOOK_ADDITIONAL_CONTEXT", "CLAUDE_CODE_SAVE_HOOK_ADDITIONAL_CONTEXT"),
903
+ SCROLL_SPEED: envVar("OPENCOW_SCROLL_SPEED", "CLAUDE_CODE_SCROLL_SPEED"),
904
+ SESSIONEND_HOOKS_TIMEOUT_MS: envVar("OPENCOW_SESSIONEND_HOOKS_TIMEOUT_MS", "CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS"),
905
+ SESSION_ACCESS_TOKEN: envVar("OPENCOW_SESSION_ACCESS_TOKEN", "CLAUDE_CODE_SESSION_ACCESS_TOKEN"),
906
+ SESSION_ID: envVar("OPENCOW_SESSION_ID", "CLAUDE_CODE_SESSION_ID"),
907
+ SESSION_KIND: envVar("OPENCOW_SESSION_KIND", "CLAUDE_CODE_SESSION_KIND"),
908
+ SESSION_LOG: envVar("OPENCOW_SESSION_LOG", "CLAUDE_CODE_SESSION_LOG"),
909
+ SESSION_NAME: envVar("OPENCOW_SESSION_NAME", "CLAUDE_CODE_SESSION_NAME"),
910
+ SHELL: envVar("OPENCOW_SHELL", "CLAUDE_CODE_SHELL"),
911
+ SHELL_PREFIX: envVar("OPENCOW_SHELL_PREFIX", "CLAUDE_CODE_SHELL_PREFIX"),
912
+ SIMPLE: envVar("OPENCOW_SIMPLE", "CLAUDE_CODE_SIMPLE"),
913
+ SKIP_BEDROCK_AUTH: envVar("OPENCOW_SKIP_BEDROCK_AUTH", "CLAUDE_CODE_SKIP_BEDROCK_AUTH"),
914
+ SKIP_FAST_MODE_NETWORK_ERRORS: envVar("OPENCOW_SKIP_FAST_MODE_NETWORK_ERRORS", "CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS"),
915
+ SKIP_FOUNDRY_AUTH: envVar("OPENCOW_SKIP_FOUNDRY_AUTH", "CLAUDE_CODE_SKIP_FOUNDRY_AUTH"),
916
+ SKIP_PROMPT_HISTORY: envVar("OPENCOW_SKIP_PROMPT_HISTORY", "CLAUDE_CODE_SKIP_PROMPT_HISTORY"),
917
+ SKIP_VERTEX_AUTH: envVar("OPENCOW_SKIP_VERTEX_AUTH", "CLAUDE_CODE_SKIP_VERTEX_AUTH"),
918
+ SLOW_OPERATION_THRESHOLD_MS: envVar("OPENCOW_SLOW_OPERATION_THRESHOLD_MS", "CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS"),
919
+ SSE_PORT: envVar("OPENCOW_SSE_PORT", "CLAUDE_CODE_SSE_PORT"),
920
+ STALL_TIMEOUT_MS_FOR_TESTING: envVar("OPENCOW_STALL_TIMEOUT_MS_FOR_TESTING", "CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING"),
921
+ STREAMLINED_OUTPUT: envVar("OPENCOW_STREAMLINED_OUTPUT", "CLAUDE_CODE_STREAMLINED_OUTPUT"),
922
+ SUBAGENT_MODEL: envVar("OPENCOW_SUBAGENT_MODEL", "CLAUDE_CODE_SUBAGENT_MODEL"),
923
+ SUBPROCESS_ENV_SCRUB: envVar("OPENCOW_SUBPROCESS_ENV_SCRUB", "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB"),
924
+ SYNC_PLUGIN_INSTALL: envVar("OPENCOW_SYNC_PLUGIN_INSTALL", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL"),
925
+ SYNC_PLUGIN_INSTALL_TIMEOUT_MS: envVar("OPENCOW_SYNC_PLUGIN_INSTALL_TIMEOUT_MS", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS"),
926
+ SYNTAX_HIGHLIGHT: envVar("OPENCOW_SYNTAX_HIGHLIGHT", "CLAUDE_CODE_SYNTAX_HIGHLIGHT"),
927
+ TAGS: envVar("OPENCOW_TAGS", "CLAUDE_CODE_TAGS"),
928
+ TASK_LIST_ID: envVar("OPENCOW_TASK_LIST_ID", "CLAUDE_CODE_TASK_LIST_ID"),
929
+ TEST_FIXTURES_ROOT: envVar("OPENCOW_TEST_FIXTURES_ROOT", "CLAUDE_CODE_TEST_FIXTURES_ROOT"),
930
+ TMPDIR: envVar("OPENCOW_TMPDIR", "CLAUDE_CODE_TMPDIR"),
931
+ TMUX_PREFIX: envVar("OPENCOW_TMUX_PREFIX", "CLAUDE_CODE_TMUX_PREFIX"),
932
+ TMUX_PREFIX_CONFLICTS: envVar("OPENCOW_TMUX_PREFIX_CONFLICTS", "CLAUDE_CODE_TMUX_PREFIX_CONFLICTS"),
933
+ TMUX_SESSION: envVar("OPENCOW_TMUX_SESSION", "CLAUDE_CODE_TMUX_SESSION"),
934
+ TMUX_TRUECOLOR: envVar("OPENCOW_TMUX_TRUECOLOR", "CLAUDE_CODE_TMUX_TRUECOLOR"),
935
+ TWO_STAGE_CLASSIFIER: envVar("OPENCOW_TWO_STAGE_CLASSIFIER", "CLAUDE_CODE_TWO_STAGE_CLASSIFIER"),
936
+ UNATTENDED_RETRY: envVar("OPENCOW_UNATTENDED_RETRY", "CLAUDE_CODE_UNATTENDED_RETRY"),
937
+ USER_EMAIL: envVar("OPENCOW_USER_EMAIL", "CLAUDE_CODE_USER_EMAIL"),
938
+ USE_BEDROCK: envVar("OPENCOW_USE_BEDROCK", "CLAUDE_CODE_USE_BEDROCK"),
939
+ USE_CCR_V2: envVar("OPENCOW_USE_CCR_V2", "CLAUDE_CODE_USE_CCR_V2"),
940
+ USE_COWORK_PLUGINS: envVar("OPENCOW_USE_COWORK_PLUGINS", "CLAUDE_CODE_USE_COWORK_PLUGINS"),
941
+ USE_FOUNDRY: envVar("OPENCOW_USE_FOUNDRY", "CLAUDE_CODE_USE_FOUNDRY"),
942
+ USE_GEMINI: envVar("OPENCOW_USE_GEMINI", "CLAUDE_CODE_USE_GEMINI"),
943
+ USE_GITHUB: envVar("OPENCOW_USE_GITHUB", "CLAUDE_CODE_USE_GITHUB"),
944
+ USE_NATIVE_FILE_SEARCH: envVar("OPENCOW_USE_NATIVE_FILE_SEARCH", "CLAUDE_CODE_USE_NATIVE_FILE_SEARCH"),
945
+ USE_OPENAI: envVar("OPENCOW_USE_OPENAI", "CLAUDE_CODE_USE_OPENAI"),
946
+ USE_POWERSHELL_TOOL: envVar("OPENCOW_USE_POWERSHELL_TOOL", "CLAUDE_CODE_USE_POWERSHELL_TOOL"),
947
+ USE_VERTEX: envVar("OPENCOW_USE_VERTEX", "CLAUDE_CODE_USE_VERTEX"),
948
+ VERIFY_PLAN: envVar("OPENCOW_VERIFY_PLAN", "CLAUDE_CODE_VERIFY_PLAN"),
949
+ WEBSOCKET_AUTH_FILE_DESCRIPTOR: envVar("OPENCOW_WEBSOCKET_AUTH_FILE_DESCRIPTOR", "CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR"),
950
+ WORKER_EPOCH: envVar("OPENCOW_WORKER_EPOCH", "CLAUDE_CODE_WORKER_EPOCH"),
951
+ WORKSPACE_HOST_PATHS: envVar("OPENCOW_WORKSPACE_HOST_PATHS", "CLAUDE_CODE_WORKSPACE_HOST_PATHS"),
952
+ MEMORY_EXTRA_GUIDELINES: envVar("OPENCOW_MEMORY_EXTRA_GUIDELINES", "CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES"),
953
+ MEMORY_PATH_OVERRIDE: envVar("OPENCOW_MEMORY_PATH_OVERRIDE", "CLAUDE_COWORK_MEMORY_PATH_OVERRIDE"),
954
+ DEBUG_INPUT: envVar("OPENCOW_DEBUG_INPUT"),
955
+ DISABLE_CO_AUTHORED_BY: envVar("OPENCOW_DISABLE_CO_AUTHORED_BY"),
956
+ DISABLE_EARLY_INPUT: envVar("OPENCOW_DISABLE_EARLY_INPUT"),
957
+ ENABLE_EXTENDED_KEYS: envVar("OPENCOW_ENABLE_EXTENDED_KEYS"),
958
+ USE_READABLE_STDIN: envVar("OPENCOW_USE_READABLE_STDIN")
959
+ };
960
+ });
961
+
701
962
  // src/session/layout/paths.ts
702
963
  var exports_paths = {};
703
964
  __export(exports_paths, {
@@ -7874,266 +8135,6 @@ var init_debug = __esm(() => {
7874
8135
  });
7875
8136
  });
7876
8137
 
7877
- // src/constants/envVars.ts
7878
- function envVar(primary, legacy) {
7879
- return legacy !== undefined ? { primary, legacy } : { primary };
7880
- }
7881
- function readEnvVarRaw(key) {
7882
- const { primary, legacy } = ENV_VARS[key];
7883
- const fromPrimary = process.env[primary];
7884
- if (fromPrimary !== undefined)
7885
- return fromPrimary;
7886
- if (legacy !== undefined)
7887
- return process.env[legacy];
7888
- return;
7889
- }
7890
- function resolveEnvVar(key) {
7891
- const { primary, legacy } = ENV_VARS[key];
7892
- const { tryGetQueryContext: tryGetQueryContext2 } = (init_als(), __toCommonJS(exports_als));
7893
- const ctx = tryGetQueryContext2();
7894
- if (ctx) {
7895
- const fromQueryPrimary = ctx.config.env.get(primary);
7896
- if (fromQueryPrimary !== undefined)
7897
- return fromQueryPrimary;
7898
- if (legacy !== undefined) {
7899
- const fromQueryLegacy = ctx.config.env.get(legacy);
7900
- if (fromQueryLegacy !== undefined)
7901
- return fromQueryLegacy;
7902
- }
7903
- }
7904
- const fromProcessPrimary = process.env[primary];
7905
- if (fromProcessPrimary !== undefined)
7906
- return fromProcessPrimary;
7907
- if (legacy !== undefined)
7908
- return process.env[legacy];
7909
- return;
7910
- }
7911
- function setEnvVar(key, value) {
7912
- const { primary } = ENV_VARS[key];
7913
- if (value === undefined) {
7914
- delete process.env[primary];
7915
- } else {
7916
- process.env[primary] = value;
7917
- }
7918
- }
7919
- function deleteEnvVar(key) {
7920
- const { primary, legacy } = ENV_VARS[key];
7921
- delete process.env[primary];
7922
- if (legacy !== undefined)
7923
- delete process.env[legacy];
7924
- }
7925
- var ENV_VARS;
7926
- var init_envVars = __esm(() => {
7927
- ENV_VARS = {
7928
- ABLATION_BASELINE: envVar("OPENCOW_ABLATION_BASELINE", "CLAUDE_CODE_ABLATION_BASELINE"),
7929
- ACCESSIBILITY: envVar("OPENCOW_ACCESSIBILITY", "CLAUDE_CODE_ACCESSIBILITY"),
7930
- ACCOUNT_TAGGED_ID: envVar("OPENCOW_ACCOUNT_TAGGED_ID", "CLAUDE_CODE_ACCOUNT_TAGGED_ID"),
7931
- ACCOUNT_UUID: envVar("OPENCOW_ACCOUNT_UUID", "CLAUDE_CODE_ACCOUNT_UUID"),
7932
- ACTION: envVar("OPENCOW_ACTION", "CLAUDE_CODE_ACTION"),
7933
- ADDITIONAL_DIRECTORIES_CLAUDE_MD: envVar("OPENCOW_ADDITIONAL_DIRECTORIES_CLAUDE_MD", "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD"),
7934
- ADDITIONAL_PROTECTION: envVar("OPENCOW_ADDITIONAL_PROTECTION", "CLAUDE_CODE_ADDITIONAL_PROTECTION"),
7935
- AGENT: envVar("OPENCOW_AGENT", "CLAUDE_CODE_AGENT"),
7936
- AGENT_LIST_IN_MESSAGES: envVar("OPENCOW_AGENT_LIST_IN_MESSAGES", "CLAUDE_CODE_AGENT_LIST_IN_MESSAGES"),
7937
- ALWAYS_ENABLE_EFFORT: envVar("OPENCOW_ALWAYS_ENABLE_EFFORT", "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT"),
7938
- API_KEY_FILE_DESCRIPTOR: envVar("OPENCOW_API_KEY_FILE_DESCRIPTOR", "CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR"),
7939
- API_KEY_HELPER_TTL_MS: envVar("OPENCOW_API_KEY_HELPER_TTL_MS", "CLAUDE_CODE_API_KEY_HELPER_TTL_MS"),
7940
- ATTRIBUTION_HEADER: envVar("OPENCOW_ATTRIBUTION_HEADER", "CLAUDE_CODE_ATTRIBUTION_HEADER"),
7941
- AUTO_COMPACT_WINDOW: envVar("OPENCOW_AUTO_COMPACT_WINDOW", "CLAUDE_CODE_AUTO_COMPACT_WINDOW"),
7942
- AUTO_CONNECT_IDE: envVar("OPENCOW_AUTO_CONNECT_IDE", "CLAUDE_CODE_AUTO_CONNECT_IDE"),
7943
- AUTO_MODE_MODEL: envVar("OPENCOW_AUTO_MODE_MODEL", "CLAUDE_CODE_AUTO_MODE_MODEL"),
7944
- BASE_REF: envVar("OPENCOW_BASE_REF", "CLAUDE_CODE_BASE_REF"),
7945
- BASH_SANDBOX_SHOW_INDICATOR: envVar("OPENCOW_BASH_SANDBOX_SHOW_INDICATOR", "CLAUDE_CODE_BASH_SANDBOX_SHOW_INDICATOR"),
7946
- BLOCKING_LIMIT_OVERRIDE: envVar("OPENCOW_BLOCKING_LIMIT_OVERRIDE", "CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE"),
7947
- BRIEF: envVar("OPENCOW_BRIEF", "CLAUDE_CODE_BRIEF"),
7948
- BRIEF_UPLOAD: envVar("OPENCOW_BRIEF_UPLOAD", "CLAUDE_CODE_BRIEF_UPLOAD"),
7949
- BUBBLEWRAP: envVar("OPENCOW_BUBBLEWRAP", "CLAUDE_CODE_BUBBLEWRAP"),
7950
- CCR_MIRROR: envVar("OPENCOW_CCR_MIRROR", "CLAUDE_CODE_CCR_MIRROR"),
7951
- CLIENT_CERT: envVar("OPENCOW_CLIENT_CERT", "CLAUDE_CODE_CLIENT_CERT"),
7952
- CLIENT_KEY: envVar("OPENCOW_CLIENT_KEY", "CLAUDE_CODE_CLIENT_KEY"),
7953
- CLIENT_KEY_PASSPHRASE: envVar("OPENCOW_CLIENT_KEY_PASSPHRASE", "CLAUDE_CODE_CLIENT_KEY_PASSPHRASE"),
7954
- COMMIT_LOG: envVar("OPENCOW_COMMIT_LOG", "CLAUDE_CODE_COMMIT_LOG"),
7955
- CONTAINER_ID: envVar("OPENCOW_CONTAINER_ID", "CLAUDE_CODE_CONTAINER_ID"),
7956
- COORDINATOR_MODE: envVar("OPENCOW_COORDINATOR_MODE", "CLAUDE_CODE_COORDINATOR_MODE"),
7957
- COWORKER_TYPE: envVar("OPENCOW_COWORKER_TYPE", "CLAUDE_CODE_COWORKER_TYPE"),
7958
- CUSTOM_OAUTH_URL: envVar("OPENCOW_CUSTOM_OAUTH_URL", "CLAUDE_CODE_CUSTOM_OAUTH_URL"),
7959
- DATADOG_FLUSH_INTERVAL_MS: envVar("OPENCOW_DATADOG_FLUSH_INTERVAL_MS", "CLAUDE_CODE_DATADOG_FLUSH_INTERVAL_MS"),
7960
- DEBUG_LOGS_DIR: envVar("OPENCOW_DEBUG_LOGS_DIR", "CLAUDE_CODE_DEBUG_LOGS_DIR"),
7961
- DEBUG_LOG_LEVEL: envVar("OPENCOW_DEBUG_LOG_LEVEL", "CLAUDE_CODE_DEBUG_LOG_LEVEL"),
7962
- DEBUG_REPAINTS: envVar("OPENCOW_DEBUG_REPAINTS", "CLAUDE_CODE_DEBUG_REPAINTS"),
7963
- DIAGNOSTICS_FILE: envVar("OPENCOW_DIAGNOSTICS_FILE", "CLAUDE_CODE_DIAGNOSTICS_FILE"),
7964
- DISABLE_1M_CONTEXT: envVar("OPENCOW_DISABLE_1M_CONTEXT", "CLAUDE_CODE_DISABLE_1M_CONTEXT"),
7965
- DISABLE_ADAPTIVE_THINKING: envVar("OPENCOW_DISABLE_ADAPTIVE_THINKING", "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING"),
7966
- DISABLE_ADVISOR_TOOL: envVar("OPENCOW_DISABLE_ADVISOR_TOOL", "CLAUDE_CODE_DISABLE_ADVISOR_TOOL"),
7967
- DISABLE_ATTACHMENTS: envVar("OPENCOW_DISABLE_ATTACHMENTS", "CLAUDE_CODE_DISABLE_ATTACHMENTS"),
7968
- DISABLE_AUTO_MEMORY: envVar("OPENCOW_DISABLE_AUTO_MEMORY", "CLAUDE_CODE_DISABLE_AUTO_MEMORY"),
7969
- DISABLE_BACKGROUND_TASKS: envVar("OPENCOW_DISABLE_BACKGROUND_TASKS", "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS"),
7970
- DISABLE_CLAUDE_MDS: envVar("OPENCOW_DISABLE_CLAUDE_MDS", "CLAUDE_CODE_DISABLE_CLAUDE_MDS"),
7971
- DISABLE_COMMAND_INJECTION_CHECK: envVar("OPENCOW_DISABLE_COMMAND_INJECTION_CHECK", "CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK"),
7972
- DISABLE_CRON: envVar("OPENCOW_DISABLE_CRON", "CLAUDE_CODE_DISABLE_CRON"),
7973
- DISABLE_EXPERIMENTAL_BETAS: envVar("OPENCOW_DISABLE_EXPERIMENTAL_BETAS", "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS"),
7974
- DISABLE_FAST_MODE: envVar("OPENCOW_DISABLE_FAST_MODE", "CLAUDE_CODE_DISABLE_FAST_MODE"),
7975
- DISABLE_FEEDBACK_SURVEY: envVar("OPENCOW_DISABLE_FEEDBACK_SURVEY", "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY"),
7976
- DISABLE_FILE_CHECKPOINTING: envVar("OPENCOW_DISABLE_FILE_CHECKPOINTING", "CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING"),
7977
- DISABLE_GIT_INSTRUCTIONS: envVar("OPENCOW_DISABLE_GIT_INSTRUCTIONS", "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS"),
7978
- DISABLE_LEGACY_MODEL_REMAP: envVar("OPENCOW_DISABLE_LEGACY_MODEL_REMAP", "CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP"),
7979
- DISABLE_MESSAGE_ACTIONS: envVar("OPENCOW_DISABLE_MESSAGE_ACTIONS", "CLAUDE_CODE_DISABLE_MESSAGE_ACTIONS"),
7980
- DISABLE_MOUSE: envVar("OPENCOW_DISABLE_MOUSE", "CLAUDE_CODE_DISABLE_MOUSE"),
7981
- DISABLE_MOUSE_CLICKS: envVar("OPENCOW_DISABLE_MOUSE_CLICKS", "CLAUDE_CODE_DISABLE_MOUSE_CLICKS"),
7982
- DISABLE_NONESSENTIAL_TRAFFIC: envVar("OPENCOW_DISABLE_NONESSENTIAL_TRAFFIC", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC"),
7983
- DISABLE_NONSTREAMING_FALLBACK: envVar("OPENCOW_DISABLE_NONSTREAMING_FALLBACK", "CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK"),
7984
- DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL: envVar("OPENCOW_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL", "CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL"),
7985
- DISABLE_POLICY_SKILLS: envVar("OPENCOW_DISABLE_POLICY_SKILLS", "CLAUDE_CODE_DISABLE_POLICY_SKILLS"),
7986
- DISABLE_PRECOMPACT_SKIP: envVar("OPENCOW_DISABLE_PRECOMPACT_SKIP", "CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP"),
7987
- DISABLE_TERMINAL_TITLE: envVar("OPENCOW_DISABLE_TERMINAL_TITLE", "CLAUDE_CODE_DISABLE_TERMINAL_TITLE"),
7988
- DISABLE_THINKING: envVar("OPENCOW_DISABLE_THINKING", "CLAUDE_CODE_DISABLE_THINKING"),
7989
- DISABLE_VIRTUAL_SCROLL: envVar("OPENCOW_DISABLE_VIRTUAL_SCROLL", "CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL"),
7990
- DONT_INHERIT_ENV: envVar("OPENCOW_DONT_INHERIT_ENV", "CLAUDE_CODE_DONT_INHERIT_ENV"),
7991
- DUMP_AUTO_MODE: envVar("OPENCOW_DUMP_AUTO_MODE", "CLAUDE_CODE_DUMP_AUTO_MODE"),
7992
- EAGER_FLUSH: envVar("OPENCOW_EAGER_FLUSH", "CLAUDE_CODE_EAGER_FLUSH"),
7993
- EFFORT_LEVEL: envVar("OPENCOW_EFFORT_LEVEL", "CLAUDE_CODE_EFFORT_LEVEL"),
7994
- EMIT_SESSION_STATE_EVENTS: envVar("OPENCOW_EMIT_SESSION_STATE_EVENTS", "CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS"),
7995
- EMIT_TOOL_USE_SUMMARIES: envVar("OPENCOW_EMIT_TOOL_USE_SUMMARIES", "CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES"),
7996
- ENABLE_CFC: envVar("OPENCOW_ENABLE_CFC", "CLAUDE_CODE_ENABLE_CFC"),
7997
- ENABLE_FINE_GRAINED_TOOL_STREAMING: envVar("OPENCOW_ENABLE_FINE_GRAINED_TOOL_STREAMING", "CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING"),
7998
- ENABLE_PROMPT_SUGGESTION: envVar("OPENCOW_ENABLE_PROMPT_SUGGESTION", "CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION"),
7999
- ENABLE_SDK_FILE_CHECKPOINTING: envVar("OPENCOW_ENABLE_SDK_FILE_CHECKPOINTING", "CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING"),
8000
- ENABLE_TASKS: envVar("OPENCOW_ENABLE_TASKS", "CLAUDE_CODE_ENABLE_TASKS"),
8001
- ENABLE_TELEMETRY: envVar("OPENCOW_ENABLE_TELEMETRY", "CLAUDE_CODE_ENABLE_TELEMETRY"),
8002
- ENABLE_TOKEN_USAGE_ATTACHMENT: envVar("OPENCOW_ENABLE_TOKEN_USAGE_ATTACHMENT", "CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT"),
8003
- ENABLE_XAA: envVar("OPENCOW_ENABLE_XAA", "CLAUDE_CODE_ENABLE_XAA"),
8004
- ENHANCED_TELEMETRY_BETA: envVar("OPENCOW_ENHANCED_TELEMETRY_BETA", "CLAUDE_CODE_ENHANCED_TELEMETRY_BETA"),
8005
- ENTRYPOINT: envVar("OPENCOW_ENTRYPOINT", "CLAUDE_CODE_ENTRYPOINT"),
8006
- ENVIRONMENT_KIND: envVar("OPENCOW_ENVIRONMENT_KIND", "CLAUDE_CODE_ENVIRONMENT_KIND"),
8007
- ENVIRONMENT_RUNNER_VERSION: envVar("OPENCOW_ENVIRONMENT_RUNNER_VERSION", "CLAUDE_CODE_ENVIRONMENT_RUNNER_VERSION"),
8008
- EXIT_AFTER_FIRST_RENDER: envVar("OPENCOW_EXIT_AFTER_FIRST_RENDER", "CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER"),
8009
- EXIT_AFTER_STOP_DELAY: envVar("OPENCOW_EXIT_AFTER_STOP_DELAY", "CLAUDE_CODE_EXIT_AFTER_STOP_DELAY"),
8010
- EXPERIMENTAL_AGENT_TEAMS: envVar("OPENCOW_EXPERIMENTAL_AGENT_TEAMS", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS"),
8011
- EXTRA_BODY: envVar("OPENCOW_EXTRA_BODY", "CLAUDE_CODE_EXTRA_BODY"),
8012
- EXTRA_METADATA: envVar("OPENCOW_EXTRA_METADATA", "CLAUDE_CODE_EXTRA_METADATA"),
8013
- FILE_READ_MAX_OUTPUT_TOKENS: envVar("OPENCOW_FILE_READ_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS"),
8014
- FORCE_FULL_LOGO: envVar("OPENCOW_FORCE_FULL_LOGO", "CLAUDE_CODE_FORCE_FULL_LOGO"),
8015
- FRAME_TIMING_LOG: envVar("OPENCOW_FRAME_TIMING_LOG", "CLAUDE_CODE_FRAME_TIMING_LOG"),
8016
- GB_BASE_URL: envVar("OPENCOW_GB_BASE_URL", "CLAUDE_CODE_GB_BASE_URL"),
8017
- GIT_BASH_PATH: envVar("OPENCOW_GIT_BASH_PATH", "CLAUDE_CODE_GIT_BASH_PATH"),
8018
- GLOB_HIDDEN: envVar("OPENCOW_GLOB_HIDDEN", "CLAUDE_CODE_GLOB_HIDDEN"),
8019
- GLOB_NO_IGNORE: envVar("OPENCOW_GLOB_NO_IGNORE", "CLAUDE_CODE_GLOB_NO_IGNORE"),
8020
- GLOB_TIMEOUT_SECONDS: envVar("OPENCOW_GLOB_TIMEOUT_SECONDS", "CLAUDE_CODE_GLOB_TIMEOUT_SECONDS"),
8021
- HOST_PLATFORM: envVar("OPENCOW_HOST_PLATFORM", "CLAUDE_CODE_HOST_PLATFORM"),
8022
- IDE_HOST_OVERRIDE: envVar("OPENCOW_IDE_HOST_OVERRIDE", "CLAUDE_CODE_IDE_HOST_OVERRIDE"),
8023
- IDE_SKIP_AUTO_INSTALL: envVar("OPENCOW_IDE_SKIP_AUTO_INSTALL", "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL"),
8024
- IDE_SKIP_VALID_CHECK: envVar("OPENCOW_IDE_SKIP_VALID_CHECK", "CLAUDE_CODE_IDE_SKIP_VALID_CHECK"),
8025
- IDLE_THRESHOLD_MINUTES: envVar("OPENCOW_IDLE_THRESHOLD_MINUTES", "CLAUDE_CODE_IDLE_THRESHOLD_MINUTES"),
8026
- IDLE_TOKEN_THRESHOLD: envVar("OPENCOW_IDLE_TOKEN_THRESHOLD", "CLAUDE_CODE_IDLE_TOKEN_THRESHOLD"),
8027
- INCLUDE_PARTIAL_MESSAGES: envVar("OPENCOW_INCLUDE_PARTIAL_MESSAGES", "CLAUDE_CODE_INCLUDE_PARTIAL_MESSAGES"),
8028
- INTERNAL_ARTIFACTORY_BASE_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_BASE_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_BASE_URL"),
8029
- INTERNAL_ARTIFACTORY_REGISTRY_URL: envVar("OPENCOW_INTERNAL_ARTIFACTORY_REGISTRY_URL", "CLAUDE_CODE_INTERNAL_ARTIFACTORY_REGISTRY_URL"),
8030
- IS_COWORK: envVar("OPENCOW_IS_COWORK", "CLAUDE_CODE_IS_COWORK"),
8031
- JSONL_TRANSCRIPT: envVar("OPENCOW_JSONL_TRANSCRIPT", "CLAUDE_CODE_JSONL_TRANSCRIPT"),
8032
- MANAGED_SETTINGS_PATH: envVar("OPENCOW_MANAGED_SETTINGS_PATH", "CLAUDE_CODE_MANAGED_SETTINGS_PATH"),
8033
- MAX_CONTEXT_TOKENS: envVar("OPENCOW_MAX_CONTEXT_TOKENS", "CLAUDE_CODE_MAX_CONTEXT_TOKENS"),
8034
- MAX_OUTPUT_TOKENS: envVar("OPENCOW_MAX_OUTPUT_TOKENS", "CLAUDE_CODE_MAX_OUTPUT_TOKENS"),
8035
- MAX_RETRIES: envVar("OPENCOW_MAX_RETRIES", "CLAUDE_CODE_MAX_RETRIES"),
8036
- MAX_TOOL_USE_CONCURRENCY: envVar("OPENCOW_MAX_TOOL_USE_CONCURRENCY", "CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY"),
8037
- MCP_INSTR_DELTA: envVar("OPENCOW_MCP_INSTR_DELTA", "CLAUDE_CODE_MCP_INSTR_DELTA"),
8038
- MESSAGING_SOCKET: envVar("OPENCOW_MESSAGING_SOCKET", "CLAUDE_CODE_MESSAGING_SOCKET"),
8039
- NEW_INIT: envVar("OPENCOW_NEW_INIT", "CLAUDE_CODE_NEW_INIT"),
8040
- NO_FLICKER: envVar("OPENCOW_NO_FLICKER", "CLAUDE_CODE_NO_FLICKER"),
8041
- OAUTH_CLIENT_ID: envVar("OPENCOW_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_ID"),
8042
- OAUTH_REFRESH_TOKEN: envVar("OPENCOW_OAUTH_REFRESH_TOKEN", "CLAUDE_CODE_OAUTH_REFRESH_TOKEN"),
8043
- OAUTH_SCOPES: envVar("OPENCOW_OAUTH_SCOPES", "CLAUDE_CODE_OAUTH_SCOPES"),
8044
- OAUTH_TOKEN: envVar("OPENCOW_OAUTH_TOKEN", "CLAUDE_CODE_OAUTH_TOKEN"),
8045
- OAUTH_TOKEN_FILE_DESCRIPTOR: envVar("OPENCOW_OAUTH_TOKEN_FILE_DESCRIPTOR", "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR"),
8046
- ORGANIZATION_UUID: envVar("OPENCOW_ORGANIZATION_UUID", "CLAUDE_CODE_ORGANIZATION_UUID"),
8047
- OTEL_FLUSH_TIMEOUT_MS: envVar("OPENCOW_OTEL_FLUSH_TIMEOUT_MS", "CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS"),
8048
- OTEL_HEADERS_HELPER_DEBOUNCE_MS: envVar("OPENCOW_OTEL_HEADERS_HELPER_DEBOUNCE_MS", "CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS"),
8049
- OTEL_SHUTDOWN_TIMEOUT_MS: envVar("OPENCOW_OTEL_SHUTDOWN_TIMEOUT_MS", "CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS"),
8050
- OVERRIDE_DATE: envVar("OPENCOW_OVERRIDE_DATE", "CLAUDE_CODE_OVERRIDE_DATE"),
8051
- PERFETTO_TRACE: envVar("OPENCOW_PERFETTO_TRACE", "CLAUDE_CODE_PERFETTO_TRACE"),
8052
- PERFETTO_WRITE_INTERVAL_S: envVar("OPENCOW_PERFETTO_WRITE_INTERVAL_S", "CLAUDE_CODE_PERFETTO_WRITE_INTERVAL_S"),
8053
- PLAN_MODE_INTERVIEW_PHASE: envVar("OPENCOW_PLAN_MODE_INTERVIEW_PHASE", "CLAUDE_CODE_PLAN_MODE_INTERVIEW_PHASE"),
8054
- PLAN_MODE_REQUIRED: envVar("OPENCOW_PLAN_MODE_REQUIRED", "CLAUDE_CODE_PLAN_MODE_REQUIRED"),
8055
- PLAN_V2_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_AGENT_COUNT"),
8056
- PLAN_V2_EXPLORE_AGENT_COUNT: envVar("OPENCOW_PLAN_V2_EXPLORE_AGENT_COUNT", "CLAUDE_CODE_PLAN_V2_EXPLORE_AGENT_COUNT"),
8057
- PLUGIN_CACHE_DIR: envVar("OPENCOW_PLUGIN_CACHE_DIR", "CLAUDE_CODE_PLUGIN_CACHE_DIR"),
8058
- PLUGIN_GIT_TIMEOUT_MS: envVar("OPENCOW_PLUGIN_GIT_TIMEOUT_MS", "CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS"),
8059
- PLUGIN_SEED_DIR: envVar("OPENCOW_PLUGIN_SEED_DIR", "CLAUDE_CODE_PLUGIN_SEED_DIR"),
8060
- PLUGIN_USE_ZIP_CACHE: envVar("OPENCOW_PLUGIN_USE_ZIP_CACHE", "CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE"),
8061
- POST_FOR_SESSION_INGRESS_V2: envVar("OPENCOW_POST_FOR_SESSION_INGRESS_V2", "CLAUDE_CODE_POST_FOR_SESSION_INGRESS_V2"),
8062
- PROACTIVE: envVar("OPENCOW_PROACTIVE", "CLAUDE_CODE_PROACTIVE"),
8063
- PROFILE_QUERY: envVar("OPENCOW_PROFILE_QUERY", "CLAUDE_CODE_PROFILE_QUERY"),
8064
- PROFILE_STARTUP: envVar("OPENCOW_PROFILE_STARTUP", "CLAUDE_CODE_PROFILE_STARTUP"),
8065
- PROVIDER_MANAGED_BY_HOST: envVar("OPENCOW_PROVIDER_MANAGED_BY_HOST", "CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST"),
8066
- PROVIDER_PROFILE_ENV_APPLIED: envVar("OPENCOW_PROVIDER_PROFILE_ENV_APPLIED", "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED"),
8067
- PROXY_RESOLVES_HOSTS: envVar("OPENCOW_PROXY_RESOLVES_HOSTS", "CLAUDE_CODE_PROXY_RESOLVES_HOSTS"),
8068
- PWSH_PARSE_TIMEOUT_MS: envVar("OPENCOW_PWSH_PARSE_TIMEOUT_MS", "CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS"),
8069
- QUESTION_PREVIEW_FORMAT: envVar("OPENCOW_QUESTION_PREVIEW_FORMAT", "CLAUDE_CODE_QUESTION_PREVIEW_FORMAT"),
8070
- REMOTE: envVar("OPENCOW_REMOTE", "CLAUDE_CODE_REMOTE"),
8071
- REMOTE_ENVIRONMENT_TYPE: envVar("OPENCOW_REMOTE_ENVIRONMENT_TYPE", "CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE"),
8072
- REMOTE_MEMORY_DIR: envVar("OPENCOW_REMOTE_MEMORY_DIR", "CLAUDE_CODE_REMOTE_MEMORY_DIR"),
8073
- REMOTE_SEND_KEEPALIVES: envVar("OPENCOW_REMOTE_SEND_KEEPALIVES", "CLAUDE_CODE_REMOTE_SEND_KEEPALIVES"),
8074
- REMOTE_SESSION_ID: envVar("OPENCOW_REMOTE_SESSION_ID", "CLAUDE_CODE_REMOTE_SESSION_ID"),
8075
- REPL: envVar("OPENCOW_REPL", "CLAUDE_CODE_REPL"),
8076
- RESUME_INTERRUPTED_TURN: envVar("OPENCOW_RESUME_INTERRUPTED_TURN", "CLAUDE_CODE_RESUME_INTERRUPTED_TURN"),
8077
- SAVE_HOOK_ADDITIONAL_CONTEXT: envVar("OPENCOW_SAVE_HOOK_ADDITIONAL_CONTEXT", "CLAUDE_CODE_SAVE_HOOK_ADDITIONAL_CONTEXT"),
8078
- SCROLL_SPEED: envVar("OPENCOW_SCROLL_SPEED", "CLAUDE_CODE_SCROLL_SPEED"),
8079
- SESSIONEND_HOOKS_TIMEOUT_MS: envVar("OPENCOW_SESSIONEND_HOOKS_TIMEOUT_MS", "CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS"),
8080
- SESSION_ACCESS_TOKEN: envVar("OPENCOW_SESSION_ACCESS_TOKEN", "CLAUDE_CODE_SESSION_ACCESS_TOKEN"),
8081
- SESSION_ID: envVar("OPENCOW_SESSION_ID", "CLAUDE_CODE_SESSION_ID"),
8082
- SESSION_KIND: envVar("OPENCOW_SESSION_KIND", "CLAUDE_CODE_SESSION_KIND"),
8083
- SESSION_LOG: envVar("OPENCOW_SESSION_LOG", "CLAUDE_CODE_SESSION_LOG"),
8084
- SESSION_NAME: envVar("OPENCOW_SESSION_NAME", "CLAUDE_CODE_SESSION_NAME"),
8085
- SHELL: envVar("OPENCOW_SHELL", "CLAUDE_CODE_SHELL"),
8086
- SHELL_PREFIX: envVar("OPENCOW_SHELL_PREFIX", "CLAUDE_CODE_SHELL_PREFIX"),
8087
- SIMPLE: envVar("OPENCOW_SIMPLE", "CLAUDE_CODE_SIMPLE"),
8088
- SKIP_BEDROCK_AUTH: envVar("OPENCOW_SKIP_BEDROCK_AUTH", "CLAUDE_CODE_SKIP_BEDROCK_AUTH"),
8089
- SKIP_FAST_MODE_NETWORK_ERRORS: envVar("OPENCOW_SKIP_FAST_MODE_NETWORK_ERRORS", "CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS"),
8090
- SKIP_FOUNDRY_AUTH: envVar("OPENCOW_SKIP_FOUNDRY_AUTH", "CLAUDE_CODE_SKIP_FOUNDRY_AUTH"),
8091
- SKIP_PROMPT_HISTORY: envVar("OPENCOW_SKIP_PROMPT_HISTORY", "CLAUDE_CODE_SKIP_PROMPT_HISTORY"),
8092
- SKIP_VERTEX_AUTH: envVar("OPENCOW_SKIP_VERTEX_AUTH", "CLAUDE_CODE_SKIP_VERTEX_AUTH"),
8093
- SLOW_OPERATION_THRESHOLD_MS: envVar("OPENCOW_SLOW_OPERATION_THRESHOLD_MS", "CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS"),
8094
- SSE_PORT: envVar("OPENCOW_SSE_PORT", "CLAUDE_CODE_SSE_PORT"),
8095
- STALL_TIMEOUT_MS_FOR_TESTING: envVar("OPENCOW_STALL_TIMEOUT_MS_FOR_TESTING", "CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING"),
8096
- STREAMLINED_OUTPUT: envVar("OPENCOW_STREAMLINED_OUTPUT", "CLAUDE_CODE_STREAMLINED_OUTPUT"),
8097
- SUBAGENT_MODEL: envVar("OPENCOW_SUBAGENT_MODEL", "CLAUDE_CODE_SUBAGENT_MODEL"),
8098
- SUBPROCESS_ENV_SCRUB: envVar("OPENCOW_SUBPROCESS_ENV_SCRUB", "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB"),
8099
- SYNC_PLUGIN_INSTALL: envVar("OPENCOW_SYNC_PLUGIN_INSTALL", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL"),
8100
- SYNC_PLUGIN_INSTALL_TIMEOUT_MS: envVar("OPENCOW_SYNC_PLUGIN_INSTALL_TIMEOUT_MS", "CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS"),
8101
- SYNTAX_HIGHLIGHT: envVar("OPENCOW_SYNTAX_HIGHLIGHT", "CLAUDE_CODE_SYNTAX_HIGHLIGHT"),
8102
- TAGS: envVar("OPENCOW_TAGS", "CLAUDE_CODE_TAGS"),
8103
- TASK_LIST_ID: envVar("OPENCOW_TASK_LIST_ID", "CLAUDE_CODE_TASK_LIST_ID"),
8104
- TEST_FIXTURES_ROOT: envVar("OPENCOW_TEST_FIXTURES_ROOT", "CLAUDE_CODE_TEST_FIXTURES_ROOT"),
8105
- TMPDIR: envVar("OPENCOW_TMPDIR", "CLAUDE_CODE_TMPDIR"),
8106
- TMUX_PREFIX: envVar("OPENCOW_TMUX_PREFIX", "CLAUDE_CODE_TMUX_PREFIX"),
8107
- TMUX_PREFIX_CONFLICTS: envVar("OPENCOW_TMUX_PREFIX_CONFLICTS", "CLAUDE_CODE_TMUX_PREFIX_CONFLICTS"),
8108
- TMUX_SESSION: envVar("OPENCOW_TMUX_SESSION", "CLAUDE_CODE_TMUX_SESSION"),
8109
- TMUX_TRUECOLOR: envVar("OPENCOW_TMUX_TRUECOLOR", "CLAUDE_CODE_TMUX_TRUECOLOR"),
8110
- TWO_STAGE_CLASSIFIER: envVar("OPENCOW_TWO_STAGE_CLASSIFIER", "CLAUDE_CODE_TWO_STAGE_CLASSIFIER"),
8111
- UNATTENDED_RETRY: envVar("OPENCOW_UNATTENDED_RETRY", "CLAUDE_CODE_UNATTENDED_RETRY"),
8112
- USER_EMAIL: envVar("OPENCOW_USER_EMAIL", "CLAUDE_CODE_USER_EMAIL"),
8113
- USE_BEDROCK: envVar("OPENCOW_USE_BEDROCK", "CLAUDE_CODE_USE_BEDROCK"),
8114
- USE_CCR_V2: envVar("OPENCOW_USE_CCR_V2", "CLAUDE_CODE_USE_CCR_V2"),
8115
- USE_COWORK_PLUGINS: envVar("OPENCOW_USE_COWORK_PLUGINS", "CLAUDE_CODE_USE_COWORK_PLUGINS"),
8116
- USE_FOUNDRY: envVar("OPENCOW_USE_FOUNDRY", "CLAUDE_CODE_USE_FOUNDRY"),
8117
- USE_GEMINI: envVar("OPENCOW_USE_GEMINI", "CLAUDE_CODE_USE_GEMINI"),
8118
- USE_GITHUB: envVar("OPENCOW_USE_GITHUB", "CLAUDE_CODE_USE_GITHUB"),
8119
- USE_NATIVE_FILE_SEARCH: envVar("OPENCOW_USE_NATIVE_FILE_SEARCH", "CLAUDE_CODE_USE_NATIVE_FILE_SEARCH"),
8120
- USE_OPENAI: envVar("OPENCOW_USE_OPENAI", "CLAUDE_CODE_USE_OPENAI"),
8121
- USE_POWERSHELL_TOOL: envVar("OPENCOW_USE_POWERSHELL_TOOL", "CLAUDE_CODE_USE_POWERSHELL_TOOL"),
8122
- USE_VERTEX: envVar("OPENCOW_USE_VERTEX", "CLAUDE_CODE_USE_VERTEX"),
8123
- VERIFY_PLAN: envVar("OPENCOW_VERIFY_PLAN", "CLAUDE_CODE_VERIFY_PLAN"),
8124
- WEBSOCKET_AUTH_FILE_DESCRIPTOR: envVar("OPENCOW_WEBSOCKET_AUTH_FILE_DESCRIPTOR", "CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR"),
8125
- WORKER_EPOCH: envVar("OPENCOW_WORKER_EPOCH", "CLAUDE_CODE_WORKER_EPOCH"),
8126
- WORKSPACE_HOST_PATHS: envVar("OPENCOW_WORKSPACE_HOST_PATHS", "CLAUDE_CODE_WORKSPACE_HOST_PATHS"),
8127
- MEMORY_EXTRA_GUIDELINES: envVar("OPENCOW_MEMORY_EXTRA_GUIDELINES", "CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES"),
8128
- MEMORY_PATH_OVERRIDE: envVar("OPENCOW_MEMORY_PATH_OVERRIDE", "CLAUDE_COWORK_MEMORY_PATH_OVERRIDE"),
8129
- DEBUG_INPUT: envVar("OPENCOW_DEBUG_INPUT"),
8130
- DISABLE_CO_AUTHORED_BY: envVar("OPENCOW_DISABLE_CO_AUTHORED_BY"),
8131
- DISABLE_EARLY_INPUT: envVar("OPENCOW_DISABLE_EARLY_INPUT"),
8132
- ENABLE_EXTENDED_KEYS: envVar("OPENCOW_ENABLE_EXTENDED_KEYS"),
8133
- USE_READABLE_STDIN: envVar("OPENCOW_USE_READABLE_STDIN")
8134
- };
8135
- });
8136
-
8137
8138
  // src/lib/slowOperations.ts
8138
8139
  import {
8139
8140
  closeSync,
@@ -51282,7 +51283,7 @@ function extractMcpToolDisplayName(userFacingName) {
51282
51283
  var init_mcpStringUtils = () => {};
51283
51284
 
51284
51285
  // src/constants/toolNames.ts
51285
- 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", LEGACY_AGENT_TOOL_NAME = "Task", 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";
51286
+ 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", LEGACY_AGENT_TOOL_NAME = "Task", 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";
51286
51287
 
51287
51288
  // src/permissions/permissionRuleParser.ts
51288
51289
  function normalizeLegacyToolName(name) {
@@ -51367,7 +51368,7 @@ function findLastUnescapedChar(str, char) {
51367
51368
  var LEGACY_TOOL_NAME_ALIASES;
51368
51369
  var init_permissionRuleParser = __esm(() => {
51369
51370
  LEGACY_TOOL_NAME_ALIASES = {
51370
- Task: AGENT_TOOL_NAME2,
51371
+ Task: AGENT_TOOL_NAME,
51371
51372
  KillShell: TASK_STOP_TOOL_NAME,
51372
51373
  AgentOutputTool: TASK_OUTPUT_TOOL_NAME,
51373
51374
  BashOutputTool: TASK_OUTPUT_TOOL_NAME,
@@ -57639,6 +57640,31 @@ var init_modelAllowlist = __esm(() => {
57639
57640
  init_modelStrings();
57640
57641
  });
57641
57642
 
57643
+ // src/providers/shared/model/antModels.ts
57644
+ function getAntModelOverrideConfig() {
57645
+ if (process.env.USER_TYPE !== "ant") {
57646
+ return null;
57647
+ }
57648
+ return getFeatureValue_CACHED_MAY_BE_STALE("tengu_ant_model_override", null);
57649
+ }
57650
+ function getAntModels() {
57651
+ if (process.env.USER_TYPE !== "ant") {
57652
+ return [];
57653
+ }
57654
+ return getAntModelOverrideConfig()?.antModels ?? [];
57655
+ }
57656
+ function resolveAntModel(model) {
57657
+ if (process.env.USER_TYPE !== "ant") {
57658
+ return;
57659
+ }
57660
+ if (model === undefined) {
57661
+ return;
57662
+ }
57663
+ const lower = model.toLowerCase();
57664
+ return getAntModels().find((m) => m.alias === model || lower.includes(m.model.toLowerCase()));
57665
+ }
57666
+ var init_antModels = () => {};
57667
+
57642
57668
  // src/providers/shared/model/model.ts
57643
57669
  var exports_model = {};
57644
57670
  __export(exports_model, {
@@ -58110,6 +58136,7 @@ var init_model = __esm(() => {
58110
58136
  init_provider();
58111
58137
  init_figures2();
58112
58138
  init_modelAllowlist();
58139
+ init_antModels();
58113
58140
  init_aliases();
58114
58141
  init_stringUtils();
58115
58142
  LEGACY_OPUS_FIRSTPARTY = [
@@ -58374,6 +58401,7 @@ var init_modelContext = __esm(() => {
58374
58401
  init_envUtils();
58375
58402
  init_state2();
58376
58403
  init_model();
58404
+ init_antModels();
58377
58405
  init_openaiContextWindows();
58378
58406
  });
58379
58407
 
@@ -60639,7 +60667,7 @@ function getAPIProviderForStatsig() {
60639
60667
  return getAPIProvider();
60640
60668
  }
60641
60669
  function isFirstPartyAnthropicBaseUrl() {
60642
- const baseUrl = process.env.ANTHROPIC_BASE_URL;
60670
+ const baseUrl = getQueryEnvVar("ANTHROPIC_BASE_URL");
60643
60671
  if (!baseUrl) {
60644
60672
  return true;
60645
60673
  }
@@ -84815,12 +84843,17 @@ async function performCodexRequest(options) {
84815
84843
  body.tool_choice ??= "auto";
84816
84844
  }
84817
84845
  }
84818
- const mergedReasoning = {
84819
- ...options.request.reasoning ?? {},
84820
- ...options.providerSpecific?.reasoning ?? {}
84821
- };
84822
- if (Object.keys(mergedReasoning).length > 0) {
84823
- body.reasoning = mergedReasoning;
84846
+ const thinkingDisabled = options.params.thinking?.type === "disabled";
84847
+ if (thinkingDisabled) {
84848
+ body.reasoning = { effort: "minimal" };
84849
+ } else {
84850
+ const mergedReasoning = {
84851
+ ...options.request.reasoning ?? {},
84852
+ ...options.providerSpecific?.reasoning ?? {}
84853
+ };
84854
+ if (Object.keys(mergedReasoning).length > 0) {
84855
+ body.reasoning = mergedReasoning;
84856
+ }
84824
84857
  }
84825
84858
  const isTargetModel = options.request.resolvedModel?.toLowerCase().includes("gpt") || options.request.resolvedModel?.toLowerCase().includes("codex");
84826
84859
  if (!isTargetModel) {
@@ -84894,12 +84927,17 @@ function determineStopReason(response, sawToolUse) {
84894
84927
  }
84895
84928
  return "end_turn";
84896
84929
  }
84930
+ function codexFailureStatus(errorMessage2) {
84931
+ const m = errorMessage2.toLowerCase();
84932
+ const isContextOverflow = m.includes("prompt is too long") || m.includes("context_length_exceeded") || m.includes("maximum context length");
84933
+ return isContextOverflow ? 400 : 500;
84934
+ }
84897
84935
  async function collectCodexCompletedResponse(response) {
84898
84936
  let completedResponse;
84899
84937
  for await (const event of readSseEvents(response)) {
84900
84938
  if (event.event === "response.failed") {
84901
84939
  const msg = event.data?.response?.error?.message ?? event.data?.error?.message ?? "Codex response failed";
84902
- throw APIError.generate(500, undefined, msg, new Headers);
84940
+ throw APIError.generate(codexFailureStatus(msg), undefined, msg, new Headers);
84903
84941
  }
84904
84942
  if (event.event === "response.completed" || event.event === "response.incomplete") {
84905
84943
  completedResponse = event.data?.response;
@@ -85089,7 +85127,7 @@ async function* codexStreamToAnthropic(response, model) {
85089
85127
  }
85090
85128
  if (event.event === "response.failed") {
85091
85129
  const msg = payload?.response?.error?.message ?? payload?.error?.message ?? "Codex response failed";
85092
- throw APIError.generate(500, undefined, msg, new Headers);
85130
+ throw APIError.generate(codexFailureStatus(msg), undefined, msg, new Headers);
85093
85131
  }
85094
85132
  }
85095
85133
  yield* closeActiveTextBlock();
@@ -85188,6 +85226,7 @@ var init_shim = __esm(() => {
85188
85226
  var exports_shim = {};
85189
85227
  __export(exports_shim, {
85190
85228
  toOpenAIChatReasoningEffort: () => toOpenAIChatReasoningEffort,
85229
+ openaiUsageToAnthropicUsage: () => openaiUsageToAnthropicUsage,
85191
85230
  openaiStreamToAnthropic: () => openaiStreamToAnthropic,
85192
85231
  makeMessageId: () => makeMessageId2,
85193
85232
  createOpenAIShimClient: () => createOpenAIShimClient,
@@ -85263,6 +85302,10 @@ function splitToolResultMedia2(content) {
85263
85302
  }
85264
85303
  continue;
85265
85304
  }
85305
+ if (block?.type === "tool_reference" && typeof block.tool_name === "string") {
85306
+ textChunks.push(`<discovered-tool name="${block.tool_name}" />`);
85307
+ continue;
85308
+ }
85266
85309
  if (typeof block?.text === "string") {
85267
85310
  textChunks.push(block.text);
85268
85311
  }
@@ -85439,16 +85482,21 @@ function convertTools(tools, model = "") {
85439
85482
  function makeMessageId2() {
85440
85483
  return `msg_${crypto.randomUUID().replace(/-/g, "")}`;
85441
85484
  }
85442
- function convertChunkUsage(usage) {
85443
- if (!usage)
85444
- return;
85485
+ function openaiUsageToAnthropicUsage(usage) {
85486
+ const promptTokens = usage?.prompt_tokens ?? 0;
85487
+ const cachedTokens = usage?.prompt_tokens_details?.cached_tokens ?? 0;
85445
85488
  return {
85446
- input_tokens: usage.prompt_tokens ?? 0,
85447
- output_tokens: usage.completion_tokens ?? 0,
85489
+ input_tokens: Math.max(0, promptTokens - cachedTokens),
85490
+ output_tokens: usage?.completion_tokens ?? 0,
85448
85491
  cache_creation_input_tokens: 0,
85449
- cache_read_input_tokens: usage.prompt_tokens_details?.cached_tokens ?? 0
85492
+ cache_read_input_tokens: cachedTokens
85450
85493
  };
85451
85494
  }
85495
+ function convertChunkUsage(usage) {
85496
+ if (!usage)
85497
+ return;
85498
+ return openaiUsageToAnthropicUsage(usage);
85499
+ }
85452
85500
  function toOpenAIChatReasoningEffort(effort) {
85453
85501
  return effort === "xhigh" ? "high" : effort;
85454
85502
  }
@@ -85870,7 +85918,8 @@ class OpenAIShimMessages {
85870
85918
  const self2 = this;
85871
85919
  let httpResponse;
85872
85920
  const promise2 = (async () => {
85873
- const request = resolveProviderRequest({ model: self2.providerOverride?.model ?? params.model, baseUrl: self2.providerOverride?.baseURL, reasoningEffortOverride: self2.reasoningEffort });
85921
+ const overrideTransport = self2.providerOverride?.transport === "anthropic" ? undefined : self2.providerOverride?.transport;
85922
+ const request = resolveProviderRequest({ model: self2.providerOverride?.model ?? params.model, baseUrl: self2.providerOverride?.baseURL, reasoningEffortOverride: self2.reasoningEffort, transportOverride: overrideTransport });
85874
85923
  const response = await self2._doRequest(request, params, options);
85875
85924
  httpResponse = response;
85876
85925
  if (params.stream) {
@@ -85895,7 +85944,7 @@ class OpenAIShimMessages {
85895
85944
  }
85896
85945
  async _doRequest(request, params, options) {
85897
85946
  if (request.transport === "openai_responses") {
85898
- const credentials = resolveOpenAIResponsesCredentials();
85947
+ const credentials = this.providerOverride?.apiKey ? { apiKey: this.providerOverride.apiKey, source: "env-openai" } : resolveOpenAIResponsesCredentials();
85899
85948
  if (!credentials.apiKey) {
85900
85949
  const safeModel = redactSecretValueForDisplay(request.requestedModel, process.env) ?? "the requested model";
85901
85950
  const codexAuthHint = credentials.authPath ? `, set CODEX_API_KEY, or place a Codex auth.json at ${credentials.authPath}` : " or set CODEX_API_KEY";
@@ -85914,7 +85963,7 @@ class OpenAIShimMessages {
85914
85963
  ...options?.headers ?? {}
85915
85964
  },
85916
85965
  signal: options?.signal,
85917
- providerSpecific: readOpenAIResponsesProviderSpecific()
85966
+ providerSpecific: this.providerOverride?.providerSpecific?.openaiResponses ?? readOpenAIResponsesProviderSpecific()
85918
85967
  });
85919
85968
  }
85920
85969
  return this._doOpenAIRequest(request, params, options);
@@ -86094,12 +86143,7 @@ function convertOpenAIResponseToAnthropic(data, model) {
86094
86143
  model: data.model ?? model,
86095
86144
  stop_reason: stopReason,
86096
86145
  stop_sequence: null,
86097
- usage: {
86098
- input_tokens: data.usage?.prompt_tokens ?? 0,
86099
- output_tokens: data.usage?.completion_tokens ?? 0,
86100
- cache_creation_input_tokens: 0,
86101
- cache_read_input_tokens: data.usage?.prompt_tokens_details?.cached_tokens ?? 0
86102
- }
86146
+ usage: openaiUsageToAnthropicUsage(data.usage)
86103
86147
  };
86104
86148
  }
86105
86149
 
@@ -86221,7 +86265,6 @@ async function getNormalizedClient({
86221
86265
  }
86222
86266
  };
86223
86267
  if (providerOverride) {
86224
- const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_shim2(), exports_shim));
86225
86268
  const safeHeaders = {};
86226
86269
  for (const [k, v] of Object.entries(defaultHeaders)) {
86227
86270
  const lower = k.toLowerCase();
@@ -86229,6 +86272,18 @@ async function getNormalizedClient({
86229
86272
  continue;
86230
86273
  safeHeaders[k] = v;
86231
86274
  }
86275
+ if (providerOverride.transport === "anthropic") {
86276
+ const overrideToken = providerOverride.apiKey ?? getQueryEnvVar("ANTHROPIC_AUTH_TOKEN");
86277
+ return new Anthropic({
86278
+ apiKey: null,
86279
+ ...overrideToken ? { authToken: overrideToken } : {},
86280
+ ...providerOverride.baseURL ? { baseURL: providerOverride.baseURL } : {},
86281
+ ...ARGS,
86282
+ defaultHeaders: safeHeaders,
86283
+ ...isDebugToStdErr() && { logger: createStderrLogger() }
86284
+ });
86285
+ }
86286
+ const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_shim2(), exports_shim));
86232
86287
  return createOpenAIShimClient2({
86233
86288
  defaultHeaders: safeHeaders,
86234
86289
  maxRetries,
@@ -86706,6 +86761,13 @@ function resolveProviderFromEnv(envOverride) {
86706
86761
  const model = readEnv2(envOverride, "OPENAI_MODEL")?.trim() ?? "";
86707
86762
  return model && isCodexAlias(model) ? providers.codex() : providers.openai();
86708
86763
  }
86764
+ const transport = readEnv2(envOverride, QUERY_ENV_KEY_TRANSPORT_OVERRIDE)?.trim();
86765
+ if (transport === "openai_responses" || transport === "codex_responses") {
86766
+ return providers.codex();
86767
+ }
86768
+ if (transport === "chat_completions") {
86769
+ return providers.openai();
86770
+ }
86709
86771
  if (envOverride) {
86710
86772
  const hasOAuthToken = Boolean(readEnv2(envOverride, "CLAUDE_CODE_OAUTH_TOKEN"));
86711
86773
  return providers.anthropic({
@@ -87101,7 +87163,7 @@ function cloneHookRegistry(registry2) {
87101
87163
  var queryContextStorage;
87102
87164
  var init_als = __esm(() => {
87103
87165
  init_errors();
87104
- init_state2();
87166
+ init_envVars();
87105
87167
  queryContextStorage = new AsyncLocalStorage2;
87106
87168
  });
87107
87169
 
@@ -93863,8 +93925,14 @@ function getProviderPresetDefaults(preset) {
93863
93925
  function getProviderProfiles(config2 = getGlobalConfig()) {
93864
93926
  return sanitizeProfiles(config2.providerProfiles);
93865
93927
  }
93928
+ function providerFlagPrefixes(flag) {
93929
+ return [`OPENCOW_${flag}`, `CLAUDE_CODE_${flag}`];
93930
+ }
93931
+ function isProviderFlagSet(processEnv, flag) {
93932
+ return providerFlagPrefixes(flag).some((key) => processEnv[key] !== undefined);
93933
+ }
93866
93934
  function hasProviderSelectionFlags(processEnv = process.env) {
93867
- return processEnv.CLAUDE_CODE_USE_OPENAI !== undefined || processEnv.CLAUDE_CODE_USE_GEMINI !== undefined || processEnv.CLAUDE_CODE_USE_GITHUB !== undefined || processEnv.CLAUDE_CODE_USE_BEDROCK !== undefined || processEnv.CLAUDE_CODE_USE_VERTEX !== undefined || processEnv.CLAUDE_CODE_USE_FOUNDRY !== undefined;
93935
+ return PROVIDER_SELECTION_FLAGS.some((flag) => isProviderFlagSet(processEnv, flag));
93868
93936
  }
93869
93937
  function sameOptionalEnvValue(left, right) {
93870
93938
  return trimOrUndefined(left) === trimOrUndefined(right);
@@ -93877,7 +93945,7 @@ function isProcessEnvAlignedWithProfile(processEnv, profile, options) {
93877
93945
  if (profile.provider === "anthropic") {
93878
93946
  return !hasProviderSelectionFlags(processEnv) && sameOptionalEnvValue(processEnv.ANTHROPIC_BASE_URL, profile.baseUrl) && sameOptionalEnvValue(processEnv.ANTHROPIC_MODEL, profile.model) && (!includeApiKey || sameOptionalEnvValue(processEnv.ANTHROPIC_API_KEY, profile.apiKey));
93879
93947
  }
93880
- return processEnv.CLAUDE_CODE_USE_OPENAI !== undefined && processEnv.CLAUDE_CODE_USE_GEMINI === undefined && processEnv.CLAUDE_CODE_USE_GITHUB === undefined && processEnv.CLAUDE_CODE_USE_BEDROCK === undefined && processEnv.CLAUDE_CODE_USE_VERTEX === undefined && processEnv.CLAUDE_CODE_USE_FOUNDRY === undefined && sameOptionalEnvValue(processEnv.OPENAI_BASE_URL, profile.baseUrl) && sameOptionalEnvValue(processEnv.OPENAI_MODEL, profile.model) && (!includeApiKey || sameOptionalEnvValue(processEnv.OPENAI_API_KEY, profile.apiKey));
93948
+ return isProviderFlagSet(processEnv, "USE_OPENAI") && !isProviderFlagSet(processEnv, "USE_GEMINI") && !isProviderFlagSet(processEnv, "USE_GITHUB") && !isProviderFlagSet(processEnv, "USE_BEDROCK") && !isProviderFlagSet(processEnv, "USE_VERTEX") && !isProviderFlagSet(processEnv, "USE_FOUNDRY") && sameOptionalEnvValue(processEnv.OPENAI_BASE_URL, profile.baseUrl) && sameOptionalEnvValue(processEnv.OPENAI_MODEL, profile.model) && (!includeApiKey || sameOptionalEnvValue(processEnv.OPENAI_API_KEY, profile.apiKey));
93881
93949
  }
93882
93950
  function getActiveProviderProfile(config2 = getGlobalConfig()) {
93883
93951
  const profiles = getProviderProfiles(config2);
@@ -93888,12 +93956,11 @@ function getActiveProviderProfile(config2 = getGlobalConfig()) {
93888
93956
  return profiles.find((profile) => profile.id === activeId) ?? profiles[0];
93889
93957
  }
93890
93958
  function clearProviderProfileEnvFromProcessEnv(processEnv = process.env) {
93891
- delete processEnv.CLAUDE_CODE_USE_OPENAI;
93892
- delete processEnv.CLAUDE_CODE_USE_GEMINI;
93893
- delete processEnv.CLAUDE_CODE_USE_GITHUB;
93894
- delete processEnv.CLAUDE_CODE_USE_BEDROCK;
93895
- delete processEnv.CLAUDE_CODE_USE_VERTEX;
93896
- delete processEnv.CLAUDE_CODE_USE_FOUNDRY;
93959
+ for (const flag of PROVIDER_SELECTION_FLAGS) {
93960
+ for (const key of providerFlagPrefixes(flag)) {
93961
+ delete processEnv[key];
93962
+ }
93963
+ }
93897
93964
  delete processEnv.OPENAI_BASE_URL;
93898
93965
  delete processEnv.OPENAI_API_BASE;
93899
93966
  delete processEnv.OPENAI_MODEL;
@@ -94120,10 +94187,18 @@ function clearActiveOpenAIModelOptionsCache() {
94120
94187
  };
94121
94188
  });
94122
94189
  }
94123
- var DEFAULT_OLLAMA_BASE_URL2 = "http://localhost:11434/v1", DEFAULT_OLLAMA_MODEL = "llama3.1:8b", PROFILE_ENV_APPLIED_FLAG = "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED";
94190
+ var DEFAULT_OLLAMA_BASE_URL2 = "http://localhost:11434/v1", DEFAULT_OLLAMA_MODEL = "llama3.1:8b", PROFILE_ENV_APPLIED_FLAG = "CLAUDE_CODE_PROVIDER_PROFILE_ENV_APPLIED", PROVIDER_SELECTION_FLAGS;
94124
94191
  var init_providerProfiles = __esm(() => {
94125
94192
  init_config2();
94126
94193
  init_state2();
94194
+ PROVIDER_SELECTION_FLAGS = [
94195
+ "USE_OPENAI",
94196
+ "USE_GEMINI",
94197
+ "USE_GITHUB",
94198
+ "USE_BEDROCK",
94199
+ "USE_VERTEX",
94200
+ "USE_FOUNDRY"
94201
+ ];
94127
94202
  });
94128
94203
 
94129
94204
  // src/cli/utils/managedEnv.ts
@@ -94361,7 +94436,7 @@ function printStartupScreen() {
94361
94436
  const sLen = ` ● ${sL} Ready — type /help to begin`.length;
94362
94437
  out.push(boxRow(sRow, W2, sLen));
94363
94438
  out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
94364
- out.push(` ${DIM}${rgb(...DIMCOL)}opencow ${RESET}${rgb(...ACCENT)}v${"0.4.6"}${RESET}`);
94439
+ out.push(` ${DIM}${rgb(...DIMCOL)}opencow ${RESET}${rgb(...ACCENT)}v${"0.4.8"}${RESET}`);
94365
94440
  out.push("");
94366
94441
  process.stdout.write(out.join(`
94367
94442
  `) + `
@@ -95620,6 +95695,7 @@ var RAINBOW_COLORS, RAINBOW_SHIMMER_COLORS;
95620
95695
  var init_thinking = __esm(() => {
95621
95696
  init_model();
95622
95697
  init_modelSupportOverrides();
95698
+ init_antModels();
95623
95699
  init_state2();
95624
95700
  init_settings2();
95625
95701
  RAINBOW_COLORS = [
@@ -95869,6 +95945,7 @@ var init_effort = __esm(() => {
95869
95945
  init_auth();
95870
95946
  init_state2();
95871
95947
  init_modelSupportOverrides();
95948
+ init_antModels();
95872
95949
  init_envUtils();
95873
95950
  EFFORT_LEVELS = [
95874
95951
  "low",
@@ -96130,7 +96207,7 @@ var init_sideQuery = __esm(() => {
96130
96207
  });
96131
96208
 
96132
96209
  // src/capabilities/mcp/knownServers.ts
96133
- function isClaudeInChromeMCPServer2(name) {
96210
+ function isClaudeInChromeMCPServer(name) {
96134
96211
  return normalizeNameForMCP(name) === CLAUDE_IN_CHROME_MCP_SERVER_NAME;
96135
96212
  }
96136
96213
  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.**
@@ -97579,7 +97656,7 @@ var init_paths2 = __esm(() => {
97579
97656
  });
97580
97657
 
97581
97658
  // src/capabilities/tools/AgentTool/constants.ts
97582
- var AGENT_TOOL_NAME3 = "Agent", LEGACY_AGENT_TOOL_NAME2 = "Task", VERIFICATION_AGENT_TYPE2 = "verification", ONE_SHOT_BUILTIN_AGENT_TYPES;
97659
+ var AGENT_TOOL_NAME2 = "Agent", LEGACY_AGENT_TOOL_NAME2 = "Task", VERIFICATION_AGENT_TYPE = "verification", ONE_SHOT_BUILTIN_AGENT_TYPES;
97583
97660
  var init_constants4 = __esm(() => {
97584
97661
  ONE_SHOT_BUILTIN_AGENT_TYPES = new Set([
97585
97662
  "Explore",
@@ -97691,7 +97768,7 @@ function getDescription() {
97691
97768
  - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
97692
97769
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
97693
97770
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
97694
- - Use ${AGENT_TOOL_NAME3} tool for open-ended searches requiring multiple rounds
97771
+ - Use ${AGENT_TOOL_NAME2} tool for open-ended searches requiring multiple rounds
97695
97772
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
97696
97773
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\`
97697
97774
  `;
@@ -97728,7 +97805,7 @@ var init_constants5 = __esm(() => {
97728
97805
  GREP_TOOL_NAME2,
97729
97806
  BASH_TOOL_NAME2,
97730
97807
  NOTEBOOK_EDIT_TOOL_NAME2,
97731
- AGENT_TOOL_NAME3
97808
+ AGENT_TOOL_NAME2
97732
97809
  ]);
97733
97810
  });
97734
97811
 
@@ -106334,7 +106411,14 @@ function buildToolRuntime(def) {
106334
106411
  ...def
106335
106412
  };
106336
106413
  }
106337
- var TOOL_RUNTIME_DEFAULTS;
106414
+ var getEmptyToolPermissionContext = () => ({
106415
+ mode: "default",
106416
+ additionalWorkingDirectories: new Map,
106417
+ alwaysAllowRules: {},
106418
+ alwaysDenyRules: {},
106419
+ alwaysAskRules: {},
106420
+ isBypassPermissionsModeAvailable: false
106421
+ }), TOOL_RUNTIME_DEFAULTS;
106338
106422
  var init_toolRuntime = __esm(() => {
106339
106423
  TOOL_RUNTIME_DEFAULTS = {
106340
106424
  isEnabled: () => true,
@@ -106364,7 +106448,7 @@ function buildTool(def) {
106364
106448
  ...def
106365
106449
  };
106366
106450
  }
106367
- var getEmptyToolPermissionContext = () => ({
106451
+ var getEmptyToolPermissionContext2 = () => ({
106368
106452
  mode: "default",
106369
106453
  additionalWorkingDirectories: new Map,
106370
106454
  alwaysAllowRules: {},
@@ -113824,7 +113908,7 @@ function toComparable(p) {
113824
113908
  return IS_WINDOWS ? posixForm.toLowerCase() : posixForm;
113825
113909
  }
113826
113910
  function detectSessionFileType(filePath) {
113827
- const configDir = getClaudeConfigHomeDir();
113911
+ const configDir = resolveConfigHomeDir();
113828
113912
  const normalized = toComparable(filePath);
113829
113913
  const configDirCmp = toComparable(configDir);
113830
113914
  if (!normalized.startsWith(configDirCmp)) {
@@ -113952,6 +114036,7 @@ var init_memoryFileDetection = __esm(() => {
113952
114036
  init_agentMemory();
113953
114037
  init_state2();
113954
114038
  init_paths();
114039
+ init_envUtils();
113955
114040
  init_windowsPaths();
113956
114041
  IS_WINDOWS = process.platform === "win32";
113957
114042
  });
@@ -121198,13 +121283,23 @@ var init_ToolSearchTool = __esm(() => {
121198
121283
  content: text
121199
121284
  };
121200
121285
  }
121286
+ if (isNativeToolReferenceWire()) {
121287
+ return {
121288
+ type: "tool_result",
121289
+ tool_use_id: toolUseID,
121290
+ content: content.matches.map((name) => ({
121291
+ type: "tool_reference",
121292
+ tool_name: name
121293
+ }))
121294
+ };
121295
+ }
121296
+ const markerLines = content.matches.map((name) => `<discovered-tool name="${name}" />`).join(`
121297
+ `);
121201
121298
  return {
121202
121299
  type: "tool_result",
121203
121300
  tool_use_id: toolUseID,
121204
- content: content.matches.map((name) => ({
121205
- type: "tool_reference",
121206
- tool_name: name
121207
- }))
121301
+ content: `Found ${content.matches.length} tool(s) their full schemas will ` + `be included in your tools list from the next request:
121302
+ ` + markerLines
121208
121303
  };
121209
121304
  }
121210
121305
  });
@@ -145544,7 +145639,7 @@ var init_exploreAgent = __esm(() => {
145544
145639
  agentType: "Explore",
145545
145640
  whenToUse: EXPLORE_WHEN_TO_USE,
145546
145641
  disallowedTools: [
145547
- AGENT_TOOL_NAME2,
145642
+ AGENT_TOOL_NAME,
145548
145643
  EXIT_PLAN_MODE_TOOL_NAME,
145549
145644
  FILE_EDIT_TOOL_NAME,
145550
145645
  FILE_WRITE_TOOL_NAME,
@@ -145650,7 +145745,7 @@ var init_planAgent = __esm(() => {
145650
145745
  agentType: "Plan",
145651
145746
  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.",
145652
145747
  disallowedTools: [
145653
- AGENT_TOOL_NAME3,
145748
+ AGENT_TOOL_NAME2,
145654
145749
  EXIT_PLAN_MODE_TOOL_NAME,
145655
145750
  FILE_EDIT_TOOL_NAME,
145656
145751
  FILE_WRITE_TOOL_NAME,
@@ -145938,9 +146033,20 @@ Use the literal string \`VERDICT: \` followed by exactly one of \`PASS\`, \`FAIL
145938
146033
  - **PARTIAL**: what was verified, what could not be and why (missing tool/env), what the implementer should know.`;
145939
146034
  });
145940
146035
 
146036
+ // src/capabilities/tools/AgentTool/agentMerge.ts
146037
+ function mergeAgentsByType(base2, override) {
146038
+ const byType = new Map;
146039
+ for (const agent of base2)
146040
+ byType.set(agent.agentType, agent);
146041
+ for (const agent of override)
146042
+ byType.set(agent.agentType, agent);
146043
+ return [...byType.values()];
146044
+ }
146045
+
145941
146046
  // src/capabilities/tools/AgentTool/builtInAgents.ts
145942
146047
  var exports_builtInAgents = {};
145943
146048
  __export(exports_builtInAgents, {
146049
+ resolveSdkAgents: () => resolveSdkAgents,
145944
146050
  getBuiltInAgents: () => getBuiltInAgents,
145945
146051
  areExplorePlanAgentsEnabled: () => areExplorePlanAgentsEnabled
145946
146052
  });
@@ -145967,6 +146073,9 @@ function getBuiltInAgents() {
145967
146073
  if (false) {}
145968
146074
  return agents;
145969
146075
  }
146076
+ function resolveSdkAgents(hostAgents) {
146077
+ return mergeAgentsByType(getBuiltInAgents(), hostAgents);
146078
+ }
145970
146079
  var init_builtInAgents = __esm(() => {
145971
146080
  init_state();
145972
146081
  init_envUtils();
@@ -239690,7 +239799,7 @@ var init_tools = __esm(() => {
239690
239799
  TASK_OUTPUT_TOOL_NAME,
239691
239800
  EXIT_PLAN_MODE_V2_TOOL_NAME,
239692
239801
  ENTER_PLAN_MODE_TOOL_NAME,
239693
- ...process.env.USER_TYPE === "ant" ? [] : [AGENT_TOOL_NAME2],
239802
+ ...process.env.USER_TYPE === "ant" ? [] : [AGENT_TOOL_NAME],
239694
239803
  ASK_USER_QUESTION_TOOL_NAME,
239695
239804
  TASK_STOP_TOOL_NAME,
239696
239805
  ...[]
@@ -239724,7 +239833,7 @@ var init_tools = __esm(() => {
239724
239833
  ...[]
239725
239834
  ]);
239726
239835
  COORDINATOR_MODE_ALLOWED_TOOLS = new Set([
239727
- AGENT_TOOL_NAME2,
239836
+ AGENT_TOOL_NAME,
239728
239837
  TASK_STOP_TOOL_NAME,
239729
239838
  SEND_MESSAGE_TOOL_NAME,
239730
239839
  SYNTHETIC_OUTPUT_TOOL_NAME
@@ -243217,6 +243326,7 @@ function productionDeps() {
243217
243326
  callModel: queryModelWithStreaming,
243218
243327
  microcompact: microcompactMessages,
243219
243328
  autocompact: autoCompactIfNeeded,
243329
+ manualCompact,
243220
243330
  uuid: randomUUID7
243221
243331
  };
243222
243332
  }
@@ -243280,7 +243390,8 @@ async function* queryLoop(params, consumedCommandUuids) {
243280
243390
  fallbackModel,
243281
243391
  querySource,
243282
243392
  maxTurns,
243283
- skipCacheWrite
243393
+ skipCacheWrite,
243394
+ compactRequest
243284
243395
  } = params;
243285
243396
  const deps = params.deps ?? productionDeps();
243286
243397
  let state3 = {
@@ -243345,6 +243456,28 @@ async function* queryLoop(params, consumedCommandUuids) {
243345
243456
  const pendingCacheEdits2 = undefined;
243346
243457
  queryCheckpoint("query_microcompact_end");
243347
243458
  if (false) {}
243459
+ if (compactRequest) {
243460
+ try {
243461
+ const { compactionResult: compactionResult2 } = await deps.manualCompact(messagesForQuery, toolUseContext, {
243462
+ systemPrompt,
243463
+ userContext,
243464
+ systemContext,
243465
+ toolUseContext,
243466
+ forkContextMessages: messagesForQuery
243467
+ }, compactRequest.instructions);
243468
+ if (compactionResult2) {
243469
+ for (const message of buildPostCompactMessages(compactionResult2)) {
243470
+ yield message;
243471
+ }
243472
+ }
243473
+ } catch (err2) {
243474
+ yield createAssistantAPIErrorMessage({
243475
+ content: err2 instanceof Error ? err2.message : String(err2),
243476
+ error: "invalid_request"
243477
+ });
243478
+ }
243479
+ return { reason: "completed" };
243480
+ }
243348
243481
  const fullSystemPrompt = asSystemPrompt(appendSystemContext(systemPrompt, systemContext));
243349
243482
  queryCheckpoint("query_autocompact_start");
243350
243483
  const { compactionResult, consecutiveFailures } = await deps.autocompact(messagesForQuery, toolUseContext, {
@@ -244098,6 +244231,9 @@ var init_agentContext = __esm(() => {
244098
244231
  });
244099
244232
 
244100
244233
  // src/providers/shared/usage.ts
244234
+ function contextWindowTokens(usage) {
244235
+ return (usage.input_tokens ?? 0) + (usage.cache_read_input_tokens ?? 0) + (usage.cache_creation_input_tokens ?? 0);
244236
+ }
244101
244237
  var EMPTY_USAGE;
244102
244238
  var init_usage = __esm(() => {
244103
244239
  EMPTY_USAGE = {
@@ -244170,7 +244306,7 @@ function getAnthropicEnvMetadata() {
244170
244306
  function getBuildAgeMinutes() {
244171
244307
  if (false)
244172
244308
  ;
244173
- const buildTime = new Date("2026-06-03T14:42:10.545Z").getTime();
244309
+ const buildTime = new Date("2026-06-20T04:27:50.766Z").getTime();
244174
244310
  if (isNaN(buildTime))
244175
244311
  return;
244176
244312
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -245648,7 +245784,7 @@ function getDefaultAppState() {
245648
245784
  replBridgeInitialName: undefined,
245649
245785
  showRemoteCallout: false,
245650
245786
  toolPermissionContext: {
245651
- ...getEmptyToolPermissionContext(),
245787
+ ...getEmptyToolPermissionContext2(),
245652
245788
  mode: initialMode
245653
245789
  },
245654
245790
  agent: undefined,
@@ -247155,6 +247291,34 @@ var init_registerFrontmatterHooks = __esm(() => {
247155
247291
  init_sessionHooks();
247156
247292
  });
247157
247293
 
247294
+ // src/session/backgroundAbortRegistry.ts
247295
+ function registerBackgroundAgentAbort(agentId, controller) {
247296
+ runs.set(agentId, { controller, stopFired: false });
247297
+ }
247298
+ function unregisterBackgroundAgentAbort(agentId) {
247299
+ runs.delete(agentId);
247300
+ }
247301
+ function abortBackgroundAgentById(agentId) {
247302
+ const run = runs.get(agentId);
247303
+ if (!run)
247304
+ return false;
247305
+ run.controller.abort();
247306
+ return true;
247307
+ }
247308
+ function markSubagentStopFired(agentId) {
247309
+ const run = runs.get(agentId);
247310
+ if (run) {
247311
+ run.stopFired = true;
247312
+ }
247313
+ }
247314
+ function hasSubagentStopFired(agentId) {
247315
+ return runs.get(agentId)?.stopFired ?? false;
247316
+ }
247317
+ var runs;
247318
+ var init_backgroundAbortRegistry = __esm(() => {
247319
+ runs = new Map;
247320
+ });
247321
+
247158
247322
  // src/providers/shared/model/agent.ts
247159
247323
  function getDefaultSubagentModel() {
247160
247324
  return "inherit";
@@ -247237,6 +247401,12 @@ var init_agent = __esm(() => {
247237
247401
  });
247238
247402
 
247239
247403
  // src/providers/shared/routing.ts
247404
+ function resolveModelProvider(model, modelProviders) {
247405
+ const config2 = modelProviders?.[model];
247406
+ if (!config2)
247407
+ return null;
247408
+ return { model, ...config2 };
247409
+ }
247240
247410
  function normalize10(key) {
247241
247411
  return key.toLowerCase().replace(/[-_]/g, "");
247242
247412
  }
@@ -247541,9 +247711,6 @@ var init_caching = __esm(() => {
247541
247711
  init_microCompact();
247542
247712
  });
247543
247713
 
247544
- // src/providers/shared/model/antModels.ts
247545
- var init_antModels = () => {};
247546
-
247547
247714
  // src/permissions/bashClassifier.ts
247548
247715
  function createPromptRuleContent(description) {
247549
247716
  return `${PROMPT_PREFIX} ${description.trim()}`;
@@ -247646,7 +247813,7 @@ function filterToolsForAgent({
247646
247813
  }
247647
247814
  if (isAsync2 && !ASYNC_AGENT_ALLOWED_TOOLS.has(tool.name)) {
247648
247815
  if (isAgentSwarmsEnabled() && isInProcessTeammate()) {
247649
- if (toolMatchesName(tool, AGENT_TOOL_NAME3)) {
247816
+ if (toolMatchesName(tool, AGENT_TOOL_NAME2)) {
247650
247817
  return true;
247651
247818
  }
247652
247819
  if (IN_PROCESS_TEAMMATE_ALLOWED_TOOLS.has(tool.name)) {
@@ -247696,7 +247863,7 @@ function resolveAgentTools(agentDefinition, availableTools, isAsync2 = false, is
247696
247863
  let allowedAgentTypes;
247697
247864
  for (const toolSpec of agentTools) {
247698
247865
  const { toolName, ruleContent } = permissionRuleValueFromString(toolSpec);
247699
- if (toolName === AGENT_TOOL_NAME3) {
247866
+ if (toolName === AGENT_TOOL_NAME2) {
247700
247867
  if (ruleContent) {
247701
247868
  allowedAgentTypes = ruleContent.split(",").map((s) => s.trim());
247702
247869
  }
@@ -247915,6 +248082,8 @@ async function runAsyncAgentLifecycle({
247915
248082
  return;
247916
248083
  }
247917
248084
  const msg = errorMessage(error41);
248085
+ logForDebugging2(`Background agent ${taskId} failed: ${msg}
248086
+ ${error41 instanceof Error ? error41.stack ?? "" : ""}`, { level: "error" });
247918
248087
  failAgentTask(taskId, msg, rootSetAppState);
247919
248088
  const worktreeResult = await getWorktreeResult();
247920
248089
  enqueueAgentNotification({
@@ -248069,6 +248238,49 @@ async function initializeAgentMcpServers(agentDefinition, parentClients) {
248069
248238
  function isRecordableMessage(msg) {
248070
248239
  return msg.type === "assistant" || msg.type === "user" || msg.type === "progress" || msg.type === "system" && "subtype" in msg && msg.subtype === "compact_boundary";
248071
248240
  }
248241
+ function simplifySubagentMessageBlocks(msg) {
248242
+ const content = msg.message.content;
248243
+ if (!Array.isArray(content))
248244
+ return [];
248245
+ const out = [];
248246
+ for (const raw of content) {
248247
+ if (!raw || typeof raw !== "object")
248248
+ continue;
248249
+ const block2 = raw;
248250
+ switch (block2.type) {
248251
+ case "text":
248252
+ if (typeof block2.text === "string" && block2.text) {
248253
+ out.push({ type: "text", text: block2.text });
248254
+ }
248255
+ break;
248256
+ case "thinking":
248257
+ if (typeof block2.thinking === "string" && block2.thinking) {
248258
+ out.push({ type: "thinking", thinking: block2.thinking });
248259
+ }
248260
+ break;
248261
+ case "tool_use":
248262
+ out.push({
248263
+ type: "tool_use",
248264
+ tool_use_id: block2.id,
248265
+ name: block2.name,
248266
+ input: block2.input ?? {}
248267
+ });
248268
+ break;
248269
+ case "tool_result": {
248270
+ const c6 = block2.content;
248271
+ const text = typeof c6 === "string" ? c6 : Array.isArray(c6) ? c6.map((p) => p && typeof p === "object" && p.type === "text" ? String(p.text ?? "") : "").join("") : "";
248272
+ out.push({
248273
+ type: "tool_result",
248274
+ tool_use_id: block2.tool_use_id,
248275
+ content: text,
248276
+ is_error: Boolean(block2.is_error)
248277
+ });
248278
+ break;
248279
+ }
248280
+ }
248281
+ }
248282
+ return out;
248283
+ }
248072
248284
  async function* runAgent({
248073
248285
  agentDefinition,
248074
248286
  promptMessages,
@@ -248091,13 +248303,14 @@ async function* runAgent({
248091
248303
  description,
248092
248304
  transcriptSubdir,
248093
248305
  onQueryProgress,
248306
+ onPartialAssistant,
248094
248307
  agentName
248095
248308
  }) {
248096
248309
  const appState = toolUseContext.getAppState();
248097
248310
  const permissionMode = appState.toolPermissionContext.mode;
248098
248311
  const rootSetAppState = toolUseContext.setAppStateForTasks ?? toolUseContext.setAppState;
248099
248312
  const resolvedAgentModel = getAgentModel(agentDefinition.model, toolUseContext.options.mainLoopModel, model, permissionMode);
248100
- const providerOverride = resolveAgentProvider(agentName, agentDefinition.agentType, getInitialSettings());
248313
+ const providerOverride = resolveAgentProvider(agentName, agentDefinition.agentType, getInitialSettings()) ?? resolveModelProvider(resolvedAgentModel, toolUseContext.options.modelProviders);
248101
248314
  const effectiveModel = providerOverride ? providerOverride.model : resolvedAgentModel;
248102
248315
  const agentId = override?.agentId ? override.agentId : createAgentId();
248103
248316
  if (transcriptSubdir) {
@@ -248164,12 +248377,15 @@ async function* runAgent({
248164
248377
  effortValue
248165
248378
  };
248166
248379
  };
248167
- const resolvedTools = useExactTools ? availableTools : resolveAgentTools(agentDefinition, availableTools, isAsync2).resolvedTools;
248380
+ const resolvedTools = filterSubagentDisallowedTools(useExactTools ? availableTools : resolveAgentTools(agentDefinition, availableTools, isAsync2).resolvedTools, toolUseContext.options.subagentDisallowedTools);
248168
248381
  const additionalWorkingDirectories = Array.from(appState.toolPermissionContext.additionalWorkingDirectories.keys());
248169
248382
  const agentSystemPrompt = override?.systemPrompt ? override.systemPrompt : asSystemPrompt(await getAgentSystemPrompt(agentDefinition, toolUseContext, resolvedAgentModel, additionalWorkingDirectories, resolvedTools));
248170
248383
  const agentAbortController = override?.abortController ? override.abortController : isAsync2 ? new AbortController : toolUseContext.abortController;
248384
+ if (isAsync2) {
248385
+ registerBackgroundAgentAbort(agentId, agentAbortController);
248386
+ }
248171
248387
  const additionalContexts = [];
248172
- for await (const hookResult of executeSubagentStartHooks(agentId, agentDefinition.agentType, agentAbortController.signal)) {
248388
+ for await (const hookResult of executeSubagentStartHooks(agentId, agentDefinition.agentType, agentAbortController.signal, undefined, toolUseContext.toolUseId, isAsync2)) {
248173
248389
  if (hookResult.additionalContexts && hookResult.additionalContexts.length > 0) {
248174
248390
  additionalContexts.push(...hookResult.additionalContexts);
248175
248391
  }
@@ -248234,10 +248450,11 @@ async function* runAgent({
248234
248450
  verbose: toolUseContext.options.verbose,
248235
248451
  mainLoopModel: effectiveModel,
248236
248452
  providerOverride: providerOverride ?? undefined,
248237
- thinkingConfig: useExactTools ? toolUseContext.options.thinkingConfig : { type: "disabled" },
248453
+ thinkingConfig: toolUseContext.options.thinkingConfig,
248238
248454
  mcpClients: mergedMcpClients,
248239
248455
  mcpResources: toolUseContext.options.mcpResources,
248240
248456
  agentDefinitions: toolUseContext.options.agentDefinitions,
248457
+ subagentDisallowedTools: toolUseContext.options.subagentDisallowedTools,
248241
248458
  ...useExactTools && { querySource }
248242
248459
  };
248243
248460
  const agentToolRuntimeContext = createSubagentContext(toolUseContext, {
@@ -248272,6 +248489,12 @@ async function* runAgent({
248272
248489
  ...description && { description }
248273
248490
  }).catch((_err) => logForDebugging2(`Failed to write agent metadata: ${_err}`));
248274
248491
  let lastRecordedUuid = initialMessages.at(-1)?.uuid ?? null;
248492
+ let partialBaseMessage = null;
248493
+ const partialTextByIndex = new Map;
248494
+ const PARTIAL_PROGRESS_HOOK_INTERVAL_MS = 100;
248495
+ let lastPartialProgressHookAt = 0;
248496
+ let lastAssistantForFallback = null;
248497
+ let agentRunError;
248275
248498
  try {
248276
248499
  for await (const message of query({
248277
248500
  messages: initialMessages,
@@ -248284,8 +248507,37 @@ async function* runAgent({
248284
248507
  maxTurns: maxTurns ?? agentDefinition.maxTurns
248285
248508
  })) {
248286
248509
  onQueryProgress?.();
248287
- if (message.type === "stream_event" && message.event.type === "message_start" && message.ttftMs != null) {
248288
- toolUseContext.pushApiMetricsEntry?.(message.ttftMs);
248510
+ if (message.type === "stream_event") {
248511
+ const ev = message.event;
248512
+ if (ev.type === "message_start") {
248513
+ if (message.ttftMs != null) {
248514
+ toolUseContext.pushApiMetricsEntry?.(message.ttftMs);
248515
+ }
248516
+ if ((onPartialAssistant || isAsync2) && ev.message) {
248517
+ partialBaseMessage = ev.message;
248518
+ partialTextByIndex.clear();
248519
+ }
248520
+ } else if ((onPartialAssistant || isAsync2) && partialBaseMessage && ev.type === "content_block_delta" && ev.delta?.type === "text_delta" && typeof ev.delta.text === "string") {
248521
+ const idx = ev.index ?? 0;
248522
+ const acc = (partialTextByIndex.get(idx) ?? "") + ev.delta.text;
248523
+ partialTextByIndex.set(idx, acc);
248524
+ onPartialAssistant?.({
248525
+ type: "assistant",
248526
+ message: {
248527
+ ...partialBaseMessage,
248528
+ content: [{ type: "text", text: acc, citations: null }]
248529
+ },
248530
+ uuid: randomUUID10(),
248531
+ timestamp: new Date().toISOString()
248532
+ });
248533
+ if (isAsync2) {
248534
+ const now = Date.now();
248535
+ if (now - lastPartialProgressHookAt >= PARTIAL_PROGRESS_HOOK_INTERVAL_MS) {
248536
+ lastPartialProgressHookAt = now;
248537
+ executeSubagentProgressHooks(agentId, agentDefinition.agentType, partialBaseMessage.id, toolUseContext.toolUseId, [{ type: "text", text: acc }]).catch(() => {});
248538
+ }
248539
+ }
248540
+ }
248289
248541
  continue;
248290
248542
  }
248291
248543
  if (message.type === "attachment") {
@@ -248310,6 +248562,16 @@ async function* runAgent({
248310
248562
  if (message.type !== "progress") {
248311
248563
  lastRecordedUuid = message.uuid;
248312
248564
  }
248565
+ if (isAsync2 && message.type === "assistant" && message.message.content.some((b) => b.type === "text" && b.text.trim().length > 0)) {
248566
+ lastAssistantForFallback = message;
248567
+ }
248568
+ if (isAsync2 && (message.type === "assistant" || message.type === "user")) {
248569
+ const blocks = simplifySubagentMessageBlocks(message);
248570
+ if (blocks.length > 0) {
248571
+ const messageId = (message.type === "assistant" ? message.message.id : undefined) ?? message.uuid;
248572
+ executeSubagentProgressHooks(agentId, agentDefinition.agentType, messageId, toolUseContext.toolUseId, blocks).catch(() => {});
248573
+ }
248574
+ }
248313
248575
  yield message;
248314
248576
  }
248315
248577
  }
@@ -248319,7 +248581,30 @@ async function* runAgent({
248319
248581
  if (isBuiltInAgent(agentDefinition) && agentDefinition.callback) {
248320
248582
  agentDefinition.callback();
248321
248583
  }
248584
+ } catch (err2) {
248585
+ agentRunError = err2;
248586
+ throw err2;
248322
248587
  } finally {
248588
+ const naturalStopAlreadyFired = isAsync2 && hasSubagentStopFired(agentId);
248589
+ if (isAsync2) {
248590
+ unregisterBackgroundAgentAbort(agentId);
248591
+ }
248592
+ if (isAsync2 && agentRunError !== undefined) {
248593
+ logForDebugging2(`Background agent ${agentId} crashed: ${errorMessage(agentRunError)}
248594
+ ${agentRunError instanceof Error ? agentRunError.stack ?? "" : ""}`, { level: "error" });
248595
+ }
248596
+ if (isAsync2 && !naturalStopAlreadyFired) {
248597
+ try {
248598
+ const fallbackAppState = agentToolRuntimeContext.getAppState();
248599
+ const terminal = agentAbortController.signal.aborted ? { status: "stopped" } : agentRunError !== undefined ? { status: "failed", errorMessage: errorMessage(agentRunError) } : { status: "completed" };
248600
+ const fallbackStop = executeStopHooks(fallbackAppState.toolPermissionContext.mode, undefined, undefined, false, agentId, agentToolRuntimeContext, lastAssistantForFallback ? [lastAssistantForFallback] : undefined, agentDefinition.agentType, undefined, terminal);
248601
+ for await (const evt of fallbackStop) {}
248602
+ } catch (err2) {
248603
+ logForDebugging2(`Fallback SubagentStop failed for ${agentId}: ${err2}`, {
248604
+ level: "warn"
248605
+ });
248606
+ }
248607
+ }
248323
248608
  await mcpCleanup();
248324
248609
  if (agentDefinition.hooks) {
248325
248610
  clearSessionHooks(rootSetAppState, agentId);
@@ -248406,6 +248691,7 @@ var init_runAgent = __esm(() => {
248406
248691
  init_cacheBreak();
248407
248692
  init_client5();
248408
248693
  init_config7();
248694
+ init_permissions2();
248409
248695
  init_killShellTasks();
248410
248696
  init_attachments();
248411
248697
  init_errors2();
@@ -248415,6 +248701,7 @@ var init_runAgent = __esm(() => {
248415
248701
  init_registerFrontmatterHooks();
248416
248702
  init_sessionHooks();
248417
248703
  init_hooks2();
248704
+ init_backgroundAbortRegistry();
248418
248705
  init_messages4();
248419
248706
  init_agent();
248420
248707
  init_settings2();
@@ -248820,7 +249107,7 @@ var init_TodoWriteTool = __esm(() => {
248820
249107
  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`;
248821
249108
  const nudge = verificationNudgeNeeded ? `
248822
249109
 
248823
- 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.` : "";
249110
+ 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.` : "";
248824
249111
  return {
248825
249112
  tool_use_id: toolUseID,
248826
249113
  type: "tool_result",
@@ -251569,7 +251856,9 @@ var init_coreSchemas = __esm(() => {
251569
251856
  SubagentStartHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external.object({
251570
251857
  hook_event_name: exports_external.literal("SubagentStart"),
251571
251858
  agent_id: exports_external.string(),
251572
- agent_type: exports_external.string()
251859
+ agent_type: exports_external.string(),
251860
+ tool_use_id: exports_external.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)."),
251861
+ is_background: exports_external.boolean().optional().describe("True when the subagent was launched with run_in_background (async). " + "Lets hosts scope background-specific UI/notifications to async agents.")
251573
251862
  })));
251574
251863
  SubagentStopHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external.object({
251575
251864
  hook_event_name: exports_external.literal("SubagentStop"),
@@ -251577,7 +251866,9 @@ var init_coreSchemas = __esm(() => {
251577
251866
  agent_id: exports_external.string(),
251578
251867
  agent_transcript_path: exports_external.string(),
251579
251868
  agent_type: exports_external.string(),
251580
- last_assistant_message: exports_external.string().optional().describe("Text content of the last assistant message before stopping. " + "Avoids the need to read and parse the transcript file.")
251869
+ last_assistant_message: exports_external.string().optional().describe("Text content of the last assistant message before stopping. " + "Avoids the need to read and parse the transcript file."),
251870
+ status: exports_external.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."),
251871
+ error_message: exports_external.string().optional().describe("Present when status is failed: the error that aborted the run.")
251581
251872
  })));
251582
251873
  PreCompactHookInputSchema = lazySchema(() => BaseHookInputSchema().and(exports_external.object({
251583
251874
  hook_event_name: exports_external.literal("PreCompact"),
@@ -252083,6 +252374,7 @@ var init_coreSchemas = __esm(() => {
252083
252374
  compact_metadata: exports_external.object({
252084
252375
  trigger: exports_external.enum(["manual", "auto"]),
252085
252376
  pre_tokens: exports_external.number(),
252377
+ post_tokens: exports_external.number().optional().describe("Estimated resulting context size after compaction."),
252086
252378
  preserved_segment: exports_external.object({
252087
252379
  head_uuid: UUIDPlaceholder(),
252088
252380
  anchor_uuid: UUIDPlaceholder(),
@@ -264458,7 +264750,7 @@ ${forkEnabled ? "For fresh agents, terse" : "Terse"} command-style prompts produ
264458
264750
  <example>
264459
264751
  user: "What's left on this branch before we can ship?"
264460
264752
  assistant: <thinking>Forking this — it's a survey question. I want the punch list, not the git output in my context.</thinking>
264461
- ${AGENT_TOOL_NAME3}({
264753
+ ${AGENT_TOOL_NAME2}({
264462
264754
  name: "ship-audit",
264463
264755
  description: "Branch ship-readiness audit",
264464
264756
  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."
@@ -264485,7 +264777,7 @@ assistant: <thinking>I'll ask the code-reviewer agent — it won't see my analys
264485
264777
  <commentary>
264486
264778
  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.
264487
264779
  </commentary>
264488
- ${AGENT_TOOL_NAME3}({
264780
+ ${AGENT_TOOL_NAME2}({
264489
264781
  name: "migration-review",
264490
264782
  description: "Independent migration review",
264491
264783
  subagent_type: "code-reviewer",
@@ -264515,7 +264807,7 @@ function isPrime(n) {
264515
264807
  <commentary>
264516
264808
  Since a significant piece of code was written and the task was completed, now use the test-runner agent to run the tests
264517
264809
  </commentary>
264518
- assistant: Uses the ${AGENT_TOOL_NAME3} tool to launch the test-runner agent
264810
+ assistant: Uses the ${AGENT_TOOL_NAME2} tool to launch the test-runner agent
264519
264811
  </example>
264520
264812
 
264521
264813
  <example>
@@ -264523,7 +264815,7 @@ user: "Hello"
264523
264815
  <commentary>
264524
264816
  Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
264525
264817
  </commentary>
264526
- assistant: "I'm going to use the ${AGENT_TOOL_NAME3} tool to launch the greeting-responder agent"
264818
+ assistant: "I'm going to use the ${AGENT_TOOL_NAME2} tool to launch the greeting-responder agent"
264527
264819
  </example>
264528
264820
  `;
264529
264821
  const listViaAttachment = shouldInjectAgentListInMessages();
@@ -264532,11 +264824,11 @@ ${effectiveAgents.map((agent) => formatAgentLine(agent)).join(`
264532
264824
  `)}`;
264533
264825
  const shared2 = `Launch a new agent to handle complex, multi-step tasks autonomously.
264534
264826
 
264535
- 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.
264827
+ 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.
264536
264828
 
264537
264829
  ${agentListSection}
264538
264830
 
264539
- ${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.`}`;
264831
+ ${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.`}`;
264540
264832
  if (isCoordinator) {
264541
264833
  return shared2;
264542
264834
  }
@@ -264544,10 +264836,10 @@ ${forkEnabled ? `When using the ${AGENT_TOOL_NAME3} tool, specify a subagent_typ
264544
264836
  const fileSearchHint = embedded ? "`find` via the Bash tool" : `the ${GLOB_TOOL_NAME2} tool`;
264545
264837
  const contentSearchHint = embedded ? "`grep` via the Bash tool" : `the ${GLOB_TOOL_NAME2} tool`;
264546
264838
  const whenNotToUseSection = forkEnabled ? "" : `
264547
- When NOT to use the ${AGENT_TOOL_NAME3} tool:
264548
- - 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
264839
+ When NOT to use the ${AGENT_TOOL_NAME2} tool:
264840
+ - 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
264549
264841
  - If you are searching for a specific class definition like "class Foo", use ${contentSearchHint} instead, to find the match more quickly
264550
- - 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
264842
+ - 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
264551
264843
  - Other tasks that are not related to the agent descriptions above
264552
264844
  `;
264553
264845
  const concurrencyNote = !listViaAttachment && getSubscriptionType() !== "pro" ? `
@@ -264564,7 +264856,7 @@ Usage notes:
264564
264856
  - The agent's outputs should generally be trusted
264565
264857
  - 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"}
264566
264858
  - 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.
264567
- - 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.
264859
+ - 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.
264568
264860
  - 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" ? `
264569
264861
  - 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() ? `
264570
264862
  - The run_in_background, name, team_name, and mode parameters are not available in this context. Only synchronous subagents are supported.` : isTeammate() ? `
@@ -264714,11 +265006,11 @@ var init_AgentTool = __esm(() => {
264714
265006
  }
264715
265007
  }
264716
265008
  const agentsWithMcpRequirementsMet = filterAgentsByMcpRequirements(agents, mcpServersWithTools);
264717
- const filteredAgents = filterDeniedAgents(agentsWithMcpRequirementsMet, toolPermissionContext, AGENT_TOOL_NAME3);
265009
+ const filteredAgents = filterDeniedAgents(agentsWithMcpRequirementsMet, toolPermissionContext, AGENT_TOOL_NAME2);
264718
265010
  const isCoordinator = false;
264719
265011
  return await getPrompt3(filteredAgents, isCoordinator, allowedAgentTypes);
264720
265012
  },
264721
- name: AGENT_TOOL_NAME3,
265013
+ name: AGENT_TOOL_NAME2,
264722
265014
  searchHint: "delegate work to a subagent",
264723
265015
  aliases: [LEGACY_AGENT_TOOL_NAME2],
264724
265016
  maxResultSizeChars: 1e5,
@@ -264798,13 +265090,13 @@ var init_AgentTool = __esm(() => {
264798
265090
  const {
264799
265091
  allowedAgentTypes
264800
265092
  } = toolUseContext.options.agentDefinitions;
264801
- const agents = filterDeniedAgents(allowedAgentTypes ? allAgents.filter((a2) => allowedAgentTypes.includes(a2.agentType)) : allAgents, appState.toolPermissionContext, AGENT_TOOL_NAME3);
265093
+ const agents = filterDeniedAgents(allowedAgentTypes ? allAgents.filter((a2) => allowedAgentTypes.includes(a2.agentType)) : allAgents, appState.toolPermissionContext, AGENT_TOOL_NAME2);
264802
265094
  const found = agents.find((agent) => agent.agentType === effectiveType);
264803
265095
  if (!found) {
264804
265096
  const agentExistsButDenied = allAgents.find((agent) => agent.agentType === effectiveType);
264805
265097
  if (agentExistsButDenied) {
264806
- const denyRule = getDenyRuleForAgent(appState.toolPermissionContext, AGENT_TOOL_NAME3, effectiveType);
264807
- throw new Error(`Agent type '${effectiveType}' has been denied by permission rule '${AGENT_TOOL_NAME3}(${effectiveType})' from ${denyRule?.source ?? "settings"}.`);
265098
+ const denyRule = getDenyRuleForAgent(appState.toolPermissionContext, AGENT_TOOL_NAME2, effectiveType);
265099
+ throw new Error(`Agent type '${effectiveType}' has been denied by permission rule '${AGENT_TOOL_NAME2}(${effectiveType})' from ${denyRule?.source ?? "settings"}.`);
264808
265100
  }
264809
265101
  throw new Error(`Agent type '${effectiveType}' not found. Available agents: ${agents.map((a2) => a2.agentType).join(", ")}`);
264810
265102
  }
@@ -265175,6 +265467,19 @@ ${reasons}`);
265175
265467
  ...runAgentParams.override,
265176
265468
  agentId: syncAgentId
265177
265469
  },
265470
+ onPartialAssistant: onProgress ? (partial2) => {
265471
+ if (partial2.message.content.length === 0)
265472
+ return;
265473
+ onProgress({
265474
+ toolUseID: `agent_${assistantMessage.message.id}`,
265475
+ data: {
265476
+ message: partial2,
265477
+ type: "agent_progress",
265478
+ prompt: "",
265479
+ agentId: syncAgentId
265480
+ }
265481
+ });
265482
+ } : undefined,
265178
265483
  onCacheSafeParams: summaryTaskId && getSdkAgentProgressSummariesEnabled() ? (params) => {
265179
265484
  const {
265180
265485
  stop
@@ -265357,21 +265662,16 @@ ${reasons}`);
265357
265662
  }
265358
265663
  const normalizedNew = normalizeMessages([message]);
265359
265664
  for (const m of normalizedNew) {
265360
- for (const content of m.message.content) {
265361
- if (content.type !== "tool_use" && content.type !== "tool_result") {
265362
- continue;
265363
- }
265364
- if (onProgress) {
265365
- onProgress({
265366
- toolUseID: `agent_${assistantMessage.message.id}`,
265367
- data: {
265368
- message: m,
265369
- type: "agent_progress",
265370
- prompt: "",
265371
- agentId: syncAgentId
265372
- }
265373
- });
265374
- }
265665
+ if (onProgress && m.message.content.length > 0) {
265666
+ onProgress({
265667
+ toolUseID: `agent_${assistantMessage.message.id}`,
265668
+ data: {
265669
+ message: m,
265670
+ type: "agent_progress",
265671
+ prompt: "",
265672
+ agentId: syncAgentId
265673
+ }
265674
+ });
265375
265675
  }
265376
265676
  }
265377
265677
  }
@@ -265519,10 +265819,9 @@ Briefly tell the user what you launched and end your response.`
265519
265819
  if (data.status === "async_launched") {
265520
265820
  const prefix = `Async agent launched successfully.
265521
265821
  agentId: ${data.agentId} (internal ID - do not mention to user. Use SendMessage with to: '${data.agentId}' to continue this agent.)
265522
- The agent is working in the background. You will be notified automatically when it completes.`;
265523
- 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.
265524
- output_file: ${data.outputFile}
265525
- 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.`;
265822
+ The agent is working in the background. Its result will be delivered to you automatically when it completes.`;
265823
+ 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.
265824
+ Do NOT read its output/transcript file to check progress — its result will arrive automatically in a subsequent message.`;
265526
265825
  const text = `${prefix}
265527
265826
  ${instructions}`;
265528
265827
  return {
@@ -276167,7 +276466,7 @@ Git Safety Protocol:
276167
276466
 
276168
276467
  Important notes:
276169
276468
  - NEVER run additional commands to read or explore code, besides git bash commands
276170
- - NEVER use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME3} tools
276469
+ - NEVER use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME2} tools
276171
276470
  - DO NOT push to the remote repository unless the user explicitly asks you to do so
276172
276471
  - 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.
276173
276472
  - IMPORTANT: Do not use --no-edit with git rebase commands, as the --no-edit flag is not a valid option for git rebase.
@@ -276213,7 +276512,7 @@ EOF
276213
276512
  </example>
276214
276513
 
276215
276514
  Important:
276216
- - DO NOT use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME3} tools
276515
+ - DO NOT use the ${TodoWriteTool.name} or ${AGENT_TOOL_NAME2} tools
276217
276516
  - Return the PR URL when you're done, so the user can see it
276218
276517
 
276219
276518
  # Other common operations
@@ -289150,7 +289449,7 @@ async function addMcpConfig(name, config2, scope) {
289150
289449
  if (name.match(/[^a-zA-Z0-9_-]/)) {
289151
289450
  throw new Error(`Invalid name ${name}. Names can only contain letters, numbers, hyphens, and underscores.`);
289152
289451
  }
289153
- if (isClaudeInChromeMCPServer2(name)) {
289452
+ if (isClaudeInChromeMCPServer(name)) {
289154
289453
  throw new Error(`Cannot add MCP server "${name}": this name is reserved.`);
289155
289454
  }
289156
289455
  if (false) {}
@@ -297384,6 +297683,7 @@ var init_client5 = __esm(() => {
297384
297683
  init_auth();
297385
297684
  init_cleanupRegistry();
297386
297685
  init_codeIndexing();
297686
+ init_knownServers();
297387
297687
  init_debug();
297388
297688
  init_envUtils();
297389
297689
  init_errors2();
@@ -300174,7 +300474,7 @@ function getDeferredToolsDeltaAttachment(tools, model, messages, scanContext) {
300174
300474
  function getAgentListingDeltaAttachment(toolUseContext, messages) {
300175
300475
  if (!shouldInjectAgentListInMessages())
300176
300476
  return [];
300177
- if (!toolUseContext.options.tools.some((t) => toolMatchesName2(t, AGENT_TOOL_NAME2))) {
300477
+ if (!toolUseContext.options.tools.some((t) => toolMatchesName2(t, AGENT_TOOL_NAME))) {
300178
300478
  return [];
300179
300479
  }
300180
300480
  const { activeAgents, allowedAgentTypes } = toolUseContext.options.agentDefinitions;
@@ -300185,7 +300485,7 @@ function getAgentListingDeltaAttachment(toolUseContext, messages) {
300185
300485
  mcpServers.add(info.serverName);
300186
300486
  }
300187
300487
  const permissionContext = toolUseContext.getAppState().toolPermissionContext;
300188
- let filtered = filterDeniedAgents(filterAgentsByMcpRequirements(activeAgents, [...mcpServers]), permissionContext, AGENT_TOOL_NAME2);
300488
+ let filtered = filterDeniedAgents(filterAgentsByMcpRequirements(activeAgents, [...mcpServers]), permissionContext, AGENT_TOOL_NAME);
300189
300489
  if (allowedAgentTypes) {
300190
300490
  filtered = filtered.filter((a2) => allowedAgentTypes.includes(a2.agentType));
300191
300491
  }
@@ -300799,8 +301099,8 @@ async function getSkillListingAttachments(toolUseContext) {
300799
301099
  sent.add(cmd.name);
300800
301100
  }
300801
301101
  logForDebugging2(`Sending ${newSkills.length} skills via attachment (${isInitial ? "initial" : "dynamic"}, ${sent.size} total sent)`);
300802
- const contextWindowTokens = getContextWindowForModel(toolUseContext.options.mainLoopModel, getSdkBetas());
300803
- const content = formatCommandsWithinBudget(newSkills, contextWindowTokens);
301102
+ const contextWindowTokens2 = getContextWindowForModel(toolUseContext.options.mainLoopModel, getSdkBetas());
301103
+ const content = formatCommandsWithinBudget(newSkills, contextWindowTokens2);
300804
301104
  return [
300805
301105
  {
300806
301106
  type: "skill_listing",
@@ -302416,6 +302716,7 @@ async function compactConversation(messages, context4, cacheSafeParams, suppress
302416
302716
  ...postCompactFileAttachments,
302417
302717
  ...hookMessages
302418
302718
  ]);
302719
+ boundaryMarker.compactMetadata.postTokens = truePostCompactTokenCount;
302419
302720
  const compactionUsage = getTokenUsage(summaryResponse);
302420
302721
  const querySourceForEvent = recompactionInfo?.querySource ?? context4.options.querySource ?? "unknown";
302421
302722
  logEvent("tengu_compact", {
@@ -303822,6 +304123,24 @@ async function autoCompactIfNeeded(messages, toolUseContext, cacheSafeParams, qu
303822
304123
  return { wasCompacted: false, consecutiveFailures: nextFailures };
303823
304124
  }
303824
304125
  }
304126
+ async function manualCompact(messages, toolUseContext, cacheSafeParams, instructions, deps = { compactConversation, trySessionMemoryCompaction }) {
304127
+ if (isEnvTruthy(process.env.DISABLE_COMPACT)) {
304128
+ return { wasCompacted: false };
304129
+ }
304130
+ if (!instructions) {
304131
+ const sessionMemoryResult = await deps.trySessionMemoryCompaction(messages, toolUseContext.agentId);
304132
+ if (sessionMemoryResult) {
304133
+ setLastSummarizedMessageId(undefined);
304134
+ runPostCompactCleanup();
304135
+ markPostCompaction();
304136
+ return { wasCompacted: true, compactionResult: sessionMemoryResult };
304137
+ }
304138
+ }
304139
+ const compactionResult = await deps.compactConversation(messages, toolUseContext, cacheSafeParams, false, instructions, false);
304140
+ setLastSummarizedMessageId(undefined);
304141
+ runPostCompactCleanup();
304142
+ return { wasCompacted: true, compactionResult };
304143
+ }
303825
304144
  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;
303826
304145
  var init_autoCompact = __esm(() => {
303827
304146
  init_state();
@@ -304539,11 +304858,13 @@ __export(exports_toolSearch, {
304539
304858
  isToolSearchEnabledOptimistic: () => isToolSearchEnabledOptimistic,
304540
304859
  isToolSearchEnabled: () => isToolSearchEnabled,
304541
304860
  isToolReferenceBlock: () => isToolReferenceBlock,
304861
+ isNativeToolReferenceWire: () => isNativeToolReferenceWire,
304542
304862
  isDeferredToolsDeltaEnabled: () => isDeferredToolsDeltaEnabled,
304543
304863
  getToolSearchMode: () => getToolSearchMode,
304544
304864
  getDeferredToolsDelta: () => getDeferredToolsDelta,
304545
304865
  getAutoToolSearchCharThreshold: () => getAutoToolSearchCharThreshold,
304546
- extractDiscoveredToolNames: () => extractDiscoveredToolNames
304866
+ extractDiscoveredToolNames: () => extractDiscoveredToolNames,
304867
+ DISCOVERED_TOOL_MARKER_RE: () => DISCOVERED_TOOL_MARKER_RE
304547
304868
  });
304548
304869
  function parseAutoPercentage(value) {
304549
304870
  if (!value.startsWith("auto:"))
@@ -304562,7 +304883,7 @@ function isAutoToolSearchMode(value) {
304562
304883
  return value === "auto" || value.startsWith("auto:");
304563
304884
  }
304564
304885
  function getAutoToolSearchPercentage() {
304565
- const value = process.env.ENABLE_TOOL_SEARCH;
304886
+ const value = resolveEnvVar("ENABLE_TOOL_SEARCH");
304566
304887
  if (!value)
304567
304888
  return DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE;
304568
304889
  if (value === "auto")
@@ -304585,7 +304906,7 @@ function getToolSearchMode() {
304585
304906
  if (isEnvTruthy(resolveEnvVar("DISABLE_EXPERIMENTAL_BETAS"))) {
304586
304907
  return "standard";
304587
304908
  }
304588
- const value = process.env.ENABLE_TOOL_SEARCH;
304909
+ const value = resolveEnvVar("ENABLE_TOOL_SEARCH");
304589
304910
  const autoPercent = value ? parseAutoPercentage(value) : null;
304590
304911
  if (autoPercent === 0)
304591
304912
  return "tst";
@@ -304596,7 +304917,7 @@ function getToolSearchMode() {
304596
304917
  }
304597
304918
  if (isEnvTruthy(value))
304598
304919
  return "tst";
304599
- if (isEnvDefinedFalsy(process.env.ENABLE_TOOL_SEARCH))
304920
+ if (isEnvDefinedFalsy(value))
304600
304921
  return "standard";
304601
304922
  return "tst";
304602
304923
  }
@@ -304624,11 +304945,12 @@ function isToolSearchEnabledOptimistic() {
304624
304945
  if (mode === "standard") {
304625
304946
  if (!loggedOptimistic) {
304626
304947
  loggedOptimistic = true;
304627
- logForDebugging2(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=false`);
304948
+ logForDebugging2(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${resolveEnvVar("ENABLE_TOOL_SEARCH")}, result=false`);
304628
304949
  }
304629
304950
  return false;
304630
304951
  }
304631
- if (!process.env.ENABLE_TOOL_SEARCH && isFamily(getProvider(), "firstParty") && !isFirstPartyAnthropicBaseUrl()) {
304952
+ const enableToolSearchValue = resolveEnvVar("ENABLE_TOOL_SEARCH");
304953
+ if (!enableToolSearchValue && isFamily(getProvider(), "firstParty") && !isFirstPartyAnthropicBaseUrl()) {
304632
304954
  if (!loggedOptimistic) {
304633
304955
  loggedOptimistic = true;
304634
304956
  logForDebugging2(`[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.`);
@@ -304637,10 +304959,13 @@ function isToolSearchEnabledOptimistic() {
304637
304959
  }
304638
304960
  if (!loggedOptimistic) {
304639
304961
  loggedOptimistic = true;
304640
- logForDebugging2(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${process.env.ENABLE_TOOL_SEARCH}, result=true`);
304962
+ logForDebugging2(`[ToolSearch:optimistic] mode=${mode}, ENABLE_TOOL_SEARCH=${enableToolSearchValue}, result=true`);
304641
304963
  }
304642
304964
  return true;
304643
304965
  }
304966
+ function isNativeToolReferenceWire() {
304967
+ return isFamily(getProvider(), "firstParty") && isFirstPartyAnthropicBaseUrl();
304968
+ }
304644
304969
  function isToolSearchToolAvailable(tools) {
304645
304970
  return tools.some((tool) => toolMatchesName2(tool, TOOL_SEARCH_TOOL_NAME));
304646
304971
  }
@@ -304712,6 +305037,14 @@ function isToolReferenceWithName(obj) {
304712
305037
  function isToolResultBlockWithContent(obj) {
304713
305038
  return typeof obj === "object" && obj !== null && "type" in obj && obj.type === "tool_result" && "content" in obj && Array.isArray(obj.content);
304714
305039
  }
305040
+ function isToolResultBlockWithStringContent(obj) {
305041
+ return typeof obj === "object" && obj !== null && obj.type === "tool_result" && typeof obj.content === "string";
305042
+ }
305043
+ function scanDiscoveredToolMarkers(text, into) {
305044
+ for (const m of text.matchAll(DISCOVERED_TOOL_MARKER_RE)) {
305045
+ into.add(m[1]);
305046
+ }
305047
+ }
304715
305048
  function extractDiscoveredToolNames(messages) {
304716
305049
  const discoveredTools = new Set;
304717
305050
  let carriedFromBoundary = 0;
@@ -304735,8 +305068,12 @@ function extractDiscoveredToolNames(messages) {
304735
305068
  for (const item of block2.content) {
304736
305069
  if (isToolReferenceWithName(item)) {
304737
305070
  discoveredTools.add(item.tool_name);
305071
+ } else if (typeof item?.text === "string") {
305072
+ scanDiscoveredToolMarkers(item.text, discoveredTools);
304738
305073
  }
304739
305074
  }
305075
+ } else if (isToolResultBlockWithStringContent(block2)) {
305076
+ scanDiscoveredToolMarkers(block2.content, discoveredTools);
304740
305077
  }
304741
305078
  }
304742
305079
  }
@@ -304814,7 +305151,7 @@ async function checkAutoThreshold(tools, getToolPermissionContext, agents, model
304814
305151
  metrics: { deferredToolDescriptionChars, charThreshold }
304815
305152
  };
304816
305153
  }
304817
- var DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE = 10, CHARS_PER_TOKEN2 = 2.5, getDeferredToolTokenCount, DEFAULT_UNSUPPORTED_MODEL_PATTERNS, loggedOptimistic = false;
305154
+ var DEFAULT_AUTO_TOOL_SEARCH_PERCENTAGE = 10, CHARS_PER_TOKEN2 = 2.5, getDeferredToolTokenCount, DEFAULT_UNSUPPORTED_MODEL_PATTERNS, loggedOptimistic = false, DISCOVERED_TOOL_MARKER_RE;
304818
305155
  var init_toolSearch = __esm(() => {
304819
305156
  init_memoize();
304820
305157
  init_Tool();
@@ -304842,6 +305179,7 @@ var init_toolSearch = __esm(() => {
304842
305179
  }
304843
305180
  }, (tools) => tools.filter((t) => isDeferredTool(t)).map((t) => t.name).join(","));
304844
305181
  DEFAULT_UNSUPPORTED_MODEL_PATTERNS = ["haiku"];
305182
+ DISCOVERED_TOOL_MARKER_RE = /<discovered-tool name="([^"]+)" \/>/g;
304845
305183
  });
304846
305184
 
304847
305185
  // src/providers/shared/tokenCount.ts
@@ -306273,6 +306611,7 @@ var init_prompts2 = __esm(() => {
306273
306611
  init_debug();
306274
306612
  init_memdir();
306275
306613
  init_mcpInstructionsDelta();
306614
+ init_antModels();
306276
306615
  init_state2();
306277
306616
  CLAUDE_4_5_OR_4_6_MODEL_IDS = {
306278
306617
  opus: "claude-opus-4-6",
@@ -306698,7 +307037,7 @@ var init_api3 = __esm(() => {
306698
307037
  init_zodToJsonSchema2();
306699
307038
  SWARM_FIELDS_BY_TOOL = {
306700
307039
  [EXIT_PLAN_MODE_V2_TOOL_NAME]: ["launchSwarm", "teammateCount"],
306701
- [AGENT_TOOL_NAME2]: ["name", "team_name", "mode"]
307040
+ [AGENT_TOOL_NAME]: ["name", "team_name", "mode"]
306702
307041
  };
306703
307042
  });
306704
307043
 
@@ -307024,7 +307363,8 @@ async function* queryModel(messages, systemPrompt, thinkingConfig, tools, signal
307024
307363
  } else {
307025
307364
  filteredTools = tools.filter((t) => !toolMatchesName2(t, TOOL_SEARCH_TOOL_NAME));
307026
307365
  }
307027
- const toolSearchHeader = useToolSearch ? getToolSearchBetaHeader() : null;
307366
+ const nativeToolReferenceWire = useToolSearch && isNativeToolReferenceWire();
307367
+ const toolSearchHeader = nativeToolReferenceWire ? getToolSearchBetaHeader() : null;
307028
307368
  if (toolSearchHeader && !betas.includes(toolSearchHeader)) {
307029
307369
  betas.push(toolSearchHeader);
307030
307370
  }
@@ -307032,7 +307372,7 @@ async function* queryModel(messages, systemPrompt, thinkingConfig, tools, signal
307032
307372
  let cacheEditingBetaHeader = "";
307033
307373
  if (false) {}
307034
307374
  const useGlobalCacheFeature = shouldUseGlobalCacheScope();
307035
- const willDefer = (t) => useToolSearch && (deferredToolNames.has(t.name) || shouldDeferLspTool(t));
307375
+ const willDefer = (t) => nativeToolReferenceWire && (deferredToolNames.has(t.name) || shouldDeferLspTool(t));
307036
307376
  const needsToolBasedCacheMarker = useGlobalCacheFeature && filteredTools.some((t) => t.isMcp === true && !willDefer(t));
307037
307377
  if (useGlobalCacheFeature && !betas.includes(PROMPT_CACHING_SCOPE_BETA_HEADER)) {
307038
307378
  betas.push(PROMPT_CACHING_SCOPE_BETA_HEADER);
@@ -308038,7 +308378,7 @@ async function queryHaiku({
308038
308378
  enablePromptCaching: options2.enablePromptCaching ?? false,
308039
308379
  outputFormat,
308040
308380
  async getToolPermissionContext() {
308041
- return getEmptyToolPermissionContext();
308381
+ return getEmptyToolPermissionContext2();
308042
308382
  }
308043
308383
  }
308044
308384
  });
@@ -308077,7 +308417,7 @@ async function queryWithModel({
308077
308417
  enablePromptCaching: options2.enablePromptCaching ?? false,
308078
308418
  outputFormat,
308079
308419
  async getToolPermissionContext() {
308080
- return getEmptyToolPermissionContext();
308420
+ return getEmptyToolPermissionContext2();
308081
308421
  }
308082
308422
  }
308083
308423
  });
@@ -308961,7 +309301,9 @@ __export(exports_permissions, {
308961
309301
  getAskRules: () => getAskRules,
308962
309302
  getAskRuleForTool: () => getAskRuleForTool,
308963
309303
  getAllowRules: () => getAllowRules,
309304
+ filterSubagentDisallowedTools: () => filterSubagentDisallowedTools,
308964
309305
  filterDeniedAgents: () => filterDeniedAgents,
309306
+ denySessionTools: () => denySessionTools,
308965
309307
  deletePermissionRule: () => deletePermissionRule,
308966
309308
  createPermissionRequestMessage: () => createPermissionRequestMessage2,
308967
309309
  checkRuleBasedPermissions: () => checkRuleBasedPermissions,
@@ -309043,6 +309385,23 @@ function getDenyRules(context4) {
309043
309385
  ruleValue: permissionRuleValueFromString(ruleString)
309044
309386
  })));
309045
309387
  }
309388
+ function denySessionTools(context4, toolNames) {
309389
+ if (!toolNames || toolNames.length === 0)
309390
+ return context4;
309391
+ return {
309392
+ ...context4,
309393
+ alwaysDenyRules: {
309394
+ ...context4.alwaysDenyRules,
309395
+ session: [...context4.alwaysDenyRules.session ?? [], ...toolNames]
309396
+ }
309397
+ };
309398
+ }
309399
+ function filterSubagentDisallowedTools(tools, subagentDisallowedTools) {
309400
+ if (!subagentDisallowedTools || subagentDisallowedTools.length === 0)
309401
+ return tools;
309402
+ const context4 = denySessionTools(getEmptyToolPermissionContext(), subagentDisallowedTools);
309403
+ return tools.filter((tool) => getDenyRuleForTool(context4, tool) === null);
309404
+ }
309046
309405
  function getAskRules(context4) {
309047
309406
  return PERMISSION_RULE_SOURCES.flatMap((source) => (context4.alwaysAskRules[source] || []).map((ruleString) => ({
309048
309407
  source,
@@ -309431,6 +309790,7 @@ var _shouldUseSandbox = null, CLASSIFIER_FAIL_CLOSED_REFRESH_MS, PERMISSION_RULE
309431
309790
  var init_permissions2 = __esm(() => {
309432
309791
  init_canonical();
309433
309792
  init_mcpStringUtils();
309793
+ init_toolRuntime();
309434
309794
  init_commands();
309435
309795
  init_debug();
309436
309796
  init_errors2();
@@ -309627,7 +309987,7 @@ function isDangerousPowerShellPermission(toolName, ruleContent) {
309627
309987
  return false;
309628
309988
  }
309629
309989
  function isDangerousTaskPermission(toolName, _ruleContent) {
309630
- return normalizeLegacyToolName(toolName) === AGENT_TOOL_NAME2;
309990
+ return normalizeLegacyToolName(toolName) === AGENT_TOOL_NAME;
309631
309991
  }
309632
309992
  function formatPermissionSource(source) {
309633
309993
  if (SETTING_SOURCES.includes(source)) {
@@ -313318,7 +313678,7 @@ ${attachment.removedNames.join(`
313318
313678
  }
313319
313679
  case "verify_plan_reminder": {
313320
313680
  const toolName = resolveEnvVar("VERIFY_PLAN") === "true" ? "VerifyPlanExecution" : "";
313321
- 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.`;
313681
+ 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.`;
313322
313682
  return wrapMessagesInSystemReminder([
313323
313683
  createUserMessage({ content, isMeta: true })
313324
313684
  ]);
@@ -320064,6 +320424,7 @@ __export(exports_hooks, {
320064
320424
  executeTaskCreatedHooks: () => executeTaskCreatedHooks,
320065
320425
  executeTaskCompletedHooks: () => executeTaskCompletedHooks,
320066
320426
  executeSubagentStartHooks: () => executeSubagentStartHooks,
320427
+ executeSubagentProgressHooks: () => executeSubagentProgressHooks,
320067
320428
  executeStopHooks: () => executeStopHooks,
320068
320429
  executeStopFailureHooks: () => executeStopFailureHooks,
320069
320430
  executeStatusLineCommand: () => executeStatusLineCommand,
@@ -322124,13 +322485,16 @@ async function executeStopFailureHooks(lastMessage, toolUseContext, timeoutMs =
322124
322485
  matchQuery: error41
322125
322486
  });
322126
322487
  }
322127
- async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, stopHookActive = false, subagentId, toolUseContext, messages, agentType, requestPrompt) {
322488
+ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, stopHookActive = false, subagentId, toolUseContext, messages, agentType, requestPrompt, terminal2) {
322128
322489
  const hookEvent = subagentId ? "SubagentStop" : "Stop";
322129
322490
  const appState = toolUseContext?.getAppState();
322130
322491
  const sessionId = toolUseContext?.agentId ?? getSessionId();
322131
322492
  if (!hasHookForEvent(hookEvent, appState, sessionId)) {
322132
322493
  return;
322133
322494
  }
322495
+ if (subagentId) {
322496
+ markSubagentStopFired(subagentId);
322497
+ }
322134
322498
  const lastAssistantMessage = messages ? getLastAssistantMessage(messages) : undefined;
322135
322499
  const lastAssistantText = lastAssistantMessage ? extractTextContent(lastAssistantMessage.message.content, `
322136
322500
  `).trim() || undefined : undefined;
@@ -322141,7 +322505,8 @@ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_E
322141
322505
  agent_id: subagentId,
322142
322506
  agent_transcript_path: getAgentTranscriptPath(subagentId),
322143
322507
  agent_type: agentType ?? "",
322144
- last_assistant_message: lastAssistantText
322508
+ last_assistant_message: lastAssistantText,
322509
+ ...terminal2 ? { status: terminal2.status, error_message: terminal2.errorMessage } : {}
322145
322510
  } : {
322146
322511
  ...createBaseHookInput(permissionMode),
322147
322512
  hook_event_name: "Stop",
@@ -322260,12 +322625,14 @@ async function* executeSetupHooks(trigger, signal, timeoutMs = TOOL_HOOK_EXECUTI
322260
322625
  forceSyncExecution
322261
322626
  });
322262
322627
  }
322263
- async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS) {
322628
+ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS, toolUseId, isBackground) {
322264
322629
  const hookInput = {
322265
322630
  ...createBaseHookInput(undefined),
322266
322631
  hook_event_name: "SubagentStart",
322267
322632
  agent_id: agentId,
322268
- agent_type: agentType
322633
+ agent_type: agentType,
322634
+ ...toolUseId !== undefined ? { tool_use_id: toolUseId } : {},
322635
+ ...isBackground !== undefined ? { is_background: isBackground } : {}
322269
322636
  };
322270
322637
  yield* executeHooks({
322271
322638
  hookInput,
@@ -322275,6 +322642,24 @@ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs
322275
322642
  timeoutMs
322276
322643
  });
322277
322644
  }
322645
+ async function executeSubagentProgressHooks(agentId, agentType, messageId, parentToolUseId, blocks, signal) {
322646
+ const hookInput = {
322647
+ ...createBaseHookInput(undefined),
322648
+ hook_event_name: "SubagentProgress",
322649
+ agent_id: agentId,
322650
+ agent_type: agentType,
322651
+ message_id: messageId,
322652
+ ...parentToolUseId !== undefined ? { parent_tool_use_id: parentToolUseId } : {},
322653
+ blocks
322654
+ };
322655
+ for await (const _hookResult of executeHooks({
322656
+ hookInput,
322657
+ toolUseID: randomUUID21(),
322658
+ matchQuery: agentType,
322659
+ signal,
322660
+ timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS
322661
+ })) {}
322662
+ }
322278
322663
  async function executePreCompactHooks(compactData, signal, timeoutMs = TOOL_HOOK_EXECUTION_TIMEOUT_MS) {
322279
322664
  const hookInput = {
322280
322665
  ...createBaseHookInput(undefined),
@@ -322914,6 +323299,7 @@ var init_hooks2 = __esm(() => {
322914
323299
  init_envUtils();
322915
323300
  init_errors2();
322916
323301
  init_state2();
323302
+ init_backgroundAbortRegistry();
322917
323303
  TOOL_HOOK_EXECUTION_TIMEOUT_MS = 10 * 60 * 1000;
322918
323304
  });
322919
323305
 
@@ -366339,25 +366725,6 @@ var init_trustedDevice = __esm(() => {
366339
366725
  });
366340
366726
  });
366341
366727
 
366342
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/providers/services/replBridge/trustedDevice.js
366343
- var noop13 = () => null, clearTrustedDeviceTokenCache2;
366344
- var init_trustedDevice2 = __esm(() => {
366345
- clearTrustedDeviceTokenCache2 = noop13;
366346
- });
366347
-
366348
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/providers/services/analytics/growthbook.js
366349
- var noop14 = () => null, refreshGrowthBookAfterAuthChange2;
366350
- var init_growthbook = __esm(() => {
366351
- refreshGrowthBookAfterAuthChange2 = noop14;
366352
- });
366353
-
366354
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/providers/services/api/grove.js
366355
- var noop15 = () => null, getGroveNoticeConfig, getGroveSettings;
366356
- var init_grove = __esm(() => {
366357
- getGroveNoticeConfig = noop15;
366358
- getGroveSettings = noop15;
366359
- });
366360
-
366361
366728
  // src/providers/shared/user.ts
366362
366729
  async function initUser() {
366363
366730
  if (cachedEmail === null && !emailFetchPromise) {
@@ -366482,20 +366849,16 @@ async function performLogout({
366482
366849
  }
366483
366850
  async function clearAuthRelatedCaches() {
366484
366851
  getClaudeAIOAuthTokens.cache?.clear?.();
366485
- clearTrustedDeviceTokenCache2();
366852
+ clearTrustedDeviceTokenCache();
366486
366853
  clearBetasCaches();
366487
366854
  clearToolSchemaCache();
366488
366855
  resetUserCache();
366489
- refreshGrowthBookAfterAuthChange2();
366490
- getGroveNoticeConfig.cache?.clear?.();
366491
- getGroveSettings.cache?.clear?.();
366856
+ refreshGrowthBookAfterAuthChange();
366492
366857
  await clearRemoteManagedSettingsCache();
366493
366858
  await clearPolicyLimitsCache();
366494
366859
  }
366495
366860
  var init_logoutActions = __esm(() => {
366496
- init_trustedDevice2();
366497
- init_growthbook();
366498
- init_grove();
366861
+ init_trustedDevice();
366499
366862
  init_policyLimits();
366500
366863
  init_managedSettings();
366501
366864
  init_auth();
@@ -366506,18 +366869,6 @@ var init_logoutActions = __esm(() => {
366506
366869
  init_user();
366507
366870
  });
366508
366871
 
366509
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/providers/services/analytics/index.js
366510
- var noop16 = () => null, logEvent2;
366511
- var init_analytics = __esm(() => {
366512
- logEvent2 = noop16;
366513
- });
366514
-
366515
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/providers/services/api/firstTokenDate.js
366516
- var noop17 = () => null, fetchAndStoreClaudeCodeFirstTokenDate;
366517
- var init_firstTokenDate = __esm(() => {
366518
- fetchAndStoreClaudeCodeFirstTokenDate = noop17;
366519
- });
366520
-
366521
366872
  // src/providers/anthropic/oauth/installTokens.ts
366522
366873
  async function installOAuthTokens(tokens) {
366523
366874
  await performLogout({ clearOnboarding: false });
@@ -366543,14 +366894,12 @@ async function installOAuthTokens(tokens) {
366543
366894
  const storageResult = saveOAuthTokensIfNeeded(tokens);
366544
366895
  clearOAuthTokenCache();
366545
366896
  if (storageResult.warning) {
366546
- logEvent2("tengu_oauth_storage_warning", {
366897
+ logEvent("tengu_oauth_storage_warning", {
366547
366898
  warning: storageResult.warning
366548
366899
  });
366549
366900
  }
366550
366901
  await fetchAndStoreUserRoles(tokens.accessToken).catch((err2) => logForDebugging2(String(err2), { level: "error" }));
366551
- if (shouldUseClaudeAIAuth(tokens.scopes)) {
366552
- await fetchAndStoreClaudeCodeFirstTokenDate().catch((err2) => logForDebugging2(String(err2), { level: "error" }));
366553
- } else {
366902
+ if (!shouldUseClaudeAIAuth(tokens.scopes)) {
366554
366903
  const apiKey = await createAndStoreApiKey(tokens.accessToken);
366555
366904
  if (!apiKey) {
366556
366905
  throw new Error("Unable to create API key. The server accepted the request but did not return a key.");
@@ -366560,20 +366909,12 @@ async function installOAuthTokens(tokens) {
366560
366909
  }
366561
366910
  var init_installTokens = __esm(() => {
366562
366911
  init_logoutActions();
366563
- init_analytics();
366564
- init_firstTokenDate();
366565
366912
  init_client2();
366566
366913
  init_getOauthProfile();
366567
366914
  init_auth();
366568
366915
  init_debug();
366569
366916
  });
366570
366917
 
366571
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/cli/analytics/index.js
366572
- var noop18 = () => null, logEvent3;
366573
- var init_analytics2 = __esm(() => {
366574
- logEvent3 = noop18;
366575
- });
366576
-
366577
366918
  // native-stub:plist
366578
366919
  var exports_plist = {};
366579
366920
  __export(exports_plist, {
@@ -366618,7 +366959,7 @@ __export(exports_plist, {
366618
366959
  ATTR_SERVICE_VERSION: () => ATTR_SERVICE_VERSION5,
366619
366960
  ATTR_SERVICE_NAME: () => ATTR_SERVICE_NAME5
366620
366961
  });
366621
- var noop19 = () => null, noopClass4 = class {
366962
+ var noop13 = () => null, noopClass4 = class {
366622
366963
  }, handler5, stub5, plist_default, __stub4 = true, SandboxViolationStore5 = null, SandboxManager6, SandboxRuntimeConfigSchema5, BROWSER_TOOLS4, getMcpConfigForManifest4, ColorDiff4 = null, ColorFile4 = null, getSyntaxTheme4, plot4, createClaudeForChromeMcpServer4, ExportResultCode4, resourceFromAttributes5, Resource4, SimpleSpanProcessor4, BatchSpanProcessor5, NodeTracerProvider4, BasicTracerProvider5, OTLPTraceExporter4, OTLPLogExporter4, OTLPMetricExporter4, PrometheusExporter4, LoggerProvider5, SimpleLogRecordProcessor4, BatchLogRecordProcessor5, MeterProvider5, PeriodicExportingMetricReader5, trace5, context4, SpanStatusCode4, ATTR_SERVICE_NAME5 = "service.name", ATTR_SERVICE_VERSION5 = "service.version", SEMRESATTRS_SERVICE_NAME4 = "service.name", SEMRESATTRS_SERVICE_VERSION4 = "service.version", AggregationTemporality4, DataPointType4, InstrumentType4, PushMetricExporter4, SeverityNumber4;
366623
366964
  var init_plist = __esm(() => {
366624
366965
  handler5 = {
@@ -366633,20 +366974,20 @@ var init_plist = __esm(() => {
366633
366974
  return () => ({});
366634
366975
  if (prop === "SandboxRuntimeConfigSchema")
366635
366976
  return { parse: () => ({}) };
366636
- return noop19;
366977
+ return noop13;
366637
366978
  }
366638
366979
  };
366639
- stub5 = new Proxy(noop19, handler5);
366980
+ stub5 = new Proxy(noop13, handler5);
366640
366981
  plist_default = stub5;
366641
- SandboxManager6 = new Proxy({}, { get: () => noop19 });
366982
+ SandboxManager6 = new Proxy({}, { get: () => noop13 });
366642
366983
  SandboxRuntimeConfigSchema5 = { parse: () => ({}) };
366643
366984
  BROWSER_TOOLS4 = [];
366644
- getMcpConfigForManifest4 = noop19;
366645
- getSyntaxTheme4 = noop19;
366646
- plot4 = noop19;
366647
- createClaudeForChromeMcpServer4 = noop19;
366985
+ getMcpConfigForManifest4 = noop13;
366986
+ getSyntaxTheme4 = noop13;
366987
+ plot4 = noop13;
366988
+ createClaudeForChromeMcpServer4 = noop13;
366648
366989
  ExportResultCode4 = { SUCCESS: 0, FAILED: 1 };
366649
- resourceFromAttributes5 = noop19;
366990
+ resourceFromAttributes5 = noop13;
366650
366991
  Resource4 = noopClass4;
366651
366992
  SimpleSpanProcessor4 = noopClass4;
366652
366993
  BatchSpanProcessor5 = noopClass4;
@@ -366661,8 +367002,8 @@ var init_plist = __esm(() => {
366661
367002
  BatchLogRecordProcessor5 = noopClass4;
366662
367003
  MeterProvider5 = noopClass4;
366663
367004
  PeriodicExportingMetricReader5 = noopClass4;
366664
- trace5 = { getTracer: () => ({ startSpan: () => ({ end: noop19, setAttribute: noop19, setStatus: noop19, recordException: noop19 }) }) };
366665
- context4 = { active: noop19, with: (_, fn) => fn() };
367005
+ trace5 = { getTracer: () => ({ startSpan: () => ({ end: noop13, setAttribute: noop13, setStatus: noop13, recordException: noop13 }) }) };
367006
+ context4 = { active: noop13, with: (_, fn) => fn() };
366666
367007
  SpanStatusCode4 = { OK: 0, ERROR: 1, UNSET: 2 };
366667
367008
  AggregationTemporality4 = { CUMULATIVE: 0, DELTA: 1 };
366668
367009
  DataPointType4 = { HISTOGRAM: 0, SUM: 1, GAUGE: 2 };
@@ -366677,7 +367018,7 @@ async function sendNotification(notif, terminal2) {
366677
367018
  const channel = config2.preferredNotifChannel;
366678
367019
  await executeNotificationHooks(notif);
366679
367020
  const methodUsed = await sendToChannel(channel, notif, terminal2);
366680
- logEvent3("tengu_notification_method_used", {
367021
+ logEvent("tengu_notification_method_used", {
366681
367022
  configured_channel: channel,
366682
367023
  method_used: methodUsed,
366683
367024
  term: env3.terminal
@@ -366782,7 +367123,6 @@ var init_notifier = __esm(() => {
366782
367123
  init_execFileNoThrow();
366783
367124
  init_hooks2();
366784
367125
  init_log2();
366785
- init_analytics2();
366786
367126
  });
366787
367127
 
366788
367128
  // src/providers/anthropic/oauth/auth-code-listener.ts
@@ -372350,30 +372690,23 @@ var init_extra_usage2 = __esm(() => {
372350
372690
  };
372351
372691
  });
372352
372692
 
372353
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/cli/claudeai/claudeAiLimits.js
372354
- var noop20 = () => null, currentLimits3, statusListeners2;
372355
- var init_claudeAiLimits2 = __esm(() => {
372356
- currentLimits3 = noop20;
372357
- statusListeners2 = noop20;
372358
- });
372359
-
372360
372693
  // src/cli/claudeai/claudeAiLimitsHook.ts
372361
372694
  function useClaudeAiLimits() {
372362
- const [limits, setLimits] = import_react72.useState({ ...currentLimits3 });
372695
+ const [limits, setLimits] = import_react72.useState({ ...currentLimits });
372363
372696
  import_react72.useEffect(() => {
372364
372697
  const listener2 = (newLimits) => {
372365
372698
  setLimits({ ...newLimits });
372366
372699
  };
372367
- statusListeners2.add(listener2);
372700
+ statusListeners.add(listener2);
372368
372701
  return () => {
372369
- statusListeners2.delete(listener2);
372702
+ statusListeners.delete(listener2);
372370
372703
  };
372371
372704
  }, []);
372372
372705
  return limits;
372373
372706
  }
372374
372707
  var import_react72;
372375
372708
  var init_claudeAiLimitsHook = __esm(() => {
372376
- init_claudeAiLimits2();
372709
+ init_claudeAiLimits();
372377
372710
  import_react72 = __toESM(require_react(), 1);
372378
372711
  });
372379
372712
 
@@ -385519,7 +385852,7 @@ var init_handle2 = __esm(() => {
385519
385852
  // src/session/messages/systemInit.ts
385520
385853
  import { randomUUID as randomUUID22 } from "crypto";
385521
385854
  function sdkCompatToolName(name) {
385522
- return name === AGENT_TOOL_NAME3 ? LEGACY_AGENT_TOOL_NAME2 : name;
385855
+ return name === AGENT_TOOL_NAME2 ? LEGACY_AGENT_TOOL_NAME2 : name;
385523
385856
  }
385524
385857
  function buildSystemInitMessage(inputs) {
385525
385858
  const settings = getSettings_DEPRECATED();
@@ -387188,7 +387521,7 @@ var init_ExitPlanModeV2Tool = __esm(() => {
387188
387521
  }
387189
387522
  };
387190
387523
  });
387191
- const hasTaskTool = isAgentSwarmsEnabled() && context5.options.tools.some((t) => toolMatchesName(t, AGENT_TOOL_NAME3));
387524
+ const hasTaskTool = isAgentSwarmsEnabled() && context5.options.tools.some((t) => toolMatchesName(t, AGENT_TOOL_NAME2));
387192
387525
  return {
387193
387526
  data: {
387194
387527
  plan,
@@ -387619,9 +387952,9 @@ ${annotation.preview}`);
387619
387952
  });
387620
387953
 
387621
387954
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/capabilities/config.js
387622
- var noop21 = () => null, saveGlobalConfig2;
387955
+ var noop14 = () => null, saveGlobalConfig2;
387623
387956
  var init_config9 = __esm(() => {
387624
- saveGlobalConfig2 = noop21;
387957
+ saveGlobalConfig2 = noop14;
387625
387958
  });
387626
387959
 
387627
387960
  // src/capabilities/skills/skillUsageTracking.ts
@@ -427110,12 +427443,8 @@ var init_useIdeConnectionStatus = __esm(() => {
427110
427443
  import_react130 = __toESM(require_react(), 1);
427111
427444
  });
427112
427445
 
427113
- // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/services/analytics/growthbook.js
427114
- var init_growthbook2 = () => {};
427115
-
427116
427446
  // src/capabilities/voice/voiceModeEnabled.ts
427117
427447
  var init_voiceModeEnabled = __esm(() => {
427118
- init_growthbook2();
427119
427448
  init_auth();
427120
427449
  });
427121
427450
 
@@ -427627,21 +427956,21 @@ var init_autoUpdater = __esm(() => {
427627
427956
  });
427628
427957
 
427629
427958
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/debug.js
427630
- var noop22 = () => null, logForDebugging9;
427959
+ var noop15 = () => null, logForDebugging8;
427631
427960
  var init_debug2 = __esm(() => {
427632
- logForDebugging9 = noop22;
427961
+ logForDebugging8 = noop15;
427633
427962
  });
427634
427963
 
427635
427964
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/execFileNoThrow.js
427636
- var noop23 = () => null, execFileNoThrow2;
427965
+ var noop16 = () => null, execFileNoThrow2;
427637
427966
  var init_execFileNoThrow2 = __esm(() => {
427638
- execFileNoThrow2 = noop23;
427967
+ execFileNoThrow2 = noop16;
427639
427968
  });
427640
427969
 
427641
427970
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/platform.js
427642
- var noop24 = () => null, getPlatform2;
427971
+ var noop17 = () => null, getPlatform2;
427643
427972
  var init_platform3 = __esm(() => {
427644
- getPlatform2 = noop24;
427973
+ getPlatform2 = noop17;
427645
427974
  });
427646
427975
 
427647
427976
  // src/providers/shared/packageManagers.ts
@@ -427651,7 +427980,7 @@ function isDistroFamily(osRelease3, families) {
427651
427980
  function detectMise() {
427652
427981
  const execPath2 = process.execPath || process.argv[0] || "";
427653
427982
  if (/[/\\]mise[/\\]installs[/\\]/i.test(execPath2)) {
427654
- logForDebugging9(`Detected mise installation: ${execPath2}`);
427983
+ logForDebugging8(`Detected mise installation: ${execPath2}`);
427655
427984
  return true;
427656
427985
  }
427657
427986
  return false;
@@ -427659,7 +427988,7 @@ function detectMise() {
427659
427988
  function detectAsdf() {
427660
427989
  const execPath2 = process.execPath || process.argv[0] || "";
427661
427990
  if (/[/\\]\.?asdf[/\\]installs[/\\]/i.test(execPath2)) {
427662
- logForDebugging9(`Detected asdf installation: ${execPath2}`);
427991
+ logForDebugging8(`Detected asdf installation: ${execPath2}`);
427663
427992
  return true;
427664
427993
  }
427665
427994
  return false;
@@ -427671,7 +428000,7 @@ function detectHomebrew() {
427671
428000
  }
427672
428001
  const execPath2 = process.execPath || process.argv[0] || "";
427673
428002
  if (execPath2.includes("/Caskroom/")) {
427674
- logForDebugging9(`Detected Homebrew cask installation: ${execPath2}`);
428003
+ logForDebugging8(`Detected Homebrew cask installation: ${execPath2}`);
427675
428004
  return true;
427676
428005
  }
427677
428006
  return false;
@@ -427688,7 +428017,7 @@ function detectWinget() {
427688
428017
  ];
427689
428018
  for (const pattern of wingetPatterns) {
427690
428019
  if (pattern.test(execPath2)) {
427691
- logForDebugging9(`Detected winget installation: ${execPath2}`);
428020
+ logForDebugging8(`Detected winget installation: ${execPath2}`);
427692
428021
  return true;
427693
428022
  }
427694
428023
  }
@@ -427729,7 +428058,7 @@ var init_packageManagers = __esm(() => {
427729
428058
  useCwd: false
427730
428059
  });
427731
428060
  if (result.code === 0 && result.stdout) {
427732
- logForDebugging9(`Detected pacman installation: ${result.stdout.trim()}`);
428061
+ logForDebugging8(`Detected pacman installation: ${result.stdout.trim()}`);
427733
428062
  return true;
427734
428063
  }
427735
428064
  return false;
@@ -427749,7 +428078,7 @@ var init_packageManagers = __esm(() => {
427749
428078
  useCwd: false
427750
428079
  });
427751
428080
  if (result.code === 0 && result.stdout) {
427752
- logForDebugging9(`Detected deb installation: ${result.stdout.trim()}`);
428081
+ logForDebugging8(`Detected deb installation: ${result.stdout.trim()}`);
427753
428082
  return true;
427754
428083
  }
427755
428084
  return false;
@@ -427769,7 +428098,7 @@ var init_packageManagers = __esm(() => {
427769
428098
  useCwd: false
427770
428099
  });
427771
428100
  if (result.code === 0 && result.stdout) {
427772
- logForDebugging9(`Detected rpm installation: ${result.stdout.trim()}`);
428101
+ logForDebugging8(`Detected rpm installation: ${result.stdout.trim()}`);
427773
428102
  return true;
427774
428103
  }
427775
428104
  return false;
@@ -427789,7 +428118,7 @@ var init_packageManagers = __esm(() => {
427789
428118
  useCwd: false
427790
428119
  });
427791
428120
  if (result.code === 0 && result.stdout) {
427792
- logForDebugging9(`Detected apk installation: ${result.stdout.trim()}`);
428121
+ logForDebugging8(`Detected apk installation: ${result.stdout.trim()}`);
427793
428122
  return true;
427794
428123
  }
427795
428124
  return false;
@@ -433126,10 +433455,10 @@ var init_fuse = __esm(() => {
433126
433455
  });
433127
433456
 
433128
433457
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/cli/suggestions/skillUsageTracking.js
433129
- var noop25 = () => null, recordSkillUsage2, getSkillUsageScore;
433458
+ var noop18 = () => null, recordSkillUsage2, getSkillUsageScore;
433130
433459
  var init_skillUsageTracking2 = __esm(() => {
433131
- recordSkillUsage2 = noop25;
433132
- getSkillUsageScore = noop25;
433460
+ recordSkillUsage2 = noop18;
433461
+ getSkillUsageScore = noop18;
433133
433462
  });
433134
433463
 
433135
433464
  // src/cli/suggestions/commandSuggestions.ts
@@ -441470,6 +441799,7 @@ var init_modelOptions = __esm(() => {
441470
441799
  init_modelAllowlist();
441471
441800
  init_model();
441472
441801
  init_modelContext();
441802
+ init_antModels();
441473
441803
  init_config2();
441474
441804
  init_providerProfiles();
441475
441805
  init_ollamaModels();
@@ -442378,7 +442708,7 @@ function AsyncAgentDetailDialog(t0) {
442378
442708
  const [theme] = useTheme();
442379
442709
  let t1;
442380
442710
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
442381
- t1 = getTools(getEmptyToolPermissionContext());
442711
+ t1 = getTools(getEmptyToolPermissionContext2());
442382
442712
  $2[0] = t1;
442383
442713
  } else {
442384
442714
  t1 = $2[0];
@@ -443939,7 +444269,7 @@ function InProcessTeammateDetailDialog(t0) {
443939
444269
  const [theme] = useTheme();
443940
444270
  let t1;
443941
444271
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
443942
- t1 = getTools(getEmptyToolPermissionContext());
444272
+ t1 = getTools(getEmptyToolPermissionContext2());
443943
444273
  $2[0] = t1;
443944
444274
  } else {
443945
444275
  t1 = $2[0];
@@ -444375,6 +444705,7 @@ function toSDKCompactMetadata(meta) {
444375
444705
  return {
444376
444706
  trigger: meta.trigger,
444377
444707
  pre_tokens: meta.preTokens,
444708
+ ...meta.postTokens !== undefined && { post_tokens: meta.postTokens },
444378
444709
  ...seg && {
444379
444710
  preserved_segment: {
444380
444711
  head_uuid: seg.headUuid,
@@ -444389,6 +444720,7 @@ function fromSDKCompactMetadata(meta) {
444389
444720
  return {
444390
444721
  trigger: meta.trigger,
444391
444722
  preTokens: meta.pre_tokens,
444723
+ ...meta.post_tokens !== undefined && { postTokens: meta.post_tokens },
444392
444724
  ...seg && {
444393
444725
  preservedSegment: {
444394
444726
  headUuid: seg.head_uuid,
@@ -444572,7 +444904,7 @@ function UltraplanSessionDetail(t0) {
444572
444904
  }
444573
444905
  calls++;
444574
444906
  lastBlock = block2;
444575
- if (block2.name === AGENT_TOOL_NAME2 || block2.name === LEGACY_AGENT_TOOL_NAME) {
444907
+ if (block2.name === AGENT_TOOL_NAME || block2.name === LEGACY_AGENT_TOOL_NAME) {
444576
444908
  spawns++;
444577
444909
  }
444578
444910
  }
@@ -447720,7 +448052,7 @@ function sendModeChangeToTeammate(teammateName, teamName, targetMode) {
447720
448052
  function cycleTeammateMode(teammate, teamName, isBypassAvailable) {
447721
448053
  const currentMode = teammate.mode ? permissionModeFromString(teammate.mode) : "default";
447722
448054
  const context5 = {
447723
- ...getEmptyToolPermissionContext(),
448055
+ ...getEmptyToolPermissionContext2(),
447724
448056
  mode: currentMode,
447725
448057
  isBypassPermissionsModeAvailable: isBypassAvailable
447726
448058
  };
@@ -447733,7 +448065,7 @@ function cycleAllTeammateModes(teammates, teamName, isBypassAvailable) {
447733
448065
  const modes = teammates.map((t) => t.mode ? permissionModeFromString(t.mode) : "default");
447734
448066
  const allSame = modes.every((m) => m === modes[0]);
447735
448067
  const targetMode = !allSame ? "default" : getNextPermissionMode({
447736
- ...getEmptyToolPermissionContext(),
448068
+ ...getEmptyToolPermissionContext2(),
447737
448069
  mode: modes[0] ?? "default",
447738
448070
  isBypassPermissionsModeAvailable: isBypassAvailable
447739
448071
  });
@@ -455791,7 +456123,7 @@ Rules:
455791
456123
  tools: [],
455792
456124
  signal: createAbortController().signal,
455793
456125
  options: {
455794
- getToolPermissionContext: async () => getEmptyToolPermissionContext(),
456126
+ getToolPermissionContext: async () => getEmptyToolPermissionContext2(),
455795
456127
  model: getSmallFastModel(),
455796
456128
  toolChoice: undefined,
455797
456129
  isNonInteractiveSession: false,
@@ -456196,7 +456528,7 @@ __export(exports_cacache, {
456196
456528
  ATTR_SERVICE_VERSION: () => ATTR_SERVICE_VERSION6,
456197
456529
  ATTR_SERVICE_NAME: () => ATTR_SERVICE_NAME6
456198
456530
  });
456199
- var noop26 = () => null, noopClass5 = class {
456531
+ var noop19 = () => null, noopClass5 = class {
456200
456532
  }, handler6, stub6, cacache_default, __stub5 = true, SandboxViolationStore6 = null, SandboxManager7, SandboxRuntimeConfigSchema6, BROWSER_TOOLS5, getMcpConfigForManifest5, ColorDiff6 = null, ColorFile6 = null, getSyntaxTheme7, plot5, createClaudeForChromeMcpServer5, ExportResultCode5, resourceFromAttributes6, Resource5, SimpleSpanProcessor5, BatchSpanProcessor6, NodeTracerProvider5, BasicTracerProvider6, OTLPTraceExporter5, OTLPLogExporter5, OTLPMetricExporter5, PrometheusExporter5, LoggerProvider6, SimpleLogRecordProcessor5, BatchLogRecordProcessor6, MeterProvider6, PeriodicExportingMetricReader6, trace6, context5, SpanStatusCode5, ATTR_SERVICE_NAME6 = "service.name", ATTR_SERVICE_VERSION6 = "service.version", SEMRESATTRS_SERVICE_NAME5 = "service.name", SEMRESATTRS_SERVICE_VERSION5 = "service.version", AggregationTemporality5, DataPointType5, InstrumentType5, PushMetricExporter5, SeverityNumber5;
456201
456533
  var init_cacache = __esm(() => {
456202
456534
  handler6 = {
@@ -456211,20 +456543,20 @@ var init_cacache = __esm(() => {
456211
456543
  return () => ({});
456212
456544
  if (prop === "SandboxRuntimeConfigSchema")
456213
456545
  return { parse: () => ({}) };
456214
- return noop26;
456546
+ return noop19;
456215
456547
  }
456216
456548
  };
456217
- stub6 = new Proxy(noop26, handler6);
456549
+ stub6 = new Proxy(noop19, handler6);
456218
456550
  cacache_default = stub6;
456219
- SandboxManager7 = new Proxy({}, { get: () => noop26 });
456551
+ SandboxManager7 = new Proxy({}, { get: () => noop19 });
456220
456552
  SandboxRuntimeConfigSchema6 = { parse: () => ({}) };
456221
456553
  BROWSER_TOOLS5 = [];
456222
- getMcpConfigForManifest5 = noop26;
456223
- getSyntaxTheme7 = noop26;
456224
- plot5 = noop26;
456225
- createClaudeForChromeMcpServer5 = noop26;
456554
+ getMcpConfigForManifest5 = noop19;
456555
+ getSyntaxTheme7 = noop19;
456556
+ plot5 = noop19;
456557
+ createClaudeForChromeMcpServer5 = noop19;
456226
456558
  ExportResultCode5 = { SUCCESS: 0, FAILED: 1 };
456227
- resourceFromAttributes6 = noop26;
456559
+ resourceFromAttributes6 = noop19;
456228
456560
  Resource5 = noopClass5;
456229
456561
  SimpleSpanProcessor5 = noopClass5;
456230
456562
  BatchSpanProcessor6 = noopClass5;
@@ -456239,8 +456571,8 @@ var init_cacache = __esm(() => {
456239
456571
  BatchLogRecordProcessor6 = noopClass5;
456240
456572
  MeterProvider6 = noopClass5;
456241
456573
  PeriodicExportingMetricReader6 = noopClass5;
456242
- trace6 = { getTracer: () => ({ startSpan: () => ({ end: noop26, setAttribute: noop26, setStatus: noop26, recordException: noop26 }) }) };
456243
- context5 = { active: noop26, with: (_, fn) => fn() };
456574
+ trace6 = { getTracer: () => ({ startSpan: () => ({ end: noop19, setAttribute: noop19, setStatus: noop19, recordException: noop19 }) }) };
456575
+ context5 = { active: noop19, with: (_, fn) => fn() };
456244
456576
  SpanStatusCode5 = { OK: 0, ERROR: 1, UNSET: 2 };
456245
456577
  AggregationTemporality5 = { CUMULATIVE: 0, DELTA: 1 };
456246
456578
  DataPointType5 = { HISTOGRAM: 0, SUM: 1, GAUGE: 2 };
@@ -466104,16 +466436,16 @@ var init_usePromptsFromClaudeInChrome = __esm(() => {
466104
466436
  });
466105
466437
 
466106
466438
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/services/tips/tipHistory.js
466107
- var noop27 = () => null, getSessionsSinceLastShown, recordTipShown;
466439
+ var noop20 = () => null, getSessionsSinceLastShown, recordTipShown;
466108
466440
  var init_tipHistory = __esm(() => {
466109
- getSessionsSinceLastShown = noop27;
466110
- recordTipShown = noop27;
466441
+ getSessionsSinceLastShown = noop20;
466442
+ recordTipShown = noop20;
466111
466443
  });
466112
466444
 
466113
466445
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/services/tips/tipRegistry.js
466114
- var noop28 = () => null, getRelevantTips;
466446
+ var noop21 = () => null, getRelevantTips;
466115
466447
  var init_tipRegistry = __esm(() => {
466116
- getRelevantTips = noop28;
466448
+ getRelevantTips = noop21;
466117
466449
  });
466118
466450
 
466119
466451
  // src/cli/tips/tipScheduler.ts
@@ -479310,7 +479642,7 @@ function buildPrimarySection() {
479310
479642
  }, undefined, false, undefined, this);
479311
479643
  return [{
479312
479644
  label: "Version",
479313
- value: "0.4.6"
479645
+ value: "0.4.8"
479314
479646
  }, {
479315
479647
  label: "Session name",
479316
479648
  value: nameValue
@@ -491651,9 +491983,9 @@ After writing the skill file(s), inform the user:
491651
491983
  });
491652
491984
 
491653
491985
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/cli/commands/cli/keybindings/index.js
491654
- var noop29 = () => null, keybindings_default;
491986
+ var noop22 = () => null, keybindings_default;
491655
491987
  var init_keybindings = __esm(() => {
491656
- keybindings_default = noop29;
491988
+ keybindings_default = noop22;
491657
491989
  });
491658
491990
 
491659
491991
  // src/cli/commands/login/index.ts
@@ -517013,7 +517345,7 @@ async function markGroveNoticeViewed() {
517013
517345
  }
517014
517346
  });
517015
517347
  });
517016
- getGroveSettings2.cache.clear?.();
517348
+ getGroveSettings.cache.clear?.();
517017
517349
  } catch (err2) {
517018
517350
  logError(err2);
517019
517351
  }
@@ -517034,7 +517366,7 @@ async function updateGroveSettings(groveEnabled) {
517034
517366
  }
517035
517367
  });
517036
517368
  });
517037
- getGroveSettings2.cache.clear?.();
517369
+ getGroveSettings.cache.clear?.();
517038
517370
  } catch (err2) {
517039
517371
  logError(err2);
517040
517372
  }
@@ -517065,7 +517397,7 @@ async function isQualifiedForGrove() {
517065
517397
  }
517066
517398
  async function fetchAndStoreGroveConfig(accountId) {
517067
517399
  try {
517068
- const result = await getGroveNoticeConfig2();
517400
+ const result = await getGroveNoticeConfig();
517069
517401
  if (!result.success) {
517070
517402
  return;
517071
517403
  }
@@ -517115,8 +517447,8 @@ function calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyVie
517115
517447
  }
517116
517448
  async function checkGroveForNonInteractive() {
517117
517449
  const [settingsResult, configResult] = await Promise.all([
517118
- getGroveSettings2(),
517119
- getGroveNoticeConfig2()
517450
+ getGroveSettings(),
517451
+ getGroveNoticeConfig()
517120
517452
  ]);
517121
517453
  const shouldShowGrove = calculateShouldShowGrove(settingsResult, configResult, false);
517122
517454
  if (shouldShowGrove) {
@@ -517139,8 +517471,8 @@ An update to our Consumer Terms and Privacy Policy will take effect on October 8
517139
517471
  }
517140
517472
  }
517141
517473
  }
517142
- var GROVE_CACHE_EXPIRATION_MS, getGroveSettings2, getGroveNoticeConfig2;
517143
- var init_grove2 = __esm(() => {
517474
+ var GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
517475
+ var init_grove = __esm(() => {
517144
517476
  init_axios2();
517145
517477
  init_memoize();
517146
517478
  init_auth();
@@ -517152,7 +517484,7 @@ var init_grove2 = __esm(() => {
517152
517484
  init_http2();
517153
517485
  init_log2();
517154
517486
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
517155
- getGroveSettings2 = memoize_default(async () => {
517487
+ getGroveSettings = memoize_default(async () => {
517156
517488
  if (isEssentialTrafficOnly()) {
517157
517489
  return { success: false };
517158
517490
  }
@@ -517172,11 +517504,11 @@ var init_grove2 = __esm(() => {
517172
517504
  return { success: true, data: response.data };
517173
517505
  } catch (err2) {
517174
517506
  logError(err2);
517175
- getGroveSettings2.cache.clear?.();
517507
+ getGroveSettings.cache.clear?.();
517176
517508
  return { success: false };
517177
517509
  }
517178
517510
  });
517179
- getGroveNoticeConfig2 = memoize_default(async () => {
517511
+ getGroveNoticeConfig = memoize_default(async () => {
517180
517512
  if (isEssentialTrafficOnly()) {
517181
517513
  return { success: false };
517182
517514
  }
@@ -517491,7 +517823,7 @@ function GroveDialog(t0) {
517491
517823
  if ($2[0] !== location || $2[1] !== onDone || $2[2] !== showIfAlreadyViewed) {
517492
517824
  t1 = () => {
517493
517825
  const checkGroveSettings = async function checkGroveSettings2() {
517494
- const [settingsResult, configResult] = await Promise.all([getGroveSettings2(), getGroveNoticeConfig2()]);
517826
+ const [settingsResult, configResult] = await Promise.all([getGroveSettings(), getGroveNoticeConfig()]);
517495
517827
  const config3 = configResult.success ? configResult.data : null;
517496
517828
  setGroveConfig(config3);
517497
517829
  const shouldShow = calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyViewed);
@@ -517925,7 +518257,7 @@ var import_react_compiler_runtime303, import_react292, jsx_dev_runtime374, NEW_T
517925
518257
  |______________|`;
517926
518258
  var init_Grove = __esm(() => {
517927
518259
  init_ink3();
517928
- init_grove2();
518260
+ init_grove();
517929
518261
  init_CustomSelect();
517930
518262
  init_Byline();
517931
518263
  init_Dialog();
@@ -517946,7 +518278,7 @@ async function call48(onDone) {
517946
518278
  onDone(FALLBACK_MESSAGE);
517947
518279
  return null;
517948
518280
  }
517949
- const [settingsResult, configResult] = await Promise.all([getGroveSettings2(), getGroveNoticeConfig2()]);
518281
+ const [settingsResult, configResult] = await Promise.all([getGroveSettings(), getGroveNoticeConfig()]);
517950
518282
  if (!settingsResult.success) {
517951
518283
  onDone(FALLBACK_MESSAGE);
517952
518284
  return null;
@@ -517963,7 +518295,7 @@ async function call48(onDone) {
517963
518295
  await onDoneWithSettingsCheck();
517964
518296
  }
517965
518297
  async function onDoneWithSettingsCheck() {
517966
- const updatedSettingsResult = await getGroveSettings2();
518298
+ const updatedSettingsResult = await getGroveSettings();
517967
518299
  if (!updatedSettingsResult.success) {
517968
518300
  onDone("Unable to retrieve updated privacy settings", {
517969
518301
  display: "system"
@@ -517996,7 +518328,7 @@ async function call48(onDone) {
517996
518328
  var jsx_dev_runtime375, FALLBACK_MESSAGE = "Review and manage your privacy settings at https://claude.ai/settings/data-privacy-controls";
517997
518329
  var init_privacy_settings = __esm(() => {
517998
518330
  init_Grove();
517999
- init_grove2();
518331
+ init_grove();
518000
518332
  jsx_dev_runtime375 = __toESM(require_jsx_dev_runtime(), 1);
518001
518333
  });
518002
518334
 
@@ -521599,6 +521931,9 @@ async function stopTask(taskId, context7) {
521599
521931
  const appState = getAppState();
521600
521932
  const task = appState.tasks?.[taskId];
521601
521933
  if (!task) {
521934
+ if (abortBackgroundAgentById(taskId)) {
521935
+ return { taskId, taskType: "local_agent", command: undefined };
521936
+ }
521602
521937
  throw new StopTaskError(`No task found with ID: ${taskId}`, "not_found");
521603
521938
  }
521604
521939
  if (task.status !== "running") {
@@ -521639,6 +521974,7 @@ var StopTaskError;
521639
521974
  var init_stopTask = __esm(() => {
521640
521975
  init_registry4();
521641
521976
  init_sdkEventQueue();
521977
+ init_backgroundAbortRegistry();
521642
521978
  StopTaskError = class StopTaskError extends Error {
521643
521979
  code;
521644
521980
  constructor(message, code) {
@@ -529927,7 +530263,7 @@ function ToolSelector(t0) {
529927
530263
  if (toolBuckets.EXECUTION.toolNames.has(tool.name)) {
529928
530264
  buckets.execution.push(tool);
529929
530265
  } else {
529930
- if (tool.name !== AGENT_TOOL_NAME2) {
530266
+ if (tool.name !== AGENT_TOOL_NAME) {
529931
530267
  buckets.other.push(tool);
529932
530268
  }
529933
530269
  }
@@ -532576,7 +532912,7 @@ IMPORTANT: The following identifiers already exist and must NOT be used: ${exist
532576
532912
  tools: [],
532577
532913
  signal: abortSignal,
532578
532914
  options: {
532579
- getToolPermissionContext: async () => getEmptyToolPermissionContext(),
532915
+ getToolPermissionContext: async () => getEmptyToolPermissionContext2(),
532580
532916
  model,
532581
532917
  toolChoice: undefined,
532582
532918
  agents: [],
@@ -532680,14 +533016,14 @@ When a user describes what they want an agent to do, you will:
532680
533016
  assistant: "Here is the relevant function: "
532681
533017
  <function call omitted for brevity only for this example>
532682
533018
  <commentary>
532683
- Since a significant piece of code was written, use the ${AGENT_TOOL_NAME2} tool to launch the test-runner agent to run the tests.
533019
+ Since a significant piece of code was written, use the ${AGENT_TOOL_NAME} tool to launch the test-runner agent to run the tests.
532684
533020
  </commentary>
532685
533021
  assistant: "Now let me use the test-runner agent to run the tests"
532686
533022
  </example>
532687
533023
  - <example>
532688
533024
  Context: User is creating an agent to respond to the word "hello" with a friendly jok.
532689
533025
  user: "Hello"
532690
- assistant: "I'm going to use the ${AGENT_TOOL_NAME2} tool to launch the greeting-responder agent to respond with a friendly joke"
533026
+ assistant: "I'm going to use the ${AGENT_TOOL_NAME} tool to launch the greeting-responder agent to respond with a friendly joke"
532691
533027
  <commentary>
532692
533028
  Since the user is greeting, use the greeting-responder agent to respond with a friendly joke.
532693
533029
  </commentary>
@@ -535628,7 +535964,7 @@ var init_bridge_kick = __esm(() => {
535628
535964
  var call58 = async () => {
535629
535965
  return {
535630
535966
  type: "text",
535631
- value: `${"99.0.0"} (built ${"2026-06-03T14:42:10.545Z"})`
535967
+ value: `${"99.0.0"} (built ${"2026-06-20T04:27:50.766Z"})`
535632
535968
  };
535633
535969
  }, version2, version_default;
535634
535970
  var init_version = __esm(() => {
@@ -539452,14 +539788,14 @@ var init_statusline = __esm(() => {
539452
539788
  aliases: [],
539453
539789
  name: "statusline",
539454
539790
  progressMessage: "setting up statusLine",
539455
- allowedTools: [AGENT_TOOL_NAME2, "Read(~/**)", "Edit(~/.claude/settings.json)"],
539791
+ allowedTools: [AGENT_TOOL_NAME, "Read(~/**)", "Edit(~/.claude/settings.json)"],
539456
539792
  source: "builtin",
539457
539793
  disableNonInteractive: true,
539458
539794
  async getPromptForCommand(args) {
539459
539795
  const prompt = args.trim() || "Configure my statusLine from my shell PS1 configuration";
539460
539796
  return [{
539461
539797
  type: "text",
539462
- text: `Create an ${AGENT_TOOL_NAME2} with subagent_type "statusline-setup" and the prompt "${prompt}"`
539798
+ text: `Create an ${AGENT_TOOL_NAME} with subagent_type "statusline-setup" and the prompt "${prompt}"`
539463
539799
  }];
539464
539800
  }
539465
539801
  };
@@ -539861,7 +540197,7 @@ var init_effort3 = __esm(() => {
539861
540197
  });
539862
540198
 
539863
540199
  // native-stub:asciichart
539864
- var noop30 = () => null, handler7, stub8, SandboxManager8, plot6;
540200
+ var noop23 = () => null, handler7, stub8, SandboxManager8, plot6;
539865
540201
  var init_asciichart = __esm(() => {
539866
540202
  handler7 = {
539867
540203
  get(_, prop) {
@@ -539875,12 +540211,12 @@ var init_asciichart = __esm(() => {
539875
540211
  return () => ({});
539876
540212
  if (prop === "SandboxRuntimeConfigSchema")
539877
540213
  return { parse: () => ({}) };
539878
- return noop30;
540214
+ return noop23;
539879
540215
  }
539880
540216
  };
539881
- stub8 = new Proxy(noop30, handler7);
539882
- SandboxManager8 = new Proxy({}, { get: () => noop30 });
539883
- plot6 = noop30;
540217
+ stub8 = new Proxy(noop23, handler7);
540218
+ SandboxManager8 = new Proxy({}, { get: () => noop23 });
540219
+ plot6 = noop23;
539884
540220
  });
539885
540221
 
539886
540222
  // src/audit/statsCache.ts
@@ -542934,7 +543270,7 @@ function extractToolStats(log2) {
542934
543270
  if (block2.type === "tool_use" && "name" in block2) {
542935
543271
  const toolName = block2.name;
542936
543272
  toolCounts[toolName] = (toolCounts[toolName] || 0) + 1;
542937
- if (toolName === AGENT_TOOL_NAME3 || toolName === LEGACY_AGENT_TOOL_NAME2)
543273
+ if (toolName === AGENT_TOOL_NAME2 || toolName === LEGACY_AGENT_TOOL_NAME2)
542938
543274
  usesTaskAgent = true;
542939
543275
  if (toolName.startsWith("mcp__"))
542940
543276
  usesMcp = true;
@@ -548246,7 +548582,7 @@ Task completed. Call TaskList now to find your next available task or see if you
548246
548582
  if (verificationNudgeNeeded) {
548247
548583
  resultContent += `
548248
548584
 
548249
- 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.`;
548585
+ 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.`;
548250
548586
  }
548251
548587
  return {
548252
548588
  tool_use_id: toolUseID,
@@ -557738,7 +558074,7 @@ function WelcomeV2() {
557738
558074
  dimColor: true,
557739
558075
  children: [
557740
558076
  "v",
557741
- "0.4.6",
558077
+ "0.4.8",
557742
558078
  " "
557743
558079
  ]
557744
558080
  }, undefined, true, undefined, this)
@@ -557938,7 +558274,7 @@ function WelcomeV2() {
557938
558274
  dimColor: true,
557939
558275
  children: [
557940
558276
  "v",
557941
- "0.4.6",
558277
+ "0.4.8",
557942
558278
  " "
557943
558279
  ]
557944
558280
  }, undefined, true, undefined, this)
@@ -558164,7 +558500,7 @@ function AppleTerminalWelcomeV2(t0) {
558164
558500
  dimColor: true,
558165
558501
  children: [
558166
558502
  "v",
558167
- "0.4.6",
558503
+ "0.4.8",
558168
558504
  " "
558169
558505
  ]
558170
558506
  }, undefined, true, undefined, this);
@@ -558418,7 +558754,7 @@ function AppleTerminalWelcomeV2(t0) {
558418
558754
  dimColor: true,
558419
558755
  children: [
558420
558756
  "v",
558421
- "0.4.6",
558757
+ "0.4.8",
558422
558758
  " "
558423
558759
  ]
558424
558760
  }, undefined, true, undefined, this);
@@ -560131,7 +560467,7 @@ var init_interactiveHelpers = __esm(() => {
560131
560467
  init_terminal2();
560132
560468
  init_KeybindingProviderSetup();
560133
560469
  init_main3();
560134
- init_grove2();
560470
+ init_grove();
560135
560471
  init_mcpServerApproval();
560136
560472
  init_AppState();
560137
560473
  init_onChangeAppState();
@@ -561776,7 +562112,7 @@ Call the \`${ENTER_PLAN_MODE_TOOL_NAME2}\` tool now to enter plan mode, then:
561776
562112
 
561777
562113
  ## Phase 2: Spawn Workers (After Plan Approval)
561778
562114
 
561779
- Once the plan is approved, spawn one background agent per work unit using the \`${AGENT_TOOL_NAME3}\` tool. **All agents must use \`isolation: "worktree"\` and \`run_in_background: true\`.** Launch them all in a single message block so they run in parallel.
562115
+ Once the plan is approved, spawn one background agent per work unit using the \`${AGENT_TOOL_NAME2}\` tool. **All agents must use \`isolation: "worktree"\` and \`run_in_background: true\`.** Launch them all in a single message block so they run in parallel.
561780
562116
 
561781
562117
  For each agent, the prompt must be fully self-contained. Include:
561782
562118
  - The overall goal (the user's instruction)
@@ -562453,7 +562789,7 @@ Run \`git diff\` (or \`git diff HEAD\` if there are staged changes) to see what
562453
562789
 
562454
562790
  ## Phase 2: Launch Three Review Agents in Parallel
562455
562791
 
562456
- Use the ${AGENT_TOOL_NAME3} tool to launch all three agents concurrently in a single message. Pass each agent the full diff so it has the complete context.
562792
+ Use the ${AGENT_TOOL_NAME2} tool to launch all three agents concurrently in a single message. Pass each agent the full diff so it has the complete context.
562457
562793
 
562458
562794
  ### Agent 1: Code Reuse Review
562459
562795
 
@@ -563024,9 +563360,9 @@ var init_ghAuthStatus = __esm(() => {
563024
563360
  });
563025
563361
 
563026
563362
  // src/cli/utils/telemetry/skillLoadedEvent.ts
563027
- async function logSkillsLoaded(cwd, contextWindowTokens) {
563363
+ async function logSkillsLoaded(cwd, contextWindowTokens2) {
563028
563364
  const skills2 = await getSkillToolCommands(cwd);
563029
- const skillBudget = getCharBudget(contextWindowTokens);
563365
+ const skillBudget = getCharBudget(contextWindowTokens2);
563030
563366
  for (const skill of skills2) {
563031
563367
  if (skill.type !== "prompt")
563032
563368
  continue;
@@ -564953,7 +565289,7 @@ async function startMCPServer(cwd, debug, verbose) {
564953
565289
  }
564954
565290
  });
564955
565291
  server.setRequestHandler(ListToolsRequestSchema, async () => {
564956
- const toolPermissionContext = getEmptyToolPermissionContext();
565292
+ const toolPermissionContext = getEmptyToolPermissionContext2();
564957
565293
  const tools = getTools(toolPermissionContext);
564958
565294
  return {
564959
565295
  tools: await Promise.all(tools.map(async (tool) => {
@@ -564978,7 +565314,7 @@ async function startMCPServer(cwd, debug, verbose) {
564978
565314
  };
564979
565315
  });
564980
565316
  server.setRequestHandler(CallToolRequestSchema, async ({ params: { name, arguments: args } }) => {
564981
- const toolPermissionContext = getEmptyToolPermissionContext();
565317
+ const toolPermissionContext = getEmptyToolPermissionContext2();
564982
565318
  const tools = getTools(toolPermissionContext);
564983
565319
  const tool = findToolByName(tools, name);
564984
565320
  if (!tool) {
@@ -569038,6 +569374,7 @@ class QueryEngine {
569038
569374
  maxBudgetUsd,
569039
569375
  maxOutputTokens,
569040
569376
  contextWindow,
569377
+ compact: compact2,
569041
569378
  taskBudget,
569042
569379
  canUseTool,
569043
569380
  customSystemPrompt,
@@ -569124,7 +569461,9 @@ class QueryEngine {
569124
569461
  theme: resolveThemeSetting(getGlobalConfig().theme),
569125
569462
  maxBudgetUsd,
569126
569463
  maxOutputTokens,
569127
- contextWindow
569464
+ contextWindow,
569465
+ modelProviders: this.config.modelProviders,
569466
+ subagentDisallowedTools: this.config.subagentDisallowedTools
569128
569467
  },
569129
569468
  getAppState,
569130
569469
  setAppState,
@@ -569226,7 +569565,9 @@ class QueryEngine {
569226
569565
  agentDefinitions: { activeAgents: agents2, allAgents: [] },
569227
569566
  maxBudgetUsd,
569228
569567
  maxOutputTokens,
569229
- contextWindow
569568
+ contextWindow,
569569
+ modelProviders: this.config.modelProviders,
569570
+ subagentDisallowedTools: this.config.subagentDisallowedTools
569230
569571
  },
569231
569572
  getAppState,
569232
569573
  setAppState,
@@ -569260,7 +569601,7 @@ class QueryEngine {
569260
569601
  fastMode: initialAppState.fastMode
569261
569602
  });
569262
569603
  headlessProfilerCheckpoint("system_message_yielded");
569263
- if (!shouldQuery) {
569604
+ if (!shouldQuery && !compact2) {
569264
569605
  for (const msg of messagesFromUserInput) {
569265
569606
  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)) {
569266
569607
  yield {
@@ -569343,6 +569684,7 @@ class QueryEngine {
569343
569684
  querySource: "sdk",
569344
569685
  maxTurns,
569345
569686
  maxOutputTokensOverride: maxOutputTokens,
569687
+ compactRequest: compact2,
569346
569688
  taskBudget
569347
569689
  })) {
569348
569690
  if (message.type === "assistant" || message.type === "user" || message.type === "system" && message.subtype === "compact_boundary") {
@@ -569608,7 +569950,7 @@ class QueryEngine {
569608
569950
  await flushSessionStorage();
569609
569951
  }
569610
569952
  }
569611
- if (!isResultSuccessful(result, lastStopReason)) {
569953
+ if (!compact2 && !isResultSuccessful(result, lastStopReason)) {
569612
569954
  if (this.abortController.signal.aborted) {
569613
569955
  yield {
569614
569956
  type: "result",
@@ -569675,6 +570017,7 @@ class QueryEngine {
569675
570017
  session_id: getSessionId(),
569676
570018
  total_cost_usd: getTotalCostUSD(),
569677
570019
  usage: this.totalUsage,
570020
+ context_window: { used_tokens: contextWindowTokens(currentMessageUsage) },
569678
570021
  modelUsage: getModelUsage(),
569679
570022
  permission_denials: this.permissionDenials,
569680
570023
  structured_output: structuredOutputFromTool,
@@ -569712,6 +570055,7 @@ async function* ask({
569712
570055
  maxBudgetUsd,
569713
570056
  maxOutputTokens,
569714
570057
  contextWindow,
570058
+ compact: compact2,
569715
570059
  taskBudget,
569716
570060
  canUseTool,
569717
570061
  mutableMessages = [],
@@ -569721,6 +570065,7 @@ async function* ask({
569721
570065
  appendSystemPrompt,
569722
570066
  userSpecifiedModel,
569723
570067
  fallbackModel,
570068
+ modelProviders,
569724
570069
  jsonSchema,
569725
570070
  getAppState,
569726
570071
  setAppState,
@@ -569748,11 +570093,13 @@ async function* ask({
569748
570093
  appendSystemPrompt,
569749
570094
  userSpecifiedModel,
569750
570095
  fallbackModel,
570096
+ modelProviders,
569751
570097
  thinkingConfig,
569752
570098
  maxTurns,
569753
570099
  maxBudgetUsd,
569754
570100
  maxOutputTokens,
569755
570101
  contextWindow,
570102
+ compact: compact2,
569756
570103
  taskBudget,
569757
570104
  jsonSchema,
569758
570105
  verbose,
@@ -570017,10 +570364,10 @@ var init_sessionUrl = __esm(() => {
570017
570364
  });
570018
570365
 
570019
570366
  // missing-module-stub:/home/runner/work/opencow-agent-sdk/opencow-agent-sdk/src/cli/commands.js
570020
- var noop31 = () => null, getCommands2, clearCommandsCache3;
570367
+ var noop24 = () => null, getCommands2, clearCommandsCache3;
570021
570368
  var init_commands3 = __esm(() => {
570022
- getCommands2 = noop31;
570023
- clearCommandsCache3 = noop31;
570369
+ getCommands2 = noop24;
570370
+ clearCommandsCache3 = noop24;
570024
570371
  });
570025
570372
 
570026
570373
  // src/cli/utils/plugins/zipCacheAdapters.ts
@@ -575406,7 +575753,7 @@ var init_print = __esm(() => {
575406
575753
  init_utils5();
575407
575754
  init_vscodeSdkMcp();
575408
575755
  init_config7();
575409
- init_grove2();
575756
+ init_grove();
575410
575757
  init_mappers();
575411
575758
  init_messages4();
575412
575759
  init_context_noninteractive();
@@ -577931,7 +578278,7 @@ ${formattedErrors}
577931
578278
  if (Object.keys(allConfigs).length > 0) {
577932
578279
  const nonSdkConfigNames = Object.entries(allConfigs).filter(([, config3]) => config3.type !== "sdk").map(([name]) => name);
577933
578280
  let reservedNameError = null;
577934
- if (nonSdkConfigNames.some(isClaudeInChromeMCPServer2)) {
578281
+ if (nonSdkConfigNames.some(isClaudeInChromeMCPServer)) {
577935
578282
  reservedNameError = `Invalid MCP configuration: "${CLAUDE_IN_CHROME_MCP_SERVER_NAME}" is a reserved MCP name.`;
577936
578283
  } else if (false) {}
577937
578284
  if (reservedNameError) {
@@ -579264,7 +579611,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
579264
579611
  pendingHookMessages
579265
579612
  }, renderAndRun);
579266
579613
  }
579267
- }).version("0.4.6 (OpenCow)", "-v, --version", "Output the version number");
579614
+ }).version("0.4.8 (OpenCow)", "-v, --version", "Output the version number");
579268
579615
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
579269
579616
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
579270
579617
  if (canUserConfigureAdvisor()) {
@@ -579815,7 +580162,7 @@ var init_main3 = __esm(() => {
579815
580162
  registerToolUIs();
579816
580163
  registerSlashCommandHandlers({ processSlashCommand, processBashCommand, processPromptSlashCommand });
579817
580164
  registerMcpToolOverridesMatcher({
579818
- matches: (name, type) => isClaudeInChromeMCPServer2(name) && (type === "stdio" || !type),
580165
+ matches: (name, type) => isClaudeInChromeMCPServer(name) && (type === "stdio" || !type),
579819
580166
  getOverrides: getClaudeInChromeMCPToolOverrides
579820
580167
  });
579821
580168
  if (false) {}
@@ -579910,7 +580257,7 @@ if (false) {}
579910
580257
  async function main2() {
579911
580258
  const args = process.argv.slice(2);
579912
580259
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
579913
- console.log(`${"0.4.6"} (OpenCow)`);
580260
+ console.log(`${"0.4.8"} (OpenCow)`);
579914
580261
  return;
579915
580262
  }
579916
580263
  if (args.includes("--provider")) {
@@ -580028,4 +580375,4 @@ async function main2() {
580028
580375
  }
580029
580376
  main2();
580030
580377
 
580031
- //# debugId=6B8704627517D02B64756E2164756E21
580378
+ //# debugId=1F12E9ABEA6E5ED964756E2164756E21