feat: add configuration backup, sync, and version checker services

- Implemented ConfigBackupService for backing up local configuration files.
- Added ConfigSyncService to download configuration files from GitHub with remote-first conflict resolution.
- Created VersionChecker to check application version against the latest GitHub release with caching.
- Introduced security validation utilities for input validation to prevent common vulnerabilities.
- Developed utility functions to start and stop Docusaurus documentation server.
This commit is contained in:
catlog22
2026-02-05 17:32:31 +08:00
parent 834951a08d
commit 5cfeb59124
265 changed files with 8714 additions and 1408 deletions

View File

@@ -3,201 +3,252 @@ import ComponentCreator from '@docusaurus/ComponentCreator';
export default [
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', '942'),
path: '/docs/__docusaurus/debug',
component: ComponentCreator('/docs/__docusaurus/debug', 'e58'),
exact: true
},
{
path: '/docs/__docusaurus/debug/config',
component: ComponentCreator('/docs/__docusaurus/debug/config', '2ce'),
exact: true
},
{
path: '/docs/__docusaurus/debug/content',
component: ComponentCreator('/docs/__docusaurus/debug/content', '11b'),
exact: true
},
{
path: '/docs/__docusaurus/debug/globalData',
component: ComponentCreator('/docs/__docusaurus/debug/globalData', 'f13'),
exact: true
},
{
path: '/docs/__docusaurus/debug/metadata',
component: ComponentCreator('/docs/__docusaurus/debug/metadata', 'bff'),
exact: true
},
{
path: '/docs/__docusaurus/debug/registry',
component: ComponentCreator('/docs/__docusaurus/debug/registry', '830'),
exact: true
},
{
path: '/docs/__docusaurus/debug/routes',
component: ComponentCreator('/docs/__docusaurus/debug/routes', '13e'),
exact: true
},
{
path: '/docs/',
component: ComponentCreator('/docs/', '43a'),
routes: [
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', 'a90'),
path: '/docs/',
component: ComponentCreator('/docs/', '93c'),
routes: [
{
path: '/docs/docs',
component: ComponentCreator('/docs/docs', 'c2e'),
path: '/docs/',
component: ComponentCreator('/docs/', 'fdb'),
routes: [
{
path: '/docs/docs/commands/cli/cli-init',
component: ComponentCreator('/docs/docs/commands/cli/cli-init', 'c74'),
path: '/docs/commands/cli/cli-init',
component: ComponentCreator('/docs/commands/cli/cli-init', '159'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/cli/codex-review',
component: ComponentCreator('/docs/docs/commands/cli/codex-review', '937'),
path: '/docs/commands/cli/codex-review',
component: ComponentCreator('/docs/commands/cli/codex-review', 'c66'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw',
component: ComponentCreator('/docs/docs/commands/general/ccw', '3fb'),
path: '/docs/commands/general/ccw',
component: ComponentCreator('/docs/commands/general/ccw', '3c1'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-coordinator',
component: ComponentCreator('/docs/docs/commands/general/ccw-coordinator', 'a90'),
path: '/docs/commands/general/ccw-coordinator',
component: ComponentCreator('/docs/commands/general/ccw-coordinator', '3b4'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-debug',
component: ComponentCreator('/docs/docs/commands/general/ccw-debug', '663'),
path: '/docs/commands/general/ccw-debug',
component: ComponentCreator('/docs/commands/general/ccw-debug', 'e0c'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-plan',
component: ComponentCreator('/docs/docs/commands/general/ccw-plan', '40b'),
path: '/docs/commands/general/ccw-plan',
component: ComponentCreator('/docs/commands/general/ccw-plan', '9ae'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/ccw-test',
component: ComponentCreator('/docs/docs/commands/general/ccw-test', '99d'),
path: '/docs/commands/general/ccw-test',
component: ComponentCreator('/docs/commands/general/ccw-test', 'e6f'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/codex-coordinator',
component: ComponentCreator('/docs/docs/commands/general/codex-coordinator', '996'),
path: '/docs/commands/general/codex-coordinator',
component: ComponentCreator('/docs/commands/general/codex-coordinator', 'e7d'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/general/flow-create',
component: ComponentCreator('/docs/docs/commands/general/flow-create', 'd91'),
path: '/docs/commands/general/flow-create',
component: ComponentCreator('/docs/commands/general/flow-create', '507'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-convert-to-plan',
component: ComponentCreator('/docs/docs/commands/issue/issue-convert-to-plan', 'd90'),
path: '/docs/commands/issue/issue-convert-to-plan',
component: ComponentCreator('/docs/commands/issue/issue-convert-to-plan', 'a36'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-discover',
component: ComponentCreator('/docs/docs/commands/issue/issue-discover', '2a1'),
path: '/docs/commands/issue/issue-discover',
component: ComponentCreator('/docs/commands/issue/issue-discover', '5ae'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-execute',
component: ComponentCreator('/docs/docs/commands/issue/issue-execute', 'abb'),
path: '/docs/commands/issue/issue-execute',
component: ComponentCreator('/docs/commands/issue/issue-execute', '20b'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-from-brainstorm',
component: ComponentCreator('/docs/docs/commands/issue/issue-from-brainstorm', '72b'),
path: '/docs/commands/issue/issue-from-brainstorm',
component: ComponentCreator('/docs/commands/issue/issue-from-brainstorm', '10c'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-new',
component: ComponentCreator('/docs/docs/commands/issue/issue-new', 'c58'),
path: '/docs/commands/issue/issue-new',
component: ComponentCreator('/docs/commands/issue/issue-new', 'abb'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-plan',
component: ComponentCreator('/docs/docs/commands/issue/issue-plan', 'fd2'),
path: '/docs/commands/issue/issue-plan',
component: ComponentCreator('/docs/commands/issue/issue-plan', '57f'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/issue/issue-queue',
component: ComponentCreator('/docs/docs/commands/issue/issue-queue', '1ce'),
path: '/docs/commands/issue/issue-queue',
component: ComponentCreator('/docs/commands/issue/issue-queue', '316'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-compact',
component: ComponentCreator('/docs/docs/commands/memory/memory-compact', '74c'),
path: '/docs/commands/memory/memory-compact',
component: ComponentCreator('/docs/commands/memory/memory-compact', 'fbd'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-docs-full-cli',
component: ComponentCreator('/docs/docs/commands/memory/memory-docs-full-cli', '7a4'),
path: '/docs/commands/memory/memory-docs-full-cli',
component: ComponentCreator('/docs/commands/memory/memory-docs-full-cli', '8b8'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-docs-related-cli',
component: ComponentCreator('/docs/docs/commands/memory/memory-docs-related-cli', 'fb4'),
path: '/docs/commands/memory/memory-docs-related-cli',
component: ComponentCreator('/docs/commands/memory/memory-docs-related-cli', '707'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-load',
component: ComponentCreator('/docs/docs/commands/memory/memory-load', 'c66'),
path: '/docs/commands/memory/memory-load',
component: ComponentCreator('/docs/commands/memory/memory-load', '1db'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-update-full',
component: ComponentCreator('/docs/docs/commands/memory/memory-update-full', 'b80'),
path: '/docs/commands/memory/memory-update-full',
component: ComponentCreator('/docs/commands/memory/memory-update-full', '3fa'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/commands/memory/memory-update-related',
component: ComponentCreator('/docs/docs/commands/memory/memory-update-related', 'f0d'),
path: '/docs/commands/memory/memory-update-related',
component: ComponentCreator('/docs/commands/memory/memory-update-related', 'c50'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/faq',
component: ComponentCreator('/docs/docs/faq', '4b2'),
path: '/docs/faq',
component: ComponentCreator('/docs/faq', '296'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/overview',
component: ComponentCreator('/docs/docs/overview', '7df'),
path: '/docs/overview',
component: ComponentCreator('/docs/overview', 'f90'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/faq',
component: ComponentCreator('/docs/docs/workflows/faq', 'f47'),
path: '/docs/overview.zh',
component: ComponentCreator('/docs/overview.zh', '7c8'),
exact: true
},
{
path: '/docs/docs/workflows/introduction',
component: ComponentCreator('/docs/docs/workflows/introduction', '4cb'),
path: '/docs/workflows/faq',
component: ComponentCreator('/docs/workflows/faq', '58c'),
exact: true
},
{
path: '/docs/workflows/introduction',
component: ComponentCreator('/docs/workflows/introduction', '702'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-1-ultra-lightweight',
component: ComponentCreator('/docs/docs/workflows/level-1-ultra-lightweight', '5c4'),
path: '/docs/workflows/level-1-ultra-lightweight',
component: ComponentCreator('/docs/workflows/level-1-ultra-lightweight', 'b4b'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-2-rapid',
component: ComponentCreator('/docs/docs/workflows/level-2-rapid', 'ad8'),
path: '/docs/workflows/level-2-rapid',
component: ComponentCreator('/docs/workflows/level-2-rapid', 'fe1'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-3-standard',
component: ComponentCreator('/docs/docs/workflows/level-3-standard', '3ea'),
path: '/docs/workflows/level-3-standard',
component: ComponentCreator('/docs/workflows/level-3-standard', '65f'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-4-brainstorm',
component: ComponentCreator('/docs/docs/workflows/level-4-brainstorm', 'f4f'),
path: '/docs/workflows/level-4-brainstorm',
component: ComponentCreator('/docs/workflows/level-4-brainstorm', 'fae'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/docs/workflows/level-5-intelligent',
component: ComponentCreator('/docs/docs/workflows/level-5-intelligent', '84a'),
path: '/docs/workflows/level-5-intelligent',
component: ComponentCreator('/docs/workflows/level-5-intelligent', 'fa9'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/',
component: ComponentCreator('/docs/', '6df'),
exact: true,
sidebar: "docs"
},
{
path: '/docs/',
component: ComponentCreator('/docs/', '907'),
exact: true
}
]
}