@zergai/ztc 0.4.0-beta.1 → 0.5.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +398 -45
- package/RUST_THIRD_PARTY_LICENSES.txt +1080 -822
- package/THIRD_PARTY_NOTICES.md +273 -12
- package/bin/zmux-darwin-arm64 +0 -0
- package/bin/ztc-audio-darwin-arm64 +0 -0
- package/bin/ztc-capture-darwin-arm64 +0 -0
- package/bin/ztc-computer-darwin-arm64 +0 -0
- package/bin/ztc-llm-darwin-arm64 +0 -0
- package/bin/ztc-tts-darwin-arm64 +0 -0
- package/bin/ztc-tui-darwin-arm64 +0 -0
- package/bin/ztc-zlicky-overlay-darwin-arm64 +0 -0
- package/bin/zterm-darwin-arm64 +0 -0
- package/dist/App.js +1206 -209
- package/dist/agent/agent.d.ts +74 -8
- package/dist/agent/agent.js +1073 -184
- package/dist/agent/backends/account_rotation.d.ts +4 -0
- package/dist/agent/backends/account_rotation.js +8 -2
- package/dist/agent/backends/anthropic.d.ts +13 -0
- package/dist/agent/backends/anthropic.js +169 -28
- package/dist/agent/backends/claude_cli.js +18 -8
- package/dist/agent/backends/codex_app_server.d.ts +1 -0
- package/dist/agent/backends/codex_app_server.js +55 -3
- package/dist/agent/backends/codex_auth.d.ts +1 -0
- package/dist/agent/backends/codex_auth.js +67 -13
- package/dist/agent/backends/codex_buffered_recovery.d.ts +27 -0
- package/dist/agent/backends/codex_buffered_recovery.js +293 -0
- package/dist/agent/backends/gemini.js +3 -1
- package/dist/agent/backends/http_error.d.ts +26 -0
- package/dist/agent/backends/http_error.js +221 -0
- package/dist/agent/backends/index.d.ts +9 -2
- package/dist/agent/backends/index.js +22 -2
- package/dist/agent/backends/openai.d.ts +0 -6
- package/dist/agent/backends/openai.js +5 -2
- package/dist/agent/backends/openai_compatible.d.ts +5 -4
- package/dist/agent/backends/openai_compatible.js +26 -19
- package/dist/agent/backends/openai_responses.d.ts +8 -3
- package/dist/agent/backends/openai_responses.js +77 -33
- package/dist/agent/backends/provider_ids.d.ts +1 -0
- package/dist/agent/backends/provider_ids.js +4 -0
- package/dist/agent/backends/request_metrics.js +12 -2
- package/dist/agent/backends/types.d.ts +109 -6
- package/dist/agent/backends/types.js +5 -1
- package/dist/agent/backends/zrouter_stream.d.ts +6 -1
- package/dist/agent/backends/zrouter_stream.js +160 -42
- package/dist/agent/background_registry.d.ts +2 -0
- package/dist/agent/background_registry.js +1 -0
- package/dist/agent/claim_observation.d.ts +6 -0
- package/dist/agent/claim_observation.js +54 -0
- package/dist/agent/commands/accounts.js +46 -177
- package/dist/agent/commands/attention.d.ts +2 -0
- package/dist/agent/commands/attention.js +67 -0
- package/dist/agent/commands/auth.js +18 -2
- package/dist/agent/commands/board.d.ts +2 -0
- package/dist/agent/commands/board.js +169 -0
- package/dist/agent/commands/clipboard.js +50 -1
- package/dist/agent/commands/compact.js +21 -13
- package/dist/agent/commands/config.js +4 -1
- package/dist/agent/commands/context.js +6 -1
- package/dist/agent/commands/desktop.d.ts +2 -0
- package/dist/agent/commands/desktop.js +29 -0
- package/dist/agent/commands/effort.js +14 -6
- package/dist/agent/commands/environment.d.ts +3 -0
- package/dist/agent/commands/environment.js +109 -0
- package/dist/agent/commands/evidence.d.ts +2 -0
- package/dist/agent/commands/evidence.js +9 -0
- package/dist/agent/commands/fork.js +4 -3
- package/dist/agent/commands/goal.d.ts +33 -1
- package/dist/agent/commands/goal.js +174 -14
- package/dist/agent/commands/goal_exit.d.ts +36 -0
- package/dist/agent/commands/goal_exit.js +120 -0
- package/dist/agent/commands/help.js +3 -1
- package/dist/agent/commands/history.js +3 -1
- package/dist/agent/commands/inbox.d.ts +2 -0
- package/dist/agent/commands/inbox.js +148 -0
- package/dist/agent/commands/index.js +16 -1
- package/dist/agent/commands/input_mode.js +8 -6
- package/dist/agent/commands/job.d.ts +2 -0
- package/dist/agent/commands/job.js +93 -0
- package/dist/agent/commands/keybindings.js +4 -1
- package/dist/agent/commands/label.d.ts +2 -0
- package/dist/agent/commands/label.js +77 -0
- package/dist/agent/commands/layout.d.ts +2 -0
- package/dist/agent/commands/layout.js +20 -0
- package/dist/agent/commands/mirror.js +16 -1
- package/dist/agent/commands/model.js +12 -2
- package/dist/agent/commands/permissions.d.ts +3 -1
- package/dist/agent/commands/permissions.js +79 -89
- package/dist/agent/commands/plan.js +5 -15
- package/dist/agent/commands/profile.js +21 -2
- package/dist/agent/commands/provider_selection.js +20 -1
- package/dist/agent/commands/rename.js +1 -1
- package/dist/agent/commands/resources.d.ts +2 -0
- package/dist/agent/commands/resources.js +67 -0
- package/dist/agent/commands/rewind.d.ts +3 -0
- package/dist/agent/commands/rewind.js +16 -0
- package/dist/agent/commands/runbooks.d.ts +2 -0
- package/dist/agent/commands/runbooks.js +73 -0
- package/dist/agent/commands/runbooks_lazy.d.ts +2 -0
- package/dist/agent/commands/runbooks_lazy.js +8 -0
- package/dist/agent/commands/sessions.d.ts +1 -1
- package/dist/agent/commands/sessions.js +33 -5
- package/dist/agent/commands/settings.js +185 -39
- package/dist/agent/commands/setup.d.ts +2 -0
- package/dist/agent/commands/setup.js +78 -0
- package/dist/agent/commands/share.d.ts +2 -0
- package/dist/agent/commands/share.js +64 -0
- package/dist/agent/commands/status.js +14 -2
- package/dist/agent/commands/types.d.ts +99 -6
- package/dist/agent/commands/update.js +8 -0
- package/dist/agent/commands/usage.d.ts +2 -0
- package/dist/agent/commands/usage.js +8 -0
- package/dist/agent/factory.d.ts +11 -0
- package/dist/agent/factory.js +113 -88
- package/dist/agent/loop_policy.d.ts +6 -3
- package/dist/agent/loop_policy.js +12 -3
- package/dist/agent/measurement_guidance.d.ts +2 -0
- package/dist/agent/measurement_guidance.js +5 -0
- package/dist/agent/request_encoder.d.ts +8 -1
- package/dist/agent/request_encoder.js +95 -23
- package/dist/agent/runtime/benchmark_comparison.d.ts +30 -0
- package/dist/agent/runtime/benchmark_comparison.js +94 -0
- package/dist/agent/runtime/benchmark_contract.d.ts +48 -0
- package/dist/agent/runtime/benchmark_contract.js +90 -0
- package/dist/agent/runtime/checked_commands.d.ts +32 -0
- package/dist/agent/runtime/checked_commands.js +119 -0
- package/dist/agent/runtime/command_execution_policy.d.ts +26 -0
- package/dist/agent/runtime/command_execution_policy.js +91 -0
- package/dist/agent/runtime/command_jobs.d.ts +36 -18
- package/dist/agent/runtime/command_jobs.js +151 -13
- package/dist/agent/runtime/command_panes.d.ts +59 -0
- package/dist/agent/runtime/command_panes.js +398 -0
- package/dist/agent/runtime/command_wait.d.ts +19 -0
- package/dist/agent/runtime/command_wait.js +167 -0
- package/dist/agent/runtime/cpu_benchmark.d.ts +30 -0
- package/dist/agent/runtime/cpu_benchmark.js +126 -0
- package/dist/agent/runtime/delegated_evidence.d.ts +26 -0
- package/dist/agent/runtime/delegated_evidence.js +80 -0
- package/dist/agent/runtime/evidence.d.ts +127 -0
- package/dist/agent/runtime/evidence.js +468 -0
- package/dist/agent/runtime/execution_context.d.ts +7 -0
- package/dist/agent/runtime/execution_context.js +39 -3
- package/dist/agent/runtime/json_verifier_recipe.d.ts +8 -0
- package/dist/agent/runtime/json_verifier_recipe.js +66 -0
- package/dist/agent/runtime/measurements.d.ts +110 -0
- package/dist/agent/runtime/measurements.js +317 -0
- package/dist/agent/runtime/policy.d.ts +4 -0
- package/dist/agent/runtime/policy.js +31 -20
- package/dist/agent/runtime/provider_native_evidence.d.ts +20 -0
- package/dist/agent/runtime/provider_native_evidence.js +86 -0
- package/dist/agent/runtime/recovery.d.ts +2 -0
- package/dist/agent/runtime/recovery.js +45 -2
- package/dist/agent/runtime/remote_broker_transport.d.ts +10 -0
- package/dist/agent/runtime/remote_broker_transport.js +84 -0
- package/dist/agent/runtime/remote_deletion_receipts.d.ts +3 -0
- package/dist/agent/runtime/remote_deletion_receipts.js +43 -0
- package/dist/agent/runtime/remote_journal_replay.d.ts +13 -0
- package/dist/agent/runtime/remote_journal_replay.js +233 -0
- package/dist/agent/runtime/remote_mutation_journal.d.ts +25 -0
- package/dist/agent/runtime/remote_mutation_journal.js +208 -0
- package/dist/agent/runtime/remote_resource_endpoint.d.ts +7 -0
- package/dist/agent/runtime/remote_resource_endpoint.js +6 -0
- package/dist/agent/runtime/remote_resource_errors.d.ts +5 -0
- package/dist/agent/runtime/remote_resource_errors.js +9 -0
- package/dist/agent/runtime/remote_resource_script.d.ts +2 -0
- package/dist/agent/runtime/remote_resource_script.js +1009 -0
- package/dist/agent/runtime/remote_resources.d.ts +29 -0
- package/dist/agent/runtime/remote_resources.js +160 -0
- package/dist/agent/runtime/source_verification.d.ts +12 -0
- package/dist/agent/runtime/source_verification.js +210 -0
- package/dist/agent/runtime/source_verification_contract.d.ts +75 -0
- package/dist/agent/runtime/source_verification_contract.js +203 -0
- package/dist/agent/runtime/tool_checkpoints.d.ts +11 -0
- package/dist/agent/runtime/tool_checkpoints.js +26 -0
- package/dist/agent/runtime/tool_effects.d.ts +5 -0
- package/dist/agent/runtime/tool_progress.d.ts +12 -0
- package/dist/agent/runtime/tool_progress.js +76 -0
- package/dist/agent/runtime/tool_runtime.d.ts +16 -1
- package/dist/agent/runtime/tool_runtime.js +204 -10
- package/dist/agent/runtime/tracing.d.ts +1 -1
- package/dist/agent/runtime/verifier_capture.d.ts +9 -0
- package/dist/agent/runtime/verifier_capture.js +100 -0
- package/dist/agent/runtime/verifier_contract.d.ts +24 -0
- package/dist/agent/runtime/verifier_contract.js +41 -0
- package/dist/agent/subagent.d.ts +20 -10
- package/dist/agent/subagent.js +266 -29
- package/dist/agent/tool_response_directory.d.ts +24 -0
- package/dist/agent/tool_response_directory.js +61 -0
- package/dist/agent/tool_response_source.d.ts +8 -0
- package/dist/agent/tool_response_source.js +49 -0
- package/dist/agent/tool_response_store.d.ts +75 -4
- package/dist/agent/tool_response_store.js +583 -64
- package/dist/agent/tools/ask_user.d.ts +3 -1
- package/dist/agent/tools/ask_user.js +30 -11
- package/dist/agent/tools/background.js +1 -0
- package/dist/agent/tools/benchmark_cpu.d.ts +2 -0
- package/dist/agent/tools/benchmark_cpu.js +102 -0
- package/dist/agent/tools/compare_benchmarks.d.ts +2 -0
- package/dist/agent/tools/compare_benchmarks.js +53 -0
- package/dist/agent/tools/deferred.js +1 -0
- package/dist/agent/tools/delegate.js +18 -2
- package/dist/agent/tools/helper_requirements.d.ts +7 -0
- package/dist/agent/tools/helper_requirements.js +19 -0
- package/dist/agent/tools/index.d.ts +1 -0
- package/dist/agent/tools/index.js +3 -0
- package/dist/agent/tools/measurement_report.d.ts +22 -0
- package/dist/agent/tools/measurement_report.js +190 -0
- package/dist/agent/tools/pane.d.ts +0 -7
- package/dist/agent/tools/pane.js +5 -4
- package/dist/agent/tools/project_context.d.ts +3 -0
- package/dist/agent/tools/project_context.js +45 -0
- package/dist/agent/tools/recall_tool_response.d.ts +3 -5
- package/dist/agent/tools/recall_tool_response.js +19 -29
- package/dist/agent/tools/registry.d.ts +1 -0
- package/dist/agent/tools/registry.js +23 -0
- package/dist/agent/tools/related_sessions.d.ts +2 -0
- package/dist/agent/tools/related_sessions.js +156 -0
- package/dist/agent/tools/routine.js +13 -3
- package/dist/agent/tools/session_evidence.d.ts +3 -0
- package/dist/agent/tools/session_evidence.js +72 -0
- package/dist/agent/tools/shell.d.ts +4 -3
- package/dist/agent/tools/shell.js +174 -47
- package/dist/agent/tools/tool_search.js +3 -2
- package/dist/agent/tools/types.d.ts +28 -0
- package/dist/agent/tools/verify_artifact.d.ts +2 -0
- package/dist/agent/tools/verify_artifact.js +60 -0
- package/dist/agent/tools/workflow.js +1 -0
- package/dist/app/activity.d.ts +6 -1
- package/dist/app/activity.js +81 -12
- package/dist/app/agent_runner.d.ts +6 -1
- package/dist/app/agent_runner.js +34 -19
- package/dist/app/command_context.js +106 -10
- package/dist/app/controller.d.ts +15 -4
- package/dist/app/controller.js +29 -3
- package/dist/app/escape_stop.d.ts +11 -0
- package/dist/app/escape_stop.js +15 -0
- package/dist/app/liveness.d.ts +6 -4
- package/dist/app/liveness.js +13 -3
- package/dist/app/model_catalog_cache.d.ts +5 -0
- package/dist/app/model_catalog_cache.js +138 -0
- package/dist/app/ordered_transcript.js +43 -4
- package/dist/app/prompt_turn.d.ts +14 -0
- package/dist/app/prompt_turn.js +53 -0
- package/dist/app/recap.d.ts +3 -0
- package/dist/app/recap.js +9 -3
- package/dist/app/restart.d.ts +3 -2
- package/dist/app/restart.js +22 -7
- package/dist/app/rewind.d.ts +3 -3
- package/dist/app/rewind.js +3 -3
- package/dist/app/selection_completion.d.ts +17 -2
- package/dist/app/selection_completion.js +84 -9
- package/dist/app/session_manager.d.ts +38 -6
- package/dist/app/session_manager.js +263 -60
- package/dist/app/session_messages.d.ts +3 -0
- package/dist/app/session_messages.js +60 -0
- package/dist/app/task_scope_router.d.ts +20 -0
- package/dist/app/task_scope_router.js +173 -0
- package/dist/app/transcript_window.d.ts +2 -0
- package/dist/app/transcript_window.js +4 -0
- package/dist/app/workspace_admission_details.d.ts +3 -0
- package/dist/app/workspace_admission_details.js +26 -0
- package/dist/app/workspace_layout_controller.d.ts +11 -0
- package/dist/app/workspace_layout_controller.js +88 -0
- package/dist/app/workspace_monitor.d.ts +1 -0
- package/dist/app/workspace_monitor.js +216 -0
- package/dist/app/workspace_presets.d.ts +29 -0
- package/dist/app/workspace_presets.js +192 -0
- package/dist/attention/queue.d.ts +37 -0
- package/dist/attention/queue.js +183 -0
- package/dist/bench/rf_shared.d.ts +2 -0
- package/dist/board/binding.d.ts +42 -0
- package/dist/board/binding.js +38 -0
- package/dist/board/client.d.ts +42 -0
- package/dist/board/client.js +60 -0
- package/dist/cli.js +1 -1
- package/dist/cli_args.js +19 -17
- package/dist/cli_main.js +110 -13
- package/dist/cli_ratatui.d.ts +183 -16
- package/dist/cli_ratatui.js +3989 -1255
- package/dist/components/ActivityLine.d.ts +3 -2
- package/dist/components/ActivityLine.js +2 -2
- package/dist/components/InputArea.d.ts +19 -1
- package/dist/components/InputArea.js +264 -190
- package/dist/components/MessageList.d.ts +2 -0
- package/dist/components/MessageList.js +3 -1
- package/dist/components/SingleMessage.d.ts +2 -0
- package/dist/components/SingleMessage.js +4 -2
- package/dist/components/StatusBar.d.ts +4 -2
- package/dist/components/StatusBar.js +3 -1
- package/dist/conductor_branch.js +3 -0
- package/dist/config/api_retry.d.ts +6 -1
- package/dist/config/api_retry.js +19 -1
- package/dist/config/defaults.d.ts +2 -1
- package/dist/config/defaults.js +9 -2
- package/dist/config/message_display.d.ts +1 -0
- package/dist/config/message_display.js +17 -2
- package/dist/config/permissions.d.ts +21 -0
- package/dist/config/permissions.js +89 -0
- package/dist/config/resolved.d.ts +2 -2
- package/dist/config/types.d.ts +32 -5
- package/dist/config.d.ts +38 -4
- package/dist/config.js +290 -42
- package/dist/context/project_intelligence.d.ts +44 -0
- package/dist/context/project_intelligence.js +246 -0
- package/dist/desktop/cli_launch.d.ts +8 -0
- package/dist/desktop/cli_launch.js +6 -0
- package/dist/desktop/cli_shim.d.ts +8 -0
- package/dist/desktop/cli_shim.js +120 -0
- package/dist/desktop/runtime.d.ts +16 -0
- package/dist/desktop/runtime.js +161 -0
- package/dist/desktop/worker_launch.d.ts +7 -0
- package/dist/desktop/worker_launch.js +7 -0
- package/dist/diagnostics/cargo_mutants_selection.d.ts +27 -0
- package/dist/diagnostics/cargo_mutants_selection.js +48 -0
- package/dist/diagnostics/native_terminal_benchmark.d.ts +58 -0
- package/dist/diagnostics/native_terminal_benchmark.js +1247 -0
- package/dist/diagnostics/session_evidence_package.d.ts +40 -0
- package/dist/diagnostics/session_evidence_package.js +234 -0
- package/dist/diagnostics/session_export.d.ts +93 -0
- package/dist/diagnostics/session_export.js +634 -0
- package/dist/emulation/tool_adapters.js +48 -18
- package/dist/emulation/ztc_addendum.d.ts +1 -0
- package/dist/emulation/ztc_addendum.js +13 -12
- package/dist/environment/service_runner.d.ts +1 -0
- package/dist/environment/service_runner.js +68 -0
- package/dist/environment/store.d.ts +120 -0
- package/dist/environment/store.js +387 -0
- package/dist/events.d.ts +40 -1
- package/dist/events.js +10 -17
- package/dist/goal_contract.d.ts +25 -0
- package/dist/goal_contract.js +44 -0
- package/dist/headless.d.ts +31 -0
- package/dist/headless.js +578 -70
- package/dist/headless_cli.js +8 -0
- package/dist/headless_cli_args.d.ts +1 -0
- package/dist/headless_cli_args.js +1 -0
- package/dist/intake/cli.d.ts +1 -0
- package/dist/intake/cli.js +33 -0
- package/dist/intake/format.d.ts +2 -0
- package/dist/intake/format.js +14 -0
- package/dist/intake/notifications.d.ts +16 -0
- package/dist/intake/notifications.js +132 -0
- package/dist/intake/store.d.ts +56 -0
- package/dist/intake/store.js +238 -0
- package/dist/library.d.ts +8 -0
- package/dist/library.js +19 -10
- package/dist/mcp/client.d.ts +1 -0
- package/dist/mcp/client.js +20 -0
- package/dist/modes/builtin/plan.yaml +2 -2
- package/dist/modes/handlers.js +1 -1
- package/dist/onboarding/first_run.d.ts +3 -0
- package/dist/onboarding/first_run.js +33 -25
- package/dist/onboarding/setup.d.ts +32 -0
- package/dist/onboarding/setup.js +133 -0
- package/dist/onboarding/setup_agent_health.d.ts +17 -0
- package/dist/onboarding/setup_agent_health.js +79 -0
- package/dist/onboarding/setup_environment.d.ts +66 -0
- package/dist/onboarding/setup_environment.js +219 -0
- package/dist/onboarding/setup_workspace.d.ts +17 -0
- package/dist/onboarding/setup_workspace.js +129 -0
- package/dist/optimize/adapters/index.d.ts +4 -1
- package/dist/optimize/adapters/index.js +7 -0
- package/dist/optimize/adapters/kernelbench.js +14 -5
- package/dist/optimize/adapters/popcorn.js +3 -2
- package/dist/optimize/adapters/profile_benchmark.js +13 -7
- package/dist/optimize/adapters/rfbench.js +25 -14
- package/dist/optimize/adapters/types.d.ts +3 -0
- package/dist/optimize/adapters/zergpod.js +5 -2
- package/dist/optimize/baseline.js +10 -21
- package/dist/optimize/branch.js +9 -12
- package/dist/optimize/combine.js +2 -3
- package/dist/optimize/executor.js +34 -48
- package/dist/optimize/measurements.d.ts +55 -0
- package/dist/optimize/measurements.js +173 -0
- package/dist/optimize/results.d.ts +1 -0
- package/dist/optimize/results.js +11 -33
- package/dist/optimize/tge.js +2 -1
- package/dist/panes/initial_input.d.ts +19 -0
- package/dist/panes/initial_input.js +206 -0
- package/dist/panes/labels.d.ts +16 -0
- package/dist/panes/labels.js +42 -0
- package/dist/panes/model_catalog.d.ts +3 -3
- package/dist/panes/model_catalog.js +28 -4
- package/dist/panes/pane_registry.js +6 -2
- package/dist/panes/types.d.ts +3 -0
- package/dist/panes/ztc_launch.js +19 -0
- package/dist/plugin/optimization.d.ts +2 -0
- package/dist/plugin/optimization.js +1 -0
- package/dist/plugin/runtime.d.ts +2 -0
- package/dist/plugin/simulation.d.ts +6 -1
- package/dist/plugin/simulation_contract.d.ts +836 -1
- package/dist/plugin/simulation_documents.d.ts +22 -0
- package/dist/plugin/simulation_documents.js +1 -0
- package/dist/plugin/simulation_interventions.d.ts +103 -0
- package/dist/plugin/simulation_interventions.js +1 -0
- package/dist/plugin/simulation_living.d.ts +1 -0
- package/dist/plugin/simulation_living.js +3 -0
- package/dist/plugin/simulation_meetings.d.ts +121 -0
- package/dist/plugin/simulation_meetings.js +1 -0
- package/dist/plugin/simulation_story_review.d.ts +111 -0
- package/dist/plugin/simulation_story_review.js +1 -0
- package/dist/plugin/simulation_storyteller.d.ts +91 -0
- package/dist/plugin/simulation_storyteller.js +1 -0
- package/dist/plugin/simulation_structured.d.ts +2 -0
- package/dist/plugin/simulation_structured.js +2 -0
- package/dist/plugin/simulation_toolkit.d.ts +21 -0
- package/dist/plugin/simulation_toolkit.js +24 -0
- package/dist/prompts/tool_delegate_task.j2 +1 -1
- package/dist/remote-broker/Dockerfile +10 -0
- package/dist/remote-broker/archive.py +1227 -0
- package/dist/remote-broker/cutover.py +761 -0
- package/dist/remote-broker/requirements.txt +5 -0
- package/dist/remote-broker/resources.json +6 -0
- package/dist/remote-broker/resources.write-staging.example.json +18 -0
- package/dist/remote-broker/retained.py +686 -0
- package/dist/remote-broker/retained_cleanup.py +550 -0
- package/dist/remote-broker/server.py +648 -0
- package/dist/remote-broker/worker.py +1007 -0
- package/dist/router_auth.d.ts +31 -0
- package/dist/router_auth.js +155 -9
- package/dist/runbooks/catalog.d.ts +3 -0
- package/dist/runbooks/catalog.js +26 -0
- package/dist/runbooks/library.d.ts +11 -0
- package/dist/runbooks/library.js +95 -0
- package/dist/runbooks/package.d.ts +43 -0
- package/dist/runbooks/package.js +102 -0
- package/dist/session.d.ts +65 -13
- package/dist/session.js +548 -43
- package/dist/session_handoff.d.ts +25 -0
- package/dist/session_handoff.js +322 -0
- package/dist/session_handoff_contract.d.ts +89 -0
- package/dist/session_handoff_contract.js +179 -0
- package/dist/session_media.d.ts +41 -0
- package/dist/session_media.js +357 -0
- package/dist/session_ownership.d.ts +16 -0
- package/dist/session_ownership.js +221 -0
- package/dist/session_public.d.ts +10 -2
- package/dist/session_public.js +6 -1
- package/dist/simulation/dynamic_history.d.ts +42 -0
- package/dist/simulation/dynamic_history.js +173 -0
- package/dist/simulation/engines/swarm/pane_manager.js +7 -6
- package/dist/simulation/inference.d.ts +3 -1
- package/dist/simulation/inference.js +19 -1
- package/dist/simulation/intervention_generation.d.ts +27 -0
- package/dist/simulation/intervention_generation.js +246 -0
- package/dist/simulation/intervention_material.d.ts +4 -0
- package/dist/simulation/intervention_material.js +81 -0
- package/dist/simulation/living/context.d.ts +3130 -0
- package/dist/simulation/living/context.js +944 -0
- package/dist/simulation/living/definer.d.ts +12 -0
- package/dist/simulation/living/definer.js +223 -0
- package/dist/simulation/living/definition.d.ts +257 -0
- package/dist/simulation/living/definition.js +341 -0
- package/dist/simulation/living/frame.d.ts +259 -0
- package/dist/simulation/living/frame.js +223 -0
- package/dist/simulation/living/identifiers.d.ts +2 -0
- package/dist/simulation/living/identifiers.js +12 -0
- package/dist/simulation/living/index.d.ts +15 -0
- package/dist/simulation/living/index.js +15 -0
- package/dist/simulation/living/inference.d.ts +219 -0
- package/dist/simulation/living/inference.js +576 -0
- package/dist/simulation/living/mechanics.d.ts +54 -0
- package/dist/simulation/living/mechanics.js +588 -0
- package/dist/simulation/living/model-input.d.ts +25 -0
- package/dist/simulation/living/model-input.js +215 -0
- package/dist/simulation/living/open-world.d.ts +257 -0
- package/dist/simulation/living/open-world.js +102 -0
- package/dist/simulation/living/projection.d.ts +7 -0
- package/dist/simulation/living/projection.js +31 -0
- package/dist/simulation/living/recall.d.ts +17 -0
- package/dist/simulation/living/recall.js +25 -0
- package/dist/simulation/living/reduce.d.ts +15 -0
- package/dist/simulation/living/reduce.js +1853 -0
- package/dist/simulation/living/replay.d.ts +6 -0
- package/dist/simulation/living/replay.js +22 -0
- package/dist/simulation/living/runtime.d.ts +140 -0
- package/dist/simulation/living/runtime.js +3020 -0
- package/dist/simulation/living/shared-kinds.d.ts +24 -0
- package/dist/simulation/living/shared-kinds.js +96 -0
- package/dist/simulation/living/types.d.ts +2785 -0
- package/dist/simulation/living/types.js +669 -0
- package/dist/simulation/llm.d.ts +3 -1
- package/dist/simulation/llm.js +90 -30
- package/dist/simulation/memory/embedding.d.ts +1 -1
- package/dist/simulation/memory/embedding.js +9 -3
- package/dist/simulation/memory/filesystem.d.ts +2 -0
- package/dist/simulation/memory/filesystem.js +5 -1
- package/dist/simulation/memory/filesystem_file_tree.d.ts +4 -1
- package/dist/simulation/memory/filesystem_file_tree.js +41 -10
- package/dist/simulation/memory/filesystem_invariants.js +1 -2
- package/dist/simulation/memory/filesystem_types.d.ts +1 -0
- package/dist/simulation/memory/memory.d.ts +2 -0
- package/dist/simulation/memory/memory.js +5 -1
- package/dist/simulation/orchestration/intent.js +0 -2
- package/dist/simulation/orchestration/lifecycle.js +0 -2
- package/dist/simulation/plugin_host.d.ts +25 -1
- package/dist/simulation/plugin_host.js +334 -17
- package/dist/simulation/session_documents.d.ts +20 -0
- package/dist/simulation/session_documents.js +62 -0
- package/dist/simulation/session_input_validation.d.ts +43 -0
- package/dist/simulation/session_input_validation.js +364 -0
- package/dist/simulation/session_inputs.d.ts +32 -0
- package/dist/simulation/session_inputs.js +154 -0
- package/dist/simulation/telemetry.d.ts +11 -14
- package/dist/simulation/telemetry.js +177 -54
- package/dist/simulation/toolkit/bounded_turns.d.ts +13 -0
- package/dist/simulation/toolkit/bounded_turns.js +80 -0
- package/dist/simulation/toolkit/dynamic_agents.d.ts +25 -0
- package/dist/simulation/toolkit/dynamic_agents.js +218 -0
- package/dist/simulation/toolkit/dynamic_digest.d.ts +1 -0
- package/dist/simulation/toolkit/dynamic_digest.js +8 -0
- package/dist/simulation/toolkit/dynamic_documents.d.ts +7 -0
- package/dist/simulation/toolkit/dynamic_documents.js +71 -0
- package/dist/simulation/toolkit/dynamic_driver.d.ts +8 -0
- package/dist/simulation/toolkit/dynamic_driver.js +269 -0
- package/dist/simulation/toolkit/dynamic_game.d.ts +53 -0
- package/dist/simulation/toolkit/dynamic_game.js +805 -0
- package/dist/simulation/toolkit/dynamic_knowledge.d.ts +15 -0
- package/dist/simulation/toolkit/dynamic_knowledge.js +91 -0
- package/dist/simulation/toolkit/dynamic_mechanics.d.ts +22 -0
- package/dist/simulation/toolkit/dynamic_mechanics.js +910 -0
- package/dist/simulation/toolkit/dynamic_meetings.d.ts +239 -0
- package/dist/simulation/toolkit/dynamic_meetings.js +350 -0
- package/dist/simulation/toolkit/dynamic_progress.d.ts +131 -0
- package/dist/simulation/toolkit/dynamic_progress.js +214 -0
- package/dist/simulation/toolkit/dynamic_projection.d.ts +9 -0
- package/dist/simulation/toolkit/dynamic_projection.js +219 -0
- package/dist/simulation/toolkit/dynamic_runtime.d.ts +412 -0
- package/dist/simulation/toolkit/dynamic_runtime.js +6536 -0
- package/dist/simulation/toolkit/dynamic_state.d.ts +111 -0
- package/dist/simulation/toolkit/dynamic_state.js +1967 -0
- package/dist/simulation/toolkit/dynamic_story_review.d.ts +508 -0
- package/dist/simulation/toolkit/dynamic_story_review.js +333 -0
- package/dist/simulation/toolkit/dynamic_storyteller.d.ts +77 -0
- package/dist/simulation/toolkit/dynamic_storyteller.js +114 -0
- package/dist/simulation/toolkit/dynamic_storyteller_runtime.d.ts +26 -0
- package/dist/simulation/toolkit/dynamic_storyteller_runtime.js +126 -0
- package/dist/simulation/toolkit/dynamic_world.d.ts +22 -0
- package/dist/simulation/toolkit/dynamic_world.js +377 -0
- package/dist/simulation/toolkit/structured_output.d.ts +5 -0
- package/dist/simulation/toolkit/structured_output.js +321 -0
- package/dist/simulation/types/world.d.ts +2 -0
- package/dist/simulation/world/artifact_store.js +1 -1
- package/dist/simulation/world/memory_manager.d.ts +5 -0
- package/dist/simulation/world/memory_manager.js +17 -2
- package/dist/simulation/world/state.d.ts +3 -2
- package/dist/simulation/world/state.js +15 -5
- package/dist/skills/bundled/measurement-validation/SKILL.md +144 -0
- package/dist/terminal_attach.d.ts +1 -0
- package/dist/terminal_attach.js +113 -0
- package/dist/tool_progress.d.ts +3 -0
- package/dist/tool_progress.js +27 -0
- package/dist/types.d.ts +145 -10
- package/dist/types.js +3 -0
- package/dist/ui/core/input.d.ts +3 -0
- package/dist/ui/core/input_segments.d.ts +18 -1
- package/dist/ui/core/input_segments.js +131 -47
- package/dist/ui/core/input_state.d.ts +12 -0
- package/dist/ui/core/layout_yoga.d.ts +1 -1
- package/dist/ui/core/turn_metadata.d.ts +5 -0
- package/dist/ui/core/turn_metadata.js +22 -0
- package/dist/ui/ink/render.d.ts +2 -1
- package/dist/ui/ink/render.js +6 -5
- package/dist/ui/ratatui/headless_pane_manager.d.ts +14 -1
- package/dist/ui/ratatui/headless_pane_manager.js +293 -104
- package/dist/ui/ratatui/index.d.ts +1 -0
- package/dist/ui/ratatui/input.d.ts +4 -0
- package/dist/ui/ratatui/input.js +15 -0
- package/dist/ui/ratatui/ipc_path.d.ts +2 -0
- package/dist/ui/ratatui/ipc_path.js +29 -1
- package/dist/ui/ratatui/mux_persistence.d.ts +3 -1
- package/dist/ui/ratatui/mux_persistence.js +139 -1
- package/dist/ui/ratatui/pane_relay.d.ts +1 -1
- package/dist/ui/ratatui/pane_relay.js +55 -27
- package/dist/ui/ratatui/process.d.ts +17 -1
- package/dist/ui/ratatui/process.js +80 -7
- package/dist/ui/ratatui/protocol.d.ts +236 -1
- package/dist/ui/ratatui/protocol.js +90 -0
- package/dist/ui/scrollback.d.ts +2 -1
- package/dist/ui/scrollback.js +9 -4
- package/dist/ui/stream_typewriter.d.ts +8 -3
- package/dist/ui/stream_typewriter.js +30 -1
- package/dist/ui/streaming_scrollback.d.ts +1 -0
- package/dist/ui/streaming_scrollback.js +1 -1
- package/dist/ui/transcript_render_cache.js +10 -0
- package/dist/ui/views/activity_line.d.ts +5 -3
- package/dist/ui/views/activity_line.js +65 -7
- package/dist/ui/views/app.d.ts +6 -3
- package/dist/ui/views/app.js +17 -6
- package/dist/ui/views/completion_menu.js +10 -5
- package/dist/ui/views/input_area.d.ts +7 -3
- package/dist/ui/views/input_area.js +15 -9
- package/dist/ui/views/message_list.d.ts +4 -1
- package/dist/ui/views/message_list.js +89 -19
- package/dist/ui/views/queue_panel.d.ts +3 -1
- package/dist/ui/views/queue_panel.js +9 -2
- package/dist/ui/views/status_bar.d.ts +4 -2
- package/dist/ui/views/status_bar.js +28 -13
- package/dist/ui/views/theme.d.ts +2 -0
- package/dist/ui/views/theme.js +2 -0
- package/dist/ui/widgets/color_panel.js +18 -0
- package/dist/ui/widgets/form.js +8 -0
- package/dist/ui/widgets/log_view.js +7 -0
- package/dist/ui/widgets/navigator_panel.js +8 -0
- package/dist/ui/widgets/prompt_viewer.js +2 -0
- package/dist/ui/widgets/questionnaire.d.ts +2 -0
- package/dist/ui/widgets/questionnaire.js +79 -16
- package/dist/ui/widgets/resume_panel.d.ts +2 -0
- package/dist/ui/widgets/resume_panel.js +26 -15
- package/dist/ui/widgets/rewind_panel.d.ts +2 -2
- package/dist/ui/widgets/rewind_panel.js +4 -2
- package/dist/ui/widgets/select.js +16 -27
- package/dist/ui/widgets/settings_panel.js +16 -0
- package/dist/ui/widgets/status_line_panel.d.ts +1 -0
- package/dist/ui/widgets/status_line_panel.js +30 -4
- package/dist/ui/widgets/text_input.d.ts +2 -0
- package/dist/ui/widgets/text_input.js +15 -1
- package/dist/ui/widgets/types.d.ts +2 -0
- package/dist/usage_projection.d.ts +24 -0
- package/dist/usage_projection.js +130 -0
- package/dist/usage_snapshot.d.ts +36 -0
- package/dist/usage_snapshot.js +131 -0
- package/dist/utils/assistant_message.d.ts +2 -0
- package/dist/utils/assistant_message.js +5 -0
- package/dist/utils/atomic_write.d.ts +6 -2
- package/dist/utils/atomic_write.js +29 -4
- package/dist/utils/checked_shell.d.ts +25 -0
- package/dist/utils/checked_shell.js +107 -0
- package/dist/utils/compaction.d.ts +4 -1
- package/dist/utils/compaction.js +31 -7
- package/dist/utils/context.d.ts +4 -4
- package/dist/utils/context.js +14 -12
- package/dist/utils/deepseek.d.ts +2 -2
- package/dist/utils/deepseek.js +13 -5
- package/dist/utils/ephemeral.js +4 -0
- package/dist/utils/ephemeral_tools.d.ts +18 -0
- package/dist/utils/ephemeral_tools.js +97 -0
- package/dist/utils/jev_client.d.ts +4 -0
- package/dist/utils/jev_client.js +15 -0
- package/dist/utils/model_cache.d.ts +15 -0
- package/dist/utils/model_cache.js +143 -0
- package/dist/utils/models.d.ts +4 -2
- package/dist/utils/models.js +12 -16
- package/dist/utils/reasoning.d.ts +8 -1
- package/dist/utils/reasoning.js +31 -11
- package/dist/utils/router_catalog.d.ts +49 -0
- package/dist/utils/router_catalog.js +271 -0
- package/dist/utils/sandbox.d.ts +9 -0
- package/dist/utils/sandbox.js +118 -15
- package/dist/utils/shell.d.ts +7 -0
- package/dist/utils/shell.js +98 -34
- package/dist/utils/subprocess_env.d.ts +3 -0
- package/dist/utils/subprocess_env.js +27 -1
- package/dist/web/accounts_mirror.d.ts +3 -1
- package/dist/web/accounts_mirror.js +13 -9
- package/dist/web/child_publication.d.ts +17 -0
- package/dist/web/child_publication.js +45 -0
- package/dist/web/mirror_authenticator.d.ts +31 -11
- package/dist/web/mirror_authenticator.js +67 -17
- package/dist/web/mirror_client.d.ts +31 -4
- package/dist/web/mirror_client.js +189 -23
- package/dist/web/mirror_stream.d.ts +84 -22
- package/dist/web/mirror_stream.js +676 -95
- package/dist/web/observer_query_redaction.d.ts +6 -0
- package/dist/web/observer_query_redaction.js +58 -0
- package/dist/web/pane_registry.d.ts +2 -0
- package/dist/web/pane_registry.js +86 -22
- package/dist/web/tool_image.d.ts +6 -0
- package/dist/web/tool_image.js +17 -0
- package/dist/web/view_plugin.d.ts +14 -0
- package/dist/web/view_plugin.js +23 -1
- package/dist/worker/executor.js +31 -12
- package/dist/worker/index.d.ts +1 -0
- package/dist/worker/toolsets.js +3 -1
- package/dist/worker/types.d.ts +12 -1
- package/dist/workflows/registry.js +1 -0
- package/dist/workflows/registry_handle.d.ts +2 -0
- package/dist/workflows/runtime.d.ts +2 -0
- package/dist/workflows/runtime.js +1 -0
- package/dist/workspace_agent.d.ts +7 -0
- package/dist/workspace_agent.js +36 -0
- package/dist/workspace_collision.d.ts +76 -0
- package/dist/workspace_collision.js +688 -0
- package/dist/workspace_layout.d.ts +18 -0
- package/dist/workspace_layout.js +121 -0
- package/dist/workspace_runtime.d.ts +44 -0
- package/dist/workspace_runtime.js +82 -0
- package/dist/workspace_session_context.d.ts +62 -0
- package/dist/workspace_session_context.js +160 -0
- package/dist/zlm-embed.mjs +32518 -9615
- package/dist/zlm.js +1 -0
- package/node_modules/@zerg/model-contracts/LICENSE.md +375 -0
- package/node_modules/@zerg/model-contracts/README.md +90 -0
- package/node_modules/@zerg/model-contracts/index.d.ts +20 -0
- package/node_modules/@zerg/model-contracts/index.js +223 -0
- package/node_modules/@zerg/model-contracts/package.json +8 -0
- package/node_modules/glob/node_modules/brace-expansion/index.js +78 -22
- package/node_modules/glob/node_modules/brace-expansion/package.json +1 -1
- package/node_modules/readdir-glob/node_modules/brace-expansion/index.js +78 -22
- package/node_modules/readdir-glob/node_modules/brace-expansion/package.json +1 -1
- package/package.json +45 -24
- package/packages/model-contracts/LICENSE.md +375 -0
- package/packages/model-contracts/README.md +90 -0
- package/packages/model-contracts/index.d.ts +20 -0
- package/packages/model-contracts/index.js +223 -0
- package/packages/model-contracts/package.json +8 -0
- package/remote-broker/Dockerfile +10 -0
- package/remote-broker/README.md +308 -0
- package/remote-broker/archive.py +1227 -0
- package/remote-broker/cutover.py +761 -0
- package/remote-broker/requirements.txt +5 -0
- package/remote-broker/resources.example.json +6 -0
- package/remote-broker/resources.write-staging.example.json +18 -0
- package/remote-broker/retained.py +686 -0
- package/remote-broker/retained_cleanup.py +550 -0
- package/remote-broker/server.py +648 -0
- package/scripts/build-remote-broker.mjs +13 -0
- package/scripts/ensure-local-packages.mjs +6 -0
- package/scripts/node-pty-helpers.mjs +103 -0
package/dist/cli_args.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { CODEX_REASONING_EFFORTS } from './config/types.js';
|
|
2
|
-
import { getSupportedCodexReasoningEfforts, unsupportedEffortMessage } from './utils/models.js';
|
|
3
1
|
import { validateProfileName } from './config/profiles.js';
|
|
4
2
|
const BOOLEAN_FLAGS = new Set([
|
|
5
|
-
'--no-pin-task-header', '--help', '-h', '--version', '-v', '--list-sessions', '--plan', '--desktop', '--mux', '--no-mux', '--new-window', '--fullscreen', '--pane', '--human-sim-pane', '--zlicky', '--computer-use', '--ml', '--sfx-list', '--voyager-loop', '--mirror', '--open-mirror', '--mirror-open', '--no-browser-open', '--navigator-hidden', '--headless-mirror', '--headless-mirror-open', '--headless-interactive', '--headless', '--json', '--json-stream', '--quiet', '-q', '--timestamps', '--verbose', '--colony',
|
|
3
|
+
'--detach-environment', '--no-pin-task-header', '--help', '-h', '--version', '-v', '--list-sessions', '--plan', '--desktop', '--mux', '--no-mux', '--new-window', '--fullscreen', '--pane', '--human-sim-pane', '--zlicky', '--computer-use', '--ml', '--sfx-list', '--voyager-loop', '--mirror', '--open-mirror', '--mirror-open', '--no-browser-open', '--navigator-hidden', '--headless-mirror', '--headless-mirror-open', '--headless-interactive', '--headless', '--json', '--json-stream', '--quiet', '-q', '--timestamps', '--verbose', '--colony',
|
|
6
4
|
]);
|
|
7
5
|
const REQUIRED_VALUE_FLAGS = new Set([
|
|
8
|
-
'--
|
|
6
|
+
'--layout', '--layout-refresh-ms', '--layout-workers',
|
|
7
|
+
'--cwd', '--name', '--session-id', '--session-file', '--mode', '--agent-domain', '--domain-paths', '--embedded', '--embedded-rom', '--embedded-workflow', '--embedded-runtime-tick-ms', '--embedded-runtime-frame-budget', '--bench', '--bench-workflow', '--num-zergs', '--provider', '--model', '--auth-mode', '--router-url', '--profile', '--effort', '--thinking', '--emulation', '--prompt', '--max-iterations', '--timeout', '--output', '--voyager-task', '--voyager-max-rounds', '--mirror-port', '--navigator-group', '--connect-zerg',
|
|
9
8
|
]);
|
|
10
9
|
const OPTIONAL_VALUE_FLAGS = new Set(['--resume', '--continue', '-c', '--sfx']);
|
|
11
10
|
/** Separate prompt text from options before the legacy flag consumers see it. */
|
|
@@ -48,6 +47,7 @@ export function parsePromptInvocation(input) {
|
|
|
48
47
|
return { args, ...(prompt !== undefined ? { prompt } : {}) };
|
|
49
48
|
}
|
|
50
49
|
const POSITIVE_INTEGER_FLAGS = new Set([
|
|
50
|
+
'--layout-refresh-ms', '--layout-workers',
|
|
51
51
|
'--timeout',
|
|
52
52
|
'--max-iterations',
|
|
53
53
|
'--embedded-runtime-tick-ms',
|
|
@@ -96,19 +96,7 @@ export function validateCliArgs(args) {
|
|
|
96
96
|
return { ok: false, message: error.message, error: 'invalid_profile', flag: token, value: next };
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
if (!CODEX_REASONING_EFFORTS.includes(next)) {
|
|
101
|
-
return { ok: false, message: `--effort must be one of: ${CODEX_REASONING_EFFORTS.join(', ')}.`, error: 'invalid_effort', flag: token, value: next };
|
|
102
|
-
}
|
|
103
|
-
const modelIndex = args.indexOf('--model');
|
|
104
|
-
const providerIndex = args.indexOf('--provider');
|
|
105
|
-
const model = modelIndex >= 0 ? args[modelIndex + 1] : undefined;
|
|
106
|
-
const provider = providerIndex >= 0 ? args[providerIndex + 1] : undefined;
|
|
107
|
-
const supported = getSupportedCodexReasoningEfforts(model, provider);
|
|
108
|
-
if (supported && !supported.includes(next)) {
|
|
109
|
-
return { ok: false, message: unsupportedEffortMessage(model, next, supported), error: 'unsupported_effort', flag: token, value: next };
|
|
110
|
-
}
|
|
111
|
-
}
|
|
99
|
+
// Model-specific effort validation runs after configuration and Router definitions load.
|
|
112
100
|
i += 1;
|
|
113
101
|
continue;
|
|
114
102
|
}
|
|
@@ -136,6 +124,20 @@ export function validateCliArgs(args) {
|
|
|
136
124
|
};
|
|
137
125
|
}
|
|
138
126
|
}
|
|
127
|
+
const layout = args.includes('--layout');
|
|
128
|
+
const setting = args.find(arg => arg === '--layout-refresh-ms' || arg === '--layout-workers');
|
|
129
|
+
if (setting && !layout)
|
|
130
|
+
return { ok: false, message: `Error: ${setting} requires --layout.`, error: 'missing_layout', flag: setting };
|
|
131
|
+
if (layout) {
|
|
132
|
+
const conflict = ['--headless', '--pane', '--no-mux', '--num-zergs'].find(flag => args.includes(flag));
|
|
133
|
+
if (conflict)
|
|
134
|
+
return { ok: false, message: 'Error: --layout requires an interactive workspace and cannot be combined with --headless, --pane, --no-mux or --num-zergs.', error: 'conflicting_layout_options', flag: conflict };
|
|
135
|
+
for (const [flag, max] of [['--layout-refresh-ms', 86400000], ['--layout-workers', 32]]) {
|
|
136
|
+
const index = args.indexOf(flag);
|
|
137
|
+
if (index >= 0 && Number(args[index + 1]) > max)
|
|
138
|
+
return { ok: false, message: `Error: ${flag} must not exceed ${max}.`, error: 'invalid_layout_bound', flag, value: args[index + 1] };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
139
141
|
return { ok: true };
|
|
140
142
|
}
|
|
141
143
|
export function requiresPlanSafeRenderer(options) {
|
package/dist/cli_main.js
CHANGED
|
@@ -31,8 +31,20 @@ import { parsePromptInvocation, requiresPlanSafeRenderer, validateCliArgs, } fro
|
|
|
31
31
|
import { parseHeadlessInteractionMode } from './app/headless_interaction.js';
|
|
32
32
|
import { buildCliCommonStarts } from './onboarding/first_run.js';
|
|
33
33
|
import { validateProfileName } from './config/profiles.js';
|
|
34
|
-
|
|
34
|
+
import { loadDesktopRuntime } from './desktop/runtime.js';
|
|
35
|
+
import { resolveOwnedCliLaunch } from './desktop/cli_launch.js';
|
|
36
|
+
// Information-only flags remain available to diagnose an incompatible bundle.
|
|
35
37
|
const args = process.argv.slice(2);
|
|
38
|
+
let desktopRuntime = null;
|
|
39
|
+
try {
|
|
40
|
+
if (!args.some(arg => ['--help', '-h', '--version', '-v'].includes(arg)))
|
|
41
|
+
desktopRuntime = loadDesktopRuntime();
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error(`[ztc] ${error.message}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
// Parse command line args
|
|
36
48
|
const profileExplicitAtLaunch = args.includes('--profile') || process.env.ZTC_PROFILE !== undefined;
|
|
37
49
|
const profileFlags = args.flatMap((arg, index) => arg === '--profile' ? [index] : []);
|
|
38
50
|
if (profileFlags.length > 1) {
|
|
@@ -59,6 +71,23 @@ catch (error) {
|
|
|
59
71
|
const commandArgs = profileFlags.length === 0
|
|
60
72
|
? args
|
|
61
73
|
: args.filter((_, index) => index !== profileFlags[0] && index !== profileFlags[0] + 1);
|
|
74
|
+
// Attachment owns its terminal and transport; do not initialize a local agent.
|
|
75
|
+
if (commandArgs[0] === 'attach') {
|
|
76
|
+
const { runTerminalAttachCli } = await import('./terminal_attach.js');
|
|
77
|
+
process.exit(await runTerminalAttachCli(commandArgs.slice(1)));
|
|
78
|
+
}
|
|
79
|
+
// Adapters must be able to deliver receipts without starting an agent or a TTY.
|
|
80
|
+
if (commandArgs[0] === 'inbox') {
|
|
81
|
+
try {
|
|
82
|
+
const { runInboxCli } = await import('./intake/cli.js');
|
|
83
|
+
await runInboxCli(commandArgs.slice(1));
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.error(`[ztc inbox] ${error.message}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
process.exit(0);
|
|
90
|
+
}
|
|
62
91
|
// Device login must work without a TTY, provider credentials, or agent startup.
|
|
63
92
|
if (commandArgs[0] === 'auth') {
|
|
64
93
|
try {
|
|
@@ -192,7 +221,8 @@ catch (error) {
|
|
|
192
221
|
console.error(`[ztc] ${error.message}`);
|
|
193
222
|
process.exit(2);
|
|
194
223
|
}
|
|
195
|
-
//
|
|
224
|
+
// Local frame attachment uses zmux's native protocol through Ctrl+B W.
|
|
225
|
+
// `ztc attach --session` uses an explicit durable tmux backend, locally or over SSH.
|
|
196
226
|
//
|
|
197
227
|
// The Ctrl+B W navigator now dispatches an `attach_mirror` command directly to
|
|
198
228
|
// the local zmux, which connects to the remote zmux's Unix socket and paints
|
|
@@ -235,6 +265,7 @@ ZTC - Zerg Terminal Client v${version}
|
|
|
235
265
|
|
|
236
266
|
Usage: ztc [options] [prompt]
|
|
237
267
|
ztc auth <login|status|logout>
|
|
268
|
+
ztc inbox list|show <req-ID>|receive --file <request.json> [--json]
|
|
238
269
|
ztc config reset [--profile <name>]
|
|
239
270
|
ztc resume [id]
|
|
240
271
|
ztc --branch <workspace-name> [options]
|
|
@@ -285,6 +316,9 @@ Options:
|
|
|
285
316
|
--new-window Open a new terminal window for zmux (auto-detects terminal emulator)
|
|
286
317
|
--fullscreen Maximize the new terminal window to fill the screen
|
|
287
318
|
--num-zergs <n|CxR> Auto-create ZTC panes: N for columns, CxR for grid (e.g. 3x2)
|
|
319
|
+
--layout <name> Open orchestrator, pair, grid or .ztc/layouts/<name>.yaml
|
|
320
|
+
--layout-refresh-ms <n> Orchestrator status refresh (default: 600000); r refreshes now
|
|
321
|
+
--layout-workers <n> Grid worker count (1–32; default: 4)
|
|
288
322
|
--embedded <system> Start in an embedded workspace for the named checked-in system
|
|
289
323
|
--embedded-rom <path>
|
|
290
324
|
Override the ROM/image used by an embedded runtime, when supported
|
|
@@ -298,6 +332,8 @@ Options:
|
|
|
298
332
|
--bench-workflow <id>
|
|
299
333
|
Run a bench workflow after opening the workspace
|
|
300
334
|
--provider <name> LLM provider override (anthropic, claude_code, openai, codex_app_server, codex_legacy, gemini, inception, kimi, kimi_code, etc.; codex is a legacy alias)
|
|
335
|
+
--auth-mode <mode> Override routing for this process (auto, direct, zrouter)
|
|
336
|
+
--router-url <url> Router origin for this process; matching login is required
|
|
301
337
|
--profile <name> Use named settings in ~/.ztc/profiles/<name>/config.json
|
|
302
338
|
(default: ~/.ztc/config.json). Sessions stay shared.
|
|
303
339
|
--model <name> LLM model override (e.g., claude-sonnet-4-20250514, gpt-4o)
|
|
@@ -318,6 +354,7 @@ Headless Mode (for automation/CI):
|
|
|
318
354
|
--prompt <text> Run a single prompt and exit (with --headless)
|
|
319
355
|
-p, --print Run a prompt or stdin without the interactive terminal
|
|
320
356
|
--max-iterations <n> Cap agent iterations per prompt (default: unlimited; the wall-clock timeout is the backstop)
|
|
357
|
+
--detach-environment Resume the conversation in the current project without reopening its saved environment
|
|
321
358
|
--quiet, -q Suppress build output, only show agent responses
|
|
322
359
|
--timestamps Show timestamps in plain text output
|
|
323
360
|
--timeout <ms> Timeout for agent operations in milliseconds (default: 43200000)
|
|
@@ -423,6 +460,7 @@ In-App Commands:
|
|
|
423
460
|
/zlicky-ptt Toggle Zlicky global push-to-talk dictation
|
|
424
461
|
/voice Manage TTS voice synthesis
|
|
425
462
|
/update Update ZTC (saves session, updates, restarts)
|
|
463
|
+
/desktop install-cli [directory] Install the bundled app's optional terminal command
|
|
426
464
|
/exit Exit ZTC
|
|
427
465
|
|
|
428
466
|
Keyboard Shortcuts:
|
|
@@ -776,6 +814,9 @@ if (numZergsIndex >= 0) {
|
|
|
776
814
|
}
|
|
777
815
|
}
|
|
778
816
|
}
|
|
817
|
+
const layoutPreset = args.includes('--layout') ? required_flag_value('--layout', 'Error: --layout requires a name') : undefined;
|
|
818
|
+
const layoutRefreshMs = args.includes('--layout-refresh-ms') ? Number(required_flag_value('--layout-refresh-ms', 'Error: --layout-refresh-ms requires a value')) : undefined;
|
|
819
|
+
const layoutWorkers = args.includes('--layout-workers') ? Number(required_flag_value('--layout-workers', 'Error: --layout-workers requires a value')) : undefined;
|
|
779
820
|
// Parse Zlicky/computer-use flags for computer control tools.
|
|
780
821
|
const zlickyMode = args.includes('--zlicky');
|
|
781
822
|
const computerUseMode = args.includes('--computer-use') || zlickyMode;
|
|
@@ -889,13 +930,26 @@ end tell`;
|
|
|
889
930
|
function openInNewWindow(maximize) {
|
|
890
931
|
// Build re-launch command: same argv minus --new-window and --fullscreen
|
|
891
932
|
const filteredArgs = process.argv.slice(1).filter(a => a !== '--new-window' && a !== '--fullscreen');
|
|
933
|
+
// --cwd already selected the project before this branch. Forward that
|
|
934
|
+
// directory instead of applying a relative path again after the shell's cd.
|
|
935
|
+
const cwdArgumentIndex = filteredArgs.lastIndexOf('--cwd');
|
|
936
|
+
if (cwdArgumentIndex >= 0)
|
|
937
|
+
filteredArgs[cwdArgumentIndex + 1] = process.cwd();
|
|
892
938
|
// When running via tsx (dev mode), process.execPath is still "node" which can't run .ts files.
|
|
893
939
|
// Detect this and use npx tsx instead.
|
|
894
940
|
const scriptPath = filteredArgs[0] || '';
|
|
895
|
-
const
|
|
941
|
+
const ownedLaunch = resolveOwnedCliLaunch(filteredArgs.slice(1), desktopRuntime);
|
|
942
|
+
const runner = ownedLaunch ? shellEscape(ownedLaunch.command) : scriptPath.endsWith('.ts')
|
|
896
943
|
? 'npx tsx'
|
|
897
944
|
: shellEscape(process.execPath);
|
|
898
|
-
|
|
945
|
+
// Terminal/iTerm start a fresh shell; carry only the admitted bundle's state routing.
|
|
946
|
+
const ownerEnvironment = ownedLaunch
|
|
947
|
+
? ['ZTC_DESKTOP_RUNTIME_MANIFEST', 'ZTC_PROFILE', 'ZTC_CONFIG_DIR', 'ZTC_SESSIONS_DIR'].flatMap(key => {
|
|
948
|
+
const value = process.env[key];
|
|
949
|
+
return value === undefined ? [] : [`${key}=${shellEscape(value)}`];
|
|
950
|
+
})
|
|
951
|
+
: [];
|
|
952
|
+
const relaunchCmd = `cd ${shellEscape(process.cwd())} && ${[...ownerEnvironment, runner, ...(ownedLaunch?.args ?? filteredArgs).map(shellEscape)].join(' ')}`;
|
|
899
953
|
const COLS = 220;
|
|
900
954
|
const ROWS = 55;
|
|
901
955
|
const termProgram = process.env.TERM_PROGRAM || '';
|
|
@@ -1043,9 +1097,36 @@ async function main() {
|
|
|
1043
1097
|
const { initMcpServers } = await import('./mcp/client.js');
|
|
1044
1098
|
await initMcpServers(mcpServers);
|
|
1045
1099
|
}
|
|
1100
|
+
const authModeIndex = args.indexOf('--auth-mode');
|
|
1101
|
+
const routerUrlIndex = args.indexOf('--router-url');
|
|
1102
|
+
if (authModeIndex >= 0 || routerUrlIndex >= 0) {
|
|
1103
|
+
const authMode = authModeIndex >= 0 ? args[authModeIndex + 1] : configStore.getAuthMode();
|
|
1104
|
+
if (!['auto', 'direct', 'zrouter'].includes(authMode))
|
|
1105
|
+
throw new Error('Invalid --auth-mode');
|
|
1106
|
+
configStore.setCliOverride('authMode', authMode);
|
|
1107
|
+
if (routerUrlIndex >= 0)
|
|
1108
|
+
configStore.setCliOverride('zergProxyUrl', args[routerUrlIndex + 1]);
|
|
1109
|
+
}
|
|
1046
1110
|
// Apply --provider / --model CLI overrides (never persisted to config.json)
|
|
1111
|
+
// Discover opaque model IDs and Router-defined reasoning choices before
|
|
1112
|
+
// resolving explicit launch flags. Normal interactive startup waits until
|
|
1113
|
+
// after its first paint to do this HTTP request.
|
|
1114
|
+
const modelParts = cliModel?.split('/') ?? [];
|
|
1115
|
+
const knownQualifiedModel = modelParts.length === 2 && getProviderForModel(modelParts[1]) === modelParts[0];
|
|
1116
|
+
const needsModelDiscovery = !!cliModel && !cliProvider && !getProviderForModel(cliModel) && !knownQualifiedModel;
|
|
1117
|
+
if (needsModelDiscovery || args.includes('--effort') || args.includes('--thinking')) {
|
|
1118
|
+
try {
|
|
1119
|
+
if (configStore.resolveLLMBackendConfig({ provider: cliProvider || undefined }).useProxy) {
|
|
1120
|
+
const { buildModelsController } = await import('./app/command_context.js');
|
|
1121
|
+
await buildModelsController(configStore).catalog(AbortSignal.timeout(1000));
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
catch { /* Existing cached/legacy controls remain usable while offline. */ }
|
|
1125
|
+
}
|
|
1126
|
+
const cliRoute = configStore.getResolvedAuthMode();
|
|
1127
|
+
const inferredCliProvider = cliProvider || (cliRoute === 'zrouter' && knownQualifiedModel ? modelParts[0] : undefined);
|
|
1047
1128
|
const resolvedCliOverride = cliModel
|
|
1048
|
-
? resolveModelAndProvider(cliModel,
|
|
1129
|
+
? resolveModelAndProvider(cliModel, inferredCliProvider, cliRoute)
|
|
1049
1130
|
: undefined;
|
|
1050
1131
|
const effectiveCliProvider = (resolvedCliOverride?.provider || cliProvider);
|
|
1051
1132
|
const effectiveCliModel = resolvedCliOverride?.model || cliModel;
|
|
@@ -1069,11 +1150,17 @@ async function main() {
|
|
|
1069
1150
|
const thinkingIndex = args.indexOf('--thinking');
|
|
1070
1151
|
if (effortIndex >= 0 || thinkingIndex >= 0) {
|
|
1071
1152
|
const { parseReasoningSelection } = await import('./utils/reasoning.js');
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1153
|
+
try {
|
|
1154
|
+
const level = parseReasoningSelection(configStore.getProvider(), configStore.getModel(), configStore.getCodexEffort(), {
|
|
1155
|
+
effort: effortIndex >= 0 ? args[effortIndex + 1] : undefined,
|
|
1156
|
+
thinking: thinkingIndex >= 0 ? args[thinkingIndex + 1] : undefined,
|
|
1157
|
+
}, configStore.getReasoningContract());
|
|
1158
|
+
configStore.setCliOverride('codexEffort', level ?? undefined);
|
|
1159
|
+
}
|
|
1160
|
+
catch (error) {
|
|
1161
|
+
console.error(`[ztc] ${error instanceof Error ? error.message : String(error)}`);
|
|
1162
|
+
process.exit(2);
|
|
1163
|
+
}
|
|
1077
1164
|
}
|
|
1078
1165
|
// Background-refresh superuser status so pre-existing logins get the field backfilled.
|
|
1079
1166
|
// Skip for colony children (they inherit the parent status) and explicitly offline
|
|
@@ -1177,6 +1264,7 @@ async function main() {
|
|
|
1177
1264
|
debugLog('[main] Running in headless mode');
|
|
1178
1265
|
const { runHeadless } = await import('./headless.js');
|
|
1179
1266
|
await runHeadless({
|
|
1267
|
+
detachEnvironment: args.includes('--detach-environment'),
|
|
1180
1268
|
mode: zlickyMode ? 'zlicky' : (startInPlanMode ? undefined : (modePathArg || undefined)),
|
|
1181
1269
|
planMode: startInPlanMode,
|
|
1182
1270
|
sessionId: headlessSessionId || undefined,
|
|
@@ -1208,6 +1296,7 @@ async function main() {
|
|
|
1208
1296
|
debugLog(`[main] Running as headless child pane (ZTC_PANE_ID=${process.env.ZTC_PANE_ID})`);
|
|
1209
1297
|
const { runHeadless } = await import('./headless.js');
|
|
1210
1298
|
await runHeadless({
|
|
1299
|
+
detachEnvironment: args.includes('--detach-environment'),
|
|
1211
1300
|
mode: zlickyMode ? 'zlicky' : (startInPlanMode ? undefined : (modePathArg || undefined)),
|
|
1212
1301
|
planMode: startInPlanMode,
|
|
1213
1302
|
sessionId: explicitSessionId || undefined,
|
|
@@ -1308,7 +1397,7 @@ async function main() {
|
|
|
1308
1397
|
process.exit(1);
|
|
1309
1398
|
}
|
|
1310
1399
|
// Interactive ZTC defaults to zmux. If it is unavailable, fall back to single-pane Ratatui.
|
|
1311
|
-
if (!headlessMirror && desktopMode && !isZtermAvailable()) {
|
|
1400
|
+
if (!headlessMirror && desktopMode && !isZtermAvailable(desktopRuntime)) {
|
|
1312
1401
|
console.error('Error: zterm desktop binary not found.');
|
|
1313
1402
|
console.error('Build it with: cd packages/zterm && cargo build --release');
|
|
1314
1403
|
process.exit(1);
|
|
@@ -1487,6 +1576,7 @@ async function main() {
|
|
|
1487
1576
|
debugLog('[main] Creating RatatuiApp');
|
|
1488
1577
|
const { RatatuiApp } = await import('./cli_ratatui.js');
|
|
1489
1578
|
const app = new RatatuiApp({
|
|
1579
|
+
detachEnvironment: args.includes('--detach-environment'),
|
|
1490
1580
|
resumeSession: resumedSession || undefined,
|
|
1491
1581
|
resumePicker: resumePickerRequested,
|
|
1492
1582
|
sessionId: resumedSession?.metadata.id || explicitSessionId || undefined,
|
|
@@ -1502,7 +1592,11 @@ async function main() {
|
|
|
1502
1592
|
navigatorHidden,
|
|
1503
1593
|
mux: muxMode,
|
|
1504
1594
|
desktop: desktopMode,
|
|
1595
|
+
desktopRuntime,
|
|
1505
1596
|
numZergsGrid: muxMode ? numZergsGrid : { cols: 1, rows: 1 },
|
|
1597
|
+
layoutPreset,
|
|
1598
|
+
layoutRefreshMs,
|
|
1599
|
+
layoutWorkers,
|
|
1506
1600
|
embeddedSystemName: embeddedSystemName || undefined,
|
|
1507
1601
|
embeddedWorkflowId: embeddedWorkflowId || undefined,
|
|
1508
1602
|
benchName: benchName || undefined,
|
|
@@ -1566,9 +1660,12 @@ async function main() {
|
|
|
1566
1660
|
catch (err) {
|
|
1567
1661
|
debugLog(`[main] Caught error: ${err.message}`);
|
|
1568
1662
|
console.error('Failed to start Ratatui renderer:', err.message);
|
|
1569
|
-
if (
|
|
1663
|
+
if (desktopMode
|
|
1664
|
+
|| effectivePlanLaunch
|
|
1570
1665
|
|| err.name === 'PlanFileCreationError') {
|
|
1571
|
-
console.error(
|
|
1666
|
+
console.error(desktopMode
|
|
1667
|
+
? 'Desktop startup failed. Update or reinstall ZTerm.app and try again.'
|
|
1668
|
+
: 'Plan mode startup failed closed; Ink fallback is disabled.');
|
|
1572
1669
|
if (createdSessionStubId) {
|
|
1573
1670
|
try {
|
|
1574
1671
|
await deleteSession(process.cwd(), createdSessionStubId);
|