grok-cli-to-openai-compatible 1.4.0 → 1.5.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/.env.example +5 -0
- package/README-ZH.md +220 -55
- package/README.md +289 -58
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +16 -4
- package/dist/app.js.map +1 -1
- package/dist/cli/commands/admin-otp.d.ts +10 -0
- package/dist/cli/commands/admin-otp.d.ts.map +1 -0
- package/dist/cli/commands/admin-otp.js +82 -0
- package/dist/cli/commands/admin-otp.js.map +1 -0
- package/dist/cli/commands/admin-sessions.d.ts +6 -0
- package/dist/cli/commands/admin-sessions.d.ts.map +1 -0
- package/dist/cli/commands/admin-sessions.js +62 -0
- package/dist/cli/commands/admin-sessions.js.map +1 -0
- package/dist/cli/commands/api-features.d.ts +8 -0
- package/dist/cli/commands/api-features.d.ts.map +1 -0
- package/dist/cli/commands/api-features.js +136 -0
- package/dist/cli/commands/api-features.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +7 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +48 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/chats.d.ts +10 -0
- package/dist/cli/commands/chats.d.ts.map +1 -0
- package/dist/cli/commands/chats.js +97 -0
- package/dist/cli/commands/chats.js.map +1 -0
- package/dist/cli/commands/conversations.d.ts +10 -0
- package/dist/cli/commands/conversations.d.ts.map +1 -0
- package/dist/cli/commands/conversations.js +68 -0
- package/dist/cli/commands/conversations.js.map +1 -0
- package/dist/cli/commands/ddos.d.ts +18 -0
- package/dist/cli/commands/ddos.d.ts.map +1 -0
- package/dist/cli/commands/ddos.js +298 -0
- package/dist/cli/commands/ddos.js.map +1 -0
- package/dist/cli/commands/docs.d.ts +13 -0
- package/dist/cli/commands/docs.d.ts.map +1 -0
- package/dist/cli/commands/docs.js +104 -0
- package/dist/cli/commands/docs.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +3 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/key.d.ts +22 -0
- package/dist/cli/commands/key.d.ts.map +1 -1
- package/dist/cli/commands/key.js +101 -1
- package/dist/cli/commands/key.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +9 -0
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +29 -8
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/models.d.ts +5 -0
- package/dist/cli/commands/models.d.ts.map +1 -0
- package/dist/cli/commands/models.js +68 -0
- package/dist/cli/commands/models.js.map +1 -0
- package/dist/cli/commands/queue.d.ts +33 -0
- package/dist/cli/commands/queue.d.ts.map +1 -0
- package/dist/cli/commands/queue.js +467 -0
- package/dist/cli/commands/queue.js.map +1 -0
- package/dist/cli/commands/restart.d.ts.map +1 -1
- package/dist/cli/commands/restart.js +3 -1
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/settings.d.ts +13 -0
- package/dist/cli/commands/settings.d.ts.map +1 -0
- package/dist/cli/commands/settings.js +182 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +3 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +83 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +5 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +5 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/update.js +0 -1
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +524 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/db-keys.d.ts +20 -6
- package/dist/cli/lib/db-keys.d.ts.map +1 -1
- package/dist/cli/lib/db-keys.js +119 -18
- package/dist/cli/lib/db-keys.js.map +1 -1
- package/dist/cli/lib/print-table.d.ts +3 -0
- package/dist/cli/lib/print-table.d.ts.map +1 -0
- package/dist/cli/lib/print-table.js +29 -0
- package/dist/cli/lib/print-table.js.map +1 -0
- package/dist/cli/lib/runtime-context.d.ts +23 -0
- package/dist/cli/lib/runtime-context.d.ts.map +1 -0
- package/dist/cli/lib/runtime-context.js +60 -0
- package/dist/cli/lib/runtime-context.js.map +1 -0
- package/dist/cli/lib/seed-admin.d.ts.map +1 -1
- package/dist/cli/lib/seed-admin.js +4 -12
- package/dist/cli/lib/seed-admin.js.map +1 -1
- package/dist/config/constants.d.ts +50 -3
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +118 -3
- package/dist/config/constants.js.map +1 -1
- package/dist/config/env.d.ts +1 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +6 -0
- package/dist/config/env.js.map +1 -1
- package/dist/controllers/admin/api-features.handlers.d.ts +6 -0
- package/dist/controllers/admin/api-features.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/api-features.handlers.js +62 -0
- package/dist/controllers/admin/api-features.handlers.js.map +1 -0
- package/dist/controllers/admin/audit.handlers.d.ts +5 -0
- package/dist/controllers/admin/audit.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/audit.handlers.js +71 -0
- package/dist/controllers/admin/audit.handlers.js.map +1 -0
- package/dist/controllers/admin/auth.handlers.d.ts +8 -0
- package/dist/controllers/admin/auth.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/auth.handlers.js +48 -0
- package/dist/controllers/admin/auth.handlers.js.map +1 -0
- package/dist/controllers/admin/chats.handlers.d.ts +6 -0
- package/dist/controllers/admin/chats.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/chats.handlers.js +22 -0
- package/dist/controllers/admin/chats.handlers.js.map +1 -0
- package/dist/controllers/admin/conversations.handlers.d.ts +9 -0
- package/dist/controllers/admin/conversations.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/conversations.handlers.js +70 -0
- package/dist/controllers/admin/conversations.handlers.js.map +1 -0
- package/dist/controllers/admin/core.handlers.d.ts +13 -0
- package/dist/controllers/admin/core.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/core.handlers.js +184 -0
- package/dist/controllers/admin/core.handlers.js.map +1 -0
- package/dist/controllers/admin/ddos.handlers.d.ts +13 -0
- package/dist/controllers/admin/ddos.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/ddos.handlers.js +142 -0
- package/dist/controllers/admin/ddos.handlers.js.map +1 -0
- package/dist/controllers/admin/documents.handlers.d.ts +8 -0
- package/dist/controllers/admin/documents.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/documents.handlers.js +198 -0
- package/dist/controllers/admin/documents.handlers.js.map +1 -0
- package/dist/controllers/admin/keys.handlers.d.ts +8 -0
- package/dist/controllers/admin/keys.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/keys.handlers.js +80 -0
- package/dist/controllers/admin/keys.handlers.js.map +1 -0
- package/dist/controllers/admin/media.handlers.d.ts +25 -0
- package/dist/controllers/admin/media.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/media.handlers.js +453 -0
- package/dist/controllers/admin/media.handlers.js.map +1 -0
- package/dist/controllers/admin/playground.handlers.d.ts +6 -0
- package/dist/controllers/admin/playground.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/playground.handlers.js +76 -0
- package/dist/controllers/admin/playground.handlers.js.map +1 -0
- package/dist/controllers/admin/pm2.handlers.d.ts +15 -0
- package/dist/controllers/admin/pm2.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/pm2.handlers.js +161 -0
- package/dist/controllers/admin/pm2.handlers.js.map +1 -0
- package/dist/controllers/admin/queue.handlers.d.ts +16 -0
- package/dist/controllers/admin/queue.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/queue.handlers.js +159 -0
- package/dist/controllers/admin/queue.handlers.js.map +1 -0
- package/dist/controllers/admin/types.d.ts +7 -0
- package/dist/controllers/admin/types.d.ts.map +1 -0
- package/dist/controllers/admin/types.js +3 -0
- package/dist/controllers/admin/types.js.map +1 -0
- package/dist/controllers/admin.controller.d.ts +58 -39
- package/dist/controllers/admin.controller.d.ts.map +1 -1
- package/dist/controllers/admin.controller.js +43 -893
- package/dist/controllers/admin.controller.js.map +1 -1
- package/dist/controllers/anthropic.controller.d.ts +5 -0
- package/dist/controllers/anthropic.controller.d.ts.map +1 -0
- package/dist/controllers/anthropic.controller.js +37 -0
- package/dist/controllers/anthropic.controller.js.map +1 -0
- package/dist/controllers/api-key.controller.d.ts.map +1 -1
- package/dist/controllers/api-key.controller.js +4 -2
- package/dist/controllers/api-key.controller.js.map +1 -1
- package/dist/controllers/assistants.controller.d.ts +13 -0
- package/dist/controllers/assistants.controller.d.ts.map +1 -0
- package/dist/controllers/assistants.controller.js +75 -0
- package/dist/controllers/assistants.controller.js.map +1 -0
- package/dist/controllers/audio.controller.d.ts +10 -0
- package/dist/controllers/audio.controller.d.ts.map +1 -0
- package/dist/controllers/audio.controller.js +61 -0
- package/dist/controllers/audio.controller.js.map +1 -0
- package/dist/controllers/chat.controller.d.ts.map +1 -1
- package/dist/controllers/chat.controller.js +7 -1
- package/dist/controllers/chat.controller.js.map +1 -1
- package/dist/controllers/files.controller.d.ts +12 -0
- package/dist/controllers/files.controller.d.ts.map +1 -0
- package/dist/controllers/files.controller.js +144 -0
- package/dist/controllers/files.controller.js.map +1 -0
- package/dist/controllers/images.controller.d.ts +6 -0
- package/dist/controllers/images.controller.d.ts.map +1 -0
- package/dist/controllers/images.controller.js +65 -0
- package/dist/controllers/images.controller.js.map +1 -0
- package/dist/controllers/media-assets.controller.d.ts +6 -0
- package/dist/controllers/media-assets.controller.d.ts.map +1 -0
- package/dist/controllers/media-assets.controller.js +51 -0
- package/dist/controllers/media-assets.controller.js.map +1 -0
- package/dist/controllers/responses.controller.d.ts +7 -0
- package/dist/controllers/responses.controller.d.ts.map +1 -0
- package/dist/controllers/responses.controller.js +83 -0
- package/dist/controllers/responses.controller.js.map +1 -0
- package/dist/controllers/videos.controller.d.ts +7 -0
- package/dist/controllers/videos.controller.d.ts.map +1 -0
- package/dist/controllers/videos.controller.js +42 -0
- package/dist/controllers/videos.controller.js.map +1 -0
- package/dist/dto/admin-auth.dto.d.ts +10 -0
- package/dist/dto/admin-auth.dto.d.ts.map +1 -0
- package/dist/dto/admin-auth.dto.js +12 -0
- package/dist/dto/admin-auth.dto.js.map +1 -0
- package/dist/dto/admin.dto.d.ts +1 -1
- package/dist/dto/anthropic-messages.dto.d.ts +77 -0
- package/dist/dto/anthropic-messages.dto.d.ts.map +1 -0
- package/dist/dto/anthropic-messages.dto.js +65 -0
- package/dist/dto/anthropic-messages.dto.js.map +1 -0
- package/dist/dto/audio.dto.d.ts +22 -0
- package/dist/dto/audio.dto.d.ts.map +1 -0
- package/dist/dto/audio.dto.js +16 -0
- package/dist/dto/audio.dto.js.map +1 -0
- package/dist/dto/chat.dto.d.ts +371 -63
- package/dist/dto/chat.dto.d.ts.map +1 -1
- package/dist/dto/chat.dto.js +94 -31
- package/dist/dto/chat.dto.js.map +1 -1
- package/dist/dto/conversation.dto.d.ts +6 -6
- package/dist/dto/conversation.dto.d.ts.map +1 -1
- package/dist/dto/conversation.dto.js +18 -2
- package/dist/dto/conversation.dto.js.map +1 -1
- package/dist/dto/files.dto.d.ts +17 -0
- package/dist/dto/files.dto.d.ts.map +1 -0
- package/dist/dto/files.dto.js +21 -0
- package/dist/dto/files.dto.js.map +1 -0
- package/dist/dto/images.dto.d.ts +65 -0
- package/dist/dto/images.dto.d.ts.map +1 -0
- package/dist/dto/images.dto.js +39 -0
- package/dist/dto/images.dto.js.map +1 -0
- package/dist/dto/index.d.ts +13 -0
- package/dist/dto/index.d.ts.map +1 -0
- package/dist/dto/index.js +44 -0
- package/dist/dto/index.js.map +1 -0
- package/dist/dto/queue.dto.d.ts +120 -0
- package/dist/dto/queue.dto.d.ts.map +1 -0
- package/dist/dto/queue.dto.js +31 -0
- package/dist/dto/queue.dto.js.map +1 -0
- package/dist/dto/responses.dto.d.ts +76 -0
- package/dist/dto/responses.dto.d.ts.map +1 -0
- package/dist/dto/responses.dto.js +139 -0
- package/dist/dto/responses.dto.js.map +1 -0
- package/dist/dto/videos.dto.d.ts +35 -0
- package/dist/dto/videos.dto.d.ts.map +1 -0
- package/dist/dto/videos.dto.js +30 -0
- package/dist/dto/videos.dto.js.map +1 -0
- package/dist/entities/api-key-created.entity.d.ts +6 -0
- package/dist/entities/api-key-created.entity.d.ts.map +1 -0
- package/dist/entities/api-key-created.entity.js +3 -0
- package/dist/entities/api-key-created.entity.js.map +1 -0
- package/dist/entities/api-key-public.entity.d.ts +18 -0
- package/dist/entities/api-key-public.entity.d.ts.map +1 -0
- package/dist/entities/api-key-public.entity.js +3 -0
- package/dist/entities/api-key-public.entity.js.map +1 -0
- package/dist/entities/api-key.entity.d.ts +4 -20
- package/dist/entities/api-key.entity.d.ts.map +1 -1
- package/dist/entities/audit-log-create-input.entity.d.ts +9 -0
- package/dist/entities/audit-log-create-input.entity.d.ts.map +1 -0
- package/dist/entities/audit-log-create-input.entity.js +3 -0
- package/dist/entities/audit-log-create-input.entity.js.map +1 -0
- package/dist/entities/audit-log.entity.d.ts +1 -8
- package/dist/entities/audit-log.entity.d.ts.map +1 -1
- package/dist/entities/chat-request-status.type.d.ts +2 -0
- package/dist/entities/chat-request-status.type.d.ts.map +1 -0
- package/dist/entities/chat-request-status.type.js +3 -0
- package/dist/entities/chat-request-status.type.js.map +1 -0
- package/dist/entities/chat-request.entity.d.ts +3 -6
- package/dist/entities/chat-request.entity.d.ts.map +1 -1
- package/dist/entities/document-public.entity.d.ts +9 -0
- package/dist/entities/document-public.entity.d.ts.map +1 -0
- package/dist/entities/document-public.entity.js +3 -0
- package/dist/entities/document-public.entity.js.map +1 -0
- package/dist/entities/document-storage-type.type.d.ts +2 -0
- package/dist/entities/document-storage-type.type.d.ts.map +1 -0
- package/dist/entities/document-storage-type.type.js +3 -0
- package/dist/entities/document-storage-type.type.js.map +1 -0
- package/dist/entities/document.entity.d.ts +3 -9
- package/dist/entities/document.entity.d.ts.map +1 -1
- package/dist/entities/encrypted-payload.entity.d.ts +6 -0
- package/dist/entities/encrypted-payload.entity.d.ts.map +1 -0
- package/dist/entities/encrypted-payload.entity.js +3 -0
- package/dist/entities/encrypted-payload.entity.js.map +1 -0
- package/dist/entities/index.d.ts +12 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +3 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/exceptions/error-codes.d.ts +10 -0
- package/dist/exceptions/error-codes.d.ts.map +1 -1
- package/dist/exceptions/error-codes.js +10 -0
- package/dist/exceptions/error-codes.js.map +1 -1
- package/dist/exceptions/exception.factory.d.ts +13 -0
- package/dist/exceptions/exception.factory.d.ts.map +1 -1
- package/dist/exceptions/exception.factory.js +31 -0
- package/dist/exceptions/exception.factory.js.map +1 -1
- package/dist/exceptions/http.exception.d.ts +10 -0
- package/dist/exceptions/http.exception.d.ts.map +1 -1
- package/dist/exceptions/http.exception.js +30 -0
- package/dist/exceptions/http.exception.js.map +1 -1
- package/dist/interfaces/anthropic-message.interface.d.ts +27 -0
- package/dist/interfaces/anthropic-message.interface.d.ts.map +1 -0
- package/dist/interfaces/anthropic-message.interface.js +4 -0
- package/dist/interfaces/anthropic-message.interface.js.map +1 -0
- package/dist/interfaces/api-features.type.d.ts +45 -0
- package/dist/interfaces/api-features.type.d.ts.map +1 -0
- package/dist/interfaces/api-features.type.js +58 -0
- package/dist/interfaces/api-features.type.js.map +1 -0
- package/dist/interfaces/api-key-mode.type.d.ts +8 -0
- package/dist/interfaces/api-key-mode.type.d.ts.map +1 -0
- package/dist/interfaces/api-key-mode.type.js +3 -0
- package/dist/interfaces/api-key-mode.type.js.map +1 -0
- package/dist/interfaces/api-key-role.type.d.ts +3 -0
- package/dist/interfaces/api-key-role.type.d.ts.map +1 -0
- package/dist/interfaces/api-key-role.type.js +3 -0
- package/dist/interfaces/api-key-role.type.js.map +1 -0
- package/dist/interfaces/app-settings.type.d.ts +10 -0
- package/dist/interfaces/app-settings.type.d.ts.map +1 -0
- package/dist/interfaces/app-settings.type.js +3 -0
- package/dist/interfaces/app-settings.type.js.map +1 -0
- package/dist/interfaces/auth.interface.d.ts +4 -14
- package/dist/interfaces/auth.interface.d.ts.map +1 -1
- package/dist/interfaces/authenticated-api-key.interface.d.ts +16 -0
- package/dist/interfaces/authenticated-api-key.interface.d.ts.map +1 -0
- package/dist/interfaces/authenticated-api-key.interface.js +3 -0
- package/dist/interfaces/authenticated-api-key.interface.js.map +1 -0
- package/dist/interfaces/auto-ban-event.interface.d.ts +11 -0
- package/dist/interfaces/auto-ban-event.interface.d.ts.map +1 -0
- package/dist/interfaces/auto-ban-event.interface.js +3 -0
- package/dist/interfaces/auto-ban-event.interface.js.map +1 -0
- package/dist/interfaces/built-grok-request.interface.d.ts +12 -0
- package/dist/interfaces/built-grok-request.interface.d.ts.map +1 -0
- package/dist/interfaces/built-grok-request.interface.js +3 -0
- package/dist/interfaces/built-grok-request.interface.js.map +1 -0
- package/dist/interfaces/chat-context.interface.d.ts +9 -0
- package/dist/interfaces/chat-context.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-context.interface.js +3 -0
- package/dist/interfaces/chat-context.interface.js.map +1 -0
- package/dist/interfaces/chat-job-payload.interface.d.ts +27 -0
- package/dist/interfaces/chat-job-payload.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-job-payload.interface.js +3 -0
- package/dist/interfaces/chat-job-payload.interface.js.map +1 -0
- package/dist/interfaces/chat-list-query.interface.d.ts +14 -0
- package/dist/interfaces/chat-list-query.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-list-query.interface.js +3 -0
- package/dist/interfaces/chat-list-query.interface.js.map +1 -0
- package/dist/interfaces/document-context-result.interface.d.ts +7 -0
- package/dist/interfaces/document-context-result.interface.d.ts.map +1 -0
- package/dist/interfaces/document-context-result.interface.js +3 -0
- package/dist/interfaces/document-context-result.interface.js.map +1 -0
- package/dist/interfaces/execute-completion-options.interface.d.ts +17 -0
- package/dist/interfaces/execute-completion-options.interface.d.ts.map +1 -0
- package/dist/interfaces/execute-completion-options.interface.js +3 -0
- package/dist/interfaces/execute-completion-options.interface.js.map +1 -0
- package/dist/interfaces/express.interface.d.ts +1 -1
- package/dist/interfaces/express.interface.d.ts.map +1 -1
- package/dist/interfaces/grok-collected-output.interface.d.ts +28 -0
- package/dist/interfaces/grok-collected-output.interface.d.ts.map +1 -0
- package/dist/interfaces/grok-collected-output.interface.js +3 -0
- package/dist/interfaces/grok-collected-output.interface.js.map +1 -0
- package/dist/interfaces/grok-json-result.interface.d.ts +7 -0
- package/dist/interfaces/grok-json-result.interface.d.ts.map +1 -0
- package/dist/interfaces/grok-json-result.interface.js +3 -0
- package/dist/interfaces/grok-json-result.interface.js.map +1 -0
- package/dist/interfaces/grok-response-meta.interface.d.ts +8 -0
- package/dist/interfaces/grok-response-meta.interface.d.ts.map +1 -0
- package/dist/interfaces/grok-response-meta.interface.js +3 -0
- package/dist/interfaces/grok-response-meta.interface.js.map +1 -0
- package/dist/interfaces/grok-run-options.interface.d.ts +58 -0
- package/dist/interfaces/grok-run-options.interface.d.ts.map +1 -0
- package/dist/interfaces/grok-run-options.interface.js +3 -0
- package/dist/interfaces/grok-run-options.interface.js.map +1 -0
- package/dist/interfaces/grok-run-result.interface.d.ts +8 -0
- package/dist/interfaces/grok-run-result.interface.d.ts.map +1 -0
- package/dist/interfaces/grok-run-result.interface.js +3 -0
- package/dist/interfaces/grok-run-result.interface.js.map +1 -0
- package/dist/interfaces/grok-stream-event.type.d.ts +20 -0
- package/dist/interfaces/grok-stream-event.type.d.ts.map +1 -0
- package/dist/interfaces/grok-stream-event.type.js +3 -0
- package/dist/interfaces/grok-stream-event.type.js.map +1 -0
- package/dist/interfaces/grok.interface.d.ts +5 -40
- package/dist/interfaces/grok.interface.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +47 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +7 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/install-channel.type.d.ts +2 -0
- package/dist/interfaces/install-channel.type.d.ts.map +1 -0
- package/dist/interfaces/install-channel.type.js +3 -0
- package/dist/interfaces/install-channel.type.js.map +1 -0
- package/dist/interfaces/map-completion-options.interface.d.ts +16 -0
- package/dist/interfaces/map-completion-options.interface.d.ts.map +1 -0
- package/dist/interfaces/map-completion-options.interface.js +3 -0
- package/dist/interfaces/map-completion-options.interface.js.map +1 -0
- package/dist/interfaces/materialized-document.interface.d.ts +10 -0
- package/dist/interfaces/materialized-document.interface.d.ts.map +1 -0
- package/dist/interfaces/materialized-document.interface.js +3 -0
- package/dist/interfaces/materialized-document.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts +25 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts +36 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts +55 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion.interface.d.ts +17 -0
- package/dist/interfaces/open-ai-chat-completion.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-message.interface.d.ts +9 -0
- package/dist/interfaces/open-ai-chat-message.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-message.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-message.interface.js.map +1 -0
- package/dist/interfaces/open-ai-model-list.interface.d.ts +6 -0
- package/dist/interfaces/open-ai-model-list.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-model-list.interface.js +3 -0
- package/dist/interfaces/open-ai-model-list.interface.js.map +1 -0
- package/dist/interfaces/open-ai-model.interface.d.ts +7 -0
- package/dist/interfaces/open-ai-model.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-model.interface.js +3 -0
- package/dist/interfaces/open-ai-model.interface.js.map +1 -0
- package/dist/interfaces/open-ai-response.interface.d.ts +32 -0
- package/dist/interfaces/open-ai-response.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-response.interface.js +3 -0
- package/dist/interfaces/open-ai-response.interface.js.map +1 -0
- package/dist/interfaces/open-ai-role.type.d.ts +2 -0
- package/dist/interfaces/open-ai-role.type.d.ts.map +1 -0
- package/dist/interfaces/open-ai-role.type.js +3 -0
- package/dist/interfaces/open-ai-role.type.js.map +1 -0
- package/dist/interfaces/openai.interface.d.ts +10 -96
- package/dist/interfaces/openai.interface.d.ts.map +1 -1
- package/dist/interfaces/pm2-runtime-config.interface.d.ts +24 -0
- package/dist/interfaces/pm2-runtime-config.interface.d.ts.map +1 -0
- package/dist/interfaces/pm2-runtime-config.interface.js +3 -0
- package/dist/interfaces/pm2-runtime-config.interface.js.map +1 -0
- package/dist/interfaces/proxy-ip-config.interface.d.ts +12 -0
- package/dist/interfaces/proxy-ip-config.interface.d.ts.map +1 -0
- package/dist/interfaces/proxy-ip-config.interface.js +3 -0
- package/dist/interfaces/proxy-ip-config.interface.js.map +1 -0
- package/dist/interfaces/proxy-ip-source.type.d.ts +7 -0
- package/dist/interfaces/proxy-ip-source.type.d.ts.map +1 -0
- package/dist/interfaces/proxy-ip-source.type.js +3 -0
- package/dist/interfaces/proxy-ip-source.type.js.map +1 -0
- package/dist/interfaces/resolved-policy.interface.d.ts +15 -0
- package/dist/interfaces/resolved-policy.interface.d.ts.map +1 -0
- package/dist/interfaces/resolved-policy.interface.js +3 -0
- package/dist/interfaces/resolved-policy.interface.js.map +1 -0
- package/dist/interfaces/runner-mode.type.d.ts +2 -0
- package/dist/interfaces/runner-mode.type.d.ts.map +1 -0
- package/dist/interfaces/runner-mode.type.js +3 -0
- package/dist/interfaces/runner-mode.type.js.map +1 -0
- package/dist/interfaces/software-check.interface.d.ts +14 -0
- package/dist/interfaces/software-check.interface.d.ts.map +1 -0
- package/dist/interfaces/software-check.interface.js +3 -0
- package/dist/interfaces/software-check.interface.js.map +1 -0
- package/dist/interfaces/software-id.type.d.ts +2 -0
- package/dist/interfaces/software-id.type.d.ts.map +1 -0
- package/dist/interfaces/software-id.type.js +3 -0
- package/dist/interfaces/software-id.type.js.map +1 -0
- package/dist/interfaces/software-level.type.d.ts +2 -0
- package/dist/interfaces/software-level.type.d.ts.map +1 -0
- package/dist/interfaces/software-level.type.js +3 -0
- package/dist/interfaces/software-level.type.js.map +1 -0
- package/dist/interfaces/system-software-report.interface.d.ts +6 -0
- package/dist/interfaces/system-software-report.interface.d.ts.map +1 -0
- package/dist/interfaces/system-software-report.interface.js +3 -0
- package/dist/interfaces/system-software-report.interface.js.map +1 -0
- package/dist/interfaces/tracked-connection.interface.d.ts +16 -0
- package/dist/interfaces/tracked-connection.interface.d.ts.map +1 -0
- package/dist/interfaces/tracked-connection.interface.js +3 -0
- package/dist/interfaces/tracked-connection.interface.js.map +1 -0
- package/dist/interfaces/update-progress.type.d.ts +16 -0
- package/dist/interfaces/update-progress.type.d.ts.map +1 -0
- package/dist/interfaces/update-progress.type.js +3 -0
- package/dist/interfaces/update-progress.type.js.map +1 -0
- package/dist/interfaces/update-result.interface.d.ts +11 -0
- package/dist/interfaces/update-result.interface.d.ts.map +1 -0
- package/dist/interfaces/update-result.interface.js +3 -0
- package/dist/interfaces/update-result.interface.js.map +1 -0
- package/dist/interfaces/version-info.interface.d.ts +21 -0
- package/dist/interfaces/version-info.interface.d.ts.map +1 -0
- package/dist/interfaces/version-info.interface.js +3 -0
- package/dist/interfaces/version-info.interface.js.map +1 -0
- package/dist/interfaces/version-status.type.d.ts +3 -0
- package/dist/interfaces/version-status.type.d.ts.map +1 -0
- package/dist/interfaces/version-status.type.js +3 -0
- package/dist/interfaces/version-status.type.js.map +1 -0
- package/dist/middlewares/auth.middleware.d.ts +10 -2
- package/dist/middlewares/auth.middleware.d.ts.map +1 -1
- package/dist/middlewares/auth.middleware.js +93 -13
- package/dist/middlewares/auth.middleware.js.map +1 -1
- package/dist/middlewares/connection-tracker.d.ts +2 -15
- package/dist/middlewares/connection-tracker.d.ts.map +1 -1
- package/dist/middlewares/connection-tracker.js.map +1 -1
- package/dist/middlewares/connection-tracker.middleware.d.ts +33 -0
- package/dist/middlewares/connection-tracker.middleware.d.ts.map +1 -0
- package/dist/middlewares/connection-tracker.middleware.js +99 -0
- package/dist/middlewares/connection-tracker.middleware.js.map +1 -0
- package/dist/middlewares/error.middleware.d.ts.map +1 -1
- package/dist/middlewares/error.middleware.js +7 -3
- package/dist/middlewares/error.middleware.js.map +1 -1
- package/dist/middlewares/index.d.ts +11 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +35 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/rate-limit.middleware.d.ts.map +1 -1
- package/dist/middlewares/rate-limit.middleware.js +9 -0
- package/dist/middlewares/rate-limit.middleware.js.map +1 -1
- package/dist/middlewares/request-id.middleware.js +1 -1
- package/dist/middlewares/request-id.middleware.js.map +1 -1
- package/dist/middlewares/upload-images.middleware.d.ts +3 -0
- package/dist/middlewares/upload-images.middleware.d.ts.map +1 -0
- package/dist/middlewares/upload-images.middleware.js +29 -0
- package/dist/middlewares/upload-images.middleware.js.map +1 -0
- package/dist/middlewares/validate.middleware.d.ts.map +1 -1
- package/dist/middlewares/validate.middleware.js +21 -2
- package/dist/middlewares/validate.middleware.js.map +1 -1
- package/dist/routes/admin.routes.d.ts.map +1 -1
- package/dist/routes/admin.routes.js +42 -2
- package/dist/routes/admin.routes.js.map +1 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +26 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/v1/assistants.routes.d.ts +3 -0
- package/dist/routes/v1/assistants.routes.d.ts.map +1 -0
- package/dist/routes/v1/assistants.routes.js +13 -0
- package/dist/routes/v1/assistants.routes.js.map +1 -0
- package/dist/routes/v1/audio.routes.d.ts +3 -0
- package/dist/routes/v1/audio.routes.d.ts.map +1 -0
- package/dist/routes/v1/audio.routes.js +14 -0
- package/dist/routes/v1/audio.routes.js.map +1 -0
- package/dist/routes/v1/chat.routes.d.ts.map +1 -1
- package/dist/routes/v1/chat.routes.js +2 -2
- package/dist/routes/v1/chat.routes.js.map +1 -1
- package/dist/routes/v1/files.routes.d.ts +3 -0
- package/dist/routes/v1/files.routes.d.ts.map +1 -0
- package/dist/routes/v1/files.routes.js +16 -0
- package/dist/routes/v1/files.routes.js.map +1 -0
- package/dist/routes/v1/images.routes.d.ts +3 -0
- package/dist/routes/v1/images.routes.d.ts.map +1 -0
- package/dist/routes/v1/images.routes.js +14 -0
- package/dist/routes/v1/images.routes.js.map +1 -0
- package/dist/routes/v1/media-assets.routes.d.ts +3 -0
- package/dist/routes/v1/media-assets.routes.d.ts.map +1 -0
- package/dist/routes/v1/media-assets.routes.js +12 -0
- package/dist/routes/v1/media-assets.routes.js.map +1 -0
- package/dist/routes/v1/messages.routes.d.ts +3 -0
- package/dist/routes/v1/messages.routes.d.ts.map +1 -0
- package/dist/routes/v1/messages.routes.js +13 -0
- package/dist/routes/v1/messages.routes.js.map +1 -0
- package/dist/routes/v1/responses.routes.d.ts +3 -0
- package/dist/routes/v1/responses.routes.d.ts.map +1 -0
- package/dist/routes/v1/responses.routes.js +15 -0
- package/dist/routes/v1/responses.routes.js.map +1 -0
- package/dist/routes/v1/threads.routes.d.ts +3 -0
- package/dist/routes/v1/threads.routes.d.ts.map +1 -0
- package/dist/routes/v1/threads.routes.js +15 -0
- package/dist/routes/v1/threads.routes.js.map +1 -0
- package/dist/routes/v1/videos.routes.d.ts +3 -0
- package/dist/routes/v1/videos.routes.d.ts.map +1 -0
- package/dist/routes/v1/videos.routes.js +14 -0
- package/dist/routes/v1/videos.routes.js.map +1 -0
- package/dist/server.js +17 -0
- package/dist/server.js.map +1 -1
- package/dist/services/abuse-guard.service.d.ts +1 -9
- package/dist/services/abuse-guard.service.d.ts.map +1 -1
- package/dist/services/abuse-guard.service.js.map +1 -1
- package/dist/services/admin-auth.service.d.ts +32 -0
- package/dist/services/admin-auth.service.d.ts.map +1 -0
- package/dist/services/admin-auth.service.js +197 -0
- package/dist/services/admin-auth.service.js.map +1 -0
- package/dist/services/api-features.service.d.ts +15 -0
- package/dist/services/api-features.service.d.ts.map +1 -0
- package/dist/services/api-features.service.js +92 -0
- package/dist/services/api-features.service.js.map +1 -0
- package/dist/services/api-key.service.d.ts +4 -6
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js +61 -46
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/assistants.service.d.ts +130 -0
- package/dist/services/assistants.service.d.ts.map +1 -0
- package/dist/services/assistants.service.js +329 -0
- package/dist/services/assistants.service.js.map +1 -0
- package/dist/services/audit.service.d.ts +5 -1
- package/dist/services/audit.service.d.ts.map +1 -1
- package/dist/services/audit.service.js +26 -9
- package/dist/services/audit.service.js.map +1 -1
- package/dist/services/chat-admin.service.d.ts +1 -12
- package/dist/services/chat-admin.service.d.ts.map +1 -1
- package/dist/services/chat-admin.service.js.map +1 -1
- package/dist/services/chat.service.d.ts +13 -9
- package/dist/services/chat.service.d.ts.map +1 -1
- package/dist/services/chat.service.js +683 -131
- package/dist/services/chat.service.js.map +1 -1
- package/dist/services/conversation.service.d.ts.map +1 -1
- package/dist/services/conversation.service.js +36 -14
- package/dist/services/conversation.service.js.map +1 -1
- package/dist/services/ddos-policy.service.d.ts +1 -0
- package/dist/services/ddos-policy.service.d.ts.map +1 -1
- package/dist/services/ddos-policy.service.js +7 -1
- package/dist/services/ddos-policy.service.js.map +1 -1
- package/dist/services/document.service.d.ts +27 -2
- package/dist/services/document.service.d.ts.map +1 -1
- package/dist/services/document.service.js +164 -36
- package/dist/services/document.service.js.map +1 -1
- package/dist/services/encryption.service.d.ts +1 -1
- package/dist/services/encryption.service.d.ts.map +1 -1
- package/dist/services/grok-cli.service.d.ts +14 -3
- package/dist/services/grok-cli.service.d.ts.map +1 -1
- package/dist/services/grok-cli.service.js +124 -13
- package/dist/services/grok-cli.service.js.map +1 -1
- package/dist/services/grok-request-builder.service.d.ts +10 -0
- package/dist/services/grok-request-builder.service.d.ts.map +1 -0
- package/dist/services/grok-request-builder.service.js +233 -0
- package/dist/services/grok-request-builder.service.js.map +1 -0
- package/dist/services/ip-blacklist.service.d.ts +3 -2
- package/dist/services/ip-blacklist.service.d.ts.map +1 -1
- package/dist/services/ip-blacklist.service.js +13 -3
- package/dist/services/ip-blacklist.service.js.map +1 -1
- package/dist/services/media/media-jobs.service.d.ts +40 -0
- package/dist/services/media/media-jobs.service.d.ts.map +1 -0
- package/dist/services/media/media-jobs.service.js +276 -0
- package/dist/services/media/media-jobs.service.js.map +1 -0
- package/dist/services/media/media-orchestrator.service.d.ts +52 -0
- package/dist/services/media/media-orchestrator.service.d.ts.map +1 -0
- package/dist/services/media/media-orchestrator.service.js +209 -0
- package/dist/services/media/media-orchestrator.service.js.map +1 -0
- package/dist/services/media/media-store.service.d.ts +38 -0
- package/dist/services/media/media-store.service.d.ts.map +1 -0
- package/dist/services/media/media-store.service.js +121 -0
- package/dist/services/media/media-store.service.js.map +1 -0
- package/dist/services/media/providers/grok-tools.provider.d.ts +29 -0
- package/dist/services/media/providers/grok-tools.provider.d.ts.map +1 -0
- package/dist/services/media/providers/grok-tools.provider.js +224 -0
- package/dist/services/media/providers/grok-tools.provider.js.map +1 -0
- package/dist/services/media/providers/media-provider.interface.d.ts +44 -0
- package/dist/services/media/providers/media-provider.interface.d.ts.map +1 -0
- package/dist/services/media/providers/media-provider.interface.js +4 -0
- package/dist/services/media/providers/media-provider.interface.js.map +1 -0
- package/dist/services/media/providers/mock.provider.d.ts +8 -0
- package/dist/services/media/providers/mock.provider.d.ts.map +1 -0
- package/dist/services/media/providers/mock.provider.js +43 -0
- package/dist/services/media/providers/mock.provider.js.map +1 -0
- package/dist/services/media/providers/stub.provider.d.ts +8 -0
- package/dist/services/media/providers/stub.provider.d.ts.map +1 -0
- package/dist/services/media/providers/stub.provider.js +14 -0
- package/dist/services/media/providers/stub.provider.js.map +1 -0
- package/dist/services/models.service.d.ts +1 -1
- package/dist/services/models.service.d.ts.map +1 -1
- package/dist/services/pm2-config.d.ts +1 -23
- package/dist/services/pm2-config.d.ts.map +1 -1
- package/dist/services/pm2-config.js.map +1 -1
- package/dist/services/pm2.service.d.ts +12 -2
- package/dist/services/pm2.service.d.ts.map +1 -1
- package/dist/services/pm2.service.js +19 -6
- package/dist/services/pm2.service.js.map +1 -1
- package/dist/services/policy.service.d.ts +2 -14
- package/dist/services/policy.service.d.ts.map +1 -1
- package/dist/services/policy.service.js +48 -2
- package/dist/services/policy.service.js.map +1 -1
- package/dist/services/queue/chat-queue.service.d.ts +100 -0
- package/dist/services/queue/chat-queue.service.d.ts.map +1 -0
- package/dist/services/queue/chat-queue.service.js +535 -0
- package/dist/services/queue/chat-queue.service.js.map +1 -0
- package/dist/services/queue/chat-worker.service.d.ts +12 -0
- package/dist/services/queue/chat-worker.service.d.ts.map +1 -0
- package/dist/services/queue/chat-worker.service.js +135 -0
- package/dist/services/queue/chat-worker.service.js.map +1 -0
- package/dist/services/queue/fair-claim.d.ts +41 -0
- package/dist/services/queue/fair-claim.d.ts.map +1 -0
- package/dist/services/queue/fair-claim.js +54 -0
- package/dist/services/queue/fair-claim.js.map +1 -0
- package/dist/services/queue/job-waiter.d.ts +40 -0
- package/dist/services/queue/job-waiter.d.ts.map +1 -0
- package/dist/services/queue/job-waiter.js +77 -0
- package/dist/services/queue/job-waiter.js.map +1 -0
- package/dist/services/queue/queue-backend.factory.d.ts +12 -0
- package/dist/services/queue/queue-backend.factory.d.ts.map +1 -0
- package/dist/services/queue/queue-backend.factory.js +41 -0
- package/dist/services/queue/queue-backend.factory.js.map +1 -0
- package/dist/services/queue/queue-backend.interface.d.ts +67 -0
- package/dist/services/queue/queue-backend.interface.d.ts.map +1 -0
- package/dist/services/queue/queue-backend.interface.js +19 -0
- package/dist/services/queue/queue-backend.interface.js.map +1 -0
- package/dist/services/queue/queue-policy.service.d.ts +19 -0
- package/dist/services/queue/queue-policy.service.d.ts.map +1 -0
- package/dist/services/queue/queue-policy.service.js +99 -0
- package/dist/services/queue/queue-policy.service.js.map +1 -0
- package/dist/services/response-store.service.d.ts +14 -0
- package/dist/services/response-store.service.d.ts.map +1 -0
- package/dist/services/response-store.service.js +77 -0
- package/dist/services/response-store.service.js.map +1 -0
- package/dist/services/role-normalize.service.d.ts +5 -0
- package/dist/services/role-normalize.service.d.ts.map +1 -0
- package/dist/services/role-normalize.service.js +22 -0
- package/dist/services/role-normalize.service.js.map +1 -0
- package/dist/services/settings.service.d.ts +1 -8
- package/dist/services/settings.service.d.ts.map +1 -1
- package/dist/services/settings.service.js +3 -2
- package/dist/services/settings.service.js.map +1 -1
- package/dist/services/stats.service.d.ts +33 -0
- package/dist/services/stats.service.d.ts.map +1 -1
- package/dist/services/stats.service.js +98 -4
- package/dist/services/stats.service.js.map +1 -1
- package/dist/services/system-health.service.d.ts +1 -17
- package/dist/services/system-health.service.d.ts.map +1 -1
- package/dist/services/system-health.service.js.map +1 -1
- package/dist/services/update.service.d.ts +4 -45
- package/dist/services/update.service.d.ts.map +1 -1
- package/dist/services/update.service.js.map +1 -1
- package/dist/utils/anthropic-mapper.d.ts +20 -0
- package/dist/utils/anthropic-mapper.d.ts.map +1 -0
- package/dist/utils/anthropic-mapper.js +254 -0
- package/dist/utils/anthropic-mapper.js.map +1 -0
- package/dist/utils/api-key-crypto.d.ts +10 -0
- package/dist/utils/api-key-crypto.d.ts.map +1 -0
- package/dist/utils/api-key-crypto.js +52 -0
- package/dist/utils/api-key-crypto.js.map +1 -0
- package/dist/utils/api-key-id.d.ts +13 -0
- package/dist/utils/api-key-id.d.ts.map +1 -0
- package/dist/utils/api-key-id.js +58 -0
- package/dist/utils/api-key-id.js.map +1 -0
- package/dist/utils/client-ip.d.ts +3 -16
- package/dist/utils/client-ip.d.ts.map +1 -1
- package/dist/utils/client-ip.js +10 -1
- package/dist/utils/client-ip.js.map +1 -1
- package/dist/utils/fs-safe.d.ts +5 -0
- package/dist/utils/fs-safe.d.ts.map +1 -0
- package/dist/utils/fs-safe.js +26 -0
- package/dist/utils/fs-safe.js.map +1 -0
- package/dist/utils/grok-event-parse.d.ts +18 -0
- package/dist/utils/grok-event-parse.d.ts.map +1 -0
- package/dist/utils/grok-event-parse.js +123 -0
- package/dist/utils/grok-event-parse.js.map +1 -0
- package/dist/utils/id.d.ts +3 -2
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +10 -6
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.d.ts +14 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +56 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/message-content.d.ts +24 -0
- package/dist/utils/message-content.d.ts.map +1 -0
- package/dist/utils/message-content.js +68 -0
- package/dist/utils/message-content.js.map +1 -0
- package/dist/utils/openai-mapper.d.ts +8 -19
- package/dist/utils/openai-mapper.d.ts.map +1 -1
- package/dist/utils/openai-mapper.js +26 -27
- package/dist/utils/openai-mapper.js.map +1 -1
- package/dist/utils/prisma-bytes.d.ts +8 -0
- package/dist/utils/prisma-bytes.d.ts.map +1 -0
- package/dist/utils/prisma-bytes.js +14 -0
- package/dist/utils/prisma-bytes.js.map +1 -0
- package/dist/utils/request-meta.d.ts +12 -0
- package/dist/utils/request-meta.d.ts.map +1 -0
- package/dist/utils/request-meta.js +26 -0
- package/dist/utils/request-meta.js.map +1 -0
- package/dist/utils/responses-mapper.d.ts +9 -0
- package/dist/utils/responses-mapper.d.ts.map +1 -0
- package/dist/utils/responses-mapper.js +56 -0
- package/dist/utils/responses-mapper.js.map +1 -0
- package/dist/utils/role-normalize.d.ts +9 -0
- package/dist/utils/role-normalize.d.ts.map +1 -0
- package/dist/utils/role-normalize.js +29 -0
- package/dist/utils/role-normalize.js.map +1 -0
- package/dist/utils/stream.d.ts +2 -0
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js +9 -0
- package/dist/utils/stream.js.map +1 -1
- package/package.json +21 -3
- package/prisma/migrations/20260715140000_admin_otp_session/migration.sql +29 -0
- package/prisma/migrations/20260715150000_chat_jobs/migration.sql +33 -0
- package/prisma/migrations/20260715161921_api_responses_assistants/migration.sql +80 -0
- package/prisma/migrations/20260716060000_media_assets/migration.sql +25 -0
- package/prisma/migrations/20260716070000_media_jobs/migration.sql +17 -0
- package/prisma/migrations/migration_lock.toml +1 -1
- package/prisma/schema.prisma +205 -0
- package/public/admin/allowed-extensions.js +41 -0
- package/public/admin/app.js +7245 -3339
- package/public/admin/boot.js +2106 -3
- package/public/admin/boot.js.map +1 -0
- package/public/admin/boot.legacy.js +3 -0
- package/public/admin/i18n.js +955 -95
- package/public/admin/styles.css +1133 -106
- package/scripts/api-audit-run.sh +52 -0
- package/scripts/cli-audit-run.sh +214 -0
- package/scripts/generate-allowed-extensions.cjs +23 -0
package/.env.example
CHANGED
|
@@ -61,3 +61,8 @@ LOG_LEVEL=info
|
|
|
61
61
|
TRUST_PROXY=1
|
|
62
62
|
# auto | cloudflare | nginx | x-forwarded-for | socket
|
|
63
63
|
PROXY_IP_SOURCE=auto
|
|
64
|
+
|
|
65
|
+
# Durable chat work-queue backend (every conversation is enqueued then consumed)
|
|
66
|
+
# sqlite = ChatJob table + in-process worker (default, production-ready)
|
|
67
|
+
# redis / kafka = reserved for multi-node (not implemented yet)
|
|
68
|
+
QUEUE_BACKEND=sqlite
|
package/README-ZH.md
CHANGED
|
@@ -19,13 +19,37 @@
|
|
|
19
19
|
|
|
20
20
|
**主要能力**
|
|
21
21
|
|
|
22
|
-
- OpenAI 相容 `POST /v1/chat/completions
|
|
22
|
+
- OpenAI 相容 `POST /v1/chat/completions` + **`POST /v1/responses`**(文字子集)+ Anthropic 相容 **`POST /v1/messages`**(stream / 非 stream)
|
|
23
23
|
- Thinking / `reasoning_content`(DeepSeek 風格 + Grok `thought`)
|
|
24
24
|
- 每把 key 的 **safe** / **agent** 政策 + 全域安全覆寫
|
|
25
25
|
- AES-256-GCM 加密 + 完整 chat 稽核
|
|
26
|
-
- **Admin Panel** —
|
|
26
|
+
- **Admin Panel** — OTP 登入(`gctoac admin otp`)、儀表板、對話、金鑰、文件、稽核、用量、**媒體庫**、**對話佇列**、**DDoS 中心**、安全設定、**API 能力**、PM2、系統更新;各頁統一 **KPI + 分 tab** 版面
|
|
27
|
+
- **媒體庫** — 工作室(生成/編輯/圖生影片)、資產與工作列表、瀏覽器預覽 lightbox(圖/片/聲/PDF/文字)
|
|
28
|
+
- **持久化對話佇列** — 每個對話先入隊(租約認領)再由進程內 worker 消費;Admin 可暫停/排空/取消/死信;可選 `Idempotency-Key`;無 live Response 時離線收集串流結果
|
|
27
29
|
- **DDoS/防濫用** — 可配置限流、多規則自動封鎖、反向代理真實客戶端 IP(nginx / Cloudflare)
|
|
28
|
-
- 控制 CLI
|
|
30
|
+
- 控制 CLI:生命週期 + **settings / api features / queue / ddos / keys / docs / chats / stats / models / admin sessions**(與 Admin 對齊,見下方 CLI 表)
|
|
31
|
+
- **API features**(Admin 分 tab + `gctoac api features`):協議與 Grok 能力閘(tools / vision / schema / effort…)
|
|
32
|
+
|
|
33
|
+
### Grok CLI 能力對齊(產品「100%」定義)
|
|
34
|
+
|
|
35
|
+
| 能力 | Chat | Responses | Anthropic Messages | Admin 開關 |
|
|
36
|
+
|------|:----:|:---------:|:------------------:|------------|
|
|
37
|
+
| 文字 + stream | ✅ | ✅ | ✅ | 協議開關 |
|
|
38
|
+
| Vision / 圖片 | ✅ | ✅ | ✅ | `vision` |
|
|
39
|
+
| Images `/v1/images/generations` + `/edits` | ✅ | — | — | `imagesApi` + agent key |
|
|
40
|
+
| Files `/v1/files` | ✅ | — | — | `filesOpenAiAlias` |
|
|
41
|
+
| Videos `/v1/videos`(async job) | ✅ mock | — | — | `videoApi` |
|
|
42
|
+
| Audio speech / transcriptions | ✅ mock 或 503 | — | — | `audioApi` + provider env |
|
|
43
|
+
| Tools | ✅ | ✅ | ✅(含 `tool_use`/`tool_result`) | `tools` |
|
|
44
|
+
| 回應 tool_calls | ✅* | 文字 | ✅ `tool_use` | `tools` |
|
|
45
|
+
| JSON schema | ✅ | ✅ | 可透傳 | `structuredOutput` |
|
|
46
|
+
| Reasoning effort | ✅ | ✅ | thinking→effort | `reasoningEffort` |
|
|
47
|
+
| Assistants-lite | — | — | — | `assistantsEmulation` |
|
|
48
|
+
| temperature 等採樣 | 接受† | 接受† | 接受† | `strictSampling` |
|
|
49
|
+
|
|
50
|
+
\* 視 Grok stream 是否發出 tool 事件。
|
|
51
|
+
† Grok CLI 無採樣旋鈕;`strictSampling` 可改為拒絕。
|
|
52
|
+
**不宣稱** 官方雲端 100%(embeddings / realtime 等需獨立後端)。
|
|
29
53
|
|
|
30
54
|
```text
|
|
31
55
|
Client (OpenAI SDK / curl / Open WebUI)
|
|
@@ -33,11 +57,15 @@ Client (OpenAI SDK / curl / Open WebUI)
|
|
|
33
57
|
▼
|
|
34
58
|
Express Gateway :3847
|
|
35
59
|
· 認證 · 限流 · safe/agent
|
|
60
|
+
· 入隊 ChatJob(AES-GCM payload)· SSE 以 gog.queue 佔位
|
|
36
61
|
· 代理感知 Client IP · 自動封鎖
|
|
37
|
-
· 加密稽核 · Admin /admin
|
|
62
|
+
· 加密稽核 · Admin /admin(佇列控制)
|
|
38
63
|
· gctoac start | stop | status | update
|
|
39
64
|
│
|
|
40
65
|
▼
|
|
66
|
+
進程內 worker(租約 / 公平輪詢 / 併發)
|
|
67
|
+
│
|
|
68
|
+
▼
|
|
41
69
|
grok -p … (本機 Grok CLI)
|
|
42
70
|
```
|
|
43
71
|
|
|
@@ -67,16 +95,22 @@ gctoac start # http://127.0.0.1:3847
|
|
|
67
95
|
gctoac status # runner、port、proxy、health
|
|
68
96
|
```
|
|
69
97
|
|
|
70
|
-
開啟 Admin
|
|
98
|
+
開啟 Admin(OTP 登入 — **不會**在瀏覽器長期保存 API key):
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
gctoac admin otp # 產生一次性登入碼(5 分鐘、單次使用)
|
|
102
|
+
```
|
|
71
103
|
|
|
72
104
|
```text
|
|
73
105
|
http://127.0.0.1:3847/admin/
|
|
74
106
|
```
|
|
75
107
|
|
|
76
|
-
|
|
108
|
+
在登入頁貼上 OTP。**每次登入都要新碼**(session 約 12 小時)。
|
|
109
|
+
|
|
110
|
+
**API** 存取(OpenAI client/腳本)請用 `gk_live_…` key:
|
|
77
111
|
|
|
78
112
|
```bash
|
|
79
|
-
gctoac key create #
|
|
113
|
+
gctoac key create # 明文只顯示一次(預設 role: admin)
|
|
80
114
|
gctoac key list # 只顯示 prefix(明文不會存庫)
|
|
81
115
|
```
|
|
82
116
|
|
|
@@ -174,38 +208,89 @@ PORT=4000
|
|
|
174
208
|
|
|
175
209
|
## CLI(`gctoac` / `gcoa`)
|
|
176
210
|
|
|
177
|
-
全域選項:`--home <path>`、`--port <n>`(預設 **3847
|
|
211
|
+
全域選項:`--home <path>`、`--port <n>`(預設 **3847**)、`--json`(支援的指令輸出 JSON)。
|
|
212
|
+
|
|
213
|
+
多數控制指令**直連本機 DB**(與 gateway 同一 `DATABASE_URL`),政策類變更約 **2–5 秒**內被執行中進程重載,**無需重啟**。
|
|
214
|
+
|
|
215
|
+
### 生命週期與維運
|
|
178
216
|
|
|
179
217
|
| 指令 | 說明 |
|
|
180
218
|
|------|------|
|
|
181
219
|
| `gctoac setup` | 建目錄、`.env`、migrate、seed admin key,盡量安裝 pm2 |
|
|
182
|
-
| `gctoac start` |
|
|
183
|
-
| `gctoac
|
|
184
|
-
| `gctoac
|
|
185
|
-
| `gctoac
|
|
186
|
-
| `gctoac
|
|
187
|
-
| `gctoac
|
|
188
|
-
| `gctoac
|
|
189
|
-
| `gctoac
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
|
194
|
-
|
|
195
|
-
| `gctoac
|
|
196
|
-
| `gctoac
|
|
197
|
-
| `gctoac
|
|
198
|
-
| `gctoac
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
|
203
|
-
|
|
220
|
+
| `gctoac start` / `start -f` / `start --pm2` | 啟動 gateway |
|
|
221
|
+
| `gctoac stop` / `restart` | 停止/重啟 |
|
|
222
|
+
| `gctoac status` | Runner、port、proxy、health |
|
|
223
|
+
| `gctoac doctor` | 環境全面檢查 |
|
|
224
|
+
| `gctoac logs` / `logs clear` | 日誌 |
|
|
225
|
+
| `gctoac migrate` / `seed` | DB migrate/seed |
|
|
226
|
+
| `gctoac update` / `update --check` | 自我更新 |
|
|
227
|
+
| `gctoac open` / `version` | URL/版本 |
|
|
228
|
+
|
|
229
|
+
### Admin 登入與面板
|
|
230
|
+
|
|
231
|
+
| 指令 | 說明 |
|
|
232
|
+
|------|------|
|
|
233
|
+
| `gctoac admin status` / `on` / `off` | 面板開關(**只能用 CLI `on` 重開**) |
|
|
234
|
+
| `gctoac admin otp` | 一次性 SPA 登入碼(5 分鐘、單次) |
|
|
235
|
+
| `gctoac admin sessions` | 列出有效 OTP session |
|
|
236
|
+
| `gctoac admin sessions revoke <id\|all\|all-expired>` | 撤銷 session |
|
|
237
|
+
|
|
238
|
+
### 金鑰
|
|
239
|
+
|
|
240
|
+
| 指令 | 說明 |
|
|
241
|
+
|------|------|
|
|
242
|
+
| `gctoac key create` / `list` / `show <id>` | 建立/列表/詳情 |
|
|
243
|
+
| `gctoac key update <id> --name … --mode safe\|agent --rate-limit n --active on\|off` | 更新 |
|
|
244
|
+
| `gctoac key revoke <id>` / `activate <id>` | 撤銷/重新啟用 |
|
|
245
|
+
|
|
246
|
+
### 安全設定(Safety)
|
|
247
|
+
|
|
248
|
+
| 指令 | 說明 |
|
|
249
|
+
|------|------|
|
|
250
|
+
| `gctoac settings` / `settings get` | 顯示全域 safe、tools、turns、timeout、model |
|
|
251
|
+
| `gctoac settings set --global-safe on\|off --tools none\|readonly --max-turns n --timeout-ms n --default-model …` | 寫入 |
|
|
252
|
+
| `gctoac settings preset local\|prod\|code\|read\|chat\|long` | 套用建議預設並儲存 |
|
|
253
|
+
|
|
254
|
+
### 對話佇列
|
|
255
|
+
|
|
256
|
+
| 指令 | 說明 |
|
|
257
|
+
|------|------|
|
|
258
|
+
| `gctoac queue` / `queue stats` | 深度與各狀態計數 |
|
|
259
|
+
| `gctoac queue policy get\|set\|preset relaxed\|balanced\|strict` | 政策 |
|
|
260
|
+
| `gctoac queue pause` / `resume` / `drain` / `undrain` | 暫停/恢復/排空 |
|
|
261
|
+
| `gctoac queue jobs` / `queue job <id>` | 列表/詳情 |
|
|
262
|
+
| `gctoac queue cancel\|requeue\|priority <id> …` | 作業操作 |
|
|
263
|
+
| `gctoac queue purge-dead --yes` | 清死信/失敗/取消 |
|
|
264
|
+
|
|
265
|
+
### DDoS/黑名單
|
|
266
|
+
|
|
267
|
+
| 指令 | 說明 |
|
|
268
|
+
|------|------|
|
|
269
|
+
| `gctoac ddos` | 政策摘要 + 黑名單 |
|
|
270
|
+
| `gctoac ddos policy get\|set\|preset\|reset` | 政策 |
|
|
271
|
+
| `gctoac ddos ban <ip> [--ttl 3600] [--reason …]` | 封鎖 |
|
|
272
|
+
| `gctoac ddos unban <ip>` / `blacklist` | 解封/列表 |
|
|
273
|
+
|
|
274
|
+
### 觀測與資料
|
|
275
|
+
|
|
276
|
+
| 指令 | 說明 |
|
|
277
|
+
|------|------|
|
|
278
|
+
| `gctoac stats` | 儀表板式摘要 |
|
|
279
|
+
| `gctoac models [--refresh]` | 本機 Grok 模型列表 |
|
|
280
|
+
| `gctoac docs list\|show\|delete` | 文件(delete 需 `--yes`) |
|
|
281
|
+
| `gctoac chats list\|show` | API 對話請求(meta) |
|
|
282
|
+
| `gctoac conversations list\|delete` | Playground 線程 |
|
|
283
|
+
| `gctoac audit list [--action …]` | 稽核日誌 |
|
|
204
284
|
|
|
205
285
|
```bash
|
|
206
286
|
gctoac --home ~/.gctoac-alt setup
|
|
207
287
|
gctoac --port 3847 start
|
|
208
288
|
gctoac status
|
|
289
|
+
gctoac admin otp
|
|
290
|
+
gctoac settings preset prod
|
|
291
|
+
gctoac queue pause
|
|
292
|
+
gctoac ddos ban 203.0.113.10 --ttl 3600 --reason abuse
|
|
293
|
+
gctoac stats --json
|
|
209
294
|
gctoac logs clear
|
|
210
295
|
```
|
|
211
296
|
|
|
@@ -215,16 +300,20 @@ gctoac logs clear
|
|
|
215
300
|
|
|
216
301
|
| 功能 | 說明 |
|
|
217
302
|
|------|------|
|
|
218
|
-
| OpenAI API | `POST /v1/chat/completions
|
|
303
|
+
| OpenAI API | `POST /v1/chat/completions`、`POST /v1/responses`(文字)、`GET /v1/models` |
|
|
304
|
+
| Anthropic API | `POST /v1/messages`(Bearer 或 `x-api-key`) |
|
|
219
305
|
| Thinking | `reasoning_content` + Grok `thought` + `grok.*` |
|
|
220
306
|
| 文件 | 類型嗅探上傳、加密儲存(DB 或檔案系統)、下載 |
|
|
221
307
|
| Safe / Agent | 每 key 政策;可全域強制 safe |
|
|
222
308
|
| 加密 | AES-256-GCM 加密 prompt、response、檔案 |
|
|
223
309
|
| 對話歷史 | 多輪對話、上下文模式(full / summary / recent) |
|
|
224
|
-
| Admin Panel |
|
|
225
|
-
|
|
|
310
|
+
| Admin Panel | OTP session 登入;**分 tab** 頁面(佇列/媒體/系統/PM2/DDoS/API 能力);精簡 EN/繁中文案 |
|
|
311
|
+
| 媒體庫 | 工作室(生成/編輯/影片)、資產與工作、多格式預覽 lightbox(`blob:` CSP 安全) |
|
|
312
|
+
| 對話佇列 | 持久化 SQLite 工作、公平輪詢、暫停/排空、死信、Idempotency-Key、`QUEUE_BACKEND`、離線串流 fallback |
|
|
313
|
+
| DDoS 中心 | 即時連線、黑名單、自動封鎖、可配置策略與預設檔(分 tab) |
|
|
226
314
|
| 反向代理 | 信任層數 + CF / nginx / X-Forwarded-For 真實 IP |
|
|
227
|
-
|
|
|
315
|
+
| 認證 | API key:**scrypt** hash(舊 SHA-256 登入時自動升級);Admin SPA:OTP → session |
|
|
316
|
+
| CLI | 生命週期、preferred runner、日誌、自我更新、`admin otp` |
|
|
228
317
|
| 運維 | SQLite、PM2、日誌自動裁剪(>5 MB)、GitHub Actions CI |
|
|
229
318
|
|
|
230
319
|
---
|
|
@@ -239,10 +328,13 @@ Authorization: Bearer gk_live_...
|
|
|
239
328
|
|
|
240
329
|
### Chat(stream)
|
|
241
330
|
|
|
331
|
+
佇列啟用時(預設),stream 可能先出現 `gog.queue` 排隊事件,再是一般 OpenAI chunk。
|
|
332
|
+
|
|
242
333
|
```bash
|
|
243
334
|
curl -sN http://127.0.0.1:3847/v1/chat/completions \
|
|
244
335
|
-H "Authorization: Bearer $API_KEY" \
|
|
245
336
|
-H "Content-Type: application/json" \
|
|
337
|
+
-H "Idempotency-Key: my-client-req-001" \
|
|
246
338
|
-d '{
|
|
247
339
|
"model": "grok-4.5",
|
|
248
340
|
"stream": true,
|
|
@@ -251,6 +343,8 @@ curl -sN http://127.0.0.1:3847/v1/chat/completions \
|
|
|
251
343
|
}'
|
|
252
344
|
```
|
|
253
345
|
|
|
346
|
+
`Idempotency-Key` 可選(依 API key 隔離)。同一 key 在 job 進行中可安全重試。
|
|
347
|
+
|
|
254
348
|
### OpenAI SDK
|
|
255
349
|
|
|
256
350
|
```ts
|
|
@@ -297,6 +391,42 @@ console.log(res.choices[0].message.content);
|
|
|
297
391
|
| `text` | `content` / `delta.content` | — |
|
|
298
392
|
| `end` | `finish_reason` | `grok.sessionId`、`grok.stopReason` |
|
|
299
393
|
|
|
394
|
+
### 持久化對話佇列
|
|
395
|
+
|
|
396
|
+
佇列政策**啟用**時(預設),每個 `POST /v1/chat/completions` 會寫入 `ChatJob` 表,再由進程內 worker 以租約/心跳/開機回收語意消費。
|
|
397
|
+
|
|
398
|
+
| 主題 | 行為 |
|
|
399
|
+
|------|------|
|
|
400
|
+
| **語意** | At-least-once;claim 時 visibility timeout(lease);重啟回收 in-flight |
|
|
401
|
+
| **公平** | 預設依 API key **加權輪詢**,或全域 FIFO;每 key + 全域併發上限 |
|
|
402
|
+
| **Stream** | 連線保持;先收到 `object: "gog.queue"` 排隊事件,再是一般 OpenAI chunk |
|
|
403
|
+
| **背壓** | `maxQueueDepth` / `maxQueueDepthPerKey` → **429** `queue_full`;drain/停用 → **503** `queue_draining`;等待逾時 → **504**;取消 → **409** |
|
|
404
|
+
| **冪等** | 可選 `Idempotency-Key`(依 API key 隔離)。進行中重用;成功回 already-done;失敗/死信/取消後可重試 |
|
|
405
|
+
| **後端** | `QUEUE_BACKEND=sqlite`(預設、可上線)。`redis`/`kafka` 預留給多機(尚未實作 — 選用會啟動失敗) |
|
|
406
|
+
| **Payload** | Job 內容以 AES-GCM 加密存於 `ChatJob` |
|
|
407
|
+
| **Admin** | **佇列**頁:KPI、暫停/排空、政策、狀態篩選(含死信/`active`)、取消/重新入隊/優先級/清理已完成(24h+) |
|
|
408
|
+
|
|
409
|
+
Stream 預覽:
|
|
410
|
+
|
|
411
|
+
```text
|
|
412
|
+
data: {"object":"gog.queue","status":"queued","job_id":"…","position":2}
|
|
413
|
+
data: {"object":"gog.queue","status":"queued","job_id":"…","position":1}
|
|
414
|
+
data: {"id":"chatcmpl-…","object":"chat.completion.chunk",…}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Admin 操作(OTP **session** token 或 admin API key):
|
|
418
|
+
|
|
419
|
+
```http
|
|
420
|
+
GET /admin/api/queue/stats
|
|
421
|
+
GET /admin/api/queue/jobs?status=dead
|
|
422
|
+
GET /admin/api/queue/jobs?status=active
|
|
423
|
+
POST /admin/api/queue/pause | /resume | /drain | /undrain
|
|
424
|
+
PUT /admin/api/queue/policy
|
|
425
|
+
POST /admin/api/queue/jobs/:id/cancel | /requeue
|
|
426
|
+
POST /admin/api/queue/jobs/:id/priority # body: {"priority":0-1000}
|
|
427
|
+
POST /admin/api/queue/purge-dead
|
|
428
|
+
```
|
|
429
|
+
|
|
300
430
|
### 端點
|
|
301
431
|
|
|
302
432
|
| Method | Path | 說明 |
|
|
@@ -304,11 +434,15 @@ console.log(res.choices[0].message.content);
|
|
|
304
434
|
| GET | `/health` | 存活 |
|
|
305
435
|
| GET | `/ready` | DB + Grok 檢查 |
|
|
306
436
|
| GET | `/v1/models` | 模型列表 |
|
|
307
|
-
| POST | `/v1/chat/completions` |
|
|
437
|
+
| POST | `/v1/chat/completions` | OpenAI Chat(佇列;可選 `Idempotency-Key`) |
|
|
438
|
+
| POST | `/v1/responses` | OpenAI Responses 文字子集 |
|
|
439
|
+
| POST | `/v1/messages` | Anthropic Messages(Bearer 或 `x-api-key`) |
|
|
308
440
|
| POST | `/v1/documents` | 上傳(欄位 `file`) |
|
|
309
441
|
| GET/DELETE | `/v1/documents`… | 列表 / 軟刪除 |
|
|
310
442
|
| POST/GET/DELETE | `/v1/api-keys`… | Admin 管理 key |
|
|
311
|
-
|
|
|
443
|
+
| POST | `/admin/api/auth/login` | OTP → session token(公開,有限流) |
|
|
444
|
+
| POST | `/admin/api/auth/logout` | 撤銷 session |
|
|
445
|
+
| * | `/admin/api/*` | Admin JSON API(OTP session **或** `role=admin` API key) |
|
|
312
446
|
|
|
313
447
|
---
|
|
314
448
|
|
|
@@ -331,21 +465,41 @@ console.log(res.choices[0].message.content);
|
|
|
331
465
|
http://127.0.0.1:3847/admin/
|
|
332
466
|
```
|
|
333
467
|
|
|
468
|
+
### 登入(OTP)
|
|
469
|
+
|
|
470
|
+
Admin **SPA 不會接受長期 API key**。請產生一次性登入碼:
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
gctoac admin otp # 別名:gctoac admin login-code
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
- 有效 **5 分鐘**、**單次使用**
|
|
477
|
+
- Session token 存於 `sessionStorage`(約 **12 小時**)
|
|
478
|
+
- 登出/逾時/換瀏覽器後需重新取碼
|
|
479
|
+
|
|
480
|
+
Admin **JSON API**(`/admin/api/*`)可用:
|
|
481
|
+
|
|
482
|
+
- `Authorization: Bearer gog_sess_…`(OTP session),或
|
|
483
|
+
- `Authorization: Bearer gk_live_…`(`role=admin`)
|
|
484
|
+
|
|
334
485
|
| 頁面 | 功能 |
|
|
335
486
|
|------|------|
|
|
336
|
-
| **儀表板** | 24h KPI
|
|
337
|
-
| **對話** | 多輪 playground
|
|
487
|
+
| **儀表板** | 24h KPI、成功率、**佇列深度**、防護摘要、模型用量、運行狀態(port/加密) |
|
|
488
|
+
| **對話** | 多輪 playground、歷史、上下文模式、附件(佇列啟用時同樣先入隊) |
|
|
338
489
|
| **對話記錄** | 搜尋/篩選/分頁;**完整解密** prompt/reasoning/response |
|
|
339
490
|
| **API 金鑰** | 建立/編輯 mode/role/限流/IP 白名單;撤銷 |
|
|
340
491
|
| **文件** | 搜尋/篩選/分頁;預覽、下載、刪除;DB 與檔案系統儲存 |
|
|
341
492
|
| **稽核日誌** | 搜尋/篩選/分頁;可讀動作標籤 |
|
|
342
493
|
| **用量與防護** | 24h 統計、按模型/按金鑰分 tab、限流摘要 |
|
|
343
|
-
|
|
|
344
|
-
|
|
|
345
|
-
| **
|
|
346
|
-
|
|
|
494
|
+
| **媒體庫** | **分 tab:** 工作室 · 資產 · 工作。KPI 條。工作室模式:生成/編輯/圖生影片(Grok 長寬比)。素材庫選取 + 拖放來源。預覽 lightbox(圖/片/聲/PDF/文字) |
|
|
495
|
+
| **佇列** | **分 tab:** 總覽 · 工作列表 · 政策。KPI 條(自動 soft-refresh)。暫停/排空、死信篩選、取消/重新入隊/優先級/清理、併發與公平預設 |
|
|
496
|
+
| **DDoS 中心** | **分 tab:** 政策 · 流量 · 黑名單 · 事件。KPI 條。即時連線、最近請求、自動封鎖事件、熱門 IP、**運行時防護策略**(寬鬆/均衡/嚴格/自訂)、反向代理 IP |
|
|
497
|
+
| **安全設定** | 全域 safe、工具/turns/timeout、預設模型、精簡預設方案、關閉 Admin 面板(只能用 CLI 重開) |
|
|
498
|
+
| **API 能力** | **分 tab:** 協議 · 媒體 · 能力 · 模擬。KPI 啟用計數。預設:開放/鎖定/開發 |
|
|
499
|
+
| **PM2** | **分 tab:** 運行方式 · 連接埠 · 設定 · 日誌。KPI 進程條。Runner 切換(gctoac ↔ PM2)、監聽 port(預設 3847)、設定、清除日誌 + 自動裁剪 |
|
|
500
|
+
| **系統狀態** | **分 tab:** 軟件 · 套件 · 環境。KPI 運行條(DB/Grok CLI/併發/加密)。一鍵更新並重啟 |
|
|
347
501
|
|
|
348
|
-
Admin
|
|
502
|
+
Admin 共用 UX:分段 tab + 頂部 KPI 卡片、精簡正式 EN/繁中文案、table 操作按鈕置中;僅需運維刷新的頁面保留右上角 **重新整理**(儀表板/用量/DDoS/PM2)。
|
|
349
503
|
|
|
350
504
|
### DDoS/防濫用(運行時)
|
|
351
505
|
|
|
@@ -394,14 +548,19 @@ proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
394
548
|
|------|------|
|
|
395
549
|
| `NODE_ENV` | 預設 **`production`**。本機開發才設 `development`(美化日誌) |
|
|
396
550
|
| `PORT` | 預設 **`3847`**(亦可在 Admin → PM2 修改) |
|
|
551
|
+
| `HOST` | 監聽位址(預設 `0.0.0.0`) |
|
|
397
552
|
| `DATABASE_URL` | SQLite,例如 `file:../data/gateway.db`(相對 `prisma/`) |
|
|
398
553
|
| `ENCRYPTION_KEY` | 32-byte key:`openssl rand -base64 32` |
|
|
554
|
+
| `ADMIN_BOOTSTRAP_KEY` | 可選;首次 setup 用此字串作 admin key |
|
|
399
555
|
| `GROK_BIN` | 預設 `grok` |
|
|
400
556
|
| `GROK_DEFAULT_MODEL` | 預設模型 |
|
|
401
557
|
| `GROK_DEFAULT_CWD` / `GROK_CWD_ALLOWLIST` | Agent cwd 政策 |
|
|
558
|
+
| `GROK_TIMEOUT_MS` | Agent 預設 timeout(ms) |
|
|
402
559
|
| `GROK_ALWAYS_APPROVE` | 只對 agent;safe 一律關閉 |
|
|
403
560
|
| `GROK_SAFE_MODE` | 強制全部 key 用 safe |
|
|
404
|
-
| `
|
|
561
|
+
| `GROK_SAFE_MAX_TURNS` / `GROK_SAFE_TIMEOUT_MS` | Safe 模式預設(亦可在 Admin → 安全設定改) |
|
|
562
|
+
| `GROK_MAX_CONCURRENT` | 最多並行 Grok 進程(亦作佇列全域併發預設種子) |
|
|
563
|
+
| `QUEUE_BACKEND` | 對話佇列後端:**`sqlite`**(預設)。`redis`/`kafka` 預留(尚未實作) |
|
|
405
564
|
| `ADMIN_PANEL_ENABLED` | 硬關 `/admin`(env,需重啟)。運行時:`gctoac admin on\|off` |
|
|
406
565
|
| `PM2_ADMIN_ENABLED` | 允許 Admin 控制 PM2 |
|
|
407
566
|
| `CORS_ORIGINS` | 逗號分隔 origins(改 `PORT` 時請一併更新) |
|
|
@@ -411,9 +570,13 @@ proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
411
570
|
| `GCTOAC_HOME` | CLI 資料目錄(預設 `~/.gctoac`) |
|
|
412
571
|
| `STORAGE_DIR` | 加密大檔 + sandbox |
|
|
413
572
|
| `UPLOAD_MAX_BYTES` / `DOCUMENT_DB_MAX_BYTES` | 上傳上限/DB 與檔案系統分界 |
|
|
573
|
+
| `BODY_LIMIT` | JSON body 大小上限(預設 `1mb`) |
|
|
574
|
+
| `LOG_LEVEL` | `fatal` \| `error` \| `warn` \| `info` \| `debug` \| `trace` |
|
|
414
575
|
|
|
415
576
|
**請備份 `ENCRYPTION_KEY`。** 遺失後歷史資料無法解密。
|
|
416
577
|
|
|
578
|
+
運行時佇列政策(併發、公平、暫停/排空、深度)存於 DB(`queue_policy`),在 **Admin → 佇列** 編輯 — 不只靠 env。
|
|
579
|
+
|
|
417
580
|
---
|
|
418
581
|
|
|
419
582
|
## 生產環境
|
|
@@ -459,12 +622,13 @@ gctoac doctor # 會標示 mixed runners
|
|
|
459
622
|
## 專案結構
|
|
460
623
|
|
|
461
624
|
```text
|
|
462
|
-
src/
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
625
|
+
src/ TypeScript 原始碼(app、routes、services、cli)
|
|
626
|
+
src/services/queue/ 持久化對話佇列(政策、ChatJob、worker、backend 介面)
|
|
627
|
+
public/admin/ Admin SPA(OTP 登入 + 各頁)
|
|
628
|
+
prisma/ Schema、migrations(含 chat_jobs)、seed
|
|
629
|
+
dist/ 編譯後 JS(gitignore;npm run build / prepublishOnly 產生)
|
|
630
|
+
scripts/ prepare、install.sh
|
|
631
|
+
tests/ Vitest(單元 + 整合)
|
|
468
632
|
```
|
|
469
633
|
|
|
470
634
|
---
|
|
@@ -493,14 +657,15 @@ npm publish --access public --otp=<2FA六位碼>
|
|
|
493
657
|
|
|
494
658
|
## 安全注意
|
|
495
659
|
|
|
496
|
-
- API key
|
|
497
|
-
- Chat prompt/response
|
|
660
|
+
- API key 存 **scrypt** hash(`scrypt$salt$hash`);舊 **SHA-256** 列在驗證時會自動升級
|
|
661
|
+
- Chat prompt/response、文件與 **佇列 job payload** 以 **AES-256-GCM** 靜態加密
|
|
498
662
|
- 對外 client 請用 **`safe`** mode
|
|
663
|
+
- **Admin SPA:** 只用 OTP(`gctoac admin otp`)→ 短時 session 存 `sessionStorage`(XSS = 在 session 有效期內完全接管)
|
|
499
664
|
- **客戶端 IP:** 只有 **可信代理列表** 內的 TCP peer(預設 `127.0.0.1`)先會採信 `CF-Connecting-IP`/`X-Real-IP`/`XFF`。直連客戶**無法偽造 header** 繞過限流或 ban 他人。遠端 nginx 請把其 IP 加進 Admin → DDoS → 可信代理。
|
|
500
|
-
- Admin 只應開喺本機/VPN
|
|
501
|
-
- 不要 commit `.env`,不要外洩 admin key
|
|
665
|
+
- Admin 只應開喺本機/VPN
|
|
666
|
+
- 不要 commit `.env`,不要外洩 admin key/OTP
|
|
502
667
|
- 可完全關閉 Admin:`gctoac admin off`(只能用 `gctoac admin on` 重開)
|
|
503
|
-
- 一鍵更新/PM2/改 port 需 admin(視 admin key 為 root)
|
|
668
|
+
- 一鍵更新/PM2/改 port 需 admin(視 admin key/OTP session 為 root)
|
|
504
669
|
|
|
505
670
|
---
|
|
506
671
|
|