@full-self-developing/fsd 1.0.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/.engine/engine-config.json +27 -0
- package/CODEBASE_CONTEXT.md +152 -0
- package/README.md +111 -0
- package/README_zh.md +111 -0
- package/UI_SPEC.md +57 -0
- package/agents/api-proxy.js +542 -0
- package/agents/base.js +280 -0
- package/agents/branch-manager.js +135 -0
- package/agents/cli-models.json +48 -0
- package/agents/coder.js +128 -0
- package/agents/core-request.js +174 -0
- package/agents/dispatcher.js +491 -0
- package/agents/drivers/.atomcode/graph.bin +0 -0
- package/agents/drivers/atomcode.js +143 -0
- package/agents/drivers/gemini-cli.js +195 -0
- package/agents/drivers/index.js +65 -0
- package/agents/drivers/openrouter.js +390 -0
- package/agents/engine-config.js +444 -0
- package/agents/log-fixer.js +72 -0
- package/agents/mcp-client-manager.js +159 -0
- package/agents/optimizer.js +54 -0
- package/agents/path-validator.js +43 -0
- package/agents/planner.js +81 -0
- package/agents/prompt-manager.js +170 -0
- package/agents/skeptic.js +79 -0
- package/agents/skills-manager.js +130 -0
- package/agents/summarizer.js +34 -0
- package/agents/test-runner.js +85 -0
- package/bin/cli.js +166 -0
- package/client/eslint.config.js +21 -0
- package/client/index.html +12 -0
- package/client/package-lock.json +3339 -0
- package/client/package.json +35 -0
- package/client/src/App.jsx +745 -0
- package/client/src/api.js +78 -0
- package/client/src/components/ChatPanel.jsx +277 -0
- package/client/src/components/ConfirmationModal.jsx +61 -0
- package/client/src/components/ErrorBoundary.jsx +66 -0
- package/client/src/components/FolderPicker.jsx +200 -0
- package/client/src/components/LoopPanel.jsx +863 -0
- package/client/src/components/NotFound.jsx +52 -0
- package/client/src/components/SettingsPanel.jsx +966 -0
- package/client/src/components/Sidebar.jsx +318 -0
- package/client/src/context/SettingsContext.jsx +353 -0
- package/client/src/i18n.js +462 -0
- package/client/src/index.css +31 -0
- package/client/src/main.jsx +17 -0
- package/client/vite.config.js +19 -0
- package/design.md +875 -0
- package/extensions/alibaba/index.ts +11 -0
- package/extensions/alibaba/openclaw.plugin.json +34 -0
- package/extensions/alibaba/package.json +15 -0
- package/extensions/alibaba/plugin-registration.contract.test.ts +7 -0
- package/extensions/alibaba/tsconfig.json +16 -0
- package/extensions/alibaba/video-generation-provider.test.ts +92 -0
- package/extensions/alibaba/video-generation-provider.ts +83 -0
- package/extensions/amazon-bedrock/api.ts +6 -0
- package/extensions/amazon-bedrock/aws-credential-refresh.ts +42 -0
- package/extensions/amazon-bedrock/config-api.ts +4 -0
- package/extensions/amazon-bedrock/config-compat.test.ts +81 -0
- package/extensions/amazon-bedrock/config-compat.ts +107 -0
- package/extensions/amazon-bedrock/discovery-shared.ts +28 -0
- package/extensions/amazon-bedrock/discovery.test.ts +608 -0
- package/extensions/amazon-bedrock/discovery.ts +616 -0
- package/extensions/amazon-bedrock/embedding-provider.test.ts +109 -0
- package/extensions/amazon-bedrock/embedding-provider.ts +470 -0
- package/extensions/amazon-bedrock/index.test.ts +1249 -0
- package/extensions/amazon-bedrock/index.ts +11 -0
- package/extensions/amazon-bedrock/lazy-import.test.ts +56 -0
- package/extensions/amazon-bedrock/memory-embedding-adapter.test.ts +105 -0
- package/extensions/amazon-bedrock/memory-embedding-adapter.ts +47 -0
- package/extensions/amazon-bedrock/npm-shrinkwrap.json +1241 -0
- package/extensions/amazon-bedrock/openclaw.plugin.json +80 -0
- package/extensions/amazon-bedrock/package.json +41 -0
- package/extensions/amazon-bedrock/provider-policy-api.test.ts +46 -0
- package/extensions/amazon-bedrock/provider-policy-api.ts +9 -0
- package/extensions/amazon-bedrock/register.sync.runtime.ts +659 -0
- package/extensions/amazon-bedrock/setup-api.ts +18 -0
- package/extensions/amazon-bedrock/thinking-policy.ts +32 -0
- package/extensions/amazon-bedrock/tsconfig.json +16 -0
- package/extensions/anthropic/api.ts +11 -0
- package/extensions/anthropic/claude-model-refs.ts +104 -0
- package/extensions/anthropic/cli-auth-seam.ts +13 -0
- package/extensions/anthropic/cli-backend-api.ts +6 -0
- package/extensions/anthropic/cli-backend.ts +83 -0
- package/extensions/anthropic/cli-catalog.ts +42 -0
- package/extensions/anthropic/cli-constants.ts +41 -0
- package/extensions/anthropic/cli-migration.test.ts +487 -0
- package/extensions/anthropic/cli-migration.ts +266 -0
- package/extensions/anthropic/cli-shared.test.ts +300 -0
- package/extensions/anthropic/cli-shared.ts +248 -0
- package/extensions/anthropic/config-defaults.ts +428 -0
- package/extensions/anthropic/contract-api.ts +9 -0
- package/extensions/anthropic/doctor-contract-api.ts +14 -0
- package/extensions/anthropic/index.test.ts +663 -0
- package/extensions/anthropic/index.ts +11 -0
- package/extensions/anthropic/media-understanding-provider.ts +15 -0
- package/extensions/anthropic/openclaw.plugin.json +112 -0
- package/extensions/anthropic/package.json +18 -0
- package/extensions/anthropic/provider-contract-api.ts +59 -0
- package/extensions/anthropic/provider-discovery.ts +35 -0
- package/extensions/anthropic/provider-policy-api.test.ts +135 -0
- package/extensions/anthropic/provider-policy-api.ts +24 -0
- package/extensions/anthropic/provider-runtime.contract.test.ts +3 -0
- package/extensions/anthropic/register.runtime.ts +668 -0
- package/extensions/anthropic/replay-policy.ts +9 -0
- package/extensions/anthropic/setup-api.ts +11 -0
- package/extensions/anthropic/stream-wrappers.test.ts +233 -0
- package/extensions/anthropic/stream-wrappers.ts +228 -0
- package/extensions/anthropic/test-api.ts +3 -0
- package/extensions/anthropic/tsconfig.json +16 -0
- package/extensions/arcee/api.ts +8 -0
- package/extensions/arcee/index.test.ts +195 -0
- package/extensions/arcee/index.ts +142 -0
- package/extensions/arcee/models.ts +68 -0
- package/extensions/arcee/onboard.ts +43 -0
- package/extensions/arcee/openclaw.plugin.json +46 -0
- package/extensions/arcee/package.json +15 -0
- package/extensions/arcee/provider-catalog.ts +54 -0
- package/extensions/arcee/tsconfig.json +16 -0
- package/extensions/azure-speech/azure-speech.live.test.ts +92 -0
- package/extensions/azure-speech/index.ts +11 -0
- package/extensions/azure-speech/openclaw.plugin.json +66 -0
- package/extensions/azure-speech/package.json +15 -0
- package/extensions/azure-speech/speech-provider.test.ts +242 -0
- package/extensions/azure-speech/speech-provider.ts +306 -0
- package/extensions/azure-speech/tsconfig.json +16 -0
- package/extensions/azure-speech/tts.test.ts +127 -0
- package/extensions/azure-speech/tts.ts +209 -0
- package/extensions/byteplus/api.ts +8 -0
- package/extensions/byteplus/index.test.ts +60 -0
- package/extensions/byteplus/index.ts +84 -0
- package/extensions/byteplus/live.test.ts +60 -0
- package/extensions/byteplus/models.ts +35 -0
- package/extensions/byteplus/openclaw.plugin.json +165 -0
- package/extensions/byteplus/package.json +15 -0
- package/extensions/byteplus/plugin-registration.contract.test.ts +8 -0
- package/extensions/byteplus/provider-catalog.ts +17 -0
- package/extensions/byteplus/provider-discovery.ts +31 -0
- package/extensions/byteplus/tsconfig.json +16 -0
- package/extensions/byteplus/video-generation-provider.test.ts +223 -0
- package/extensions/byteplus/video-generation-provider.ts +389 -0
- package/extensions/cerebras/api.ts +7 -0
- package/extensions/cerebras/index.ts +41 -0
- package/extensions/cerebras/models.ts +25 -0
- package/extensions/cerebras/onboard.ts +26 -0
- package/extensions/cerebras/openclaw.plugin.json +111 -0
- package/extensions/cerebras/package.json +15 -0
- package/extensions/cerebras/provider-catalog.ts +10 -0
- package/extensions/cerebras/tsconfig.json +16 -0
- package/extensions/chutes/api.ts +14 -0
- package/extensions/chutes/implicit-provider.test.ts +107 -0
- package/extensions/chutes/index.ts +194 -0
- package/extensions/chutes/model-discovery-env.ts +5 -0
- package/extensions/chutes/models.test.ts +289 -0
- package/extensions/chutes/models.ts +632 -0
- package/extensions/chutes/oauth.ts +235 -0
- package/extensions/chutes/onboard.ts +63 -0
- package/extensions/chutes/openclaw.plugin.json +726 -0
- package/extensions/chutes/package.json +15 -0
- package/extensions/chutes/provider-catalog.ts +29 -0
- package/extensions/chutes/tsconfig.json +16 -0
- package/extensions/cloudflare-ai-gateway/api.ts +14 -0
- package/extensions/cloudflare-ai-gateway/catalog-provider.ts +73 -0
- package/extensions/cloudflare-ai-gateway/index.test.ts +60 -0
- package/extensions/cloudflare-ai-gateway/index.ts +233 -0
- package/extensions/cloudflare-ai-gateway/models.ts +44 -0
- package/extensions/cloudflare-ai-gateway/onboard.ts +91 -0
- package/extensions/cloudflare-ai-gateway/openclaw.plugin.json +44 -0
- package/extensions/cloudflare-ai-gateway/package.json +15 -0
- package/extensions/cloudflare-ai-gateway/provider-discovery.contract.test.ts +3 -0
- package/extensions/cloudflare-ai-gateway/stream-wrappers.test.ts +160 -0
- package/extensions/cloudflare-ai-gateway/stream-wrappers.ts +32 -0
- package/extensions/cloudflare-ai-gateway/tsconfig.json +16 -0
- package/extensions/codex/doctor-contract-api.test.ts +44 -0
- package/extensions/codex/doctor-contract-api.ts +68 -0
- package/extensions/codex/harness.ts +85 -0
- package/extensions/codex/index.test.ts +230 -0
- package/extensions/codex/index.ts +125 -0
- package/extensions/codex/media-understanding-provider.test.ts +496 -0
- package/extensions/codex/media-understanding-provider.ts +524 -0
- package/extensions/codex/npm-shrinkwrap.json +1949 -0
- package/extensions/codex/openclaw.plugin.json +403 -0
- package/extensions/codex/package.json +41 -0
- package/extensions/codex/prompt-overlay-runtime-contract.test.ts +48 -0
- package/extensions/codex/prompt-overlay.ts +21 -0
- package/extensions/codex/provider-catalog.ts +83 -0
- package/extensions/codex/provider-discovery.ts +45 -0
- package/extensions/codex/provider.test.ts +384 -0
- package/extensions/codex/provider.ts +243 -0
- package/extensions/codex/src/app-server/app-inventory-cache.test.ts +176 -0
- package/extensions/codex/src/app-server/app-inventory-cache.ts +324 -0
- package/extensions/codex/src/app-server/approval-bridge.test.ts +1472 -0
- package/extensions/codex/src/app-server/approval-bridge.ts +1211 -0
- package/extensions/codex/src/app-server/auth-bridge.test.ts +1449 -0
- package/extensions/codex/src/app-server/auth-bridge.ts +614 -0
- package/extensions/codex/src/app-server/auth-profile-runtime-contract.test.ts +242 -0
- package/extensions/codex/src/app-server/capabilities.ts +27 -0
- package/extensions/codex/src/app-server/client-factory.ts +24 -0
- package/extensions/codex/src/app-server/client.test.ts +563 -0
- package/extensions/codex/src/app-server/client.ts +721 -0
- package/extensions/codex/src/app-server/compact.test.ts +1029 -0
- package/extensions/codex/src/app-server/compact.ts +662 -0
- package/extensions/codex/src/app-server/computer-use.test.ts +788 -0
- package/extensions/codex/src/app-server/computer-use.ts +683 -0
- package/extensions/codex/src/app-server/config.test.ts +948 -0
- package/extensions/codex/src/app-server/config.ts +1093 -0
- package/extensions/codex/src/app-server/context-engine-projection.test.ts +252 -0
- package/extensions/codex/src/app-server/context-engine-projection.ts +403 -0
- package/extensions/codex/src/app-server/delivery-no-reply-runtime-contract.test.ts +80 -0
- package/extensions/codex/src/app-server/dynamic-tool-diagnostics.ts +73 -0
- package/extensions/codex/src/app-server/dynamic-tool-profile.ts +70 -0
- package/extensions/codex/src/app-server/dynamic-tools.test.ts +1357 -0
- package/extensions/codex/src/app-server/dynamic-tools.ts +646 -0
- package/extensions/codex/src/app-server/elicitation-bridge.test.ts +1281 -0
- package/extensions/codex/src/app-server/elicitation-bridge.ts +828 -0
- package/extensions/codex/src/app-server/event-projector.test.ts +2885 -0
- package/extensions/codex/src/app-server/event-projector.ts +2047 -0
- package/extensions/codex/src/app-server/image-payload-sanitizer.test.ts +49 -0
- package/extensions/codex/src/app-server/image-payload-sanitizer.ts +195 -0
- package/extensions/codex/src/app-server/local-runtime-attribution.ts +39 -0
- package/extensions/codex/src/app-server/managed-binary.test.ts +141 -0
- package/extensions/codex/src/app-server/managed-binary.ts +193 -0
- package/extensions/codex/src/app-server/models.test.ts +246 -0
- package/extensions/codex/src/app-server/models.ts +172 -0
- package/extensions/codex/src/app-server/native-hook-relay.test.ts +274 -0
- package/extensions/codex/src/app-server/native-hook-relay.ts +150 -0
- package/extensions/codex/src/app-server/native-subagent-monitor.test.ts +1125 -0
- package/extensions/codex/src/app-server/native-subagent-monitor.ts +1061 -0
- package/extensions/codex/src/app-server/native-subagent-notification.test.ts +176 -0
- package/extensions/codex/src/app-server/native-subagent-notification.ts +222 -0
- package/extensions/codex/src/app-server/native-subagent-task-ids.ts +3 -0
- package/extensions/codex/src/app-server/native-subagent-task-mirror.test.ts +625 -0
- package/extensions/codex/src/app-server/native-subagent-task-mirror.ts +460 -0
- package/extensions/codex/src/app-server/notification-correlation.ts +91 -0
- package/extensions/codex/src/app-server/openclaw-owned-tool-runtime-contract.test.ts +456 -0
- package/extensions/codex/src/app-server/outcome-fallback-runtime-contract.test.ts +404 -0
- package/extensions/codex/src/app-server/plugin-activation.test.ts +336 -0
- package/extensions/codex/src/app-server/plugin-activation.ts +283 -0
- package/extensions/codex/src/app-server/plugin-app-cache-key.ts +74 -0
- package/extensions/codex/src/app-server/plugin-approval-roundtrip.ts +122 -0
- package/extensions/codex/src/app-server/plugin-inventory.test.ts +355 -0
- package/extensions/codex/src/app-server/plugin-inventory.ts +357 -0
- package/extensions/codex/src/app-server/plugin-thread-config.test.ts +865 -0
- package/extensions/codex/src/app-server/plugin-thread-config.ts +455 -0
- package/extensions/codex/src/app-server/protocol-generated/json/DynamicToolCallParams.json +33 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/ErrorNotification.json +199 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/GetAccountResponse.json +102 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/ModelListResponse.json +227 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/ThreadResumeResponse.json +2630 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/ThreadStartResponse.json +2630 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/TurnCompletedNotification.json +1659 -0
- package/extensions/codex/src/app-server/protocol-generated/json/v2/TurnStartResponse.json +1655 -0
- package/extensions/codex/src/app-server/protocol-validators.test.ts +75 -0
- package/extensions/codex/src/app-server/protocol-validators.ts +203 -0
- package/extensions/codex/src/app-server/protocol.ts +537 -0
- package/extensions/codex/src/app-server/rate-limit-cache.ts +48 -0
- package/extensions/codex/src/app-server/rate-limits.test.ts +202 -0
- package/extensions/codex/src/app-server/rate-limits.ts +583 -0
- package/extensions/codex/src/app-server/request.test.ts +68 -0
- package/extensions/codex/src/app-server/request.ts +90 -0
- package/extensions/codex/src/app-server/run-attempt-thread-cleanup.test.ts +197 -0
- package/extensions/codex/src/app-server/run-attempt.context-engine.test.ts +1246 -0
- package/extensions/codex/src/app-server/run-attempt.test.ts +10799 -0
- package/extensions/codex/src/app-server/run-attempt.ts +5264 -0
- package/extensions/codex/src/app-server/run-attempt.vision-tools.test.ts +35 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/filesystem.ts +261 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/fs-policy.ts +346 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/http.ts +312 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/json-rpc.ts +93 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/processes.ts +411 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/runtime.ts +22 -0
- package/extensions/codex/src/app-server/sandbox-exec-server/types.ts +80 -0
- package/extensions/codex/src/app-server/sandbox-exec-server.fs.test.ts +527 -0
- package/extensions/codex/src/app-server/sandbox-exec-server.http.test.ts +210 -0
- package/extensions/codex/src/app-server/sandbox-exec-server.test-helpers.ts +236 -0
- package/extensions/codex/src/app-server/sandbox-exec-server.test.ts +460 -0
- package/extensions/codex/src/app-server/sandbox-exec-server.ts +355 -0
- package/extensions/codex/src/app-server/sandbox-guard.ts +153 -0
- package/extensions/codex/src/app-server/schema-normalization-runtime-contract.test.ts +206 -0
- package/extensions/codex/src/app-server/session-binding.test.ts +303 -0
- package/extensions/codex/src/app-server/session-binding.ts +407 -0
- package/extensions/codex/src/app-server/session-history.ts +44 -0
- package/extensions/codex/src/app-server/shared-client.test.ts +591 -0
- package/extensions/codex/src/app-server/shared-client.ts +289 -0
- package/extensions/codex/src/app-server/side-question.test.ts +1243 -0
- package/extensions/codex/src/app-server/side-question.ts +1019 -0
- package/extensions/codex/src/app-server/test-support.ts +48 -0
- package/extensions/codex/src/app-server/thread-lifecycle.test.ts +447 -0
- package/extensions/codex/src/app-server/thread-lifecycle.ts +1004 -0
- package/extensions/codex/src/app-server/thread-lifecycle.user-mcp-servers.test.ts +442 -0
- package/extensions/codex/src/app-server/timeout.ts +9 -0
- package/extensions/codex/src/app-server/tool-progress-normalization.ts +77 -0
- package/extensions/codex/src/app-server/trajectory.test.ts +205 -0
- package/extensions/codex/src/app-server/trajectory.ts +368 -0
- package/extensions/codex/src/app-server/transcript-mirror.test.ts +527 -0
- package/extensions/codex/src/app-server/transcript-mirror.ts +208 -0
- package/extensions/codex/src/app-server/transcript-repair-runtime-contract.test.ts +44 -0
- package/extensions/codex/src/app-server/transport-stdio.test.ts +184 -0
- package/extensions/codex/src/app-server/transport-stdio.ts +107 -0
- package/extensions/codex/src/app-server/transport-websocket.test.ts +71 -0
- package/extensions/codex/src/app-server/transport-websocket.ts +90 -0
- package/extensions/codex/src/app-server/transport.ts +117 -0
- package/extensions/codex/src/app-server/user-input-bridge.test.ts +249 -0
- package/extensions/codex/src/app-server/user-input-bridge.ts +316 -0
- package/extensions/codex/src/app-server/version.ts +5 -0
- package/extensions/codex/src/app-server/vision-tools.ts +12 -0
- package/extensions/codex/src/command-account.ts +589 -0
- package/extensions/codex/src/command-formatters.ts +426 -0
- package/extensions/codex/src/command-handlers.ts +2092 -0
- package/extensions/codex/src/command-plugins-management.test.ts +172 -0
- package/extensions/codex/src/command-plugins-management.ts +137 -0
- package/extensions/codex/src/command-rpc.test.ts +16 -0
- package/extensions/codex/src/command-rpc.ts +146 -0
- package/extensions/codex/src/commands.test.ts +3737 -0
- package/extensions/codex/src/commands.ts +65 -0
- package/extensions/codex/src/conversation-binding-data.ts +124 -0
- package/extensions/codex/src/conversation-binding.test.ts +697 -0
- package/extensions/codex/src/conversation-binding.ts +575 -0
- package/extensions/codex/src/conversation-control.test.ts +126 -0
- package/extensions/codex/src/conversation-control.ts +303 -0
- package/extensions/codex/src/conversation-turn-collector.test.ts +191 -0
- package/extensions/codex/src/conversation-turn-collector.ts +190 -0
- package/extensions/codex/src/conversation-turn-input.test.ts +141 -0
- package/extensions/codex/src/conversation-turn-input.ts +106 -0
- package/extensions/codex/src/manifest.test.ts +20 -0
- package/extensions/codex/src/migration/apply.ts +501 -0
- package/extensions/codex/src/migration/helpers.ts +55 -0
- package/extensions/codex/src/migration/plan.ts +461 -0
- package/extensions/codex/src/migration/provider.test.ts +1741 -0
- package/extensions/codex/src/migration/provider.ts +41 -0
- package/extensions/codex/src/migration/source.ts +643 -0
- package/extensions/codex/src/migration/targets.ts +25 -0
- package/extensions/codex/src/node-cli-sessions.test.ts +180 -0
- package/extensions/codex/src/node-cli-sessions.ts +711 -0
- package/extensions/codex/test-api.ts +95 -0
- package/extensions/codex/tsconfig.json +16 -0
- package/extensions/comfy/comfy.live.test.ts +128 -0
- package/extensions/comfy/image-generation-provider.test.ts +457 -0
- package/extensions/comfy/image-generation-provider.ts +79 -0
- package/extensions/comfy/index.test.ts +51 -0
- package/extensions/comfy/index.ts +45 -0
- package/extensions/comfy/music-generation-provider.test.ts +101 -0
- package/extensions/comfy/music-generation-provider.ts +88 -0
- package/extensions/comfy/openclaw.plugin.json +268 -0
- package/extensions/comfy/package.json +15 -0
- package/extensions/comfy/plugin-registration.contract.test.ts +11 -0
- package/extensions/comfy/test-helpers.ts +113 -0
- package/extensions/comfy/tsconfig.json +16 -0
- package/extensions/comfy/video-generation-provider.test.ts +184 -0
- package/extensions/comfy/video-generation-provider.ts +104 -0
- package/extensions/comfy/workflow-runtime.ts +827 -0
- package/extensions/deepgram/audio.live.test.ts +75 -0
- package/extensions/deepgram/audio.test.ts +146 -0
- package/extensions/deepgram/audio.ts +109 -0
- package/extensions/deepgram/index.ts +13 -0
- package/extensions/deepgram/media-understanding-provider.ts +10 -0
- package/extensions/deepgram/openclaw.plugin.json +30 -0
- package/extensions/deepgram/package.json +15 -0
- package/extensions/deepgram/realtime-transcription-provider.test.ts +69 -0
- package/extensions/deepgram/realtime-transcription-provider.ts +283 -0
- package/extensions/deepgram/test-api.ts +2 -0
- package/extensions/deepgram/tsconfig.json +16 -0
- package/extensions/deepinfra/api.ts +8 -0
- package/extensions/deepinfra/embedding-provider.ts +33 -0
- package/extensions/deepinfra/image-generation-provider.test.ts +224 -0
- package/extensions/deepinfra/image-generation-provider.ts +89 -0
- package/extensions/deepinfra/index.test.ts +113 -0
- package/extensions/deepinfra/index.ts +84 -0
- package/extensions/deepinfra/media-models.ts +50 -0
- package/extensions/deepinfra/media-understanding-provider.test.ts +73 -0
- package/extensions/deepinfra/media-understanding-provider.ts +37 -0
- package/extensions/deepinfra/memory-embedding-adapter.test.ts +31 -0
- package/extensions/deepinfra/memory-embedding-adapter.ts +35 -0
- package/extensions/deepinfra/onboard.test.ts +172 -0
- package/extensions/deepinfra/onboard.ts +36 -0
- package/extensions/deepinfra/openclaw.plugin.json +203 -0
- package/extensions/deepinfra/package.json +15 -0
- package/extensions/deepinfra/provider-catalog.ts +24 -0
- package/extensions/deepinfra/provider-models.test.ts +217 -0
- package/extensions/deepinfra/provider-models.ts +167 -0
- package/extensions/deepinfra/provider-policy-api.test.ts +41 -0
- package/extensions/deepinfra/provider-policy-api.ts +21 -0
- package/extensions/deepinfra/provider.contract.test.ts +3 -0
- package/extensions/deepinfra/speech-provider.test.ts +169 -0
- package/extensions/deepinfra/speech-provider.ts +41 -0
- package/extensions/deepinfra/tsconfig.json +16 -0
- package/extensions/deepinfra/video-generation-provider.test.ts +194 -0
- package/extensions/deepinfra/video-generation-provider.ts +262 -0
- package/extensions/deepseek/api.ts +7 -0
- package/extensions/deepseek/deepseek.live.test.ts +232 -0
- package/extensions/deepseek/index.test.ts +488 -0
- package/extensions/deepseek/index.ts +58 -0
- package/extensions/deepseek/models.ts +33 -0
- package/extensions/deepseek/onboard.ts +31 -0
- package/extensions/deepseek/openclaw.plugin.json +132 -0
- package/extensions/deepseek/package.json +15 -0
- package/extensions/deepseek/provider-catalog.ts +14 -0
- package/extensions/deepseek/provider-discovery.ts +17 -0
- package/extensions/deepseek/provider-policy-api.test.ts +264 -0
- package/extensions/deepseek/provider-policy-api.ts +104 -0
- package/extensions/deepseek/stream.ts +14 -0
- package/extensions/deepseek/thinking.ts +19 -0
- package/extensions/deepseek/tsconfig.json +16 -0
- package/extensions/elevenlabs/config-api.ts +8 -0
- package/extensions/elevenlabs/config-compat.test.ts +75 -0
- package/extensions/elevenlabs/config-compat.ts +181 -0
- package/extensions/elevenlabs/contract-api.ts +8 -0
- package/extensions/elevenlabs/doctor-contract.ts +34 -0
- package/extensions/elevenlabs/elevenlabs.live.test.ts +91 -0
- package/extensions/elevenlabs/index.ts +15 -0
- package/extensions/elevenlabs/media-understanding-provider.test.ts +95 -0
- package/extensions/elevenlabs/media-understanding-provider.ts +85 -0
- package/extensions/elevenlabs/openclaw.plugin.json +40 -0
- package/extensions/elevenlabs/package.json +15 -0
- package/extensions/elevenlabs/realtime-transcription-provider.test.ts +60 -0
- package/extensions/elevenlabs/realtime-transcription-provider.ts +284 -0
- package/extensions/elevenlabs/setup-api.ts +11 -0
- package/extensions/elevenlabs/shared.ts +10 -0
- package/extensions/elevenlabs/speech-provider.test.ts +124 -0
- package/extensions/elevenlabs/speech-provider.ts +594 -0
- package/extensions/elevenlabs/test-api.ts +6 -0
- package/extensions/elevenlabs/tsconfig.json +16 -0
- package/extensions/elevenlabs/tts.test.ts +212 -0
- package/extensions/elevenlabs/tts.ts +198 -0
- package/extensions/fal/image-generation-provider.test.ts +710 -0
- package/extensions/fal/image-generation-provider.ts +463 -0
- package/extensions/fal/index.ts +19 -0
- package/extensions/fal/music-generation-provider.test.ts +200 -0
- package/extensions/fal/music-generation-provider.ts +219 -0
- package/extensions/fal/onboard.ts +21 -0
- package/extensions/fal/openclaw.plugin.json +42 -0
- package/extensions/fal/package.json +15 -0
- package/extensions/fal/plugin-registration.contract.test.ts +11 -0
- package/extensions/fal/provider-contract-api.ts +31 -0
- package/extensions/fal/provider-registration.ts +38 -0
- package/extensions/fal/test-api.ts +3 -0
- package/extensions/fal/tsconfig.json +16 -0
- package/extensions/fal/video-generation-provider.test.ts +566 -0
- package/extensions/fal/video-generation-provider.ts +648 -0
- package/extensions/fireworks/index.test.ts +181 -0
- package/extensions/fireworks/index.ts +85 -0
- package/extensions/fireworks/model-id.ts +5 -0
- package/extensions/fireworks/onboard.ts +30 -0
- package/extensions/fireworks/openclaw.plugin.json +73 -0
- package/extensions/fireworks/package.json +18 -0
- package/extensions/fireworks/provider-catalog.ts +50 -0
- package/extensions/fireworks/provider-policy-api.ts +8 -0
- package/extensions/fireworks/stream.test.ts +184 -0
- package/extensions/fireworks/stream.ts +39 -0
- package/extensions/fireworks/thinking-policy.ts +17 -0
- package/extensions/fireworks/tsconfig.json +16 -0
- package/extensions/github-copilot/api.ts +1 -0
- package/extensions/github-copilot/auth.test.ts +109 -0
- package/extensions/github-copilot/auth.ts +65 -0
- package/extensions/github-copilot/connection-bound-ids.live.test.ts +231 -0
- package/extensions/github-copilot/connection-bound-ids.test.ts +96 -0
- package/extensions/github-copilot/connection-bound-ids.ts +81 -0
- package/extensions/github-copilot/embeddings.test.ts +287 -0
- package/extensions/github-copilot/embeddings.ts +342 -0
- package/extensions/github-copilot/index.test.ts +660 -0
- package/extensions/github-copilot/index.ts +492 -0
- package/extensions/github-copilot/login.ts +323 -0
- package/extensions/github-copilot/model-metadata.ts +51 -0
- package/extensions/github-copilot/models-defaults.ts +61 -0
- package/extensions/github-copilot/models.test.ts +695 -0
- package/extensions/github-copilot/models.ts +274 -0
- package/extensions/github-copilot/openclaw.plugin.json +270 -0
- package/extensions/github-copilot/package.json +19 -0
- package/extensions/github-copilot/provider-auth.contract.test.ts +3 -0
- package/extensions/github-copilot/provider-discovery.contract.test.ts +7 -0
- package/extensions/github-copilot/provider-runtime.contract.test.ts +3 -0
- package/extensions/github-copilot/register.runtime.ts +24 -0
- package/extensions/github-copilot/replay-policy.ts +9 -0
- package/extensions/github-copilot/stream.test.ts +282 -0
- package/extensions/github-copilot/stream.ts +157 -0
- package/extensions/github-copilot/token.ts +6 -0
- package/extensions/github-copilot/tsconfig.json +16 -0
- package/extensions/github-copilot/usage.ts +68 -0
- package/extensions/google/api.test.ts +249 -0
- package/extensions/google/api.ts +91 -0
- package/extensions/google/cli-backend.ts +58 -0
- package/extensions/google/default-model.test.ts +115 -0
- package/extensions/google/doctor-contract-api.ts +18 -0
- package/extensions/google/embedding-batch.ts +379 -0
- package/extensions/google/embedding-provider.test.ts +264 -0
- package/extensions/google/embedding-provider.ts +441 -0
- package/extensions/google/gemini-auth.ts +20 -0
- package/extensions/google/gemini-cli-provider.ts +145 -0
- package/extensions/google/generation-provider-metadata.ts +121 -0
- package/extensions/google/google-genai-runtime.ts +8 -0
- package/extensions/google/google-shared.test-helpers.ts +99 -0
- package/extensions/google/google-shared.test.ts +380 -0
- package/extensions/google/google.live.test.ts +179 -0
- package/extensions/google/image-generation-provider.test.ts +503 -0
- package/extensions/google/image-generation-provider.ts +272 -0
- package/extensions/google/index.test.ts +310 -0
- package/extensions/google/index.ts +354 -0
- package/extensions/google/manifest.test.ts +104 -0
- package/extensions/google/media-understanding-provider.ts +164 -0
- package/extensions/google/media-understanding-provider.video.test.ts +158 -0
- package/extensions/google/memory-embedding-adapter.ts +79 -0
- package/extensions/google/model-id.test.ts +42 -0
- package/extensions/google/model-id.ts +35 -0
- package/extensions/google/music-generation-provider.test.ts +278 -0
- package/extensions/google/music-generation-provider.ts +176 -0
- package/extensions/google/oauth-token-shared.test.ts +39 -0
- package/extensions/google/oauth-token-shared.ts +42 -0
- package/extensions/google/oauth.credentials.ts +273 -0
- package/extensions/google/oauth.flow.ts +61 -0
- package/extensions/google/oauth.http.ts +24 -0
- package/extensions/google/oauth.project.ts +232 -0
- package/extensions/google/oauth.runtime.ts +1 -0
- package/extensions/google/oauth.settings.ts +72 -0
- package/extensions/google/oauth.shared.ts +44 -0
- package/extensions/google/oauth.test.ts +922 -0
- package/extensions/google/oauth.token.ts +138 -0
- package/extensions/google/oauth.ts +104 -0
- package/extensions/google/onboard.ts +78 -0
- package/extensions/google/openclaw.plugin.json +706 -0
- package/extensions/google/package.json +19 -0
- package/extensions/google/plugin-registration.contract.test.ts +12 -0
- package/extensions/google/provider-contract-api.ts +77 -0
- package/extensions/google/provider-hooks.ts +18 -0
- package/extensions/google/provider-models.test.ts +513 -0
- package/extensions/google/provider-models.ts +237 -0
- package/extensions/google/provider-policy-api.test.ts +201 -0
- package/extensions/google/provider-policy-api.ts +11 -0
- package/extensions/google/provider-policy.ts +208 -0
- package/extensions/google/provider-registration.ts +72 -0
- package/extensions/google/provider-runtime.contract.test.ts +3 -0
- package/extensions/google/realtime-voice-provider.test.ts +857 -0
- package/extensions/google/realtime-voice-provider.ts +952 -0
- package/extensions/google/runtime-api.ts +19 -0
- package/extensions/google/setup-api.test.ts +23 -0
- package/extensions/google/setup-api.ts +13 -0
- package/extensions/google/speech-provider.test.ts +682 -0
- package/extensions/google/speech-provider.ts +683 -0
- package/extensions/google/src/gemini-web-search-provider.runtime.ts +367 -0
- package/extensions/google/src/gemini-web-search-provider.shared.ts +45 -0
- package/extensions/google/src/gemini-web-search-provider.ts +151 -0
- package/extensions/google/test-api.ts +6 -0
- package/extensions/google/thinking-api.ts +14 -0
- package/extensions/google/thinking.test.ts +153 -0
- package/extensions/google/thinking.ts +14 -0
- package/extensions/google/transport-stream.test.ts +1726 -0
- package/extensions/google/transport-stream.ts +1396 -0
- package/extensions/google/tsconfig.json +16 -0
- package/extensions/google/vertex-adc.ts +188 -0
- package/extensions/google/video-generation-provider.test.ts +573 -0
- package/extensions/google/video-generation-provider.ts +591 -0
- package/extensions/google/web-search-contract-api.ts +1 -0
- package/extensions/google/web-search-provider.test.ts +548 -0
- package/extensions/google/web-search-provider.ts +1 -0
- package/extensions/groq/api.ts +60 -0
- package/extensions/groq/index.test.ts +90 -0
- package/extensions/groq/index.ts +21 -0
- package/extensions/groq/media-understanding-provider.ts +21 -0
- package/extensions/groq/openclaw.plugin.json +314 -0
- package/extensions/groq/package.json +15 -0
- package/extensions/groq/test-api.ts +1 -0
- package/extensions/groq/tsconfig.json +16 -0
- package/extensions/huggingface/api.ts +10 -0
- package/extensions/huggingface/index.test.ts +81 -0
- package/extensions/huggingface/index.ts +60 -0
- package/extensions/huggingface/model-discovery-env.ts +5 -0
- package/extensions/huggingface/models.test.ts +98 -0
- package/extensions/huggingface/models.ts +218 -0
- package/extensions/huggingface/onboard.ts +26 -0
- package/extensions/huggingface/openclaw.plugin.json +57 -0
- package/extensions/huggingface/package.json +15 -0
- package/extensions/huggingface/provider-catalog.ts +22 -0
- package/extensions/huggingface/tsconfig.json +16 -0
- package/extensions/image-generation-core/api.ts +30 -0
- package/extensions/image-generation-core/package.json +10 -0
- package/extensions/image-generation-core/runtime-api.ts +6 -0
- package/extensions/image-generation-core/src/runtime.test.ts +29 -0
- package/extensions/image-generation-core/src/runtime.ts +6 -0
- package/extensions/image-generation-core/tsconfig.json +16 -0
- package/extensions/kimi-coding/api.ts +8 -0
- package/extensions/kimi-coding/implicit-provider.test.ts +116 -0
- package/extensions/kimi-coding/index.test.ts +45 -0
- package/extensions/kimi-coding/index.ts +113 -0
- package/extensions/kimi-coding/onboard.test.ts +44 -0
- package/extensions/kimi-coding/onboard.ts +42 -0
- package/extensions/kimi-coding/openclaw.plugin.json +64 -0
- package/extensions/kimi-coding/package.json +18 -0
- package/extensions/kimi-coding/provider-catalog.test.ts +23 -0
- package/extensions/kimi-coding/provider-catalog.ts +58 -0
- package/extensions/kimi-coding/replay-policy.test.ts +10 -0
- package/extensions/kimi-coding/replay-policy.ts +3 -0
- package/extensions/kimi-coding/stream.test.ts +603 -0
- package/extensions/kimi-coding/stream.ts +399 -0
- package/extensions/kimi-coding/tsconfig.json +16 -0
- package/extensions/litellm/api.ts +8 -0
- package/extensions/litellm/image-generation-provider.test.ts +348 -0
- package/extensions/litellm/image-generation-provider.ts +142 -0
- package/extensions/litellm/index.test.ts +107 -0
- package/extensions/litellm/index.ts +108 -0
- package/extensions/litellm/onboard.test.ts +21 -0
- package/extensions/litellm/onboard.ts +55 -0
- package/extensions/litellm/openclaw.plugin.json +35 -0
- package/extensions/litellm/package.json +15 -0
- package/extensions/litellm/provider-catalog.ts +10 -0
- package/extensions/litellm/tsconfig.json +16 -0
- package/extensions/lmstudio/README.md +3 -0
- package/extensions/lmstudio/api.ts +36 -0
- package/extensions/lmstudio/index.test.ts +207 -0
- package/extensions/lmstudio/index.ts +137 -0
- package/extensions/lmstudio/memory-embedding-adapter.ts +36 -0
- package/extensions/lmstudio/openclaw.plugin.json +53 -0
- package/extensions/lmstudio/package.json +15 -0
- package/extensions/lmstudio/plugin-registration.contract.test.ts +6 -0
- package/extensions/lmstudio/runtime-api.ts +35 -0
- package/extensions/lmstudio/src/api.ts +42 -0
- package/extensions/lmstudio/src/defaults.ts +14 -0
- package/extensions/lmstudio/src/embedding-provider.ts +147 -0
- package/extensions/lmstudio/src/models.fetch.ts +277 -0
- package/extensions/lmstudio/src/models.test.ts +491 -0
- package/extensions/lmstudio/src/models.ts +536 -0
- package/extensions/lmstudio/src/plain-text-tool-calls.ts +24 -0
- package/extensions/lmstudio/src/provider-auth.ts +59 -0
- package/extensions/lmstudio/src/runtime.test.ts +357 -0
- package/extensions/lmstudio/src/runtime.ts +276 -0
- package/extensions/lmstudio/src/setup.test.ts +1543 -0
- package/extensions/lmstudio/src/setup.ts +878 -0
- package/extensions/lmstudio/src/stream.test.ts +658 -0
- package/extensions/lmstudio/src/stream.ts +493 -0
- package/extensions/media-understanding-core/image-ops.ts +137 -0
- package/extensions/media-understanding-core/package.json +14 -0
- package/extensions/media-understanding-core/runtime-api.ts +9 -0
- package/extensions/media-understanding-core/src/runtime.ts +9 -0
- package/extensions/media-understanding-core/tsconfig.json +16 -0
- package/extensions/microsoft/index.ts +11 -0
- package/extensions/microsoft/microsoft.live.test.ts +14 -0
- package/extensions/microsoft/openclaw.plugin.json +15 -0
- package/extensions/microsoft/package.json +18 -0
- package/extensions/microsoft/speech-provider.test.ts +298 -0
- package/extensions/microsoft/speech-provider.ts +295 -0
- package/extensions/microsoft/test-api.ts +1 -0
- package/extensions/microsoft/tsconfig.json +16 -0
- package/extensions/microsoft/tts.test.ts +193 -0
- package/extensions/microsoft/tts.ts +137 -0
- package/extensions/minimax/README.md +37 -0
- package/extensions/minimax/api.ts +27 -0
- package/extensions/minimax/image-generation-provider.test.ts +313 -0
- package/extensions/minimax/image-generation-provider.ts +216 -0
- package/extensions/minimax/index.test.ts +408 -0
- package/extensions/minimax/index.ts +39 -0
- package/extensions/minimax/media-understanding-provider.ts +23 -0
- package/extensions/minimax/minimax.live.test.ts +115 -0
- package/extensions/minimax/model-definitions.test.ts +101 -0
- package/extensions/minimax/model-definitions.ts +91 -0
- package/extensions/minimax/music-generation-provider.test.ts +198 -0
- package/extensions/minimax/music-generation-provider.ts +259 -0
- package/extensions/minimax/oauth.runtime.ts +1 -0
- package/extensions/minimax/oauth.ts +233 -0
- package/extensions/minimax/onboard.test.ts +126 -0
- package/extensions/minimax/onboard.ts +104 -0
- package/extensions/minimax/openclaw.plugin.json +133 -0
- package/extensions/minimax/package.json +15 -0
- package/extensions/minimax/plugin-registration.contract.test.ts +15 -0
- package/extensions/minimax/provider-catalog.ts +86 -0
- package/extensions/minimax/provider-contract-api.ts +84 -0
- package/extensions/minimax/provider-discovery.contract.test.ts +3 -0
- package/extensions/minimax/provider-http.test-helpers.ts +142 -0
- package/extensions/minimax/provider-models.ts +21 -0
- package/extensions/minimax/provider-registration.ts +285 -0
- package/extensions/minimax/speech-provider.test.ts +576 -0
- package/extensions/minimax/speech-provider.ts +312 -0
- package/extensions/minimax/src/minimax-web-search-provider.runtime.ts +270 -0
- package/extensions/minimax/src/minimax-web-search-provider.test.ts +177 -0
- package/extensions/minimax/src/minimax-web-search-provider.ts +64 -0
- package/extensions/minimax/test-api.ts +11 -0
- package/extensions/minimax/tsconfig.json +16 -0
- package/extensions/minimax/tts.ts +116 -0
- package/extensions/minimax/video-generation-provider.test.ts +214 -0
- package/extensions/minimax/video-generation-provider.ts +456 -0
- package/extensions/minimax/web-search-contract-api.ts +35 -0
- package/extensions/minimax/web-search-provider.ts +1 -0
- package/extensions/mistral/api.test.ts +195 -0
- package/extensions/mistral/api.ts +81 -0
- package/extensions/mistral/embedding-provider.ts +52 -0
- package/extensions/mistral/index.ts +61 -0
- package/extensions/mistral/media-understanding-provider.test.ts +46 -0
- package/extensions/mistral/media-understanding-provider.ts +21 -0
- package/extensions/mistral/memory-embedding-adapter.ts +35 -0
- package/extensions/mistral/mistral.live.test.ts +62 -0
- package/extensions/mistral/model-definitions.test.ts +65 -0
- package/extensions/mistral/model-definitions.ts +37 -0
- package/extensions/mistral/onboard.test.ts +54 -0
- package/extensions/mistral/onboard.ts +31 -0
- package/extensions/mistral/openclaw.plugin.json +180 -0
- package/extensions/mistral/package.json +15 -0
- package/extensions/mistral/provider-catalog.ts +10 -0
- package/extensions/mistral/provider-compat.ts +62 -0
- package/extensions/mistral/realtime-transcription-provider.test.ts +61 -0
- package/extensions/mistral/realtime-transcription-provider.ts +280 -0
- package/extensions/mistral/test-api.ts +2 -0
- package/extensions/mistral/tsconfig.json +16 -0
- package/extensions/moonshot/api.ts +9 -0
- package/extensions/moonshot/index.test.ts +73 -0
- package/extensions/moonshot/index.ts +81 -0
- package/extensions/moonshot/media-understanding-provider.test.ts +92 -0
- package/extensions/moonshot/media-understanding-provider.ts +85 -0
- package/extensions/moonshot/moonshot.live.test.ts +56 -0
- package/extensions/moonshot/onboard.ts +38 -0
- package/extensions/moonshot/openclaw.plugin.json +209 -0
- package/extensions/moonshot/package.json +15 -0
- package/extensions/moonshot/provider-catalog.test.ts +84 -0
- package/extensions/moonshot/provider-catalog.ts +34 -0
- package/extensions/moonshot/provider-contract-api.ts +33 -0
- package/extensions/moonshot/provider-discovery.ts +17 -0
- package/extensions/moonshot/src/kimi-web-search-provider.runtime.ts +513 -0
- package/extensions/moonshot/src/kimi-web-search-provider.test.ts +297 -0
- package/extensions/moonshot/src/kimi-web-search-provider.ts +71 -0
- package/extensions/moonshot/test-api.ts +2 -0
- package/extensions/moonshot/tsconfig.json +16 -0
- package/extensions/moonshot/web-search-contract-api.ts +28 -0
- package/extensions/moonshot/web-search-provider.ts +1 -0
- package/extensions/nvidia/api.ts +6 -0
- package/extensions/nvidia/index.test.ts +180 -0
- package/extensions/nvidia/index.ts +64 -0
- package/extensions/nvidia/onboard.test.ts +49 -0
- package/extensions/nvidia/onboard.ts +30 -0
- package/extensions/nvidia/openclaw.plugin.json +122 -0
- package/extensions/nvidia/package.json +15 -0
- package/extensions/nvidia/plugin-registration.contract.test.ts +14 -0
- package/extensions/nvidia/provider-catalog.test.ts +21 -0
- package/extensions/nvidia/provider-catalog.ts +15 -0
- package/extensions/nvidia/tsconfig.json +16 -0
- package/extensions/ollama/README.md +3 -0
- package/extensions/ollama/api.ts +34 -0
- package/extensions/ollama/index.test.ts +979 -0
- package/extensions/ollama/index.ts +336 -0
- package/extensions/ollama/ollama.live.test.ts +287 -0
- package/extensions/ollama/openclaw.plugin.json +67 -0
- package/extensions/ollama/package.json +19 -0
- package/extensions/ollama/plugin-registration.contract.test.ts +7 -0
- package/extensions/ollama/provider-discovery.import-guard.test.ts +29 -0
- package/extensions/ollama/provider-discovery.test.ts +657 -0
- package/extensions/ollama/provider-discovery.ts +69 -0
- package/extensions/ollama/provider-policy-api.test.ts +72 -0
- package/extensions/ollama/provider-policy-api.ts +59 -0
- package/extensions/ollama/runtime-api.ts +22 -0
- package/extensions/ollama/src/defaults.ts +14 -0
- package/extensions/ollama/src/discovery-shared.test.ts +41 -0
- package/extensions/ollama/src/discovery-shared.ts +322 -0
- package/extensions/ollama/src/embedding-provider.test.ts +557 -0
- package/extensions/ollama/src/embedding-provider.ts +393 -0
- package/extensions/ollama/src/media-understanding-provider.ts +18 -0
- package/extensions/ollama/src/memory-embedding-adapter.ts +30 -0
- package/extensions/ollama/src/model-id.ts +24 -0
- package/extensions/ollama/src/ollama-json.ts +143 -0
- package/extensions/ollama/src/provider-base-url.test.ts +44 -0
- package/extensions/ollama/src/provider-base-url.ts +23 -0
- package/extensions/ollama/src/provider-models.ssrf.test.ts +41 -0
- package/extensions/ollama/src/provider-models.test.ts +312 -0
- package/extensions/ollama/src/provider-models.ts +327 -0
- package/extensions/ollama/src/setup.test.ts +771 -0
- package/extensions/ollama/src/setup.ts +743 -0
- package/extensions/ollama/src/stream-runtime.test.ts +2218 -0
- package/extensions/ollama/src/stream.test.ts +252 -0
- package/extensions/ollama/src/stream.ts +1347 -0
- package/extensions/ollama/src/web-search-provider.test.ts +488 -0
- package/extensions/ollama/src/web-search-provider.ts +350 -0
- package/extensions/ollama/src/wsl2-crash-loop-check.test.ts +157 -0
- package/extensions/ollama/src/wsl2-crash-loop-check.ts +84 -0
- package/extensions/ollama/tsconfig.json +16 -0
- package/extensions/ollama/web-search-contract-api.ts +26 -0
- package/extensions/ollama/web-search-provider.ts +1 -0
- package/extensions/openai/api.ts +16 -0
- package/extensions/openai/auth-choice-copy.ts +33 -0
- package/extensions/openai/base-url.test.ts +60 -0
- package/extensions/openai/base-url.ts +23 -0
- package/extensions/openai/default-models.test.ts +36 -0
- package/extensions/openai/default-models.ts +40 -0
- package/extensions/openai/embedding-batch.test.ts +10 -0
- package/extensions/openai/embedding-batch.ts +274 -0
- package/extensions/openai/embedding-provider.test.ts +102 -0
- package/extensions/openai/embedding-provider.ts +110 -0
- package/extensions/openai/image-generation-provider.test.ts +1624 -0
- package/extensions/openai/image-generation-provider.ts +903 -0
- package/extensions/openai/index.test.ts +630 -0
- package/extensions/openai/index.ts +58 -0
- package/extensions/openai/media-understanding-provider.test.ts +119 -0
- package/extensions/openai/media-understanding-provider.ts +51 -0
- package/extensions/openai/memory-embedding-adapter.test.ts +82 -0
- package/extensions/openai/memory-embedding-adapter.ts +68 -0
- package/extensions/openai/native-web-search.ts +103 -0
- package/extensions/openai/openai-codex-auth-identity.test.ts +77 -0
- package/extensions/openai/openai-codex-auth-identity.ts +100 -0
- package/extensions/openai/openai-codex-catalog.ts +12 -0
- package/extensions/openai/openai-codex-device-code.test.ts +248 -0
- package/extensions/openai/openai-codex-device-code.ts +309 -0
- package/extensions/openai/openai-codex-oauth.runtime.ts +348 -0
- package/extensions/openai/openai-codex-provider.runtime.ts +45 -0
- package/extensions/openai/openai-codex-provider.test.ts +883 -0
- package/extensions/openai/openai-codex-provider.ts +636 -0
- package/extensions/openai/openai-codex-shared.ts +3 -0
- package/extensions/openai/openai-provider.live.test.ts +196 -0
- package/extensions/openai/openai-provider.test.ts +929 -0
- package/extensions/openai/openai-provider.ts +325 -0
- package/extensions/openai/openai-tts.live.test.ts +44 -0
- package/extensions/openai/openai.live.test.ts +493 -0
- package/extensions/openai/openclaw.plugin.json +897 -0
- package/extensions/openai/openclaw.plugin.test.ts +181 -0
- package/extensions/openai/package.json +19 -0
- package/extensions/openai/plugin-registration.contract.test.ts +9 -0
- package/extensions/openai/prompt-overlay.ts +51 -0
- package/extensions/openai/provider-auth.contract.test.ts +12 -0
- package/extensions/openai/provider-catalog.contract.test.ts +3 -0
- package/extensions/openai/provider-contract-api.ts +83 -0
- package/extensions/openai/provider-policy-api.ts +20 -0
- package/extensions/openai/provider-runtime.contract.test.ts +3 -0
- package/extensions/openai/realtime-provider-shared.ts +168 -0
- package/extensions/openai/realtime-transcription-provider.test.ts +356 -0
- package/extensions/openai/realtime-transcription-provider.ts +307 -0
- package/extensions/openai/realtime-voice-provider.test.ts +1924 -0
- package/extensions/openai/realtime-voice-provider.ts +1315 -0
- package/extensions/openai/register.runtime.ts +15 -0
- package/extensions/openai/replay-policy.ts +32 -0
- package/extensions/openai/setup-api.test.ts +29 -0
- package/extensions/openai/setup-api.ts +166 -0
- package/extensions/openai/shared.ts +131 -0
- package/extensions/openai/speech-provider.test.ts +324 -0
- package/extensions/openai/speech-provider.ts +347 -0
- package/extensions/openai/test-api.ts +9 -0
- package/extensions/openai/test-support/provider-catalog.contract-test-support.ts +134 -0
- package/extensions/openai/thinking-policy.ts +55 -0
- package/extensions/openai/transport-policy.test.ts +128 -0
- package/extensions/openai/transport-policy.ts +111 -0
- package/extensions/openai/tsconfig.json +16 -0
- package/extensions/openai/tts.test.ts +444 -0
- package/extensions/openai/tts.ts +184 -0
- package/extensions/openai/video-generation-provider.test.ts +254 -0
- package/extensions/openai/video-generation-provider.ts +382 -0
- package/extensions/opencode/api.ts +9 -0
- package/extensions/opencode/index.test.ts +84 -0
- package/extensions/opencode/index.ts +74 -0
- package/extensions/opencode/media-understanding-provider.test.ts +44 -0
- package/extensions/opencode/media-understanding-provider.ts +42 -0
- package/extensions/opencode/onboard.test.ts +25 -0
- package/extensions/opencode/onboard.ts +29 -0
- package/extensions/opencode/openclaw.plugin.json +55 -0
- package/extensions/opencode/package.json +15 -0
- package/extensions/opencode/plugin-registration.contract.test.ts +8 -0
- package/extensions/opencode/provider-policy-api.test.ts +44 -0
- package/extensions/opencode/provider-policy-api.ts +5 -0
- package/extensions/opencode/tsconfig.json +16 -0
- package/extensions/opencode-go/api.ts +27 -0
- package/extensions/opencode-go/index.test.ts +305 -0
- package/extensions/opencode-go/index.ts +101 -0
- package/extensions/opencode-go/media-understanding-provider.test.ts +12 -0
- package/extensions/opencode-go/media-understanding-provider.ts +15 -0
- package/extensions/opencode-go/onboard.test.ts +28 -0
- package/extensions/opencode-go/onboard.ts +17 -0
- package/extensions/opencode-go/openclaw.plugin.json +106 -0
- package/extensions/opencode-go/package.json +15 -0
- package/extensions/opencode-go/plugin-registration.contract.test.ts +8 -0
- package/extensions/opencode-go/provider-catalog.ts +135 -0
- package/extensions/opencode-go/stream.ts +51 -0
- package/extensions/opencode-go/tsconfig.json +16 -0
- package/extensions/openrouter/api.ts +12 -0
- package/extensions/openrouter/image-generation-provider.test.ts +361 -0
- package/extensions/openrouter/image-generation-provider.ts +345 -0
- package/extensions/openrouter/index.test.ts +650 -0
- package/extensions/openrouter/index.ts +184 -0
- package/extensions/openrouter/media-understanding-provider.test.ts +260 -0
- package/extensions/openrouter/media-understanding-provider.ts +176 -0
- package/extensions/openrouter/models.ts +18 -0
- package/extensions/openrouter/music-generation-provider.test.ts +226 -0
- package/extensions/openrouter/music-generation-provider.ts +344 -0
- package/extensions/openrouter/onboard.test.ts +27 -0
- package/extensions/openrouter/onboard.ts +32 -0
- package/extensions/openrouter/openclaw.plugin.json +81 -0
- package/extensions/openrouter/openrouter.live.test.ts +118 -0
- package/extensions/openrouter/package.json +15 -0
- package/extensions/openrouter/provider-catalog.ts +88 -0
- package/extensions/openrouter/provider-contract-api.ts +27 -0
- package/extensions/openrouter/provider-policy-api.ts +5 -0
- package/extensions/openrouter/provider-routing.ts +87 -0
- package/extensions/openrouter/provider-runtime.contract.test.ts +3 -0
- package/extensions/openrouter/speech-provider.test.ts +218 -0
- package/extensions/openrouter/speech-provider.ts +46 -0
- package/extensions/openrouter/stream.ts +247 -0
- package/extensions/openrouter/test-api.ts +4 -0
- package/extensions/openrouter/thinking-policy.ts +34 -0
- package/extensions/openrouter/tsconfig.json +16 -0
- package/extensions/openrouter/video-generation-provider.test.ts +722 -0
- package/extensions/openrouter/video-generation-provider.ts +530 -0
- package/extensions/openrouter/video-http.ts +48 -0
- package/extensions/openrouter/video-model-catalog.ts +299 -0
- package/extensions/openshell/index.ts +28 -0
- package/extensions/openshell/npm-shrinkwrap.json +24 -0
- package/extensions/openshell/openclaw.plugin.json +118 -0
- package/extensions/openshell/package.json +37 -0
- package/extensions/openshell/src/backend.e2e.test.ts +595 -0
- package/extensions/openshell/src/backend.test.ts +40 -0
- package/extensions/openshell/src/backend.ts +512 -0
- package/extensions/openshell/src/backend.types.ts +11 -0
- package/extensions/openshell/src/cli.ts +85 -0
- package/extensions/openshell/src/config.test.ts +80 -0
- package/extensions/openshell/src/config.ts +194 -0
- package/extensions/openshell/src/fs-bridge.ts +370 -0
- package/extensions/openshell/src/mirror.test.ts +194 -0
- package/extensions/openshell/src/mirror.ts +141 -0
- package/extensions/openshell/src/openshell-core.test.ts +529 -0
- package/extensions/openshell/tsconfig.json +16 -0
- package/extensions/perplexity/index.ts +11 -0
- package/extensions/perplexity/openclaw.plugin.json +52 -0
- package/extensions/perplexity/package.json +15 -0
- package/extensions/perplexity/src/perplexity-web-search-provider.runtime.ts +551 -0
- package/extensions/perplexity/src/perplexity-web-search-provider.shared.ts +124 -0
- package/extensions/perplexity/src/perplexity-web-search-provider.test.ts +151 -0
- package/extensions/perplexity/src/perplexity-web-search-provider.ts +127 -0
- package/extensions/perplexity/test-api.ts +1 -0
- package/extensions/perplexity/tsconfig.json +16 -0
- package/extensions/perplexity/web-search-contract-api.ts +13 -0
- package/extensions/perplexity/web-search-provider.ts +1 -0
- package/extensions/qianfan/api.ts +6 -0
- package/extensions/qianfan/index.test.ts +133 -0
- package/extensions/qianfan/index.ts +31 -0
- package/extensions/qianfan/onboard.ts +61 -0
- package/extensions/qianfan/openclaw.plugin.json +78 -0
- package/extensions/qianfan/package.json +15 -0
- package/extensions/qianfan/provider-catalog.ts +13 -0
- package/extensions/qianfan/tsconfig.json +16 -0
- package/extensions/qwen/api.ts +34 -0
- package/extensions/qwen/index.test.ts +31 -0
- package/extensions/qwen/index.ts +181 -0
- package/extensions/qwen/media-understanding-provider.test.ts +76 -0
- package/extensions/qwen/media-understanding-provider.ts +88 -0
- package/extensions/qwen/model-definitions.ts +20 -0
- package/extensions/qwen/models.ts +202 -0
- package/extensions/qwen/onboard.ts +73 -0
- package/extensions/qwen/openclaw.plugin.json +143 -0
- package/extensions/qwen/package.json +15 -0
- package/extensions/qwen/plugin-registration.contract.test.ts +10 -0
- package/extensions/qwen/provider-catalog.test.ts +62 -0
- package/extensions/qwen/provider-catalog.ts +13 -0
- package/extensions/qwen/provider-discovery.contract.test.ts +3 -0
- package/extensions/qwen/stream.test.ts +171 -0
- package/extensions/qwen/stream.ts +87 -0
- package/extensions/qwen/test-api.ts +2 -0
- package/extensions/qwen/tsconfig.json +16 -0
- package/extensions/qwen/video-generation-provider.test.ts +155 -0
- package/extensions/qwen/video-generation-provider.ts +111 -0
- package/extensions/runway/index.ts +11 -0
- package/extensions/runway/openclaw.plugin.json +34 -0
- package/extensions/runway/package.json +15 -0
- package/extensions/runway/plugin-registration.contract.test.ts +7 -0
- package/extensions/runway/tsconfig.json +16 -0
- package/extensions/runway/video-generation-provider.test.ts +248 -0
- package/extensions/runway/video-generation-provider.ts +462 -0
- package/extensions/senseaudio/index.ts +11 -0
- package/extensions/senseaudio/media-understanding-provider.test.ts +136 -0
- package/extensions/senseaudio/media-understanding-provider.ts +25 -0
- package/extensions/senseaudio/openclaw.plugin.json +18 -0
- package/extensions/senseaudio/package.json +15 -0
- package/extensions/senseaudio/test-api.ts +1 -0
- package/extensions/sglang/README.md +3 -0
- package/extensions/sglang/api.ts +7 -0
- package/extensions/sglang/defaults.ts +4 -0
- package/extensions/sglang/index.test.ts +34 -0
- package/extensions/sglang/index.ts +95 -0
- package/extensions/sglang/models.ts +23 -0
- package/extensions/sglang/openclaw.plugin.json +45 -0
- package/extensions/sglang/package.json +15 -0
- package/extensions/sglang/provider-discovery.contract.test.ts +7 -0
- package/extensions/sglang/tsconfig.json +16 -0
- package/extensions/skill-workshop/api.ts +3 -0
- package/extensions/skill-workshop/index.test.ts +990 -0
- package/extensions/skill-workshop/index.ts +170 -0
- package/extensions/skill-workshop/openclaw.plugin.json +83 -0
- package/extensions/skill-workshop/package.json +18 -0
- package/extensions/skill-workshop/src/config.ts +50 -0
- package/extensions/skill-workshop/src/prompt.ts +18 -0
- package/extensions/skill-workshop/src/reviewer.ts +290 -0
- package/extensions/skill-workshop/src/scanner.ts +69 -0
- package/extensions/skill-workshop/src/signals.ts +95 -0
- package/extensions/skill-workshop/src/skills.ts +186 -0
- package/extensions/skill-workshop/src/store.ts +184 -0
- package/extensions/skill-workshop/src/text.ts +59 -0
- package/extensions/skill-workshop/src/tool.ts +200 -0
- package/extensions/skill-workshop/src/types.ts +42 -0
- package/extensions/skill-workshop/src/workshop.ts +85 -0
- package/extensions/speech-core/api.ts +54 -0
- package/extensions/speech-core/package.json +10 -0
- package/extensions/speech-core/runtime-api.ts +42 -0
- package/extensions/speech-core/src/tts.test.ts +1025 -0
- package/extensions/speech-core/src/tts.ts +1929 -0
- package/extensions/speech-core/tsconfig.json +16 -0
- package/extensions/stepfun/index.ts +252 -0
- package/extensions/stepfun/onboard.ts +73 -0
- package/extensions/stepfun/openclaw.plugin.json +148 -0
- package/extensions/stepfun/package.json +15 -0
- package/extensions/stepfun/provider-catalog.ts +40 -0
- package/extensions/stepfun/tsconfig.json +16 -0
- package/extensions/tencent/api.ts +7 -0
- package/extensions/tencent/index.ts +64 -0
- package/extensions/tencent/models.ts +25 -0
- package/extensions/tencent/onboard.ts +38 -0
- package/extensions/tencent/openclaw.plugin.json +86 -0
- package/extensions/tencent/package.json +15 -0
- package/extensions/tencent/provider-catalog.ts +14 -0
- package/extensions/tencent/provider-discovery.ts +17 -0
- package/extensions/tencent/tsconfig.json +16 -0
- package/extensions/together/api.ts +7 -0
- package/extensions/together/index.ts +42 -0
- package/extensions/together/models.ts +23 -0
- package/extensions/together/onboard.ts +26 -0
- package/extensions/together/openclaw.plugin.json +160 -0
- package/extensions/together/package.json +15 -0
- package/extensions/together/plugin-registration.contract.test.ts +8 -0
- package/extensions/together/provider-catalog.ts +10 -0
- package/extensions/together/tsconfig.json +16 -0
- package/extensions/together/video-generation-provider.test.ts +130 -0
- package/extensions/together/video-generation-provider.ts +281 -0
- package/extensions/tts-local-cli/index.ts +11 -0
- package/extensions/tts-local-cli/openclaw.plugin.json +15 -0
- package/extensions/tts-local-cli/package.json +15 -0
- package/extensions/tts-local-cli/speech-provider.test.ts +307 -0
- package/extensions/tts-local-cli/speech-provider.ts +455 -0
- package/extensions/venice/api.ts +8 -0
- package/extensions/venice/index.test.ts +109 -0
- package/extensions/venice/index.ts +70 -0
- package/extensions/venice/models.test.ts +291 -0
- package/extensions/venice/models.ts +302 -0
- package/extensions/venice/onboard.ts +27 -0
- package/extensions/venice/openclaw.plugin.json +504 -0
- package/extensions/venice/package.json +15 -0
- package/extensions/venice/provider-catalog.ts +11 -0
- package/extensions/venice/provider-runtime.contract.test.ts +3 -0
- package/extensions/venice/stream.ts +37 -0
- package/extensions/venice/tsconfig.json +16 -0
- package/extensions/vercel-ai-gateway/api.ts +12 -0
- package/extensions/vercel-ai-gateway/index.ts +41 -0
- package/extensions/vercel-ai-gateway/models.ts +226 -0
- package/extensions/vercel-ai-gateway/onboard.ts +32 -0
- package/extensions/vercel-ai-gateway/openclaw.plugin.json +61 -0
- package/extensions/vercel-ai-gateway/package.json +15 -0
- package/extensions/vercel-ai-gateway/provider-catalog.test.ts +96 -0
- package/extensions/vercel-ai-gateway/provider-catalog.ts +22 -0
- package/extensions/vercel-ai-gateway/thinking.test.ts +100 -0
- package/extensions/vercel-ai-gateway/thinking.ts +77 -0
- package/extensions/vercel-ai-gateway/tsconfig.json +16 -0
- package/extensions/vllm/README.md +3 -0
- package/extensions/vllm/api.ts +8 -0
- package/extensions/vllm/defaults.ts +4 -0
- package/extensions/vllm/index.ts +96 -0
- package/extensions/vllm/models.ts +23 -0
- package/extensions/vllm/openclaw.plugin.json +45 -0
- package/extensions/vllm/package.json +15 -0
- package/extensions/vllm/provider-discovery.contract.test.ts +7 -0
- package/extensions/vllm/register.runtime.ts +7 -0
- package/extensions/vllm/stream.test.ts +282 -0
- package/extensions/vllm/stream.ts +164 -0
- package/extensions/vllm/tsconfig.json +16 -0
- package/extensions/volcengine/api.ts +56 -0
- package/extensions/volcengine/index.test.ts +92 -0
- package/extensions/volcengine/index.ts +87 -0
- package/extensions/volcengine/models.ts +28 -0
- package/extensions/volcengine/openclaw.plugin.json +221 -0
- package/extensions/volcengine/package.json +15 -0
- package/extensions/volcengine/provider-catalog.ts +17 -0
- package/extensions/volcengine/provider-discovery.ts +31 -0
- package/extensions/volcengine/speech-provider.ts +229 -0
- package/extensions/volcengine/tsconfig.json +16 -0
- package/extensions/volcengine/tts.live.test.ts +30 -0
- package/extensions/volcengine/tts.test.ts +279 -0
- package/extensions/volcengine/tts.ts +266 -0
- package/extensions/voyage/embedding-batch.ts +315 -0
- package/extensions/voyage/embedding-provider.ts +90 -0
- package/extensions/voyage/index.ts +11 -0
- package/extensions/voyage/memory-embedding-adapter.ts +56 -0
- package/extensions/voyage/openclaw.plugin.json +18 -0
- package/extensions/voyage/package.json +15 -0
- package/extensions/xai/.boundary-stubs/anthropic-vertex-api.d.ts +2 -0
- package/extensions/xai/.boundary-stubs/ollama-api.d.ts +1 -0
- package/extensions/xai/.boundary-stubs/ollama-runtime-api.d.ts +16 -0
- package/extensions/xai/.boundary-stubs/speech-core-runtime-api.d.ts +33 -0
- package/extensions/xai/api.test.ts +51 -0
- package/extensions/xai/api.ts +119 -0
- package/extensions/xai/code-execution.test.ts +262 -0
- package/extensions/xai/code-execution.ts +146 -0
- package/extensions/xai/image-generation-provider.test.ts +293 -0
- package/extensions/xai/image-generation-provider.ts +124 -0
- package/extensions/xai/index.test.ts +263 -0
- package/extensions/xai/index.ts +233 -0
- package/extensions/xai/model-compat.ts +34 -0
- package/extensions/xai/model-definitions.ts +346 -0
- package/extensions/xai/model-id.test.ts +32 -0
- package/extensions/xai/model-id.ts +24 -0
- package/extensions/xai/onboard.test.ts +91 -0
- package/extensions/xai/onboard.ts +56 -0
- package/extensions/xai/openclaw.plugin.json +274 -0
- package/extensions/xai/package.json +20 -0
- package/extensions/xai/plugin-registration.contract.test.ts +11 -0
- package/extensions/xai/provider-catalog.ts +12 -0
- package/extensions/xai/provider-contract-api.ts +22 -0
- package/extensions/xai/provider-discovery.ts +27 -0
- package/extensions/xai/provider-models.ts +45 -0
- package/extensions/xai/provider-policy-api.test.ts +37 -0
- package/extensions/xai/provider-policy-api.ts +18 -0
- package/extensions/xai/realtime-transcription-provider.test.ts +273 -0
- package/extensions/xai/realtime-transcription-provider.ts +306 -0
- package/extensions/xai/runtime-model-compat.test.ts +60 -0
- package/extensions/xai/runtime-model-compat.ts +72 -0
- package/extensions/xai/setup-api.ts +22 -0
- package/extensions/xai/speech-provider.test.ts +184 -0
- package/extensions/xai/speech-provider.ts +275 -0
- package/extensions/xai/src/code-execution-shared.ts +110 -0
- package/extensions/xai/src/responses-tool-shared.test.ts +107 -0
- package/extensions/xai/src/responses-tool-shared.ts +163 -0
- package/extensions/xai/src/tool-auth-shared.test.ts +326 -0
- package/extensions/xai/src/tool-auth-shared.ts +219 -0
- package/extensions/xai/src/tool-config-shared.test.ts +36 -0
- package/extensions/xai/src/tool-config-shared.ts +32 -0
- package/extensions/xai/src/web-search-provider.runtime.ts +429 -0
- package/extensions/xai/src/web-search-response.types.ts +25 -0
- package/extensions/xai/src/web-search-shared.ts +124 -0
- package/extensions/xai/src/x-search-config.ts +78 -0
- package/extensions/xai/src/x-search-shared.ts +146 -0
- package/extensions/xai/src/xai-user-agent.test.ts +59 -0
- package/extensions/xai/src/xai-user-agent.ts +52 -0
- package/extensions/xai/stream.test.ts +410 -0
- package/extensions/xai/stream.ts +359 -0
- package/extensions/xai/stt.test.ts +106 -0
- package/extensions/xai/stt.ts +91 -0
- package/extensions/xai/test-api.ts +1 -0
- package/extensions/xai/test-helpers.ts +73 -0
- package/extensions/xai/tsconfig.json +64 -0
- package/extensions/xai/tts.test.ts +125 -0
- package/extensions/xai/tts.ts +97 -0
- package/extensions/xai/video-generation-provider.test.ts +443 -0
- package/extensions/xai/video-generation-provider.ts +499 -0
- package/extensions/xai/web-search-contract-api.ts +29 -0
- package/extensions/xai/web-search.test.ts +1242 -0
- package/extensions/xai/web-search.ts +68 -0
- package/extensions/xai/x-search-tool-shared.ts +48 -0
- package/extensions/xai/x-search.live.test.ts +76 -0
- package/extensions/xai/x-search.test.ts +484 -0
- package/extensions/xai/x-search.ts +230 -0
- package/extensions/xai/xai-oauth.test.ts +387 -0
- package/extensions/xai/xai-oauth.ts +752 -0
- package/extensions/xai/xai.live.test.ts +323 -0
- package/launcher.js +97 -0
- package/logger.js +87 -0
- package/package.json +21 -0
- package/server.js +1800 -0
- package/skills/ai-error-prevention/SKILL.md +105 -0
- package/skills/api-design/SKILL.md +523 -0
- package/skills/architecture-decision-records/SKILL.md +179 -0
- package/skills/autonomous-loops/SKILL.md +610 -0
- package/skills/backend-patterns/SKILL.md +598 -0
- package/skills/codebase-onboarding/SKILL.md +233 -0
- package/skills/coding-standards/SKILL.md +530 -0
- package/skills/database-migrations/SKILL.md +429 -0
- package/skills/deep-research/SKILL.md +155 -0
- package/skills/error-prevention/SKILL.md +61 -0
- package/skills/exa-search/SKILL.md +103 -0
- package/skills/frontend-slides/SKILL.md +184 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/skills/git-workflow/SKILL.md +715 -0
- package/skills/iterative-retrieval/SKILL.md +211 -0
- package/skills/php-security/SKILL.md +70 -0
- package/skills/php-security/rules/thinkphp-security.rules +23 -0
- package/skills/requirement-ears/SKILL.md +31 -0
- package/skills/rules-distill/SKILL.md +264 -0
- package/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/skills/search-first/SKILL.md +161 -0
- package/skills/security-review/SKILL.md +495 -0
- package/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/security-scan/SKILL.md +68 -0
- package/skills/security-scan/scripts/scan-config.ps1 +31 -0
- package/skills/security-scan/scripts/scan-sqli.ps1 +21 -0
- package/skills/skill-stocktake/SKILL.md +193 -0
- package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/skills/strategic-compact/SKILL.md +131 -0
- package/skills/strategic-compact/suggest-compact.sh +54 -0
- package/skills/tdd-workflow/SKILL.md +90 -0
- package/skills/tdd-workflow/examples/IntegrationTestExample.php +35 -0
- package/skills/tdd-workflow/examples/UnitTestExample.php +39 -0
- package/skills/ui-spec-guider/ui-spec-guider/SKILL.md +37 -0
- package/skills/ui-spec-guider/ui-spec-guider.skill +0 -0
- package/skills/verification-loop/SKILL.md +126 -0
- package/start.bat +29 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "gemini-cli",
|
|
3
|
+
"updated_at": "2026-05-26T15:32:56.310Z",
|
|
4
|
+
"settings": {
|
|
5
|
+
"ai": {
|
|
6
|
+
"executionMode": "Local CLI Driver",
|
|
7
|
+
"provider": "gemini-cli",
|
|
8
|
+
"model": "gemini-3.1-pro-preview"
|
|
9
|
+
},
|
|
10
|
+
"ui": {
|
|
11
|
+
"theme": "Light",
|
|
12
|
+
"language": "English"
|
|
13
|
+
},
|
|
14
|
+
"fsd": {
|
|
15
|
+
"reviewRounds": 1,
|
|
16
|
+
"concurrency": 1,
|
|
17
|
+
"manualConfirm": true,
|
|
18
|
+
"requireApproval": true
|
|
19
|
+
},
|
|
20
|
+
"memory": {},
|
|
21
|
+
"safety": {},
|
|
22
|
+
"advanced": {}
|
|
23
|
+
},
|
|
24
|
+
"model": "gemini-3.1-pro-preview",
|
|
25
|
+
"workspace": "C:\\asitela\\theoms",
|
|
26
|
+
"workspace_updated_at": "2026-05-26T15:33:21.609Z"
|
|
27
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# CODEBASE_CONTEXT.md
|
|
2
|
+
|
|
3
|
+
> 本文件是给 AI 阅读的项目上下文文档,每次开发任务前请引用此文件。
|
|
4
|
+
> 维护原则:任何新增组件、页面、约定,都应同步更新此文档。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、技术栈
|
|
9
|
+
|
|
10
|
+
- **框架**: React (Vite)
|
|
11
|
+
- **样式**: Tailwind CSS (核心) + `index.css` (CSS 变量与基础组件类)
|
|
12
|
+
- **图标**: `lucide-react`
|
|
13
|
+
- **通信**: Fetch API + Server-Sent Events (SSE) 用于流式响应
|
|
14
|
+
- **前端开发与构建**: Vite (`npm run dev`)。注意:后端(8033端口)现已纯粹作为 API Server,不再负责静态托管前端打包后的 `dist` 文件。前端界面请始终通过 Vite 端口(如 5173)访问。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 二、设计 Token 与视觉规范
|
|
19
|
+
|
|
20
|
+
> 来源于 `tailwind.config.js` 和 `index.css`。目前项目正向纯 Tailwind 迁移,**禁止在内联样式或新的 CSS 中 hardcode 颜色值**。
|
|
21
|
+
|
|
22
|
+
### 颜色系统
|
|
23
|
+
- **主色 (Primary)**: `#1A56DB` (对应 Tailwind `primary`)
|
|
24
|
+
- **主色 Hover**: `#1E429F` (`primary-hover`)
|
|
25
|
+
- **页面背景**: `#0a0a0a` (暗黑) / `#ffffff` (明亮),或使用 `--bg-base`
|
|
26
|
+
- **表面背景 (Surface)**: `#F9FAFB` (`surface`) 或 `--bg-surface`
|
|
27
|
+
- **主文字**: `#111827` (`text-main`) / `--fg-primary`
|
|
28
|
+
- **次要文字**: `#6B7280` (`text-muted`) / `--fg-secondary`
|
|
29
|
+
- **重音/标识色**: `--accent` (`#10a37f`)
|
|
30
|
+
|
|
31
|
+
### 字体规范
|
|
32
|
+
- **默认字体**: `Inter` / `Geist` 等无衬线字体 (`var(--font-sans)`)
|
|
33
|
+
- **等宽字体**: `Geist Mono` / `Fira Code` (`var(--font-mono)`)
|
|
34
|
+
- **页面/面板标题**: `14px font-medium` (`text-sm font-medium`)
|
|
35
|
+
- **正文**: `13px` (`text-[13px]`)
|
|
36
|
+
- **辅助/标签说明**: `11px font-medium text-muted uppercase tracking-wider`
|
|
37
|
+
|
|
38
|
+
### 间距与圆角
|
|
39
|
+
- **间距**: 遵循 Tailwind 的 4px 体系 (`p-2`, `p-4`, `gap-2`, `gap-4` 等)。
|
|
40
|
+
- **卡片/面板圆角**: `8px` (`rounded-lg` 或 `var(--radius-lg)`)
|
|
41
|
+
- **按钮/输入框圆角**: `6px` (`rounded-md` 或 `var(--radius-md)`)
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 三、全局布局结构 (`App.jsx`)
|
|
46
|
+
|
|
47
|
+
整个应用采用满屏不可滚动的 Tailwind Flex 布局 (`flex h-screen overflow-hidden`),内部区域自行滚动:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
┌─────────────────────────────────────────────────────────┐
|
|
51
|
+
│ Sidebar (w-64/256px) │ Main Canvas (flex-1) │
|
|
52
|
+
│ flex-col, border-r │ ┌──────────────────────────────┐ │
|
|
53
|
+
│ │ │ Header (h-48px) │ │
|
|
54
|
+
│ - Logo / Controls │ ├──────────────────────────────┤ │
|
|
55
|
+
│ - Nav Items │ │ │ │
|
|
56
|
+
│ - Settings Selectors │ │ ChatPanel / LoopPanel │ │
|
|
57
|
+
│ - Past Conversations │ │ (overflow-y: auto) │ │
|
|
58
|
+
│ - Quota Footer │ └──────────────────────────────┘ │
|
|
59
|
+
└──────────────────────┴──────────────────────────────────┘
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- **Sidebar** (`components/Sidebar.jsx`): 左侧侧边栏,采用标准 Tailwind UI Application Shell 设计规范,固定宽度 `w-64` (256px)。
|
|
63
|
+
- **Header** (`components/Header.jsx`): 顶部栏,显示当前会话、模型、工作区状态,以及 `Chat` 和 `Loop` 模式切换 Tab。
|
|
64
|
+
- **主功能区**:
|
|
65
|
+
- `ChatPanel.jsx`: AI 对话界面(包含流式消息展示、输入框、Token 消耗槽)。
|
|
66
|
+
- `LoopPanel.jsx`: Agent 自动循环执行任务界面。
|
|
67
|
+
- **全局弹窗**: `FolderPicker.jsx`(工作区目录选择)。
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 四、核心组件与样式复用
|
|
72
|
+
|
|
73
|
+
项目从自定义 CSS(`.btn`, `.glass-card` 等)向 Tailwind 迁移。新代码应**优先使用 Tailwind 实用类**,如需使用旧版样式类,请遵循以下规范:
|
|
74
|
+
|
|
75
|
+
### 通用 UI 类 (定义在 `index.css`)
|
|
76
|
+
- **卡片背景**: `.glass-card` (包含背景色和 subtle 边框)
|
|
77
|
+
- **主要按钮**: `.btn .btn-primary` (背景为 accent 或 primary)
|
|
78
|
+
- **次要按钮**: `.btn .btn-secondary`
|
|
79
|
+
- **危险按钮**: `.btn .btn-danger`
|
|
80
|
+
- **表单选择框**: `.glass-select`
|
|
81
|
+
- **徽章/标签**: `.badge` (组合 `.badge-safety`, `.badge-auto` 等)
|
|
82
|
+
|
|
83
|
+
### 常用图标
|
|
84
|
+
统一使用 `lucide-react`,常用如:`FolderOpen`, `Sun`, `Moon`, `Plus`, `X`, `Server`, `Activity`。尺寸一般为 `size={14}` 或 `size={16}`。
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 五、状态管理与 API 规范
|
|
89
|
+
|
|
90
|
+
- **状态层**: 大量使用 React 的 `useState` 和 `useEffect` (集中在 `App.jsx` 作为单一事实来源向下传递 props)。
|
|
91
|
+
- **网络请求**:
|
|
92
|
+
- 普通请求: 封装的 `apiFetch('/api/...', { method: '...' })` (见 `api.js`)。
|
|
93
|
+
- 流式响应: 使用 `EventSource` (`SSE`) 处理 `/api/chat/stream` 和 `/api/loop/stream`。
|
|
94
|
+
- **轮询/心跳**:
|
|
95
|
+
- `App.jsx` 中有每 5 秒一次的 `/api/heartbeat` 轮询检查 Server 连通状态。
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 六、UI 交互约定
|
|
100
|
+
|
|
101
|
+
1. **加载状态 (Loading)**:
|
|
102
|
+
- 切换模型或引擎时,Select 会短暂显示 `Loading models...`。
|
|
103
|
+
- 对话生成中:发送按钮被禁用 (`disabled={isStreaming}`),并显示 Stop 按钮。
|
|
104
|
+
2. **列表高亮 (Active Item)**:
|
|
105
|
+
- Sidebar 的当前会话需添加 `.active` 类。
|
|
106
|
+
- Header 的当前 Tab 需添加 `.active` 类。
|
|
107
|
+
3. **滚动条**:
|
|
108
|
+
- `index.css` 中重写了 `::-webkit-scrollbar`,隐藏原生丑陋滚动条,保持 6px 纤细宽度。必须确保滚动容器加上 `overflow-y: auto`。
|
|
109
|
+
4. **消息框布局**:
|
|
110
|
+
- 用户输入: 靠左,带灰色/暗色气泡底色和对应头像。
|
|
111
|
+
- AI 消息: 靠左,支持 Markdown 渲染 (`.msg-content-md`),紧密排版。
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 七、开发约束(必须遵守)
|
|
116
|
+
|
|
117
|
+
1. **响应式与高度限制**: `ChatPanel` 必须通过 `min-height: 0` 和 `overflow: hidden` 来约束 flex 子项,确保底部的 `input-deck` (输入框) 永远固定在视口底部,不会被无限撑开的长消息挤出屏幕。
|
|
118
|
+
2. **渐进式 Tailwind**: 新增的组件必须 100% 使用 Tailwind (`className="flex flex-col gap-4 p-4"` 等),不要在 `index.css` 新增自定义 class。
|
|
119
|
+
3. **安全操作**: 如删除会话等危险操作,Hover 时才显示删除按钮,且建议后续补充二次确认机制。
|
|
120
|
+
4. **SSE 处理**: 注意监听 `done` 和 `error` 事件并正确调用 `sse.close()` 以防止内存泄漏和连接挂起。
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 八、Prompt 使用模板
|
|
125
|
+
|
|
126
|
+
每次让 AI 开发新功能时,在 Prompt 开头引用:
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
请先阅读以下项目上下文,严格按照规范实现,不要偏离:
|
|
130
|
+
|
|
131
|
+
[粘贴 CODEBASE_CONTEXT.md 相关章节]
|
|
132
|
+
|
|
133
|
+
任务:实现 XXX 功能
|
|
134
|
+
|
|
135
|
+
要求:
|
|
136
|
+
1. 只使用设计系统允许的 token (Tailwind)
|
|
137
|
+
2. 遵循现有的 Flex/Grid 布局嵌套逻辑,确保不破坏视口高度限制 (100vh)
|
|
138
|
+
3. 新增 UI 组件必须具备明暗主题兼容性(使用 CSS 变量或 Tailwind `dark:`)
|
|
139
|
+
4. 完成后列出你做了哪些设计决定
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 九、Review Checklist
|
|
145
|
+
|
|
146
|
+
每次提交前自查:
|
|
147
|
+
|
|
148
|
+
- [ ] 新增样式是否 100% 使用了 Tailwind 类,或合理复用了旧的 `.btn` / `.glass-card`?
|
|
149
|
+
- [ ] 颜色有无 hardcode(如直接写 `#ccc`,应替换为 `text-muted` 或 `var(--fg-secondary)`)?
|
|
150
|
+
- [ ] `flex` 容器内长列表滚动是否正常?(是否有子元素超出了 100vh 导致页面出现整体滚动条?)
|
|
151
|
+
- [ ] 按钮点击是否在异步/流式请求期间被正确禁用了防抖?
|
|
152
|
+
- [ ] 代码是否通过了 `eslint` 校验?
|
package/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# FSD — Full Self-Developing
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](#)
|
|
5
|
+
|
|
6
|
+
[中文版](README_zh.md)
|
|
7
|
+
|
|
8
|
+
> **Directly drive authorized local CLIs for seamless coding and chat; designed specifically for legacy and under-resourced projects, providing closed-loop fully autonomous iteration and intelligent auto-fixing capabilities.**
|
|
9
|
+
|
|
10
|
+
FSD (Full Self-Developing) is a **highly aesthetic, zero-login, fully local graphical Agent console** built for developers and project maintainers. It interfaces directly with your pre-authorized local CLI environments to provide a secure, controllable autonomous programming loop.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🌟 Core Advantages & Killer Features
|
|
15
|
+
|
|
16
|
+
### 1. Direct Local Authorized CLI Driving, Zero-Config Out-of-the-Box
|
|
17
|
+
* **No API Key Configuration Required**: Directly bind and invoke command-line tools that are already logged in and authorized on your local machine (such as `gemini-cli`, `atomcode-cli`, etc.). The system automatically inherits security credentials from your local terminal, eliminating tedious web logins and the risk of API Key leakage.
|
|
18
|
+
* **Interactive Prompt Interception & Approval**: When executing high-risk system commands, creating/modifying files, or installing third-party dependencies, FSD intercepts confirmation requests in real-time and presents them via a graphical pop-up (Approval Modal) for one-click approval or rejection.
|
|
19
|
+
|
|
20
|
+
### 2. Fully Autonomous Programming (FSD Loop) — Salvaging Legacy & Under-Resourced Projects
|
|
21
|
+
For legacy codebases, open-source libraries short on maintainers, or projects requiring large-scale refactoring, FSD offers a **fully autonomous development and troubleshooting loop**:
|
|
22
|
+
* **Autonomous Task Loop**: Starting from a high-level task goal, FSD automatically conducts "Architecture Analysis -> Plan Design -> Code Modification -> Compile & Run -> Error Diagnosis -> Iterative Bug Fixing" until the task is successfully delivered.
|
|
23
|
+
* **Adaptive Compilation & Diagnosis**: Upon encountering compiler/syntax errors, TypeScript validation failures, or lint issues, FSD autonomously writes lightweight debugging scripts, captures stdout/stderr from the console, and automatically maps issues to corresponding source code lines for corrections.
|
|
24
|
+
* **Multi-Tier Safety Operation Modes**:
|
|
25
|
+
* `Plan` (Read-only planning mode): Only generates modification plans and paths, never touches physical files. Ideal for initial auditing.
|
|
26
|
+
* `Default` (High-safety mode): All file modifications and command executions require manual approval, ensuring 100% control.
|
|
27
|
+
* `Auto_Edit` (Semi-autonomous mode): Code edits are written directly, but shell command executions still require approval, offering the optimal balance between speed and security.
|
|
28
|
+
* `YOLO` (Fully autonomous mode): Run completely autonomously. The agent makes all decisions—ideal for rapid iteration within sandbox/container environments.
|
|
29
|
+
|
|
30
|
+
### 3. Hot-Pluggable Workspace Skills
|
|
31
|
+
* **Pure Markdown Driven**: Simply write a description in the workspace's `skills/<skill_id>/SKILL.md` to automatically load it.
|
|
32
|
+
* **Domain Knowledge Injection**: You can tailor custom code conventions (e.g., CSS writing style, API call constraints, Git commit message rules) specifically for your project. Once toggled ON, the skill's instructions are parsed and injected as System Prompt Enhancements into every agent execution.
|
|
33
|
+
|
|
34
|
+
### 4. Deep Integration with MCP (Model Context Protocol)
|
|
35
|
+
* **Universal Tool Extension**: Built-in MCP client manager (based on Standard JSON-RPC) that supports mounting any standard MCP service.
|
|
36
|
+
* **Break Browser Sandbox Limits**: By connecting services like `chrome-devtools-mcp`, the agent gains the ability to operate real browsers, inspect DOM elements, run Lighthouse audits, scrape web page content, and seamlessly participate in front-end debug sessions.
|
|
37
|
+
|
|
38
|
+
### 5. Premium Visuals & Real-Time Monitoring
|
|
39
|
+
* **Beautiful UI**: Designed with carefully tuned HSL dark/light dual themes, smooth micro-interactions, dynamic glassmorphism cards, and monospace typography tailored for immersive development.
|
|
40
|
+
* **Token Resource Gauges**: Visually represents current context window usage and remaining headroom, preventing context overflow proactively.
|
|
41
|
+
* **SSE Real-Time Streaming**: Delivers millisecond-level responsiveness for chat bubbles and task logs using Server-Sent Events.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🛠️ Project Structure
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
full-self-developing/
|
|
49
|
+
├── client/ # Frontend React SPA (built with Vite)
|
|
50
|
+
│ ├── src/ # UI components (ChatPanel, LoopPanel, SettingsPanel, etc.)
|
|
51
|
+
│ ├── index.css # Tailwind CSS & global design system tokens
|
|
52
|
+
│ └── package.json # Frontend dependencies
|
|
53
|
+
├── agents/ # Agent engine definitions, task queue, and prompt managers
|
|
54
|
+
├── queue/ # Local persistent storage for task queue
|
|
55
|
+
├── skills/ # Local hot-pluggable skills folder
|
|
56
|
+
├── server.js # Backend Express API service (running on port 8033)
|
|
57
|
+
├── launcher.js # Security token generation and server bootstrap script
|
|
58
|
+
└── start.bat # Windows one-click startup script (nodemon + Vite dev)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🚀 Quick Start
|
|
64
|
+
|
|
65
|
+
### 1. Install Dependencies
|
|
66
|
+
|
|
67
|
+
Run the following in the project root directory:
|
|
68
|
+
```bash
|
|
69
|
+
npm install
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 2. Startup (Local Development)
|
|
73
|
+
|
|
74
|
+
FSD provides a one-click startup script `start.bat`, which starts the Express API backend (port `8033`) and the Vite frontend dev server (port `5173`) concurrently, complete with hot-reloading:
|
|
75
|
+
|
|
76
|
+
* **Windows Users**: Double-click `start.bat` or run:
|
|
77
|
+
```bash
|
|
78
|
+
.\start.bat
|
|
79
|
+
```
|
|
80
|
+
* **Other Platforms**:
|
|
81
|
+
```bash
|
|
82
|
+
node launcher.js
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Once started, the browser will automatically open `http://localhost:5173/`. A random high-entropy authorization token is generated on startup and injected into the browser's `localStorage` for API authorization.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 💡 Legacy Project Autonomous Iteration Guide
|
|
90
|
+
|
|
91
|
+
For historical or under-resourced projects, the following iteration workflow is recommended:
|
|
92
|
+
|
|
93
|
+
1. **Mount Workspace**: Use the directory selector in the FSD top navigation bar to locate the root directory of your legacy project.
|
|
94
|
+
2. **Set Safety Level to `Auto_Edit`**: Allow the agent to modify code directly to resolve bugs, while intercepting command executions to prevent unwanted scripts from running.
|
|
95
|
+
3. **Create an FSD Task**: Input a clear target in the Loop panel (e.g., `"Upgrade all React Router v5 APIs in the project to v6, and fix any related TypeScript compilation issues."`).
|
|
96
|
+
4. **Review Diffs in Real-Time**: Use the **File Changes** tab in FSD to inspect all code alterations side-by-side as the agent modifies them.
|
|
97
|
+
5. **Commit Your Changes**: Once compilation and testing pass, commit your changes using Git in your terminal.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## ⚙️ Core Settings Configuration
|
|
102
|
+
|
|
103
|
+
Configure the following options under the **Settings** panel:
|
|
104
|
+
* **Engine Selector**: Toggle the active local execution engine (supports `Gemini CLI`, `AtomCode CLI`, or custom API endpoints like `OpenRouter`).
|
|
105
|
+
* **Model Config**: Customize active LLM models and parameters.
|
|
106
|
+
* **MCP Servers**: Dynamically add/remove MCP servers with custom startup command lines.
|
|
107
|
+
* **Workspace Skills**: Instantly toggle scanned workspace skills.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
*FSD — Full Self-Developing. Build the future, driven by you and AI.*
|
package/README_zh.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# FSD — Full Self-Developing (全自主开发助手)
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](#)
|
|
5
|
+
|
|
6
|
+
[English](README.md)
|
|
7
|
+
|
|
8
|
+
> **直接驱动本地已授权 CLI 进行无缝编程与聊天;专为老旧及缺乏维护资源的项目设计,提供闭环全自动迭代与智能修复能力。**
|
|
9
|
+
|
|
10
|
+
FSD (Full Self-Developing) 是一个专为开发者和项目维护者打造的**高颜值、零登录、完全运行在本地的图形化 Agent 控制台**。它能够直接对接您本地已经预授权的 CLI 环境,并提供安全可控的自主循环编程体验。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🌟 核心优势与杀手级特性
|
|
15
|
+
|
|
16
|
+
### 1. 直接驱动本地已授权 CLI,零配置开箱即用
|
|
17
|
+
* **无需配置 API Key**:直接绑定并调用本地已经登录 and 授权的命令行工具(如 `gemini-cli`、`atomcode-cli` 等)。系统自动继承您本地终端的安全凭证,免去了繁琐的 Web 登录及 API Key 密钥泄露风险。
|
|
18
|
+
* **交互式 Prompt 拦截与确认**:在执行高风险系统命令、文件创建/修改或第三方依赖安装时,FSD 会实时拦截 CLI 内部的确认请求,并以图形化弹窗(Approval Modal)的形式呈现,供您一键批准或驳回。
|
|
19
|
+
|
|
20
|
+
### 2. 全自动编程 (FSD 循环) —— 拯救老旧与缺乏资源维护的项目
|
|
21
|
+
对于许多疏于维护的历史遗留项目、缺乏人手的开源库、或是需要大批量重构的代码库,FSD 能够提供**全自主的开发与纠错闭环**:
|
|
22
|
+
* **自主任务循环**:从输入一个高层级的任务目标开始,FSD 会自动进行“架构分析 -> 方案设计 -> 代码修改 -> 编译运行 -> 报错诊断 -> 迭代修复”,直至任务完全交付。
|
|
23
|
+
* **自适应编译与诊断**:当遇到代码报错、TypeScript 类型校验未通过或 lint 错误时,FSD 能够自主编写轻量级调试脚本,抓取控制台 stdout/stderr,并自动定位到源码关联行进行修正。
|
|
24
|
+
* **多级安全运行模式**:
|
|
25
|
+
* `Plan` (只读规划模式):仅生成修改方案与路径,绝不修改物理文件,适合初步审计。
|
|
26
|
+
* `Default` (高安全模式):所有的文件写入和命令执行均需人工确认批准,确保 100% 掌控。
|
|
27
|
+
* `Auto_Edit` (半自动模式):代码编辑直接写入,但任何 Shell 命令执行均需点击确认,在效率与安全间取得最佳平衡。
|
|
28
|
+
* `YOLO` (全自主模式):闭眼狂奔,完全交由 Agent 自主决策,适合在沙箱/容器中快速迭代。
|
|
29
|
+
|
|
30
|
+
### 3. 热插拔的工作区技能系统 (Workspace Skills)
|
|
31
|
+
* **纯 Markdown 驱动**:只需在当前工作区的 `skills/<skill_id>/SKILL.md` 中编写说明,系统即可自动加载。
|
|
32
|
+
* **领域知识注入**:你可以为项目量身定制专有的代码规范(如 CSS 书写风格、API 调用约束、Git Commit 提交规范等)。技能开启(Toggle ON)后,其指令会被自动解析并作为系统增强提示词(System Prompt Enhancement)注入到每次 Agent 调度中。
|
|
33
|
+
|
|
34
|
+
### 4. 深度整合 MCP (Model Context Protocol) 协议
|
|
35
|
+
* **通用工具扩展**:内置 MCP 客户端管理器(基于 Standard JSON-RPC),支持挂载任意标准 MCP 服务。
|
|
36
|
+
* **打破浏览器沙箱限制**:通过连接 `chrome-devtools-mcp` 等服务,使 Agent 具备了操作真实浏览器、检查前端 DOM、运行 Lighthouse 性能审计、爬取网页并无缝参与前端联合调试的能力。
|
|
37
|
+
|
|
38
|
+
### 5. 极致的视觉表现与实时监控
|
|
39
|
+
* **高颜值界面**:采用精心调校的 HSL 暗黑/明亮双主题,拥有流畅的微交互、动态玻璃拟态(Glassmorphism)卡片与专为沉浸式开发设计的等宽字体排版。
|
|
40
|
+
* **Token 资源量规**:界面直观呈现当前大模型 Context Window 的消耗状态与剩余 Headroom,防患上下文溢出于未然。
|
|
41
|
+
* **SSE 实时流式响应**:基于 Server-Sent Events 实现毫秒级响应的聊天气泡与任务日志流。
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 🛠️ 项目结构
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
full-self-developing/
|
|
49
|
+
├── client/ # 前端 React SPA 应用 (Vite 构建)
|
|
50
|
+
│ ├── src/ # 页面组件 (ChatPanel, LoopPanel, SettingsPanel 等)
|
|
51
|
+
│ ├── index.css # Tailwind CSS & 全局设计系统 Token
|
|
52
|
+
│ └── package.json # 前端依赖
|
|
53
|
+
├── agents/ # 智能体引擎定义、任务队列与 Prompt 管理器
|
|
54
|
+
├── queue/ # 任务队列本地持久化存储
|
|
55
|
+
├── skills/ # 本地可热插拔的技能库文件夹
|
|
56
|
+
├── server.js # 后端 Express API 服务 (纯 API 模式运行在 8033 端口)
|
|
57
|
+
├── launcher.js # 安全令牌生成与服务器引导脚本
|
|
58
|
+
└── start.bat # Windows 一键并发启动脚本 (nodemon + Vite dev)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🚀 快速开始
|
|
64
|
+
|
|
65
|
+
### 1. 安装依赖
|
|
66
|
+
|
|
67
|
+
在项目根目录下执行:
|
|
68
|
+
```bash
|
|
69
|
+
npm install
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 2. 一键启动 (本地开发环境)
|
|
73
|
+
|
|
74
|
+
FSD 配备了 `start.bat` 一键启动脚本,它会同时拉起后端的 Express API 服务(端口 `8033`)和前端的 Vite 调试服务(端口 `5173`),并启用热重载:
|
|
75
|
+
|
|
76
|
+
* **Windows 用户**:双击运行 `start.bat` 或在终端运行:
|
|
77
|
+
```bash
|
|
78
|
+
.\start.bat
|
|
79
|
+
```
|
|
80
|
+
* **其他平台用户**:
|
|
81
|
+
```bash
|
|
82
|
+
node launcher.js
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
启动成功后,浏览器会自动打开 `http://localhost:5173/`。系统在启动时会随机生成一个高强度的安全授权 Token,并自动注入到浏览器 `localStorage` 中用于接口鉴权。
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 💡 老旧项目自动化迭代实战指南
|
|
90
|
+
|
|
91
|
+
对于资源匮乏或无人维护的历史项目,推荐采用以下工作流进行迭代:
|
|
92
|
+
|
|
93
|
+
1. **挂载工作区**:在 FSD 顶部栏的目录选择器中,定位到你需要改造的历史项目根目录。
|
|
94
|
+
2. **设定安全等级为 `Auto_Edit`**:允许 Agent 自动改写代码以快速修复 Bug,但拦截执行命令,防止其运行未知的清理或变动脚本。
|
|
95
|
+
3. **新建 FSD 任务**:在 Loop 面板输入明确的修复目标(例如:`“将项目内所有的 react-router v5 路由 API 升级到 v6,并解决相关的 TypeScript 编译报错”`)。
|
|
96
|
+
4. **实时审查 Diff**:通过 FSD UI 的 **File Changes** 面板,以 side-by-side 双栏比对视图实时直观地审查 Agent 自动改写的每一行代码。
|
|
97
|
+
5. **一键提交**:确认编译和测试通过后,即可在本地终端放心执行 Git Commit。
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## ⚙️ 核心配置说明
|
|
102
|
+
|
|
103
|
+
通过界面的 **Settings** 面板,您可以轻松配置以下内容:
|
|
104
|
+
* **Engine Selector**:切换本地执行引擎(支持 `Gemini CLI`、`AtomCode CLI` 或通用 API 转发如 `OpenRouter`)。
|
|
105
|
+
* **Model Config**:自定义当前运行的大语言模型与参数。
|
|
106
|
+
* **MCP Servers**:热添加或移除 MCP 服务器(支持自定义启动命令行与参数)。
|
|
107
|
+
* **Workspace Skills**:一键开关工作区中被扫描出来的特定技能。
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
*FSD — Full Self-Developing. 构建未来,由您和 AI 共同主导。*
|
package/UI_SPEC.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# UI Spec — 项目名
|
|
2
|
+
|
|
3
|
+
然后在 Spec 里写:"只允许使用 theme 中定义的 token,禁止 hardcode 颜色值"。C:\asitela\full-self-developing\tailwind.config.js
|
|
4
|
+
|
|
5
|
+
## 设计系统
|
|
6
|
+
### 颜色
|
|
7
|
+
- 主色: `#1A56DB`
|
|
8
|
+
- 背景: `#F9FAFB`
|
|
9
|
+
- 文字主色: `#111827`
|
|
10
|
+
- 文字次要: `#6B7280`
|
|
11
|
+
|
|
12
|
+
### 字体
|
|
13
|
+
- 标题: `Inter 600, 24px`
|
|
14
|
+
- 正文: `Inter 400, 14px, line-height 1.5`
|
|
15
|
+
|
|
16
|
+
### 圆角 / 间距
|
|
17
|
+
- 卡片圆角: `8px`
|
|
18
|
+
- 按钮: `rounded-md, px-4 py-2`
|
|
19
|
+
- 间距单位: `4px base (Tailwind: gap-4 = 16px)`
|
|
20
|
+
|
|
21
|
+
## 组件规范
|
|
22
|
+
|
|
23
|
+
### Button (Primary)
|
|
24
|
+
- 背景: `#1A56DB`, hover: `#1E429F`
|
|
25
|
+
- 字色: white, 字重: 500
|
|
26
|
+
- 尺寸: `h-9 px-4 text-sm`
|
|
27
|
+
- 禁用态: `opacity-50 cursor-not-allowed`
|
|
28
|
+
|
|
29
|
+
### Card
|
|
30
|
+
- 背景: white
|
|
31
|
+
- 阴影: `shadow-sm`
|
|
32
|
+
- 边框: `1px solid #E5E7EB`
|
|
33
|
+
- Padding: `p-6`
|
|
34
|
+
|
|
35
|
+
## 页面结构
|
|
36
|
+
|
|
37
|
+
### App Shell 布局
|
|
38
|
+
- 整体架构: Tailwind Application Shell (`flex h-screen overflow-hidden bg-white dark:bg-zinc-950`)
|
|
39
|
+
- 左侧 Sidebar: 固定宽度 256px (`w-64`), 采用 `flex-col`, `shrink-0` 及自适应滚动
|
|
40
|
+
- 主内容区: 伸缩自适应 (`flex-1 min-w-0`), 内部采用 Grid 或者 Flex 自行管理内部布局
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## 已有组件清单(不要重新实现)
|
|
44
|
+
|
|
45
|
+
| 组件 | 文件路径 | 用途 |
|
|
46
|
+
|--------------|-------------------------------|--------------|
|
|
47
|
+
| Button | components/ui/Button.tsx | 所有按钮 |
|
|
48
|
+
| Modal | components/ui/Modal.tsx | 弹窗 |
|
|
49
|
+
| DataTable | components/DataTable.tsx | 数据表格 |
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Review Checklist
|
|
53
|
+
- [ ] 颜色全部来自设计 token
|
|
54
|
+
- [ ] 没有 hardcode 的 px 值(用 Tailwind 类)
|
|
55
|
+
- [ ] 响应式断点符合规范
|
|
56
|
+
- [ ] 复用了已有组件,没有新建重复组件
|
|
57
|
+
- [ ] 字号、字重与规范一致
|