@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
package/README.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# FF-ZTN
|
|
2
|
+
|
|
3
|
+
**ForgeFabrik Zero Token Nova** ist ein lokales Enterprise Multi-Provider AI Control Plane mit OpenAI-kompatiblem Gateway, Provider-Runtime, Web-Konsole, Playground und optionalem Coding-Agent.
|
|
4
|
+
|
|
5
|
+
> **Hinweis:** FF-ZTN ist ein inoffizielles, experimentelles Werkzeug. Es ist kein Produkt von OpenAI, Anthropic, Google oder einem anderen unterstützten Anbieter.
|
|
6
|
+
|
|
7
|
+
## Funktionen
|
|
8
|
+
|
|
9
|
+
- **Multi-Provider-Gateway** für ChatGPT Web, Claude Web, Gemini Web, DeepSeek, Qwen, GLM und weitere Provider
|
|
10
|
+
- **OpenAI-kompatible Endpunkte** für `/v1/models`, `/v1/responses` und `/v1/chat/completions`
|
|
11
|
+
- **Enterprise Web-Konsole** mit dichten Provider-, Account- und Modelllisten
|
|
12
|
+
- **Persistentes Terminal-Dock** mit CLI-, Live-Log- und Login-Job-Tabs
|
|
13
|
+
- **FF-ZTN Agent** als Integration des MIT-lizenzierten Projekts `yoyo-evolve`
|
|
14
|
+
- **Lokale Speicherung** mit restriktiven Dateiberechtigungen und redigierter Admin-API
|
|
15
|
+
- **Einheitlicher CLI-Befehl:** ausschließlich `ztn`
|
|
16
|
+
|
|
17
|
+
## Voraussetzungen
|
|
18
|
+
|
|
19
|
+
- Node.js `>= 22.15.0`
|
|
20
|
+
- npm oder pnpm
|
|
21
|
+
- Chrome oder Chromium für Web-Logins
|
|
22
|
+
- optional Rust/Cargo für den Coding-Agent
|
|
23
|
+
|
|
24
|
+
## Installation über npm
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install --global @forgefabrik/ff-ztn
|
|
28
|
+
ztn --help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Installation aus dem Repository
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm ci
|
|
35
|
+
npm run build
|
|
36
|
+
npm run ui:build
|
|
37
|
+
npm link
|
|
38
|
+
ztn --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Schnellstart
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Provider anzeigen und anmelden
|
|
45
|
+
ztn providers list
|
|
46
|
+
ztn login --provider=chatgpt-web
|
|
47
|
+
|
|
48
|
+
# Modelle aktualisieren
|
|
49
|
+
ztn models refresh
|
|
50
|
+
ztn models list
|
|
51
|
+
|
|
52
|
+
# Gateway starten
|
|
53
|
+
ztn start
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Das Gateway bindet standardmäßig an `127.0.0.1:3000`.
|
|
57
|
+
|
|
58
|
+
## FF-ZTN Agent
|
|
59
|
+
|
|
60
|
+
FF-ZTN integriert `yoyo-evolve` als separates Agent-Backend. Der Rust-Quellbaum wird nicht dupliziert. Stattdessen startet FF-ZTN das installierte `yoyo`-Binary mit dessen `custom`-Provider gegen das lokale OpenAI-kompatible Gateway.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# yoyo-agent über Cargo installieren
|
|
64
|
+
ztn agent install
|
|
65
|
+
|
|
66
|
+
# Projektkonfiguration erzeugen
|
|
67
|
+
ztn agent init
|
|
68
|
+
|
|
69
|
+
# Binary und Gateway prüfen
|
|
70
|
+
ztn agent doctor
|
|
71
|
+
|
|
72
|
+
# Agent starten
|
|
73
|
+
ztn agent --model gpt-4o
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Zusätzliche Argumente werden nur nach `--` an das Agent-Backend weitergegeben:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ztn agent --model gpt-4o -- --quiet
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`ztn agent init` erzeugt, sofern noch nicht vorhanden:
|
|
83
|
+
|
|
84
|
+
- `.yoyo.toml` mit `provider = "custom"` und der lokalen FF-ZTN-Gateway-URL
|
|
85
|
+
- `.yoyo/instructions.md` mit Sicherheits- und Projektregeln
|
|
86
|
+
|
|
87
|
+
## Web-Konsole
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm run ui:build
|
|
91
|
+
ztn start
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Die Web-Konsole enthält:
|
|
95
|
+
|
|
96
|
+
- Streaming-Playground
|
|
97
|
+
- Provider-Runtime-Matrix mit kleinen Statusdioden
|
|
98
|
+
- persistente Filter, Navigation und Tabellenansichten
|
|
99
|
+
- Account- und Session-Verwaltung
|
|
100
|
+
- Modellfilter und Cache-Aktualisierung
|
|
101
|
+
- ausfahrbares Terminal-Dock für CLI, Live-Logs und Login-Jobs
|
|
102
|
+
- sichere, redigierte Konfigurationsansicht
|
|
103
|
+
|
|
104
|
+
## Konfiguration und Migration
|
|
105
|
+
|
|
106
|
+
Bestehende interne Datenpfade bleiben absichtlich kompatibel, damit Accounts, Sessions und Browserprofile bei der Umbenennung nicht verloren gehen:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
~/.config/nova/
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Ein älterer Datenordner unter `~/.config/zero-token/` wird weiterhin erkannt. Ein expliziter Pfad kann mit `NOVA_HOME` gesetzt werden. Diese internen Kompatibilitätsnamen ändern nicht den öffentlichen CLI-Befehl `ztn`.
|
|
113
|
+
|
|
114
|
+
## npm-Veröffentlichung
|
|
115
|
+
|
|
116
|
+
Der Workflow `.github/workflows/npm-publish.yml` führt vor jeder Veröffentlichung aus:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
npm ci
|
|
120
|
+
npm run typecheck
|
|
121
|
+
npm test
|
|
122
|
+
npm run build
|
|
123
|
+
npm run ui:build
|
|
124
|
+
npm pack --dry-run
|
|
125
|
+
npm publish --access public
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Der Standardname ist `@forgefabrik/ff-ztn`. Beim manuellen Workflow-Start kann alternativ der Scope `osteyshoit` gewählt werden. Der Registry-Token wird ausschließlich als GitHub-Actions-Secret `NPM_TOKEN` verwendet.
|
|
129
|
+
|
|
130
|
+
## Sicherheit
|
|
131
|
+
|
|
132
|
+
- Passwörter werden nicht gespeichert
|
|
133
|
+
- Cookies, Tokens und API-Schlüssel werden nicht im Frontend angezeigt
|
|
134
|
+
- sensible Werte müssen aus Logs redigiert werden
|
|
135
|
+
- Account-Dateien verwenden restriktive Berechtigungen (`0600`)
|
|
136
|
+
- das Gateway ist standardmäßig nur lokal erreichbar
|
|
137
|
+
- der Agent erhält keine Browser-Cookies oder Account-Dateien, sondern nur Zugriff auf das lokale `/v1`-Gateway
|
|
138
|
+
|
|
139
|
+
## Drittanbieter
|
|
140
|
+
|
|
141
|
+
FF-ZTN integriert das eigenständige Projekt `yoyo-evolve` von yologdev als optionales ausführbares Backend. Das Projekt steht unter der MIT-Lizenz. Details stehen in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
|
|
142
|
+
|
|
143
|
+
## Lizenz
|
|
144
|
+
|
|
145
|
+
FF-ZTN steht unter der MIT-Lizenz.
|
|
146
|
+
|
|
147
|
+
## Implementierungsplan
|
|
148
|
+
|
|
149
|
+
Der bestehende Architektur- und Implementierungsplan befindet sich unter [`docs/zero-token/impl-plan.md`](docs/zero-token/impl-plan.md). Historische Pfade bleiben während der Migration bestehen.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":""}
|
package/dist/discover.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { getDiscoveredModelCandidates, getDiscoverySnapshot, runProviderDiscovery, } from "./zero-token/discovery/discovery-service.js";
|
|
3
|
+
const command = process.argv[2] ?? "list";
|
|
4
|
+
if (command === "scan") {
|
|
5
|
+
const snapshot = await runProviderDiscovery();
|
|
6
|
+
console.log(JSON.stringify(snapshot, null, 2));
|
|
7
|
+
process.exitCode = snapshot.errors.length > 0 ? 1 : 0;
|
|
8
|
+
}
|
|
9
|
+
else if (command === "models") {
|
|
10
|
+
console.log(JSON.stringify(await getDiscoveredModelCandidates(), null, 2));
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const snapshot = await getDiscoverySnapshot();
|
|
14
|
+
for (const provider of snapshot.providers) {
|
|
15
|
+
console.log(`${provider.id.padEnd(24)} ${provider.status.padEnd(10)} ${provider.label} (${provider.models.length} Modelle)`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,6CAA6C,CAAC;AAErD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAE1C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;KAAM,CAAC;IACN,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CACT,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,WAAW,CAChH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genericagent.d.ts","sourceRoot":"","sources":["../src/genericagent.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { configureGenericAgent, getGenericAgentStatus, runGenericAgent, } from "./zero-token/agent/external-backend.js";
|
|
3
|
+
const args = process.argv.slice(2);
|
|
4
|
+
const command = args[0] ?? "doctor";
|
|
5
|
+
function option(name) {
|
|
6
|
+
const inline = args.find((arg) => arg.startsWith(`--${name}=`));
|
|
7
|
+
if (inline)
|
|
8
|
+
return inline.slice(name.length + 3);
|
|
9
|
+
const index = args.indexOf(`--${name}`);
|
|
10
|
+
return index >= 0 ? args[index + 1] : undefined;
|
|
11
|
+
}
|
|
12
|
+
const settings = {
|
|
13
|
+
sourceDir: option("source-dir"),
|
|
14
|
+
gatewayUrl: option("base-url"),
|
|
15
|
+
model: option("model"),
|
|
16
|
+
binary: option("binary"),
|
|
17
|
+
};
|
|
18
|
+
if (command === "init") {
|
|
19
|
+
const path = await configureGenericAgent(settings);
|
|
20
|
+
console.error(`Nova-Konfiguration erstellt: ${path}`);
|
|
21
|
+
}
|
|
22
|
+
else if (command === "run") {
|
|
23
|
+
const status = await getGenericAgentStatus(settings);
|
|
24
|
+
if (!status.installed || !status.configured || !status.gatewayReachable) {
|
|
25
|
+
console.error("GenericAgent ist nicht bereit. Führe zuerst nova-ga doctor und nova-ga init aus.");
|
|
26
|
+
process.exitCode = 1;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
process.exitCode = await runGenericAgent({
|
|
30
|
+
...settings,
|
|
31
|
+
frontend: (option("frontend") ?? "cli"),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const status = await getGenericAgentStatus(settings);
|
|
37
|
+
console.log(JSON.stringify(status, null, 2));
|
|
38
|
+
process.exitCode = status.installed && status.configured && status.gatewayReachable ? 0 : 1;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=genericagent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genericagent.js","sourceRoot":"","sources":["../src/genericagent.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AAEpC,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAClG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,CAAC;YACvC,GAAG,QAAQ;YACX,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAsD;SAC7F,CAAC,CAAC;IACL,CAAC;AACH,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { APP_NAME, APP_VERSION, LEGACY_APP_NAME } from "./zero-token/app-meta.js";
|
|
3
|
+
function printHelp() {
|
|
4
|
+
console.error("");
|
|
5
|
+
console.error(` ${APP_NAME} v${APP_VERSION}`);
|
|
6
|
+
console.error(` ${LEGACY_APP_NAME}`);
|
|
7
|
+
console.error(" Enterprise Multi-Provider AI Control Plane");
|
|
8
|
+
console.error("");
|
|
9
|
+
console.error(" Hinweis: Inoffizielles, experimentelles lokales Werkzeug.");
|
|
10
|
+
console.error(" Kein Produkt der unterstützten KI-Anbieter.");
|
|
11
|
+
console.error("");
|
|
12
|
+
console.error(" Verwendung:");
|
|
13
|
+
console.error(" ztn <command> [options]");
|
|
14
|
+
console.error("");
|
|
15
|
+
console.error(" Kernbefehle:");
|
|
16
|
+
console.error(" login --provider=<id> Provider über Browser anmelden");
|
|
17
|
+
console.error(" providers list Unterstützte Provider anzeigen");
|
|
18
|
+
console.error(" start Lokales Gateway starten");
|
|
19
|
+
console.error(" accounts list|validate Accounts und Sessions verwalten");
|
|
20
|
+
console.error(" models list|refresh Modelle anzeigen oder aktualisieren");
|
|
21
|
+
console.error(" status Systemstatus anzeigen");
|
|
22
|
+
console.error(" doctor Systemdiagnose ausführen");
|
|
23
|
+
console.error("");
|
|
24
|
+
console.error(" Coding-Agent:");
|
|
25
|
+
console.error(" agent Agent gegen das lokale Gateway starten");
|
|
26
|
+
console.error(" agent doctor yoyo-Backend und Gateway prüfen");
|
|
27
|
+
console.error(" agent install yoyo-agent über Cargo installieren");
|
|
28
|
+
console.error(" agent init Projekt für FF-ZTN Agent vorbereiten");
|
|
29
|
+
console.error("");
|
|
30
|
+
}
|
|
31
|
+
const args = process.argv.slice(2);
|
|
32
|
+
const command = args[0];
|
|
33
|
+
if (!command || command === "help" || command === "--help" || command === "-h") {
|
|
34
|
+
printHelp();
|
|
35
|
+
}
|
|
36
|
+
else if (command === "--version" || command === "-v" || command === "version") {
|
|
37
|
+
console.log(APP_VERSION);
|
|
38
|
+
}
|
|
39
|
+
else if (command === "agent") {
|
|
40
|
+
const { handleAgentCommand } = await import("./zero-token/agent/cli.js");
|
|
41
|
+
process.exitCode = await handleAgentCommand(args.slice(1));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
await import("./zero-token/index.js");
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAElF,SAAS,SAAS;IAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACxF,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACpF,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IAC/E,SAAS,EAAE,CAAC;AACd,CAAC;KAAM,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACzE,OAAO,CAAC,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ChatGPTPlusAccount } from "./account-types.js";
|
|
2
|
+
export declare function listAccounts(): Promise<ChatGPTPlusAccount[]>;
|
|
3
|
+
export declare function getAccount(id: string): Promise<ChatGPTPlusAccount | null>;
|
|
4
|
+
export declare function saveAccount(account: ChatGPTPlusAccount): Promise<void>;
|
|
5
|
+
export declare function deleteAccount(id: string): Promise<boolean>;
|
|
6
|
+
export declare function accountExists(id: string): Promise<boolean>;
|
|
7
|
+
//# sourceMappingURL=account-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-repository.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAU7D,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAclE;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { readStored, writeStored, deleteFile, listJsonFiles, } from "../storage/atomic-json-store.js";
|
|
2
|
+
import { accountsPath, accountFilePath } from "../config/paths.js";
|
|
3
|
+
import { validateForSave } from "./account-validation.js";
|
|
4
|
+
export async function listAccounts() {
|
|
5
|
+
const dir = accountsPath();
|
|
6
|
+
const files = await listJsonFiles(dir);
|
|
7
|
+
const accounts = [];
|
|
8
|
+
for (const file of files) {
|
|
9
|
+
const id = file.replace(/\.json$/, "");
|
|
10
|
+
const account = await getAccount(id);
|
|
11
|
+
if (account) {
|
|
12
|
+
accounts.push(account);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return accounts.sort((a, b) => b.priority - a.priority || a.createdAt.localeCompare(b.createdAt));
|
|
16
|
+
}
|
|
17
|
+
export async function getAccount(id) {
|
|
18
|
+
const path = accountFilePath(id);
|
|
19
|
+
return readStored(path);
|
|
20
|
+
}
|
|
21
|
+
export async function saveAccount(account) {
|
|
22
|
+
const validation = validateForSave(account);
|
|
23
|
+
if (!validation.valid) {
|
|
24
|
+
throw new Error(`Ungültige Account-Daten: ${validation.errors.join("; ")}`);
|
|
25
|
+
}
|
|
26
|
+
const path = accountFilePath(account.id);
|
|
27
|
+
await writeStored(path, account);
|
|
28
|
+
}
|
|
29
|
+
export async function deleteAccount(id) {
|
|
30
|
+
const path = accountFilePath(id);
|
|
31
|
+
return deleteFile(path);
|
|
32
|
+
}
|
|
33
|
+
export async function accountExists(id) {
|
|
34
|
+
const account = await getAccount(id);
|
|
35
|
+
return account !== null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=account-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-repository.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAU;IAEV,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,UAAU,CAAqB,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,UAAU,GAAG,eAAe,CAAC,OAA6C,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU;IAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU;IAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,KAAK,IAAI,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ChatGPTPlusAccount } from "./account-types.js";
|
|
2
|
+
import { getAccount, listAccounts, saveAccount, deleteAccount } from "./account-repository.js";
|
|
3
|
+
export type MaskedAccount = Omit<ChatGPTPlusAccount, "cookies" | "accessToken">;
|
|
4
|
+
export type CreateAccountData = Partial<Omit<ChatGPTPlusAccount, "id" | "label" | "provider" | "createdAt" | "updatedAt">>;
|
|
5
|
+
declare function generateId(length?: number): string;
|
|
6
|
+
export declare function maskAccount(account: ChatGPTPlusAccount): MaskedAccount;
|
|
7
|
+
export declare function maskEmail(email?: string): string | undefined;
|
|
8
|
+
export declare function createAccount(label: string, provider?: ChatGPTPlusAccount["provider"], data?: CreateAccountData): Promise<ChatGPTPlusAccount>;
|
|
9
|
+
export declare function updateAccount(id: string, updates: Partial<Omit<ChatGPTPlusAccount, "id" | "createdAt">>): Promise<ChatGPTPlusAccount>;
|
|
10
|
+
export { generateId, getAccount, listAccounts, saveAccount, deleteAccount, };
|
|
11
|
+
//# sourceMappingURL=account-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-service.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE/F,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,CAClF,CAAC;AAIF,iBAAS,UAAU,CAAC,MAAM,SAAK,GAAG,MAAM,CAQvC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAGtE;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK5D;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,kBAAkB,CAAC,UAAU,CAAa,EACpD,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAyB7B;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC7D,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { getAccount, listAccounts, saveAccount, deleteAccount } from "./account-repository.js";
|
|
2
|
+
const ID_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
3
|
+
function generateId(length = 12) {
|
|
4
|
+
const bytes = new Uint8Array(length);
|
|
5
|
+
crypto.getRandomValues(bytes);
|
|
6
|
+
let id = "";
|
|
7
|
+
for (let i = 0; i < length; i++) {
|
|
8
|
+
id += ID_CHARS[bytes[i] % ID_CHARS.length];
|
|
9
|
+
}
|
|
10
|
+
return id;
|
|
11
|
+
}
|
|
12
|
+
export function maskAccount(account) {
|
|
13
|
+
const { cookies, accessToken, ...rest } = account;
|
|
14
|
+
return rest;
|
|
15
|
+
}
|
|
16
|
+
export function maskEmail(email) {
|
|
17
|
+
if (!email)
|
|
18
|
+
return undefined;
|
|
19
|
+
const atIndex = email.indexOf("@");
|
|
20
|
+
if (atIndex <= 1)
|
|
21
|
+
return email;
|
|
22
|
+
return email[0] + "***" + email.slice(atIndex);
|
|
23
|
+
}
|
|
24
|
+
export async function createAccount(label, provider = "chatgpt", data = {}) {
|
|
25
|
+
const now = new Date().toISOString();
|
|
26
|
+
const hasCredentials = Boolean(data.cookies?.trim() || data.accessToken?.trim());
|
|
27
|
+
const account = {
|
|
28
|
+
id: generateId(),
|
|
29
|
+
label,
|
|
30
|
+
provider,
|
|
31
|
+
cookies: data.cookies ?? "",
|
|
32
|
+
enabled: data.enabled ?? true,
|
|
33
|
+
priority: data.priority ?? 0,
|
|
34
|
+
sessionStatus: data.sessionStatus ?? (hasCredentials ? "valid" : "unknown"),
|
|
35
|
+
createdAt: now,
|
|
36
|
+
updatedAt: now,
|
|
37
|
+
...(data.email !== undefined && { email: data.email }),
|
|
38
|
+
...(data.userId !== undefined && { userId: data.userId }),
|
|
39
|
+
...(data.workspaceId !== undefined && { workspaceId: data.workspaceId }),
|
|
40
|
+
...(data.plan !== undefined && { plan: data.plan }),
|
|
41
|
+
...(data.accessToken !== undefined && { accessToken: data.accessToken }),
|
|
42
|
+
...(data.userAgent !== undefined && { userAgent: data.userAgent }),
|
|
43
|
+
...(data.lastUsedAt !== undefined && { lastUsedAt: data.lastUsedAt }),
|
|
44
|
+
...(data.lastValidatedAt !== undefined && { lastValidatedAt: data.lastValidatedAt }),
|
|
45
|
+
...(data.usageStatus !== undefined && { usageStatus: data.usageStatus }),
|
|
46
|
+
};
|
|
47
|
+
await saveAccount(account);
|
|
48
|
+
return account;
|
|
49
|
+
}
|
|
50
|
+
export async function updateAccount(id, updates) {
|
|
51
|
+
const existing = await getAccount(id);
|
|
52
|
+
if (!existing) {
|
|
53
|
+
throw new Error(`Account nicht gefunden: ${id}`);
|
|
54
|
+
}
|
|
55
|
+
const updated = {
|
|
56
|
+
...existing,
|
|
57
|
+
...updates,
|
|
58
|
+
id: existing.id,
|
|
59
|
+
createdAt: existing.createdAt,
|
|
60
|
+
updatedAt: new Date().toISOString(),
|
|
61
|
+
};
|
|
62
|
+
await saveAccount(updated);
|
|
63
|
+
return updated;
|
|
64
|
+
}
|
|
65
|
+
export { generateId, getAccount, listAccounts, saveAccount, deleteAccount, };
|
|
66
|
+
//# sourceMappingURL=account-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-service.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type SessionStatus = "unknown" | "valid" | "expired" | "login-required" | "error";
|
|
2
|
+
export type UsageState = "unknown" | "available" | "limited" | "exhausted" | "error";
|
|
3
|
+
/** Internal provider keys kept stable for stored account compatibility. */
|
|
4
|
+
export type ProviderType = "chatgpt" | "claude" | "gemini" | "deepseek" | "grok" | "perplexity" | "qwen" | "qwen-cn" | "kimi" | "doubao" | "glm" | "glm-intl" | "xiaomimo" | "manus";
|
|
5
|
+
/** Canonical public provider IDs used by the CLI, model registry and gateway. */
|
|
6
|
+
export type ProviderId = "chatgpt-web" | "claude-web" | "gemini-web" | "deepseek-web" | "grok-web" | "perplexity-web" | "qwen-web" | "qwen-cn-web" | "kimi-web" | "doubao-web" | "glm-web" | "glm-intl-web" | "xiaomimo-web" | "manus-api";
|
|
7
|
+
export type AccountPlan = "plus" | "pro" | "free" | "unknown";
|
|
8
|
+
export interface UsageStatus {
|
|
9
|
+
state: UsageState;
|
|
10
|
+
resetAt?: string;
|
|
11
|
+
checkedAt?: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ChatGPTPlusAccount {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
provider: ProviderType;
|
|
18
|
+
email?: string;
|
|
19
|
+
userId?: string;
|
|
20
|
+
workspaceId?: string;
|
|
21
|
+
plan?: AccountPlan;
|
|
22
|
+
cookies: string;
|
|
23
|
+
accessToken?: string;
|
|
24
|
+
userAgent?: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
lastUsedAt?: string;
|
|
28
|
+
lastValidatedAt?: string;
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
priority: number;
|
|
31
|
+
sessionStatus: SessionStatus;
|
|
32
|
+
usageStatus?: UsageStatus;
|
|
33
|
+
}
|
|
34
|
+
export type AccountExportFormat = "json" | "zip";
|
|
35
|
+
export interface ExportAuditRecord {
|
|
36
|
+
id: string;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
accountIds: string[];
|
|
39
|
+
format: AccountExportFormat;
|
|
40
|
+
containsSessionCredentials: boolean;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=account-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-types.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,SAAS,GACT,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,YAAY,GACZ,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,KAAK,GACL,UAAU,GACV,UAAU,GACV,OAAO,CAAC;AAEZ,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAClB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,UAAU,GACV,YAAY,GACZ,SAAS,GACT,cAAc,GACd,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,aAAa,CAAC;IAE7B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-types.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ValidationResult {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
errors: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare function validateAccountId(id: unknown): ValidationResult;
|
|
6
|
+
export declare function validateAccountLabel(label: unknown): ValidationResult;
|
|
7
|
+
export declare function validateEmail(email: unknown): ValidationResult;
|
|
8
|
+
export declare function validateCookies(cookies: unknown): ValidationResult;
|
|
9
|
+
export declare function validateSessionCredentials(cookies: unknown, accessToken: unknown, sessionStatus: unknown): ValidationResult;
|
|
10
|
+
export declare function validateSessionStatus(status: unknown): ValidationResult;
|
|
11
|
+
export declare function validateUsageState(state: unknown): ValidationResult;
|
|
12
|
+
export declare function validatePriority(priority: unknown): ValidationResult;
|
|
13
|
+
export declare function validateForSave(account: Record<string, unknown>): ValidationResult;
|
|
14
|
+
//# sourceMappingURL=account-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-validation.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-validation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAeD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,gBAAgB,CAM/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAKrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAO9D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAIlE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,OAAO,GACrB,gBAAgB,CAclB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAMvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAMnE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAIpE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CASlF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
function ok() {
|
|
2
|
+
return { valid: true, errors: [] };
|
|
3
|
+
}
|
|
4
|
+
function err(msg) {
|
|
5
|
+
return { valid: false, errors: [msg] };
|
|
6
|
+
}
|
|
7
|
+
function merge(...results) {
|
|
8
|
+
const errors = results.flatMap((r) => r.errors);
|
|
9
|
+
return { valid: errors.length === 0, errors };
|
|
10
|
+
}
|
|
11
|
+
export function validateAccountId(id) {
|
|
12
|
+
if (typeof id !== "string")
|
|
13
|
+
return err("Account-ID muss ein String sein.");
|
|
14
|
+
if (id.length === 0)
|
|
15
|
+
return err("Account-ID darf nicht leer sein.");
|
|
16
|
+
if (id.length > 128)
|
|
17
|
+
return err("Account-ID darf maximal 128 Zeichen lang sein.");
|
|
18
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(id))
|
|
19
|
+
return err("Account-ID enthält ungültige Zeichen.");
|
|
20
|
+
return ok();
|
|
21
|
+
}
|
|
22
|
+
export function validateAccountLabel(label) {
|
|
23
|
+
if (typeof label !== "string")
|
|
24
|
+
return err("Label muss ein String sein.");
|
|
25
|
+
if (label.trim().length === 0)
|
|
26
|
+
return err("Label darf nicht leer sein.");
|
|
27
|
+
if (label.length > 256)
|
|
28
|
+
return err("Label darf maximal 256 Zeichen lang sein.");
|
|
29
|
+
return ok();
|
|
30
|
+
}
|
|
31
|
+
export function validateEmail(email) {
|
|
32
|
+
if (email === undefined || email === null)
|
|
33
|
+
return ok();
|
|
34
|
+
if (typeof email !== "string")
|
|
35
|
+
return err("E-Mail muss ein String sein.");
|
|
36
|
+
if (email.length > 320)
|
|
37
|
+
return err("E-Mail darf maximal 320 Zeichen lang sein.");
|
|
38
|
+
const simple = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
39
|
+
if (!simple.test(email))
|
|
40
|
+
return err("E-Mail hat kein gültiges Format.");
|
|
41
|
+
return ok();
|
|
42
|
+
}
|
|
43
|
+
export function validateCookies(cookies) {
|
|
44
|
+
if (typeof cookies !== "string")
|
|
45
|
+
return err("Cookies müssen ein String sein.");
|
|
46
|
+
if (cookies.length === 0)
|
|
47
|
+
return err("Cookies dürfen nicht leer sein.");
|
|
48
|
+
return ok();
|
|
49
|
+
}
|
|
50
|
+
export function validateSessionCredentials(cookies, accessToken, sessionStatus) {
|
|
51
|
+
if (typeof cookies !== "string")
|
|
52
|
+
return err("Cookies müssen ein String sein.");
|
|
53
|
+
if (accessToken !== undefined && accessToken !== null && typeof accessToken !== "string") {
|
|
54
|
+
return err("Access-Token muss ein String sein.");
|
|
55
|
+
}
|
|
56
|
+
const hasCookies = cookies.trim().length > 0;
|
|
57
|
+
const hasAccessToken = typeof accessToken === "string" && accessToken.trim().length > 0;
|
|
58
|
+
const isDraft = sessionStatus === "unknown" || sessionStatus === "login-required";
|
|
59
|
+
if (!hasCookies && !hasAccessToken && !isDraft) {
|
|
60
|
+
return err("Cookies oder Access-Token müssen vorhanden sein.");
|
|
61
|
+
}
|
|
62
|
+
return ok();
|
|
63
|
+
}
|
|
64
|
+
export function validateSessionStatus(status) {
|
|
65
|
+
const allowed = ["unknown", "valid", "expired", "login-required", "error"];
|
|
66
|
+
if (!allowed.includes(status)) {
|
|
67
|
+
return err(`Ungültiger Session-Status: ${status}`);
|
|
68
|
+
}
|
|
69
|
+
return ok();
|
|
70
|
+
}
|
|
71
|
+
export function validateUsageState(state) {
|
|
72
|
+
const allowed = ["unknown", "available", "limited", "exhausted", "error"];
|
|
73
|
+
if (state !== undefined && state !== null && !allowed.includes(state)) {
|
|
74
|
+
return err(`Ungültiger Usage-State: ${state}`);
|
|
75
|
+
}
|
|
76
|
+
return ok();
|
|
77
|
+
}
|
|
78
|
+
export function validatePriority(priority) {
|
|
79
|
+
if (typeof priority !== "number")
|
|
80
|
+
return err("Priorität muss eine Zahl sein.");
|
|
81
|
+
if (!Number.isInteger(priority))
|
|
82
|
+
return err("Priorität muss eine ganze Zahl sein.");
|
|
83
|
+
return ok();
|
|
84
|
+
}
|
|
85
|
+
export function validateForSave(account) {
|
|
86
|
+
return merge(validateAccountId(account.id), validateAccountLabel(account.label), validateEmail(account.email), validateSessionCredentials(account.cookies, account.accessToken, account.sessionStatus), validateSessionStatus(account.sessionStatus), validatePriority(account.priority));
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=account-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-validation.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/zero-token/agent/cli.ts"],"names":[],"mappings":"AA4CA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFxE"}
|