@zergai/ztc 0.5.0-beta.1 → 0.6.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 +65 -46
- package/THIRD_PARTY_NOTICES.md +7 -2
- 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/zterm-darwin-arm64 +0 -0
- package/dist/App.js +26 -9
- package/dist/agent/agent.d.ts +77 -0
- package/dist/agent/agent.js +618 -94
- package/dist/agent/backends/account_login.js +3 -1
- package/dist/agent/backends/anthropic.js +4 -3
- package/dist/agent/backends/bedrock.d.ts +20 -0
- package/dist/agent/backends/bedrock.js +175 -0
- package/dist/agent/backends/claude_cli.js +8 -0
- package/dist/agent/backends/codex_app_server.js +2 -0
- package/dist/agent/backends/codex_auth.d.ts +5 -2
- package/dist/agent/backends/codex_auth.js +131 -31
- package/dist/agent/backends/gemini.js +1 -1
- package/dist/agent/backends/http_error.d.ts +2 -0
- package/dist/agent/backends/http_error.js +4 -0
- package/dist/agent/backends/index.d.ts +3 -0
- package/dist/agent/backends/index.js +16 -0
- package/dist/agent/backends/model_pool.d.ts +20 -0
- package/dist/agent/backends/model_pool.js +98 -0
- package/dist/agent/backends/openai.js +2 -0
- package/dist/agent/backends/openai_compatible.js +8 -3
- package/dist/agent/backends/openai_responses.d.ts +14 -3
- package/dist/agent/backends/openai_responses.js +91 -26
- package/dist/agent/backends/responses_reasoning.d.ts +5 -0
- package/dist/agent/backends/responses_reasoning.js +23 -0
- package/dist/agent/backends/transport_errors.d.ts +6 -0
- package/dist/agent/backends/transport_errors.js +11 -0
- package/dist/agent/backends/types.d.ts +25 -2
- package/dist/agent/backends/types.js +4 -0
- package/dist/agent/backends/zrouter_stream.d.ts +16 -0
- package/dist/agent/backends/zrouter_stream.js +162 -17
- package/dist/agent/background_workers.d.ts +68 -0
- package/dist/agent/background_workers.js +139 -0
- package/dist/agent/commands/accounts.d.ts +9 -1
- package/dist/agent/commands/accounts.js +13 -5
- package/dist/agent/commands/auth.d.ts +30 -1
- package/dist/agent/commands/auth.js +166 -35
- package/dist/agent/commands/command_refusal.d.ts +8 -0
- package/dist/agent/commands/command_refusal.js +8 -0
- package/dist/agent/commands/compact.js +16 -10
- package/dist/agent/commands/config.js +386 -80
- package/dist/agent/commands/connect.d.ts +20 -0
- package/dist/agent/commands/connect.js +150 -0
- package/dist/agent/commands/credential_redaction.d.ts +12 -0
- package/dist/agent/commands/credential_redaction.js +46 -0
- package/dist/agent/commands/credential_status.d.ts +72 -0
- package/dist/agent/commands/credential_status.js +181 -0
- package/dist/agent/commands/direct_credential_prompt.d.ts +71 -0
- package/dist/agent/commands/direct_credential_prompt.js +422 -0
- package/dist/agent/commands/effort.d.ts +1 -0
- package/dist/agent/commands/effort.js +16 -34
- package/dist/agent/commands/goal.d.ts +0 -4
- package/dist/agent/commands/goal.js +48 -10
- package/dist/agent/commands/handoff.d.ts +6 -0
- package/dist/agent/commands/handoff.js +17 -0
- package/dist/agent/commands/help.js +1 -1
- package/dist/agent/commands/inbox.js +3 -0
- package/dist/agent/commands/index.js +5 -3
- package/dist/agent/commands/keybindings.js +4 -3
- package/dist/agent/commands/mirror.js +29 -16
- package/dist/agent/commands/model.js +83 -4
- package/dist/agent/commands/models.d.ts +1 -1
- package/dist/agent/commands/models.js +89 -67
- package/dist/agent/commands/openai_compat_wizard.d.ts +3 -2
- package/dist/agent/commands/openai_compat_wizard.js +53 -15
- package/dist/agent/commands/provider_choices.d.ts +56 -0
- package/dist/agent/commands/provider_choices.js +72 -3
- package/dist/agent/commands/provider_model_defaults.d.ts +7 -0
- package/dist/agent/commands/provider_model_defaults.js +11 -0
- package/dist/agent/commands/provider_selection.d.ts +27 -2
- package/dist/agent/commands/provider_selection.js +143 -8
- package/dist/agent/commands/reasoning_page.d.ts +33 -0
- package/dist/agent/commands/reasoning_page.js +595 -0
- package/dist/agent/commands/reasoning_picker.d.ts +14 -0
- package/dist/agent/commands/reasoning_picker.js +99 -0
- package/dist/agent/commands/reasoning_settings.d.ts +18 -0
- package/dist/agent/commands/reasoning_settings.js +46 -0
- package/dist/agent/commands/settings.d.ts +2 -0
- package/dist/agent/commands/settings.js +689 -264
- package/dist/agent/commands/status.js +13 -44
- package/dist/agent/commands/types.d.ts +108 -2
- package/dist/agent/commands/update.d.ts +18 -0
- package/dist/agent/commands/update.js +55 -96
- package/dist/agent/completion_state.d.ts +18 -0
- package/dist/agent/completion_state.js +35 -3
- package/dist/agent/factory.d.ts +9 -1
- package/dist/agent/factory.js +61 -17
- package/dist/agent/loop_policy.d.ts +14 -0
- package/dist/agent/loop_policy.js +9 -0
- package/dist/agent/request_encoder.d.ts +6 -0
- package/dist/agent/request_encoder.js +36 -6
- package/dist/agent/result_emit_cap.d.ts +1 -0
- package/dist/agent/result_emit_cap.js +1 -0
- package/dist/agent/runaway_output.d.ts +32 -0
- package/dist/agent/runaway_output.js +80 -0
- package/dist/agent/runtime/command_execution_policy.d.ts +6 -0
- package/dist/agent/runtime/command_execution_policy.js +39 -0
- package/dist/agent/runtime/evidence.d.ts +17 -1
- package/dist/agent/runtime/evidence.js +58 -8
- package/dist/agent/runtime/execution_context.js +7 -3
- package/dist/agent/runtime/read_only_command.d.ts +15 -0
- package/dist/agent/runtime/read_only_command.js +265 -0
- package/dist/agent/runtime/recovery.js +2 -38
- package/dist/agent/runtime/source_verification.js +3 -1
- package/dist/agent/runtime/tool_checkpoints.js +5 -1
- package/dist/agent/runtime/tool_runtime.js +15 -1
- package/dist/agent/runtime/tool_scheduler.js +3 -1
- package/dist/agent/subagent.d.ts +4 -0
- package/dist/agent/subagent.js +195 -23
- package/dist/agent/system_prompt.d.ts +3 -1
- package/dist/agent/system_prompt.js +3 -1
- package/dist/agent/tool_response_store.d.ts +9 -0
- package/dist/agent/tool_response_store.js +39 -3
- package/dist/agent/tool_result_parsing.d.ts +2 -0
- package/dist/agent/tool_result_parsing.js +1 -0
- package/dist/agent/tool_result_presentation.d.ts +21 -0
- package/dist/agent/tool_result_presentation.js +237 -0
- package/dist/agent/tools/apply_patch.js +130 -42
- package/dist/agent/tools/deferred.js +22 -2
- package/dist/agent/tools/delegate.js +182 -49
- package/dist/agent/tools/edit_view.d.ts +13 -0
- package/dist/agent/tools/edit_view.js +134 -0
- package/dist/agent/tools/file.js +54 -16
- package/dist/agent/tools/recall_tool_response.d.ts +6 -0
- package/dist/agent/tools/recall_tool_response.js +60 -17
- package/dist/agent/tools/screenshot.js +5 -3
- package/dist/agent/tools/search.js +18 -9
- package/dist/agent/tools/shell.d.ts +1 -1
- package/dist/agent/tools/shell.js +48 -10
- package/dist/agent/tools/sim_domain_tools.js +7 -1
- package/dist/agent/tools/tool_groups.d.ts +34 -0
- package/dist/agent/tools/tool_groups.js +112 -0
- package/dist/agent/tools/types.d.ts +10 -0
- package/dist/app/activity.js +2 -1
- package/dist/app/agent_runner.js +13 -4
- package/dist/app/ask_user_response.d.ts +6 -0
- package/dist/app/ask_user_response.js +26 -0
- package/dist/app/command_context.js +11 -5
- package/dist/app/launch_notices.d.ts +10 -0
- package/dist/app/launch_notices.js +20 -0
- package/dist/app/selection_completion.d.ts +30 -1
- package/dist/app/selection_completion.js +191 -28
- package/dist/app/session_manager.d.ts +5 -0
- package/dist/app/session_manager.js +50 -12
- package/dist/app/session_messages.d.ts +3 -0
- package/dist/app/session_messages.js +34 -12
- package/dist/app/workspace_admission_details.d.ts +7 -0
- package/dist/app/workspace_admission_details.js +45 -1
- package/dist/cli_args.js +1 -1
- package/dist/cli_main.js +20 -3
- package/dist/cli_ratatui.d.ts +95 -3
- package/dist/cli_ratatui.js +654 -161
- package/dist/components/InputArea.js +1 -1
- package/dist/config/compaction.d.ts +2 -1
- package/dist/config/compaction.js +2 -1
- package/dist/config/defaults.js +20 -48
- package/dist/config/provider_api_key_env.d.ts +76 -0
- package/dist/config/provider_api_key_env.js +148 -0
- package/dist/config/resolved.d.ts +4 -4
- package/dist/config/types.d.ts +102 -1
- package/dist/config.d.ts +70 -8
- package/dist/config.js +253 -63
- package/dist/diagnostics/session_export.d.ts +1 -0
- package/dist/diagnostics/session_export.js +81 -13
- package/dist/emulation/catalog.d.ts +2 -0
- package/dist/emulation/catalog.js +50 -21
- package/dist/emulation/tool_adapters.d.ts +6 -0
- package/dist/emulation/tool_adapters.js +30 -0
- package/dist/emulation/ztc_addendum.d.ts +22 -0
- package/dist/emulation/ztc_addendum.js +37 -0
- package/dist/events.d.ts +3 -0
- package/dist/headless.d.ts +35 -1
- package/dist/headless.js +209 -14
- package/dist/headless_cli.js +6 -0
- package/dist/headless_cli_args.d.ts +4 -0
- package/dist/headless_cli_args.js +2 -0
- package/dist/headless_output_schema.d.ts +46 -0
- package/dist/headless_output_schema.js +386 -0
- package/dist/headless_trajectory.d.ts +44 -0
- package/dist/headless_trajectory.js +113 -0
- package/dist/library.d.ts +6 -3
- package/dist/library.js +8 -4
- package/dist/lsp/client.js +4 -1
- package/dist/lsp/servers.js +2 -0
- package/dist/onboarding/first_run.d.ts +26 -6
- package/dist/onboarding/first_run.js +63 -45
- package/dist/onboarding/router_tips.d.ts +7 -0
- package/dist/onboarding/router_tips.js +38 -0
- package/dist/onboarding/setup.js +1 -1
- package/dist/onboarding/wordmark.d.ts +7 -0
- package/dist/onboarding/wordmark.js +14 -0
- package/dist/onboarding/zergai_login.d.ts +48 -0
- package/dist/onboarding/zergai_login.js +60 -0
- package/dist/prompts/subagent_worker.j2 +20 -0
- package/dist/prompts/tool_delegate_task.j2 +5 -14
- package/dist/router_auth.d.ts +37 -3
- package/dist/router_auth.js +221 -73
- package/dist/runtime_info.d.ts +19 -6
- package/dist/runtime_info.js +64 -28
- package/dist/session.d.ts +9 -0
- package/dist/session.js +41 -8
- package/dist/session_handoff_contract.d.ts +13 -0
- package/dist/session_handoff_contract.js +81 -15
- package/dist/session_media.d.ts +5 -0
- package/dist/session_media.js +2 -1
- package/dist/simulation/domain_types.d.ts +3 -3
- package/dist/simulation/living/context.d.ts +9 -9
- package/dist/simulation/living/definition.d.ts +1 -1
- package/dist/simulation/living/open-world.d.ts +3 -3
- package/dist/simulation/living/recall.d.ts +1 -1
- package/dist/simulation/living/types.d.ts +18 -18
- package/dist/simulation/orchestration/world_response.d.ts +2 -2
- package/dist/simulation/toolkit/dynamic_meetings.d.ts +1 -1
- package/dist/simulation/toolkit/dynamic_state.d.ts +1 -1
- package/dist/simulation/world/bootstrap_schema.d.ts +1 -1
- package/dist/simulation/world/gm_schema.d.ts +8 -8
- package/dist/skills/loader.js +3 -1
- package/dist/types.d.ts +6 -2
- package/dist/ui/core/input.d.ts +5 -1
- package/dist/ui/core/input.js +5 -1
- package/dist/ui/core/input_segments.d.ts +5 -1
- package/dist/ui/core/input_segments.js +5 -3
- package/dist/ui/ratatui/headless_pane_manager.d.ts +3 -1
- package/dist/ui/ratatui/headless_pane_manager.js +16 -5
- package/dist/ui/ratatui/input.js +4 -3
- package/dist/ui/ratatui/process.js +22 -13
- package/dist/ui/ratatui/protocol.d.ts +14 -0
- package/dist/ui/ratatui/protocol.js +2 -0
- package/dist/ui/scrollback.d.ts +17 -0
- package/dist/ui/scrollback.js +138 -4
- package/dist/ui/terminal_image.d.ts +129 -0
- package/dist/ui/terminal_image.js +516 -0
- package/dist/ui/transcript_render_cache.d.ts +4 -4
- package/dist/ui/transcript_render_cache.js +7 -4
- package/dist/ui/views/app.d.ts +7 -3
- package/dist/ui/views/app.js +13 -6
- package/dist/ui/views/completion_menu.js +18 -10
- package/dist/ui/views/input_area.d.ts +1 -2
- package/dist/ui/views/input_area.js +2 -2
- package/dist/ui/views/message_list.d.ts +8 -1
- package/dist/ui/views/message_list.js +176 -45
- package/dist/ui/views/status_bar.js +7 -1
- package/dist/ui/views/theme.d.ts +2 -0
- package/dist/ui/views/theme.js +2 -0
- package/dist/ui/widgets/color_panel.js +4 -3
- package/dist/ui/widgets/form.d.ts +8 -1
- package/dist/ui/widgets/form.js +36 -22
- package/dist/ui/widgets/index.d.ts +1 -1
- package/dist/ui/widgets/index.js +1 -1
- package/dist/ui/widgets/log_view.js +4 -3
- package/dist/ui/widgets/navigator_panel.js +5 -4
- package/dist/ui/widgets/panel_frame.d.ts +2 -0
- package/dist/ui/widgets/panel_frame.js +14 -0
- package/dist/ui/widgets/prompt_viewer.js +2 -1
- package/dist/ui/widgets/questionnaire.js +3 -3
- package/dist/ui/widgets/reasoning_track.d.ts +60 -0
- package/dist/ui/widgets/reasoning_track.js +218 -0
- package/dist/ui/widgets/resume_panel.js +15 -10
- package/dist/ui/widgets/rewind_panel.js +4 -16
- package/dist/ui/widgets/select.d.ts +90 -4
- package/dist/ui/widgets/select.js +305 -135
- package/dist/ui/widgets/settings_panel.d.ts +21 -1
- package/dist/ui/widgets/settings_panel.js +266 -45
- package/dist/ui/widgets/status_line_panel.js +6 -5
- package/dist/ui/widgets/text_input.d.ts +4 -0
- package/dist/ui/widgets/text_input.js +20 -13
- package/dist/ui/widgets/types.d.ts +2 -0
- package/dist/utils/compaction.d.ts +24 -4
- package/dist/utils/compaction.js +228 -44
- package/dist/utils/context.js +1 -0
- package/dist/utils/debug_log.d.ts +12 -0
- package/dist/utils/debug_log.js +25 -3
- package/dist/utils/deepseek.d.ts +3 -1
- package/dist/utils/deepseek.js +29 -1
- package/dist/utils/docker_target.d.ts +28 -0
- package/dist/utils/docker_target.js +89 -0
- package/dist/utils/ephemeral.js +2 -0
- package/dist/utils/fireworks.d.ts +4 -4
- package/dist/utils/fireworks.js +11 -7
- package/dist/utils/idle_compaction.d.ts +32 -0
- package/dist/utils/idle_compaction.js +113 -0
- package/dist/utils/mid_turn_compaction.d.ts +12 -0
- package/dist/utils/mid_turn_compaction.js +17 -0
- package/dist/utils/open_url.d.ts +4 -0
- package/dist/utils/open_url.js +10 -0
- package/dist/utils/openrouter_prices.d.ts +165 -0
- package/dist/utils/openrouter_prices.js +313 -0
- package/dist/utils/router_catalog.d.ts +13 -0
- package/dist/utils/router_catalog.js +30 -3
- package/dist/utils/sandbox.d.ts +12 -0
- package/dist/utils/sandbox.js +23 -5
- package/dist/utils/session_interactivity.d.ts +21 -0
- package/dist/utils/session_interactivity.js +28 -0
- package/dist/utils/shell.d.ts +7 -0
- package/dist/utils/shell.js +43 -7
- package/dist/utils/subprocess_env.d.ts +27 -0
- package/dist/utils/subprocess_env.js +69 -3
- package/dist/utils/tool_output_copies.d.ts +44 -0
- package/dist/utils/tool_output_copies.js +196 -0
- package/dist/utils/tool_result_message.d.ts +7 -0
- package/dist/utils/tool_result_message.js +11 -0
- package/dist/utils/tool_trace.d.ts +15 -0
- package/dist/utils/tool_trace.js +40 -9
- package/dist/web/event_history_store.d.ts +2 -0
- package/dist/web/event_history_store.js +31 -6
- package/dist/web/mirror_client.d.ts +3 -0
- package/dist/web/mirror_stream.d.ts +11 -0
- package/dist/web/mirror_stream.js +23 -3
- package/dist/worker/executor.js +3 -1
- package/dist/worker/toolsets.d.ts +1 -1
- package/dist/worker/toolsets.js +4 -3
- package/dist/worker/types.d.ts +6 -0
- package/dist/worker/worker_models.d.ts +17 -0
- package/dist/worker/worker_models.js +79 -0
- package/dist/zlm-embed.mjs +53761 -10916
- package/node_modules/@zerg/model-contracts/README.md +16 -5
- package/node_modules/@zerg/model-contracts/index.d.ts +7 -3
- package/node_modules/@zerg/model-contracts/index.js +40 -18
- package/node_modules/abort-controller/LICENSE +21 -0
- package/node_modules/abort-controller/README.md +98 -0
- package/node_modules/abort-controller/browser.js +13 -0
- package/node_modules/abort-controller/browser.mjs +11 -0
- package/node_modules/abort-controller/dist/abort-controller.d.ts +43 -0
- package/node_modules/abort-controller/dist/abort-controller.js +127 -0
- package/node_modules/abort-controller/dist/abort-controller.js.map +1 -0
- package/node_modules/abort-controller/dist/abort-controller.mjs +118 -0
- package/node_modules/abort-controller/dist/abort-controller.mjs.map +1 -0
- package/node_modules/abort-controller/dist/abort-controller.umd.js +5 -0
- package/node_modules/abort-controller/dist/abort-controller.umd.js.map +1 -0
- package/node_modules/abort-controller/package.json +97 -0
- package/node_modules/abort-controller/polyfill.js +21 -0
- package/node_modules/abort-controller/polyfill.mjs +19 -0
- package/node_modules/bluebird/LICENSE +1 -1
- package/node_modules/bluebird/README.md +8 -2
- package/node_modules/bluebird/js/browser/bluebird.core.js +325 -150
- package/node_modules/bluebird/js/browser/bluebird.core.min.js +4 -4
- package/node_modules/bluebird/js/browser/bluebird.js +362 -165
- package/node_modules/bluebird/js/browser/bluebird.min.js +5 -5
- package/node_modules/bluebird/js/release/async.js +15 -56
- package/node_modules/bluebird/js/release/debuggability.js +118 -25
- package/node_modules/bluebird/js/release/finally.js +37 -2
- package/node_modules/bluebird/js/release/generators.js +1 -1
- package/node_modules/bluebird/js/release/join.js +4 -7
- package/node_modules/bluebird/js/release/map.js +10 -3
- package/node_modules/bluebird/js/release/promise.js +89 -43
- package/node_modules/bluebird/js/release/promise_array.js +2 -0
- package/node_modules/bluebird/js/release/props.js +1 -1
- package/node_modules/bluebird/js/release/reduce.js +16 -5
- package/node_modules/bluebird/js/release/schedule.js +6 -5
- package/node_modules/bluebird/js/release/settle.js +4 -0
- package/node_modules/bluebird/js/release/util.js +53 -11
- package/node_modules/bluebird/package.json +7 -5
- package/node_modules/buffer/AUTHORS.md +3 -0
- package/node_modules/buffer/README.md +1 -1
- package/node_modules/buffer/index.d.ts +11 -3
- package/node_modules/buffer/index.js +424 -135
- package/node_modules/buffer/package.json +8 -11
- package/node_modules/compress-commons/README.md +1 -1
- package/node_modules/compress-commons/lib/archivers/archive-entry.js +6 -16
- package/node_modules/compress-commons/lib/archivers/archive-output-stream.js +79 -98
- package/node_modules/compress-commons/lib/archivers/zip/constants.js +99 -70
- package/node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js +70 -92
- package/node_modules/compress-commons/lib/archivers/zip/unix-stat.js +19 -53
- package/node_modules/compress-commons/lib/archivers/zip/util.js +49 -49
- package/node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js +356 -389
- package/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js +335 -404
- package/node_modules/compress-commons/lib/compress-commons.js +18 -13
- package/node_modules/compress-commons/lib/util/index.js +11 -21
- package/node_modules/compress-commons/node_modules/readable-stream/README.md +116 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js +4 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js +4 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js +4 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/validators.js +530 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/browser.js +35 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/errors.js +343 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/index.js +65 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/primordials.js +124 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/util.js +148 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/stream/promises.js +43 -0
- package/node_modules/compress-commons/node_modules/readable-stream/lib/stream.js +143 -0
- package/node_modules/compress-commons/node_modules/readable-stream/package.json +89 -0
- package/node_modules/compress-commons/package.json +13 -10
- package/node_modules/crc32-stream/README.md +8 -8
- package/node_modules/crc32-stream/lib/crc32-stream.js +4 -23
- package/node_modules/crc32-stream/lib/deflate-crc32-stream.js +5 -27
- package/node_modules/crc32-stream/lib/index.js +7 -6
- package/node_modules/crc32-stream/node_modules/readable-stream/README.md +116 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js +4 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js +4 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js +4 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/validators.js +530 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/browser.js +35 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/errors.js +343 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/index.js +65 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/primordials.js +124 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/util.js +148 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/stream/promises.js +43 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/lib/stream.js +143 -0
- package/node_modules/crc32-stream/node_modules/readable-stream/package.json +89 -0
- package/node_modules/crc32-stream/package.json +9 -10
- package/node_modules/event-target-shim/LICENSE +22 -0
- package/node_modules/event-target-shim/README.md +293 -0
- package/node_modules/event-target-shim/dist/event-target-shim.js +871 -0
- package/node_modules/event-target-shim/dist/event-target-shim.js.map +1 -0
- package/node_modules/event-target-shim/dist/event-target-shim.mjs +862 -0
- package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +1 -0
- package/node_modules/event-target-shim/dist/event-target-shim.umd.js +6 -0
- package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +1 -0
- package/node_modules/event-target-shim/index.d.ts +399 -0
- package/node_modules/event-target-shim/package.json +82 -0
- package/node_modules/events/.airtap.yml +15 -0
- package/node_modules/events/.github/FUNDING.yml +12 -0
- package/node_modules/events/.travis.yml +18 -0
- package/node_modules/events/History.md +118 -0
- package/node_modules/events/LICENSE +22 -0
- package/node_modules/events/Readme.md +50 -0
- package/node_modules/events/events.js +497 -0
- package/node_modules/events/package.json +37 -0
- package/node_modules/events/security.md +10 -0
- package/node_modules/events/tests/add-listeners.js +111 -0
- package/node_modules/events/tests/check-listener-leaks.js +101 -0
- package/node_modules/events/tests/common.js +104 -0
- package/node_modules/events/tests/errors.js +13 -0
- package/node_modules/events/tests/events-list.js +28 -0
- package/node_modules/events/tests/events-once.js +234 -0
- package/node_modules/events/tests/index.js +64 -0
- package/node_modules/events/tests/legacy-compat.js +16 -0
- package/node_modules/events/tests/listener-count.js +37 -0
- package/node_modules/events/tests/listeners-side-effects.js +56 -0
- package/node_modules/events/tests/listeners.js +168 -0
- package/node_modules/events/tests/max-listeners.js +47 -0
- package/node_modules/events/tests/method-names.js +35 -0
- package/node_modules/events/tests/modify-in-emit.js +90 -0
- package/node_modules/events/tests/num-args.js +60 -0
- package/node_modules/events/tests/once.js +83 -0
- package/node_modules/events/tests/prepend.js +31 -0
- package/node_modules/events/tests/remove-all-listeners.js +133 -0
- package/node_modules/events/tests/remove-listeners.js +212 -0
- package/node_modules/events/tests/set-max-listeners-side-effects.js +31 -0
- package/node_modules/events/tests/special-event-names.js +45 -0
- package/node_modules/events/tests/subclass.js +66 -0
- package/node_modules/events/tests/symbols.js +25 -0
- package/node_modules/exceljs/lib/stream/xlsx/workbook-reader.js +5 -1
- package/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js +2 -2
- package/node_modules/exceljs/lib/utils/zip-archive.js +85 -0
- package/node_modules/exceljs/package.json +3 -3
- package/node_modules/fs-extra/LICENSE +15 -0
- package/node_modules/fs-extra/README.md +294 -0
- package/node_modules/fs-extra/lib/copy/copy-sync.js +171 -0
- package/node_modules/fs-extra/lib/copy/copy.js +182 -0
- package/node_modules/fs-extra/lib/copy/index.js +7 -0
- package/node_modules/fs-extra/lib/empty/index.js +39 -0
- package/node_modules/fs-extra/lib/ensure/file.js +66 -0
- package/node_modules/fs-extra/lib/ensure/index.js +23 -0
- package/node_modules/fs-extra/lib/ensure/link.js +64 -0
- package/node_modules/fs-extra/lib/ensure/symlink-paths.js +101 -0
- package/node_modules/fs-extra/lib/ensure/symlink-type.js +34 -0
- package/node_modules/fs-extra/lib/ensure/symlink.js +67 -0
- package/node_modules/fs-extra/lib/esm.mjs +68 -0
- package/node_modules/fs-extra/lib/fs/index.js +146 -0
- package/node_modules/fs-extra/lib/index.js +16 -0
- package/node_modules/fs-extra/lib/json/index.js +16 -0
- package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
- package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
- package/node_modules/fs-extra/lib/json/output-json.js +12 -0
- package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
- package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
- package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
- package/node_modules/fs-extra/lib/move/index.js +7 -0
- package/node_modules/fs-extra/lib/move/move-sync.js +55 -0
- package/node_modules/fs-extra/lib/move/move.js +59 -0
- package/node_modules/fs-extra/lib/output-file/index.js +31 -0
- package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
- package/node_modules/fs-extra/lib/remove/index.js +17 -0
- package/node_modules/fs-extra/lib/util/stat.js +159 -0
- package/node_modules/fs-extra/lib/util/utimes.js +36 -0
- package/node_modules/fs-extra/package.json +71 -0
- package/node_modules/is-stream/index.d.ts +90 -0
- package/node_modules/is-stream/index.js +37 -0
- package/node_modules/is-stream/license +9 -0
- package/node_modules/is-stream/package.json +48 -0
- package/node_modules/is-stream/readme.md +57 -0
- package/node_modules/jsonfile/LICENSE +15 -0
- package/node_modules/jsonfile/README.md +230 -0
- package/node_modules/jsonfile/index.js +88 -0
- package/node_modules/jsonfile/package.json +40 -0
- package/node_modules/jsonfile/utils.js +18 -0
- package/node_modules/node-int64/.npmignore +3 -0
- package/node_modules/node-int64/Int64.js +268 -0
- package/node_modules/node-int64/LICENSE +19 -0
- package/node_modules/node-int64/README.md +78 -0
- package/node_modules/node-int64/package.json +27 -0
- package/node_modules/node-int64/test.js +120 -0
- package/node_modules/process/.eslintrc +21 -0
- package/node_modules/process/LICENSE +22 -0
- package/node_modules/process/README.md +26 -0
- package/node_modules/process/browser.js +184 -0
- package/node_modules/process/index.js +2 -0
- package/node_modules/process/package.json +27 -0
- package/node_modules/process/test.js +199 -0
- package/node_modules/universalify/LICENSE +20 -0
- package/node_modules/universalify/README.md +76 -0
- package/node_modules/universalify/index.js +24 -0
- package/node_modules/universalify/package.json +34 -0
- package/node_modules/unzipper/README.md +206 -176
- package/node_modules/unzipper/eslint.config.mjs +29 -0
- package/node_modules/unzipper/lib/BufferStream.js +9 -15
- package/node_modules/unzipper/lib/Decrypt.js +58 -36
- package/node_modules/unzipper/lib/NoopStream.js +5 -10
- package/node_modules/unzipper/lib/Open/directory.js +140 -127
- package/node_modules/unzipper/lib/Open/index.js +72 -32
- package/node_modules/unzipper/lib/Open/unzip.js +68 -74
- package/node_modules/unzipper/lib/PullStream.js +50 -55
- package/node_modules/unzipper/lib/extract.js +26 -18
- package/node_modules/unzipper/lib/parse.js +119 -118
- package/node_modules/unzipper/lib/parseBuffer.js +55 -0
- package/node_modules/unzipper/lib/parseExtraField.js +17 -14
- package/node_modules/unzipper/lib/parseOne.js +23 -27
- package/node_modules/unzipper/package.json +12 -13
- package/node_modules/unzipper/unzip.js +0 -6
- package/node_modules/zip-stream/README.md +5 -5
- package/node_modules/zip-stream/index.js +143 -169
- package/node_modules/zip-stream/node_modules/readable-stream/README.md +116 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_readable.js +4 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_transform.js +4 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_writable.js +4 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/validators.js +530 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/browser.js +35 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/errors.js +343 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/index.js +65 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/primordials.js +124 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/util.js +148 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/stream/promises.js +43 -0
- package/node_modules/zip-stream/node_modules/readable-stream/lib/stream.js +143 -0
- package/node_modules/zip-stream/node_modules/readable-stream/package.json +89 -0
- package/node_modules/zip-stream/package.json +15 -12
- package/node_modules/zip-stream/utils.js +21 -0
- package/package.json +22 -10
- package/packages/exceljs/PROVENANCE.md +24 -1
- package/packages/exceljs/lib/stream/xlsx/workbook-reader.js +5 -1
- package/packages/exceljs/lib/stream/xlsx/workbook-writer.js +2 -2
- package/packages/exceljs/lib/utils/zip-archive.js +85 -0
- package/packages/exceljs/package.json +3 -3
- package/packages/model-contracts/README.md +16 -5
- package/packages/model-contracts/index.d.ts +7 -3
- package/packages/model-contracts/index.js +40 -18
- package/scripts/install-macos-app.mjs +10 -1
- package/node_modules/archiver/LICENSE +0 -22
- package/node_modules/archiver/README.md +0 -94
- package/node_modules/archiver/index.js +0 -84
- package/node_modules/archiver/lib/core.js +0 -974
- package/node_modules/archiver/lib/error.js +0 -40
- package/node_modules/archiver/lib/plugins/json.js +0 -110
- package/node_modules/archiver/lib/plugins/tar.js +0 -167
- package/node_modules/archiver/lib/plugins/zip.js +0 -120
- package/node_modules/archiver/package.json +0 -60
- package/node_modules/archiver-utils/LICENSE +0 -22
- package/node_modules/archiver-utils/README.md +0 -7
- package/node_modules/archiver-utils/file.js +0 -209
- package/node_modules/archiver-utils/index.js +0 -156
- package/node_modules/archiver-utils/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/archiver-utils/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/archiver-utils/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/archiver-utils/node_modules/readable-stream/README.md +0 -58
- package/node_modules/archiver-utils/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/archiver-utils/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/package.json +0 -52
- package/node_modules/archiver-utils/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/archiver-utils/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/archiver-utils/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/archiver-utils/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/archiver-utils/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/archiver-utils/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/archiver-utils/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/archiver-utils/node_modules/safe-buffer/index.js +0 -62
- package/node_modules/archiver-utils/node_modules/safe-buffer/package.json +0 -37
- package/node_modules/archiver-utils/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/archiver-utils/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/archiver-utils/node_modules/string_decoder/README.md +0 -47
- package/node_modules/archiver-utils/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/archiver-utils/node_modules/string_decoder/package.json +0 -31
- package/node_modules/archiver-utils/package.json +0 -54
- package/node_modules/async/CHANGELOG.md +0 -351
- package/node_modules/async/LICENSE +0 -19
- package/node_modules/async/README.md +0 -59
- package/node_modules/async/all.js +0 -119
- package/node_modules/async/allLimit.js +0 -46
- package/node_modules/async/allSeries.js +0 -45
- package/node_modules/async/any.js +0 -122
- package/node_modules/async/anyLimit.js +0 -47
- package/node_modules/async/anySeries.js +0 -46
- package/node_modules/async/apply.js +0 -11
- package/node_modules/async/applyEach.js +0 -57
- package/node_modules/async/applyEachSeries.js +0 -37
- package/node_modules/async/asyncify.js +0 -118
- package/node_modules/async/auto.js +0 -333
- package/node_modules/async/autoInject.js +0 -182
- package/node_modules/async/bower.json +0 -17
- package/node_modules/async/cargo.js +0 -63
- package/node_modules/async/cargoQueue.js +0 -71
- package/node_modules/async/compose.js +0 -55
- package/node_modules/async/concat.js +0 -115
- package/node_modules/async/concatLimit.js +0 -60
- package/node_modules/async/concatSeries.js +0 -41
- package/node_modules/async/constant.js +0 -14
- package/node_modules/async/detect.js +0 -96
- package/node_modules/async/detectLimit.js +0 -48
- package/node_modules/async/detectSeries.js +0 -47
- package/node_modules/async/dir.js +0 -43
- package/node_modules/async/dist/async.js +0 -6061
- package/node_modules/async/dist/async.min.js +0 -1
- package/node_modules/async/dist/async.mjs +0 -5948
- package/node_modules/async/doDuring.js +0 -68
- package/node_modules/async/doUntil.js +0 -46
- package/node_modules/async/doWhilst.js +0 -68
- package/node_modules/async/during.js +0 -78
- package/node_modules/async/each.js +0 -129
- package/node_modules/async/eachLimit.js +0 -50
- package/node_modules/async/eachOf.js +0 -185
- package/node_modules/async/eachOfLimit.js +0 -47
- package/node_modules/async/eachOfSeries.js +0 -39
- package/node_modules/async/eachSeries.js +0 -44
- package/node_modules/async/ensureAsync.js +0 -67
- package/node_modules/async/every.js +0 -119
- package/node_modules/async/everyLimit.js +0 -46
- package/node_modules/async/everySeries.js +0 -45
- package/node_modules/async/filter.js +0 -93
- package/node_modules/async/filterLimit.js +0 -45
- package/node_modules/async/filterSeries.js +0 -43
- package/node_modules/async/find.js +0 -96
- package/node_modules/async/findLimit.js +0 -48
- package/node_modules/async/findSeries.js +0 -47
- package/node_modules/async/flatMap.js +0 -115
- package/node_modules/async/flatMapLimit.js +0 -60
- package/node_modules/async/flatMapSeries.js +0 -41
- package/node_modules/async/foldl.js +0 -153
- package/node_modules/async/foldr.js +0 -41
- package/node_modules/async/forEach.js +0 -129
- package/node_modules/async/forEachLimit.js +0 -50
- package/node_modules/async/forEachOf.js +0 -185
- package/node_modules/async/forEachOfLimit.js +0 -47
- package/node_modules/async/forEachOfSeries.js +0 -39
- package/node_modules/async/forEachSeries.js +0 -44
- package/node_modules/async/forever.js +0 -68
- package/node_modules/async/groupBy.js +0 -108
- package/node_modules/async/groupByLimit.js +0 -71
- package/node_modules/async/groupBySeries.js +0 -36
- package/node_modules/async/index.js +0 -588
- package/node_modules/async/inject.js +0 -153
- package/node_modules/async/internal/DoublyLinkedList.js +0 -92
- package/node_modules/async/internal/Heap.js +0 -120
- package/node_modules/async/internal/applyEach.js +0 -29
- package/node_modules/async/internal/asyncEachOfLimit.js +0 -75
- package/node_modules/async/internal/awaitify.js +0 -28
- package/node_modules/async/internal/breakLoop.js +0 -10
- package/node_modules/async/internal/consoleFunc.js +0 -31
- package/node_modules/async/internal/createTester.js +0 -40
- package/node_modules/async/internal/eachOfLimit.js +0 -90
- package/node_modules/async/internal/filter.js +0 -55
- package/node_modules/async/internal/getIterator.js +0 -11
- package/node_modules/async/internal/initialParams.js +0 -14
- package/node_modules/async/internal/isArrayLike.js +0 -10
- package/node_modules/async/internal/iterator.js +0 -57
- package/node_modules/async/internal/map.js +0 -30
- package/node_modules/async/internal/once.js +0 -17
- package/node_modules/async/internal/onlyOnce.js +0 -15
- package/node_modules/async/internal/parallel.js +0 -34
- package/node_modules/async/internal/promiseCallback.js +0 -23
- package/node_modules/async/internal/queue.js +0 -294
- package/node_modules/async/internal/range.js +0 -14
- package/node_modules/async/internal/reject.js +0 -26
- package/node_modules/async/internal/setImmediate.js +0 -34
- package/node_modules/async/internal/withoutIndex.js +0 -10
- package/node_modules/async/internal/wrapAsync.js +0 -34
- package/node_modules/async/log.js +0 -41
- package/node_modules/async/map.js +0 -142
- package/node_modules/async/mapLimit.js +0 -45
- package/node_modules/async/mapSeries.js +0 -44
- package/node_modules/async/mapValues.js +0 -152
- package/node_modules/async/mapValuesLimit.js +0 -61
- package/node_modules/async/mapValuesSeries.js +0 -37
- package/node_modules/async/memoize.js +0 -91
- package/node_modules/async/nextTick.js +0 -52
- package/node_modules/async/package.json +0 -75
- package/node_modules/async/parallel.js +0 -180
- package/node_modules/async/parallelLimit.js +0 -41
- package/node_modules/async/priorityQueue.js +0 -60
- package/node_modules/async/queue.js +0 -24
- package/node_modules/async/race.js +0 -67
- package/node_modules/async/reduce.js +0 -153
- package/node_modules/async/reduceRight.js +0 -41
- package/node_modules/async/reflect.js +0 -78
- package/node_modules/async/reflectAll.js +0 -93
- package/node_modules/async/reject.js +0 -87
- package/node_modules/async/rejectLimit.js +0 -45
- package/node_modules/async/rejectSeries.js +0 -43
- package/node_modules/async/retry.js +0 -159
- package/node_modules/async/retryable.js +0 -77
- package/node_modules/async/select.js +0 -93
- package/node_modules/async/selectLimit.js +0 -45
- package/node_modules/async/selectSeries.js +0 -43
- package/node_modules/async/seq.js +0 -79
- package/node_modules/async/series.js +0 -186
- package/node_modules/async/setImmediate.js +0 -45
- package/node_modules/async/some.js +0 -122
- package/node_modules/async/someLimit.js +0 -47
- package/node_modules/async/someSeries.js +0 -46
- package/node_modules/async/sortBy.js +0 -190
- package/node_modules/async/timeout.js +0 -89
- package/node_modules/async/times.js +0 -50
- package/node_modules/async/timesLimit.js +0 -43
- package/node_modules/async/timesSeries.js +0 -32
- package/node_modules/async/transform.js +0 -173
- package/node_modules/async/tryEach.js +0 -78
- package/node_modules/async/unmemoize.js +0 -25
- package/node_modules/async/until.js +0 -61
- package/node_modules/async/waterfall.js +0 -105
- package/node_modules/async/whilst.js +0 -78
- package/node_modules/async/wrapSync.js +0 -118
- package/node_modules/big-integer/BigInteger.d.ts +0 -2393
- package/node_modules/big-integer/BigInteger.js +0 -1453
- package/node_modules/big-integer/BigInteger.min.js +0 -1
- package/node_modules/big-integer/LICENSE +0 -24
- package/node_modules/big-integer/README.md +0 -589
- package/node_modules/big-integer/bower.json +0 -29
- package/node_modules/big-integer/package.json +0 -48
- package/node_modules/big-integer/tsconfig.json +0 -24
- package/node_modules/binary/.npmignore +0 -1
- package/node_modules/binary/.travis.yml +0 -4
- package/node_modules/binary/README.markdown +0 -177
- package/node_modules/binary/example/buf.js +0 -11
- package/node_modules/binary/example/parse.js +0 -10
- package/node_modules/binary/example/stream.js +0 -12
- package/node_modules/binary/index.js +0 -397
- package/node_modules/binary/lib/vars.js +0 -28
- package/node_modules/binary/package.json +0 -38
- package/node_modules/binary/perf/loop.js +0 -92
- package/node_modules/binary/perf/small.js +0 -80
- package/node_modules/binary/test/bu.js +0 -46
- package/node_modules/binary/test/deferred.js +0 -20
- package/node_modules/binary/test/dots.js +0 -23
- package/node_modules/binary/test/eof.js +0 -41
- package/node_modules/binary/test/flush.js +0 -17
- package/node_modules/binary/test/from_buffer.js +0 -14
- package/node_modules/binary/test/get_buffer.js +0 -28
- package/node_modules/binary/test/immediate.js +0 -18
- package/node_modules/binary/test/interval.js +0 -38
- package/node_modules/binary/test/into_buffer.js +0 -35
- package/node_modules/binary/test/into_stream.js +0 -43
- package/node_modules/binary/test/loop.js +0 -44
- package/node_modules/binary/test/loop_scan.js +0 -54
- package/node_modules/binary/test/lu.js +0 -46
- package/node_modules/binary/test/negbs.js +0 -29
- package/node_modules/binary/test/negls.js +0 -29
- package/node_modules/binary/test/nested.js +0 -35
- package/node_modules/binary/test/not_enough_buf.js +0 -17
- package/node_modules/binary/test/not_enough_parse.js +0 -19
- package/node_modules/binary/test/parse.js +0 -54
- package/node_modules/binary/test/peek.js +0 -40
- package/node_modules/binary/test/pipe.js +0 -49
- package/node_modules/binary/test/posbs.js +0 -29
- package/node_modules/binary/test/posls.js +0 -29
- package/node_modules/binary/test/scan.js +0 -33
- package/node_modules/binary/test/scan_buf.js +0 -18
- package/node_modules/binary/test/scan_buf_null.js +0 -16
- package/node_modules/binary/test/skip.js +0 -58
- package/node_modules/binary/test/split.js +0 -34
- package/node_modules/bl/.travis.yml +0 -17
- package/node_modules/bl/BufferList.js +0 -396
- package/node_modules/bl/LICENSE.md +0 -13
- package/node_modules/bl/README.md +0 -247
- package/node_modules/bl/bl.js +0 -84
- package/node_modules/bl/package.json +0 -37
- package/node_modules/bl/test/convert.js +0 -21
- package/node_modules/bl/test/indexOf.js +0 -492
- package/node_modules/bl/test/isBufferList.js +0 -32
- package/node_modules/bl/test/test.js +0 -869
- package/node_modules/buffer-crc32/LICENSE +0 -19
- package/node_modules/buffer-crc32/README.md +0 -47
- package/node_modules/buffer-crc32/index.js +0 -111
- package/node_modules/buffer-crc32/package.json +0 -39
- package/node_modules/buffer-indexof-polyfill/.eslintrc +0 -33
- package/node_modules/buffer-indexof-polyfill/.travis.yml +0 -17
- package/node_modules/buffer-indexof-polyfill/LICENSE +0 -22
- package/node_modules/buffer-indexof-polyfill/README.md +0 -33
- package/node_modules/buffer-indexof-polyfill/index.js +0 -73
- package/node_modules/buffer-indexof-polyfill/init-buffer.js +0 -8
- package/node_modules/buffer-indexof-polyfill/package.json +0 -34
- package/node_modules/buffer-indexof-polyfill/test/indexof.js +0 -128
- package/node_modules/buffers/README.markdown +0 -122
- package/node_modules/buffers/examples/slice.js +0 -9
- package/node_modules/buffers/examples/splice.js +0 -17
- package/node_modules/buffers/index.js +0 -269
- package/node_modules/buffers/package.json +0 -14
- package/node_modules/buffers/test/buffers.js +0 -209
- package/node_modules/chainsaw/.npmignore +0 -1
- package/node_modules/chainsaw/README.markdown +0 -157
- package/node_modules/chainsaw/examples/add_do.js +0 -25
- package/node_modules/chainsaw/examples/prompt.js +0 -67
- package/node_modules/chainsaw/index.js +0 -145
- package/node_modules/chainsaw/package.json +0 -23
- package/node_modules/chainsaw/test/chainsaw.js +0 -418
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/end-of-stream/LICENSE +0 -21
- package/node_modules/end-of-stream/README.md +0 -54
- package/node_modules/end-of-stream/index.js +0 -96
- package/node_modules/end-of-stream/package.json +0 -37
- package/node_modules/fs-constants/LICENSE +0 -21
- package/node_modules/fs-constants/README.md +0 -26
- package/node_modules/fs-constants/browser.js +0 -1
- package/node_modules/fs-constants/index.js +0 -1
- package/node_modules/fs-constants/package.json +0 -19
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/fstream/.travis.yml +0 -9
- package/node_modules/fstream/LICENSE +0 -15
- package/node_modules/fstream/README.md +0 -76
- package/node_modules/fstream/examples/filter-pipe.js +0 -134
- package/node_modules/fstream/examples/pipe.js +0 -118
- package/node_modules/fstream/examples/reader.js +0 -68
- package/node_modules/fstream/examples/symlink-write.js +0 -27
- package/node_modules/fstream/fstream.js +0 -35
- package/node_modules/fstream/lib/abstract.js +0 -85
- package/node_modules/fstream/lib/collect.js +0 -70
- package/node_modules/fstream/lib/dir-reader.js +0 -252
- package/node_modules/fstream/lib/dir-writer.js +0 -174
- package/node_modules/fstream/lib/file-reader.js +0 -150
- package/node_modules/fstream/lib/file-writer.js +0 -107
- package/node_modules/fstream/lib/get-type.js +0 -33
- package/node_modules/fstream/lib/link-reader.js +0 -53
- package/node_modules/fstream/lib/link-writer.js +0 -95
- package/node_modules/fstream/lib/proxy-reader.js +0 -95
- package/node_modules/fstream/lib/proxy-writer.js +0 -111
- package/node_modules/fstream/lib/reader.js +0 -255
- package/node_modules/fstream/lib/socket-reader.js +0 -36
- package/node_modules/fstream/lib/writer.js +0 -390
- package/node_modules/fstream/package.json +0 -28
- package/node_modules/glob/LICENSE +0 -21
- package/node_modules/glob/README.md +0 -378
- package/node_modules/glob/common.js +0 -238
- package/node_modules/glob/glob.js +0 -790
- package/node_modules/glob/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/glob/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/glob/node_modules/balanced-match/README.md +0 -97
- package/node_modules/glob/node_modules/balanced-match/index.js +0 -62
- package/node_modules/glob/node_modules/balanced-match/package.json +0 -48
- package/node_modules/glob/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/glob/node_modules/brace-expansion/README.md +0 -151
- package/node_modules/glob/node_modules/brace-expansion/index.js +0 -438
- package/node_modules/glob/node_modules/brace-expansion/package.json +0 -50
- package/node_modules/glob/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/glob/node_modules/minimatch/README.md +0 -267
- package/node_modules/glob/node_modules/minimatch/minimatch.js +0 -1005
- package/node_modules/glob/node_modules/minimatch/package.json +0 -33
- package/node_modules/glob/package.json +0 -55
- package/node_modules/glob/sync.js +0 -486
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/lazystream/LICENSE +0 -23
- package/node_modules/lazystream/README.md +0 -114
- package/node_modules/lazystream/lib/lazystream.js +0 -54
- package/node_modules/lazystream/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/lazystream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/lazystream/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/lazystream/node_modules/readable-stream/README.md +0 -58
- package/node_modules/lazystream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/lazystream/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/package.json +0 -52
- package/node_modules/lazystream/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/lazystream/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/lazystream/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/lazystream/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/lazystream/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/lazystream/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/lazystream/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/lazystream/node_modules/safe-buffer/index.js +0 -62
- package/node_modules/lazystream/node_modules/safe-buffer/package.json +0 -37
- package/node_modules/lazystream/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/lazystream/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/lazystream/node_modules/string_decoder/README.md +0 -47
- package/node_modules/lazystream/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/lazystream/node_modules/string_decoder/package.json +0 -31
- package/node_modules/lazystream/package.json +0 -46
- package/node_modules/lazystream/test/data.md +0 -13
- package/node_modules/lazystream/test/fs_test.js +0 -69
- package/node_modules/lazystream/test/helper.js +0 -39
- package/node_modules/lazystream/test/pipe_test.js +0 -36
- package/node_modules/lazystream/test/readable_test.js +0 -90
- package/node_modules/lazystream/test/writable_test.js +0 -59
- package/node_modules/listenercount/.npmignore +0 -2
- package/node_modules/listenercount/LICENSE.md +0 -5
- package/node_modules/listenercount/README.md +0 -50
- package/node_modules/listenercount/circle.yml +0 -6
- package/node_modules/listenercount/index.js +0 -16
- package/node_modules/listenercount/package.json +0 -27
- package/node_modules/listenercount/test/test.js +0 -31
- package/node_modules/lodash.defaults/LICENSE +0 -47
- package/node_modules/lodash.defaults/README.md +0 -18
- package/node_modules/lodash.defaults/index.js +0 -668
- package/node_modules/lodash.defaults/package.json +0 -17
- package/node_modules/lodash.difference/LICENSE +0 -47
- package/node_modules/lodash.difference/README.md +0 -18
- package/node_modules/lodash.difference/index.js +0 -1170
- package/node_modules/lodash.difference/package.json +0 -17
- package/node_modules/lodash.flatten/LICENSE +0 -47
- package/node_modules/lodash.flatten/README.md +0 -18
- package/node_modules/lodash.flatten/index.js +0 -349
- package/node_modules/lodash.flatten/package.json +0 -17
- package/node_modules/lodash.isplainobject/LICENSE +0 -47
- package/node_modules/lodash.isplainobject/README.md +0 -18
- package/node_modules/lodash.isplainobject/index.js +0 -139
- package/node_modules/lodash.isplainobject/package.json +0 -17
- package/node_modules/lodash.union/LICENSE +0 -47
- package/node_modules/lodash.union/README.md +0 -18
- package/node_modules/lodash.union/index.js +0 -1181
- package/node_modules/lodash.union/package.json +0 -17
- package/node_modules/minimist/.eslintrc +0 -29
- package/node_modules/minimist/.github/FUNDING.yml +0 -12
- package/node_modules/minimist/.nycrc +0 -14
- package/node_modules/minimist/CHANGELOG.md +0 -298
- package/node_modules/minimist/LICENSE +0 -18
- package/node_modules/minimist/README.md +0 -121
- package/node_modules/minimist/example/parse.js +0 -4
- package/node_modules/minimist/index.js +0 -263
- package/node_modules/minimist/package.json +0 -75
- package/node_modules/minimist/test/all_bool.js +0 -34
- package/node_modules/minimist/test/bool.js +0 -177
- package/node_modules/minimist/test/dash.js +0 -43
- package/node_modules/minimist/test/default_bool.js +0 -37
- package/node_modules/minimist/test/dotted.js +0 -24
- package/node_modules/minimist/test/kv_short.js +0 -32
- package/node_modules/minimist/test/long.js +0 -33
- package/node_modules/minimist/test/num.js +0 -38
- package/node_modules/minimist/test/parse.js +0 -209
- package/node_modules/minimist/test/parse_modified.js +0 -11
- package/node_modules/minimist/test/proto.js +0 -64
- package/node_modules/minimist/test/short.js +0 -69
- package/node_modules/minimist/test/stop_early.js +0 -17
- package/node_modules/minimist/test/unknown.js +0 -104
- package/node_modules/minimist/test/whitespace.js +0 -10
- package/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/mkdirp/bin/cmd.js +0 -33
- package/node_modules/mkdirp/bin/usage.txt +0 -12
- package/node_modules/mkdirp/index.js +0 -102
- package/node_modules/mkdirp/package.json +0 -33
- package/node_modules/mkdirp/readme.markdown +0 -100
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/readdir-glob/LICENSE +0 -201
- package/node_modules/readdir-glob/README.md +0 -85
- package/node_modules/readdir-glob/index.js +0 -243
- package/node_modules/readdir-glob/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/readdir-glob/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/readdir-glob/node_modules/balanced-match/README.md +0 -97
- package/node_modules/readdir-glob/node_modules/balanced-match/index.js +0 -62
- package/node_modules/readdir-glob/node_modules/balanced-match/package.json +0 -48
- package/node_modules/readdir-glob/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
- package/node_modules/readdir-glob/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/readdir-glob/node_modules/brace-expansion/README.md +0 -157
- package/node_modules/readdir-glob/node_modules/brace-expansion/index.js +0 -394
- package/node_modules/readdir-glob/node_modules/brace-expansion/package.json +0 -49
- package/node_modules/readdir-glob/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/readdir-glob/node_modules/minimatch/README.md +0 -296
- package/node_modules/readdir-glob/node_modules/minimatch/lib/path.js +0 -4
- package/node_modules/readdir-glob/node_modules/minimatch/minimatch.js +0 -996
- package/node_modules/readdir-glob/node_modules/minimatch/package.json +0 -35
- package/node_modules/readdir-glob/package.json +0 -43
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -50
- package/node_modules/rimraf/package.json +0 -29
- package/node_modules/rimraf/rimraf.js +0 -372
- package/node_modules/tar-stream/LICENSE +0 -21
- package/node_modules/tar-stream/README.md +0 -168
- package/node_modules/tar-stream/extract.js +0 -257
- package/node_modules/tar-stream/headers.js +0 -295
- package/node_modules/tar-stream/index.js +0 -2
- package/node_modules/tar-stream/pack.js +0 -255
- package/node_modules/tar-stream/package.json +0 -58
- package/node_modules/tar-stream/sandbox.js +0 -11
- package/node_modules/traverse/.npmignore +0 -1
- package/node_modules/traverse/LICENSE +0 -24
- package/node_modules/traverse/README.markdown +0 -247
- package/node_modules/traverse/examples/json.js +0 -16
- package/node_modules/traverse/examples/leaves.js +0 -15
- package/node_modules/traverse/examples/negative.js +0 -8
- package/node_modules/traverse/examples/stringify.js +0 -38
- package/node_modules/traverse/index.js +0 -322
- package/node_modules/traverse/package.json +0 -18
- package/node_modules/traverse/test/circular.js +0 -114
- package/node_modules/traverse/test/date.js +0 -35
- package/node_modules/traverse/test/equal.js +0 -219
- package/node_modules/traverse/test/instance.js +0 -17
- package/node_modules/traverse/test/interface.js +0 -42
- package/node_modules/traverse/test/json.js +0 -47
- package/node_modules/traverse/test/leaves.js +0 -21
- package/node_modules/traverse/test/mutability.js +0 -203
- package/node_modules/traverse/test/negative.js +0 -20
- package/node_modules/traverse/test/obj.js +0 -15
- package/node_modules/traverse/test/stop.js +0 -41
- package/node_modules/traverse/test/stringify.js +0 -36
- package/node_modules/traverse/test/super_deep.js +0 -54
- package/node_modules/unzipper/.circleci/config.yml +0 -13
- package/node_modules/unzipper/.travis.yml +0 -21
- package/node_modules/unzipper/lib/Buffer.js +0 -12
- package/node_modules/unzipper/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/unzipper/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/unzipper/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/unzipper/node_modules/readable-stream/README.md +0 -58
- package/node_modules/unzipper/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/unzipper/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_writable.js +0 -685
- package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
- package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
- package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/package.json +0 -52
- package/node_modules/unzipper/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/unzipper/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/unzipper/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/unzipper/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/unzipper/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/unzipper/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/unzipper/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/unzipper/node_modules/safe-buffer/index.js +0 -62
- package/node_modules/unzipper/node_modules/safe-buffer/package.json +0 -37
- package/node_modules/unzipper/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/unzipper/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/unzipper/node_modules/string_decoder/README.md +0 -47
- package/node_modules/unzipper/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/unzipper/node_modules/string_decoder/package.json +0 -31
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
- package/node_modules/zip-stream/node_modules/archiver-utils/LICENSE +0 -22
- package/node_modules/zip-stream/node_modules/archiver-utils/README.md +0 -6
- package/node_modules/zip-stream/node_modules/archiver-utils/file.js +0 -209
- package/node_modules/zip-stream/node_modules/archiver-utils/index.js +0 -149
- package/node_modules/zip-stream/node_modules/archiver-utils/package.json +0 -54
- /package/node_modules/{archiver-utils → compress-commons}/node_modules/readable-stream/LICENSE +0 -0
- /package/node_modules/{lazystream → crc32-stream}/node_modules/readable-stream/LICENSE +0 -0
- /package/node_modules/{unzipper → zip-stream}/node_modules/readable-stream/LICENSE +0 -0
package/dist/utils/shell.js
CHANGED
|
@@ -6,7 +6,9 @@ import { buildSandboxCommandPlan } from './sandbox.js';
|
|
|
6
6
|
import { buildTemporaryWriteRootSubprocessEnv, buildUserSubprocessEnv } from './subprocess_env.js';
|
|
7
7
|
import { CheckedShellCoordinator, formatCheckedStageCommand } from './checked_shell.js';
|
|
8
8
|
import { parseCommandExecutionPolicy } from '../agent/runtime/command_execution_policy.js';
|
|
9
|
+
import { COPY_ADVICE, copyNote, ToolOutputCopy } from './tool_output_copies.js';
|
|
9
10
|
const MAX_OUTPUT = 10000;
|
|
11
|
+
const OMITTED = '\n… [output omitted] …\n';
|
|
10
12
|
const DEFAULT_TIMEOUT_MS = 30000;
|
|
11
13
|
const DOCKER_TIMEOUT_MS = 120000;
|
|
12
14
|
const PROTECTED_ROOTS = [
|
|
@@ -178,7 +180,7 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
178
180
|
throw new Error(`Command rejected for safety reasons: ${describeSafetyRule(verdict.rule)} (target: ${verdict.token}). `
|
|
179
181
|
+ `[safety rule=${verdict.rule} token=${verdict.token}]`);
|
|
180
182
|
}
|
|
181
|
-
const { env, temporaryWriteRoot, stdin, noTimeout, executionMode = 'foreground', turnInterruptPolicy, onExecutionPolicy, onOutput, checked, onCheckedProgress, ...sandboxCommandOptions } = sandboxOptions ?? {};
|
|
183
|
+
const { env, temporaryWriteRoot, stdin, noTimeout, executionMode = 'foreground', turnInterruptPolicy, onExecutionPolicy, onOutput, checked, onCheckedProgress, outputCopy, ...sandboxCommandOptions } = sandboxOptions ?? {};
|
|
182
184
|
if (checked && (process.platform !== 'darwin' && process.platform !== 'linux' || DOCKER_CONTAINER)) {
|
|
183
185
|
throw new Error('Checked execution supports local macOS/Linux Bash only; Docker and Windows are unsupported.');
|
|
184
186
|
}
|
|
@@ -238,6 +240,9 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
238
240
|
let stderr = '';
|
|
239
241
|
let stdoutOverflow = false;
|
|
240
242
|
let stderrOverflow = false;
|
|
243
|
+
// Opened when a stream first passes MAX_OUTPUT; null when no copy could be kept.
|
|
244
|
+
let stdoutCopy;
|
|
245
|
+
let stderrCopy;
|
|
241
246
|
let timedOut = false;
|
|
242
247
|
let cancelled = false;
|
|
243
248
|
let outputError;
|
|
@@ -250,6 +255,11 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
250
255
|
onAbort();
|
|
251
256
|
}
|
|
252
257
|
stdoutOverflow ||= stdout.length + chunk.length > MAX_OUTPUT;
|
|
258
|
+
if (stdoutOverflow && outputCopy && stdoutCopy === undefined) {
|
|
259
|
+
stdoutCopy = ToolOutputCopy.open(outputCopy.folder, outputCopy.id, 'stdout');
|
|
260
|
+
stdoutCopy?.write(stdout);
|
|
261
|
+
}
|
|
262
|
+
stdoutCopy?.write(chunk);
|
|
253
263
|
stdout = retainOutputEdges(stdout, chunk);
|
|
254
264
|
});
|
|
255
265
|
child.stderr?.on('data', (chunk) => {
|
|
@@ -261,6 +271,11 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
261
271
|
onAbort();
|
|
262
272
|
}
|
|
263
273
|
stderrOverflow ||= stderr.length + chunk.length > MAX_OUTPUT;
|
|
274
|
+
if (stderrOverflow && outputCopy && stderrCopy === undefined) {
|
|
275
|
+
stderrCopy = ToolOutputCopy.open(outputCopy.folder, outputCopy.id, 'stderr');
|
|
276
|
+
stderrCopy?.write(stderr);
|
|
277
|
+
}
|
|
278
|
+
stderrCopy?.write(chunk);
|
|
264
279
|
stderr = retainOutputEdges(stderr, chunk);
|
|
265
280
|
});
|
|
266
281
|
let killTimer = null;
|
|
@@ -328,6 +343,15 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
328
343
|
signal.removeEventListener('abort', onAbort);
|
|
329
344
|
if (childPid)
|
|
330
345
|
activeChildGroups.delete(childPid);
|
|
346
|
+
stdoutCopy?.close();
|
|
347
|
+
stderrCopy?.close();
|
|
348
|
+
};
|
|
349
|
+
// Where output was cut, name the file that holds all of it.
|
|
350
|
+
const copied = () => {
|
|
351
|
+
const recallId = outputCopy?.recallable ? outputCopy.id : undefined;
|
|
352
|
+
const out = nameCopy(stdout, stdoutCopy, recallId, 'stdout'), err = nameCopy(stderr, stderrCopy, recallId, 'stderr');
|
|
353
|
+
const outputCopies = { ...(out.path ? { stdout: out.path } : {}), ...(err.path ? { stderr: err.path } : {}) };
|
|
354
|
+
return { stdout: out.text, stderr: err.text, ...(Object.keys(outputCopies).length ? { outputCopies } : {}) };
|
|
331
355
|
};
|
|
332
356
|
let settled = false;
|
|
333
357
|
const settleResolve = (r) => {
|
|
@@ -356,11 +380,13 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
356
380
|
return;
|
|
357
381
|
}
|
|
358
382
|
const outcome = coordinator?.finish(1, cancelled ? 'cancelled' : undefined);
|
|
383
|
+
const { outputCopies, ...named } = copied();
|
|
359
384
|
settleResolve({
|
|
360
385
|
command,
|
|
361
386
|
cwd: effectiveCwd,
|
|
362
|
-
stdout: appendSandboxAudit(stdout, sandboxPlan.auditPath),
|
|
363
|
-
stderr: stderr || err.message,
|
|
387
|
+
stdout: appendSandboxAudit(named.stdout, sandboxPlan.auditPath),
|
|
388
|
+
stderr: named.stderr || err.message,
|
|
389
|
+
...(outputCopies ? { outputCopies } : {}),
|
|
364
390
|
exitCode: outcome?.exitCode ?? 1,
|
|
365
391
|
truncated: stdoutOverflow || stderrOverflow,
|
|
366
392
|
...(outcome ? { checked: outcome.checked } : {}),
|
|
@@ -377,16 +403,18 @@ export async function runShellCommand(command, cwd, signal, timeoutMs, sandboxOp
|
|
|
377
403
|
settleReject(new Error('Command cancelled'));
|
|
378
404
|
return;
|
|
379
405
|
}
|
|
406
|
+
const { outputCopies, ...named } = copied();
|
|
380
407
|
const finalStderr = timedOut
|
|
381
|
-
? (stderr ? stderr + '\nCommand timed out' : 'Command timed out')
|
|
382
|
-
: stderr;
|
|
408
|
+
? (named.stderr ? named.stderr + '\nCommand timed out' : 'Command timed out')
|
|
409
|
+
: named.stderr;
|
|
383
410
|
const exitCode = timedOut ? 124 : (code ?? (sig ? 128 : 1));
|
|
384
411
|
const outcome = coordinator?.finish(exitCode, timedOut ? 'timed_out' : cancelled ? 'cancelled' : undefined);
|
|
385
412
|
settleResolve({
|
|
386
413
|
command,
|
|
387
414
|
cwd: effectiveCwd,
|
|
388
|
-
stdout: appendSandboxAudit(stdout, sandboxPlan.auditPath),
|
|
415
|
+
stdout: appendSandboxAudit(named.stdout, sandboxPlan.auditPath),
|
|
389
416
|
stderr: finalStderr,
|
|
417
|
+
...(outputCopies ? { outputCopies } : {}),
|
|
390
418
|
exitCode: outcome?.exitCode ?? exitCode,
|
|
391
419
|
truncated: stdoutOverflow || stderrOverflow,
|
|
392
420
|
...(outcome ? { checked: outcome.checked } : {}),
|
|
@@ -399,7 +427,15 @@ function retainOutputEdges(current, chunk) {
|
|
|
399
427
|
if (output.length <= MAX_OUTPUT)
|
|
400
428
|
return output;
|
|
401
429
|
const half = Math.floor(MAX_OUTPUT / 2);
|
|
402
|
-
return `${output.slice(0, half)}
|
|
430
|
+
return `${output.slice(0, half)}${OMITTED}${output.slice(-half)}`;
|
|
431
|
+
}
|
|
432
|
+
/** Names the full copy at the cut, or keeps the plain mark when no copy was kept. */
|
|
433
|
+
function nameCopy(output, copy, recallId, stream) {
|
|
434
|
+
const path = copy?.close() ?? null;
|
|
435
|
+
const at = Math.floor(MAX_OUTPUT / 2);
|
|
436
|
+
if (!path || output.slice(at, at + OMITTED.length) !== OMITTED)
|
|
437
|
+
return { text: output };
|
|
438
|
+
return { text: `${output.slice(0, at)}\n… [output omitted; ${copyNote('output', path, recallId, stream)}; ${COPY_ADVICE}] …\n${output.slice(at + OMITTED.length)}`, path };
|
|
403
439
|
}
|
|
404
440
|
function appendSandboxAudit(stdout, auditPath) {
|
|
405
441
|
if (!auditPath) {
|
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
export declare function reserveUserSubprocessCredentials(names: readonly string[]): void;
|
|
2
|
+
/**
|
|
3
|
+
* Every variable ZTC reads a model-route credential from: each provider's
|
|
4
|
+
* standard key (PROVIDER_API_KEY_ENV), the legacy ZTC_API_KEY override, the
|
|
5
|
+
* platform and required-Router bearers, and the subscription/API credentials
|
|
6
|
+
* the Claude Code and Codex CLI backends consume.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MODEL_ROUTE_CREDENTIAL_ENV: readonly string[];
|
|
9
|
+
/**
|
|
10
|
+
* Keep the run's inference credentials in the host process. Headless runs are
|
|
11
|
+
* driven by a model with no human reviewing each command, so every tool child
|
|
12
|
+
* (run_command shells, process and command panes, run_and_capture launches,
|
|
13
|
+
* language servers, search and git helpers) loses the route credentials and
|
|
14
|
+
* any variable the config names as a provider key (`apiKeyEnv`). The parent
|
|
15
|
+
* keeps its environment; headless `ztc` panes regain them through
|
|
16
|
+
* `restoreModelRouteCredentials`, and framework children that build their own
|
|
17
|
+
* env (colony panes, CLI backends) are unaffected. Names ZTC could never read
|
|
18
|
+
* a key from are skipped rather than failing the run.
|
|
19
|
+
*/
|
|
20
|
+
export declare function reserveModelRouteCredentials(namedKeyEnv?: Readonly<Record<string, string>>): readonly string[];
|
|
21
|
+
/**
|
|
22
|
+
* Give a ZTC framework child that runs its own inference (a headless `ztc`
|
|
23
|
+
* pane: sub-agent or sim agent) back the reserved route credentials present
|
|
24
|
+
* in `source`. That child reserves them again at its own init, so its tool
|
|
25
|
+
* children stay clean. Broker tokens and the ZTC infra variables that every
|
|
26
|
+
* pane loses (ZTC_AUTH_TOKEN, ZTC_BROKER_TOKEN, ...) are never restored.
|
|
27
|
+
*/
|
|
28
|
+
export declare function restoreModelRouteCredentials(env: NodeJS.ProcessEnv, source: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
2
29
|
/** Keep pane-local control fields while removing host RPC credentials. */
|
|
3
30
|
export declare function removeUserSubprocessCredentials(source: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
4
31
|
export declare function buildUserSubprocessEnv(source?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PROVIDER_API_KEY_ENV } from '../config/provider_api_key_env.js';
|
|
1
2
|
const USER_SUBPROCESS_STRIPPED_ZTC_ENV = [
|
|
2
3
|
'ZERG_ROUTER_BASE_URL',
|
|
3
4
|
'ZTC_AUTH_TOKEN',
|
|
@@ -17,16 +18,81 @@ const USER_SUBPROCESS_STRIPPED_ZTC_ENV = [
|
|
|
17
18
|
'ZTC_PANE_RELAY',
|
|
18
19
|
'ZTC_PARENT_PID',
|
|
19
20
|
];
|
|
21
|
+
const STRIPPED_ZTC_ENV_NAMES = new Set(USER_SUBPROCESS_STRIPPED_ZTC_ENV);
|
|
20
22
|
// Host configuration reserves these names for the lifetime of this process.
|
|
21
23
|
// Removing a resource/profile must not expose its formerly inherited credential.
|
|
22
24
|
const hostCredentialEnvNames = new Set();
|
|
23
|
-
|
|
25
|
+
// Remote-resource broker tokens: no child of any kind may regain these.
|
|
26
|
+
const brokerCredentialEnvNames = new Set();
|
|
27
|
+
// Inference credentials reserved by a headless run; only ZTC framework children
|
|
28
|
+
// that infer for themselves (headless `ztc` panes) may regain them.
|
|
29
|
+
const modelRouteCredentialEnvNames = new Set();
|
|
30
|
+
const ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]{0,127}$/;
|
|
31
|
+
function reserveCredentialNames(names, kind) {
|
|
24
32
|
for (const name of names) {
|
|
25
|
-
if (typeof name !== 'string' ||
|
|
33
|
+
if (typeof name !== 'string' || !ENV_NAME.test(name))
|
|
26
34
|
throw new Error('Invalid host broker credential environment variable');
|
|
27
35
|
}
|
|
28
|
-
for (const name of names)
|
|
36
|
+
for (const name of names) {
|
|
29
37
|
hostCredentialEnvNames.add(name);
|
|
38
|
+
kind.add(name);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function reserveUserSubprocessCredentials(names) {
|
|
42
|
+
reserveCredentialNames(names, brokerCredentialEnvNames);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Every variable ZTC reads a model-route credential from: each provider's
|
|
46
|
+
* standard key (PROVIDER_API_KEY_ENV), the legacy ZTC_API_KEY override, the
|
|
47
|
+
* platform and required-Router bearers, and the subscription/API credentials
|
|
48
|
+
* the Claude Code and Codex CLI backends consume.
|
|
49
|
+
*/
|
|
50
|
+
export const MODEL_ROUTE_CREDENTIAL_ENV = Object.freeze([...new Set([
|
|
51
|
+
...Object.values(PROVIDER_API_KEY_ENV).flat(),
|
|
52
|
+
'ZTC_API_KEY',
|
|
53
|
+
'ZTC_AUTH_TOKEN',
|
|
54
|
+
'ZERG_AUTH_TOKEN',
|
|
55
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
56
|
+
'CLAUDE_CODE_OAUTH_TOKEN',
|
|
57
|
+
'CODEX_API_KEY',
|
|
58
|
+
'CODEX_ACCESS_TOKEN',
|
|
59
|
+
])]);
|
|
60
|
+
/**
|
|
61
|
+
* Keep the run's inference credentials in the host process. Headless runs are
|
|
62
|
+
* driven by a model with no human reviewing each command, so every tool child
|
|
63
|
+
* (run_command shells, process and command panes, run_and_capture launches,
|
|
64
|
+
* language servers, search and git helpers) loses the route credentials and
|
|
65
|
+
* any variable the config names as a provider key (`apiKeyEnv`). The parent
|
|
66
|
+
* keeps its environment; headless `ztc` panes regain them through
|
|
67
|
+
* `restoreModelRouteCredentials`, and framework children that build their own
|
|
68
|
+
* env (colony panes, CLI backends) are unaffected. Names ZTC could never read
|
|
69
|
+
* a key from are skipped rather than failing the run.
|
|
70
|
+
*/
|
|
71
|
+
export function reserveModelRouteCredentials(namedKeyEnv = {}) {
|
|
72
|
+
const names = [...new Set([
|
|
73
|
+
...MODEL_ROUTE_CREDENTIAL_ENV,
|
|
74
|
+
...Object.values(namedKeyEnv).filter(name => typeof name === 'string' && ENV_NAME.test(name)),
|
|
75
|
+
])];
|
|
76
|
+
reserveCredentialNames(names, modelRouteCredentialEnvNames);
|
|
77
|
+
return names;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Give a ZTC framework child that runs its own inference (a headless `ztc`
|
|
81
|
+
* pane: sub-agent or sim agent) back the reserved route credentials present
|
|
82
|
+
* in `source`. That child reserves them again at its own init, so its tool
|
|
83
|
+
* children stay clean. Broker tokens and the ZTC infra variables that every
|
|
84
|
+
* pane loses (ZTC_AUTH_TOKEN, ZTC_BROKER_TOKEN, ...) are never restored.
|
|
85
|
+
*/
|
|
86
|
+
export function restoreModelRouteCredentials(env, source) {
|
|
87
|
+
const restored = { ...env };
|
|
88
|
+
for (const name of modelRouteCredentialEnvNames) {
|
|
89
|
+
if (brokerCredentialEnvNames.has(name) || STRIPPED_ZTC_ENV_NAMES.has(name))
|
|
90
|
+
continue;
|
|
91
|
+
const value = source[name];
|
|
92
|
+
if (value !== undefined)
|
|
93
|
+
restored[name] = value;
|
|
94
|
+
}
|
|
95
|
+
return restored;
|
|
30
96
|
}
|
|
31
97
|
/** Keep pane-local control fields while removing host RPC credentials. */
|
|
32
98
|
export function removeUserSubprocessCredentials(source) {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Closes every note that names a copy. Without it a model saw the path and ran the whole command again. */
|
|
2
|
+
export declare const COPY_ADVICE = "read or grep that file instead of running the call again";
|
|
3
|
+
/** What a copy holds: a whole tool result, a command's stdout or stderr, or a failed command's combined output. */
|
|
4
|
+
export type CopyPart = 'result' | 'stdout' | 'stderr' | 'output';
|
|
5
|
+
export declare const COPY_PARTS: readonly CopyPart[];
|
|
6
|
+
/** Names a copy, and recall_tool_response when the copy belongs to a tool call. */
|
|
7
|
+
export declare function copyNote(label: string, path: string, toolUseId?: string, part?: CopyPart): string;
|
|
8
|
+
/** A copy stops growing here and says so, so a runaway command cannot fill the disk. */
|
|
9
|
+
export declare const TOOL_OUTPUT_COPY_MAX_BYTES: number;
|
|
10
|
+
export declare function canReadCopies(toolNames: Iterable<string>): boolean;
|
|
11
|
+
/** A name for a copy whose tool call has no id. */
|
|
12
|
+
export declare function unnamedCopy(): string;
|
|
13
|
+
/** Names a shortened result's copy and the call's other copies, whose own notes the shortening may have cut off. */
|
|
14
|
+
export declare function resultCopyNote(toolUseId: string, path: string): string;
|
|
15
|
+
/** Streams a copy to disk as the output arrives. */
|
|
16
|
+
export declare class ToolOutputCopy {
|
|
17
|
+
readonly path: string;
|
|
18
|
+
private readonly fd;
|
|
19
|
+
private written;
|
|
20
|
+
private failed;
|
|
21
|
+
private closed;
|
|
22
|
+
private readonly digest;
|
|
23
|
+
private constructor();
|
|
24
|
+
/** Null when the session's copy folder cannot be used; the output is then shortened with no copy. */
|
|
25
|
+
static open(folder: string, id: string, part: CopyPart): ToolOutputCopy | null;
|
|
26
|
+
write(text: string): void;
|
|
27
|
+
/** The copy's path, or null when it could not be written. Its digest is recorded beside it. */
|
|
28
|
+
close(): string | null;
|
|
29
|
+
}
|
|
30
|
+
/** Saves whole text in the session's copy folder and returns its path, or null when no copy could be kept. */
|
|
31
|
+
export declare function saveCopy(folder: string, id: string, part: CopyPart, text: string): string | null;
|
|
32
|
+
/** The path of an existing copy in the session's copy folder, or null when there is none. */
|
|
33
|
+
export declare function findCopy(folder: string, id: string, part: CopyPart): string | null;
|
|
34
|
+
/** Whether a copy still holds the bytes whose digest was recorded when it was written. */
|
|
35
|
+
export declare function copyMatchesDigest(path: string): boolean;
|
|
36
|
+
export interface CopyChunk {
|
|
37
|
+
content: string;
|
|
38
|
+
cursor: number;
|
|
39
|
+
nextCursor: number;
|
|
40
|
+
totalBytes: number;
|
|
41
|
+
complete: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** Reads up to maxBytes of a copy from a UTF-8 boundary, or null when the file is gone. */
|
|
44
|
+
export declare function readCopyChunk(path: string, cursor?: number, maxBytes?: number): CopyChunk | null;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full copies of tool output that was shortened before the model saw it (user 2026-10-26: "store the rest of the
|
|
3
|
+
* result on a file in tmp or smth with the path mentioned in the context so it can read that and check"). Copies live
|
|
4
|
+
* in the session's own private folder (ToolResponseStore.outputCopyDir), so they are deleted with the session and two
|
|
5
|
+
* sessions never share a name (PR #817 review: one shared temp folder let `tool_0` of one session read another's).
|
|
6
|
+
* Callers keep ephemeral tools' output out of here. A copy is named by its tool call and part, with its sha256 beside
|
|
7
|
+
* it; recall_tool_response reads it only while the digest matches, and writes a result's copy again from the session
|
|
8
|
+
* store when it is gone.
|
|
9
|
+
*/
|
|
10
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
11
|
+
import { closeSync, existsSync, fstatSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, writeFileSync, writeSync } from 'node:fs';
|
|
12
|
+
import { basename, dirname, join } from 'node:path';
|
|
13
|
+
/** Closes every note that names a copy. Without it a model saw the path and ran the whole command again. */
|
|
14
|
+
export const COPY_ADVICE = 'read or grep that file instead of running the call again';
|
|
15
|
+
export const COPY_PARTS = ['result', 'stdout', 'stderr', 'output'];
|
|
16
|
+
/** Names a copy, and recall_tool_response when the copy belongs to a tool call. */
|
|
17
|
+
export function copyNote(label, path, toolUseId, part = 'result') {
|
|
18
|
+
const recall = toolUseId ? ` (also recall_tool_response tool_use_id=${toolUseId}${part === 'result' ? '' : ` part=${part}`})` : '';
|
|
19
|
+
return `full ${label}: ${path}${recall}`;
|
|
20
|
+
}
|
|
21
|
+
/** A copy stops growing here and says so, so a runaway command cannot fill the disk. */
|
|
22
|
+
export const TOOL_OUTPUT_COPY_MAX_BYTES = 64 * 1024 * 1024;
|
|
23
|
+
const STOPPED = `\n[copy stopped at ${TOOL_OUTPUT_COPY_MAX_BYTES / 1024 / 1024} MB]\n`;
|
|
24
|
+
/** Tools that can read a copy, by its path or by recall. An agent with none of them keeps no copy and names none. */
|
|
25
|
+
const COPY_READERS = new Set(['recall_tool_response', 'read_file', 'run_command', 'exec_command', 'search', 'Read', 'Bash', 'Grep']);
|
|
26
|
+
export function canReadCopies(toolNames) {
|
|
27
|
+
for (const name of toolNames)
|
|
28
|
+
if (COPY_READERS.has(name))
|
|
29
|
+
return true;
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function copyFolder(dir) {
|
|
33
|
+
const uid = process.getuid?.();
|
|
34
|
+
try {
|
|
35
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
36
|
+
const info = lstatSync(dir);
|
|
37
|
+
// Another user's folder, a link or a readable folder would expose the output.
|
|
38
|
+
if (!info.isDirectory() || (uid !== undefined && info.uid !== uid) || (info.mode & 0o077) !== 0)
|
|
39
|
+
return null;
|
|
40
|
+
return dir;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function copyPath(dir, name) {
|
|
47
|
+
return join(dir, /^[A-Za-z0-9_.-]{1,180}$/.test(name) ? `${name}.txt`
|
|
48
|
+
: `${createHash('sha256').update(name).digest('hex').slice(0, 32)}.txt`);
|
|
49
|
+
}
|
|
50
|
+
/** A name for a copy whose tool call has no id. */
|
|
51
|
+
export function unnamedCopy() {
|
|
52
|
+
return `run-${randomUUID()}`;
|
|
53
|
+
}
|
|
54
|
+
const copyName = (id, part) => `${id}.${part}`;
|
|
55
|
+
/** Names a shortened result's copy and the call's other copies, whose own notes the shortening may have cut off. */
|
|
56
|
+
export function resultCopyNote(toolUseId, path) {
|
|
57
|
+
const others = ['stdout', 'stderr', 'output'].flatMap(part => {
|
|
58
|
+
const other = findCopy(dirname(path), toolUseId, part);
|
|
59
|
+
return other ? [copyNote(part === 'output' ? 'command output' : part, other, toolUseId, part)] : [];
|
|
60
|
+
});
|
|
61
|
+
return [copyNote('output', path, toolUseId), ...others].join('; ');
|
|
62
|
+
}
|
|
63
|
+
/** Streams a copy to disk as the output arrives. */
|
|
64
|
+
export class ToolOutputCopy {
|
|
65
|
+
path;
|
|
66
|
+
fd;
|
|
67
|
+
written = 0;
|
|
68
|
+
failed = false;
|
|
69
|
+
closed = false;
|
|
70
|
+
digest = createHash('sha256');
|
|
71
|
+
constructor(path, fd) {
|
|
72
|
+
this.path = path;
|
|
73
|
+
this.fd = fd;
|
|
74
|
+
}
|
|
75
|
+
/** Null when the session's copy folder cannot be used; the output is then shortened with no copy. */
|
|
76
|
+
static open(folder, id, part) {
|
|
77
|
+
const dir = copyFolder(folder);
|
|
78
|
+
if (!dir)
|
|
79
|
+
return null;
|
|
80
|
+
const path = copyPath(dir, copyName(id, part));
|
|
81
|
+
try {
|
|
82
|
+
return new ToolOutputCopy(path, openSync(path, 'w', 0o600));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
write(text) {
|
|
89
|
+
if (this.failed || this.closed || this.written >= TOOL_OUTPUT_COPY_MAX_BYTES)
|
|
90
|
+
return;
|
|
91
|
+
const bytes = Buffer.from(text, 'utf8');
|
|
92
|
+
const room = TOOL_OUTPUT_COPY_MAX_BYTES - this.written;
|
|
93
|
+
try {
|
|
94
|
+
const kept = bytes.length > room ? bytes.subarray(0, room) : bytes;
|
|
95
|
+
writeSync(this.fd, kept);
|
|
96
|
+
this.digest.update(kept);
|
|
97
|
+
this.written += kept.length;
|
|
98
|
+
if (bytes.length > room) {
|
|
99
|
+
writeSync(this.fd, STOPPED);
|
|
100
|
+
this.digest.update(STOPPED);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
this.failed = true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** The copy's path, or null when it could not be written. Its digest is recorded beside it. */
|
|
108
|
+
close() {
|
|
109
|
+
if (!this.closed) {
|
|
110
|
+
this.closed = true;
|
|
111
|
+
try {
|
|
112
|
+
closeSync(this.fd);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
this.failed = true;
|
|
116
|
+
}
|
|
117
|
+
if (!this.failed) {
|
|
118
|
+
try {
|
|
119
|
+
writeFileSync(digestPath(this.path), this.digest.digest('hex'), { mode: 0o600 });
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
this.failed = true;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return this.failed ? null : this.path;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// A result is shortened again on every request; write its copy once.
|
|
130
|
+
const saved = new Map();
|
|
131
|
+
const digestPath = (path) => join(dirname(path), `${basename(path, '.txt')}.sha256`);
|
|
132
|
+
/** Saves whole text in the session's copy folder and returns its path, or null when no copy could be kept. */
|
|
133
|
+
export function saveCopy(folder, id, part, text) {
|
|
134
|
+
const dir = copyFolder(folder);
|
|
135
|
+
if (!dir)
|
|
136
|
+
return null;
|
|
137
|
+
const path = copyPath(dir, copyName(id, part));
|
|
138
|
+
if (saved.get(path) === text.length && existsSync(path))
|
|
139
|
+
return path;
|
|
140
|
+
const copy = ToolOutputCopy.open(folder, id, part);
|
|
141
|
+
if (!copy)
|
|
142
|
+
return null;
|
|
143
|
+
copy.write(text);
|
|
144
|
+
const written = copy.close();
|
|
145
|
+
if (written)
|
|
146
|
+
saved.set(written, text.length);
|
|
147
|
+
return written;
|
|
148
|
+
}
|
|
149
|
+
/** The path of an existing copy in the session's copy folder, or null when there is none. */
|
|
150
|
+
export function findCopy(folder, id, part) {
|
|
151
|
+
const dir = copyFolder(folder);
|
|
152
|
+
if (!dir)
|
|
153
|
+
return null;
|
|
154
|
+
const path = copyPath(dir, copyName(id, part));
|
|
155
|
+
return existsSync(path) ? path : null;
|
|
156
|
+
}
|
|
157
|
+
/** Whether a copy still holds the bytes whose digest was recorded when it was written. */
|
|
158
|
+
export function copyMatchesDigest(path) {
|
|
159
|
+
try {
|
|
160
|
+
const recorded = readFileSync(digestPath(path), 'utf8').trim();
|
|
161
|
+
return /^[a-f0-9]{64}$/.test(recorded) && createHash('sha256').update(readFileSync(path)).digest('hex') === recorded;
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/** Reads up to maxBytes of a copy from a UTF-8 boundary, or null when the file is gone. */
|
|
168
|
+
export function readCopyChunk(path, cursor = 0, maxBytes = 8192) {
|
|
169
|
+
let fd;
|
|
170
|
+
try {
|
|
171
|
+
fd = openSync(path, 'r');
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
try {
|
|
177
|
+
const totalBytes = fstatSync(fd).size;
|
|
178
|
+
if (cursor > totalBytes)
|
|
179
|
+
throw new RangeError('cursor must identify a UTF-8 boundary within the source');
|
|
180
|
+
// One extra byte shows whether the cut lands inside a character.
|
|
181
|
+
const body = Buffer.alloc(Math.min(maxBytes + 1, totalBytes - cursor));
|
|
182
|
+
const read = readSync(fd, body, 0, body.length, cursor);
|
|
183
|
+
if (read > 0 && (body[0] & 0xc0) === 0x80)
|
|
184
|
+
throw new RangeError('cursor must identify a UTF-8 boundary within the source');
|
|
185
|
+
let end = Math.min(maxBytes, read);
|
|
186
|
+
while (end > 0 && end < read && (body[end] & 0xc0) === 0x80)
|
|
187
|
+
end--;
|
|
188
|
+
if (end === 0 && read > 0)
|
|
189
|
+
throw new RangeError('maxBytes cannot fit the next UTF-8 character');
|
|
190
|
+
return { content: body.subarray(0, end).toString('utf8'), cursor, nextCursor: cursor + end, totalBytes,
|
|
191
|
+
complete: cursor + end === totalBytes };
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
closeSync(fd);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -2,4 +2,11 @@ import type { Message } from '../types.js';
|
|
|
2
2
|
type MessageLike = Pick<Message, 'role' | 'content' | 'metadata'>;
|
|
3
3
|
export declare function looksLikeToolResultContent(content: string): boolean;
|
|
4
4
|
export declare function isToolResultMessage(message: MessageLike): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* A background job's output the host hands the model in a user turn. Drawn as "You" it read as if the person had
|
|
7
|
+
* typed raw JSON (2026-10-27); the person sees the job's own notice instead.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isCommandObservationMessage(message: MessageLike): boolean;
|
|
10
|
+
/** An auto-continue prompt or interrupted-turn marker the host gives the model; the person sees the host's own notice. */
|
|
11
|
+
export declare function isHostPromptMessage(message: MessageLike): boolean;
|
|
5
12
|
export {};
|
|
@@ -28,3 +28,14 @@ export function isToolResultMessage(message) {
|
|
|
28
28
|
}
|
|
29
29
|
return looksLikeToolResultContent(message.content);
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* A background job's output the host hands the model in a user turn. Drawn as "You" it read as if the person had
|
|
33
|
+
* typed raw JSON (2026-10-27); the person sees the job's own notice instead.
|
|
34
|
+
*/
|
|
35
|
+
export function isCommandObservationMessage(message) {
|
|
36
|
+
return message.role === 'user' && message.metadata?.managedCommandObservation === true;
|
|
37
|
+
}
|
|
38
|
+
/** An auto-continue prompt or interrupted-turn marker the host gives the model; the person sees the host's own notice. */
|
|
39
|
+
export function isHostPromptMessage(message) {
|
|
40
|
+
return message.role === 'user' && (message.metadata?.autoContinue === true || message.metadata?.interruptedTurn === true);
|
|
41
|
+
}
|
|
@@ -7,6 +7,19 @@ export declare function formatToolDisplayLabel(tool: string): string;
|
|
|
7
7
|
export declare function formatToolStart(tool: string, args: Record<string, unknown>, emulationId?: string): string;
|
|
8
8
|
export declare function formatToolEnd(tool: string, result: string, durationMs?: number, emulationId?: string): string;
|
|
9
9
|
export declare function formatToolError(tool: string, error: string, emulationId?: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* An image a tool produced or opened. `path` names a file to read at render
|
|
12
|
+
* time; `data` is base64 bytes that exist only in the tool result.
|
|
13
|
+
*/
|
|
14
|
+
export type ToolOutputImage = {
|
|
15
|
+
label: string;
|
|
16
|
+
path: string;
|
|
17
|
+
} | {
|
|
18
|
+
label: string;
|
|
19
|
+
mediaType: string;
|
|
20
|
+
data: string;
|
|
21
|
+
path?: string;
|
|
22
|
+
};
|
|
10
23
|
/** One call's block inside a grouped tool message body. */
|
|
11
24
|
export interface ToolOutputSection {
|
|
12
25
|
/** Tool that produced the block; drives its highlight mode. */
|
|
@@ -38,6 +51,8 @@ export interface ToolOutputMessage {
|
|
|
38
51
|
* its own tool's mode instead of the group's generic one.
|
|
39
52
|
*/
|
|
40
53
|
sections?: ToolOutputSection[];
|
|
54
|
+
/** Images the calls returned or opened, in call order. */
|
|
55
|
+
images?: ToolOutputImage[];
|
|
41
56
|
}
|
|
42
57
|
/** Represents a single tool call in a batch */
|
|
43
58
|
export interface BatchedToolCall {
|
package/dist/utils/tool_trace.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
1
2
|
import { getTraceStyle } from '../emulation/trace_style.js';
|
|
2
3
|
import { getEmulationToolMapping } from '../emulation/tool_adapters.js';
|
|
4
|
+
import { parseImageToolResult } from '../agent/tool_result_parsing.js';
|
|
3
5
|
import { DEFAULT_MESSAGE_DISPLAY, parseToolOutputLines, } from '../config/message_display.js';
|
|
4
6
|
import { displayWidth, sanitizeTerminalText } from '../ui/core/text_width.js';
|
|
5
7
|
import { formatTracePath, formatBytes, formatDuration } from './path_format.js';
|
|
8
|
+
import { failureWithoutExecutionSuffix } from '../agent/runtime/command_execution_policy.js';
|
|
6
9
|
/**
|
|
7
10
|
* Column budget for a tool body line when the caller has no terminal width.
|
|
8
11
|
* Wide enough for a normal source line, small enough that a minified bundle or
|
|
@@ -295,6 +298,12 @@ function formatOutcome(tool, result, durationMs) {
|
|
|
295
298
|
const parsed = parseResult(result);
|
|
296
299
|
const duration = typeof durationMs === 'number' ? ` in ${formatDuration(durationMs)}` : '';
|
|
297
300
|
const toolLabel = formatToolDisplayLabel(tool);
|
|
301
|
+
// Any tool can return an image (screenshot, computer, read_file, MCP). The
|
|
302
|
+
// transcript draws the image itself; the summary is its description.
|
|
303
|
+
const image = parseImageToolResult(result);
|
|
304
|
+
if (image) {
|
|
305
|
+
return `${typeof image.description === 'string' && image.description ? image.description : 'Image'}${duration}`;
|
|
306
|
+
}
|
|
298
307
|
if (!parsed) {
|
|
299
308
|
const text = String(result || '').trim();
|
|
300
309
|
if (text) {
|
|
@@ -310,6 +319,9 @@ function formatOutcome(tool, result, durationMs) {
|
|
|
310
319
|
return `Found ${count} ${label}${duration}`;
|
|
311
320
|
}
|
|
312
321
|
if (tool === 'run_command') {
|
|
322
|
+
// A background start returns at once; "done" read as if the job had finished (2026-10-27).
|
|
323
|
+
if (typeof parsed.job_id === 'string' && parsed.status === 'running')
|
|
324
|
+
return `Bash running in the background${duration}`;
|
|
313
325
|
const stdout = String(parsed.stdout || '');
|
|
314
326
|
const stderr = String(parsed.stderr || '');
|
|
315
327
|
const lines = (stdout || stderr).trim().split('\n').filter(Boolean).length;
|
|
@@ -375,8 +387,8 @@ function formatOutcome(tool, result, durationMs) {
|
|
|
375
387
|
}
|
|
376
388
|
function collectOutputLines(tool, result, maxWidth) {
|
|
377
389
|
// Image bytes belong to the tool result, never the text scrollback. The
|
|
378
|
-
//
|
|
379
|
-
if (tool === 'screenshot')
|
|
390
|
+
// outcome line carries the description and the transcript draws the image.
|
|
391
|
+
if (tool === 'screenshot' || parseImageToolResult(result))
|
|
380
392
|
return { lines: [], truncated: false };
|
|
381
393
|
const parsed = parseResult(result);
|
|
382
394
|
if (!parsed) {
|
|
@@ -549,8 +561,8 @@ export function formatToolEnd(tool, result, durationMs, emulationId) {
|
|
|
549
561
|
export function formatToolError(tool, error, emulationId) {
|
|
550
562
|
const style = getTraceStyle(emulationId);
|
|
551
563
|
const label = formatToolDisplayLabel(tool);
|
|
552
|
-
// Provide helpful error messages
|
|
553
|
-
let displayError = error;
|
|
564
|
+
// Provide helpful error messages. The execution policy is host bookkeeping; the model reads failures without it.
|
|
565
|
+
let displayError = failureWithoutExecutionSuffix(error);
|
|
554
566
|
if (error.includes('Screen Recording permission')) {
|
|
555
567
|
displayError = 'Screen Recording permission required (System Settings > Privacy & Security)';
|
|
556
568
|
}
|
|
@@ -562,6 +574,23 @@ export function formatToolError(tool, error, emulationId) {
|
|
|
562
574
|
}
|
|
563
575
|
return `< ${label} failed: ${displayError}`;
|
|
564
576
|
}
|
|
577
|
+
/**
|
|
578
|
+
* Images in one tool call's result: an image envelope from any tool, or the
|
|
579
|
+
* file opened by Codex's native image viewer (its `imageView` action).
|
|
580
|
+
*/
|
|
581
|
+
function toolOutputImages(tool, args, result) {
|
|
582
|
+
const image = parseImageToolResult(result);
|
|
583
|
+
if (image && typeof image.data === 'string' && typeof image.mediaType === 'string') {
|
|
584
|
+
const path = image.path ?? (typeof args?.path === 'string' ? args.path : '');
|
|
585
|
+
const label = path ? basename(path)
|
|
586
|
+
: typeof image.description === 'string' && image.description ? image.description : formatToolDisplayLabel(tool);
|
|
587
|
+
return [{ label, mediaType: image.mediaType, data: image.data, ...(image.path ? { path: image.path } : {}) }];
|
|
588
|
+
}
|
|
589
|
+
if (tool === 'imageView' && typeof args?.path === 'string' && args.path) {
|
|
590
|
+
return [{ label: basename(args.path), path: args.path }];
|
|
591
|
+
}
|
|
592
|
+
return [];
|
|
593
|
+
}
|
|
565
594
|
export function buildToolOutputMessage(tool, result, durationMs, emulationId, maxWidth, display = {}) {
|
|
566
595
|
const label = formatToolDisplayLabel(tool);
|
|
567
596
|
tool = getEmulationToolMapping(emulationId)?.[tool] ?? tool;
|
|
@@ -637,21 +666,23 @@ export function buildToolGroupOutput(calls, emulationId, maxWidth, display = {})
|
|
|
637
666
|
});
|
|
638
667
|
if (calls.length === 0)
|
|
639
668
|
return { tool: '', label: 'Tool', preview: '', full: '', truncated: false };
|
|
669
|
+
const images = calls.flatMap(call => call.status === 'complete' ? toolOutputImages(call.name, call.args, call.result || '') : []);
|
|
670
|
+
const withImages = (output) => images.length > 0 ? { ...output, images } : output;
|
|
640
671
|
if (calls.length === 1)
|
|
641
|
-
return { ...outputs[0], tool: calls[0].name, label: 'Tool' };
|
|
672
|
+
return withImages({ ...outputs[0], tool: calls[0].name, label: 'Tool' });
|
|
642
673
|
if (display.collapseToolCalls === false) {
|
|
643
674
|
// No sections here on purpose: this shape concatenates each call's
|
|
644
675
|
// *preview*, while `full` concatenates its expanded text, and the two have
|
|
645
676
|
// different line counts. Sections would colour the wrong lines in whichever
|
|
646
677
|
// form the user is not looking at, so the body takes the group's generic
|
|
647
678
|
// colours instead.
|
|
648
|
-
return {
|
|
679
|
+
return withImages({
|
|
649
680
|
tool: 'tool_group',
|
|
650
681
|
label: 'Tool',
|
|
651
682
|
preview: outputs.map(output => output.preview).join('\n'),
|
|
652
683
|
full: outputs.map(output => output.full).join('\n'),
|
|
653
684
|
truncated: outputs.some(output => output.truncated),
|
|
654
|
-
};
|
|
685
|
+
});
|
|
655
686
|
}
|
|
656
687
|
const names = [...new Set(calls.map(call => formatToolDisplayLabel(call.name)))];
|
|
657
688
|
const namesLabel = names.slice(0, 3).join(', ') + (names.length > 3 ? ` +${names.length - 3}` : '');
|
|
@@ -684,13 +715,13 @@ export function buildToolGroupOutput(calls, emulationId, maxWidth, display = {})
|
|
|
684
715
|
...(query ? { query } : {}),
|
|
685
716
|
};
|
|
686
717
|
});
|
|
687
|
-
return {
|
|
718
|
+
return withImages({
|
|
688
719
|
tool: 'tool_group', label: 'Tool', truncated: true,
|
|
689
720
|
headerLines: 2,
|
|
690
721
|
sections,
|
|
691
722
|
preview: `▶ ${title}\n⎿ ${status} (ctrl+o to expand)`,
|
|
692
723
|
full: [`▼ ${title}`, `⎿ ${status}`, ...fullBlocks].join('\n'),
|
|
693
|
-
};
|
|
724
|
+
});
|
|
694
725
|
}
|
|
695
726
|
/**
|
|
696
727
|
* Format a batched tool display header
|