@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.
Files changed (1166) hide show
  1. package/README.md +65 -46
  2. package/THIRD_PARTY_NOTICES.md +7 -2
  3. package/bin/zmux-darwin-arm64 +0 -0
  4. package/bin/ztc-audio-darwin-arm64 +0 -0
  5. package/bin/ztc-capture-darwin-arm64 +0 -0
  6. package/bin/ztc-computer-darwin-arm64 +0 -0
  7. package/bin/ztc-llm-darwin-arm64 +0 -0
  8. package/bin/ztc-tts-darwin-arm64 +0 -0
  9. package/bin/ztc-tui-darwin-arm64 +0 -0
  10. package/bin/zterm-darwin-arm64 +0 -0
  11. package/dist/App.js +26 -9
  12. package/dist/agent/agent.d.ts +77 -0
  13. package/dist/agent/agent.js +618 -94
  14. package/dist/agent/backends/account_login.js +3 -1
  15. package/dist/agent/backends/anthropic.js +4 -3
  16. package/dist/agent/backends/bedrock.d.ts +20 -0
  17. package/dist/agent/backends/bedrock.js +175 -0
  18. package/dist/agent/backends/claude_cli.js +8 -0
  19. package/dist/agent/backends/codex_app_server.js +2 -0
  20. package/dist/agent/backends/codex_auth.d.ts +5 -2
  21. package/dist/agent/backends/codex_auth.js +131 -31
  22. package/dist/agent/backends/gemini.js +1 -1
  23. package/dist/agent/backends/http_error.d.ts +2 -0
  24. package/dist/agent/backends/http_error.js +4 -0
  25. package/dist/agent/backends/index.d.ts +3 -0
  26. package/dist/agent/backends/index.js +16 -0
  27. package/dist/agent/backends/model_pool.d.ts +20 -0
  28. package/dist/agent/backends/model_pool.js +98 -0
  29. package/dist/agent/backends/openai.js +2 -0
  30. package/dist/agent/backends/openai_compatible.js +8 -3
  31. package/dist/agent/backends/openai_responses.d.ts +14 -3
  32. package/dist/agent/backends/openai_responses.js +91 -26
  33. package/dist/agent/backends/responses_reasoning.d.ts +5 -0
  34. package/dist/agent/backends/responses_reasoning.js +23 -0
  35. package/dist/agent/backends/transport_errors.d.ts +6 -0
  36. package/dist/agent/backends/transport_errors.js +11 -0
  37. package/dist/agent/backends/types.d.ts +25 -2
  38. package/dist/agent/backends/types.js +4 -0
  39. package/dist/agent/backends/zrouter_stream.d.ts +16 -0
  40. package/dist/agent/backends/zrouter_stream.js +162 -17
  41. package/dist/agent/background_workers.d.ts +68 -0
  42. package/dist/agent/background_workers.js +139 -0
  43. package/dist/agent/commands/accounts.d.ts +9 -1
  44. package/dist/agent/commands/accounts.js +13 -5
  45. package/dist/agent/commands/auth.d.ts +30 -1
  46. package/dist/agent/commands/auth.js +166 -35
  47. package/dist/agent/commands/command_refusal.d.ts +8 -0
  48. package/dist/agent/commands/command_refusal.js +8 -0
  49. package/dist/agent/commands/compact.js +16 -10
  50. package/dist/agent/commands/config.js +386 -80
  51. package/dist/agent/commands/connect.d.ts +20 -0
  52. package/dist/agent/commands/connect.js +150 -0
  53. package/dist/agent/commands/credential_redaction.d.ts +12 -0
  54. package/dist/agent/commands/credential_redaction.js +46 -0
  55. package/dist/agent/commands/credential_status.d.ts +72 -0
  56. package/dist/agent/commands/credential_status.js +181 -0
  57. package/dist/agent/commands/direct_credential_prompt.d.ts +71 -0
  58. package/dist/agent/commands/direct_credential_prompt.js +422 -0
  59. package/dist/agent/commands/effort.d.ts +1 -0
  60. package/dist/agent/commands/effort.js +16 -34
  61. package/dist/agent/commands/goal.d.ts +0 -4
  62. package/dist/agent/commands/goal.js +48 -10
  63. package/dist/agent/commands/handoff.d.ts +6 -0
  64. package/dist/agent/commands/handoff.js +17 -0
  65. package/dist/agent/commands/help.js +1 -1
  66. package/dist/agent/commands/inbox.js +3 -0
  67. package/dist/agent/commands/index.js +5 -3
  68. package/dist/agent/commands/keybindings.js +4 -3
  69. package/dist/agent/commands/mirror.js +29 -16
  70. package/dist/agent/commands/model.js +83 -4
  71. package/dist/agent/commands/models.d.ts +1 -1
  72. package/dist/agent/commands/models.js +89 -67
  73. package/dist/agent/commands/openai_compat_wizard.d.ts +3 -2
  74. package/dist/agent/commands/openai_compat_wizard.js +53 -15
  75. package/dist/agent/commands/provider_choices.d.ts +56 -0
  76. package/dist/agent/commands/provider_choices.js +72 -3
  77. package/dist/agent/commands/provider_model_defaults.d.ts +7 -0
  78. package/dist/agent/commands/provider_model_defaults.js +11 -0
  79. package/dist/agent/commands/provider_selection.d.ts +27 -2
  80. package/dist/agent/commands/provider_selection.js +143 -8
  81. package/dist/agent/commands/reasoning_page.d.ts +33 -0
  82. package/dist/agent/commands/reasoning_page.js +595 -0
  83. package/dist/agent/commands/reasoning_picker.d.ts +14 -0
  84. package/dist/agent/commands/reasoning_picker.js +99 -0
  85. package/dist/agent/commands/reasoning_settings.d.ts +18 -0
  86. package/dist/agent/commands/reasoning_settings.js +46 -0
  87. package/dist/agent/commands/settings.d.ts +2 -0
  88. package/dist/agent/commands/settings.js +689 -264
  89. package/dist/agent/commands/status.js +13 -44
  90. package/dist/agent/commands/types.d.ts +108 -2
  91. package/dist/agent/commands/update.d.ts +18 -0
  92. package/dist/agent/commands/update.js +55 -96
  93. package/dist/agent/completion_state.d.ts +18 -0
  94. package/dist/agent/completion_state.js +35 -3
  95. package/dist/agent/factory.d.ts +9 -1
  96. package/dist/agent/factory.js +61 -17
  97. package/dist/agent/loop_policy.d.ts +14 -0
  98. package/dist/agent/loop_policy.js +9 -0
  99. package/dist/agent/request_encoder.d.ts +6 -0
  100. package/dist/agent/request_encoder.js +36 -6
  101. package/dist/agent/result_emit_cap.d.ts +1 -0
  102. package/dist/agent/result_emit_cap.js +1 -0
  103. package/dist/agent/runaway_output.d.ts +32 -0
  104. package/dist/agent/runaway_output.js +80 -0
  105. package/dist/agent/runtime/command_execution_policy.d.ts +6 -0
  106. package/dist/agent/runtime/command_execution_policy.js +39 -0
  107. package/dist/agent/runtime/evidence.d.ts +17 -1
  108. package/dist/agent/runtime/evidence.js +58 -8
  109. package/dist/agent/runtime/execution_context.js +7 -3
  110. package/dist/agent/runtime/read_only_command.d.ts +15 -0
  111. package/dist/agent/runtime/read_only_command.js +265 -0
  112. package/dist/agent/runtime/recovery.js +2 -38
  113. package/dist/agent/runtime/source_verification.js +3 -1
  114. package/dist/agent/runtime/tool_checkpoints.js +5 -1
  115. package/dist/agent/runtime/tool_runtime.js +15 -1
  116. package/dist/agent/runtime/tool_scheduler.js +3 -1
  117. package/dist/agent/subagent.d.ts +4 -0
  118. package/dist/agent/subagent.js +195 -23
  119. package/dist/agent/system_prompt.d.ts +3 -1
  120. package/dist/agent/system_prompt.js +3 -1
  121. package/dist/agent/tool_response_store.d.ts +9 -0
  122. package/dist/agent/tool_response_store.js +39 -3
  123. package/dist/agent/tool_result_parsing.d.ts +2 -0
  124. package/dist/agent/tool_result_parsing.js +1 -0
  125. package/dist/agent/tool_result_presentation.d.ts +21 -0
  126. package/dist/agent/tool_result_presentation.js +237 -0
  127. package/dist/agent/tools/apply_patch.js +130 -42
  128. package/dist/agent/tools/deferred.js +22 -2
  129. package/dist/agent/tools/delegate.js +182 -49
  130. package/dist/agent/tools/edit_view.d.ts +13 -0
  131. package/dist/agent/tools/edit_view.js +134 -0
  132. package/dist/agent/tools/file.js +54 -16
  133. package/dist/agent/tools/recall_tool_response.d.ts +6 -0
  134. package/dist/agent/tools/recall_tool_response.js +60 -17
  135. package/dist/agent/tools/screenshot.js +5 -3
  136. package/dist/agent/tools/search.js +18 -9
  137. package/dist/agent/tools/shell.d.ts +1 -1
  138. package/dist/agent/tools/shell.js +48 -10
  139. package/dist/agent/tools/sim_domain_tools.js +7 -1
  140. package/dist/agent/tools/tool_groups.d.ts +34 -0
  141. package/dist/agent/tools/tool_groups.js +112 -0
  142. package/dist/agent/tools/types.d.ts +10 -0
  143. package/dist/app/activity.js +2 -1
  144. package/dist/app/agent_runner.js +13 -4
  145. package/dist/app/ask_user_response.d.ts +6 -0
  146. package/dist/app/ask_user_response.js +26 -0
  147. package/dist/app/command_context.js +11 -5
  148. package/dist/app/launch_notices.d.ts +10 -0
  149. package/dist/app/launch_notices.js +20 -0
  150. package/dist/app/selection_completion.d.ts +30 -1
  151. package/dist/app/selection_completion.js +191 -28
  152. package/dist/app/session_manager.d.ts +5 -0
  153. package/dist/app/session_manager.js +50 -12
  154. package/dist/app/session_messages.d.ts +3 -0
  155. package/dist/app/session_messages.js +34 -12
  156. package/dist/app/workspace_admission_details.d.ts +7 -0
  157. package/dist/app/workspace_admission_details.js +45 -1
  158. package/dist/cli_args.js +1 -1
  159. package/dist/cli_main.js +20 -3
  160. package/dist/cli_ratatui.d.ts +95 -3
  161. package/dist/cli_ratatui.js +654 -161
  162. package/dist/components/InputArea.js +1 -1
  163. package/dist/config/compaction.d.ts +2 -1
  164. package/dist/config/compaction.js +2 -1
  165. package/dist/config/defaults.js +20 -48
  166. package/dist/config/provider_api_key_env.d.ts +76 -0
  167. package/dist/config/provider_api_key_env.js +148 -0
  168. package/dist/config/resolved.d.ts +4 -4
  169. package/dist/config/types.d.ts +102 -1
  170. package/dist/config.d.ts +70 -8
  171. package/dist/config.js +253 -63
  172. package/dist/diagnostics/session_export.d.ts +1 -0
  173. package/dist/diagnostics/session_export.js +81 -13
  174. package/dist/emulation/catalog.d.ts +2 -0
  175. package/dist/emulation/catalog.js +50 -21
  176. package/dist/emulation/tool_adapters.d.ts +6 -0
  177. package/dist/emulation/tool_adapters.js +30 -0
  178. package/dist/emulation/ztc_addendum.d.ts +22 -0
  179. package/dist/emulation/ztc_addendum.js +37 -0
  180. package/dist/events.d.ts +3 -0
  181. package/dist/headless.d.ts +35 -1
  182. package/dist/headless.js +209 -14
  183. package/dist/headless_cli.js +6 -0
  184. package/dist/headless_cli_args.d.ts +4 -0
  185. package/dist/headless_cli_args.js +2 -0
  186. package/dist/headless_output_schema.d.ts +46 -0
  187. package/dist/headless_output_schema.js +386 -0
  188. package/dist/headless_trajectory.d.ts +44 -0
  189. package/dist/headless_trajectory.js +113 -0
  190. package/dist/library.d.ts +6 -3
  191. package/dist/library.js +8 -4
  192. package/dist/lsp/client.js +4 -1
  193. package/dist/lsp/servers.js +2 -0
  194. package/dist/onboarding/first_run.d.ts +26 -6
  195. package/dist/onboarding/first_run.js +63 -45
  196. package/dist/onboarding/router_tips.d.ts +7 -0
  197. package/dist/onboarding/router_tips.js +38 -0
  198. package/dist/onboarding/setup.js +1 -1
  199. package/dist/onboarding/wordmark.d.ts +7 -0
  200. package/dist/onboarding/wordmark.js +14 -0
  201. package/dist/onboarding/zergai_login.d.ts +48 -0
  202. package/dist/onboarding/zergai_login.js +60 -0
  203. package/dist/prompts/subagent_worker.j2 +20 -0
  204. package/dist/prompts/tool_delegate_task.j2 +5 -14
  205. package/dist/router_auth.d.ts +37 -3
  206. package/dist/router_auth.js +221 -73
  207. package/dist/runtime_info.d.ts +19 -6
  208. package/dist/runtime_info.js +64 -28
  209. package/dist/session.d.ts +9 -0
  210. package/dist/session.js +41 -8
  211. package/dist/session_handoff_contract.d.ts +13 -0
  212. package/dist/session_handoff_contract.js +81 -15
  213. package/dist/session_media.d.ts +5 -0
  214. package/dist/session_media.js +2 -1
  215. package/dist/simulation/domain_types.d.ts +3 -3
  216. package/dist/simulation/living/context.d.ts +9 -9
  217. package/dist/simulation/living/definition.d.ts +1 -1
  218. package/dist/simulation/living/open-world.d.ts +3 -3
  219. package/dist/simulation/living/recall.d.ts +1 -1
  220. package/dist/simulation/living/types.d.ts +18 -18
  221. package/dist/simulation/orchestration/world_response.d.ts +2 -2
  222. package/dist/simulation/toolkit/dynamic_meetings.d.ts +1 -1
  223. package/dist/simulation/toolkit/dynamic_state.d.ts +1 -1
  224. package/dist/simulation/world/bootstrap_schema.d.ts +1 -1
  225. package/dist/simulation/world/gm_schema.d.ts +8 -8
  226. package/dist/skills/loader.js +3 -1
  227. package/dist/types.d.ts +6 -2
  228. package/dist/ui/core/input.d.ts +5 -1
  229. package/dist/ui/core/input.js +5 -1
  230. package/dist/ui/core/input_segments.d.ts +5 -1
  231. package/dist/ui/core/input_segments.js +5 -3
  232. package/dist/ui/ratatui/headless_pane_manager.d.ts +3 -1
  233. package/dist/ui/ratatui/headless_pane_manager.js +16 -5
  234. package/dist/ui/ratatui/input.js +4 -3
  235. package/dist/ui/ratatui/process.js +22 -13
  236. package/dist/ui/ratatui/protocol.d.ts +14 -0
  237. package/dist/ui/ratatui/protocol.js +2 -0
  238. package/dist/ui/scrollback.d.ts +17 -0
  239. package/dist/ui/scrollback.js +138 -4
  240. package/dist/ui/terminal_image.d.ts +129 -0
  241. package/dist/ui/terminal_image.js +516 -0
  242. package/dist/ui/transcript_render_cache.d.ts +4 -4
  243. package/dist/ui/transcript_render_cache.js +7 -4
  244. package/dist/ui/views/app.d.ts +7 -3
  245. package/dist/ui/views/app.js +13 -6
  246. package/dist/ui/views/completion_menu.js +18 -10
  247. package/dist/ui/views/input_area.d.ts +1 -2
  248. package/dist/ui/views/input_area.js +2 -2
  249. package/dist/ui/views/message_list.d.ts +8 -1
  250. package/dist/ui/views/message_list.js +176 -45
  251. package/dist/ui/views/status_bar.js +7 -1
  252. package/dist/ui/views/theme.d.ts +2 -0
  253. package/dist/ui/views/theme.js +2 -0
  254. package/dist/ui/widgets/color_panel.js +4 -3
  255. package/dist/ui/widgets/form.d.ts +8 -1
  256. package/dist/ui/widgets/form.js +36 -22
  257. package/dist/ui/widgets/index.d.ts +1 -1
  258. package/dist/ui/widgets/index.js +1 -1
  259. package/dist/ui/widgets/log_view.js +4 -3
  260. package/dist/ui/widgets/navigator_panel.js +5 -4
  261. package/dist/ui/widgets/panel_frame.d.ts +2 -0
  262. package/dist/ui/widgets/panel_frame.js +14 -0
  263. package/dist/ui/widgets/prompt_viewer.js +2 -1
  264. package/dist/ui/widgets/questionnaire.js +3 -3
  265. package/dist/ui/widgets/reasoning_track.d.ts +60 -0
  266. package/dist/ui/widgets/reasoning_track.js +218 -0
  267. package/dist/ui/widgets/resume_panel.js +15 -10
  268. package/dist/ui/widgets/rewind_panel.js +4 -16
  269. package/dist/ui/widgets/select.d.ts +90 -4
  270. package/dist/ui/widgets/select.js +305 -135
  271. package/dist/ui/widgets/settings_panel.d.ts +21 -1
  272. package/dist/ui/widgets/settings_panel.js +266 -45
  273. package/dist/ui/widgets/status_line_panel.js +6 -5
  274. package/dist/ui/widgets/text_input.d.ts +4 -0
  275. package/dist/ui/widgets/text_input.js +20 -13
  276. package/dist/ui/widgets/types.d.ts +2 -0
  277. package/dist/utils/compaction.d.ts +24 -4
  278. package/dist/utils/compaction.js +228 -44
  279. package/dist/utils/context.js +1 -0
  280. package/dist/utils/debug_log.d.ts +12 -0
  281. package/dist/utils/debug_log.js +25 -3
  282. package/dist/utils/deepseek.d.ts +3 -1
  283. package/dist/utils/deepseek.js +29 -1
  284. package/dist/utils/docker_target.d.ts +28 -0
  285. package/dist/utils/docker_target.js +89 -0
  286. package/dist/utils/ephemeral.js +2 -0
  287. package/dist/utils/fireworks.d.ts +4 -4
  288. package/dist/utils/fireworks.js +11 -7
  289. package/dist/utils/idle_compaction.d.ts +32 -0
  290. package/dist/utils/idle_compaction.js +113 -0
  291. package/dist/utils/mid_turn_compaction.d.ts +12 -0
  292. package/dist/utils/mid_turn_compaction.js +17 -0
  293. package/dist/utils/open_url.d.ts +4 -0
  294. package/dist/utils/open_url.js +10 -0
  295. package/dist/utils/openrouter_prices.d.ts +165 -0
  296. package/dist/utils/openrouter_prices.js +313 -0
  297. package/dist/utils/router_catalog.d.ts +13 -0
  298. package/dist/utils/router_catalog.js +30 -3
  299. package/dist/utils/sandbox.d.ts +12 -0
  300. package/dist/utils/sandbox.js +23 -5
  301. package/dist/utils/session_interactivity.d.ts +21 -0
  302. package/dist/utils/session_interactivity.js +28 -0
  303. package/dist/utils/shell.d.ts +7 -0
  304. package/dist/utils/shell.js +43 -7
  305. package/dist/utils/subprocess_env.d.ts +27 -0
  306. package/dist/utils/subprocess_env.js +69 -3
  307. package/dist/utils/tool_output_copies.d.ts +44 -0
  308. package/dist/utils/tool_output_copies.js +196 -0
  309. package/dist/utils/tool_result_message.d.ts +7 -0
  310. package/dist/utils/tool_result_message.js +11 -0
  311. package/dist/utils/tool_trace.d.ts +15 -0
  312. package/dist/utils/tool_trace.js +40 -9
  313. package/dist/web/event_history_store.d.ts +2 -0
  314. package/dist/web/event_history_store.js +31 -6
  315. package/dist/web/mirror_client.d.ts +3 -0
  316. package/dist/web/mirror_stream.d.ts +11 -0
  317. package/dist/web/mirror_stream.js +23 -3
  318. package/dist/worker/executor.js +3 -1
  319. package/dist/worker/toolsets.d.ts +1 -1
  320. package/dist/worker/toolsets.js +4 -3
  321. package/dist/worker/types.d.ts +6 -0
  322. package/dist/worker/worker_models.d.ts +17 -0
  323. package/dist/worker/worker_models.js +79 -0
  324. package/dist/zlm-embed.mjs +53761 -10916
  325. package/node_modules/@zerg/model-contracts/README.md +16 -5
  326. package/node_modules/@zerg/model-contracts/index.d.ts +7 -3
  327. package/node_modules/@zerg/model-contracts/index.js +40 -18
  328. package/node_modules/abort-controller/LICENSE +21 -0
  329. package/node_modules/abort-controller/README.md +98 -0
  330. package/node_modules/abort-controller/browser.js +13 -0
  331. package/node_modules/abort-controller/browser.mjs +11 -0
  332. package/node_modules/abort-controller/dist/abort-controller.d.ts +43 -0
  333. package/node_modules/abort-controller/dist/abort-controller.js +127 -0
  334. package/node_modules/abort-controller/dist/abort-controller.js.map +1 -0
  335. package/node_modules/abort-controller/dist/abort-controller.mjs +118 -0
  336. package/node_modules/abort-controller/dist/abort-controller.mjs.map +1 -0
  337. package/node_modules/abort-controller/dist/abort-controller.umd.js +5 -0
  338. package/node_modules/abort-controller/dist/abort-controller.umd.js.map +1 -0
  339. package/node_modules/abort-controller/package.json +97 -0
  340. package/node_modules/abort-controller/polyfill.js +21 -0
  341. package/node_modules/abort-controller/polyfill.mjs +19 -0
  342. package/node_modules/bluebird/LICENSE +1 -1
  343. package/node_modules/bluebird/README.md +8 -2
  344. package/node_modules/bluebird/js/browser/bluebird.core.js +325 -150
  345. package/node_modules/bluebird/js/browser/bluebird.core.min.js +4 -4
  346. package/node_modules/bluebird/js/browser/bluebird.js +362 -165
  347. package/node_modules/bluebird/js/browser/bluebird.min.js +5 -5
  348. package/node_modules/bluebird/js/release/async.js +15 -56
  349. package/node_modules/bluebird/js/release/debuggability.js +118 -25
  350. package/node_modules/bluebird/js/release/finally.js +37 -2
  351. package/node_modules/bluebird/js/release/generators.js +1 -1
  352. package/node_modules/bluebird/js/release/join.js +4 -7
  353. package/node_modules/bluebird/js/release/map.js +10 -3
  354. package/node_modules/bluebird/js/release/promise.js +89 -43
  355. package/node_modules/bluebird/js/release/promise_array.js +2 -0
  356. package/node_modules/bluebird/js/release/props.js +1 -1
  357. package/node_modules/bluebird/js/release/reduce.js +16 -5
  358. package/node_modules/bluebird/js/release/schedule.js +6 -5
  359. package/node_modules/bluebird/js/release/settle.js +4 -0
  360. package/node_modules/bluebird/js/release/util.js +53 -11
  361. package/node_modules/bluebird/package.json +7 -5
  362. package/node_modules/buffer/AUTHORS.md +3 -0
  363. package/node_modules/buffer/README.md +1 -1
  364. package/node_modules/buffer/index.d.ts +11 -3
  365. package/node_modules/buffer/index.js +424 -135
  366. package/node_modules/buffer/package.json +8 -11
  367. package/node_modules/compress-commons/README.md +1 -1
  368. package/node_modules/compress-commons/lib/archivers/archive-entry.js +6 -16
  369. package/node_modules/compress-commons/lib/archivers/archive-output-stream.js +79 -98
  370. package/node_modules/compress-commons/lib/archivers/zip/constants.js +99 -70
  371. package/node_modules/compress-commons/lib/archivers/zip/general-purpose-bit.js +70 -92
  372. package/node_modules/compress-commons/lib/archivers/zip/unix-stat.js +19 -53
  373. package/node_modules/compress-commons/lib/archivers/zip/util.js +49 -49
  374. package/node_modules/compress-commons/lib/archivers/zip/zip-archive-entry.js +356 -389
  375. package/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js +335 -404
  376. package/node_modules/compress-commons/lib/compress-commons.js +18 -13
  377. package/node_modules/compress-commons/lib/util/index.js +11 -21
  378. package/node_modules/compress-commons/node_modules/readable-stream/README.md +116 -0
  379. package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
  380. package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
  381. package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_readable.js +4 -0
  382. package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_transform.js +4 -0
  383. package/node_modules/compress-commons/node_modules/readable-stream/lib/_stream_writable.js +4 -0
  384. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
  385. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
  386. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
  387. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
  388. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
  389. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
  390. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
  391. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
  392. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
  393. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
  394. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
  395. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
  396. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
  397. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
  398. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
  399. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
  400. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
  401. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
  402. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
  403. package/node_modules/compress-commons/node_modules/readable-stream/lib/internal/validators.js +530 -0
  404. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/browser.js +35 -0
  405. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/errors.js +343 -0
  406. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/index.js +65 -0
  407. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/primordials.js +124 -0
  408. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
  409. package/node_modules/compress-commons/node_modules/readable-stream/lib/ours/util.js +148 -0
  410. package/node_modules/compress-commons/node_modules/readable-stream/lib/stream/promises.js +43 -0
  411. package/node_modules/compress-commons/node_modules/readable-stream/lib/stream.js +143 -0
  412. package/node_modules/compress-commons/node_modules/readable-stream/package.json +89 -0
  413. package/node_modules/compress-commons/package.json +13 -10
  414. package/node_modules/crc32-stream/README.md +8 -8
  415. package/node_modules/crc32-stream/lib/crc32-stream.js +4 -23
  416. package/node_modules/crc32-stream/lib/deflate-crc32-stream.js +5 -27
  417. package/node_modules/crc32-stream/lib/index.js +7 -6
  418. package/node_modules/crc32-stream/node_modules/readable-stream/README.md +116 -0
  419. package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
  420. package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
  421. package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_readable.js +4 -0
  422. package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_transform.js +4 -0
  423. package/node_modules/crc32-stream/node_modules/readable-stream/lib/_stream_writable.js +4 -0
  424. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
  425. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
  426. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
  427. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
  428. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
  429. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
  430. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
  431. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
  432. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
  433. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
  434. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
  435. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
  436. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
  437. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
  438. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
  439. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
  440. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
  441. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
  442. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
  443. package/node_modules/crc32-stream/node_modules/readable-stream/lib/internal/validators.js +530 -0
  444. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/browser.js +35 -0
  445. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/errors.js +343 -0
  446. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/index.js +65 -0
  447. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/primordials.js +124 -0
  448. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
  449. package/node_modules/crc32-stream/node_modules/readable-stream/lib/ours/util.js +148 -0
  450. package/node_modules/crc32-stream/node_modules/readable-stream/lib/stream/promises.js +43 -0
  451. package/node_modules/crc32-stream/node_modules/readable-stream/lib/stream.js +143 -0
  452. package/node_modules/crc32-stream/node_modules/readable-stream/package.json +89 -0
  453. package/node_modules/crc32-stream/package.json +9 -10
  454. package/node_modules/event-target-shim/LICENSE +22 -0
  455. package/node_modules/event-target-shim/README.md +293 -0
  456. package/node_modules/event-target-shim/dist/event-target-shim.js +871 -0
  457. package/node_modules/event-target-shim/dist/event-target-shim.js.map +1 -0
  458. package/node_modules/event-target-shim/dist/event-target-shim.mjs +862 -0
  459. package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +1 -0
  460. package/node_modules/event-target-shim/dist/event-target-shim.umd.js +6 -0
  461. package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +1 -0
  462. package/node_modules/event-target-shim/index.d.ts +399 -0
  463. package/node_modules/event-target-shim/package.json +82 -0
  464. package/node_modules/events/.airtap.yml +15 -0
  465. package/node_modules/events/.github/FUNDING.yml +12 -0
  466. package/node_modules/events/.travis.yml +18 -0
  467. package/node_modules/events/History.md +118 -0
  468. package/node_modules/events/LICENSE +22 -0
  469. package/node_modules/events/Readme.md +50 -0
  470. package/node_modules/events/events.js +497 -0
  471. package/node_modules/events/package.json +37 -0
  472. package/node_modules/events/security.md +10 -0
  473. package/node_modules/events/tests/add-listeners.js +111 -0
  474. package/node_modules/events/tests/check-listener-leaks.js +101 -0
  475. package/node_modules/events/tests/common.js +104 -0
  476. package/node_modules/events/tests/errors.js +13 -0
  477. package/node_modules/events/tests/events-list.js +28 -0
  478. package/node_modules/events/tests/events-once.js +234 -0
  479. package/node_modules/events/tests/index.js +64 -0
  480. package/node_modules/events/tests/legacy-compat.js +16 -0
  481. package/node_modules/events/tests/listener-count.js +37 -0
  482. package/node_modules/events/tests/listeners-side-effects.js +56 -0
  483. package/node_modules/events/tests/listeners.js +168 -0
  484. package/node_modules/events/tests/max-listeners.js +47 -0
  485. package/node_modules/events/tests/method-names.js +35 -0
  486. package/node_modules/events/tests/modify-in-emit.js +90 -0
  487. package/node_modules/events/tests/num-args.js +60 -0
  488. package/node_modules/events/tests/once.js +83 -0
  489. package/node_modules/events/tests/prepend.js +31 -0
  490. package/node_modules/events/tests/remove-all-listeners.js +133 -0
  491. package/node_modules/events/tests/remove-listeners.js +212 -0
  492. package/node_modules/events/tests/set-max-listeners-side-effects.js +31 -0
  493. package/node_modules/events/tests/special-event-names.js +45 -0
  494. package/node_modules/events/tests/subclass.js +66 -0
  495. package/node_modules/events/tests/symbols.js +25 -0
  496. package/node_modules/exceljs/lib/stream/xlsx/workbook-reader.js +5 -1
  497. package/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js +2 -2
  498. package/node_modules/exceljs/lib/utils/zip-archive.js +85 -0
  499. package/node_modules/exceljs/package.json +3 -3
  500. package/node_modules/fs-extra/LICENSE +15 -0
  501. package/node_modules/fs-extra/README.md +294 -0
  502. package/node_modules/fs-extra/lib/copy/copy-sync.js +171 -0
  503. package/node_modules/fs-extra/lib/copy/copy.js +182 -0
  504. package/node_modules/fs-extra/lib/copy/index.js +7 -0
  505. package/node_modules/fs-extra/lib/empty/index.js +39 -0
  506. package/node_modules/fs-extra/lib/ensure/file.js +66 -0
  507. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  508. package/node_modules/fs-extra/lib/ensure/link.js +64 -0
  509. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +101 -0
  510. package/node_modules/fs-extra/lib/ensure/symlink-type.js +34 -0
  511. package/node_modules/fs-extra/lib/ensure/symlink.js +67 -0
  512. package/node_modules/fs-extra/lib/esm.mjs +68 -0
  513. package/node_modules/fs-extra/lib/fs/index.js +146 -0
  514. package/node_modules/fs-extra/lib/index.js +16 -0
  515. package/node_modules/fs-extra/lib/json/index.js +16 -0
  516. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  517. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  518. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  519. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  520. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  521. package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  522. package/node_modules/fs-extra/lib/move/index.js +7 -0
  523. package/node_modules/fs-extra/lib/move/move-sync.js +55 -0
  524. package/node_modules/fs-extra/lib/move/move.js +59 -0
  525. package/node_modules/fs-extra/lib/output-file/index.js +31 -0
  526. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  527. package/node_modules/fs-extra/lib/remove/index.js +17 -0
  528. package/node_modules/fs-extra/lib/util/stat.js +159 -0
  529. package/node_modules/fs-extra/lib/util/utimes.js +36 -0
  530. package/node_modules/fs-extra/package.json +71 -0
  531. package/node_modules/is-stream/index.d.ts +90 -0
  532. package/node_modules/is-stream/index.js +37 -0
  533. package/node_modules/is-stream/license +9 -0
  534. package/node_modules/is-stream/package.json +48 -0
  535. package/node_modules/is-stream/readme.md +57 -0
  536. package/node_modules/jsonfile/LICENSE +15 -0
  537. package/node_modules/jsonfile/README.md +230 -0
  538. package/node_modules/jsonfile/index.js +88 -0
  539. package/node_modules/jsonfile/package.json +40 -0
  540. package/node_modules/jsonfile/utils.js +18 -0
  541. package/node_modules/node-int64/.npmignore +3 -0
  542. package/node_modules/node-int64/Int64.js +268 -0
  543. package/node_modules/node-int64/LICENSE +19 -0
  544. package/node_modules/node-int64/README.md +78 -0
  545. package/node_modules/node-int64/package.json +27 -0
  546. package/node_modules/node-int64/test.js +120 -0
  547. package/node_modules/process/.eslintrc +21 -0
  548. package/node_modules/process/LICENSE +22 -0
  549. package/node_modules/process/README.md +26 -0
  550. package/node_modules/process/browser.js +184 -0
  551. package/node_modules/process/index.js +2 -0
  552. package/node_modules/process/package.json +27 -0
  553. package/node_modules/process/test.js +199 -0
  554. package/node_modules/universalify/LICENSE +20 -0
  555. package/node_modules/universalify/README.md +76 -0
  556. package/node_modules/universalify/index.js +24 -0
  557. package/node_modules/universalify/package.json +34 -0
  558. package/node_modules/unzipper/README.md +206 -176
  559. package/node_modules/unzipper/eslint.config.mjs +29 -0
  560. package/node_modules/unzipper/lib/BufferStream.js +9 -15
  561. package/node_modules/unzipper/lib/Decrypt.js +58 -36
  562. package/node_modules/unzipper/lib/NoopStream.js +5 -10
  563. package/node_modules/unzipper/lib/Open/directory.js +140 -127
  564. package/node_modules/unzipper/lib/Open/index.js +72 -32
  565. package/node_modules/unzipper/lib/Open/unzip.js +68 -74
  566. package/node_modules/unzipper/lib/PullStream.js +50 -55
  567. package/node_modules/unzipper/lib/extract.js +26 -18
  568. package/node_modules/unzipper/lib/parse.js +119 -118
  569. package/node_modules/unzipper/lib/parseBuffer.js +55 -0
  570. package/node_modules/unzipper/lib/parseExtraField.js +17 -14
  571. package/node_modules/unzipper/lib/parseOne.js +23 -27
  572. package/node_modules/unzipper/package.json +12 -13
  573. package/node_modules/unzipper/unzip.js +0 -6
  574. package/node_modules/zip-stream/README.md +5 -5
  575. package/node_modules/zip-stream/index.js +143 -169
  576. package/node_modules/zip-stream/node_modules/readable-stream/README.md +116 -0
  577. package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_duplex.js +4 -0
  578. package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_passthrough.js +4 -0
  579. package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_readable.js +4 -0
  580. package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_transform.js +4 -0
  581. package/node_modules/zip-stream/node_modules/readable-stream/lib/_stream_writable.js +4 -0
  582. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
  583. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +52 -0
  584. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +157 -0
  585. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/compose.js +194 -0
  586. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +290 -0
  587. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/duplex.js +143 -0
  588. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/duplexify.js +378 -0
  589. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +286 -0
  590. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/from.js +98 -0
  591. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +51 -0
  592. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/legacy.js +94 -0
  593. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/operators.js +457 -0
  594. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/passthrough.js +39 -0
  595. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +471 -0
  596. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/readable.js +1290 -0
  597. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/state.js +39 -0
  598. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/transform.js +180 -0
  599. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/utils.js +327 -0
  600. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/streams/writable.js +819 -0
  601. package/node_modules/zip-stream/node_modules/readable-stream/lib/internal/validators.js +530 -0
  602. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/browser.js +35 -0
  603. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/errors.js +343 -0
  604. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/index.js +65 -0
  605. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/primordials.js +124 -0
  606. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/util/inspect.js +55 -0
  607. package/node_modules/zip-stream/node_modules/readable-stream/lib/ours/util.js +148 -0
  608. package/node_modules/zip-stream/node_modules/readable-stream/lib/stream/promises.js +43 -0
  609. package/node_modules/zip-stream/node_modules/readable-stream/lib/stream.js +143 -0
  610. package/node_modules/zip-stream/node_modules/readable-stream/package.json +89 -0
  611. package/node_modules/zip-stream/package.json +15 -12
  612. package/node_modules/zip-stream/utils.js +21 -0
  613. package/package.json +22 -10
  614. package/packages/exceljs/PROVENANCE.md +24 -1
  615. package/packages/exceljs/lib/stream/xlsx/workbook-reader.js +5 -1
  616. package/packages/exceljs/lib/stream/xlsx/workbook-writer.js +2 -2
  617. package/packages/exceljs/lib/utils/zip-archive.js +85 -0
  618. package/packages/exceljs/package.json +3 -3
  619. package/packages/model-contracts/README.md +16 -5
  620. package/packages/model-contracts/index.d.ts +7 -3
  621. package/packages/model-contracts/index.js +40 -18
  622. package/scripts/install-macos-app.mjs +10 -1
  623. package/node_modules/archiver/LICENSE +0 -22
  624. package/node_modules/archiver/README.md +0 -94
  625. package/node_modules/archiver/index.js +0 -84
  626. package/node_modules/archiver/lib/core.js +0 -974
  627. package/node_modules/archiver/lib/error.js +0 -40
  628. package/node_modules/archiver/lib/plugins/json.js +0 -110
  629. package/node_modules/archiver/lib/plugins/tar.js +0 -167
  630. package/node_modules/archiver/lib/plugins/zip.js +0 -120
  631. package/node_modules/archiver/package.json +0 -60
  632. package/node_modules/archiver-utils/LICENSE +0 -22
  633. package/node_modules/archiver-utils/README.md +0 -7
  634. package/node_modules/archiver-utils/file.js +0 -209
  635. package/node_modules/archiver-utils/index.js +0 -156
  636. package/node_modules/archiver-utils/node_modules/readable-stream/.travis.yml +0 -34
  637. package/node_modules/archiver-utils/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  638. package/node_modules/archiver-utils/node_modules/readable-stream/GOVERNANCE.md +0 -136
  639. package/node_modules/archiver-utils/node_modules/readable-stream/README.md +0 -58
  640. package/node_modules/archiver-utils/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  641. package/node_modules/archiver-utils/node_modules/readable-stream/duplex-browser.js +0 -1
  642. package/node_modules/archiver-utils/node_modules/readable-stream/duplex.js +0 -1
  643. package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  644. package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  645. package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  646. package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  647. package/node_modules/archiver-utils/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  648. package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  649. package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  650. package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  651. package/node_modules/archiver-utils/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  652. package/node_modules/archiver-utils/node_modules/readable-stream/package.json +0 -52
  653. package/node_modules/archiver-utils/node_modules/readable-stream/passthrough.js +0 -1
  654. package/node_modules/archiver-utils/node_modules/readable-stream/readable-browser.js +0 -7
  655. package/node_modules/archiver-utils/node_modules/readable-stream/readable.js +0 -19
  656. package/node_modules/archiver-utils/node_modules/readable-stream/transform.js +0 -1
  657. package/node_modules/archiver-utils/node_modules/readable-stream/writable-browser.js +0 -1
  658. package/node_modules/archiver-utils/node_modules/readable-stream/writable.js +0 -8
  659. package/node_modules/archiver-utils/node_modules/safe-buffer/LICENSE +0 -21
  660. package/node_modules/archiver-utils/node_modules/safe-buffer/README.md +0 -584
  661. package/node_modules/archiver-utils/node_modules/safe-buffer/index.d.ts +0 -187
  662. package/node_modules/archiver-utils/node_modules/safe-buffer/index.js +0 -62
  663. package/node_modules/archiver-utils/node_modules/safe-buffer/package.json +0 -37
  664. package/node_modules/archiver-utils/node_modules/string_decoder/.travis.yml +0 -50
  665. package/node_modules/archiver-utils/node_modules/string_decoder/LICENSE +0 -48
  666. package/node_modules/archiver-utils/node_modules/string_decoder/README.md +0 -47
  667. package/node_modules/archiver-utils/node_modules/string_decoder/lib/string_decoder.js +0 -296
  668. package/node_modules/archiver-utils/node_modules/string_decoder/package.json +0 -31
  669. package/node_modules/archiver-utils/package.json +0 -54
  670. package/node_modules/async/CHANGELOG.md +0 -351
  671. package/node_modules/async/LICENSE +0 -19
  672. package/node_modules/async/README.md +0 -59
  673. package/node_modules/async/all.js +0 -119
  674. package/node_modules/async/allLimit.js +0 -46
  675. package/node_modules/async/allSeries.js +0 -45
  676. package/node_modules/async/any.js +0 -122
  677. package/node_modules/async/anyLimit.js +0 -47
  678. package/node_modules/async/anySeries.js +0 -46
  679. package/node_modules/async/apply.js +0 -11
  680. package/node_modules/async/applyEach.js +0 -57
  681. package/node_modules/async/applyEachSeries.js +0 -37
  682. package/node_modules/async/asyncify.js +0 -118
  683. package/node_modules/async/auto.js +0 -333
  684. package/node_modules/async/autoInject.js +0 -182
  685. package/node_modules/async/bower.json +0 -17
  686. package/node_modules/async/cargo.js +0 -63
  687. package/node_modules/async/cargoQueue.js +0 -71
  688. package/node_modules/async/compose.js +0 -55
  689. package/node_modules/async/concat.js +0 -115
  690. package/node_modules/async/concatLimit.js +0 -60
  691. package/node_modules/async/concatSeries.js +0 -41
  692. package/node_modules/async/constant.js +0 -14
  693. package/node_modules/async/detect.js +0 -96
  694. package/node_modules/async/detectLimit.js +0 -48
  695. package/node_modules/async/detectSeries.js +0 -47
  696. package/node_modules/async/dir.js +0 -43
  697. package/node_modules/async/dist/async.js +0 -6061
  698. package/node_modules/async/dist/async.min.js +0 -1
  699. package/node_modules/async/dist/async.mjs +0 -5948
  700. package/node_modules/async/doDuring.js +0 -68
  701. package/node_modules/async/doUntil.js +0 -46
  702. package/node_modules/async/doWhilst.js +0 -68
  703. package/node_modules/async/during.js +0 -78
  704. package/node_modules/async/each.js +0 -129
  705. package/node_modules/async/eachLimit.js +0 -50
  706. package/node_modules/async/eachOf.js +0 -185
  707. package/node_modules/async/eachOfLimit.js +0 -47
  708. package/node_modules/async/eachOfSeries.js +0 -39
  709. package/node_modules/async/eachSeries.js +0 -44
  710. package/node_modules/async/ensureAsync.js +0 -67
  711. package/node_modules/async/every.js +0 -119
  712. package/node_modules/async/everyLimit.js +0 -46
  713. package/node_modules/async/everySeries.js +0 -45
  714. package/node_modules/async/filter.js +0 -93
  715. package/node_modules/async/filterLimit.js +0 -45
  716. package/node_modules/async/filterSeries.js +0 -43
  717. package/node_modules/async/find.js +0 -96
  718. package/node_modules/async/findLimit.js +0 -48
  719. package/node_modules/async/findSeries.js +0 -47
  720. package/node_modules/async/flatMap.js +0 -115
  721. package/node_modules/async/flatMapLimit.js +0 -60
  722. package/node_modules/async/flatMapSeries.js +0 -41
  723. package/node_modules/async/foldl.js +0 -153
  724. package/node_modules/async/foldr.js +0 -41
  725. package/node_modules/async/forEach.js +0 -129
  726. package/node_modules/async/forEachLimit.js +0 -50
  727. package/node_modules/async/forEachOf.js +0 -185
  728. package/node_modules/async/forEachOfLimit.js +0 -47
  729. package/node_modules/async/forEachOfSeries.js +0 -39
  730. package/node_modules/async/forEachSeries.js +0 -44
  731. package/node_modules/async/forever.js +0 -68
  732. package/node_modules/async/groupBy.js +0 -108
  733. package/node_modules/async/groupByLimit.js +0 -71
  734. package/node_modules/async/groupBySeries.js +0 -36
  735. package/node_modules/async/index.js +0 -588
  736. package/node_modules/async/inject.js +0 -153
  737. package/node_modules/async/internal/DoublyLinkedList.js +0 -92
  738. package/node_modules/async/internal/Heap.js +0 -120
  739. package/node_modules/async/internal/applyEach.js +0 -29
  740. package/node_modules/async/internal/asyncEachOfLimit.js +0 -75
  741. package/node_modules/async/internal/awaitify.js +0 -28
  742. package/node_modules/async/internal/breakLoop.js +0 -10
  743. package/node_modules/async/internal/consoleFunc.js +0 -31
  744. package/node_modules/async/internal/createTester.js +0 -40
  745. package/node_modules/async/internal/eachOfLimit.js +0 -90
  746. package/node_modules/async/internal/filter.js +0 -55
  747. package/node_modules/async/internal/getIterator.js +0 -11
  748. package/node_modules/async/internal/initialParams.js +0 -14
  749. package/node_modules/async/internal/isArrayLike.js +0 -10
  750. package/node_modules/async/internal/iterator.js +0 -57
  751. package/node_modules/async/internal/map.js +0 -30
  752. package/node_modules/async/internal/once.js +0 -17
  753. package/node_modules/async/internal/onlyOnce.js +0 -15
  754. package/node_modules/async/internal/parallel.js +0 -34
  755. package/node_modules/async/internal/promiseCallback.js +0 -23
  756. package/node_modules/async/internal/queue.js +0 -294
  757. package/node_modules/async/internal/range.js +0 -14
  758. package/node_modules/async/internal/reject.js +0 -26
  759. package/node_modules/async/internal/setImmediate.js +0 -34
  760. package/node_modules/async/internal/withoutIndex.js +0 -10
  761. package/node_modules/async/internal/wrapAsync.js +0 -34
  762. package/node_modules/async/log.js +0 -41
  763. package/node_modules/async/map.js +0 -142
  764. package/node_modules/async/mapLimit.js +0 -45
  765. package/node_modules/async/mapSeries.js +0 -44
  766. package/node_modules/async/mapValues.js +0 -152
  767. package/node_modules/async/mapValuesLimit.js +0 -61
  768. package/node_modules/async/mapValuesSeries.js +0 -37
  769. package/node_modules/async/memoize.js +0 -91
  770. package/node_modules/async/nextTick.js +0 -52
  771. package/node_modules/async/package.json +0 -75
  772. package/node_modules/async/parallel.js +0 -180
  773. package/node_modules/async/parallelLimit.js +0 -41
  774. package/node_modules/async/priorityQueue.js +0 -60
  775. package/node_modules/async/queue.js +0 -24
  776. package/node_modules/async/race.js +0 -67
  777. package/node_modules/async/reduce.js +0 -153
  778. package/node_modules/async/reduceRight.js +0 -41
  779. package/node_modules/async/reflect.js +0 -78
  780. package/node_modules/async/reflectAll.js +0 -93
  781. package/node_modules/async/reject.js +0 -87
  782. package/node_modules/async/rejectLimit.js +0 -45
  783. package/node_modules/async/rejectSeries.js +0 -43
  784. package/node_modules/async/retry.js +0 -159
  785. package/node_modules/async/retryable.js +0 -77
  786. package/node_modules/async/select.js +0 -93
  787. package/node_modules/async/selectLimit.js +0 -45
  788. package/node_modules/async/selectSeries.js +0 -43
  789. package/node_modules/async/seq.js +0 -79
  790. package/node_modules/async/series.js +0 -186
  791. package/node_modules/async/setImmediate.js +0 -45
  792. package/node_modules/async/some.js +0 -122
  793. package/node_modules/async/someLimit.js +0 -47
  794. package/node_modules/async/someSeries.js +0 -46
  795. package/node_modules/async/sortBy.js +0 -190
  796. package/node_modules/async/timeout.js +0 -89
  797. package/node_modules/async/times.js +0 -50
  798. package/node_modules/async/timesLimit.js +0 -43
  799. package/node_modules/async/timesSeries.js +0 -32
  800. package/node_modules/async/transform.js +0 -173
  801. package/node_modules/async/tryEach.js +0 -78
  802. package/node_modules/async/unmemoize.js +0 -25
  803. package/node_modules/async/until.js +0 -61
  804. package/node_modules/async/waterfall.js +0 -105
  805. package/node_modules/async/whilst.js +0 -78
  806. package/node_modules/async/wrapSync.js +0 -118
  807. package/node_modules/big-integer/BigInteger.d.ts +0 -2393
  808. package/node_modules/big-integer/BigInteger.js +0 -1453
  809. package/node_modules/big-integer/BigInteger.min.js +0 -1
  810. package/node_modules/big-integer/LICENSE +0 -24
  811. package/node_modules/big-integer/README.md +0 -589
  812. package/node_modules/big-integer/bower.json +0 -29
  813. package/node_modules/big-integer/package.json +0 -48
  814. package/node_modules/big-integer/tsconfig.json +0 -24
  815. package/node_modules/binary/.npmignore +0 -1
  816. package/node_modules/binary/.travis.yml +0 -4
  817. package/node_modules/binary/README.markdown +0 -177
  818. package/node_modules/binary/example/buf.js +0 -11
  819. package/node_modules/binary/example/parse.js +0 -10
  820. package/node_modules/binary/example/stream.js +0 -12
  821. package/node_modules/binary/index.js +0 -397
  822. package/node_modules/binary/lib/vars.js +0 -28
  823. package/node_modules/binary/package.json +0 -38
  824. package/node_modules/binary/perf/loop.js +0 -92
  825. package/node_modules/binary/perf/small.js +0 -80
  826. package/node_modules/binary/test/bu.js +0 -46
  827. package/node_modules/binary/test/deferred.js +0 -20
  828. package/node_modules/binary/test/dots.js +0 -23
  829. package/node_modules/binary/test/eof.js +0 -41
  830. package/node_modules/binary/test/flush.js +0 -17
  831. package/node_modules/binary/test/from_buffer.js +0 -14
  832. package/node_modules/binary/test/get_buffer.js +0 -28
  833. package/node_modules/binary/test/immediate.js +0 -18
  834. package/node_modules/binary/test/interval.js +0 -38
  835. package/node_modules/binary/test/into_buffer.js +0 -35
  836. package/node_modules/binary/test/into_stream.js +0 -43
  837. package/node_modules/binary/test/loop.js +0 -44
  838. package/node_modules/binary/test/loop_scan.js +0 -54
  839. package/node_modules/binary/test/lu.js +0 -46
  840. package/node_modules/binary/test/negbs.js +0 -29
  841. package/node_modules/binary/test/negls.js +0 -29
  842. package/node_modules/binary/test/nested.js +0 -35
  843. package/node_modules/binary/test/not_enough_buf.js +0 -17
  844. package/node_modules/binary/test/not_enough_parse.js +0 -19
  845. package/node_modules/binary/test/parse.js +0 -54
  846. package/node_modules/binary/test/peek.js +0 -40
  847. package/node_modules/binary/test/pipe.js +0 -49
  848. package/node_modules/binary/test/posbs.js +0 -29
  849. package/node_modules/binary/test/posls.js +0 -29
  850. package/node_modules/binary/test/scan.js +0 -33
  851. package/node_modules/binary/test/scan_buf.js +0 -18
  852. package/node_modules/binary/test/scan_buf_null.js +0 -16
  853. package/node_modules/binary/test/skip.js +0 -58
  854. package/node_modules/binary/test/split.js +0 -34
  855. package/node_modules/bl/.travis.yml +0 -17
  856. package/node_modules/bl/BufferList.js +0 -396
  857. package/node_modules/bl/LICENSE.md +0 -13
  858. package/node_modules/bl/README.md +0 -247
  859. package/node_modules/bl/bl.js +0 -84
  860. package/node_modules/bl/package.json +0 -37
  861. package/node_modules/bl/test/convert.js +0 -21
  862. package/node_modules/bl/test/indexOf.js +0 -492
  863. package/node_modules/bl/test/isBufferList.js +0 -32
  864. package/node_modules/bl/test/test.js +0 -869
  865. package/node_modules/buffer-crc32/LICENSE +0 -19
  866. package/node_modules/buffer-crc32/README.md +0 -47
  867. package/node_modules/buffer-crc32/index.js +0 -111
  868. package/node_modules/buffer-crc32/package.json +0 -39
  869. package/node_modules/buffer-indexof-polyfill/.eslintrc +0 -33
  870. package/node_modules/buffer-indexof-polyfill/.travis.yml +0 -17
  871. package/node_modules/buffer-indexof-polyfill/LICENSE +0 -22
  872. package/node_modules/buffer-indexof-polyfill/README.md +0 -33
  873. package/node_modules/buffer-indexof-polyfill/index.js +0 -73
  874. package/node_modules/buffer-indexof-polyfill/init-buffer.js +0 -8
  875. package/node_modules/buffer-indexof-polyfill/package.json +0 -34
  876. package/node_modules/buffer-indexof-polyfill/test/indexof.js +0 -128
  877. package/node_modules/buffers/README.markdown +0 -122
  878. package/node_modules/buffers/examples/slice.js +0 -9
  879. package/node_modules/buffers/examples/splice.js +0 -17
  880. package/node_modules/buffers/index.js +0 -269
  881. package/node_modules/buffers/package.json +0 -14
  882. package/node_modules/buffers/test/buffers.js +0 -209
  883. package/node_modules/chainsaw/.npmignore +0 -1
  884. package/node_modules/chainsaw/README.markdown +0 -157
  885. package/node_modules/chainsaw/examples/add_do.js +0 -25
  886. package/node_modules/chainsaw/examples/prompt.js +0 -67
  887. package/node_modules/chainsaw/index.js +0 -145
  888. package/node_modules/chainsaw/package.json +0 -23
  889. package/node_modules/chainsaw/test/chainsaw.js +0 -418
  890. package/node_modules/concat-map/.travis.yml +0 -4
  891. package/node_modules/concat-map/LICENSE +0 -18
  892. package/node_modules/concat-map/README.markdown +0 -62
  893. package/node_modules/concat-map/example/map.js +0 -6
  894. package/node_modules/concat-map/index.js +0 -13
  895. package/node_modules/concat-map/package.json +0 -43
  896. package/node_modules/concat-map/test/map.js +0 -39
  897. package/node_modules/end-of-stream/LICENSE +0 -21
  898. package/node_modules/end-of-stream/README.md +0 -54
  899. package/node_modules/end-of-stream/index.js +0 -96
  900. package/node_modules/end-of-stream/package.json +0 -37
  901. package/node_modules/fs-constants/LICENSE +0 -21
  902. package/node_modules/fs-constants/README.md +0 -26
  903. package/node_modules/fs-constants/browser.js +0 -1
  904. package/node_modules/fs-constants/index.js +0 -1
  905. package/node_modules/fs-constants/package.json +0 -19
  906. package/node_modules/fs.realpath/LICENSE +0 -43
  907. package/node_modules/fs.realpath/README.md +0 -33
  908. package/node_modules/fs.realpath/index.js +0 -66
  909. package/node_modules/fs.realpath/old.js +0 -303
  910. package/node_modules/fs.realpath/package.json +0 -26
  911. package/node_modules/fstream/.travis.yml +0 -9
  912. package/node_modules/fstream/LICENSE +0 -15
  913. package/node_modules/fstream/README.md +0 -76
  914. package/node_modules/fstream/examples/filter-pipe.js +0 -134
  915. package/node_modules/fstream/examples/pipe.js +0 -118
  916. package/node_modules/fstream/examples/reader.js +0 -68
  917. package/node_modules/fstream/examples/symlink-write.js +0 -27
  918. package/node_modules/fstream/fstream.js +0 -35
  919. package/node_modules/fstream/lib/abstract.js +0 -85
  920. package/node_modules/fstream/lib/collect.js +0 -70
  921. package/node_modules/fstream/lib/dir-reader.js +0 -252
  922. package/node_modules/fstream/lib/dir-writer.js +0 -174
  923. package/node_modules/fstream/lib/file-reader.js +0 -150
  924. package/node_modules/fstream/lib/file-writer.js +0 -107
  925. package/node_modules/fstream/lib/get-type.js +0 -33
  926. package/node_modules/fstream/lib/link-reader.js +0 -53
  927. package/node_modules/fstream/lib/link-writer.js +0 -95
  928. package/node_modules/fstream/lib/proxy-reader.js +0 -95
  929. package/node_modules/fstream/lib/proxy-writer.js +0 -111
  930. package/node_modules/fstream/lib/reader.js +0 -255
  931. package/node_modules/fstream/lib/socket-reader.js +0 -36
  932. package/node_modules/fstream/lib/writer.js +0 -390
  933. package/node_modules/fstream/package.json +0 -28
  934. package/node_modules/glob/LICENSE +0 -21
  935. package/node_modules/glob/README.md +0 -378
  936. package/node_modules/glob/common.js +0 -238
  937. package/node_modules/glob/glob.js +0 -790
  938. package/node_modules/glob/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  939. package/node_modules/glob/node_modules/balanced-match/LICENSE.md +0 -21
  940. package/node_modules/glob/node_modules/balanced-match/README.md +0 -97
  941. package/node_modules/glob/node_modules/balanced-match/index.js +0 -62
  942. package/node_modules/glob/node_modules/balanced-match/package.json +0 -48
  943. package/node_modules/glob/node_modules/brace-expansion/LICENSE +0 -21
  944. package/node_modules/glob/node_modules/brace-expansion/README.md +0 -151
  945. package/node_modules/glob/node_modules/brace-expansion/index.js +0 -438
  946. package/node_modules/glob/node_modules/brace-expansion/package.json +0 -50
  947. package/node_modules/glob/node_modules/minimatch/LICENSE +0 -15
  948. package/node_modules/glob/node_modules/minimatch/README.md +0 -267
  949. package/node_modules/glob/node_modules/minimatch/minimatch.js +0 -1005
  950. package/node_modules/glob/node_modules/minimatch/package.json +0 -33
  951. package/node_modules/glob/package.json +0 -55
  952. package/node_modules/glob/sync.js +0 -486
  953. package/node_modules/inflight/LICENSE +0 -15
  954. package/node_modules/inflight/README.md +0 -37
  955. package/node_modules/inflight/inflight.js +0 -54
  956. package/node_modules/inflight/package.json +0 -29
  957. package/node_modules/lazystream/LICENSE +0 -23
  958. package/node_modules/lazystream/README.md +0 -114
  959. package/node_modules/lazystream/lib/lazystream.js +0 -54
  960. package/node_modules/lazystream/node_modules/readable-stream/.travis.yml +0 -34
  961. package/node_modules/lazystream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  962. package/node_modules/lazystream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  963. package/node_modules/lazystream/node_modules/readable-stream/README.md +0 -58
  964. package/node_modules/lazystream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  965. package/node_modules/lazystream/node_modules/readable-stream/duplex-browser.js +0 -1
  966. package/node_modules/lazystream/node_modules/readable-stream/duplex.js +0 -1
  967. package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  968. package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  969. package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  970. package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  971. package/node_modules/lazystream/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  972. package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  973. package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  974. package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  975. package/node_modules/lazystream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  976. package/node_modules/lazystream/node_modules/readable-stream/package.json +0 -52
  977. package/node_modules/lazystream/node_modules/readable-stream/passthrough.js +0 -1
  978. package/node_modules/lazystream/node_modules/readable-stream/readable-browser.js +0 -7
  979. package/node_modules/lazystream/node_modules/readable-stream/readable.js +0 -19
  980. package/node_modules/lazystream/node_modules/readable-stream/transform.js +0 -1
  981. package/node_modules/lazystream/node_modules/readable-stream/writable-browser.js +0 -1
  982. package/node_modules/lazystream/node_modules/readable-stream/writable.js +0 -8
  983. package/node_modules/lazystream/node_modules/safe-buffer/LICENSE +0 -21
  984. package/node_modules/lazystream/node_modules/safe-buffer/README.md +0 -584
  985. package/node_modules/lazystream/node_modules/safe-buffer/index.d.ts +0 -187
  986. package/node_modules/lazystream/node_modules/safe-buffer/index.js +0 -62
  987. package/node_modules/lazystream/node_modules/safe-buffer/package.json +0 -37
  988. package/node_modules/lazystream/node_modules/string_decoder/.travis.yml +0 -50
  989. package/node_modules/lazystream/node_modules/string_decoder/LICENSE +0 -48
  990. package/node_modules/lazystream/node_modules/string_decoder/README.md +0 -47
  991. package/node_modules/lazystream/node_modules/string_decoder/lib/string_decoder.js +0 -296
  992. package/node_modules/lazystream/node_modules/string_decoder/package.json +0 -31
  993. package/node_modules/lazystream/package.json +0 -46
  994. package/node_modules/lazystream/test/data.md +0 -13
  995. package/node_modules/lazystream/test/fs_test.js +0 -69
  996. package/node_modules/lazystream/test/helper.js +0 -39
  997. package/node_modules/lazystream/test/pipe_test.js +0 -36
  998. package/node_modules/lazystream/test/readable_test.js +0 -90
  999. package/node_modules/lazystream/test/writable_test.js +0 -59
  1000. package/node_modules/listenercount/.npmignore +0 -2
  1001. package/node_modules/listenercount/LICENSE.md +0 -5
  1002. package/node_modules/listenercount/README.md +0 -50
  1003. package/node_modules/listenercount/circle.yml +0 -6
  1004. package/node_modules/listenercount/index.js +0 -16
  1005. package/node_modules/listenercount/package.json +0 -27
  1006. package/node_modules/listenercount/test/test.js +0 -31
  1007. package/node_modules/lodash.defaults/LICENSE +0 -47
  1008. package/node_modules/lodash.defaults/README.md +0 -18
  1009. package/node_modules/lodash.defaults/index.js +0 -668
  1010. package/node_modules/lodash.defaults/package.json +0 -17
  1011. package/node_modules/lodash.difference/LICENSE +0 -47
  1012. package/node_modules/lodash.difference/README.md +0 -18
  1013. package/node_modules/lodash.difference/index.js +0 -1170
  1014. package/node_modules/lodash.difference/package.json +0 -17
  1015. package/node_modules/lodash.flatten/LICENSE +0 -47
  1016. package/node_modules/lodash.flatten/README.md +0 -18
  1017. package/node_modules/lodash.flatten/index.js +0 -349
  1018. package/node_modules/lodash.flatten/package.json +0 -17
  1019. package/node_modules/lodash.isplainobject/LICENSE +0 -47
  1020. package/node_modules/lodash.isplainobject/README.md +0 -18
  1021. package/node_modules/lodash.isplainobject/index.js +0 -139
  1022. package/node_modules/lodash.isplainobject/package.json +0 -17
  1023. package/node_modules/lodash.union/LICENSE +0 -47
  1024. package/node_modules/lodash.union/README.md +0 -18
  1025. package/node_modules/lodash.union/index.js +0 -1181
  1026. package/node_modules/lodash.union/package.json +0 -17
  1027. package/node_modules/minimist/.eslintrc +0 -29
  1028. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  1029. package/node_modules/minimist/.nycrc +0 -14
  1030. package/node_modules/minimist/CHANGELOG.md +0 -298
  1031. package/node_modules/minimist/LICENSE +0 -18
  1032. package/node_modules/minimist/README.md +0 -121
  1033. package/node_modules/minimist/example/parse.js +0 -4
  1034. package/node_modules/minimist/index.js +0 -263
  1035. package/node_modules/minimist/package.json +0 -75
  1036. package/node_modules/minimist/test/all_bool.js +0 -34
  1037. package/node_modules/minimist/test/bool.js +0 -177
  1038. package/node_modules/minimist/test/dash.js +0 -43
  1039. package/node_modules/minimist/test/default_bool.js +0 -37
  1040. package/node_modules/minimist/test/dotted.js +0 -24
  1041. package/node_modules/minimist/test/kv_short.js +0 -32
  1042. package/node_modules/minimist/test/long.js +0 -33
  1043. package/node_modules/minimist/test/num.js +0 -38
  1044. package/node_modules/minimist/test/parse.js +0 -209
  1045. package/node_modules/minimist/test/parse_modified.js +0 -11
  1046. package/node_modules/minimist/test/proto.js +0 -64
  1047. package/node_modules/minimist/test/short.js +0 -69
  1048. package/node_modules/minimist/test/stop_early.js +0 -17
  1049. package/node_modules/minimist/test/unknown.js +0 -104
  1050. package/node_modules/minimist/test/whitespace.js +0 -10
  1051. package/node_modules/mkdirp/LICENSE +0 -21
  1052. package/node_modules/mkdirp/bin/cmd.js +0 -33
  1053. package/node_modules/mkdirp/bin/usage.txt +0 -12
  1054. package/node_modules/mkdirp/index.js +0 -102
  1055. package/node_modules/mkdirp/package.json +0 -33
  1056. package/node_modules/mkdirp/readme.markdown +0 -100
  1057. package/node_modules/once/LICENSE +0 -15
  1058. package/node_modules/once/README.md +0 -79
  1059. package/node_modules/once/once.js +0 -42
  1060. package/node_modules/once/package.json +0 -33
  1061. package/node_modules/path-is-absolute/index.js +0 -20
  1062. package/node_modules/path-is-absolute/license +0 -21
  1063. package/node_modules/path-is-absolute/package.json +0 -43
  1064. package/node_modules/path-is-absolute/readme.md +0 -59
  1065. package/node_modules/readdir-glob/LICENSE +0 -201
  1066. package/node_modules/readdir-glob/README.md +0 -85
  1067. package/node_modules/readdir-glob/index.js +0 -243
  1068. package/node_modules/readdir-glob/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  1069. package/node_modules/readdir-glob/node_modules/balanced-match/LICENSE.md +0 -21
  1070. package/node_modules/readdir-glob/node_modules/balanced-match/README.md +0 -97
  1071. package/node_modules/readdir-glob/node_modules/balanced-match/index.js +0 -62
  1072. package/node_modules/readdir-glob/node_modules/balanced-match/package.json +0 -48
  1073. package/node_modules/readdir-glob/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  1074. package/node_modules/readdir-glob/node_modules/brace-expansion/LICENSE +0 -21
  1075. package/node_modules/readdir-glob/node_modules/brace-expansion/README.md +0 -157
  1076. package/node_modules/readdir-glob/node_modules/brace-expansion/index.js +0 -394
  1077. package/node_modules/readdir-glob/node_modules/brace-expansion/package.json +0 -49
  1078. package/node_modules/readdir-glob/node_modules/minimatch/LICENSE +0 -15
  1079. package/node_modules/readdir-glob/node_modules/minimatch/README.md +0 -296
  1080. package/node_modules/readdir-glob/node_modules/minimatch/lib/path.js +0 -4
  1081. package/node_modules/readdir-glob/node_modules/minimatch/minimatch.js +0 -996
  1082. package/node_modules/readdir-glob/node_modules/minimatch/package.json +0 -35
  1083. package/node_modules/readdir-glob/package.json +0 -43
  1084. package/node_modules/rimraf/LICENSE +0 -15
  1085. package/node_modules/rimraf/README.md +0 -101
  1086. package/node_modules/rimraf/bin.js +0 -50
  1087. package/node_modules/rimraf/package.json +0 -29
  1088. package/node_modules/rimraf/rimraf.js +0 -372
  1089. package/node_modules/tar-stream/LICENSE +0 -21
  1090. package/node_modules/tar-stream/README.md +0 -168
  1091. package/node_modules/tar-stream/extract.js +0 -257
  1092. package/node_modules/tar-stream/headers.js +0 -295
  1093. package/node_modules/tar-stream/index.js +0 -2
  1094. package/node_modules/tar-stream/pack.js +0 -255
  1095. package/node_modules/tar-stream/package.json +0 -58
  1096. package/node_modules/tar-stream/sandbox.js +0 -11
  1097. package/node_modules/traverse/.npmignore +0 -1
  1098. package/node_modules/traverse/LICENSE +0 -24
  1099. package/node_modules/traverse/README.markdown +0 -247
  1100. package/node_modules/traverse/examples/json.js +0 -16
  1101. package/node_modules/traverse/examples/leaves.js +0 -15
  1102. package/node_modules/traverse/examples/negative.js +0 -8
  1103. package/node_modules/traverse/examples/stringify.js +0 -38
  1104. package/node_modules/traverse/index.js +0 -322
  1105. package/node_modules/traverse/package.json +0 -18
  1106. package/node_modules/traverse/test/circular.js +0 -114
  1107. package/node_modules/traverse/test/date.js +0 -35
  1108. package/node_modules/traverse/test/equal.js +0 -219
  1109. package/node_modules/traverse/test/instance.js +0 -17
  1110. package/node_modules/traverse/test/interface.js +0 -42
  1111. package/node_modules/traverse/test/json.js +0 -47
  1112. package/node_modules/traverse/test/leaves.js +0 -21
  1113. package/node_modules/traverse/test/mutability.js +0 -203
  1114. package/node_modules/traverse/test/negative.js +0 -20
  1115. package/node_modules/traverse/test/obj.js +0 -15
  1116. package/node_modules/traverse/test/stop.js +0 -41
  1117. package/node_modules/traverse/test/stringify.js +0 -36
  1118. package/node_modules/traverse/test/super_deep.js +0 -54
  1119. package/node_modules/unzipper/.circleci/config.yml +0 -13
  1120. package/node_modules/unzipper/.travis.yml +0 -21
  1121. package/node_modules/unzipper/lib/Buffer.js +0 -12
  1122. package/node_modules/unzipper/node_modules/readable-stream/.travis.yml +0 -34
  1123. package/node_modules/unzipper/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  1124. package/node_modules/unzipper/node_modules/readable-stream/GOVERNANCE.md +0 -136
  1125. package/node_modules/unzipper/node_modules/readable-stream/README.md +0 -58
  1126. package/node_modules/unzipper/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  1127. package/node_modules/unzipper/node_modules/readable-stream/duplex-browser.js +0 -1
  1128. package/node_modules/unzipper/node_modules/readable-stream/duplex.js +0 -1
  1129. package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  1130. package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  1131. package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  1132. package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  1133. package/node_modules/unzipper/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  1134. package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  1135. package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  1136. package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  1137. package/node_modules/unzipper/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  1138. package/node_modules/unzipper/node_modules/readable-stream/package.json +0 -52
  1139. package/node_modules/unzipper/node_modules/readable-stream/passthrough.js +0 -1
  1140. package/node_modules/unzipper/node_modules/readable-stream/readable-browser.js +0 -7
  1141. package/node_modules/unzipper/node_modules/readable-stream/readable.js +0 -19
  1142. package/node_modules/unzipper/node_modules/readable-stream/transform.js +0 -1
  1143. package/node_modules/unzipper/node_modules/readable-stream/writable-browser.js +0 -1
  1144. package/node_modules/unzipper/node_modules/readable-stream/writable.js +0 -8
  1145. package/node_modules/unzipper/node_modules/safe-buffer/LICENSE +0 -21
  1146. package/node_modules/unzipper/node_modules/safe-buffer/README.md +0 -584
  1147. package/node_modules/unzipper/node_modules/safe-buffer/index.d.ts +0 -187
  1148. package/node_modules/unzipper/node_modules/safe-buffer/index.js +0 -62
  1149. package/node_modules/unzipper/node_modules/safe-buffer/package.json +0 -37
  1150. package/node_modules/unzipper/node_modules/string_decoder/.travis.yml +0 -50
  1151. package/node_modules/unzipper/node_modules/string_decoder/LICENSE +0 -48
  1152. package/node_modules/unzipper/node_modules/string_decoder/README.md +0 -47
  1153. package/node_modules/unzipper/node_modules/string_decoder/lib/string_decoder.js +0 -296
  1154. package/node_modules/unzipper/node_modules/string_decoder/package.json +0 -31
  1155. package/node_modules/wrappy/LICENSE +0 -15
  1156. package/node_modules/wrappy/README.md +0 -36
  1157. package/node_modules/wrappy/package.json +0 -29
  1158. package/node_modules/wrappy/wrappy.js +0 -33
  1159. package/node_modules/zip-stream/node_modules/archiver-utils/LICENSE +0 -22
  1160. package/node_modules/zip-stream/node_modules/archiver-utils/README.md +0 -6
  1161. package/node_modules/zip-stream/node_modules/archiver-utils/file.js +0 -209
  1162. package/node_modules/zip-stream/node_modules/archiver-utils/index.js +0 -149
  1163. package/node_modules/zip-stream/node_modules/archiver-utils/package.json +0 -54
  1164. /package/node_modules/{archiver-utils → compress-commons}/node_modules/readable-stream/LICENSE +0 -0
  1165. /package/node_modules/{lazystream → crc32-stream}/node_modules/readable-stream/LICENSE +0 -0
  1166. /package/node_modules/{unzipper → zip-stream}/node_modules/readable-stream/LICENSE +0 -0
@@ -1,19 +1,27 @@
1
+ import { resolveAutoCompactThreshold, resolveCompactionTriggerMode, resolveContextTokenBudget } from '../../config/compaction.js';
1
2
  import { DEFAULT_SPINNER_VERBS, formatSpinnerVerbs, parseSpinnerVerbs } from '../../utils/spinner_verbs.js';
2
3
  import { CODEX_REASONING_EFFORTS, } from '../../config/types.js';
3
4
  import { runOpenAICompatibleWizard } from './openai_compat_wizard.js';
4
5
  import { openFactoryResetConfirmation, settingsCommand } from './settings.js';
5
6
  import { contextProgressBarConfig, normalizeBarColor, publishContextProgressBar, withBarColor, } from './context_progress_bar.js';
6
- import { compatEndpoint, DEFAULT_CONTEXT_PROGRESS_BAR } from '../../config.js';
7
+ import { compatEndpoint, DEFAULT_CONTEXT_PROGRESS_BAR, maskApiKey } from '../../config.js';
7
8
  import { parseGoalTurnCap } from './goal.js';
8
9
  import { getSupportedCodexReasoningEfforts, isCodexReasoningEffortSupported, unsupportedEffortMessage, } from '../../utils/models.js';
9
- import { resolveModelForProviderChange } from './provider_model_defaults.js';
10
+ import { modelForProviderSwitch, resolveModelForProviderChange } from './provider_model_defaults.js';
10
11
  import { applyRuntimeModelSelection, getEffectiveModel } from './runtime_model.js';
11
12
  import { shutdownAndClearWorkflowRegistry } from '../../workflows/registry_handle.js';
12
- import { canonicalProvider, isLocalSubscription } from './provider_choices.js';
13
+ import { formatRate } from '../../utils/openrouter_prices.js';
14
+ import { API_KEY_PROVIDER_CHOICES, canonicalProvider, describeKeySource, isLocalSubscription, PROVIDER_CHOICES, } from './provider_choices.js';
15
+ import { canAskForCredential, manageApiKey, promptForMissingDirectKey, removeApiKey, savedKeyNotes, useApiKeyVariable, } from './direct_credential_prompt.js';
16
+ import { looksLikeApiKeyEnvName } from '../../config/provider_api_key_env.js';
17
+ import { offerKeyedProviderSwitch } from './provider_selection.js';
18
+ import { connectionStatusLines } from './credential_status.js';
19
+ import { normalizeProviderId } from '../backends/provider_ids.js';
13
20
  import { resolveCodexEffort } from '../../config/defaults.js';
14
21
  import { formatReasoningEffort } from '../../utils/reasoning.js';
15
22
  import { DEFAULT_MESSAGE_DISPLAY, MIN_TOOL_OUTPUT_LINES, parseToolOutputLines, resolveMessageDisplaySettings, } from '../../config/message_display.js';
16
23
  import { DEFAULT_STATUS_LINE_SETTINGS, STATUS_LINE_ITEMS, STATUS_LINE_ITEM_DESCRIPTIONS, STATUS_LINE_VARIANTS, compactStatusLineVariants, formatStatusLineSettings, normalizeStatusLineSeparator, parseStatusLineItems, parseStatusLineVariant, resolveStatusLineSettings, resolveStatusLineVariants, statusLineSettingsForStorage, } from '../../ui/status_line_config.js';
24
+ import { offerReasoningPicker } from './reasoning_picker.js';
17
25
  /**
18
26
  * Whether a resolved provider/model selection can actually build a backend right
19
27
  * now. Mirrors the factory's buildable arms (see agent/factory.ts): a usable
@@ -38,17 +46,21 @@ export function isBuildableResolvedConfig(resolved) {
38
46
  /** Actionable error shown when a provider/model switch can't build a backend. */
39
47
  export function unbuildableSelectionMessage(provider) {
40
48
  if (provider === 'modal' || provider === 'zergrouter') {
41
- return `Can't switch to ${provider}: run /auth login for Zerg Router. Keeping the current selection.`;
49
+ return `Can't switch to ${provider}: it runs through Zerg Router. Log in with ZergAI (/auth login). Keeping the current selection.`;
42
50
  }
43
51
  if (isLocalSubscription(provider)) {
44
52
  return `Can't switch to ${provider}: sign in through /accounts. Keeping the current selection.`;
45
53
  }
46
- return `✗ Can't switch to ${provider}: no usable credentials found (provider API key, platform login, or ZRouter). `
47
- + `Set one with \`/config key ${provider} <api-key>\` or \`/login\`, then try again. Keeping the current selection.`;
54
+ if (provider === 'openai_compatible') {
55
+ return "Can't switch to openai_compatible: set up the endpoint with /config openai-compat first. Keeping the current selection.";
56
+ }
57
+ return `✗ Can't switch to ${provider}: it has no API key. `
58
+ + `Add one with \`/config key ${provider}\`, or log in with ZergAI (\`/login\`), then try again. Keeping the current selection.`;
48
59
  }
49
60
  export function parseConfigKeyArgs(args, currentProvider) {
50
61
  const provider = canonicalProvider(args[0] || '');
51
- if (args.length > 1 && provider) {
62
+ // A lone provider name asks for that provider's key; it is never the key.
63
+ if (provider) {
52
64
  return {
53
65
  provider,
54
66
  apiKey: args.slice(1).join(' '),
@@ -113,14 +125,147 @@ const STATUS_LINE_USAGE = [
113
125
  ' /config statusline colors <on|off>',
114
126
  ' /config statusline <on|off|reset>',
115
127
  ].join('\n');
128
+ /**
129
+ * `/config key` alone: ask which provider the key is for, then offer that
130
+ * provider's key choices. False when nobody can answer.
131
+ */
132
+ function pickKeyProvider(ctx) {
133
+ if (!canAskForCredential(ctx))
134
+ return false;
135
+ const options = API_KEY_PROVIDER_CHOICES.map(choice => ({
136
+ value: choice.id, label: choice.label, description: describeKeySource(ctx.config.getApiKeySource(choice.id)),
137
+ }));
138
+ ctx.select.showSelect({ title: 'Add an API key', question: 'Which provider is the key for?', type: 'select', options }, value => {
139
+ // Escape is announced by the widget.
140
+ if (typeof value !== 'string' || !options.some(option => option.value === value))
141
+ return;
142
+ manageApiKey(value, ctx, change => useKeyChange(value, ctx, change));
143
+ });
144
+ return true;
145
+ }
146
+ /**
147
+ * Put a key just saved to use: the running agent rebuilds when it belongs to
148
+ * the active provider; otherwise, with no model connected, ZTC offers to
149
+ * switch to that provider.
150
+ */
151
+ function useSavedKey(provider, ctx) {
152
+ if (normalizeProviderId(provider) === normalizeProviderId(ctx.config.getProvider()))
153
+ ctx.reloadAgent();
154
+ else
155
+ offerKeyedProviderSwitch(provider, ctx);
156
+ }
157
+ /**
158
+ * After the key choices of `/config key`: a key or a set variable is put to
159
+ * use; a removal, or a variable not set yet, only drops a stale agent built
160
+ * with the old key.
161
+ */
162
+ function useKeyChange(provider, ctx, change) {
163
+ if (!change)
164
+ return;
165
+ if (change.kind === 'saved' || change.kind === 'env')
166
+ return useSavedKey(provider, ctx);
167
+ if (normalizeProviderId(provider) === normalizeProviderId(ctx.config.getProvider()))
168
+ ctx.reloadAgent({ defer: true });
169
+ }
170
+ /**
171
+ * `/config provider <id>`. A direct provider without a key asks for one and,
172
+ * once it is saved, switches; `credentialPrompted` keeps that retry from asking twice.
173
+ */
174
+ async function setConfigProvider(value, ctx, credentialPrompted = false) {
175
+ const provider = canonicalProvider(value) ?? value;
176
+ // Verify the target actually builds a backend BEFORE persisting — an
177
+ // unbuildable provider written to config.json makes the NEXT boot start
178
+ // agent-less. Probe the model this switch would land on. openai_compatible
179
+ // is exempt: it is configured by the wizard that runs right after this
180
+ // switch, so it has no credentials to probe yet.
181
+ const previousProvider = ctx.config.getProvider();
182
+ const currentModel = getEffectiveModel(ctx);
183
+ const model = modelForProviderSwitch(provider, previousProvider, currentModel);
184
+ if (provider !== 'openai_compatible') {
185
+ const llm = ctx.config.resolveLLMBackendConfig({ provider, model });
186
+ if (!isBuildableResolvedConfig(llm)) {
187
+ if (!credentialPrompted && promptForMissingDirectKey(llm, ctx, () => setConfigProvider(provider, ctx, true)))
188
+ return;
189
+ ctx.addMessage({ role: 'system', content: unbuildableSelectionMessage(provider) });
190
+ return;
191
+ }
192
+ }
193
+ const resetModel = resolveModelForProviderChange(provider, currentModel);
194
+ ctx.config.setProvider(provider);
195
+ ctx.config.set('model', model);
196
+ await ctx.config.save();
197
+ applyRuntimeModelSelection(ctx, provider, model);
198
+ ctx.addMessage({
199
+ role: 'system',
200
+ content: `✓ Provider updated: ${provider}${resetModel ? `\n Model reset to ${resetModel} for Claude Code.` : ''}`
201
+ });
202
+ // Auto-launch the wizard the first time the user picks openai_compatible
203
+ // (Ollama / vLLM / LM Studio / custom). Skip if a base URL is already set
204
+ // — they can re-run via `/config openai-compat` to change anything.
205
+ if (provider === 'openai_compatible') {
206
+ const settings = ctx.config.getOpenAICompatibleSettings?.()
207
+ || { baseUrl: ctx.config.getOpenAICompatibleBaseUrl() };
208
+ if (!settings.baseUrl) {
209
+ ctx.addMessage({
210
+ role: 'system',
211
+ content: 'No endpoint configured yet — opening setup form. Run `/config openai-compat` later to change anything.',
212
+ });
213
+ runOpenAICompatibleWizard(ctx);
214
+ }
215
+ }
216
+ }
217
+ /**
218
+ * `/config model <id>` on the active provider. A missing direct key is asked
219
+ * for once, then the model is applied.
220
+ */
221
+ async function setConfigModel(value, ctx, credentialPrompted = false) {
222
+ // Verify the selection builds a backend BEFORE persisting so an
223
+ // unbuildable choice never lands in config.json nor earns a false "✓".
224
+ const activeProvider = ctx.config.getProvider();
225
+ const llm = ctx.config.resolveLLMBackendConfig({ provider: activeProvider, model: value });
226
+ if (!isBuildableResolvedConfig(llm)) {
227
+ if (!credentialPrompted && promptForMissingDirectKey(llm, ctx, () => setConfigModel(value, ctx, true)))
228
+ return;
229
+ ctx.addMessage({ role: 'system', content: unbuildableSelectionMessage(activeProvider) });
230
+ return;
231
+ }
232
+ ctx.config.set('model', value);
233
+ await ctx.config.save();
234
+ applyRuntimeModelSelection(ctx, activeProvider, value);
235
+ const envPinnedModel = process.env.ZTC_MODEL || process.env.LLM_MODEL;
236
+ ctx.addMessage({
237
+ role: 'system',
238
+ content: `✓ Model updated: ${value} (${ctx.config.getConfigScope?.() || 'global'} scope)${envPinnedModel ? `\n Deployment currently pins model=${envPinnedModel}; this override may reset on refresh or restart.` : ''}`
239
+ });
240
+ offerReasoningPicker(ctx);
241
+ }
242
+ /** `/config help`: the subcommands, most used first. */
243
+ const CONFIG_HELP = [
244
+ '/config subcommands:',
245
+ ' /config Open settings on Connection (the ZergAI login and API keys)',
246
+ ' /config show Show the provider, model, route, keys and other settings',
247
+ ' /config key [provider] Set a provider API key in a hidden prompt, or name its variable',
248
+ ' /config key <provider> --remove Forget the saved key or variable',
249
+ ' /config provider <id> Choose the provider',
250
+ ' /config model <id> Choose the model',
251
+ ' /config openai-compat Set up a custom OpenAI-compatible endpoint',
252
+ ' /config routing <auto|direct|zrouter> How ZTC reaches a model',
253
+ ' /config max-tokens <n|default> Output cap',
254
+ ' /config effort <level|clear> Default reasoning effort',
255
+ ' /config scope <session|global|clear> Where changes are saved',
256
+ ' /config reset Factory reset (asks first)',
257
+ 'Any other word searches the settings, for example /config compaction.',
258
+ ].join('\n');
116
259
  export const configCommand = {
117
260
  name: 'config',
118
261
  description: 'Manage configuration',
119
- usage: '[show|reset|scope|local|global|key|provider|endpoint|openai-compat|auth-mode|model|max-tokens|effort|display|spinner|statusline|goal-max-turns|manifests-dir|context-progress-bar|workflows] [value]',
262
+ usage: '[show|reset|scope|local|global|key|provider|endpoint|openai-compat|auth-mode|model|max-tokens|effort|display|spinner|statusline|goal-max-turns|manifests-dir|context-progress-bar|workflows|openrouter] [value]',
120
263
  agentRunnable: true,
121
264
  category: 'config',
122
265
  handler: async (args, ctx) => {
123
266
  let [subCmd, ...rest] = args;
267
+ // Subcommands and scopes match in any case, as command names do.
268
+ subCmd = subCmd?.toLowerCase();
124
269
  let value = rest.join(' ');
125
270
  if (subCmd === 'local' || subCmd === 'session') {
126
271
  if (!ctx.config.withConfigScope) {
@@ -201,20 +346,19 @@ Usage:
201
346
  await ctx.config.refresh();
202
347
  }
203
348
  const config = ctx.config.get();
204
- const effectiveModel = ctx.config.getModel?.() || config.model;
205
- const authMode = ctx.config.getAuthMode?.() || config.authMode || 'auto';
206
349
  // A startup --effort belongs to this process; report it as such instead
207
350
  // of letting it read as the saved default it is not.
208
351
  const processEffort = ctx.config.getCodexEffortOverride?.();
209
352
  const configuredEffort = (ctx.config.getConfigWithoutEffortOverride?.() ?? config).codexEffort;
210
353
  const lines = [
211
354
  'Current configuration:',
212
- ` API Key: ${ctx.config.getMaskedApiKey()}`,
213
- ` Provider: ${ctx.config.getProvider()}`,
214
- ` Model: ${effectiveModel}`,
355
+ ` Compaction threshold: ${ctx.config.getAutoCompactThreshold?.() ?? resolveAutoCompactThreshold(config)}%`,
356
+ ` Compaction trigger: ${ctx.config.getCompactionTriggerMode?.() ?? resolveCompactionTriggerMode(config)}`,
357
+ ` Compaction token budget: ${ctx.config.getContextTokenBudget?.() ?? resolveContextTokenBudget(config) ?? 'unset'}`,
358
+ ` Idle compaction: ${ctx.config.getIdleCompaction?.() ?? config.idleCompaction !== false ? 'on' : 'off'}`,
359
+ ...connectionStatusLines(ctx.config),
215
360
  ` Max Tokens: ${config.maxTokens ?? 'provider default'}`,
216
361
  ` Zerg Endpoint: ${config.zergEndpoint || '(not set)'}`,
217
- ` Auth Mode: ${authMode}`,
218
362
  ` Context Progress Bar: ${formatContextProgressBar(config)}`,
219
363
  ` Status Line: ${statusLineSummary(config.statusLine)}`,
220
364
  ` Emulation: ${ctx.config.getEmulationId() || '(none)'}`,
@@ -300,28 +444,54 @@ Usage:
300
444
  ctx.addMessage({ role: 'system', content: 'Usage: /config workflows <on|off|trigger-on|trigger-off>' });
301
445
  return;
302
446
  }
303
- case 'key':
447
+ case 'key': {
304
448
  if (!value) {
449
+ if (pickKeyProvider(ctx))
450
+ return;
305
451
  ctx.addMessage({
306
452
  role: 'system',
307
- content: `Current API key: ${ctx.config.getMaskedApiKey()}\n\nUsage: /config key <your-api-key>`
453
+ content: [
454
+ `Current API key (${ctx.config.getProvider()}): ${ctx.config.getMaskedApiKey()}`,
455
+ '',
456
+ 'Usage: /config key <provider> (paste the key in a hidden prompt, or name its variable)',
457
+ ' /config key <provider> --remove (forget the saved key or variable)',
458
+ `Providers: ${[...API_KEY_PROVIDER_CHOICES.map(choice => choice.id), 'openai_compatible'].join(', ')}`,
459
+ ].join('\n'),
308
460
  });
309
461
  return;
310
462
  }
311
463
  const { provider, apiKey } = parseConfigKeyArgs(rest, ctx.config.getProvider());
312
464
  if (provider === 'modal' || provider === 'zergrouter' || isLocalSubscription(provider)) {
313
465
  ctx.addMessage({ role: 'system', content: provider === 'modal' || provider === 'zergrouter'
314
- ? `${provider} uses your Zerg Router login. Run /auth login; /config key cannot configure this provider.`
466
+ ? `${provider} runs through Zerg Router with your ZergAI login. Run /auth login; /config key cannot configure this provider.`
315
467
  : `${provider} uses subscription credentials. Sign in through /accounts; /config key cannot configure this provider.` });
316
468
  return;
317
469
  }
470
+ if (apiKey === '--remove') {
471
+ await removeApiKey(provider, ctx, change => useKeyChange(provider, ctx, change));
472
+ return;
473
+ }
318
474
  if (!apiKey) {
475
+ if (manageApiKey(provider, ctx, change => useKeyChange(provider, ctx, change)))
476
+ return;
319
477
  ctx.addMessage({
320
478
  role: 'system',
321
479
  content: 'Usage: /config key <provider> <api-key>'
322
480
  });
323
481
  return;
324
482
  }
483
+ // A variable name is read as one, never saved as the key. A custom
484
+ // endpoint's placeholder key (e.g. EMPTY) stays a key unless written $NAME.
485
+ const namesVariable = provider === 'openai_compatible'
486
+ ? apiKey.trim().startsWith('$') && looksLikeApiKeyEnvName(apiKey)
487
+ : looksLikeApiKeyEnvName(apiKey);
488
+ if (namesVariable) {
489
+ if (await useApiKeyVariable(provider, apiKey, ctx, change => useKeyChange(provider, ctx, change)))
490
+ return;
491
+ ctx.addMessage({ role: 'system', content: 'That looks like an environment variable name, not a key. '
492
+ + `Run /config key ${provider} in an interactive session and choose "Use an environment variable".` });
493
+ return;
494
+ }
325
495
  if (provider === 'anthropic' && !apiKey.startsWith('sk-ant-')) {
326
496
  ctx.addMessage({
327
497
  role: 'system',
@@ -330,57 +500,30 @@ Usage:
330
500
  }
331
501
  ctx.config.setApiKey(apiKey, provider);
332
502
  await ctx.config.save();
333
- ctx.reloadAgent();
334
503
  ctx.addMessage({
335
504
  role: 'system',
336
- content: `✓ API key updated (${provider}): ${ctx.config.getMaskedApiKey()}\n Saved to ${ctx.config.locationLabel || '~/.ztc/config.json'}`
505
+ content: [
506
+ `✓ API key updated (${provider}): ${maskApiKey(apiKey)}`,
507
+ ` Saved to ${ctx.config.locationLabel || '~/.ztc/config.json'}`,
508
+ ...savedKeyNotes(provider, apiKey, ctx),
509
+ // A key typed after the command shows in the composer; the prompt hides it.
510
+ provider === 'openai_compatible'
511
+ ? ' Next time, Custom endpoint… in /keys takes the key in a hidden field.'
512
+ : ` Next time, /config key ${provider} asks for the key in a hidden prompt.`,
513
+ ].join('\n'),
337
514
  });
515
+ useSavedKey(provider, ctx);
338
516
  break;
517
+ }
339
518
  case 'provider': {
340
519
  if (!value) {
341
520
  ctx.addMessage({
342
521
  role: 'system',
343
- content: `Current provider: ${ctx.config.getProvider()}\n\nUsage: /config provider <anthropic|claude_code|openai|codex_app_server|codex_legacy|gemini|inception|kimi|openai_compatible>\n\nNote: codex is a legacy alias for codex_legacy.`
522
+ content: `Current provider: ${ctx.config.getProvider()}\n\nUsage: /config provider <${PROVIDER_CHOICES.map(choice => choice.id).join('|')}>\n\nNote: codex is a legacy alias for codex_legacy.`
344
523
  });
345
524
  return;
346
525
  }
347
- // Verify the target actually builds a backend BEFORE persisting — an
348
- // unbuildable provider written to config.json makes the NEXT boot start
349
- // agent-less. Probe the model this switch would land on. openai_compatible
350
- // is exempt: it is configured by the wizard that runs right after this
351
- // switch, so it has no credentials to probe yet.
352
- if (value !== 'openai_compatible') {
353
- const candidateReset = resolveModelForProviderChange(value, getEffectiveModel(ctx));
354
- const probeModel = candidateReset || getEffectiveModel(ctx);
355
- if (!isBuildableResolvedConfig(ctx.config.resolveLLMBackendConfig({ provider: value, model: probeModel }))) {
356
- ctx.addMessage({ role: 'system', content: unbuildableSelectionMessage(value) });
357
- return;
358
- }
359
- }
360
- ctx.config.setProvider(value);
361
- const resetModel = resolveModelForProviderChange(value, getEffectiveModel(ctx));
362
- if (resetModel)
363
- ctx.config.set('model', resetModel);
364
- await ctx.config.save();
365
- applyRuntimeModelSelection(ctx, value, resetModel || getEffectiveModel(ctx));
366
- ctx.addMessage({
367
- role: 'system',
368
- content: `✓ Provider updated: ${value}${resetModel ? `\n Model reset to ${resetModel} for Claude Code.` : ''}`
369
- });
370
- // Auto-launch the wizard the first time the user picks openai_compatible
371
- // (Ollama / vLLM / LM Studio / custom). Skip if a base URL is already set
372
- // — they can re-run via `/config openai-compat` to change anything.
373
- if (value === 'openai_compatible') {
374
- const settings = ctx.config.getOpenAICompatibleSettings?.()
375
- || { baseUrl: ctx.config.getOpenAICompatibleBaseUrl() };
376
- if (!settings.baseUrl) {
377
- ctx.addMessage({
378
- role: 'system',
379
- content: 'No endpoint configured yet — opening setup form. Run `/config openai-compat` later to change anything.',
380
- });
381
- runOpenAICompatibleWizard(ctx);
382
- }
383
- }
526
+ await setConfigProvider(value, ctx);
384
527
  break;
385
528
  }
386
529
  case 'openai-compat':
@@ -391,7 +534,7 @@ Usage:
391
534
  case 'zrouter-url':
392
535
  case 'zrouter':
393
536
  if (!value) {
394
- ctx.addMessage({ role: 'system', content: `Current ZRouter URL: ${ctx.config.get().zergProxyUrl || '(not set)'}
537
+ ctx.addMessage({ role: 'system', content: `Current Zerg Router URL: ${ctx.config.get().zergProxyUrl || '(not set)'}
395
538
 
396
539
  Usage: /config zrouter-url <url|clear>` });
397
540
  return;
@@ -399,7 +542,7 @@ Usage: /config zrouter-url <url|clear>` });
399
542
  ctx.config.set('zergProxyUrl', value === 'clear' ? undefined : value);
400
543
  await ctx.config.save();
401
544
  ctx.reloadAgent();
402
- ctx.addMessage({ role: 'system', content: `✓ ZRouter URL ${value === 'clear' ? 'cleared' : `set: ${value}`} (${ctx.config.getConfigScope?.() || 'global'} scope)` });
545
+ ctx.addMessage({ role: 'system', content: `✓ Zerg Router URL ${value === 'clear' ? 'cleared' : `set: ${value}`} (${ctx.config.getConfigScope?.() || 'global'} scope)` });
403
546
  break;
404
547
  case 'endpoint':
405
548
  if (!value) {
@@ -436,7 +579,7 @@ Usage: /config zrouter-url <url|clear>` });
436
579
  const authMode = ctx.config.getAuthMode?.() || ctx.config.get().authMode || 'auto';
437
580
  ctx.addMessage({
438
581
  role: 'system',
439
- content: `Current auth mode: ${authMode}\n\nUsage: /config auth-mode <auto|direct|zrouter>\n direct Use provider API key and ignore ZRouter\n zrouter Use platform ZRouter when auth token is present\n auto Prefer ZRouter when available, otherwise use provider API key`
582
+ content: `Current routing: ${authMode}\n\nUsage: /config routing <auto|direct|zrouter>\n direct Local API keys only; never Zerg Router\n zrouter Zerg Router only, with your ZergAI login\n auto Zerg Router while you are logged in with ZergAI, except local logins and a Gemini API key;\n otherwise local API keys`
440
583
  });
441
584
  return;
442
585
  }
@@ -444,7 +587,7 @@ Usage: /config zrouter-url <url|clear>` });
444
587
  if (!mode) {
445
588
  ctx.addMessage({
446
589
  role: 'system',
447
- content: 'Usage: /config auth-mode <auto|direct|zrouter>'
590
+ content: 'Usage: /config routing <auto|direct|zrouter>'
448
591
  });
449
592
  return;
450
593
  }
@@ -458,16 +601,19 @@ Usage: /config zrouter-url <url|clear>` });
458
601
  ctx.reloadAgent();
459
602
  const envOverride = process.env.ZTC_LLM_AUTH_MODE || process.env.ZERG_LLM_AUTH_MODE;
460
603
  const detail = mode === 'direct'
461
- ? 'direct provider API key'
604
+ ? 'local API keys'
462
605
  : mode === 'zrouter'
463
- ? 'platform ZRouter'
464
- : 'auto routing';
606
+ ? 'Zerg Router'
607
+ : 'Zerg Router while logged in with ZergAI, otherwise local API keys';
465
608
  ctx.addMessage({
466
609
  role: 'system',
467
- content: `✓ Auth mode updated: ${mode} (${detail})${envOverride ? `\n Environment override is set (${envOverride}); unset ZTC_LLM_AUTH_MODE/ZERG_LLM_AUTH_MODE for this config value to take effect.` : ''}`
610
+ content: `✓ Routing updated: ${mode} (${detail})${envOverride ? `\n Environment override is set (${envOverride}); unset ZTC_LLM_AUTH_MODE/ZERG_LLM_AUTH_MODE for this config value to take effect.` : ''}`
468
611
  });
469
612
  break;
470
613
  }
614
+ case 'openrouter':
615
+ await configureOpenRouter(rest, ctx);
616
+ return;
471
617
  case 'goal-max-turns':
472
618
  case 'goalmaxturns': {
473
619
  const current = ctx.config.get().goalMaxTurns;
@@ -524,21 +670,7 @@ Usage: /config zrouter-url <url|clear>` });
524
670
  });
525
671
  return;
526
672
  }
527
- // Verify the selection builds a backend BEFORE persisting so an
528
- // unbuildable choice never lands in config.json nor earns a false "✓".
529
- const activeProvider = ctx.config.getProvider();
530
- if (!isBuildableResolvedConfig(ctx.config.resolveLLMBackendConfig({ provider: activeProvider, model: value }))) {
531
- ctx.addMessage({ role: 'system', content: unbuildableSelectionMessage(activeProvider) });
532
- return;
533
- }
534
- ctx.config.set('model', value);
535
- await ctx.config.save();
536
- applyRuntimeModelSelection(ctx, activeProvider, value);
537
- const envPinnedModel = process.env.ZTC_MODEL || process.env.LLM_MODEL;
538
- ctx.addMessage({
539
- role: 'system',
540
- content: `✓ Model updated: ${value} (${ctx.config.getConfigScope?.() || 'global'} scope)${envPinnedModel ? `\n Deployment currently pins model=${envPinnedModel}; this override may reset on refresh or restart.` : ''}`
541
- });
673
+ await setConfigModel(value, ctx);
542
674
  break;
543
675
  }
544
676
  case 'manifests-dir':
@@ -1012,9 +1144,183 @@ Usage: /config context-progress-bar <enabled|accent|warning|critical|track|reset
1012
1144
  });
1013
1145
  return;
1014
1146
  }
1147
+ case 'help':
1148
+ ctx.addMessage({ role: 'system', content: CONFIG_HELP });
1149
+ return;
1015
1150
  default:
1016
1151
  // No subcommand or unknown → open interactive settings menu
1017
1152
  return settingsCommand.handler(subCmd ? [subCmd, ...rest] : [], ctx);
1018
1153
  }
1019
1154
  }
1020
1155
  };
1156
+ /** Quantizations OpenRouter routes by (https://openrouter.ai/docs/features/provider-routing). */
1157
+ const OPENROUTER_QUANTIZATIONS = ['int4', 'int8', 'fp4', 'fp6', 'fp8', 'fp16', 'bf16', 'fp32', 'unknown'];
1158
+ const OPENROUTER_ROUTES = { default: undefined, cheapest: 'floor', floor: 'floor', fastest: 'nitro', nitro: 'nitro' };
1159
+ /** Each numeric limit /config openrouter limit sets, with a range inside the one Router accepts, and whom it applies to. */
1160
+ const OPENROUTER_LIMITS = {
1161
+ 'max-input': { key: 'maxInputPrice', low: 0, high: 10_000, unit: 'USD per 1M input tokens' },
1162
+ 'max-output': { key: 'maxOutputPrice', low: 0, high: 10_000, unit: 'USD per 1M output tokens' },
1163
+ 'min-throughput': { key: 'minThroughput', low: 1, high: 100_000, unit: 'tokens per second' },
1164
+ 'max-latency': { key: 'maxLatency', low: 0.05, high: 600, unit: 'seconds to the first token' },
1165
+ 'min-uptime': { key: 'minUptime', low: 1, high: 100, unit: 'percent over the last day' },
1166
+ };
1167
+ /** The shares of a model's providers to beat the reasoning page offers, 0 for none. */
1168
+ const OPENROUTER_SHARES = [0, 25, 50, 75, 90];
1169
+ const OPENROUTER_SHARE_LIMITS = { 'faster-than': 'fasterThan', 'quicker-than': 'quickerThan' };
1170
+ const OPENROUTER_LIMIT_USAGE = 'Usage: /config openrouter limit faster-than|quicker-than <share>|default | min-uptime <percent>'
1171
+ + ' | speed prefer|require (every model); max-input|max-output <usd> | min-throughput <tok/s> | max-latency <seconds> (this model); any clears a limit';
1172
+ /** Every model's limits, as `faster than 75% of providers · any latency · ≥ 99% uptime · speed preferred`. */
1173
+ function describeProfileLimits(limits) {
1174
+ const share = (rank, verb, kind) => rank === undefined ? `Router's default ${kind} share`
1175
+ : rank === 0 ? `any ${kind}` : `${verb} than ${rank}% of providers`;
1176
+ return [share(limits?.fasterThan, 'faster', 'throughput'), share(limits?.quickerThan, 'quicker', 'latency'),
1177
+ ...(limits?.minUptime === undefined ? [] : [`≥ ${limits.minUptime}% uptime`]),
1178
+ `speed ${limits?.requireSpeed ? 'required' : 'preferred'}`].join(' · ');
1179
+ }
1180
+ /** One model's limits, as `≤ $1.10 out · ≥ 120 tok/s · ≤ 0.8s latency`, or none. */
1181
+ function describeModelLimits(limits) {
1182
+ return [limits?.maxInputPrice === undefined ? '' : `≤ ${formatRate(limits.maxInputPrice)} in`,
1183
+ limits?.maxOutputPrice === undefined ? '' : `≤ ${formatRate(limits.maxOutputPrice)} out`,
1184
+ limits?.minThroughput === undefined ? '' : `≥ ${limits.minThroughput} tok/s`,
1185
+ limits?.maxLatency === undefined ? '' : `≤ ${limits.maxLatency}s latency`].filter(Boolean).join(' · ') || 'none';
1186
+ }
1187
+ /**
1188
+ * /config openrouter: the preferences ZTC sends with OpenRouter models through
1189
+ * ZergRouter. Zero data retention and quantizations narrow the providers
1190
+ * OpenRouter may pick; routing appends :floor (cheapest) or :nitro (fastest).
1191
+ */
1192
+ async function configureOpenRouter(args, ctx) {
1193
+ const current = ctx.config.get().openRouter ?? {};
1194
+ const model = String(ctx.config.get().model ?? '');
1195
+ const [setting, ...values] = args.map(arg => arg.trim()).filter(Boolean);
1196
+ const save = async (next, message) => {
1197
+ ctx.config.set('openRouter', next);
1198
+ await ctx.config.save();
1199
+ ctx.addMessage({ role: 'system', content: `✓ ${message}` });
1200
+ };
1201
+ const { zdr: _zdr, quantizations: _quantizations, variant: _variant, ...others } = current;
1202
+ switch (setting?.toLowerCase()) {
1203
+ case undefined: {
1204
+ const route = current.variant === 'floor' ? 'cheapest' : current.variant === 'nitro' ? 'fastest' : 'OpenRouter default';
1205
+ ctx.addMessage({ role: 'system', content: [
1206
+ 'OpenRouter preferences (sent with openrouter/... models through ZergRouter)',
1207
+ ` Zero data retention: ${current.zdr ? 'on' : 'off'}`,
1208
+ ` Quantizations: ${current.quantizations?.length ? current.quantizations.join(', ') : 'any'}`,
1209
+ ` Routing: ${route}`,
1210
+ ` Limits for every model: ${describeProfileLimits(current.limits)}`,
1211
+ ...(model.startsWith('openrouter/') ? [` Limits for ${model}: ${describeModelLimits(current.modelLimits?.[model])}`] : []),
1212
+ '',
1213
+ 'Usage:',
1214
+ ' /config openrouter zdr on|off',
1215
+ ` /config openrouter quantizations <${OPENROUTER_QUANTIZATIONS.join('|')},...>|any`,
1216
+ ' /config openrouter routing default|cheapest|fastest',
1217
+ ' /config openrouter limit faster-than|quicker-than 0|25|50|75|90|default (every model)',
1218
+ ' /config openrouter limit min-uptime <percent>|any, speed prefer|require (every model)',
1219
+ ' /config openrouter limit max-input|max-output|min-throughput|max-latency <value>|any (this model)',
1220
+ 'The reasoning page (/effort) also sets routing, rules and limits.',
1221
+ ].join('\n') });
1222
+ return;
1223
+ }
1224
+ case 'zdr': {
1225
+ const on = values[0]?.toLowerCase();
1226
+ if (on !== 'on' && on !== 'off') {
1227
+ ctx.addMessage({ role: 'system', content: 'Usage: /config openrouter zdr on|off' });
1228
+ return;
1229
+ }
1230
+ const { variant, quantizations } = current;
1231
+ await save({ ...others, ...(on === 'on' ? { zdr: true } : {}), ...(quantizations ? { quantizations } : {}), ...(variant ? { variant } : {}) }, on === 'on' ? 'OpenRouter: zero-data-retention providers only' : 'OpenRouter: any provider');
1232
+ return;
1233
+ }
1234
+ case 'quantizations':
1235
+ case 'quantization': {
1236
+ const list = values.join(' ').split(/[\s,]+/).map(value => value.toLowerCase()).filter(Boolean);
1237
+ const { zdr, variant } = current;
1238
+ const keep = { ...others, ...(zdr ? { zdr } : {}), ...(variant ? { variant } : {}) };
1239
+ if (list.length === 1 && list[0] === 'any') {
1240
+ await save(keep, 'OpenRouter: any quantization');
1241
+ return;
1242
+ }
1243
+ const unknown = list.filter(value => !OPENROUTER_QUANTIZATIONS.includes(value));
1244
+ if (list.length === 0 || unknown.length > 0) {
1245
+ ctx.addMessage({ role: 'system', content: `${unknown.length ? `Unknown quantization: ${unknown.join(', ')}. ` : ''}`
1246
+ + `Choose from ${OPENROUTER_QUANTIZATIONS.join(', ')}, or any.` });
1247
+ return;
1248
+ }
1249
+ const chosen = [...new Set(list)];
1250
+ await save({ ...keep, quantizations: chosen }, `OpenRouter quantizations: ${chosen.join(', ')}`);
1251
+ return;
1252
+ }
1253
+ case 'routing': {
1254
+ const name = values[0]?.toLowerCase() ?? '';
1255
+ if (!(name in OPENROUTER_ROUTES)) {
1256
+ ctx.addMessage({ role: 'system', content: 'Usage: /config openrouter routing default|cheapest|fastest' });
1257
+ return;
1258
+ }
1259
+ const variant = OPENROUTER_ROUTES[name];
1260
+ const { zdr, quantizations } = current;
1261
+ await save({ ...others, ...(zdr ? { zdr } : {}), ...(quantizations ? { quantizations } : {}), ...(variant ? { variant } : {}) }, `OpenRouter routing: ${variant === 'floor' ? 'cheapest' : variant === 'nitro' ? 'fastest' : 'OpenRouter default'}`);
1262
+ return;
1263
+ }
1264
+ case 'limit':
1265
+ case 'limits': {
1266
+ const [name = '', raw = ''] = values.map(value => value.toLowerCase());
1267
+ const { limits: _limits, modelLimits: _modelLimits, ...rest } = current;
1268
+ const profile = current.limits ?? {};
1269
+ const saveProfile = async (limits) => save({ ...rest, ...(Object.keys(limits).length ? { limits } : {}),
1270
+ ...(current.modelLimits ? { modelLimits: current.modelLimits } : {}) }, `OpenRouter limits for every model: ${describeProfileLimits(limits)}`);
1271
+ if (name === 'speed') {
1272
+ if (raw !== 'prefer' && raw !== 'require') {
1273
+ ctx.addMessage({ role: 'system', content: OPENROUTER_LIMIT_USAGE });
1274
+ return;
1275
+ }
1276
+ const { requireSpeed: _require, ...others } = profile;
1277
+ await saveProfile(raw === 'require' ? { ...others, requireSpeed: true } : others);
1278
+ return;
1279
+ }
1280
+ const share = OPENROUTER_SHARE_LIMITS[name];
1281
+ if (share) {
1282
+ const { [share]: _old, ...others } = profile;
1283
+ if (raw === 'default') {
1284
+ await saveProfile(others);
1285
+ return;
1286
+ }
1287
+ const rank = Number(raw.replace(/%$/, ''));
1288
+ if (!raw || !OPENROUTER_SHARES.includes(rank)) {
1289
+ ctx.addMessage({ role: 'system', content: `${name} takes ${OPENROUTER_SHARES.slice(0, -1).join(', ')} or ${OPENROUTER_SHARES.at(-1)}`
1290
+ + ' (percent of the model\'s providers to beat; 0 for none), or default.' });
1291
+ return;
1292
+ }
1293
+ await saveProfile({ ...others, [share]: rank });
1294
+ return;
1295
+ }
1296
+ const limit = OPENROUTER_LIMITS[name];
1297
+ if (!limit || !raw) {
1298
+ ctx.addMessage({ role: 'system', content: OPENROUTER_LIMIT_USAGE });
1299
+ return;
1300
+ }
1301
+ const value = raw === 'any' ? undefined : Number(raw.replace(/^\$/, '').replace(/(tok\/s|%|s)$/, ''));
1302
+ if (value !== undefined && (!Number.isFinite(value) || value < limit.low || value > limit.high)) {
1303
+ ctx.addMessage({ role: 'system', content: `${name} takes ${limit.unit}, between ${limit.low} and ${limit.high}.` });
1304
+ return;
1305
+ }
1306
+ if (limit.key === 'minUptime') {
1307
+ const { minUptime: _old, ...others } = profile;
1308
+ await saveProfile(value === undefined ? others : { ...others, minUptime: value });
1309
+ return;
1310
+ }
1311
+ // Price caps and fixed speed mean something only for one model: the current one.
1312
+ if (!model.startsWith('openrouter/')) {
1313
+ ctx.addMessage({ role: 'system', content: `${name} is set per OpenRouter model. Choose an OpenRouter model with /model first.` });
1314
+ return;
1315
+ }
1316
+ const { [model]: own = {}, ...otherModels } = current.modelLimits ?? {};
1317
+ const { [limit.key]: _old, ...kept } = own;
1318
+ const next = value === undefined ? kept : { ...kept, [limit.key]: value };
1319
+ const models = Object.keys(next).length ? { ...otherModels, [model]: next } : otherModels;
1320
+ await save({ ...rest, ...(current.limits ? { limits: current.limits } : {}), ...(Object.keys(models).length ? { modelLimits: models } : {}) }, `OpenRouter limits for ${model}: ${describeModelLimits(next)}`);
1321
+ return;
1322
+ }
1323
+ default:
1324
+ ctx.addMessage({ role: 'system', content: 'Usage: /config openrouter [zdr on|off | quantizations <list>|any | routing default|cheapest|fastest | limit <name> <value>|any]' });
1325
+ }
1326
+ }
@@ -0,0 +1,20 @@
1
+ import type { Command, CommandContext } from './types.js';
2
+ export declare const connectCommand: Command;
3
+ /**
4
+ * After a ZergAI logout that leaves no model reachable, ask how to connect
5
+ * again, as launch does; mid-session the choice can be closed. Without a
6
+ * person to ask, say so and point to /connect.
7
+ */
8
+ export declare function offerConnectAfterLogout(ctx: CommandContext): void;
9
+ /**
10
+ * Ask how to reach a model. `launch` is the prompt ZTC opens by itself at
11
+ * launch, and it must end in a choice: typing and Escape do not close it,
12
+ * Escape further on steps back towards it, and choosing ZergAI starts the
13
+ * login at once.
14
+ */
15
+ export declare function showConnectPrompt(ctx: CommandContext, { launch, noBrowser, onFinished }?: {
16
+ launch?: boolean;
17
+ noBrowser?: boolean;
18
+ /** For the launch prompt: runs once when its flow has ended (see LaunchFlow). */
19
+ onFinished?: () => void;
20
+ }): void;