@humain/terminal 0.0.2 → 0.0.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +241 -24
- package/README.md +143 -119
- package/dist/cli/args.d.ts +4 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +37 -39
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth-check.d.ts +19 -0
- package/dist/cli/auth-check.d.ts.map +1 -0
- package/dist/cli/auth-check.js +50 -0
- package/dist/cli/auth-check.js.map +1 -0
- package/dist/cli/auth-command.d.ts +24 -0
- package/dist/cli/auth-command.d.ts.map +1 -0
- package/dist/cli/auth-command.js +103 -0
- package/dist/cli/auth-command.js.map +1 -0
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +2 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts +5 -15
- package/dist/cli/credential-print.d.ts.map +1 -1
- package/dist/cli/credential-print.js +42 -83
- package/dist/cli/credential-print.js.map +1 -1
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +130 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +28 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/list-models.d.ts +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +2 -2
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +2 -2
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -10
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +72 -70
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +25 -9
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +237 -39
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +60 -41
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +2 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +3 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +27 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +5 -0
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/keybindings.d.ts +45 -5
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts +29 -5
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +4 -0
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts +5 -3
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +13 -10
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +4 -3
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +42 -10
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +30 -13
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +233 -73
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts +12 -7
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +83 -14
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts +6 -3
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +80 -61
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts +8 -0
- package/dist/core/pi-manifest.d.ts.map +1 -0
- package/dist/core/pi-manifest.js +28 -0
- package/dist/core/pi-manifest.js.map +1 -0
- package/dist/core/provider-composer.d.ts +4 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +36 -15
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +73 -67
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +2 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +5 -5
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js +11 -8
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +2 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +3 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +40 -16
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +8 -0
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +5 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +16 -15
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +4 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +11 -7
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +7 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +16 -19
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +4 -0
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +5 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts +4 -0
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +5 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +4 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +7 -3
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/write.d.ts +4 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +6 -2
- package/dist/core/tools/write.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +11 -2
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +21 -7
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/humain/agent-execution-protocol.d.ts +218 -0
- package/dist/humain/agent-execution-protocol.d.ts.map +1 -0
- package/dist/humain/agent-execution-protocol.js +204 -0
- package/dist/humain/agent-execution-protocol.js.map +1 -0
- package/dist/humain/agent-execution-runtime.d.ts +35 -0
- package/dist/humain/agent-execution-runtime.d.ts.map +1 -0
- package/dist/humain/agent-execution-runtime.js +170 -0
- package/dist/humain/agent-execution-runtime.js.map +1 -0
- package/dist/humain/index.d.ts.map +1 -1
- package/dist/humain/index.js +8 -7
- package/dist/humain/index.js.map +1 -1
- package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +660 -0
- package/dist/humain/mcp-adapter/vendor/LICENSE +21 -0
- package/dist/humain/mcp-adapter/vendor/README.md +733 -0
- package/dist/humain/mcp-adapter/vendor/abort.ts +34 -0
- package/dist/humain/mcp-adapter/vendor/agent-dir.ts +60 -0
- package/dist/humain/mcp-adapter/vendor/agent-plugin-loader.ts +377 -0
- package/dist/humain/mcp-adapter/vendor/app-bridge.bundle.js +67 -0
- package/dist/humain/mcp-adapter/vendor/banner.png +0 -0
- package/dist/humain/mcp-adapter/vendor/cli.js +209 -0
- package/dist/humain/mcp-adapter/vendor/commands.ts +627 -0
- package/dist/humain/mcp-adapter/vendor/config.ts +1226 -0
- package/dist/humain/mcp-adapter/vendor/consent-manager.ts +64 -0
- package/dist/humain/mcp-adapter/vendor/direct-tools.ts +604 -0
- package/dist/humain/mcp-adapter/vendor/elicitation-handler.ts +348 -0
- package/dist/humain/mcp-adapter/vendor/error-signal.ts +21 -0
- package/dist/humain/mcp-adapter/vendor/errors.ts +223 -0
- package/dist/humain/mcp-adapter/vendor/glimpse-ui.ts +80 -0
- package/dist/humain/mcp-adapter/vendor/host-html-template.ts +461 -0
- package/dist/humain/mcp-adapter/vendor/index.bundle.d.mts +4 -0
- package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +15923 -0
- package/dist/humain/mcp-adapter/vendor/index.ts +898 -0
- package/dist/humain/mcp-adapter/vendor/init.ts +649 -0
- package/dist/humain/mcp-adapter/vendor/json-schema-validator.ts +69 -0
- package/dist/humain/mcp-adapter/vendor/lifecycle.ts +147 -0
- package/dist/humain/mcp-adapter/vendor/logger.ts +169 -0
- package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +993 -0
- package/dist/humain/mcp-adapter/vendor/mcp-auth.ts +1000 -0
- package/dist/humain/mcp-adapter/vendor/mcp-callback-server.ts +510 -0
- package/dist/humain/mcp-adapter/vendor/mcp-code.ts +354 -0
- package/dist/humain/mcp-adapter/vendor/mcp-keyring-helper.cjs +89 -0
- package/dist/humain/mcp-adapter/vendor/mcp-oauth-provider.ts +616 -0
- package/dist/humain/mcp-adapter/vendor/mcp-output-guard.ts +408 -0
- package/dist/humain/mcp-adapter/vendor/mcp-panel.ts +1015 -0
- package/dist/humain/mcp-adapter/vendor/mcp-probe.ts +187 -0
- package/dist/humain/mcp-adapter/vendor/mcp-script-worker.mjs +130 -0
- package/dist/humain/mcp-adapter/vendor/mcp-setup-panel.ts +666 -0
- package/dist/humain/mcp-adapter/vendor/mcp-status.ts +109 -0
- package/dist/humain/mcp-adapter/vendor/mcp-trace.ts +306 -0
- package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +353 -0
- package/dist/humain/mcp-adapter/vendor/npx-resolver.ts +543 -0
- package/dist/humain/mcp-adapter/vendor/oauth-handler.ts +30 -0
- package/dist/humain/mcp-adapter/vendor/oauth.ts +48 -0
- package/dist/humain/mcp-adapter/vendor/onboarding-state.ts +76 -0
- package/dist/humain/mcp-adapter/vendor/package.json +178 -0
- package/dist/humain/mcp-adapter/vendor/panel-keys.ts +53 -0
- package/dist/humain/mcp-adapter/vendor/prompts.ts +353 -0
- package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +1331 -0
- package/dist/humain/mcp-adapter/vendor/resource-tools.ts +17 -0
- package/dist/humain/mcp-adapter/vendor/runtime-owner.ts +91 -0
- package/dist/humain/mcp-adapter/vendor/sampling-handler.ts +284 -0
- package/dist/humain/mcp-adapter/vendor/search-ranking.ts +206 -0
- package/dist/humain/mcp-adapter/vendor/server-manager.ts +1124 -0
- package/dist/humain/mcp-adapter/vendor/session-recovery.ts +151 -0
- package/dist/humain/mcp-adapter/vendor/skills/mcp-scripting/SKILL.md +38 -0
- package/dist/humain/mcp-adapter/vendor/state.ts +62 -0
- package/dist/humain/mcp-adapter/vendor/tool-approval.ts +182 -0
- package/dist/humain/mcp-adapter/vendor/tool-metadata.ts +276 -0
- package/dist/humain/mcp-adapter/vendor/tool-registrar.ts +253 -0
- package/dist/humain/mcp-adapter/vendor/tool-result-renderer.ts +423 -0
- package/dist/humain/mcp-adapter/vendor/ts-shape.ts +149 -0
- package/dist/humain/mcp-adapter/vendor/types.ts +859 -0
- package/dist/humain/mcp-adapter/vendor/ui-app-bridge-helpers.ts +40 -0
- package/dist/humain/mcp-adapter/vendor/ui-resource-handler.ts +250 -0
- package/dist/humain/mcp-adapter/vendor/ui-server.ts +866 -0
- package/dist/humain/mcp-adapter/vendor/ui-session.ts +570 -0
- package/dist/humain/mcp-adapter/vendor/ui-stream-types.ts +89 -0
- package/dist/humain/mcp-adapter/vendor/ui-tool-visibility.ts +25 -0
- package/dist/humain/mcp-adapter/vendor/unix-socket-transport.ts +85 -0
- package/dist/humain/mcp-adapter/vendor/utils.ts +310 -0
- package/dist/humain/mcp-adapter.d.ts +3 -0
- package/dist/humain/mcp-adapter.d.ts.map +1 -0
- package/dist/humain/mcp-adapter.js +5 -0
- package/dist/humain/mcp-adapter.js.map +1 -0
- package/dist/humain/pi-agent-execution-host.d.ts +34 -0
- package/dist/humain/pi-agent-execution-host.d.ts.map +1 -0
- package/dist/humain/pi-agent-execution-host.js +77 -0
- package/dist/humain/pi-agent-execution-host.js.map +1 -0
- package/dist/humain/web-access/host.d.ts +4 -0
- package/dist/humain/web-access/host.d.ts.map +1 -0
- package/dist/humain/web-access/host.js +3 -0
- package/dist/humain/web-access/host.js.map +1 -0
- package/dist/humain/web-access/index.d.ts +3 -0
- package/dist/humain/web-access/index.d.ts.map +1 -0
- package/dist/humain/web-access/index.js +5 -0
- package/dist/humain/web-access/index.js.map +1 -0
- package/dist/humain/web-access/vendor/activity.d.ts +34 -0
- package/dist/humain/web-access/vendor/activity.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/activity.js +68 -0
- package/dist/humain/web-access/vendor/activity.js.map +1 -0
- package/dist/humain/web-access/vendor/anysearch.d.ts +8 -0
- package/dist/humain/web-access/vendor/anysearch.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/anysearch.js +167 -0
- package/dist/humain/web-access/vendor/anysearch.js.map +1 -0
- package/dist/humain/web-access/vendor/bocha.d.ts +4 -0
- package/dist/humain/web-access/vendor/bocha.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/bocha.js +219 -0
- package/dist/humain/web-access/vendor/bocha.js.map +1 -0
- package/dist/humain/web-access/vendor/brave.d.ts +4 -0
- package/dist/humain/web-access/vendor/brave.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/brave.js +194 -0
- package/dist/humain/web-access/vendor/brave.js.map +1 -0
- package/dist/humain/web-access/vendor/brightdata-unlocker.d.ts +12 -0
- package/dist/humain/web-access/vendor/brightdata-unlocker.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/brightdata-unlocker.js +230 -0
- package/dist/humain/web-access/vendor/brightdata-unlocker.js.map +1 -0
- package/dist/humain/web-access/vendor/brightdata.d.ts +8 -0
- package/dist/humain/web-access/vendor/brightdata.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/brightdata.js +519 -0
- package/dist/humain/web-access/vendor/brightdata.js.map +1 -0
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts +10 -0
- package/dist/humain/web-access/vendor/chrome-cookies.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/chrome-cookies.js +438 -0
- package/dist/humain/web-access/vendor/chrome-cookies.js.map +1 -0
- package/dist/humain/web-access/vendor/content-find.d.ts +11 -0
- package/dist/humain/web-access/vendor/content-find.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/content-find.js +117 -0
- package/dist/humain/web-access/vendor/content-find.js.map +1 -0
- package/dist/humain/web-access/vendor/credential-source.d.ts +28 -0
- package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/credential-source.js +151 -0
- package/dist/humain/web-access/vendor/credential-source.js.map +1 -0
- package/dist/humain/web-access/vendor/curator-page.d.ts +29 -0
- package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/curator-page.js +3554 -0
- package/dist/humain/web-access/vendor/curator-page.js.map +1 -0
- package/dist/humain/web-access/vendor/curator-server.d.ts +93 -0
- package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/curator-server.js +688 -0
- package/dist/humain/web-access/vendor/curator-server.js.map +1 -0
- package/dist/humain/web-access/vendor/datalab-pdf-extract.d.ts +60 -0
- package/dist/humain/web-access/vendor/datalab-pdf-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/datalab-pdf-extract.js +416 -0
- package/dist/humain/web-access/vendor/datalab-pdf-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/declared-web-links.d.ts +16 -0
- package/dist/humain/web-access/vendor/declared-web-links.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/declared-web-links.js +168 -0
- package/dist/humain/web-access/vendor/declared-web-links.js.map +1 -0
- package/dist/humain/web-access/vendor/duckduckgo.d.ts +4 -0
- package/dist/humain/web-access/vendor/duckduckgo.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/duckduckgo.js +123 -0
- package/dist/humain/web-access/vendor/duckduckgo.js.map +1 -0
- package/dist/humain/web-access/vendor/exa.d.ts +10 -0
- package/dist/humain/web-access/vendor/exa.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/exa.js +426 -0
- package/dist/humain/web-access/vendor/exa.js.map +1 -0
- package/dist/humain/web-access/vendor/extract.d.ts +46 -0
- package/dist/humain/web-access/vendor/extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/extract.js +1064 -0
- package/dist/humain/web-access/vendor/extract.js.map +1 -0
- package/dist/humain/web-access/vendor/feature-config.d.ts +3 -0
- package/dist/humain/web-access/vendor/feature-config.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/feature-config.js +27 -0
- package/dist/humain/web-access/vendor/feature-config.js.map +1 -0
- package/dist/humain/web-access/vendor/fetch-params.d.ts +25 -0
- package/dist/humain/web-access/vendor/fetch-params.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/fetch-params.js +57 -0
- package/dist/humain/web-access/vendor/fetch-params.js.map +1 -0
- package/dist/humain/web-access/vendor/firecrawl.d.ts +12 -0
- package/dist/humain/web-access/vendor/firecrawl.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/firecrawl.js +239 -0
- package/dist/humain/web-access/vendor/firecrawl.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-api.d.ts +27 -0
- package/dist/humain/web-access/vendor/gemini-api.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-api.js +230 -0
- package/dist/humain/web-access/vendor/gemini-api.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-pdf-extract.d.ts +9 -0
- package/dist/humain/web-access/vendor/gemini-pdf-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-pdf-extract.js +85 -0
- package/dist/humain/web-access/vendor/gemini-pdf-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-search.d.ts +40 -0
- package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-search.js +814 -0
- package/dist/humain/web-access/vendor/gemini-search.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-url-context.d.ts +4 -0
- package/dist/humain/web-access/vendor/gemini-url-context.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-url-context.js +101 -0
- package/dist/humain/web-access/vendor/gemini-url-context.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts +4 -0
- package/dist/humain/web-access/vendor/gemini-web-config.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-web-config.js +42 -0
- package/dist/humain/web-access/vendor/gemini-web-config.js.map +1 -0
- package/dist/humain/web-access/vendor/gemini-web.d.ts +18 -0
- package/dist/humain/web-access/vendor/gemini-web.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/gemini-web.js +385 -0
- package/dist/humain/web-access/vendor/gemini-web.js.map +1 -0
- package/dist/humain/web-access/vendor/github-api.d.ts +7 -0
- package/dist/humain/web-access/vendor/github-api.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/github-api.js +160 -0
- package/dist/humain/web-access/vendor/github-api.js.map +1 -0
- package/dist/humain/web-access/vendor/github-extract.d.ts +13 -0
- package/dist/humain/web-access/vendor/github-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/github-extract.js +635 -0
- package/dist/humain/web-access/vendor/github-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/index.d.ts +4 -0
- package/dist/humain/web-access/vendor/index.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/index.js +3002 -0
- package/dist/humain/web-access/vendor/index.js.map +1 -0
- package/dist/humain/web-access/vendor/jina-search.d.ts +8 -0
- package/dist/humain/web-access/vendor/jina-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/jina-search.js +255 -0
- package/dist/humain/web-access/vendor/jina-search.js.map +1 -0
- package/dist/humain/web-access/vendor/kagi.d.ts +15 -0
- package/dist/humain/web-access/vendor/kagi.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/kagi.js +262 -0
- package/dist/humain/web-access/vendor/kagi.js.map +1 -0
- package/dist/humain/web-access/vendor/ollama.d.ts +15 -0
- package/dist/humain/web-access/vendor/ollama.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/ollama.js +216 -0
- package/dist/humain/web-access/vendor/ollama.js.map +1 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts +15 -0
- package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/openai-search.js +459 -0
- package/dist/humain/web-access/vendor/openai-search.js.map +1 -0
- package/dist/humain/web-access/vendor/page-query.d.ts +16 -0
- package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/page-query.js +79 -0
- package/dist/humain/web-access/vendor/page-query.js.map +1 -0
- package/dist/humain/web-access/vendor/parallel.d.ts +12 -0
- package/dist/humain/web-access/vendor/parallel.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/parallel.js +343 -0
- package/dist/humain/web-access/vendor/parallel.js.map +1 -0
- package/dist/humain/web-access/vendor/pdf-extract.d.ts +44 -0
- package/dist/humain/web-access/vendor/pdf-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/pdf-extract.js +298 -0
- package/dist/humain/web-access/vendor/pdf-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/perplexity.d.ts +20 -0
- package/dist/humain/web-access/vendor/perplexity.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/perplexity.js +159 -0
- package/dist/humain/web-access/vendor/perplexity.js.map +1 -0
- package/dist/humain/web-access/vendor/querit.d.ts +10 -0
- package/dist/humain/web-access/vendor/querit.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/querit.js +335 -0
- package/dist/humain/web-access/vendor/querit.js.map +1 -0
- package/dist/humain/web-access/vendor/render-search-error.d.ts +57 -0
- package/dist/humain/web-access/vendor/render-search-error.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/render-search-error.js +130 -0
- package/dist/humain/web-access/vendor/render-search-error.js.map +1 -0
- package/dist/humain/web-access/vendor/rsc-extract.d.ts +12 -0
- package/dist/humain/web-access/vendor/rsc-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/rsc-extract.js +329 -0
- package/dist/humain/web-access/vendor/rsc-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/search1api.d.ts +10 -0
- package/dist/humain/web-access/vendor/search1api.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/search1api.js +251 -0
- package/dist/humain/web-access/vendor/search1api.js.map +1 -0
- package/dist/humain/web-access/vendor/searchinfinity.d.ts +8 -0
- package/dist/humain/web-access/vendor/searchinfinity.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/searchinfinity.js +229 -0
- package/dist/humain/web-access/vendor/searchinfinity.js.map +1 -0
- package/dist/humain/web-access/vendor/searxng.d.ts +4 -0
- package/dist/humain/web-access/vendor/searxng.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/searxng.js +238 -0
- package/dist/humain/web-access/vendor/searxng.js.map +1 -0
- package/dist/humain/web-access/vendor/serpbase.d.ts +4 -0
- package/dist/humain/web-access/vendor/serpbase.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/serpbase.js +211 -0
- package/dist/humain/web-access/vendor/serpbase.js.map +1 -0
- package/dist/humain/web-access/vendor/serpdive.d.ts +8 -0
- package/dist/humain/web-access/vendor/serpdive.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/serpdive.js +267 -0
- package/dist/humain/web-access/vendor/serpdive.js.map +1 -0
- package/dist/humain/web-access/vendor/source-check.d.ts +99 -0
- package/dist/humain/web-access/vendor/source-check.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/source-check.js +205 -0
- package/dist/humain/web-access/vendor/source-check.js.map +1 -0
- package/dist/humain/web-access/vendor/ssrf-protection.d.ts +50 -0
- package/dist/humain/web-access/vendor/ssrf-protection.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/ssrf-protection.js +466 -0
- package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -0
- package/dist/humain/web-access/vendor/storage.d.ts +55 -0
- package/dist/humain/web-access/vendor/storage.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/storage.js +485 -0
- package/dist/humain/web-access/vendor/storage.js.map +1 -0
- package/dist/humain/web-access/vendor/summary-model-scope.d.ts +25 -0
- package/dist/humain/web-access/vendor/summary-model-scope.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/summary-model-scope.js +98 -0
- package/dist/humain/web-access/vendor/summary-model-scope.js.map +1 -0
- package/dist/humain/web-access/vendor/summary-review.d.ts +24 -0
- package/dist/humain/web-access/vendor/summary-review.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/summary-review.js +341 -0
- package/dist/humain/web-access/vendor/summary-review.js.map +1 -0
- package/dist/humain/web-access/vendor/tavily.d.ts +8 -0
- package/dist/humain/web-access/vendor/tavily.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/tavily.js +194 -0
- package/dist/humain/web-access/vendor/tavily.js.map +1 -0
- package/dist/humain/web-access/vendor/tinyfish.d.ts +11 -0
- package/dist/humain/web-access/vendor/tinyfish.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/tinyfish.js +331 -0
- package/dist/humain/web-access/vendor/tinyfish.js.map +1 -0
- package/dist/humain/web-access/vendor/utils.d.ts +20 -0
- package/dist/humain/web-access/vendor/utils.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/utils.js +91 -0
- package/dist/humain/web-access/vendor/utils.js.map +1 -0
- package/dist/humain/web-access/vendor/video-extract.d.ts +16 -0
- package/dist/humain/web-access/vendor/video-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/video-extract.js +335 -0
- package/dist/humain/web-access/vendor/video-extract.js.map +1 -0
- package/dist/humain/web-access/vendor/xai-search.d.ts +13 -0
- package/dist/humain/web-access/vendor/xai-search.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/xai-search.js +331 -0
- package/dist/humain/web-access/vendor/xai-search.js.map +1 -0
- package/dist/humain/web-access/vendor/youtube-extract.d.ts +27 -0
- package/dist/humain/web-access/vendor/youtube-extract.d.ts.map +1 -0
- package/dist/humain/web-access/vendor/youtube-extract.js +282 -0
- package/dist/humain/web-access/vendor/youtube-extract.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +2 -2
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +169 -102
- package/dist/main.js.map +1 -1
- package/dist/modes/agent-exec-mode.d.ts +14 -0
- package/dist/modes/agent-exec-mode.d.ts.map +1 -0
- package/dist/modes/agent-exec-mode.js +92 -0
- package/dist/modes/agent-exec-mode.js.map +1 -0
- package/dist/modes/index.d.ts +4 -2
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +2 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -4
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +7 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +75 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +16 -4
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +26 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +8 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +30 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +3 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +9 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +45 -9
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +581 -211
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -0
- package/dist/modes/interactive/theme/light.json +1 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +10 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +5 -1
- package/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +24 -6
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +28 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +12 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +12 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +12 -5
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +55 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +13 -3
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +15 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +11 -9
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/rpc-entry.d.ts.map +1 -1
- package/dist/rpc-entry.js +3 -2
- package/dist/rpc-entry.js.map +1 -1
- package/dist/server/create-harness.d.ts +26 -0
- package/dist/server/create-harness.d.ts.map +1 -0
- package/dist/server/create-harness.js +104 -0
- package/dist/server/create-harness.js.map +1 -0
- package/dist/utils/abort.d.ts +5 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +48 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/clipboard.d.ts +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +22 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/management-http.d.ts +23 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +50 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +23 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts +19 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +45 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +13 -25
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +4 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +23 -5
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +2 -2
- package/docs/custom-provider.md +7 -5
- package/docs/extensions.md +30 -5
- package/docs/humain-terminal.md +21 -1
- package/docs/json.md +24 -19
- package/docs/keybindings.md +46 -14
- package/docs/models.md +32 -11
- package/docs/providers.md +9 -1
- package/docs/quickstart.md +39 -37
- package/docs/rpc.md +31 -11
- package/docs/sdk.md +21 -2
- package/docs/security.md +21 -21
- package/docs/session-format.md +14 -14
- package/docs/settings.md +4 -1
- package/docs/themes.md +5 -3
- package/docs/usage.md +7 -0
- package/examples/extensions/custom-compaction.ts +3 -18
- package/examples/extensions/custom-provider-anthropic/index.ts +5 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +5 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +4 -13
- package/examples/extensions/qna.ts +5 -9
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/summarize.ts +9 -20
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +11 -2
- package/examples/sdk/02-custom-model.ts +2 -3
- package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/examples/sdk/12-full-control.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +2771 -535
- package/package.json +40 -11
- package/src/humain/mcp-adapter/UPSTREAM.md +15 -0
- package/src/humain/mcp-adapter/upstream.json +7 -0
- package/src/humain/mcp-adapter/vendor/CHANGELOG.md +660 -0
- package/src/humain/mcp-adapter/vendor/LICENSE +21 -0
- package/src/humain/web-access/UPSTREAM.md +17 -0
- package/src/humain/web-access/upstream.json +23 -0
- package/src/humain/web-access/vendor/LICENSE +21 -0
package/dist/main.js
CHANGED
|
@@ -9,22 +9,25 @@ import { createInterface } from "node:readline";
|
|
|
9
9
|
import { modelsAreEqual } from "@earendil-works/pi-ai";
|
|
10
10
|
import chalk from "chalk";
|
|
11
11
|
import { parseArgs, printHelp } from "./cli/args.js";
|
|
12
|
-
import {
|
|
12
|
+
import { checkProviderAuth, createAuthCheckModelRuntime, getProviderCredential, } from "./cli/auth-check.js";
|
|
13
|
+
import { AuthCommandError, getAuthCommandName, getAuthCommandUsage, isAuthCommandHelp, parseAuthCommand, printAuthCommandHelp, validateAuthCommandArgs, } from "./cli/auth-command.js";
|
|
14
|
+
import { resolveCredentialForPrint } from "./cli/credential-print.js";
|
|
13
15
|
import { processFileArguments } from "./cli/file-processor.js";
|
|
14
16
|
import { buildInitialMessage } from "./cli/initial-message.js";
|
|
15
17
|
import { listModels } from "./cli/list-models.js";
|
|
16
18
|
import { createProjectTrustContext } from "./cli/project-trust.js";
|
|
17
19
|
import { selectSession } from "./cli/session-picker.js";
|
|
18
20
|
import { shouldRunFirstTimeSetup, showFirstTimeSetup, showStartupSelector } from "./cli/startup-ui.js";
|
|
19
|
-
import { APP_NAME,
|
|
21
|
+
import { APP_NAME, ENV_SESSION_DIR, expandTildePath, getAgentDir, getPackageDir, VERSION } from "./config.js";
|
|
20
22
|
import { createAgentSessionRuntime } from "./core/agent-session-runtime.js";
|
|
21
23
|
import { createAgentSessionFromServices, createAgentSessionServices, } from "./core/agent-session-services.js";
|
|
22
24
|
import { formatNoModelsAvailableMessage } from "./core/auth-guidance.js";
|
|
25
|
+
import { AuthStorage, ReadOnlyAuthStorage } from "./core/auth-storage.js";
|
|
23
26
|
import { exportFromFile } from "./core/export-html/index.js";
|
|
24
27
|
import { applyHttpProxySettings, configureHttpDispatcher } from "./core/http-dispatcher.js";
|
|
25
28
|
import { resolveCliModel, resolveModelScope } from "./core/model-resolver.js";
|
|
26
29
|
import { ModelRuntime } from "./core/model-runtime.js";
|
|
27
|
-
import { restoreStdout, takeOverStdout } from "./core/output-guard.js";
|
|
30
|
+
import { flushRawStdout, restoreStdout, takeOverStdout, writeRawStdout } from "./core/output-guard.js";
|
|
28
31
|
import { resolveProjectTrusted } from "./core/project-trust.js";
|
|
29
32
|
import { formatMissingSessionCwdPrompt, getMissingSessionCwdIssue, MissingSessionCwdError, } from "./core/session-cwd.js";
|
|
30
33
|
import { assertValidSessionId, SessionManager } from "./core/session-manager.js";
|
|
@@ -33,14 +36,15 @@ import { printTimings, resetTimings, time } from "./core/timings.js";
|
|
|
33
36
|
import { hasTrustRequiringProjectResources, ProjectTrustStore } from "./core/trust-manager.js";
|
|
34
37
|
import { builtInExtensions } from "./extensions/index.js";
|
|
35
38
|
import { getHumainBundledExtensionFactories, getHumainDefaultPackageSources, HUMAIN_FORGE_CWD_ENV, } from "./humain/index.js";
|
|
39
|
+
import { createAdmittedPiAgentExecutionHost } from "./humain/pi-agent-execution-host.js";
|
|
36
40
|
import { runMigrations, showDeprecationWarnings } from "./migrations.js";
|
|
37
|
-
import { InteractiveMode, runPrintMode, runRpcMode } from "./modes/index.js";
|
|
41
|
+
import { AgentExecInputError, InteractiveMode, runAgentExecMode, runPrintMode, runRpcMode } from "./modes/index.js";
|
|
38
42
|
import { initTheme, stopThemeWatcher } from "./modes/interactive/theme/theme.js";
|
|
39
43
|
import { handleConfigCommand, handlePackageCommand } from "./package-manager-cli.js";
|
|
40
44
|
import { isLocalPath, normalizePath, resolvePath } from "./utils/paths.js";
|
|
41
45
|
import { cleanupWindowsSelfUpdateQuarantine } from "./utils/windows-self-update.js";
|
|
42
|
-
const HUMAIN_DEFAULT_CWD_ENV = "HUMAIN_TERMINAL_DEFAULT_CWD";
|
|
43
46
|
const EXTENSION_LOAD_FAILURE_HINT = `Hint: Start without extensions using "${APP_NAME} -ne".`;
|
|
47
|
+
const HUMAIN_DEFAULT_CWD_ENV = "HUMAIN_TERMINAL_DEFAULT_CWD";
|
|
44
48
|
/**
|
|
45
49
|
* Read all content from piped stdin.
|
|
46
50
|
* Returns undefined if stdin is a TTY (interactive terminal).
|
|
@@ -84,6 +88,9 @@ function resolveAppMode(parsed, stdinIsTTY, stdoutIsTTY) {
|
|
|
84
88
|
if (parsed.mode === "rpc") {
|
|
85
89
|
return "rpc";
|
|
86
90
|
}
|
|
91
|
+
if (parsed.mode === "agent-exec") {
|
|
92
|
+
return "print";
|
|
93
|
+
}
|
|
87
94
|
if (parsed.mode === "json") {
|
|
88
95
|
return "json";
|
|
89
96
|
}
|
|
@@ -98,17 +105,17 @@ function toPrintOutputMode(appMode) {
|
|
|
98
105
|
function isPlainRuntimeMetadataCommand(parsed) {
|
|
99
106
|
return !parsed.print && parsed.mode === undefined && (parsed.help === true || parsed.listModels !== undefined);
|
|
100
107
|
}
|
|
101
|
-
async function
|
|
102
|
-
if (
|
|
103
|
-
|
|
108
|
+
async function runAuthCommand(args) {
|
|
109
|
+
if (isAuthCommandHelp(args)) {
|
|
110
|
+
printAuthCommandHelp();
|
|
104
111
|
return true;
|
|
105
112
|
}
|
|
106
113
|
let command;
|
|
107
114
|
try {
|
|
108
|
-
command =
|
|
115
|
+
command = parseAuthCommand(args);
|
|
109
116
|
}
|
|
110
117
|
catch (error) {
|
|
111
|
-
const message = error instanceof
|
|
118
|
+
const message = error instanceof AuthCommandError ? error.message : "Failed to parse auth command";
|
|
112
119
|
console.error(chalk.red(`Error: ${message}`));
|
|
113
120
|
process.exitCode = 1;
|
|
114
121
|
return true;
|
|
@@ -116,23 +123,57 @@ async function runCredentialPrintCommand(args) {
|
|
|
116
123
|
if (!command)
|
|
117
124
|
return false;
|
|
118
125
|
const parsed = parseArgs(command.args);
|
|
119
|
-
if (parsed.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
126
|
+
if (parsed.unknownFlags.size > 0) {
|
|
127
|
+
const option = parsed.unknownFlags.keys().next().value;
|
|
128
|
+
console.error(chalk.red(`Unknown option --${option} for "${getAuthCommandName(command.kind)}".`));
|
|
129
|
+
console.error(chalk.dim(`Use "${APP_NAME} --help" or "${getAuthCommandUsage(command.kind)}".`));
|
|
123
130
|
process.exitCode = 1;
|
|
124
131
|
return true;
|
|
125
132
|
}
|
|
126
133
|
try {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
if (parsed.diagnostics.length > 0) {
|
|
135
|
+
throw new AuthCommandError(parsed.diagnostics.map((diagnostic) => diagnostic.message).join("\n"));
|
|
136
|
+
}
|
|
137
|
+
if (command.kind !== "check") {
|
|
138
|
+
const signal = AbortSignal.timeout(15_000);
|
|
139
|
+
const modelRuntime = await ModelRuntime.create({ allowModelNetwork: false, signal });
|
|
140
|
+
const credential = await resolveCredentialForPrint(parsed, modelRuntime, command.kind, command.minExpiryMs, signal);
|
|
141
|
+
process.stdout.write(`${credential}\n`);
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
const requestedAuth = validateAuthCommandArgs(parsed, command.kind);
|
|
145
|
+
let result;
|
|
146
|
+
let credential;
|
|
147
|
+
try {
|
|
148
|
+
const credentials = command.noRefresh ? new ReadOnlyAuthStorage() : AuthStorage.create();
|
|
149
|
+
const modelRuntime = await createAuthCheckModelRuntime(credentials);
|
|
150
|
+
result = await checkProviderAuth(parsed, modelRuntime, { refresh: !command.noRefresh });
|
|
151
|
+
if (command.credentials && result.status === "ready") {
|
|
152
|
+
credential = await getProviderCredential(result.provider, modelRuntime, credentials, {
|
|
153
|
+
refresh: !command.noRefresh,
|
|
154
|
+
});
|
|
155
|
+
if (!credential) {
|
|
156
|
+
result = { status: "not_ready", provider: result.provider, reason: "credential_not_available" };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
result = {
|
|
162
|
+
status: "invalid",
|
|
163
|
+
provider: requestedAuth.provider ?? requestedAuth.model,
|
|
164
|
+
reason: "invalid_state",
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const output = command.json
|
|
168
|
+
? JSON.stringify({ ...result, ...(credential ? { credentials: credential } : {}) })
|
|
169
|
+
: (credential ?? result.status);
|
|
170
|
+
process.stdout.write(`${output}\n`);
|
|
171
|
+
process.exitCode = result.status === "ready" ? 0 : result.status === "not_ready" ? 1 : 2;
|
|
131
172
|
}
|
|
132
173
|
catch (error) {
|
|
133
|
-
const message = error instanceof
|
|
174
|
+
const message = error instanceof AuthCommandError ? error.message : "Failed to resolve credential";
|
|
134
175
|
console.error(chalk.red(`Error: ${message}`));
|
|
135
|
-
process.exitCode = 1;
|
|
176
|
+
process.exitCode = command.kind === "check" ? 2 : 1;
|
|
136
177
|
}
|
|
137
178
|
return true;
|
|
138
179
|
}
|
|
@@ -397,77 +438,40 @@ function buildSessionOptions(parsed, scopedModels, hasExistingSession, modelRunt
|
|
|
397
438
|
function resolveCliPaths(cwd, paths) {
|
|
398
439
|
return paths?.map((value) => (isLocalPath(value) ? resolvePath(value, cwd) : value));
|
|
399
440
|
}
|
|
441
|
+
async function promptForMissingSessionCwd(issue, settingsManager) {
|
|
442
|
+
return showStartupSelector(settingsManager, formatMissingSessionCwdPrompt(issue), [
|
|
443
|
+
{ label: "Continue", value: issue.fallbackCwd },
|
|
444
|
+
{ label: "Cancel", value: undefined },
|
|
445
|
+
]);
|
|
446
|
+
}
|
|
400
447
|
export function stripStartupCwdArgs(args) {
|
|
401
|
-
|
|
402
|
-
for (let index = 0; index < args.length; index++) {
|
|
403
|
-
const arg = args[index];
|
|
404
|
-
if (arg === "--cwd") {
|
|
405
|
-
index++;
|
|
406
|
-
continue;
|
|
407
|
-
}
|
|
408
|
-
if (arg.startsWith("--cwd=")) {
|
|
409
|
-
continue;
|
|
410
|
-
}
|
|
411
|
-
stripped.push(arg);
|
|
412
|
-
}
|
|
413
|
-
return stripped;
|
|
448
|
+
return args.filter((arg, index) => arg !== "--cwd" && args[index - 1] !== "--cwd" && !arg.startsWith("--cwd="));
|
|
414
449
|
}
|
|
415
450
|
export function resolveStartupCwd(parsed, env, currentCwd) {
|
|
416
|
-
const rawCwd = parsed.cwd
|
|
417
|
-
if (!rawCwd)
|
|
451
|
+
const rawCwd = parsed.cwd ?? env[HUMAIN_DEFAULT_CWD_ENV] ?? env[HUMAIN_FORGE_CWD_ENV];
|
|
452
|
+
if (!rawCwd)
|
|
418
453
|
return currentCwd;
|
|
419
|
-
}
|
|
420
454
|
const resolvedCwd = isLocalPath(rawCwd) ? resolvePath(rawCwd, currentCwd) : normalizePath(rawCwd);
|
|
421
|
-
|
|
422
|
-
try {
|
|
423
|
-
stat = statSync(resolvedCwd);
|
|
424
|
-
}
|
|
425
|
-
catch (error) {
|
|
426
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
427
|
-
throw new Error(`Invalid --cwd "${rawCwd}": ${message}`);
|
|
428
|
-
}
|
|
429
|
-
if (!stat.isDirectory()) {
|
|
455
|
+
if (!statSync(resolvedCwd).isDirectory())
|
|
430
456
|
throw new Error(`Invalid --cwd "${rawCwd}": not a directory`);
|
|
431
|
-
}
|
|
432
457
|
return resolvedCwd;
|
|
433
458
|
}
|
|
434
|
-
async function promptForMissingSessionCwd(issue, settingsManager) {
|
|
435
|
-
return showStartupSelector(settingsManager, formatMissingSessionCwdPrompt(issue), [
|
|
436
|
-
{ label: "Continue", value: issue.fallbackCwd },
|
|
437
|
-
{ label: "Cancel", value: undefined },
|
|
438
|
-
]);
|
|
439
|
-
}
|
|
440
|
-
function isPackageOrConfigCommand(args) {
|
|
441
|
-
switch (args[0]) {
|
|
442
|
-
case "config":
|
|
443
|
-
case "install":
|
|
444
|
-
case "list":
|
|
445
|
-
case "remove":
|
|
446
|
-
case "uninstall":
|
|
447
|
-
case "update":
|
|
448
|
-
return true;
|
|
449
|
-
default:
|
|
450
|
-
return false;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
459
|
export async function main(args, options) {
|
|
454
460
|
resetTimings();
|
|
455
|
-
const commandArgs = stripStartupCwdArgs(args);
|
|
456
461
|
const parsed = parseArgs(args);
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
time("parseArgs");
|
|
467
|
-
const offlineMode = parsed.offline || isTruthyEnvFlag(process.env[ENV_OFFLINE]);
|
|
462
|
+
const commandArgs = stripStartupCwdArgs(args);
|
|
463
|
+
const extensionFactories = [
|
|
464
|
+
...builtInExtensions,
|
|
465
|
+
...getHumainBundledExtensionFactories(process.env),
|
|
466
|
+
...(options?.extensionFactories ?? []),
|
|
467
|
+
];
|
|
468
|
+
const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
|
|
468
469
|
if (offlineMode) {
|
|
469
|
-
process.env
|
|
470
|
-
process.env
|
|
470
|
+
process.env.PI_OFFLINE = "1";
|
|
471
|
+
process.env.PI_SKIP_VERSION_CHECK = "1";
|
|
472
|
+
}
|
|
473
|
+
if (await runAuthCommand(commandArgs)) {
|
|
474
|
+
return;
|
|
471
475
|
}
|
|
472
476
|
if (process.platform === "win32") {
|
|
473
477
|
cleanupWindowsSelfUpdateQuarantine(getPackageDir());
|
|
@@ -477,30 +481,22 @@ export async function main(args, options) {
|
|
|
477
481
|
cwd = resolveStartupCwd(parsed, process.env, process.cwd());
|
|
478
482
|
}
|
|
479
483
|
catch (error) {
|
|
480
|
-
|
|
481
|
-
console.error(chalk.red(`Error: ${message}`));
|
|
484
|
+
console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
482
485
|
process.exit(1);
|
|
483
486
|
return;
|
|
484
487
|
}
|
|
485
|
-
if (cwd !== process.cwd())
|
|
488
|
+
if (cwd !== process.cwd())
|
|
486
489
|
process.chdir(cwd);
|
|
487
|
-
}
|
|
488
|
-
const extensionFactories = [
|
|
489
|
-
...builtInExtensions,
|
|
490
|
-
...getHumainBundledExtensionFactories(process.env),
|
|
491
|
-
...(options?.extensionFactories ?? []),
|
|
492
|
-
];
|
|
493
|
-
const defaultPackageSources = getHumainDefaultPackageSources();
|
|
494
490
|
const agentDir = getAgentDir();
|
|
495
491
|
const bootstrapSettingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted: false });
|
|
496
492
|
applyHttpProxySettings(bootstrapSettingsManager.getGlobalSettings().httpProxy);
|
|
497
493
|
configureHttpDispatcher();
|
|
498
494
|
if (await handlePackageCommand(commandArgs, { extensionFactories })) {
|
|
499
495
|
const exitCode = process.exitCode ?? 0;
|
|
500
|
-
if (process.platform === "win32" && exitCode === 0 &&
|
|
496
|
+
if (process.platform === "win32" && exitCode === 0 && args[0] === "update") {
|
|
501
497
|
// We normally prefer process.exit(0) for package commands so bad extensions cannot keep
|
|
502
498
|
// one-shot commands alive. On Windows, Node can assert after fetch() if process.exit(0)
|
|
503
|
-
// runs during teardown; let successful
|
|
499
|
+
// runs during teardown; let successful `pi update` drain naturally instead.
|
|
504
500
|
// https://github.com/nodejs/node/issues/56645
|
|
505
501
|
return;
|
|
506
502
|
}
|
|
@@ -510,9 +506,16 @@ export async function main(args, options) {
|
|
|
510
506
|
if (await handleConfigCommand(commandArgs, { extensionFactories })) {
|
|
511
507
|
return;
|
|
512
508
|
}
|
|
513
|
-
if (
|
|
514
|
-
|
|
509
|
+
if (parsed.diagnostics.length > 0) {
|
|
510
|
+
for (const d of parsed.diagnostics) {
|
|
511
|
+
const color = d.type === "error" ? chalk.red : chalk.yellow;
|
|
512
|
+
console.error(color(`${d.type === "error" ? "Error" : "Warning"}: ${d.message}`));
|
|
513
|
+
}
|
|
514
|
+
if (parsed.diagnostics.some((d) => d.type === "error")) {
|
|
515
|
+
process.exit(1);
|
|
516
|
+
}
|
|
515
517
|
}
|
|
518
|
+
time("parseArgs");
|
|
516
519
|
if (parsed.version) {
|
|
517
520
|
console.log(VERSION);
|
|
518
521
|
process.exit(0);
|
|
@@ -532,6 +535,7 @@ export async function main(args, options) {
|
|
|
532
535
|
process.exit(0);
|
|
533
536
|
}
|
|
534
537
|
let appMode = resolveAppMode(parsed, process.stdin.isTTY, process.stdout.isTTY);
|
|
538
|
+
const isAgentExecMode = parsed.mode === "agent-exec";
|
|
535
539
|
const shouldTakeOverStdout = appMode !== "interactive" && !isPlainRuntimeMetadataCommand(parsed);
|
|
536
540
|
if (shouldTakeOverStdout) {
|
|
537
541
|
takeOverStdout();
|
|
@@ -540,12 +544,16 @@ export async function main(args, options) {
|
|
|
540
544
|
console.error(chalk.red("Error: @file arguments are not supported in RPC mode"));
|
|
541
545
|
process.exit(1);
|
|
542
546
|
}
|
|
547
|
+
if (isAgentExecMode && (parsed.fileArgs.length > 0 || parsed.messages.length > 0)) {
|
|
548
|
+
console.error(chalk.red("Error: agent-exec accepts its request only from stdin"));
|
|
549
|
+
process.exit(1);
|
|
550
|
+
}
|
|
543
551
|
validateForkFlags(parsed);
|
|
544
552
|
validateSessionIdFlags(parsed);
|
|
545
553
|
// Run migrations (pass cwd for project-local migrations)
|
|
546
554
|
const { migratedAuthProviders: migratedProviders, deprecationWarnings } = runMigrations(cwd);
|
|
547
555
|
time("runMigrations");
|
|
548
|
-
const startupSettingsManager = SettingsManager.create(cwd, agentDir
|
|
556
|
+
const startupSettingsManager = SettingsManager.create(cwd, agentDir);
|
|
549
557
|
reportDiagnostics(collectSettingsDiagnostics(startupSettingsManager, "startup session lookup"));
|
|
550
558
|
// Experimental first-time setup: theme choice and analytics opt-in.
|
|
551
559
|
// Runs before any runtime services are created so the chosen settings apply everywhere.
|
|
@@ -613,6 +621,7 @@ export async function main(args, options) {
|
|
|
613
621
|
cwd,
|
|
614
622
|
agentDir,
|
|
615
623
|
settingsManager: runtimeSettingsManager,
|
|
624
|
+
modelRuntimeSignal: AbortSignal.timeout(15_000),
|
|
616
625
|
extensionFlagValues: parsed.unknownFlags,
|
|
617
626
|
resourceLoaderReloadOptions: shouldResolveProjectTrust
|
|
618
627
|
? {
|
|
@@ -650,7 +659,7 @@ export async function main(args, options) {
|
|
|
650
659
|
systemPrompt: parsed.systemPrompt,
|
|
651
660
|
appendSystemPrompt: parsed.appendSystemPrompt,
|
|
652
661
|
extensionFactories,
|
|
653
|
-
defaultPackageSources,
|
|
662
|
+
defaultPackageSources: getHumainDefaultPackageSources(),
|
|
654
663
|
},
|
|
655
664
|
});
|
|
656
665
|
const { settingsManager, modelRuntime, resourceLoader } = services;
|
|
@@ -664,7 +673,9 @@ export async function main(args, options) {
|
|
|
664
673
|
})),
|
|
665
674
|
];
|
|
666
675
|
const modelPatterns = parsed.models ?? settingsManager.getEnabledModels();
|
|
667
|
-
const scopedModels = modelPatterns && modelPatterns.length > 0
|
|
676
|
+
const scopedModels = modelPatterns && modelPatterns.length > 0
|
|
677
|
+
? await resolveModelScope(modelPatterns, modelRuntime, { signal: AbortSignal.timeout(15_000) })
|
|
678
|
+
: [];
|
|
668
679
|
const { options: sessionOptions, cliThinkingFromModel, diagnostics: sessionOptionDiagnostics, } = buildSessionOptions(parsed, scopedModels, sessionManager.buildSessionContext().messages.length > 0, modelRuntime, settingsManager);
|
|
669
680
|
diagnostics.push(...sessionOptionDiagnostics);
|
|
670
681
|
if (parsed.apiKey) {
|
|
@@ -675,8 +686,7 @@ export async function main(args, options) {
|
|
|
675
686
|
});
|
|
676
687
|
}
|
|
677
688
|
else {
|
|
678
|
-
await modelRuntime.setRuntimeApiKey(sessionOptions.model.provider, parsed.apiKey
|
|
679
|
-
await services.modelRuntime.getAvailable();
|
|
689
|
+
await modelRuntime.setRuntimeApiKey(sessionOptions.model.provider, parsed.apiKey);
|
|
680
690
|
}
|
|
681
691
|
}
|
|
682
692
|
const created = await createAgentSessionFromServices({
|
|
@@ -721,9 +731,60 @@ export async function main(args, options) {
|
|
|
721
731
|
}
|
|
722
732
|
if (parsed.listModels !== undefined) {
|
|
723
733
|
const searchPattern = typeof parsed.listModels === "string" ? parsed.listModels : undefined;
|
|
724
|
-
await listModels(modelRuntime, searchPattern);
|
|
734
|
+
await listModels(modelRuntime, searchPattern, AbortSignal.timeout(15_000));
|
|
725
735
|
process.exit(0);
|
|
726
736
|
}
|
|
737
|
+
if (isAgentExecMode) {
|
|
738
|
+
reportDiagnostics(runtime.diagnostics);
|
|
739
|
+
if (runtime.diagnostics.some((diagnostic) => diagnostic.type === "error")) {
|
|
740
|
+
if (runtime.diagnostics.some((diagnostic) => diagnostic.message.includes("Failed to load extension"))) {
|
|
741
|
+
console.error(chalk.yellow(EXTENSION_LOAD_FAILURE_HINT));
|
|
742
|
+
}
|
|
743
|
+
await runtime.dispose();
|
|
744
|
+
restoreStdout();
|
|
745
|
+
process.exit(1);
|
|
746
|
+
}
|
|
747
|
+
const controller = new AbortController();
|
|
748
|
+
const onSigterm = () => controller.abort();
|
|
749
|
+
process.on("SIGTERM", onSigterm);
|
|
750
|
+
let exitCode = 0;
|
|
751
|
+
try {
|
|
752
|
+
const host = createAdmittedPiAgentExecutionHost({
|
|
753
|
+
cwd: runtime.cwd,
|
|
754
|
+
agentDir: services.agentDir,
|
|
755
|
+
model: session.model,
|
|
756
|
+
thinkingLevel: session.thinkingLevel,
|
|
757
|
+
baseSessionOptions: { modelRuntime, resourceLoader, settingsManager },
|
|
758
|
+
});
|
|
759
|
+
await runAgentExecMode({
|
|
760
|
+
input: process.stdin,
|
|
761
|
+
host,
|
|
762
|
+
signal: controller.signal,
|
|
763
|
+
writeLine: async (line) => {
|
|
764
|
+
writeRawStdout(`${line}\n`);
|
|
765
|
+
await flushRawStdout();
|
|
766
|
+
},
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
catch (error) {
|
|
770
|
+
exitCode = controller.signal.aborted ? 143 : 1;
|
|
771
|
+
const message = error instanceof AgentExecInputError
|
|
772
|
+
? error.message
|
|
773
|
+
: error instanceof Error
|
|
774
|
+
? error.message
|
|
775
|
+
: "agent-exec failed";
|
|
776
|
+
console.error(chalk.red(`Error: ${message}`));
|
|
777
|
+
}
|
|
778
|
+
finally {
|
|
779
|
+
process.off("SIGTERM", onSigterm);
|
|
780
|
+
await runtime.dispose();
|
|
781
|
+
await flushRawStdout();
|
|
782
|
+
restoreStdout();
|
|
783
|
+
}
|
|
784
|
+
if (exitCode !== 0)
|
|
785
|
+
process.exitCode = exitCode;
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
727
788
|
// Read piped stdin content (if any) - skip for RPC mode which uses stdin for JSON-RPC
|
|
728
789
|
let stdinContent;
|
|
729
790
|
if (appMode !== "rpc") {
|
|
@@ -754,14 +815,19 @@ export async function main(args, options) {
|
|
|
754
815
|
console.error(chalk.red(formatNoModelsAvailableMessage()));
|
|
755
816
|
process.exit(1);
|
|
756
817
|
}
|
|
757
|
-
const startupBenchmark = isTruthyEnvFlag(process.env
|
|
818
|
+
const startupBenchmark = isTruthyEnvFlag(process.env.PI_STARTUP_BENCHMARK);
|
|
758
819
|
if (startupBenchmark && appMode !== "interactive") {
|
|
759
|
-
console.error(chalk.red(
|
|
820
|
+
console.error(chalk.red("Error: PI_STARTUP_BENCHMARK only supports interactive mode"));
|
|
760
821
|
process.exit(1);
|
|
761
822
|
}
|
|
762
823
|
// RPC refreshes catalogs here in the background; interactive mode starts its refresh after TUI initialization.
|
|
763
824
|
if (!offlineMode && appMode === "rpc") {
|
|
764
|
-
|
|
825
|
+
const controller = new AbortController();
|
|
826
|
+
const timeout = setTimeout(() => controller.abort(), 15_000);
|
|
827
|
+
void modelRuntime
|
|
828
|
+
.refresh({ signal: controller.signal })
|
|
829
|
+
.catch(() => { })
|
|
830
|
+
.finally(() => clearTimeout(timeout));
|
|
765
831
|
}
|
|
766
832
|
if (appMode === "rpc") {
|
|
767
833
|
printTimings();
|
|
@@ -776,6 +842,7 @@ export async function main(args, options) {
|
|
|
776
842
|
initialImages,
|
|
777
843
|
initialMessages: parsed.messages,
|
|
778
844
|
verbose: parsed.verbose,
|
|
845
|
+
tuiMode: parsed.tuiMode,
|
|
779
846
|
});
|
|
780
847
|
if (startupBenchmark) {
|
|
781
848
|
await interactiveMode.init();
|