@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ToolCapability } from '../agent/runtime/capabilities.js';
|
|
2
2
|
import { applyExactReplace, resolvePath, updateFileAtomic } from '../agent/tools/file.js';
|
|
3
3
|
import { buildSimpleDiffMeta } from '../utils/diff.js';
|
|
4
|
+
import { runCommandTool } from '../agent/tools/shell.js';
|
|
4
5
|
const CLAUDE_PROFILE_IDS = new Set(['claude-code']);
|
|
5
6
|
const CODEX_PROFILE_IDS = new Set(['codex-cli', 'codex-cli-system']);
|
|
6
7
|
export function buildEmulationCompatibilityTools(emulationId, tools) {
|
|
@@ -14,7 +15,10 @@ export function buildEmulationCompatibilityTools(emulationId, tools) {
|
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
17
|
existing.add(tool.definition.name);
|
|
17
|
-
|
|
18
|
+
const commandAdapter = ['Bash', 'Glob', 'WebFetch', 'exec_command', 'shell_command'].includes(tool.definition.name)
|
|
19
|
+
&& tools.find(candidate => candidate.definition.name === 'run_command') === runCommandTool;
|
|
20
|
+
adapters.push({ ...tool, parallelSafe: ['Read', 'Grep', 'LS'].includes(tool.definition.name),
|
|
21
|
+
...(commandAdapter ? { outputSource: runCommandTool } : {}) });
|
|
18
22
|
};
|
|
19
23
|
const factories = [];
|
|
20
24
|
if (CLAUDE_PROFILE_IDS.has(emulationId)) {
|
|
@@ -63,20 +67,23 @@ function makeClaudeAdapters(tools) {
|
|
|
63
67
|
return [
|
|
64
68
|
{
|
|
65
69
|
capabilities: [ToolCapability.SHELL_EXEC, ToolCapability.FILE_WRITE],
|
|
70
|
+
resolveExecutionCwd: (args, context) => resolveClaudeBashCwd(tools, args, context),
|
|
66
71
|
definition: {
|
|
67
72
|
name: 'Bash',
|
|
68
|
-
description: 'Run a shell command in the
|
|
69
|
-
parameters:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
description: 'Run a shell command in the host working directory or an optional cwd (workdir alias). A nonempty cwd takes precedence. Use for builds, tests, git, and other terminal operations; prefer Read, Edit, Write, Glob, and Grep for file operations when available. Quote paths containing spaces. Use cwd for a structured directory change; shell cd with && remains available. Do not assume shell state persists between calls. timeout is optional, in milliseconds, up to 600000. Commands run synchronously; run_in_background is not supported by this adapter. Batch independent commands when useful, but sequence dependent commands so a failure stops later steps. Inspect exit errors and verify actual results before claiming success. Follow the user\'s authorization for commits, pushes, deletion, and other external or destructive actions.',
|
|
74
|
+
parameters: {
|
|
75
|
+
type: 'object',
|
|
76
|
+
properties: {
|
|
77
|
+
command: { type: 'string', description: 'Shell command to run' },
|
|
78
|
+
description: { type: 'string', description: 'Short description of the command' },
|
|
79
|
+
timeout: { type: 'integer', minimum: 1, maximum: 600000, description: 'Optional timeout in milliseconds (maximum 600000)' },
|
|
80
|
+
cwd: { type: 'string', description: 'Optional working directory, resolved relative to the host context. Takes precedence over workdir.' },
|
|
81
|
+
workdir: { type: 'string', description: 'Optional working directory alias used when cwd is absent or empty.' },
|
|
82
|
+
},
|
|
83
|
+
required: ['command'],
|
|
84
|
+
},
|
|
74
85
|
},
|
|
75
|
-
execute: (args, context) => callTool(tools, 'run_command',
|
|
76
|
-
command: requiredString(args, ['command']),
|
|
77
|
-
cwd: optionalString(args, ['cwd', 'workdir']),
|
|
78
|
-
...(args.timeout === undefined ? {} : { timeout: args.timeout }),
|
|
79
|
-
}, context),
|
|
86
|
+
execute: (args, context) => callTool(tools, 'run_command', claudeBashInvocation(args), context),
|
|
80
87
|
},
|
|
81
88
|
{
|
|
82
89
|
capabilities: [ToolCapability.FILE_READ],
|
|
@@ -244,6 +251,7 @@ function makeCodexAdapters(tools) {
|
|
|
244
251
|
yield_time_ms: 'Ignored compatibility hint',
|
|
245
252
|
}, []),
|
|
246
253
|
},
|
|
254
|
+
resolveExecutionCwd: (args, context) => resolveCodexShellCwd(tools, args, context),
|
|
247
255
|
execute: (args, context) => executeCodexShell(tools, args, context),
|
|
248
256
|
},
|
|
249
257
|
{
|
|
@@ -256,6 +264,7 @@ function makeCodexAdapters(tools) {
|
|
|
256
264
|
cwd: 'Working directory',
|
|
257
265
|
}, ['command']),
|
|
258
266
|
},
|
|
267
|
+
resolveExecutionCwd: (args, context) => resolveCodexShellCwd(tools, args, context),
|
|
259
268
|
execute: (args, context) => executeCodexShell(tools, args, context),
|
|
260
269
|
},
|
|
261
270
|
{
|
|
@@ -291,18 +300,39 @@ async function callTool(tools, name, args, context) {
|
|
|
291
300
|
throw new Error(output);
|
|
292
301
|
return output;
|
|
293
302
|
}
|
|
303
|
+
function claudeBashInvocation(args) {
|
|
304
|
+
return {
|
|
305
|
+
command: requiredString(args, ['command']),
|
|
306
|
+
cwd: optionalString(args, ['cwd', 'workdir']),
|
|
307
|
+
...(args.timeout === undefined ? {} : { timeout: args.timeout }),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
function resolveClaudeBashCwd(tools, args, context) {
|
|
311
|
+
const call = claudeBashInvocation(args);
|
|
312
|
+
const target = tools.find(tool => tool.definition.name === 'run_command');
|
|
313
|
+
return target?.resolveExecutionCwd?.(call, context) ?? (context?.cwd || process.cwd());
|
|
314
|
+
}
|
|
294
315
|
async function executeCodexShell(tools, args, context) {
|
|
316
|
+
const call = codexShellInvocation(args);
|
|
317
|
+
return callTool(tools, call.name, call.args, context);
|
|
318
|
+
}
|
|
319
|
+
function resolveCodexShellCwd(tools, args, context) {
|
|
320
|
+
const call = codexShellInvocation(args);
|
|
321
|
+
const target = tools.find(tool => tool.definition.name === call.name);
|
|
322
|
+
return target?.resolveExecutionCwd?.(call.args, context) ?? (context?.cwd || process.cwd());
|
|
323
|
+
}
|
|
324
|
+
function codexShellInvocation(args) {
|
|
295
325
|
const command = requiredString(args, ['cmd', 'command']);
|
|
296
326
|
const patch = extractApplyPatchPayload(command);
|
|
297
327
|
if (patch) {
|
|
298
|
-
return
|
|
328
|
+
return { name: 'apply_patch', args: { patch } };
|
|
299
329
|
}
|
|
300
330
|
const timeout = args.timeout_ms === undefined ? args.timeout : args.timeout_ms;
|
|
301
|
-
return
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
331
|
+
return { name: 'run_command', args: {
|
|
332
|
+
command,
|
|
333
|
+
cwd: optionalString(args, ['workdir', 'cwd']),
|
|
334
|
+
...(timeout === undefined ? {} : { timeout }),
|
|
335
|
+
} };
|
|
306
336
|
}
|
|
307
337
|
function extractApplyPatchPayload(command) {
|
|
308
338
|
const start = command.indexOf('*** Begin Patch');
|
|
@@ -45,6 +45,12 @@ const LANGUAGE_SECTION = `
|
|
|
45
45
|
|
|
46
46
|
Write every user-visible response in the same language as the user's latest prompt, unless the user explicitly asks for a different language. An English prompt gets an English answer; a Spanish prompt gets Spanish. Do not switch languages on your own, even when code, tool output, or earlier context is written in another language.
|
|
47
47
|
`.trim();
|
|
48
|
+
const FORMAT_SECTION = `
|
|
49
|
+
## Response Formatting
|
|
50
|
+
|
|
51
|
+
Explicit user formats take precedence over these defaults, including JSON-only output and an exact answer.
|
|
52
|
+
For comparisons of three or more items, use a Markdown table. Use bullets for steps or findings, and bold the key decision or recommendation.
|
|
53
|
+
`.trim();
|
|
48
54
|
const WORKFLOW_SECTION = `
|
|
49
55
|
## Workflow Orchestration
|
|
50
56
|
|
|
@@ -59,38 +65,34 @@ function buildToolEfficiencySection(options) {
|
|
|
59
65
|
if (options.askUserAvailable) {
|
|
60
66
|
lines.push('If you need to ask the user something, call `ask_user` directly.');
|
|
61
67
|
}
|
|
62
|
-
if (options.todoWriteAvailable) {
|
|
63
|
-
lines.push('Use `todo_write` only for multi-step tasks, and pair it with real action tools in the same turn when work can proceed.', 'Do not use `todo_write` for single-step tasks, greetings, or clarification-only turns.');
|
|
64
|
-
}
|
|
65
68
|
return lines.join('\n');
|
|
66
69
|
}
|
|
67
|
-
const TODO_COMPLETION_SECTION = `
|
|
68
|
-
## Todo Completion Rule
|
|
69
|
-
|
|
70
|
-
If you create a todo list with \`todo_write\`, keep it current and mark every task completed before saying the work is done.
|
|
71
|
-
`.trim();
|
|
72
70
|
// R3/F6: "done" was asserted, never demonstrated. State, before the model claims
|
|
73
71
|
// completion, what counts as evidence per task class — inline, not a vague nudge.
|
|
74
72
|
const VERIFICATION_SECTION = `
|
|
75
73
|
## Verify Before Done
|
|
76
74
|
|
|
77
75
|
Before reporting work complete, produce verification evidence — a prose claim that it works is not enough:
|
|
78
|
-
- code change:
|
|
76
|
+
- code change: a diff demonstrates an edit only; report diff-only work as edited and unverified. Run the narrowest relevant test or build and identify what it actually covers.
|
|
79
77
|
- web feature: a browser action or a screenshot of the working result
|
|
80
78
|
- orchestration: the structured verdict returned by \`ask_ztc_pane\` (never a hand-authored "passed")
|
|
81
79
|
- shell task: the command output proving the requested state
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
Keep edited, compiled, tested, benchmarked and qualified outcomes separate. Identify the source snapshot, command, environment/build identity, stated scope and actual process outcome for each result. A build result does not establish behavioral correctness, and an earlier result cannot qualify later edits. Retain stale results as historical evidence for their original source.
|
|
82
|
+
|
|
83
|
+
Diagnostic timing is diagnostic evidence, not a clean benchmark. A component check cannot establish full-model qualification. A declared purpose or successful shell exit alone does not admit source or semantic verification; report unknown or unverified where a trusted verifier has not supplied it.
|
|
84
|
+
|
|
85
|
+
If no test or build harness exists, show a diff plus a targeted re-read, and explicitly report the work as edited/unverified with no behavioral verification available.
|
|
84
86
|
`.trim();
|
|
85
87
|
export function buildZtcAddendum(options = {}) {
|
|
86
88
|
return [
|
|
87
89
|
LANGUAGE_SECTION,
|
|
90
|
+
FORMAT_SECTION,
|
|
88
91
|
options.ztcCommandAvailable === false ? undefined : ZTC_COMMAND_SECTION,
|
|
89
92
|
options.askUserAvailable ? ASK_USER_SECTION : undefined,
|
|
90
93
|
ACTION_SECTION,
|
|
91
94
|
options.workflowAvailable && options.workflowGuidanceAvailable !== false ? WORKFLOW_SECTION : undefined,
|
|
92
95
|
buildToolEfficiencySection(options),
|
|
93
|
-
options.todoWriteAvailable ? TODO_COMPLETION_SECTION : undefined,
|
|
94
96
|
options.verificationAvailable === false ? undefined : VERIFICATION_SECTION,
|
|
95
97
|
]
|
|
96
98
|
.filter(Boolean)
|
|
@@ -98,6 +100,5 @@ export function buildZtcAddendum(options = {}) {
|
|
|
98
100
|
}
|
|
99
101
|
export const ZTC_ADDENDUM = buildZtcAddendum({
|
|
100
102
|
askUserAvailable: true,
|
|
101
|
-
todoWriteAvailable: true,
|
|
102
103
|
ztcCommandAvailable: true,
|
|
103
104
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { readFile, appendFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { writeFileAtomic } from '../utils/atomic_write.js';
|
|
4
|
+
import { runShellCommand } from '../utils/shell.js';
|
|
5
|
+
import { ToolCapability } from '../agent/runtime/capabilities.js';
|
|
6
|
+
// Detached supervisor; only this launch's UUID stop file controls its shell.
|
|
7
|
+
const directory = process.argv[2];
|
|
8
|
+
const launch = JSON.parse(await readFile(join(directory, 'launch.json'), 'utf8'));
|
|
9
|
+
const receipt = launch.service;
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
let finished = false;
|
|
12
|
+
let written = 0;
|
|
13
|
+
let outputWrites = Promise.resolve();
|
|
14
|
+
const save = async () => {
|
|
15
|
+
receipt.heartbeat = new Date().toISOString();
|
|
16
|
+
await writeFileAtomic(join(directory, 'receipt.json'), JSON.stringify(receipt));
|
|
17
|
+
};
|
|
18
|
+
for (const signal of ['SIGTERM', 'SIGINT', 'SIGHUP']) {
|
|
19
|
+
process.on(signal, () => controller.abort());
|
|
20
|
+
}
|
|
21
|
+
receipt.status = 'running';
|
|
22
|
+
await save();
|
|
23
|
+
const running = runShellCommand(receipt.command, launch.cwd, controller.signal, undefined, {
|
|
24
|
+
...launch.shell, capabilities: [ToolCapability.SHELL_EXEC], noTimeout: true,
|
|
25
|
+
onOutput: (_stream, text) => {
|
|
26
|
+
const bytes = Buffer.from(text);
|
|
27
|
+
const count = Math.min(bytes.length, Math.max(0, 16 * 1024 * 1024 - written));
|
|
28
|
+
written += count;
|
|
29
|
+
if (count < bytes.length)
|
|
30
|
+
receipt.outputTruncated = true;
|
|
31
|
+
if (count)
|
|
32
|
+
outputWrites = outputWrites.then(() => appendFile(join(directory, 'output.log'), bytes.subarray(0, count), { mode: 0o600 })).catch(error => {
|
|
33
|
+
receipt.failure = `Service output could not be saved: ${String(error)}`;
|
|
34
|
+
controller.abort();
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
}).then(result => {
|
|
38
|
+
receipt.exitCode = result.exitCode;
|
|
39
|
+
receipt.status = controller.signal.aborted ? 'stopped' : result.exitCode === 0 ? 'stopped' : 'failed';
|
|
40
|
+
}, error => {
|
|
41
|
+
receipt.status = controller.signal.aborted ? 'stopped' : 'failed';
|
|
42
|
+
receipt.exitCode = 1;
|
|
43
|
+
if (!controller.signal.aborted)
|
|
44
|
+
receipt.failure = String(error);
|
|
45
|
+
}).finally(() => { finished = true; receipt.endedAt = new Date().toISOString(); });
|
|
46
|
+
try {
|
|
47
|
+
while (!finished) {
|
|
48
|
+
try {
|
|
49
|
+
if (await readFile(join(directory, 'stop'), 'utf8') === receipt.id)
|
|
50
|
+
controller.abort();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (error.code !== 'ENOENT')
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
await save();
|
|
57
|
+
await new Promise(resolve => setTimeout(resolve, 250));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
receipt.failure = `Service supervision failed: ${String(error)}`;
|
|
62
|
+
controller.abort();
|
|
63
|
+
}
|
|
64
|
+
await running;
|
|
65
|
+
await outputWrites;
|
|
66
|
+
if (receipt.failure)
|
|
67
|
+
receipt.status = 'failed';
|
|
68
|
+
await save();
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { RunShellCommandOptions } from '../utils/shell.js';
|
|
2
|
+
export interface EnvironmentFile {
|
|
3
|
+
path: string;
|
|
4
|
+
kind: 'file' | 'symlink' | 'directory';
|
|
5
|
+
sha256: string;
|
|
6
|
+
bytes: number;
|
|
7
|
+
mode: number;
|
|
8
|
+
target?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface EnvironmentCheckpoint {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
files: EnvironmentFile[];
|
|
15
|
+
services: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
command: string;
|
|
18
|
+
cwd?: string;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export interface EnvironmentService {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
command: string;
|
|
25
|
+
cwd?: string;
|
|
26
|
+
status: 'starting' | 'running' | 'stopped' | 'failed' | 'recovery_required';
|
|
27
|
+
startedAt: string;
|
|
28
|
+
endedAt?: string;
|
|
29
|
+
exitCode?: number;
|
|
30
|
+
heartbeat?: string;
|
|
31
|
+
failure?: string;
|
|
32
|
+
outputTruncated?: boolean;
|
|
33
|
+
logPath: string;
|
|
34
|
+
}
|
|
35
|
+
export interface EnvironmentRecord {
|
|
36
|
+
schemaVersion: 1;
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
backend: 'local';
|
|
40
|
+
workspacePath: string;
|
|
41
|
+
credentialProfile: string;
|
|
42
|
+
status: 'active' | 'paused';
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
45
|
+
owner?: {
|
|
46
|
+
sessionId: string;
|
|
47
|
+
pid: number;
|
|
48
|
+
token: string;
|
|
49
|
+
};
|
|
50
|
+
checkpoints: EnvironmentCheckpoint[];
|
|
51
|
+
services: EnvironmentService[];
|
|
52
|
+
setupNotes: Array<{
|
|
53
|
+
text: string;
|
|
54
|
+
createdAt: string;
|
|
55
|
+
}>;
|
|
56
|
+
recovery?: {
|
|
57
|
+
checkpointId: string;
|
|
58
|
+
restoredAt: string;
|
|
59
|
+
retainedFiles: number;
|
|
60
|
+
servicesNeedingRestart: string[];
|
|
61
|
+
externalLinks: string[];
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export declare function getEnvironment(name: string): Promise<EnvironmentRecord>;
|
|
65
|
+
export declare function listEnvironments(): Promise<EnvironmentRecord[]>;
|
|
66
|
+
export declare function createEnvironment(name: string, sessionId: string): Promise<EnvironmentRecord>;
|
|
67
|
+
export declare function openEnvironment(name: string, sessionId: string): Promise<EnvironmentRecord>;
|
|
68
|
+
export declare function releaseEnvironment(name: string, sessionId: string): Promise<void>;
|
|
69
|
+
export declare function checkpointEnvironment(name: string, sessionId: string, label: string): Promise<EnvironmentCheckpoint>;
|
|
70
|
+
export declare function restoreEnvironment(name: string, sessionId: string, checkpointId: string): Promise<EnvironmentRecord>;
|
|
71
|
+
export declare function addEnvironmentNote(name: string, sessionId: string, text: string): Promise<void>;
|
|
72
|
+
export declare function startEnvironmentService(name: string, sessionId: string, serviceName: string, command: string, shell: RunShellCommandOptions, workingDirectory?: string): Promise<EnvironmentService>;
|
|
73
|
+
export declare function pauseEnvironment(name: string, sessionId: string): Promise<EnvironmentRecord>;
|
|
74
|
+
export declare function resumeEnvironment(name: string, sessionId: string): Promise<EnvironmentRecord>;
|
|
75
|
+
export declare function discardEnvironment(name: string, sessionId: string): Promise<string>;
|
|
76
|
+
export declare function environmentForWorkspace(cwd: string): Promise<EnvironmentRecord | undefined>;
|
|
77
|
+
/** Bounded setup context, without keys, owner tokens or service launch commands. */
|
|
78
|
+
export declare function describeEnvironmentForAgent(record: EnvironmentRecord): string;
|
|
79
|
+
/** Observable status excludes potentially huge per-file inventories and owner tokens. */
|
|
80
|
+
export declare function environmentSummary(record: EnvironmentRecord): {
|
|
81
|
+
owner: {
|
|
82
|
+
sessionId: string;
|
|
83
|
+
pid: number;
|
|
84
|
+
} | undefined;
|
|
85
|
+
checkpointCount: number;
|
|
86
|
+
checkpoints: {
|
|
87
|
+
id: string;
|
|
88
|
+
label: string;
|
|
89
|
+
createdAt: string;
|
|
90
|
+
retainedFiles: number;
|
|
91
|
+
services: string[];
|
|
92
|
+
}[];
|
|
93
|
+
serviceCount: number;
|
|
94
|
+
services: EnvironmentService[];
|
|
95
|
+
setupNoteCount: number;
|
|
96
|
+
setupNotes: {
|
|
97
|
+
text: string;
|
|
98
|
+
createdAt: string;
|
|
99
|
+
}[];
|
|
100
|
+
schemaVersion: 1;
|
|
101
|
+
id: string;
|
|
102
|
+
name: string;
|
|
103
|
+
backend: "local";
|
|
104
|
+
workspacePath: string;
|
|
105
|
+
credentialProfile: string;
|
|
106
|
+
status: "active" | "paused";
|
|
107
|
+
createdAt: string;
|
|
108
|
+
updatedAt: string;
|
|
109
|
+
recovery?: {
|
|
110
|
+
checkpointId: string;
|
|
111
|
+
restoredAt: string;
|
|
112
|
+
retainedFiles: number;
|
|
113
|
+
servicesNeedingRestart: string[];
|
|
114
|
+
externalLinks: string[];
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
export declare function isEnvironmentWorkspacePath(workspace: string, path: string): boolean;
|
|
118
|
+
/** A saved environment could not be attached without violating recovery guards. */
|
|
119
|
+
export declare class EnvironmentRecoveryError extends Error {
|
|
120
|
+
}
|