@forgefabrik/ff-ztn 0.3.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/README.md +149 -0
- package/dist/discover.d.ts +3 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +18 -0
- package/dist/discover.js.map +1 -0
- package/dist/genericagent.d.ts +3 -0
- package/dist/genericagent.d.ts.map +1 -0
- package/dist/genericagent.js +40 -0
- package/dist/genericagent.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/zero-token/accounts/account-repository.d.ts +7 -0
- package/dist/zero-token/accounts/account-repository.d.ts.map +1 -0
- package/dist/zero-token/accounts/account-repository.js +37 -0
- package/dist/zero-token/accounts/account-repository.js.map +1 -0
- package/dist/zero-token/accounts/account-service.d.ts +11 -0
- package/dist/zero-token/accounts/account-service.d.ts.map +1 -0
- package/dist/zero-token/accounts/account-service.js +66 -0
- package/dist/zero-token/accounts/account-service.js.map +1 -0
- package/dist/zero-token/accounts/account-types.d.ts +42 -0
- package/dist/zero-token/accounts/account-types.d.ts.map +1 -0
- package/dist/zero-token/accounts/account-types.js +2 -0
- package/dist/zero-token/accounts/account-types.js.map +1 -0
- package/dist/zero-token/accounts/account-validation.d.ts +14 -0
- package/dist/zero-token/accounts/account-validation.d.ts.map +1 -0
- package/dist/zero-token/accounts/account-validation.js +88 -0
- package/dist/zero-token/accounts/account-validation.js.map +1 -0
- package/dist/zero-token/agent/cli.d.ts +2 -0
- package/dist/zero-token/agent/cli.d.ts.map +1 -0
- package/dist/zero-token/agent/cli.js +116 -0
- package/dist/zero-token/agent/cli.js.map +1 -0
- package/dist/zero-token/agent/external-backend.d.ts +3 -0
- package/dist/zero-token/agent/external-backend.d.ts.map +1 -0
- package/dist/zero-token/agent/external-backend.js +3 -0
- package/dist/zero-token/agent/external-backend.js.map +1 -0
- package/dist/zero-token/agent/genericagent-config.d.ts +11 -0
- package/dist/zero-token/agent/genericagent-config.d.ts.map +1 -0
- package/dist/zero-token/agent/genericagent-config.js +44 -0
- package/dist/zero-token/agent/genericagent-config.js.map +1 -0
- package/dist/zero-token/agent/genericagent-runtime.d.ts +20 -0
- package/dist/zero-token/agent/genericagent-runtime.d.ts.map +1 -0
- package/dist/zero-token/agent/genericagent-runtime.js +71 -0
- package/dist/zero-token/agent/genericagent-runtime.js.map +1 -0
- package/dist/zero-token/agent/project-init.d.ts +11 -0
- package/dist/zero-token/agent/project-init.d.ts.map +1 -0
- package/dist/zero-token/agent/project-init.js +58 -0
- package/dist/zero-token/agent/project-init.js.map +1 -0
- package/dist/zero-token/agent/yoyo-adapter.d.ts +23 -0
- package/dist/zero-token/agent/yoyo-adapter.d.ts.map +1 -0
- package/dist/zero-token/agent/yoyo-adapter.js +88 -0
- package/dist/zero-token/agent/yoyo-adapter.js.map +1 -0
- package/dist/zero-token/app-meta.d.ts +7 -0
- package/dist/zero-token/app-meta.d.ts.map +1 -0
- package/dist/zero-token/app-meta.js +7 -0
- package/dist/zero-token/app-meta.js.map +1 -0
- package/dist/zero-token/cli/doctor-command.d.ts +18 -0
- package/dist/zero-token/cli/doctor-command.d.ts.map +1 -0
- package/dist/zero-token/cli/doctor-command.js +96 -0
- package/dist/zero-token/cli/doctor-command.js.map +1 -0
- package/dist/zero-token/config/config.d.ts +56 -0
- package/dist/zero-token/config/config.d.ts.map +1 -0
- package/dist/zero-token/config/config.js +98 -0
- package/dist/zero-token/config/config.js.map +1 -0
- package/dist/zero-token/config/paths.d.ts +12 -0
- package/dist/zero-token/config/paths.d.ts.map +1 -0
- package/dist/zero-token/config/paths.js +50 -0
- package/dist/zero-token/config/paths.js.map +1 -0
- package/dist/zero-token/discovery/builtin-catalog.d.ts +13 -0
- package/dist/zero-token/discovery/builtin-catalog.d.ts.map +1 -0
- package/dist/zero-token/discovery/builtin-catalog.js +25 -0
- package/dist/zero-token/discovery/builtin-catalog.js.map +1 -0
- package/dist/zero-token/discovery/candidate-evaluator.d.ts +4 -0
- package/dist/zero-token/discovery/candidate-evaluator.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-evaluator.js +132 -0
- package/dist/zero-token/discovery/candidate-evaluator.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-capability.d.ts +6 -0
- package/dist/zero-token/discovery/candidate-probe-capability.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-capability.js +10 -0
- package/dist/zero-token/discovery/candidate-probe-capability.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-evidence.d.ts +13 -0
- package/dist/zero-token/discovery/candidate-probe-evidence.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-evidence.js +53 -0
- package/dist/zero-token/discovery/candidate-probe-evidence.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-observer.d.ts +3 -0
- package/dist/zero-token/discovery/candidate-probe-observer.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-observer.js +36 -0
- package/dist/zero-token/discovery/candidate-probe-observer.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-runtime.d.ts +6 -0
- package/dist/zero-token/discovery/candidate-probe-runtime.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-runtime.js +120 -0
- package/dist/zero-token/discovery/candidate-probe-runtime.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-store.d.ts +9 -0
- package/dist/zero-token/discovery/candidate-probe-store.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-store.js +66 -0
- package/dist/zero-token/discovery/candidate-probe-store.js.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-types.d.ts +30 -0
- package/dist/zero-token/discovery/candidate-probe-types.d.ts.map +1 -0
- package/dist/zero-token/discovery/candidate-probe-types.js +2 -0
- package/dist/zero-token/discovery/candidate-probe-types.js.map +1 -0
- package/dist/zero-token/discovery/control-service.d.ts +8 -0
- package/dist/zero-token/discovery/control-service.d.ts.map +1 -0
- package/dist/zero-token/discovery/control-service.js +107 -0
- package/dist/zero-token/discovery/control-service.js.map +1 -0
- package/dist/zero-token/discovery/control-store.d.ts +7 -0
- package/dist/zero-token/discovery/control-store.d.ts.map +1 -0
- package/dist/zero-token/discovery/control-store.js +70 -0
- package/dist/zero-token/discovery/control-store.js.map +1 -0
- package/dist/zero-token/discovery/control-types.d.ts +39 -0
- package/dist/zero-token/discovery/control-types.d.ts.map +1 -0
- package/dist/zero-token/discovery/control-types.js +2 -0
- package/dist/zero-token/discovery/control-types.js.map +1 -0
- package/dist/zero-token/discovery/discovery-routes.d.ts +3 -0
- package/dist/zero-token/discovery/discovery-routes.d.ts.map +1 -0
- package/dist/zero-token/discovery/discovery-routes.js +130 -0
- package/dist/zero-token/discovery/discovery-routes.js.map +1 -0
- package/dist/zero-token/discovery/discovery-service.d.ts +18 -0
- package/dist/zero-token/discovery/discovery-service.d.ts.map +1 -0
- package/dist/zero-token/discovery/discovery-service.js +81 -0
- package/dist/zero-token/discovery/discovery-service.js.map +1 -0
- package/dist/zero-token/discovery/manifest.d.ts +14 -0
- package/dist/zero-token/discovery/manifest.d.ts.map +1 -0
- package/dist/zero-token/discovery/manifest.js +43 -0
- package/dist/zero-token/discovery/manifest.js.map +1 -0
- package/dist/zero-token/discovery/public-site-inspector.d.ts +10 -0
- package/dist/zero-token/discovery/public-site-inspector.d.ts.map +1 -0
- package/dist/zero-token/discovery/public-site-inspector.js +111 -0
- package/dist/zero-token/discovery/public-site-inspector.js.map +1 -0
- package/dist/zero-token/gateway/api-key-auth.d.ts +3 -0
- package/dist/zero-token/gateway/api-key-auth.d.ts.map +1 -0
- package/dist/zero-token/gateway/api-key-auth.js +59 -0
- package/dist/zero-token/gateway/api-key-auth.js.map +1 -0
- package/dist/zero-token/gateway/api-request-logger-quiet.d.ts +3 -0
- package/dist/zero-token/gateway/api-request-logger-quiet.d.ts.map +1 -0
- package/dist/zero-token/gateway/api-request-logger-quiet.js +79 -0
- package/dist/zero-token/gateway/api-request-logger-quiet.js.map +1 -0
- package/dist/zero-token/gateway/api-request-logger.d.ts +3 -0
- package/dist/zero-token/gateway/api-request-logger.d.ts.map +1 -0
- package/dist/zero-token/gateway/api-request-logger.js +67 -0
- package/dist/zero-token/gateway/api-request-logger.js.map +1 -0
- package/dist/zero-token/gateway/complete-gateway.d.ts +16 -0
- package/dist/zero-token/gateway/complete-gateway.d.ts.map +1 -0
- package/dist/zero-token/gateway/complete-gateway.js +25 -0
- package/dist/zero-token/gateway/complete-gateway.js.map +1 -0
- package/dist/zero-token/gateway/dashboard-gateway.d.ts +16 -0
- package/dist/zero-token/gateway/dashboard-gateway.d.ts.map +1 -0
- package/dist/zero-token/gateway/dashboard-gateway.js +33 -0
- package/dist/zero-token/gateway/dashboard-gateway.js.map +1 -0
- package/dist/zero-token/gateway/gateway.d.ts +2 -0
- package/dist/zero-token/gateway/gateway.d.ts.map +1 -0
- package/dist/zero-token/gateway/gateway.js +2 -0
- package/dist/zero-token/gateway/gateway.js.map +1 -0
- package/dist/zero-token/gateway/inference-dispatch.d.ts +3 -0
- package/dist/zero-token/gateway/inference-dispatch.d.ts.map +1 -0
- package/dist/zero-token/gateway/inference-dispatch.js +97 -0
- package/dist/zero-token/gateway/inference-dispatch.js.map +1 -0
- package/dist/zero-token/gateway/playground-routes.d.ts +3 -0
- package/dist/zero-token/gateway/playground-routes.d.ts.map +1 -0
- package/dist/zero-token/gateway/playground-routes.js +33 -0
- package/dist/zero-token/gateway/playground-routes.js.map +1 -0
- package/dist/zero-token/gateway/provider-runtime-routes.d.ts +3 -0
- package/dist/zero-token/gateway/provider-runtime-routes.d.ts.map +1 -0
- package/dist/zero-token/gateway/provider-runtime-routes.js +38 -0
- package/dist/zero-token/gateway/provider-runtime-routes.js.map +1 -0
- package/dist/zero-token/gateway/runtime-gateway.d.ts +20 -0
- package/dist/zero-token/gateway/runtime-gateway.d.ts.map +1 -0
- package/dist/zero-token/gateway/runtime-gateway.js +234 -0
- package/dist/zero-token/gateway/runtime-gateway.js.map +1 -0
- package/dist/zero-token/identities/google-identity-service.d.ts +27 -0
- package/dist/zero-token/identities/google-identity-service.d.ts.map +1 -0
- package/dist/zero-token/identities/google-identity-service.js +162 -0
- package/dist/zero-token/identities/google-identity-service.js.map +1 -0
- package/dist/zero-token/index.d.ts +3 -0
- package/dist/zero-token/index.d.ts.map +1 -0
- package/dist/zero-token/index.js +380 -0
- package/dist/zero-token/index.js.map +1 -0
- package/dist/zero-token/inference/browser-stream-utils.d.ts +5 -0
- package/dist/zero-token/inference/browser-stream-utils.d.ts.map +1 -0
- package/dist/zero-token/inference/browser-stream-utils.js +118 -0
- package/dist/zero-token/inference/browser-stream-utils.js.map +1 -0
- package/dist/zero-token/inference/chatgpt-browser-provider.d.ts +17 -0
- package/dist/zero-token/inference/chatgpt-browser-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/chatgpt-browser-provider.js +242 -0
- package/dist/zero-token/inference/chatgpt-browser-provider.js.map +1 -0
- package/dist/zero-token/inference/chatgpt-conversation-state.d.ts +8 -0
- package/dist/zero-token/inference/chatgpt-conversation-state.d.ts.map +1 -0
- package/dist/zero-token/inference/chatgpt-conversation-state.js +60 -0
- package/dist/zero-token/inference/chatgpt-conversation-state.js.map +1 -0
- package/dist/zero-token/inference/chatgpt-direct-provider.d.ts +15 -0
- package/dist/zero-token/inference/chatgpt-direct-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/chatgpt-direct-provider.js +348 -0
- package/dist/zero-token/inference/chatgpt-direct-provider.js.map +1 -0
- package/dist/zero-token/inference/chatgpt-provider.d.ts +32 -0
- package/dist/zero-token/inference/chatgpt-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/chatgpt-provider.js +312 -0
- package/dist/zero-token/inference/chatgpt-provider.js.map +1 -0
- package/dist/zero-token/inference/claude-browser-provider.d.ts +16 -0
- package/dist/zero-token/inference/claude-browser-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/claude-browser-provider.js +193 -0
- package/dist/zero-token/inference/claude-browser-provider.js.map +1 -0
- package/dist/zero-token/inference/claude-openclaw-provider.d.ts +14 -0
- package/dist/zero-token/inference/claude-openclaw-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/claude-openclaw-provider.js +187 -0
- package/dist/zero-token/inference/claude-openclaw-provider.js.map +1 -0
- package/dist/zero-token/inference/glm-browser-provider.d.ts +15 -0
- package/dist/zero-token/inference/glm-browser-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/glm-browser-provider.js +166 -0
- package/dist/zero-token/inference/glm-browser-provider.js.map +1 -0
- package/dist/zero-token/inference/inference-provider.d.ts +44 -0
- package/dist/zero-token/inference/inference-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/inference-provider.js +32 -0
- package/dist/zero-token/inference/inference-provider.js.map +1 -0
- package/dist/zero-token/inference/model-registry.d.ts +28 -0
- package/dist/zero-token/inference/model-registry.d.ts.map +1 -0
- package/dist/zero-token/inference/model-registry.js +48 -0
- package/dist/zero-token/inference/model-registry.js.map +1 -0
- package/dist/zero-token/inference/qwen-browser-provider.d.ts +14 -0
- package/dist/zero-token/inference/qwen-browser-provider.d.ts.map +1 -0
- package/dist/zero-token/inference/qwen-browser-provider.js +227 -0
- package/dist/zero-token/inference/qwen-browser-provider.js.map +1 -0
- package/dist/zero-token/inference/stream.d.ts +15 -0
- package/dist/zero-token/inference/stream.d.ts.map +1 -0
- package/dist/zero-token/inference/stream.js +94 -0
- package/dist/zero-token/inference/stream.js.map +1 -0
- package/dist/zero-token/inference/types.d.ts +94 -0
- package/dist/zero-token/inference/types.d.ts.map +1 -0
- package/dist/zero-token/inference/types.js +5 -0
- package/dist/zero-token/inference/types.js.map +1 -0
- package/dist/zero-token/logger.d.ts +4 -0
- package/dist/zero-token/logger.d.ts.map +1 -0
- package/dist/zero-token/logger.js +27 -0
- package/dist/zero-token/logger.js.map +1 -0
- package/dist/zero-token/logging/log-events.d.ts +17 -0
- package/dist/zero-token/logging/log-events.d.ts.map +1 -0
- package/dist/zero-token/logging/log-events.js +74 -0
- package/dist/zero-token/logging/log-events.js.map +1 -0
- package/dist/zero-token/logging/log-routes.d.ts +3 -0
- package/dist/zero-token/logging/log-routes.d.ts.map +1 -0
- package/dist/zero-token/logging/log-routes.js +68 -0
- package/dist/zero-token/logging/log-routes.js.map +1 -0
- package/dist/zero-token/models/model-cache.d.ts +7 -0
- package/dist/zero-token/models/model-cache.d.ts.map +1 -0
- package/dist/zero-token/models/model-cache.js +58 -0
- package/dist/zero-token/models/model-cache.js.map +1 -0
- package/dist/zero-token/models/model-normalization.d.ts +4 -0
- package/dist/zero-token/models/model-normalization.d.ts.map +1 -0
- package/dist/zero-token/models/model-normalization.js +33 -0
- package/dist/zero-token/models/model-normalization.js.map +1 -0
- package/dist/zero-token/models/model-service.d.ts +6 -0
- package/dist/zero-token/models/model-service.d.ts.map +1 -0
- package/dist/zero-token/models/model-service.js +110 -0
- package/dist/zero-token/models/model-service.js.map +1 -0
- package/dist/zero-token/models/model-types.d.ts +28 -0
- package/dist/zero-token/models/model-types.d.ts.map +1 -0
- package/dist/zero-token/models/model-types.js +2 -0
- package/dist/zero-token/models/model-types.js.map +1 -0
- package/dist/zero-token/multi-account/router.d.ts +43 -0
- package/dist/zero-token/multi-account/router.d.ts.map +1 -0
- package/dist/zero-token/multi-account/router.js +94 -0
- package/dist/zero-token/multi-account/router.js.map +1 -0
- package/dist/zero-token/providers/browser-bridge-jobs.d.ts +26 -0
- package/dist/zero-token/providers/browser-bridge-jobs.d.ts.map +1 -0
- package/dist/zero-token/providers/browser-bridge-jobs.js +119 -0
- package/dist/zero-token/providers/browser-bridge-jobs.js.map +1 -0
- package/dist/zero-token/providers/browser-bridge-routes.d.ts +3 -0
- package/dist/zero-token/providers/browser-bridge-routes.d.ts.map +1 -0
- package/dist/zero-token/providers/browser-bridge-routes.js +71 -0
- package/dist/zero-token/providers/browser-bridge-routes.js.map +1 -0
- package/dist/zero-token/providers/browser.d.ts +47 -0
- package/dist/zero-token/providers/browser.d.ts.map +1 -0
- package/dist/zero-token/providers/browser.js +330 -0
- package/dist/zero-token/providers/browser.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-account-info.d.ts +12 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-account-info.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-account-info.js +66 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-account-info.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-auth.d.ts +9 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-auth.js +81 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-auth.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-browser.d.ts +21 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-browser.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-browser.js +64 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-browser.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-errors.d.ts +22 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-errors.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-errors.js +44 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-errors.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-session.d.ts +10 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-session.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-session.js +71 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-session.js.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-types.d.ts +36 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-types.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-types.js +2 -0
- package/dist/zero-token/providers/chatgpt/chatgpt-types.js.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-auth.d.ts +10 -0
- package/dist/zero-token/providers/chatgpt-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-auth.js +143 -0
- package/dist/zero-token/providers/chatgpt-web-auth.js.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-models.d.ts +8 -0
- package/dist/zero-token/providers/chatgpt-web-models.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-models.js +99 -0
- package/dist/zero-token/providers/chatgpt-web-models.js.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-validator.d.ts +8 -0
- package/dist/zero-token/providers/chatgpt-web-validator.d.ts.map +1 -0
- package/dist/zero-token/providers/chatgpt-web-validator.js +79 -0
- package/dist/zero-token/providers/chatgpt-web-validator.js.map +1 -0
- package/dist/zero-token/providers/claude-web-auth.d.ts +3 -0
- package/dist/zero-token/providers/claude-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/claude-web-auth.js +109 -0
- package/dist/zero-token/providers/claude-web-auth.js.map +1 -0
- package/dist/zero-token/providers/claude-web-models.d.ts +3 -0
- package/dist/zero-token/providers/claude-web-models.d.ts.map +1 -0
- package/dist/zero-token/providers/claude-web-models.js +71 -0
- package/dist/zero-token/providers/claude-web-models.js.map +1 -0
- package/dist/zero-token/providers/claude-web-validator.d.ts +3 -0
- package/dist/zero-token/providers/claude-web-validator.d.ts.map +1 -0
- package/dist/zero-token/providers/claude-web-validator.js +57 -0
- package/dist/zero-token/providers/claude-web-validator.js.map +1 -0
- package/dist/zero-token/providers/deepseek-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/deepseek-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/deepseek-web-auth.js +69 -0
- package/dist/zero-token/providers/deepseek-web-auth.js.map +1 -0
- package/dist/zero-token/providers/deepseek-web-validator.d.ts +3 -0
- package/dist/zero-token/providers/deepseek-web-validator.d.ts.map +1 -0
- package/dist/zero-token/providers/deepseek-web-validator.js +24 -0
- package/dist/zero-token/providers/deepseek-web-validator.js.map +1 -0
- package/dist/zero-token/providers/doubao-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/doubao-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/doubao-web-auth.js +44 -0
- package/dist/zero-token/providers/doubao-web-auth.js.map +1 -0
- package/dist/zero-token/providers/gemini-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/gemini-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/gemini-web-auth.js +47 -0
- package/dist/zero-token/providers/gemini-web-auth.js.map +1 -0
- package/dist/zero-token/providers/glm-intl-web-auth.d.ts +4 -0
- package/dist/zero-token/providers/glm-intl-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/glm-intl-web-auth.js +53 -0
- package/dist/zero-token/providers/glm-intl-web-auth.js.map +1 -0
- package/dist/zero-token/providers/glm-web-auth.d.ts +3 -0
- package/dist/zero-token/providers/glm-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/glm-web-auth.js +42 -0
- package/dist/zero-token/providers/glm-web-auth.js.map +1 -0
- package/dist/zero-token/providers/glm-web-models.d.ts +3 -0
- package/dist/zero-token/providers/glm-web-models.d.ts.map +1 -0
- package/dist/zero-token/providers/glm-web-models.js +52 -0
- package/dist/zero-token/providers/glm-web-models.js.map +1 -0
- package/dist/zero-token/providers/grok-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/grok-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/grok-web-auth.js +47 -0
- package/dist/zero-token/providers/grok-web-auth.js.map +1 -0
- package/dist/zero-token/providers/identity/chatgpt-identity.d.ts +15 -0
- package/dist/zero-token/providers/identity/chatgpt-identity.d.ts.map +1 -0
- package/dist/zero-token/providers/identity/chatgpt-identity.js +15 -0
- package/dist/zero-token/providers/identity/chatgpt-identity.js.map +1 -0
- package/dist/zero-token/providers/identity/identity-validation.d.ts +3 -0
- package/dist/zero-token/providers/identity/identity-validation.d.ts.map +1 -0
- package/dist/zero-token/providers/identity/identity-validation.js +74 -0
- package/dist/zero-token/providers/identity/identity-validation.js.map +1 -0
- package/dist/zero-token/providers/identity/provider-identity-readiness.d.ts +16 -0
- package/dist/zero-token/providers/identity/provider-identity-readiness.d.ts.map +1 -0
- package/dist/zero-token/providers/identity/provider-identity-readiness.js +56 -0
- package/dist/zero-token/providers/identity/provider-identity-readiness.js.map +1 -0
- package/dist/zero-token/providers/identity/provider-identity.d.ts +88 -0
- package/dist/zero-token/providers/identity/provider-identity.d.ts.map +1 -0
- package/dist/zero-token/providers/identity/provider-identity.js +17 -0
- package/dist/zero-token/providers/identity/provider-identity.js.map +1 -0
- package/dist/zero-token/providers/kimi-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/kimi-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/kimi-web-auth.js +50 -0
- package/dist/zero-token/providers/kimi-web-auth.js.map +1 -0
- package/dist/zero-token/providers/perplexity-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/perplexity-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/perplexity-web-auth.js +68 -0
- package/dist/zero-token/providers/perplexity-web-auth.js.map +1 -0
- package/dist/zero-token/providers/perplexity-web-validator.d.ts +3 -0
- package/dist/zero-token/providers/perplexity-web-validator.d.ts.map +1 -0
- package/dist/zero-token/providers/perplexity-web-validator.js +33 -0
- package/dist/zero-token/providers/perplexity-web-validator.js.map +1 -0
- package/dist/zero-token/providers/provider-account-resolver.d.ts +9 -0
- package/dist/zero-token/providers/provider-account-resolver.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-account-resolver.js +28 -0
- package/dist/zero-token/providers/provider-account-resolver.js.map +1 -0
- package/dist/zero-token/providers/provider-browser-profiles.d.ts +14 -0
- package/dist/zero-token/providers/provider-browser-profiles.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-browser-profiles.js +78 -0
- package/dist/zero-token/providers/provider-browser-profiles.js.map +1 -0
- package/dist/zero-token/providers/provider-catalog.d.ts +7 -0
- package/dist/zero-token/providers/provider-catalog.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-catalog.js +27 -0
- package/dist/zero-token/providers/provider-catalog.js.map +1 -0
- package/dist/zero-token/providers/provider-login-jobs.d.ts +21 -0
- package/dist/zero-token/providers/provider-login-jobs.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-login-jobs.js +185 -0
- package/dist/zero-token/providers/provider-login-jobs.js.map +1 -0
- package/dist/zero-token/providers/provider-runtime-registry.d.ts +16 -0
- package/dist/zero-token/providers/provider-runtime-registry.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-runtime-registry.js +88 -0
- package/dist/zero-token/providers/provider-runtime-registry.js.map +1 -0
- package/dist/zero-token/providers/provider-runtime-registry.test.d.ts +2 -0
- package/dist/zero-token/providers/provider-runtime-registry.test.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-runtime-registry.test.js +26 -0
- package/dist/zero-token/providers/provider-runtime-registry.test.js.map +1 -0
- package/dist/zero-token/providers/provider-types.d.ts +72 -0
- package/dist/zero-token/providers/provider-types.d.ts.map +1 -0
- package/dist/zero-token/providers/provider-types.js +2 -0
- package/dist/zero-token/providers/provider-types.js.map +1 -0
- package/dist/zero-token/providers/qwen-cn-web-auth.d.ts +4 -0
- package/dist/zero-token/providers/qwen-cn-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/qwen-cn-web-auth.js +58 -0
- package/dist/zero-token/providers/qwen-cn-web-auth.js.map +1 -0
- package/dist/zero-token/providers/qwen-web-auth.d.ts +3 -0
- package/dist/zero-token/providers/qwen-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/qwen-web-auth.js +67 -0
- package/dist/zero-token/providers/qwen-web-auth.js.map +1 -0
- package/dist/zero-token/providers/qwen-web-models.d.ts +3 -0
- package/dist/zero-token/providers/qwen-web-models.d.ts.map +1 -0
- package/dist/zero-token/providers/qwen-web-models.js +27 -0
- package/dist/zero-token/providers/qwen-web-models.js.map +1 -0
- package/dist/zero-token/providers/registry.d.ts +4 -0
- package/dist/zero-token/providers/registry.d.ts.map +1 -0
- package/dist/zero-token/providers/registry.js +39 -0
- package/dist/zero-token/providers/registry.js.map +1 -0
- package/dist/zero-token/providers/registry.next.d.ts +4 -0
- package/dist/zero-token/providers/registry.next.d.ts.map +1 -0
- package/dist/zero-token/providers/registry.next.js +30 -0
- package/dist/zero-token/providers/registry.next.js.map +1 -0
- package/dist/zero-token/providers/remote-browser-session.d.ts +7 -0
- package/dist/zero-token/providers/remote-browser-session.d.ts.map +1 -0
- package/dist/zero-token/providers/remote-browser-session.js +85 -0
- package/dist/zero-token/providers/remote-browser-session.js.map +1 -0
- package/dist/zero-token/providers/xiaomimo-web-auth.d.ts +7 -0
- package/dist/zero-token/providers/xiaomimo-web-auth.d.ts.map +1 -0
- package/dist/zero-token/providers/xiaomimo-web-auth.js +44 -0
- package/dist/zero-token/providers/xiaomimo-web-auth.js.map +1 -0
- package/dist/zero-token/quota/quota-manager.d.ts +2 -0
- package/dist/zero-token/quota/quota-manager.d.ts.map +1 -0
- package/dist/zero-token/quota/quota-manager.js +2 -0
- package/dist/zero-token/quota/quota-manager.js.map +1 -0
- package/dist/zero-token/quota/runtime-quota-manager.d.ts +19 -0
- package/dist/zero-token/quota/runtime-quota-manager.d.ts.map +1 -0
- package/dist/zero-token/quota/runtime-quota-manager.js +118 -0
- package/dist/zero-token/quota/runtime-quota-manager.js.map +1 -0
- package/dist/zero-token/session/session-service.d.ts +11 -0
- package/dist/zero-token/session/session-service.d.ts.map +1 -0
- package/dist/zero-token/session/session-service.js +169 -0
- package/dist/zero-token/session/session-service.js.map +1 -0
- package/dist/zero-token/session/session-types.d.ts +22 -0
- package/dist/zero-token/session/session-types.d.ts.map +1 -0
- package/dist/zero-token/session/session-types.js +2 -0
- package/dist/zero-token/session/session-types.js.map +1 -0
- package/dist/zero-token/storage/atomic-json-store.d.ts +10 -0
- package/dist/zero-token/storage/atomic-json-store.d.ts.map +1 -0
- package/dist/zero-token/storage/atomic-json-store.js +60 -0
- package/dist/zero-token/storage/atomic-json-store.js.map +1 -0
- package/package.json +59 -0
- package/web-console/dist/assets/index-B_4vEorW.css +1 -0
- package/web-console/dist/assets/index-DFs1Oo-1.js +27 -0
- package/web-console/dist/index.html +20 -0
- package/web-console/dist/nova-mark.svg +18 -0
- package/web-console/dist/nova-network.svg +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-identity-readiness.js","sourceRoot":"","sources":["../../../../src/zero-token/providers/identity/provider-identity-readiness.ts"],"names":[],"mappings":"AAuBA,MAAM,KAAK,GAAwD;IACjE,OAAO,EAAE;QACP,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,oBAAoB,EAAE,KAAK;QAC3B,wBAAwB,EAAE,KAAK;KAChC;IACD,MAAM,EAAE;QACN,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,oBAAoB,EAAE,IAAI;QAC1B,wBAAwB,EAAE,KAAK;KAChC;IACD,IAAI,EAAE;QACJ,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,oBAAoB,EAAE,KAAK;QAC3B,wBAAwB,EAAE,KAAK;KAChC;IACD,GAAG,EAAE;QACH,YAAY,EAAE,CAAC,YAAY,CAAC;QAC5B,oBAAoB,EAAE,IAAI;QAC1B,wBAAwB,EAAE,KAAK;KAChC;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,MAAc,EAAE,YAA+B;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CACtE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,OAAgC;IAEhC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,gBAAgB;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,CAAC,qBAAqB;QAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,EAAE,oBAAoB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,EAAE,wBAAwB,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { ProviderType } from "../../accounts/account-types.js";
|
|
2
|
+
export type IdentityValueSource = "header" | "cookie" | "localStorage" | "sessionStorage";
|
|
3
|
+
export interface BrowserCookieSnapshot {
|
|
4
|
+
name: string;
|
|
5
|
+
value: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
path?: string;
|
|
8
|
+
expires?: number;
|
|
9
|
+
httpOnly?: boolean;
|
|
10
|
+
secure?: boolean;
|
|
11
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
12
|
+
}
|
|
13
|
+
export interface BrowserIdentitySnapshot {
|
|
14
|
+
cookies: readonly BrowserCookieSnapshot[];
|
|
15
|
+
localStorage: Readonly<Record<string, string>>;
|
|
16
|
+
sessionStorage: Readonly<Record<string, string>>;
|
|
17
|
+
headers: Readonly<Record<string, string>>;
|
|
18
|
+
userAgent: string;
|
|
19
|
+
origin: string;
|
|
20
|
+
referer?: string;
|
|
21
|
+
capturedAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ProviderIdentity {
|
|
24
|
+
provider: ProviderType;
|
|
25
|
+
cookies: Readonly<Record<string, string>>;
|
|
26
|
+
localStorage: Readonly<Record<string, string>>;
|
|
27
|
+
sessionStorage: Readonly<Record<string, string>>;
|
|
28
|
+
accessToken?: string;
|
|
29
|
+
refreshToken?: string;
|
|
30
|
+
deviceId?: string;
|
|
31
|
+
csrfToken?: string;
|
|
32
|
+
userAgent: string;
|
|
33
|
+
origin: string;
|
|
34
|
+
referer?: string;
|
|
35
|
+
capturedAt: string;
|
|
36
|
+
source: "browser-profile";
|
|
37
|
+
}
|
|
38
|
+
export interface IdentityCandidate {
|
|
39
|
+
source: IdentityValueSource;
|
|
40
|
+
key: string;
|
|
41
|
+
stripBearerPrefix?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface ProviderIdentityRequirements {
|
|
44
|
+
sessionCredential: boolean;
|
|
45
|
+
deviceId: boolean;
|
|
46
|
+
csrfToken: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface ProviderIdentitySpec {
|
|
49
|
+
provider: ProviderType;
|
|
50
|
+
allowedHosts: readonly string[];
|
|
51
|
+
sessionCookieNames: readonly string[];
|
|
52
|
+
accessTokenCandidates: readonly IdentityCandidate[];
|
|
53
|
+
refreshTokenCandidates: readonly IdentityCandidate[];
|
|
54
|
+
deviceIdCandidates: readonly IdentityCandidate[];
|
|
55
|
+
csrfTokenCandidates: readonly IdentityCandidate[];
|
|
56
|
+
requirements: ProviderIdentityRequirements;
|
|
57
|
+
}
|
|
58
|
+
export type IdentityIssueSeverity = "error" | "warning";
|
|
59
|
+
export interface IdentityValidationIssue {
|
|
60
|
+
code: "missing-user-agent" | "missing-origin" | "invalid-origin" | "origin-host-mismatch" | "missing-session-credential" | "missing-device-id" | "missing-csrf-token";
|
|
61
|
+
severity: IdentityIssueSeverity;
|
|
62
|
+
field: "userAgent" | "origin" | "sessionCredential" | "deviceId" | "csrfToken";
|
|
63
|
+
message: string;
|
|
64
|
+
}
|
|
65
|
+
export interface IdentityValidationResult {
|
|
66
|
+
valid: boolean;
|
|
67
|
+
issues: readonly IdentityValidationIssue[];
|
|
68
|
+
}
|
|
69
|
+
export interface ProviderIdentityResolution {
|
|
70
|
+
identity: ProviderIdentity;
|
|
71
|
+
validation: IdentityValidationResult;
|
|
72
|
+
}
|
|
73
|
+
export interface ProviderIdentitySummary {
|
|
74
|
+
provider: ProviderType;
|
|
75
|
+
cookieNames: readonly string[];
|
|
76
|
+
localStorageKeys: readonly string[];
|
|
77
|
+
sessionStorageKeys: readonly string[];
|
|
78
|
+
hasAccessToken: boolean;
|
|
79
|
+
hasRefreshToken: boolean;
|
|
80
|
+
hasDeviceId: boolean;
|
|
81
|
+
hasCsrfToken: boolean;
|
|
82
|
+
userAgentPresent: boolean;
|
|
83
|
+
origin: string;
|
|
84
|
+
refererPresent: boolean;
|
|
85
|
+
capturedAt: string;
|
|
86
|
+
}
|
|
87
|
+
export declare function summarizeProviderIdentity(identity: ProviderIdentity): ProviderIdentitySummary;
|
|
88
|
+
//# sourceMappingURL=provider-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-identity.d.ts","sourceRoot":"","sources":["../../../../src/zero-token/providers/identity/provider-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function summarizeProviderIdentity(identity) {
|
|
2
|
+
return Object.freeze({
|
|
3
|
+
provider: identity.provider,
|
|
4
|
+
cookieNames: Object.freeze(Object.keys(identity.cookies).sort()),
|
|
5
|
+
localStorageKeys: Object.freeze(Object.keys(identity.localStorage).sort()),
|
|
6
|
+
sessionStorageKeys: Object.freeze(Object.keys(identity.sessionStorage).sort()),
|
|
7
|
+
hasAccessToken: Boolean(identity.accessToken),
|
|
8
|
+
hasRefreshToken: Boolean(identity.refreshToken),
|
|
9
|
+
hasDeviceId: Boolean(identity.deviceId),
|
|
10
|
+
hasCsrfToken: Boolean(identity.csrfToken),
|
|
11
|
+
userAgentPresent: Boolean(identity.userAgent),
|
|
12
|
+
origin: identity.origin,
|
|
13
|
+
refererPresent: Boolean(identity.referer),
|
|
14
|
+
capturedAt: identity.capturedAt,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=provider-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-identity.js","sourceRoot":"","sources":["../../../../src/zero-token/providers/identity/provider-identity.ts"],"names":[],"mappings":"AAmHA,MAAM,UAAU,yBAAyB,CACvC,QAA0B;IAE1B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7C,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC/C,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzC,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProviderAuthFunction } from "./provider-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Kimi-Web-Auth: Browser öffnen, auf manuellen Login warten,
|
|
4
|
+
* Cookies und Refresh-Token extrahieren.
|
|
5
|
+
*/
|
|
6
|
+
export declare const auth: ProviderAuthFunction;
|
|
7
|
+
//# sourceMappingURL=kimi-web-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kimi-web-auth.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/kimi-web-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAC;AAcrF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,oBAsClB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { openProviderBrowser, waitForUrlLogin, extractCookies, extractLocalStorage, getCookieValue, } from "./browser.js";
|
|
2
|
+
const KIMI_URL = "https://kimi.moonshot.cn";
|
|
3
|
+
const AUTH_PATTERNS = ["/auth/", "/login", "/signin"];
|
|
4
|
+
const COOKIE_NAMES = ["kimi", "session", "refresh_token", "token"];
|
|
5
|
+
const TOKEN_KEYS = ["refresh_token", "accessToken", "kimi-token"];
|
|
6
|
+
/**
|
|
7
|
+
* Kimi-Web-Auth: Browser öffnen, auf manuellen Login warten,
|
|
8
|
+
* Cookies und Refresh-Token extrahieren.
|
|
9
|
+
*/
|
|
10
|
+
export const auth = async (config) => {
|
|
11
|
+
let browserInstance = null;
|
|
12
|
+
try {
|
|
13
|
+
const { browser, page } = await openProviderBrowser({
|
|
14
|
+
targetUrl: KIMI_URL,
|
|
15
|
+
cdpPort: config.cdpPort,
|
|
16
|
+
headless: config.headless,
|
|
17
|
+
proxy: config.proxy,
|
|
18
|
+
loginTimeout: config.loginTimeout,
|
|
19
|
+
});
|
|
20
|
+
browserInstance = browser;
|
|
21
|
+
await waitForUrlLogin(page, KIMI_URL, AUTH_PATTERNS, config.loginTimeout ?? 300_000);
|
|
22
|
+
const cookies = await extractCookies(page, COOKIE_NAMES);
|
|
23
|
+
const refreshToken = await extractLocalStorage(page, TOKEN_KEYS);
|
|
24
|
+
const cookieToken = await getCookieValue(page, "refresh_token");
|
|
25
|
+
const userAgent = await page.evaluate(() => navigator.userAgent);
|
|
26
|
+
return {
|
|
27
|
+
ok: true,
|
|
28
|
+
session: {
|
|
29
|
+
cookies,
|
|
30
|
+
accessToken: refreshToken ?? cookieToken,
|
|
31
|
+
userAgent,
|
|
32
|
+
extra: { refreshToken: refreshToken ?? cookieToken ?? "" },
|
|
33
|
+
},
|
|
34
|
+
info: { plan: "free" },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
39
|
+
if (msg.includes("Login nicht innerhalb"))
|
|
40
|
+
return { ok: false, reason: "login-timeout" };
|
|
41
|
+
if (msg.includes("Browser konnte nicht geöffnet"))
|
|
42
|
+
return { ok: false, reason: "browser-launch-failed" };
|
|
43
|
+
return { ok: false, reason: "unknown-error" };
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
if (browserInstance)
|
|
47
|
+
await browserInstance.close().catch(() => { });
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=kimi-web-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kimi-web-auth.js","sourceRoot":"","sources":["../../../src/zero-token/providers/kimi-web-auth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AACnE,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAyB,KAAK,EAAE,MAAM,EAAE,EAAE;IACzD,IAAI,eAAe,GAA0C,IAAI,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YAClD,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,eAAe,GAAG,OAAO,CAAC;QAE1B,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;QAErF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE;gBACP,OAAO;gBACP,WAAW,EAAE,YAAY,IAAI,WAAW;gBACxC,SAAS;gBACT,KAAK,EAAE,EAAE,YAAY,EAAE,YAAY,IAAI,WAAW,IAAI,EAAE,EAAE;aAC3D;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QACzF,IAAI,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACzG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,IAAI,eAAe;YAAE,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProviderAuthFunction } from "./provider-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Perplexity-Web-Auth: Browser öffnen, auf manuellen Login warten,
|
|
4
|
+
* Cookies und Session-Token extrahieren.
|
|
5
|
+
*/
|
|
6
|
+
export declare const auth: ProviderAuthFunction;
|
|
7
|
+
//# sourceMappingURL=perplexity-web-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-web-auth.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/perplexity-web-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAC;AAarF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,oBAgClB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { openProviderBrowser, waitForUrlLogin, extractCookies, extractLocalStorage, } from "./browser.js";
|
|
2
|
+
const PERPLEXITY_URL = "https://www.perplexity.ai";
|
|
3
|
+
const AUTH_PATTERNS = ["/auth/", "/login", "/signin"];
|
|
4
|
+
const COOKIE_NAMES = ["__Secure-", "perplexity", "session", "token"];
|
|
5
|
+
const TOKEN_KEYS = ["accessToken", "perplexity-token", "sessionToken"];
|
|
6
|
+
/**
|
|
7
|
+
* Perplexity-Web-Auth: Browser öffnen, auf manuellen Login warten,
|
|
8
|
+
* Cookies und Session-Token extrahieren.
|
|
9
|
+
*/
|
|
10
|
+
export const auth = async (config) => {
|
|
11
|
+
let browserInstance = null;
|
|
12
|
+
try {
|
|
13
|
+
const { browser, page } = await openProviderBrowser({
|
|
14
|
+
targetUrl: PERPLEXITY_URL,
|
|
15
|
+
cdpPort: config.cdpPort,
|
|
16
|
+
headless: config.headless,
|
|
17
|
+
proxy: config.proxy,
|
|
18
|
+
loginTimeout: config.loginTimeout,
|
|
19
|
+
});
|
|
20
|
+
browserInstance = browser;
|
|
21
|
+
await waitForUrlLogin(page, PERPLEXITY_URL, AUTH_PATTERNS, config.loginTimeout ?? 300_000);
|
|
22
|
+
const cookies = await extractCookies(page, COOKIE_NAMES);
|
|
23
|
+
const accessToken = await extractLocalStorage(page, TOKEN_KEYS);
|
|
24
|
+
const userAgent = await page.evaluate(() => navigator.userAgent);
|
|
25
|
+
return {
|
|
26
|
+
ok: true,
|
|
27
|
+
session: { cookies, accessToken: accessToken ?? undefined, userAgent },
|
|
28
|
+
info: await fetchPerplexityAccountInfo({ cookies, accessToken, userAgent }),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
33
|
+
if (msg.includes("Login nicht innerhalb"))
|
|
34
|
+
return { ok: false, reason: "login-timeout" };
|
|
35
|
+
if (msg.includes("Browser konnte nicht geöffnet"))
|
|
36
|
+
return { ok: false, reason: "browser-launch-failed" };
|
|
37
|
+
return { ok: false, reason: "unknown-error" };
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
if (browserInstance)
|
|
41
|
+
await browserInstance.close().catch(() => { });
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
async function fetchPerplexityAccountInfo(session) {
|
|
45
|
+
try {
|
|
46
|
+
const headers = {
|
|
47
|
+
Accept: "application/json",
|
|
48
|
+
"User-Agent": session.userAgent ?? "zero-token/0.1.0",
|
|
49
|
+
Cookie: session.cookies,
|
|
50
|
+
};
|
|
51
|
+
if (session.accessToken) {
|
|
52
|
+
headers["Authorization"] = `Bearer ${session.accessToken}`;
|
|
53
|
+
}
|
|
54
|
+
const response = await fetch("https://www.perplexity.ai/api/auth/user", { headers });
|
|
55
|
+
if (!response.ok)
|
|
56
|
+
return { plan: "unknown" };
|
|
57
|
+
const data = (await response.json());
|
|
58
|
+
return {
|
|
59
|
+
email: typeof data.email === "string" ? data.email : undefined,
|
|
60
|
+
userId: typeof data.id === "string" ? data.id : typeof data.userId === "string" ? data.userId : undefined,
|
|
61
|
+
plan: data.subscription === "pro" ? "pro" : "free",
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return { plan: "unknown" };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=perplexity-web-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-web-auth.js","sourceRoot":"","sources":["../../../src/zero-token/providers/perplexity-web-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SessionValidationResult } from "../session/session-types.js";
|
|
2
|
+
export declare function validateSession(cookies: string, accessToken: string | undefined, userAgent: string | undefined): Promise<SessionValidationResult>;
|
|
3
|
+
//# sourceMappingURL=perplexity-web-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-web-validator.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/perplexity-web-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CA6BlC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const PERPLEXITY_API = "https://www.perplexity.ai/api/auth/user";
|
|
2
|
+
export async function validateSession(cookies, accessToken, userAgent) {
|
|
3
|
+
const headers = {
|
|
4
|
+
Accept: "application/json",
|
|
5
|
+
"User-Agent": userAgent ?? "zero-token/0.1.0",
|
|
6
|
+
Cookie: cookies,
|
|
7
|
+
};
|
|
8
|
+
if (accessToken)
|
|
9
|
+
headers["Authorization"] = `Bearer ${accessToken}`;
|
|
10
|
+
try {
|
|
11
|
+
const response = await fetch(PERPLEXITY_API, { headers });
|
|
12
|
+
if (response.status === 401 || response.status === 403) {
|
|
13
|
+
return { accountId: "", provider: "perplexity", valid: false, status: "expired", error: "Session abgelaufen" };
|
|
14
|
+
}
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
return { accountId: "", provider: "perplexity", valid: false, status: "error", error: `HTTP ${response.status}` };
|
|
17
|
+
}
|
|
18
|
+
const data = (await response.json());
|
|
19
|
+
return {
|
|
20
|
+
accountId: "",
|
|
21
|
+
provider: "perplexity",
|
|
22
|
+
valid: true,
|
|
23
|
+
status: "valid",
|
|
24
|
+
email: typeof data.email === "string" ? data.email : undefined,
|
|
25
|
+
userId: typeof data.id === "string" ? data.id : undefined,
|
|
26
|
+
plan: data.subscription === "pro" ? "pro" : "free",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return { accountId: "", provider: "perplexity", valid: false, status: "error", error: `Netzwerkfehler: ${err instanceof Error ? err.message : String(err)}` };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=perplexity-web-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-web-validator.js","sourceRoot":"","sources":["../../../src/zero-token/providers/perplexity-web-validator.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,WAA+B,EAC/B,SAA6B;IAE7B,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,kBAAkB;QAC1B,YAAY,EAAE,SAAS,IAAI,kBAAkB;QAC7C,MAAM,EAAE,OAAO;KAChB,CAAC;IACF,IAAI,WAAW;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;QACjH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACpH,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;QAChE,OAAO;YACL,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC9D,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACzD,IAAI,EAAG,IAAI,CAAC,YAAuB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;SAC/D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAChK,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChatGPTPlusAccount, ProviderType } from "../accounts/account-types.js";
|
|
2
|
+
export interface ResolveProviderAccountOptions {
|
|
3
|
+
provider: ProviderType;
|
|
4
|
+
modelId: string;
|
|
5
|
+
requestedAccountId?: string;
|
|
6
|
+
configuredAccountId?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveProviderAccount(options: ResolveProviderAccountOptions): Promise<ChatGPTPlusAccount>;
|
|
9
|
+
//# sourceMappingURL=provider-account-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-account-resolver.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-account-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,8BAA8B,CAAC;AAKtC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA0C7B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getAccount } from "../accounts/account-repository.js";
|
|
2
|
+
import { InferenceError } from "../inference/inference-provider.js";
|
|
3
|
+
import { quotaManager } from "../quota/quota-manager.js";
|
|
4
|
+
export async function resolveProviderAccount(options) {
|
|
5
|
+
const accountId = options.requestedAccountId ?? options.configuredAccountId;
|
|
6
|
+
if (!accountId) {
|
|
7
|
+
const selected = await quotaManager.acquireAccount({
|
|
8
|
+
provider: options.provider,
|
|
9
|
+
modelId: options.modelId,
|
|
10
|
+
});
|
|
11
|
+
if (!selected) {
|
|
12
|
+
throw new InferenceError(`Kein aktiver ${options.provider}-Account verfügbar.`, 503, options.provider);
|
|
13
|
+
}
|
|
14
|
+
return selected;
|
|
15
|
+
}
|
|
16
|
+
const account = await getAccount(accountId);
|
|
17
|
+
if (!account) {
|
|
18
|
+
throw new InferenceError(`Account nicht gefunden: ${accountId}`, 404, options.provider);
|
|
19
|
+
}
|
|
20
|
+
if (account.provider !== options.provider) {
|
|
21
|
+
throw new InferenceError(`Account gehört nicht zu ${options.provider}: ${accountId}`, 400, options.provider);
|
|
22
|
+
}
|
|
23
|
+
if (!account.enabled || account.sessionStatus !== "valid") {
|
|
24
|
+
throw new InferenceError(`Account-Session nicht aktiv: ${accountId}`, 403, options.provider);
|
|
25
|
+
}
|
|
26
|
+
return account;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=provider-account-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-account-resolver.js","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-account-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AASzD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAsC;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAE5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,cAAc,CACtB,gBAAgB,OAAO,CAAC,QAAQ,qBAAqB,EACrD,GAAG,EACH,OAAO,CAAC,QAAQ,CACjB,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,cAAc,CACtB,2BAA2B,SAAS,EAAE,EACtC,GAAG,EACH,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,cAAc,CACtB,2BAA2B,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,EAC3D,GAAG,EACH,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CACtB,gCAAgC,SAAS,EAAE,EAC3C,GAAG,EACH,OAAO,CAAC,QAAQ,CACjB,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ProviderBrowserProfile {
|
|
2
|
+
profile: string;
|
|
3
|
+
cdpPort: number;
|
|
4
|
+
cdpUrl: string;
|
|
5
|
+
running: boolean;
|
|
6
|
+
profileDir?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function providerProfileForUrl(targetUrl: string): string;
|
|
10
|
+
export declare function ensureProviderBrowserProfile(targetUrl: string, options?: {
|
|
11
|
+
reset?: boolean;
|
|
12
|
+
fallbackCdpUrl?: string;
|
|
13
|
+
}): Promise<ProviderBrowserProfile>;
|
|
14
|
+
//# sourceMappingURL=provider-browser-profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-browser-profiles.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-browser-profiles.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO/D;AAED,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,sBAAsB,CAAC,CAsEjC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import logger from "../logger.js";
|
|
2
|
+
const PROFILE_BY_HOST = {
|
|
3
|
+
"chatgpt.com": "chatgpt",
|
|
4
|
+
"claude.ai": "claude",
|
|
5
|
+
"gemini.google.com": "gemini",
|
|
6
|
+
"chat.deepseek.com": "deepseek",
|
|
7
|
+
"grok.com": "grok",
|
|
8
|
+
"www.perplexity.ai": "perplexity",
|
|
9
|
+
"perplexity.ai": "perplexity",
|
|
10
|
+
"chat.qwen.ai": "qwen",
|
|
11
|
+
"www.qianwen.com": "qwen-cn",
|
|
12
|
+
"qianwen.com": "qwen-cn",
|
|
13
|
+
"kimi.moonshot.cn": "kimi",
|
|
14
|
+
"www.doubao.com": "doubao",
|
|
15
|
+
"doubao.com": "doubao",
|
|
16
|
+
"chatglm.cn": "glm",
|
|
17
|
+
"chat.z.ai": "glm-intl",
|
|
18
|
+
"xiaomimo.com": "xiaomimo",
|
|
19
|
+
};
|
|
20
|
+
export function providerProfileForUrl(targetUrl) {
|
|
21
|
+
const hostname = new URL(targetUrl).hostname.toLowerCase();
|
|
22
|
+
const profile = PROFILE_BY_HOST[hostname];
|
|
23
|
+
if (!profile) {
|
|
24
|
+
throw new Error(`Kein Browserprofil für Host registriert: ${hostname}`);
|
|
25
|
+
}
|
|
26
|
+
return profile;
|
|
27
|
+
}
|
|
28
|
+
export async function ensureProviderBrowserProfile(targetUrl, options = {}) {
|
|
29
|
+
const profile = providerProfileForUrl(targetUrl);
|
|
30
|
+
const managerUrl = (process.env.NOVA_BROWSER_MANAGER_URL ?? "http://remote-browser:9221").replace(/\/+$/, "");
|
|
31
|
+
const action = options.reset ? "reset" : "start";
|
|
32
|
+
try {
|
|
33
|
+
const response = await fetch(`${managerUrl}/profiles/${encodeURIComponent(profile)}/${action}`, {
|
|
34
|
+
method: "POST",
|
|
35
|
+
headers: { "Content-Type": "application/json" },
|
|
36
|
+
body: JSON.stringify({ url: targetUrl }),
|
|
37
|
+
signal: AbortSignal.timeout(30_000),
|
|
38
|
+
});
|
|
39
|
+
const body = (await response.json());
|
|
40
|
+
if (!response.ok || !body.cdpPort) {
|
|
41
|
+
throw new Error(body.error ?? `HTTP ${response.status}`);
|
|
42
|
+
}
|
|
43
|
+
const cdpHost = process.env.NOVA_BROWSER_CDP_HOST ?? new URL(managerUrl).hostname;
|
|
44
|
+
const result = {
|
|
45
|
+
profile,
|
|
46
|
+
cdpPort: body.cdpPort,
|
|
47
|
+
cdpUrl: `http://${cdpHost}:${body.cdpPort}`,
|
|
48
|
+
running: body.running !== false,
|
|
49
|
+
profileDir: body.profileDir,
|
|
50
|
+
url: body.url,
|
|
51
|
+
};
|
|
52
|
+
logger.info({
|
|
53
|
+
providerProfile: profile,
|
|
54
|
+
cdpUrl: result.cdpUrl,
|
|
55
|
+
reset: Boolean(options.reset),
|
|
56
|
+
}, "Isoliertes Provider-Browserprofil bereit");
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const fallback = options.fallbackCdpUrl ??
|
|
61
|
+
process.env.NOVA_CDP_URL ??
|
|
62
|
+
"http://remote-browser:9222";
|
|
63
|
+
logger.warn({
|
|
64
|
+
providerProfile: profile,
|
|
65
|
+
managerUrl,
|
|
66
|
+
fallbackCdpUrl: fallback,
|
|
67
|
+
error: error instanceof Error ? error.message : String(error),
|
|
68
|
+
}, "Profilmanager nicht erreichbar; verwende CDP-Fallback");
|
|
69
|
+
return {
|
|
70
|
+
profile,
|
|
71
|
+
cdpPort: Number(new URL(fallback).port || 9222),
|
|
72
|
+
cdpUrl: fallback,
|
|
73
|
+
running: true,
|
|
74
|
+
url: targetUrl,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=provider-browser-profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-browser-profiles.js","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-browser-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProviderId } from "../accounts/account-types.js";
|
|
2
|
+
import type { ProviderDescriptor } from "./provider-types.js";
|
|
3
|
+
export declare const PROVIDERS: Record<ProviderId, ProviderDescriptor>;
|
|
4
|
+
export declare function listProviders(): ProviderDescriptor[];
|
|
5
|
+
export declare function resolveProvider(id: string): ProviderDescriptor | undefined;
|
|
6
|
+
export declare function getProvider(id: string): ProviderDescriptor | undefined;
|
|
7
|
+
//# sourceMappingURL=provider-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-catalog.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAmB9D,eAAO,MAAM,SAAS,EAEjB,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE5C,wBAAgB,aAAa,IAAI,kBAAkB,EAAE,CAEpD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE1E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEtE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const providerList = [
|
|
2
|
+
{ id: "chatgpt-web", implementation: "chatgpt", aliases: ["chatgpt"], label: "ChatGPT Web", loginUrl: "https://chatgpt.com", requiredPlan: "plus", authType: "web-login", color: "#10a37f" },
|
|
3
|
+
{ id: "claude-web", implementation: "claude", aliases: ["claude"], label: "Claude Web", loginUrl: "https://claude.ai", requiredPlan: "pro", authType: "web-login", color: "#c9776c" },
|
|
4
|
+
{ id: "gemini-web", implementation: "gemini", aliases: ["gemini"], label: "Gemini Web", loginUrl: "https://gemini.google.com", authType: "web-login", color: "#4285f4" },
|
|
5
|
+
{ id: "deepseek-web", implementation: "deepseek", aliases: ["deepseek"], label: "DeepSeek Web", loginUrl: "https://chat.deepseek.com", authType: "web-login", color: "#4f6ef7" },
|
|
6
|
+
{ id: "grok-web", implementation: "grok", aliases: ["grok"], label: "Grok Web", loginUrl: "https://grok.com", authType: "web-login", color: "#1c1c1e" },
|
|
7
|
+
{ id: "perplexity-web", implementation: "perplexity", aliases: ["perplexity"], label: "Perplexity Web", loginUrl: "https://www.perplexity.ai", authType: "web-login", color: "#1f1f1f" },
|
|
8
|
+
{ id: "qwen-web", implementation: "qwen", aliases: ["qwen"], label: "Qwen Web (International)", loginUrl: "https://chat.qwen.ai", authType: "web-login", color: "#635bff" },
|
|
9
|
+
{ id: "qwen-cn-web", implementation: "qwen-cn", aliases: ["qwen-cn"], label: "Qwen Web (China)", loginUrl: "https://www.qianwen.com", authType: "web-login", color: "#615ced" },
|
|
10
|
+
{ id: "kimi-web", implementation: "kimi", aliases: ["kimi"], label: "Kimi Web", loginUrl: "https://kimi.moonshot.cn", authType: "web-login", color: "#ff6b35" },
|
|
11
|
+
{ id: "doubao-web", implementation: "doubao", aliases: ["doubao"], label: "Doubao Web", loginUrl: "https://www.doubao.com", authType: "web-login", color: "#00bfff" },
|
|
12
|
+
{ id: "glm-web", implementation: "glm", aliases: ["glm"], label: "GLM Web (China)", loginUrl: "https://chatglm.cn", authType: "web-login", color: "#2a7de1" },
|
|
13
|
+
{ id: "glm-intl-web", implementation: "glm-intl", aliases: ["glm-intl"], label: "GLM Web (International)", loginUrl: "https://chat.z.ai", authType: "web-login", color: "#246bfd" },
|
|
14
|
+
{ id: "xiaomimo-web", implementation: "xiaomimo", aliases: ["xiaomimo"], label: "XiaoMiMo Web", loginUrl: "https://xiaomimo.com", authType: "web-login", color: "#ff6900" },
|
|
15
|
+
{ id: "manus-api", implementation: "manus", aliases: ["manus"], label: "Manus API", loginUrl: "https://manus.im", authType: "api-key", color: "#111827" },
|
|
16
|
+
];
|
|
17
|
+
export const PROVIDERS = Object.fromEntries(providerList.map((provider) => [provider.id, provider]));
|
|
18
|
+
export function listProviders() {
|
|
19
|
+
return [...providerList];
|
|
20
|
+
}
|
|
21
|
+
export function resolveProvider(id) {
|
|
22
|
+
return PROVIDERS[id] ?? providerList.find((provider) => provider.aliases.includes(id));
|
|
23
|
+
}
|
|
24
|
+
export function getProvider(id) {
|
|
25
|
+
return resolveProvider(id);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=provider-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-catalog.js","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ProviderBrowserConfig, ProviderLoginFailureReason } from "./provider-types.js";
|
|
2
|
+
export type ProviderLoginJobStatus = "starting" | "waiting-for-user" | "saving" | "succeeded" | "failed";
|
|
3
|
+
export interface ProviderLoginJob {
|
|
4
|
+
id: string;
|
|
5
|
+
providerId: string;
|
|
6
|
+
providerLabel: string;
|
|
7
|
+
loginUrl: string;
|
|
8
|
+
status: ProviderLoginJobStatus;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
updatedAt: string;
|
|
11
|
+
completedAt?: string;
|
|
12
|
+
accountId?: string;
|
|
13
|
+
accountLabel?: string;
|
|
14
|
+
failureReason?: ProviderLoginFailureReason;
|
|
15
|
+
message?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function listProviderLoginJobs(): ProviderLoginJob[];
|
|
18
|
+
export declare function getProviderLoginJob(id: string): ProviderLoginJob | undefined;
|
|
19
|
+
export declare function removeProviderLoginJob(id: string): boolean;
|
|
20
|
+
export declare function startProviderLoginJob(providerId: string, config?: ProviderBrowserConfig): ProviderLoginJob;
|
|
21
|
+
//# sourceMappingURL=provider-login-jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-login-jobs.d.ts","sourceRoot":"","sources":["../../../src/zero-token/providers/provider-login-jobs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAK7F,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,kBAAkB,GAClB,QAAQ,GACR,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoCD,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAI1D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAG5E;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,qBAA0B,GACjC,gBAAgB,CA8BlB"}
|