@qqbrowser/qbot-dsh 0.0.13 → 0.0.15
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/node_modules/@deepseek-ai/cordis-plugin-group/package.json +1 -1
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-default-model/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-instructions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-loop/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-tool-presentation/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-anonymous-user-id/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-api-gateway/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-api-remotes/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-app-boot/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-atomic-write/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-base/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-bash-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-bash-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-brand/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-connection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-hmr/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-locale/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-modules/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-runtime/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-schema-form/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +7 -7
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-web-react/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cmdline/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-code-runtime/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-code-runtime-worker-thread/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-compact/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-commands/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction-basic/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-content-review/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-credentials/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-credentials-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-observation-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-goal-round-driver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-headless/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-home-paths/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-apiproxy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-auto/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-browse/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-native/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-frontend-static/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-webserver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-invariants/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-jobs-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-launch-environment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/lib/index.js +4 -4
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-retry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-mcp-client/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-message-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-native-command/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-output-retention/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-permission-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-persona/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-plan-mode/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-pwsh-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-pwsh-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-qb-auth/lib/index.js +3 -3
- package/node_modules/@deepseek-ai/dsh-qb-auth/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-schedule/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-scope/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-checkpoint-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-log-export/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-persistence/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-projection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-query/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-reference/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-stats/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-telemetry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-telemetry-otel/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-settings/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-settings-file/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-shell/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-shell-env/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill-badge/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill-filesystem/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage-domain/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-fork-in-process/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-in-process-driver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-spawn-in-process/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-system-prompt/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-terminal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-terminal-bash/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-time-context/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-timeout/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tmux-context/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-token-meter/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-ask-user/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-call-timeout-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-cordis/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-fs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-fs-search/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-pwsh/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-ralph/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-str-replace-editor/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent-control/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent-report/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-todo/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-workflow/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tools/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-loader/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-protocol/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-registry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-user-approval/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-user-questions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-app/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-frontend/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-search-deepseek/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-search-dsh/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workflow/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workflow-worker-thread/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workspace/package.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-code-runtime","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-code-runtime","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-code-runtime-worker-thread","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-code-runtime-worker-thread","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./worker":{"types":"./lib/types/worker.d.ts","default":"./lib/worker.cjs"},"./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-code-runtime":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-timeout":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-command-compact","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-command-compact","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-compaction":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-command-feedback","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-command-feedback","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session-telemetry":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-anonymous-user-id":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-command-goal","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-command-goal","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/dsh-goal":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-commands","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-commands","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./brand":{"types":"./lib/types/brand.d.ts","default":"./lib/types/brand.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-scope":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-typert-protocol":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"zod":"^4.4.3"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-compaction","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-compaction","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./checkpoint":{"types":"./lib/types/checkpoint.d.ts","default":"./lib/types/checkpoint.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-compaction-basic","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-compaction-basic","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-compaction":"^0.0.15","@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/dsh-token-meter":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-compaction-tool-result-pruner":"^0.0.15"},"peerDependenciesMeta":{"@deepseek-ai/dsh-compaction-tool-result-pruner":{"optional":true}},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-compaction-tool-result-pruner","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-compaction-tool-result-pruner","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-compaction":"^0.0.15","@deepseek-ai/dsh-token-meter":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-content-review","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-content-review","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-qb-auth":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-cordis-client-runner","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-cordis-client-runner","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-modules","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.0.15","@deepseek-ai/dsh-client-modules":"^0.0.15","@deepseek-ai/dsh-client-runtime":"^0.0.15","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-client-ui-theme":"^0.0.15","@deepseek-ai/dsh-client-ui-slots":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-client-connection":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-cordis-host-runner","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-cordis-host-runner","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-scope":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-typert-protocol":"^0.0.15","@deepseek-ai/dsh-tools":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-credentials","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-credentials","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-credentials-local","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-credentials-local","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-atomic-write":"^0.0.15","@deepseek-ai/dsh-launch-environment":"^0.0.15","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-home-paths":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.0.15"},"dependencies":{"chokidar":"^4.0.3","yaml":"^2.9.0","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-fs","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-fs","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-sandbox":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-fs-local","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-fs-local","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-fs":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"koffi":"^3.1.0","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-fs-observation-policy","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-fs-observation-policy","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-fs":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-fs-sandbox","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-fs-sandbox","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-fs":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-sandbox-policy":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-sandbox":"^0.0.15","@deepseek-ai/dsh-fs-local":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-goal","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-goal","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/types/client.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-session-projection":"^0.0.15","@deepseek-ai/dsh-scope":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-typert-protocol":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-goal-round-driver","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-goal-round-driver","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-goal":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-headless","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-headless","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./startup":{"types":"./lib/types/startup.d.ts","default":"./lib/startup.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./cordis.patch.yml":"./cordis.patch.yml","./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dependencies":{"commander":"^15.0.0","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-code-runtime-worker-thread":"^0.0.15","@deepseek-ai/dsh-cmdline":"^0.0.15"},"peerDependencies":{"@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-agent-default-model":"^0.0.15","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-home-paths","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-home-paths","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-home-quarantine-macos","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-home-quarantine-macos","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"@napi-rs/xattr":"^1.0.3","@parcel/watcher":"^2.6.0","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-home-paths":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-apiproxy","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-apiproxy","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json","./api":{"types":"./lib/types/api/index.d.ts","default":"./lib/types/api/index.js"},"./api/*":{"types":"./lib/types/api/*.d.ts","default":"./lib/types/api/*.js"},"./client":{"types":"./lib/types/fetch/client.d.ts","default":"./lib/types/fetch/client.js"}},"license":"MIT","dependencies":{"fflate":"^0.8.2","zod":"^4.4.3","@deepseek-ai/dsh-api-remotes":"^0.0.15","@deepseek-ai/dsh-attachment":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-agent-default-model":"^0.0.15","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-commands":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-native-command":"^0.0.15","@deepseek-ai/dsh-goal":"^0.0.15","@deepseek-ai/dsh-host-directory-picker":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-session-persistence":"^0.0.15","@deepseek-ai/dsh-session-projection-cache":"^0.0.15","@deepseek-ai/dsh-session-query":"^0.0.15","@deepseek-ai/dsh-session-title":"^0.0.15","@deepseek-ai/dsh-settings":"^0.0.15","@deepseek-ai/dsh-skill":"^0.0.15","@deepseek-ai/dsh-subagent":"^0.0.15","@deepseek-ai/dsh-jobs":"^0.0.15","@deepseek-ai/dsh-tools":"^0.0.15","@deepseek-ai/dsh-session-projection":"^0.0.15","@deepseek-ai/dsh-user-questions":"^0.0.15","@deepseek-ai/dsh-workspace":"^0.0.15","@deepseek-ai/schemastery":"^3.18.1","@deepseek-ai/dsh-user-approval":"^0.0.15"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent-presets":"^0.0.15","@deepseek-ai/dsh-cordis-host-runner":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-directory-picker","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-directory-picker","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-directory-picker-auto","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-directory-picker-auto","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/dsh-client-ui-directory-picker-browse":"^0.0.15","@deepseek-ai/dsh-client-ui-directory-picker-native":"^0.0.15","@deepseek-ai/dsh-host-directory-picker-native":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-host-webserver":"^0.0.15","@deepseek-ai/dsh-host-directory-picker-browse":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-directory-picker-browse","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-directory-picker-browse","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"@deepseek-ai/dsh-host-directory-picker":"^0.0.15","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-directory-picker-native","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-directory-picker-native","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./worker":{"types":"./lib/types/win32-dialog-worker.d.ts","default":"./lib/worker.cjs"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"koffi":"^3.1.0","@deepseek-ai/dsh-host-directory-picker":"^0.0.15","@deepseek-ai/dsh-native-command":"^0.0.15"},"peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-frontend-static","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-frontend-static","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-host-webserver":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-plugin-inventory","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-plugin-inventory","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","dependencies":{"zod":"^4.4.3"},"peerDependencies":{"@deepseek-ai/cordis-plugin-loader":"^1.0.2","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-typert-protocol":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-host-webserver","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-host-webserver","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-invariants","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-invariants","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-jobs","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-jobs","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./brand":{"types":"./lib/types/brand.d.ts","default":"./lib/types/brand.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-jobs-local","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-jobs-local","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-scope":"^0.0.15","@deepseek-ai/dsh-timeout":"^0.0.15","@deepseek-ai/dsh-jobs":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-launch-environment","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-launch-environment","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-llm","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-llm","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./brand":{"types":"./lib/types/brand.d.ts","default":"./lib/types/brand.js"},"./message":{"types":"./lib/types/message.d.ts","default":"./lib/types/message.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-attachment":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-timeout":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-llm-deepseek","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-llm-deepseek","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-launch-environment":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-settings":"^0.0.15","@deepseek-ai/dsh-timeout":"^0.0.15","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-anonymous-user-id":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"eventsource-parser":"^3.1.0","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var oe=Object.defineProperty;var o=(e,t)=>oe(e,"name",{value:t,configurable:!0});import{randomBytes as M}from"node:crypto";import{createServer as se,request as ie}from"node:http";import{Service as q}from"@deepseek-ai/cordis";import{AuditContentType as F,ContentReviewFailedError as ce}from"@deepseek-ai/dsh-content-review";import{credentialRef as K}from"@deepseek-ai/dsh-credentials";import c from"@deepseek-ai/schemastery";import{BUS_IDENTIFIER as le,QbAuthExpiredError as ue,QbTokenExhaustedError as de}from"@deepseek-ai/dsh-qb-auth";import{request as he}from"node:https";import{StringDecoder as fe}from"node:string_decoder";const G="DSH_QB_GATEWAY_KEY";var P=class extends Error{static{o(this,"GatewayConfigError")}code="GATEWAY_CONFIG_INVALID";constructor(e,t){super(e,t),this.name="GatewayConfigError"}};const ye=o(e=>{let t;try{t=new URL(e)}catch(n){throw new P(`llm-gateway: upstream.baseURL is not a URL: ${e}`,{cause:n})}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new P(`llm-gateway: upstream.baseURL must be http or https, found ${t.protocol}`);const r=t.protocol==="https:"?443:80;return{protocol:t.protocol,hostname:t.hostname,port:t.port===""?r:Number(t.port),basePath:t.pathname.replace(/\/+$/,""),hostHeader:t.host}},"resolveUpstream"),V=o(e=>{const t=e.auth.kind==="credential"?(()=>{if(e.auth.ref==="")throw new P('llm-gateway: auth.kind "credential" requires auth.ref');return{kind:"credential",ref:e.auth.ref}})():{kind:"qb-encode-token"};if(e.keyRef==="")throw new P("llm-gateway: keyRef must name a credential reference");return{host:e.host,port:e.port,upstream:ye(e.upstream.baseURL),timeoutMs:e.upstream.timeoutMs,auth:t,review:{...e.review},keyRef:e.keyRef,generateKey:e.generateKey,maxRequestBytes:e.maxRequestBytes,modelMap:{...e.modelMap}}},"resolveSpec"),Y=new Set(["host","connection","keep-alive","transfer-encoding","upgrade","te","trailer","proxy-authorization","proxy-authenticate","proxy-connection"]),pe=o(e=>{let t;try{t=decodeURIComponent(e)}catch{return!0}return t.split("/").some(r=>r===".."||r===".")},"hasDotSegment"),me=o((e,t)=>{const r=e.indexOf("?"),n=r===-1?e:e.slice(0,r),a=r===-1?"":e.slice(r);if(!n.startsWith("/"))return{ok:!1,reason:"malformed"};if(pe(n))return{ok:!1,reason:"traversal"};if(!n.startsWith("/v1/"))return{ok:!1,reason:"not-v1"};const s=`${t}${n.slice(3)}`;return s.startsWith(t)?{ok:!0,path:`${s===""?"/":s}${a}`}:{ok:!1,reason:"traversal"}},"mapUpstreamPath"),ge=o((e,t,r)=>{const n={};for(const[a,s]of Object.entries(e))s!==void 0&&(Y.has(a.toLowerCase())||(n[a]=s));n.host=t.hostHeader;for(const[a,s]of Object.entries(r))n[a]=s;return n},"buildForwardHeaders"),we=o(e=>(e.target.protocol==="https:"?he:ie)({protocol:e.target.protocol,hostname:e.target.hostname,port:e.target.port,path:e.path,method:e.method,headers:e.headers,timeout:e.timeoutMs}),"openUpstreamRequest"),p={INVALID_REQUEST:"invalid_request_error",AUTH:"authentication_error",SERVER:"server_error",CONTENT_FILTER:"content_filter",INSUFFICIENT_QUOTA:"insufficient_quota",UPSTREAM:"upstream_error"},d={NOT_FOUND:"not_found",MISSING_API_KEY:"missing_api_key",INVALID_API_KEY:"invalid_api_key",BAD_REQUEST:"bad_request",AUTH_EXPIRED:"auth_expired",TOKEN_FETCH_ERROR:"token_fetch_error",PROXY_ERROR:"proxy_error",GATEWAY_TIMEOUT:"gateway_timeout",CONTENT_REVIEW_FAILED_INPUT:"content_review_failed_input",CONTENT_REVIEW_FAILED_OUTPUT:"content_review_failed_output",CONTENT_REVIEW_FAILED_OUTPUT_PARTIAL:"content_review_failed_output_partial",TOKEN_EXHAUSTED:"token_exhausted",UPSTREAM_UNAVAILABLE:"upstream_unavailable"},Ee="Auto",B="当前使用人数较多,请稍后再试",H="抱歉,暂时无法回答该问题",_e="输入内容包含违规信息,请修改后重试。",j=o(()=>`chatcmpl-${M(12).toString("hex")}`,"completionId"),W=o(()=>Math.floor(Date.now()/1e3),"createdAt"),
|
|
1
|
+
var oe=Object.defineProperty;var o=(e,t)=>oe(e,"name",{value:t,configurable:!0});import{randomBytes as M}from"node:crypto";import{createServer as se,request as ie}from"node:http";import{Service as q}from"@deepseek-ai/cordis";import{AuditContentType as F,ContentReviewFailedError as ce}from"@deepseek-ai/dsh-content-review";import{credentialRef as K}from"@deepseek-ai/dsh-credentials";import c from"@deepseek-ai/schemastery";import{BUS_IDENTIFIER as le,QbAuthExpiredError as ue,QbTokenExhaustedError as de}from"@deepseek-ai/dsh-qb-auth";import{request as he}from"node:https";import{StringDecoder as fe}from"node:string_decoder";const G="DSH_QB_GATEWAY_KEY";var P=class extends Error{static{o(this,"GatewayConfigError")}code="GATEWAY_CONFIG_INVALID";constructor(e,t){super(e,t),this.name="GatewayConfigError"}};const ye=o(e=>{let t;try{t=new URL(e)}catch(n){throw new P(`llm-gateway: upstream.baseURL is not a URL: ${e}`,{cause:n})}if(t.protocol!=="http:"&&t.protocol!=="https:")throw new P(`llm-gateway: upstream.baseURL must be http or https, found ${t.protocol}`);const r=t.protocol==="https:"?443:80;return{protocol:t.protocol,hostname:t.hostname,port:t.port===""?r:Number(t.port),basePath:t.pathname.replace(/\/+$/,""),hostHeader:t.host}},"resolveUpstream"),V=o(e=>{const t=e.auth.kind==="credential"?(()=>{if(e.auth.ref==="")throw new P('llm-gateway: auth.kind "credential" requires auth.ref');return{kind:"credential",ref:e.auth.ref}})():{kind:"qb-encode-token"};if(e.keyRef==="")throw new P("llm-gateway: keyRef must name a credential reference");return{host:e.host,port:e.port,upstream:ye(e.upstream.baseURL),timeoutMs:e.upstream.timeoutMs,auth:t,review:{...e.review},keyRef:e.keyRef,generateKey:e.generateKey,maxRequestBytes:e.maxRequestBytes,modelMap:{...e.modelMap}}},"resolveSpec"),Y=new Set(["host","connection","keep-alive","transfer-encoding","upgrade","te","trailer","proxy-authorization","proxy-authenticate","proxy-connection"]),pe=o(e=>{let t;try{t=decodeURIComponent(e)}catch{return!0}return t.split("/").some(r=>r===".."||r===".")},"hasDotSegment"),me=o((e,t)=>{const r=e.indexOf("?"),n=r===-1?e:e.slice(0,r),a=r===-1?"":e.slice(r);if(!n.startsWith("/"))return{ok:!1,reason:"malformed"};if(pe(n))return{ok:!1,reason:"traversal"};if(!n.startsWith("/v1/"))return{ok:!1,reason:"not-v1"};const s=`${t}${n.slice(3)}`;return s.startsWith(t)?{ok:!0,path:`${s===""?"/":s}${a}`}:{ok:!1,reason:"traversal"}},"mapUpstreamPath"),ge=o((e,t,r)=>{const n={};for(const[a,s]of Object.entries(e))s!==void 0&&(Y.has(a.toLowerCase())||(n[a]=s));n.host=t.hostHeader;for(const[a,s]of Object.entries(r))n[a]=s;return n},"buildForwardHeaders"),we=o(e=>(e.target.protocol==="https:"?he:ie)({protocol:e.target.protocol,hostname:e.target.hostname,port:e.target.port,path:e.path,method:e.method,headers:e.headers,timeout:e.timeoutMs}),"openUpstreamRequest"),p={INVALID_REQUEST:"invalid_request_error",AUTH:"authentication_error",SERVER:"server_error",CONTENT_FILTER:"content_filter",INSUFFICIENT_QUOTA:"insufficient_quota",UPSTREAM:"upstream_error"},d={NOT_FOUND:"not_found",MISSING_API_KEY:"missing_api_key",INVALID_API_KEY:"invalid_api_key",BAD_REQUEST:"bad_request",AUTH_EXPIRED:"auth_expired",TOKEN_FETCH_ERROR:"token_fetch_error",PROXY_ERROR:"proxy_error",GATEWAY_TIMEOUT:"gateway_timeout",CONTENT_REVIEW_FAILED_INPUT:"content_review_failed_input",CONTENT_REVIEW_FAILED_OUTPUT:"content_review_failed_output",CONTENT_REVIEW_FAILED_OUTPUT_PARTIAL:"content_review_failed_output_partial",TOKEN_EXHAUSTED:"token_exhausted",UPSTREAM_UNAVAILABLE:"upstream_unavailable"},Ee="Auto",B="当前使用人数较多,请稍后再试",H="抱歉,暂时无法回答该问题",_e="输入内容包含违规信息,请修改后重试。",j=o(()=>`chatcmpl-${M(12).toString("hex")}`,"completionId"),W=o(()=>Math.floor(Date.now()/1e3),"createdAt"),I=o((e,t,r,n,a,s)=>{const l=JSON.stringify({error:{message:r,type:n,code:a,...s??{}}});e.writeHead(t,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(l)}),e.end(l)},"sendOpenAIError"),ve=o((e,t,r)=>{const n=JSON.stringify({id:j(),object:"chat.completion",created:W(),model:r,choices:[{index:0,message:{role:"assistant",content:t},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}});e.writeHead(200,{"Content-Type":"application/json","Content-Length":Buffer.byteLength(n)}),e.end(n)},"sendOpenAIResponse"),Ae=o((e,t,r)=>{if(!e.writable)return;const n=j(),a=W();e.write(`data: ${JSON.stringify({id:n,object:"chat.completion.chunk",created:a,model:r,choices:[{index:0,delta:{role:"assistant",content:t},finish_reason:null}]})}
|
|
2
2
|
|
|
3
3
|
`),e.write(`data: ${JSON.stringify({id:n,object:"chat.completion.chunk",created:a,model:r,choices:[{index:0,delta:{},finish_reason:"stop"}]})}
|
|
4
4
|
|
|
@@ -8,10 +8,10 @@ var oe=Object.defineProperty;var o=(e,t)=>oe(e,"name",{value:t,configurable:!0})
|
|
|
8
8
|
|
|
9
9
|
`),e.write(`data: [DONE]
|
|
10
10
|
|
|
11
|
-
`),e.end())},"writeSSEErrorAndEnd"),C=o((e,t)=>{if(!t.isStream||!e.headersSent){if(e.headersSent){e.end();return}
|
|
11
|
+
`),e.end())},"writeSSEErrorAndEnd"),C=o((e,t)=>{if(!t.isStream||!e.headersSent){if(e.headersSent){e.end();return}I(e,t.httpStatus,t.message,t.type,t.code,t.extra);return}L(e,t.message,t.type,t.code,t.extra)},"respondOpenAIError"),S=o((e,t)=>{if(!(typeof e!="object"||e===null))return e[t]},"child$1"),Q=o((e,t)=>{const r=S(e,t);return Array.isArray(r)?r:[]},"childArray"),J=o(e=>{const t=Q(e,"choices")[0],r=S(t,"delta");if(r==null)return{content:"",hasToolCalls:!1};const n=S(r,"content"),a=S(r,"function_call");return{content:typeof n=="string"?n:"",hasToolCalls:Q(r,"tool_calls").length>0||a!=null}},"extractDelta"),z=o(e=>S(e,"type")==="upstream_error"||S(S(e,"error"),"type")==="upstream_error","isUpstreamError"),X=o(e=>{const t=S(e,"reqid");if(typeof t=="string")return t;const r=S(S(e,"error"),"reqid");return typeof r=="string"?r:""},"readUpstreamReqid");var Te=class{static{o(this,"SseLineReader")}decoder=new fe("utf8");buffer="";read(e){this.buffer+=this.decoder.write(e).replace(/\r\n?/g,`
|
|
12
12
|
`);const t=this.buffer.split(`
|
|
13
13
|
`);return this.buffer=t.pop()??"",t}get remainder(){return this.buffer}};const Z=o(e=>{const t=e.trim();return t===""?{kind:"blank"}:t==="data: [DONE]"?{kind:"done"}:t.startsWith("data: ")?{kind:"data",payload:t.slice(6)}:{kind:"other"}},"classifySseLine"),ee=o(e=>{try{return JSON.parse(e)}catch{return}},"parseSsePayload"),Re=o(e=>{const{res:t,upstream:r,logger:n,requestId:a}=e,s=new Te;let l=[],_=0,h="",m="",E=!1,g=!1,A=!1,y=!1,v=!1,k=Promise.resolve();const N=o(()=>!y&&t.writable,"canContinue"),O=o(u=>{t.write(`data: ${u}
|
|
14
14
|
|
|
15
|
-
`)},"writePayload"),
|
|
15
|
+
`)},"writePayload"),b=o(()=>{if(l.length!==0){for(const u of l)O(u);A=!0,l=[],_=0}},"flush"),$=o(()=>{l=[],_=0},"discard"),T=o(u=>{y=!0,$();const i=A?d.CONTENT_REVIEW_FAILED_OUTPUT_PARTIAL:d.CONTENT_REVIEW_FAILED_OUTPUT;n.debug(`llm-gateway[${a}]: output review denied the turn (partial=${String(A)})`),L(t,u.fallbackMsg,p.CONTENT_FILTER,i,u.extra),r.destroy()},"denyOutput"),x=o(async()=>{const u=h;h="";const i=e.reviewOutput;if(i===void 0||u===""){b();return}r.pause();try{const f=await i(u);if(y)return;if(f!==void 0){T(f);return}b()}catch(f){n.warn(`llm-gateway[${a}]: output review unavailable, releasing buffered output (${f instanceof Error?f.name:"unknown error"})`),b()}finally{!y&&!r.destroyed&&r.resume()}},"reviewAccumulated"),R=o(()=>{v=!0,k=x().finally(()=>{v=!1}),k.catch(u=>{n.warn(`llm-gateway[${a}]: stream gate review failed unexpectedly: ${u instanceof Error?u.message:String(u)}`)})},"runReview");r.on("data",u=>{if(N()){for(const i of s.read(u)){const f=Z(i);if(f.kind==="done"){g=!0;continue}if(f.kind!=="data")continue;const U=ee(f.payload);if(z(U)){y=!0,$(),n.warn(`llm-gateway[${a}]: upstream reported a dependency failure (reqid=${X(U)})`),L(t,B,p.UPSTREAM,d.UPSTREAM_UNAVAILABLE),r.destroy();return}if(l.push(f.payload),_+=Buffer.byteLength(f.payload),U!==void 0){const D=J(U);h+=D.content,m+=D.content,D.hasToolCalls&&(E=!0)}}if(_>e.maxPendingBytes){y=!0,$(),n.warn(`llm-gateway[${a}]: buffered output exceeded maxPendingBytes (${String(e.maxPendingBytes)}); ending the turn`),L(t,B,p.UPSTREAM,d.UPSTREAM_UNAVAILABLE),r.destroy();return}if(h.length>=e.thresholdChars&&!v){R();return}e.reviewOutput===void 0&&b()}}),r.on("end",()=>{(async()=>{if(v&&await k,!N())return;const u=s.remainder;if(u.trim()!==""){const i=Z(u);if(i.kind==="data"){const f=ee(i.payload);if(f!==void 0){const U=J(f);h+=U.content,m+=U.content,U.hasToolCalls&&(E=!0)}l.push(i.payload)}else i.kind==="done"&&(g=!0)}if(h!==""&&await x(),!!N()){if(b(),m===""&&!E){n.debug(`llm-gateway[${a}]: upstream produced no output; sending the standard notice`),Ae(t,H,e.model);return}g&&t.write(`data: [DONE]
|
|
16
16
|
|
|
17
|
-
`),t.end()}})()})},"runStreamGate"),w=o((e,t)=>{if(!(typeof e!="object"||e===null))return e[t]},"child"),Se=o(e=>{const t=e.authorization;if(typeof t!="string")return;const r=/^Bearer\s+(.+)$/i.exec(t);return r===null?void 0:r[1]},"extractBearerToken"),ke=o((e,t)=>new Promise((r,n)=>{const a=[];let s=0;e.on("data",l=>{if(s+=l.length,s>t){n(new Error(`request body exceeds ${String(t)} bytes`)),e.destroy();return}a.push(l)}),e.once("end",()=>{r(Buffer.concat(a))}),e.once("error",n)}),"readRequestBody"),be=o(e=>{const t=[];for(const r of e){if(w(r,"role")!=="user")continue;const n=w(r,"content");if(typeof n=="string"){n.length>0&&t.push(n);continue}if(Array.isArray(n))for(const a of n){const s=w(a,"text");w(a,"type")==="text"&&typeof s=="string"&&s.length>0&&t.push(s)}}return t},"collectUserTexts"),Ie=o(e=>{let t=-1;for(let r=e.length-1;r>=0;r-=1)if(w(e[r],"role")==="user"){t=r;break}return t<0?!1:e.slice(t+1).some(r=>w(r,"role")==="tool")},"hasToolMessageAfterLastUser"),xe=o(e=>{const t=w(e,"choices");if(!Array.isArray(t))return{texts:[],hasToolCalls:!1};const r=[];let n=!1;for(const a of t){const s=w(a,"message"),l=w(s,"content");typeof l=="string"&&l.length>0&&r.push(l);const _=w(s,"tool_calls"),h=w(s,"function_call");(Array.isArray(_)&&_.length>0||h!=null)&&(n=!0)}return{texts:r,hasToolCalls:n}},"collectReplyTexts"),te=o(e=>{const t={};for(const[r,n]of Object.entries(e))n!==void 0&&(Y.has(r.toLowerCase())||(t[r]=n));return t},"relayResponseHeaders"),Ue=o(()=>Math.random().toString(36).slice(2,10),"newRequestId"),Ne=o(async(e,t,r)=>{const{spec:n,logger:a}=r,s=Ue(),l=e.url??"/",_=e.method??"GET",h=me(l,n.upstream.basePath);if(!h.ok){a.debug(`llm-gateway[${s}]: refusing ${_} target (${h.reason})`);const i=h.reason==="not-v1"?404:400,f=h.reason==="not-v1"?d.NOT_FOUND:d.BAD_REQUEST;b(t,i,h.reason==="not-v1"?"Not Found":"Bad Request",p.INVALID_REQUEST,f);return}const m=Se(e.headers);if(m===void 0){b(t,401,"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth.",p.INVALID_REQUEST,d.MISSING_API_KEY);return}const E=await r.expectedKey();if(E===void 0||E===""||m!==E){b(t,401,"Incorrect API key provided. You can check your API key in the proxy configuration.",p.INVALID_REQUEST,d.INVALID_API_KEY);return}let g;try{g=await ke(e,n.maxRequestBytes)}catch(i){a.warn(`llm-gateway[${s}]: cannot read the request body: ${i instanceof Error?i.message:"unknown error"}`),t.headersSent||b(t,400,"Failed to read request body",p.INVALID_REQUEST,d.BAD_REQUEST);return}const A=l.includes("/chat/completions");let y,v=!1;if(A&&g.length>0)try{y=JSON.parse(g.toString("utf-8")),v=w(y,"stream")===!0}catch{}const k=w(y,"model"),N=typeof k=="string"&&k!==""?k:Ee;let O=g;const I=typeof k=="string"?n.modelMap[k]:void 0;I!==void 0&&typeof y=="object"&&y!==null&&(O=Buffer.from(JSON.stringify({...y,model:I}),"utf-8"));const $=w(y,"messages");if(r.reviewInput!==void 0&&A&&Array.isArray($)){const i=await Oe($,r,s);if(i!==void 0){C(t,{isStream:v,httpStatus:400,message:i.fallbackMsg===""?_e:i.fallbackMsg,type:p.CONTENT_FILTER,code:d.CONTENT_REVIEW_FAILED_INPUT,extra:i.extra});return}}let T;try{T=await r.upstreamAuth()}catch(i){C(t,$e(i,v)),a.warn(`llm-gateway[${s}]: cannot obtain upstream credentials: ${i instanceof Error?i.name:"unknown error"}`);return}const x={authorization:T.authorization,bus:le};T.guid!==""&&(x.guid=T.guid),T.qimei36!==""&&(x.qimei36=T.qimei36),T.qua2!==""&&(x.qua2=T.qua2),O!==g&&(x["content-length"]=String(O.length));const R=we({target:n.upstream,method:_,path:h.path,headers:ge(e.headers,n.upstream,x),timeoutMs:n.timeoutMs}),u=r.track(R);R.on("response",i=>{const f=i.statusCode??502;if((i.headers["content-type"]??"").includes("text/event-stream")||v){t.writeHead(f,te(i.headers)),Re({res:t,upstream:i,model:N,thresholdChars:n.review.thresholdChars,maxPendingBytes:n.review.maxPendingBytes,reviewOutput:r.reviewOutput,logger:a,requestId:s});return}Pe({upstream:i,res:t,status:f,deps:r,requestId:s,modelLabel:N,isChatCompletions:A})}),R.on("timeout",()=>{a.warn(`llm-gateway[${s}]: upstream timed out after ${String(n.timeoutMs)}ms`),R.destroy(),C(t,{isStream:v,httpStatus:504,message:"Gateway Timeout",type:p.SERVER,code:d.GATEWAY_TIMEOUT})}),R.on("error",i=>{a.warn(`llm-gateway[${s}]: upstream request failed: ${i.message}`),C(t,{isStream:v,httpStatus:502,message:`Bad Gateway: ${i.message}`,type:p.SERVER,code:d.PROXY_ERROR})}),R.once("close",u),t.once("close",()=>{t.writableEnded||R.destroy()}),R.end(O)},"handleRequest"),Oe=o(async(e,t,r)=>{if(Ie(e)){t.logger.debug(`llm-gateway[${r}]: tool continuation; input already reviewed this turn`);return}const n=be(e).at(-1);if(n===void 0)return;const a=t.reviewInput;if(a!==void 0)try{return await a(n)}catch(s){t.logger.warn(`llm-gateway[${r}]: input review unavailable, forwarding anyway (${s instanceof Error?s.name:"unknown error"})`);return}},"reviewLastUserMessage"),$e=o((e,t)=>e instanceof de?{isStream:t,httpStatus:429,message:e.message,type:p.INSUFFICIENT_QUOTA,code:d.TOKEN_EXHAUSTED}:e instanceof ue?{isStream:t,httpStatus:401,message:`Auth token expired: ${e.message}`,type:p.AUTH,code:d.AUTH_EXPIRED}:{isStream:t,httpStatus:500,message:`Failed to obtain auth token: ${e instanceof Error?e.message:"unknown error"}`,type:p.SERVER,code:d.TOKEN_FETCH_ERROR},"classifyAuthFailure"),Pe=o(e=>{const{upstream:t,res:r,status:n,deps:a,requestId:s,modelLabel:l,isChatCompletions:_}=e,h=[];t.on("data",m=>{h.push(m)}),t.once("error",m=>{if(a.logger.warn(`llm-gateway[${s}]: reading the upstream reply failed: ${m.message}`),!r.headersSent){b(r,502,`Bad Gateway: ${m.message}`,p.SERVER,d.PROXY_ERROR);return}r.end()}),t.once("end",()=>{(async()=>{const m=Buffer.concat(h);let E;if(_)try{E=JSON.parse(m.toString("utf-8"))}catch{}if(z(E)){if(a.logger.warn(`llm-gateway[${s}]: upstream reported a dependency failure (reqid=${X(E)})`),!r.headersSent){b(r,503,B,p.UPSTREAM,d.UPSTREAM_UNAVAILABLE);return}r.end();return}if(E!==void 0){const g=xe(E);if(g.texts.length===0&&!g.hasToolCalls){if(a.logger.debug(`llm-gateway[${s}]: upstream produced no output; sending the standard notice`),!r.headersSent){ve(r,H,l);return}r.end();return}const A=a.reviewOutput;if(A!==void 0&&g.texts.length>0){const y=await Le(A,g.texts.join(""),a,s);if(y!==void 0){if(!r.headersSent){b(r,400,y.fallbackMsg,p.CONTENT_FILTER,d.CONTENT_REVIEW_FAILED_OUTPUT,y.extra);return}r.end();return}}}if(r.headersSent){r.end();return}r.writeHead(n,te(t.headers)),r.end(m)})()})},"relayBufferedResponse"),Le=o(async(e,t,r,n)=>{try{return await e(t)}catch(a){r.logger.warn(`llm-gateway[${n}]: output review unavailable, relaying the reply (${a instanceof Error?a.name:"unknown error"})`);return}},"reviewOutputText");var re=class extends Error{static{o(this,"GatewayListenError")}code="GATEWAY_LISTEN_FAILED";constructor(e){super(`llm-gateway: failed to listen: ${e.message}`,{cause:e}),this.name="GatewayListenError"}},ne=class extends Error{static{o(this,"GatewayKeyError")}code="GATEWAY_KEY_UNWRITABLE";constructor(e,t){super(`llm-gateway: cannot store the gateway key in "${e}": a read-only source${t===void 0?"":` (${t})`} already supplies it. Point keyRef at an unused reference, or set generateKey to false to authenticate against the value that source provides.`),this.name="GatewayKeyError"}};const Ce=o(e=>{if(e instanceof ce)return{fallbackMsg:e.fallbackMsg,extra:{phase_action:e.phaseAction,is_show:e.isShow}}},"toReviewDenial");var ae=class extends q{static{o(this,"LlmGateway")}static inject=["credentials","qbAuth","contentReview"];static Config=c.object({host:c.union([c.const("127.0.0.1"),c.const("0.0.0.0")]).default("127.0.0.1"),port:c.natural().max(65535).default(0),upstream:c.object({baseURL:c.string().required(),timeoutMs:c.natural().min(1e3).max(6e5).default(12e4)}),auth:c.object({kind:c.union([c.const("qb-encode-token"),c.const("credential")]).default("qb-encode-token"),ref:c.string().role("credential-ref").default("")}),review:c.object({input:c.boolean().default(!0),output:c.boolean().default(!0),thresholdChars:c.natural().min(1).default(100),maxPendingBytes:c.natural().min(1024).default(4194304)}),keyRef:c.string().role("credential-ref").default(G),maxRequestBytes:c.natural().min(1024).default(33554432),generateKey:c.boolean().default(!0),modelMap:c.dict(c.string()).default({})});spec;keyRef;inFlight=new Set;server;listenedPort;localKey;keyStored=!1;constructor(e,t){super(e,"llmGateway"),this.spec=V(t),this.keyRef=K(this.spec.keyRef)}get port(){return this.listenedPort}get host(){return this.spec.host}get baseURL(){return`http://${this.spec.host}:${String(this.listenedPort)}/v1`}inspect(){return{inFlight:this.inFlight.size,keyStored:this.keyStored}}async[q.init](){await this.establishKey();const e=this.buildDeps();this.server=se((t,r)=>{Ne(t,r,e).catch(n=>{if(this.ctx.logger.warn(`llm-gateway: request handling failed: ${n instanceof Error?n.message:String(n)}`),r.headersSent){r.destroy();return}b(r,500,"Internal gateway error",p.SERVER,d.PROXY_ERROR)})}),await new Promise((t,r)=>{const n=o(a=>{r(new re(a))},"rejectListen");this.server.once("error",n),this.server.listen(this.spec.port,this.spec.host,()=>{this.server.off("error",n),this.server.on("error",a=>{this.ctx.logger.error(a)}),this.listenedPort=this.server.address().port,t()})}),this.ctx.effect(()=>async()=>{for(const r of this.inFlight)r.destroy();this.inFlight.clear();const t=new Promise(r=>{this.server.close(()=>{r()})});this.server.closeAllConnections(),await t,await this.retractKey()},"llmGateway.listen")}async establishKey(){if(!this.spec.generateKey)return;const e=await this.ctx.credentials.describe(this.keyRef);if(!e.writable)throw new ne(this.spec.keyRef,e.source);const t=M(32).toString("base64url");await this.ctx.credentials.set(this.keyRef,t),this.localKey=t,this.keyStored=!0}async retractKey(){if(this.keyStored){this.keyStored=!1,this.localKey=void 0;try{await this.ctx.credentials.unset(this.keyRef)}catch(e){this.ctx.logger.warn(`llm-gateway: could not remove the gateway key from "${this.spec.keyRef}": ${e instanceof Error?e.message:String(e)}`)}}}buildDeps(){return{spec:this.spec,logger:{debug:o(e=>{this.ctx.logger.debug(e)},"debug"),warn:o(e=>{this.ctx.logger.warn(e)},"warn")},expectedKey:o(async()=>{const e=this.localKey;return e!==void 0?e:(await this.ctx.credentials.resolve(this.keyRef))?.value},"expectedKey"),upstreamAuth:o(async()=>this.resolveUpstreamAuth(),"upstreamAuth"),reviewInput:this.spec.review.input?e=>this.review(e,F.INPUT):void 0,reviewOutput:this.spec.review.output?e=>this.review(e,F.OUTPUT):void 0,track:o(e=>(this.inFlight.add(e),()=>{this.inFlight.delete(e)}),"track")}}async resolveUpstreamAuth(){const e=this.spec.auth;switch(e.kind){case"qb-encode-token":{const t=await this.ctx.qbAuth.llmToken(),r=await this.ctx.qbAuth.identity();return{authorization:`Bearer ${t}`,guid:r.guid,qimei36:r.qimei36,qua2:r.qua2}}case"credential":{const t=await this.ctx.credentials.resolve(K(e.ref));if(t===void 0)throw new Error(`llm-gateway: credential "${e.ref}" is not configured`);return{authorization:`Bearer ${t.value}`,guid:"",qimei36:"",qua2:""}}default:throw new Error(`llm-gateway: unhandled auth strategy ${JSON.stringify(e)}`)}}async review(e,t){try{await this.ctx.contentReview.review({text:e,type:t});return}catch(r){const n=Ce(r);if(n!==void 0)return n;throw r}}};export{G as DEFAULT_KEY_REF,d as ErrorCode,p as ErrorType,P as GatewayConfigError,ne as GatewayKeyError,re as GatewayListenError,ae as LlmGateway,ae as default,V as resolveSpec};
|
|
17
|
+
`),t.end()}})()})},"runStreamGate"),w=o((e,t)=>{if(!(typeof e!="object"||e===null))return e[t]},"child"),Se=o(e=>{const t=e.authorization;if(typeof t!="string")return;const r=/^Bearer\s+(.+)$/i.exec(t);return r===null?void 0:r[1]},"extractBearerToken"),ke=o((e,t)=>new Promise((r,n)=>{const a=[];let s=0;e.on("data",l=>{if(s+=l.length,s>t){n(new Error(`request body exceeds ${String(t)} bytes`)),e.destroy();return}a.push(l)}),e.once("end",()=>{r(Buffer.concat(a))}),e.once("error",n)}),"readRequestBody"),Ie=o(e=>{const t=[];for(const r of e){if(w(r,"role")!=="user")continue;const n=w(r,"content");if(typeof n=="string"){n.length>0&&t.push(n);continue}if(Array.isArray(n))for(const a of n){const s=w(a,"text");w(a,"type")==="text"&&typeof s=="string"&&s.length>0&&t.push(s)}}return t},"collectUserTexts"),be=o(e=>{let t=-1;for(let r=e.length-1;r>=0;r-=1)if(w(e[r],"role")==="user"){t=r;break}return t<0?!1:e.slice(t+1).some(r=>w(r,"role")==="tool")},"hasToolMessageAfterLastUser"),xe=o(e=>{const t=w(e,"choices");if(!Array.isArray(t))return{texts:[],hasToolCalls:!1};const r=[];let n=!1;for(const a of t){const s=w(a,"message"),l=w(s,"content");typeof l=="string"&&l.length>0&&r.push(l);const _=w(s,"tool_calls"),h=w(s,"function_call");(Array.isArray(_)&&_.length>0||h!=null)&&(n=!0)}return{texts:r,hasToolCalls:n}},"collectReplyTexts"),te=o(e=>{const t={};for(const[r,n]of Object.entries(e))n!==void 0&&(Y.has(r.toLowerCase())||(t[r]=n));return t},"relayResponseHeaders"),Ue=o(()=>Math.random().toString(36).slice(2,10),"newRequestId"),Ne=o(async(e,t,r)=>{const{spec:n,logger:a}=r,s=Ue(),l=e.url??"/",_=e.method??"GET",h=me(l,n.upstream.basePath);if(!h.ok){a.debug(`llm-gateway[${s}]: refusing ${_} target (${h.reason})`);const i=h.reason==="not-v1"?404:400,f=h.reason==="not-v1"?d.NOT_FOUND:d.BAD_REQUEST;I(t,i,h.reason==="not-v1"?"Not Found":"Bad Request",p.INVALID_REQUEST,f);return}const m=Se(e.headers);if(m===void 0){I(t,401,"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth.",p.INVALID_REQUEST,d.MISSING_API_KEY);return}const E=await r.expectedKey();if(E===void 0||E===""||m!==E){I(t,401,"Incorrect API key provided. You can check your API key in the proxy configuration.",p.INVALID_REQUEST,d.INVALID_API_KEY);return}let g;try{g=await ke(e,n.maxRequestBytes)}catch(i){a.warn(`llm-gateway[${s}]: cannot read the request body: ${i instanceof Error?i.message:"unknown error"}`),t.headersSent||I(t,400,"Failed to read request body",p.INVALID_REQUEST,d.BAD_REQUEST);return}const A=l.includes("/chat/completions");let y,v=!1;if(A&&g.length>0)try{y=JSON.parse(g.toString("utf-8")),v=w(y,"stream")===!0}catch{}const k=w(y,"model"),N=typeof k=="string"&&k!==""?k:Ee;let O=g;const b=typeof k=="string"?n.modelMap[k]:void 0;b!==void 0&&typeof y=="object"&&y!==null&&(O=Buffer.from(JSON.stringify({...y,model:b}),"utf-8"));const $=w(y,"messages");if(r.reviewInput!==void 0&&A&&Array.isArray($)){const i=await Oe($,r,s);if(i!==void 0){C(t,{isStream:v,httpStatus:400,message:i.fallbackMsg===""?_e:i.fallbackMsg,type:p.CONTENT_FILTER,code:d.CONTENT_REVIEW_FAILED_INPUT,extra:i.extra});return}}let T;try{T=await r.upstreamAuth()}catch(i){C(t,$e(i,v)),a.warn(`llm-gateway[${s}]: cannot obtain upstream credentials: ${i instanceof Error?i.name:"unknown error"}`);return}const x={authorization:T.authorization,bus:le};T.guid!==""&&(x.guid=T.guid),T.qimei36!==""&&(x.qimei36=T.qimei36),T.qua2!==""&&(x.qua2=T.qua2),O!==g&&(x["content-length"]=String(O.length));const R=we({target:n.upstream,method:_,path:h.path,headers:ge(e.headers,n.upstream,x),timeoutMs:n.timeoutMs}),u=r.track(R);R.on("response",i=>{const f=i.statusCode??502;if((i.headers["content-type"]??"").includes("text/event-stream")||v){t.writeHead(f,te(i.headers)),Re({res:t,upstream:i,model:N,thresholdChars:n.review.thresholdChars,maxPendingBytes:n.review.maxPendingBytes,reviewOutput:r.reviewOutput,logger:a,requestId:s});return}Pe({upstream:i,res:t,status:f,deps:r,requestId:s,modelLabel:N,isChatCompletions:A})}),R.on("timeout",()=>{a.warn(`llm-gateway[${s}]: upstream timed out after ${String(n.timeoutMs)}ms`),R.destroy(),C(t,{isStream:v,httpStatus:504,message:"Gateway Timeout",type:p.SERVER,code:d.GATEWAY_TIMEOUT})}),R.on("error",i=>{a.warn(`llm-gateway[${s}]: upstream request failed: ${i.message}`),C(t,{isStream:v,httpStatus:502,message:`Bad Gateway: ${i.message}`,type:p.SERVER,code:d.PROXY_ERROR})}),R.once("close",u),t.once("close",()=>{t.writableEnded||R.destroy()}),R.end(O)},"handleRequest"),Oe=o(async(e,t,r)=>{if(be(e)){t.logger.debug(`llm-gateway[${r}]: tool continuation; input already reviewed this turn`);return}const n=Ie(e).at(-1);if(n===void 0)return;const a=t.reviewInput;if(a!==void 0)try{return await a(n)}catch(s){t.logger.warn(`llm-gateway[${r}]: input review unavailable, forwarding anyway (${s instanceof Error?s.name:"unknown error"})`);return}},"reviewLastUserMessage"),$e=o((e,t)=>e instanceof de?{isStream:t,httpStatus:429,message:e.message,type:p.INSUFFICIENT_QUOTA,code:d.TOKEN_EXHAUSTED}:e instanceof ue?{isStream:t,httpStatus:401,message:`Auth token expired: ${e.message}`,type:p.AUTH,code:d.AUTH_EXPIRED}:{isStream:t,httpStatus:500,message:`${e instanceof Error?e.message:"unknown error"}`,type:p.SERVER,code:d.TOKEN_FETCH_ERROR},"classifyAuthFailure"),Pe=o(e=>{const{upstream:t,res:r,status:n,deps:a,requestId:s,modelLabel:l,isChatCompletions:_}=e,h=[];t.on("data",m=>{h.push(m)}),t.once("error",m=>{if(a.logger.warn(`llm-gateway[${s}]: reading the upstream reply failed: ${m.message}`),!r.headersSent){I(r,502,`Bad Gateway: ${m.message}`,p.SERVER,d.PROXY_ERROR);return}r.end()}),t.once("end",()=>{(async()=>{const m=Buffer.concat(h);let E;if(_)try{E=JSON.parse(m.toString("utf-8"))}catch{}if(z(E)){if(a.logger.warn(`llm-gateway[${s}]: upstream reported a dependency failure (reqid=${X(E)})`),!r.headersSent){I(r,503,B,p.UPSTREAM,d.UPSTREAM_UNAVAILABLE);return}r.end();return}if(E!==void 0){const g=xe(E);if(g.texts.length===0&&!g.hasToolCalls){if(a.logger.debug(`llm-gateway[${s}]: upstream produced no output; sending the standard notice`),!r.headersSent){ve(r,H,l);return}r.end();return}const A=a.reviewOutput;if(A!==void 0&&g.texts.length>0){const y=await Le(A,g.texts.join(""),a,s);if(y!==void 0){if(!r.headersSent){I(r,400,y.fallbackMsg,p.CONTENT_FILTER,d.CONTENT_REVIEW_FAILED_OUTPUT,y.extra);return}r.end();return}}}if(r.headersSent){r.end();return}r.writeHead(n,te(t.headers)),r.end(m)})()})},"relayBufferedResponse"),Le=o(async(e,t,r,n)=>{try{return await e(t)}catch(a){r.logger.warn(`llm-gateway[${n}]: output review unavailable, relaying the reply (${a instanceof Error?a.name:"unknown error"})`);return}},"reviewOutputText");var re=class extends Error{static{o(this,"GatewayListenError")}code="GATEWAY_LISTEN_FAILED";constructor(e){super(`llm-gateway: failed to listen: ${e.message}`,{cause:e}),this.name="GatewayListenError"}},ne=class extends Error{static{o(this,"GatewayKeyError")}code="GATEWAY_KEY_UNWRITABLE";constructor(e,t){super(`llm-gateway: cannot store the gateway key in "${e}": a read-only source${t===void 0?"":` (${t})`} already supplies it. Point keyRef at an unused reference, or set generateKey to false to authenticate against the value that source provides.`),this.name="GatewayKeyError"}};const Ce=o(e=>{if(e instanceof ce)return{fallbackMsg:e.fallbackMsg,extra:{phase_action:e.phaseAction,is_show:e.isShow}}},"toReviewDenial");var ae=class extends q{static{o(this,"LlmGateway")}static inject=["credentials","qbAuth","contentReview"];static Config=c.object({host:c.union([c.const("127.0.0.1"),c.const("0.0.0.0")]).default("127.0.0.1"),port:c.natural().max(65535).default(0),upstream:c.object({baseURL:c.string().required(),timeoutMs:c.natural().min(1e3).max(6e5).default(12e4)}),auth:c.object({kind:c.union([c.const("qb-encode-token"),c.const("credential")]).default("qb-encode-token"),ref:c.string().role("credential-ref").default("")}),review:c.object({input:c.boolean().default(!0),output:c.boolean().default(!0),thresholdChars:c.natural().min(1).default(100),maxPendingBytes:c.natural().min(1024).default(4194304)}),keyRef:c.string().role("credential-ref").default(G),maxRequestBytes:c.natural().min(1024).default(33554432),generateKey:c.boolean().default(!0),modelMap:c.dict(c.string()).default({})});spec;keyRef;inFlight=new Set;server;listenedPort;localKey;keyStored=!1;constructor(e,t){super(e,"llmGateway"),this.spec=V(t),this.keyRef=K(this.spec.keyRef)}get port(){return this.listenedPort}get host(){return this.spec.host}get baseURL(){return`http://${this.spec.host}:${String(this.listenedPort)}/v1`}inspect(){return{inFlight:this.inFlight.size,keyStored:this.keyStored}}async[q.init](){await this.establishKey();const e=this.buildDeps();this.server=se((t,r)=>{Ne(t,r,e).catch(n=>{if(this.ctx.logger.warn(`llm-gateway: request handling failed: ${n instanceof Error?n.message:String(n)}`),r.headersSent){r.destroy();return}I(r,500,"Internal gateway error",p.SERVER,d.PROXY_ERROR)})}),await new Promise((t,r)=>{const n=o(a=>{r(new re(a))},"rejectListen");this.server.once("error",n),this.server.listen(this.spec.port,this.spec.host,()=>{this.server.off("error",n),this.server.on("error",a=>{this.ctx.logger.error(a)}),this.listenedPort=this.server.address().port,t()})}),this.ctx.effect(()=>async()=>{for(const r of this.inFlight)r.destroy();this.inFlight.clear();const t=new Promise(r=>{this.server.close(()=>{r()})});this.server.closeAllConnections(),await t,await this.retractKey()},"llmGateway.listen")}async establishKey(){if(!this.spec.generateKey)return;const e=await this.ctx.credentials.describe(this.keyRef);if(!e.writable)throw new ne(this.spec.keyRef,e.source);const t=M(32).toString("base64url");await this.ctx.credentials.set(this.keyRef,t),this.localKey=t,this.keyStored=!0}async retractKey(){if(this.keyStored){this.keyStored=!1,this.localKey=void 0;try{await this.ctx.credentials.unset(this.keyRef)}catch(e){this.ctx.logger.warn(`llm-gateway: could not remove the gateway key from "${this.spec.keyRef}": ${e instanceof Error?e.message:String(e)}`)}}}buildDeps(){return{spec:this.spec,logger:{debug:o(e=>{this.ctx.logger.debug(e)},"debug"),warn:o(e=>{this.ctx.logger.warn(e)},"warn")},expectedKey:o(async()=>{const e=this.localKey;return e!==void 0?e:(await this.ctx.credentials.resolve(this.keyRef))?.value},"expectedKey"),upstreamAuth:o(async()=>this.resolveUpstreamAuth(),"upstreamAuth"),reviewInput:this.spec.review.input?e=>this.review(e,F.INPUT):void 0,reviewOutput:this.spec.review.output?e=>this.review(e,F.OUTPUT):void 0,track:o(e=>(this.inFlight.add(e),()=>{this.inFlight.delete(e)}),"track")}}async resolveUpstreamAuth(){const e=this.spec.auth;switch(e.kind){case"qb-encode-token":{const t=await this.ctx.qbAuth.llmToken(),r=await this.ctx.qbAuth.identity();return{authorization:`Bearer ${t}`,guid:r.guid,qimei36:r.qimei36,qua2:r.qua2}}case"credential":{const t=await this.ctx.credentials.resolve(K(e.ref));if(t===void 0)throw new Error(`llm-gateway: credential "${e.ref}" is not configured`);return{authorization:`Bearer ${t.value}`,guid:"",qimei36:"",qua2:""}}default:throw new Error(`llm-gateway: unhandled auth strategy ${JSON.stringify(e)}`)}}async review(e,t){try{await this.ctx.contentReview.review({text:e,type:t});return}catch(r){const n=Ce(r);if(n!==void 0)return n;throw r}}};export{G as DEFAULT_KEY_REF,d as ErrorCode,p as ErrorType,P as GatewayConfigError,ne as GatewayKeyError,re as GatewayListenError,ae as LlmGateway,ae as default,V as resolveSpec};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-llm-gateway-openai","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-llm-gateway-openai","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-qb-auth":"^0.0.15","@deepseek-ai/dsh-content-review":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-llm-pi-ai","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-llm-pi-ai","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-attachment":"^0.0.15","@deepseek-ai/dsh-launch-environment":"^0.0.15","@deepseek-ai/dsh-credentials":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-settings":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-timeout":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15"},"dependencies":{"@earendil-works/pi-ai":"^0.83.0","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-llm-retry","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-llm-retry","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-agent":"^0.0.15","@deepseek-ai/dsh-timeout":"^0.0.15","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.0.15"},"dependencies":{"@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-mcp-client","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-mcp-client","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-subprocess":"^0.0.15","@deepseek-ai/dsh-timeout":"^0.0.15","@deepseek-ai/dsh-tools":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-message-feedback","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-message-feedback","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./types":{"types":"./lib/types/types.d.ts","default":"./lib/types/types.js"},"./typert":{"types":"./lib/typert.host.d.ts","default":"./lib/typert.host.js"},"./remote":{"types":"./lib/typert.remote-client.d.ts","default":"./lib/typert.remote-client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-session":"^0.0.15","@deepseek-ai/dsh-session-persistence":"^0.0.15","@deepseek-ai/dsh-llm":"^0.0.15","@deepseek-ai/dsh-brand":"^0.0.15","@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/dsh-storage-domain":"^0.0.15","@deepseek-ai/dsh-typert-protocol":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"},"dependencies":{"zod":"^4.4.3","@deepseek-ai/schemastery":"^3.18.1"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@deepseek-ai/dsh-native-command","version":"0.0.
|
|
1
|
+
{"name":"@deepseek-ai/dsh-native-command","version":"0.0.15","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./src/*":"./src/*","./package.json":"./package.json"},"license":"MIT","peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.0.15","@deepseek-ai/cordis":"^4.0.1"}}
|