@coralai/sps-cli 0.55.13 → 0.56.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/dist/commands/cardMarkComplete.d.ts.map +1 -1
- package/dist/commands/cardMarkComplete.js +6 -3
- package/dist/commands/cardMarkComplete.js.map +1 -1
- package/dist/commands/projectInit.d.ts +18 -16
- package/dist/commands/projectInit.d.ts.map +1 -1
- package/dist/commands/projectInit.js +59 -186
- package/dist/commands/projectInit.js.map +1 -1
- package/dist/commands/skillCommand.js +7 -4
- package/dist/commands/skillCommand.js.map +1 -1
- package/dist/commands/tick.d.ts +2 -20
- package/dist/commands/tick.d.ts.map +1 -1
- package/dist/commands/tick.js +58 -1
- package/dist/commands/tick.js.map +1 -1
- package/dist/console/index.d.ts.map +1 -1
- package/dist/console/index.js +4 -0
- package/dist/console/index.js.map +1 -1
- package/dist/console/routes/chat.d.ts.map +1 -1
- package/dist/console/routes/chat.js +121 -0
- package/dist/console/routes/chat.js.map +1 -1
- package/dist/console/routes/projects.d.ts +0 -6
- package/dist/console/routes/projects.d.ts.map +1 -1
- package/dist/console/routes/projects.js +11 -2
- package/dist/console/routes/projects.js.map +1 -1
- package/dist/console/routes/providers.d.ts +10 -0
- package/dist/console/routes/providers.d.ts.map +1 -0
- package/dist/console/routes/providers.js +63 -0
- package/dist/console/routes/providers.js.map +1 -0
- package/dist/console/routes/smartarrange.d.ts +4 -0
- package/dist/console/routes/smartarrange.d.ts.map +1 -0
- package/dist/console/routes/smartarrange.js +107 -0
- package/dist/console/routes/smartarrange.js.map +1 -0
- package/dist/console/routes/system.d.ts.map +1 -1
- package/dist/console/routes/system.js +28 -0
- package/dist/console/routes/system.js.map +1 -1
- package/dist/console/routes/workers.d.ts.map +1 -1
- package/dist/console/routes/workers.js +36 -4
- package/dist/console/routes/workers.js.map +1 -1
- package/dist/console-assets/assets/index-CWkYVI5d.js +600 -0
- package/dist/console-assets/assets/index-CnUBHNsN.css +10 -0
- package/dist/console-assets/index.html +2 -2
- package/dist/core/agents/AcpBackend.d.ts +24 -0
- package/dist/core/agents/AcpBackend.d.ts.map +1 -0
- package/dist/core/agents/AcpBackend.js +86 -0
- package/dist/core/agents/AcpBackend.js.map +1 -0
- package/dist/core/agents/AgentBackend.d.ts +53 -0
- package/dist/core/agents/AgentBackend.d.ts.map +1 -0
- package/dist/core/agents/AgentBackend.js +18 -0
- package/dist/core/agents/AgentBackend.js.map +1 -0
- package/dist/core/agents/ClaudeAcpBackend.d.ts +13 -0
- package/dist/core/agents/ClaudeAcpBackend.d.ts.map +1 -0
- package/dist/core/agents/ClaudeAcpBackend.js +14 -0
- package/dist/core/agents/ClaudeAcpBackend.js.map +1 -0
- package/dist/core/agents/ClaudeSdkBackend.d.ts +26 -0
- package/dist/core/agents/ClaudeSdkBackend.d.ts.map +1 -0
- package/dist/core/agents/ClaudeSdkBackend.js +102 -0
- package/dist/core/agents/ClaudeSdkBackend.js.map +1 -0
- package/dist/core/agents/CodexAppServerBackend.d.ts +33 -0
- package/dist/core/agents/CodexAppServerBackend.d.ts.map +1 -0
- package/dist/core/agents/CodexAppServerBackend.js +168 -0
- package/dist/core/agents/CodexAppServerBackend.js.map +1 -0
- package/dist/core/agents/OpenAiAgentBackend.d.ts +39 -0
- package/dist/core/agents/OpenAiAgentBackend.d.ts.map +1 -0
- package/dist/core/agents/OpenAiAgentBackend.js +132 -0
- package/dist/core/agents/OpenAiAgentBackend.js.map +1 -0
- package/dist/core/agents/agentsMd.d.ts +2 -0
- package/dist/core/agents/agentsMd.d.ts.map +1 -0
- package/dist/core/agents/agentsMd.js +22 -0
- package/dist/core/agents/agentsMd.js.map +1 -0
- package/dist/core/agents/localTracing.d.ts +3 -0
- package/dist/core/agents/localTracing.d.ts.map +1 -0
- package/dist/core/agents/localTracing.js +42 -0
- package/dist/core/agents/localTracing.js.map +1 -0
- package/dist/core/agents/resolveBackend.d.ts +26 -0
- package/dist/core/agents/resolveBackend.d.ts.map +1 -0
- package/dist/core/agents/resolveBackend.js +27 -0
- package/dist/core/agents/resolveBackend.js.map +1 -0
- package/dist/core/agents/workerOutputSink.d.ts +4 -0
- package/dist/core/agents/workerOutputSink.d.ts.map +1 -0
- package/dist/core/agents/workerOutputSink.js +39 -0
- package/dist/core/agents/workerOutputSink.js.map +1 -0
- package/dist/core/config.d.ts +6 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/intel/RuntimeSession.d.ts +16 -0
- package/dist/core/intel/RuntimeSession.d.ts.map +1 -0
- package/dist/core/intel/RuntimeSession.js +89 -0
- package/dist/core/intel/RuntimeSession.js.map +1 -0
- package/dist/core/intel/agentsConfig.d.ts +20 -0
- package/dist/core/intel/agentsConfig.d.ts.map +1 -0
- package/dist/core/intel/agentsConfig.js +68 -0
- package/dist/core/intel/agentsConfig.js.map +1 -0
- package/dist/core/intel/planStore.d.ts +23 -0
- package/dist/core/intel/planStore.d.ts.map +1 -0
- package/dist/core/intel/planStore.js +67 -0
- package/dist/core/intel/planStore.js.map +1 -0
- package/dist/core/intel/types.d.ts +86 -0
- package/dist/core/intel/types.d.ts.map +1 -0
- package/dist/core/intel/types.js +8 -0
- package/dist/core/intel/types.js.map +1 -0
- package/dist/core/memoryIngest.d.ts +18 -0
- package/dist/core/memoryIngest.d.ts.map +1 -0
- package/dist/core/memoryIngest.js +56 -0
- package/dist/core/memoryIngest.js.map +1 -0
- package/dist/core/memoryProvider.d.ts +63 -0
- package/dist/core/memoryProvider.d.ts.map +1 -0
- package/dist/core/memoryProvider.js +205 -0
- package/dist/core/memoryProvider.js.map +1 -0
- package/dist/core/skillStore.d.ts.map +1 -1
- package/dist/core/skillStore.js +2 -1
- package/dist/core/skillStore.js.map +1 -1
- package/dist/core/skills/SkillsManager.d.ts +38 -0
- package/dist/core/skills/SkillsManager.d.ts.map +1 -0
- package/dist/core/skills/SkillsManager.js +231 -0
- package/dist/core/skills/SkillsManager.js.map +1 -0
- package/dist/core/skills/distribution.d.ts +64 -0
- package/dist/core/skills/distribution.d.ts.map +1 -0
- package/dist/core/skills/distribution.js +269 -0
- package/dist/core/skills/distribution.js.map +1 -0
- package/dist/core/skills/index.d.ts +13 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/skills/index.js +13 -0
- package/dist/core/skills/index.js.map +1 -0
- package/dist/core/skills/types.d.ts +44 -0
- package/dist/core/skills/types.d.ts.map +1 -0
- package/dist/core/skills/types.js +9 -0
- package/dist/core/skills/types.js.map +1 -0
- package/dist/core/taskPrompts.d.ts +0 -12
- package/dist/core/taskPrompts.d.ts.map +1 -1
- package/dist/core/taskPrompts.js +0 -14
- package/dist/core/taskPrompts.js.map +1 -1
- package/dist/core/transcriptIngest.d.ts +37 -0
- package/dist/core/transcriptIngest.d.ts.map +1 -0
- package/dist/core/transcriptIngest.js +137 -0
- package/dist/core/transcriptIngest.js.map +1 -0
- package/dist/core/wiki/types.d.ts +282 -745
- package/dist/core/wiki/types.d.ts.map +1 -1
- package/dist/core/wiki/types.js +1 -1
- package/dist/core/wiki/types.js.map +1 -1
- package/dist/engines/SmartArrangeEngine.d.ts +75 -0
- package/dist/engines/SmartArrangeEngine.d.ts.map +1 -0
- package/dist/engines/SmartArrangeEngine.js +112 -0
- package/dist/engines/SmartArrangeEngine.js.map +1 -0
- package/dist/engines/StageEngine.d.ts +3 -17
- package/dist/engines/StageEngine.d.ts.map +1 -1
- package/dist/engines/StageEngine.js +13 -91
- package/dist/engines/StageEngine.js.map +1 -1
- package/dist/engines/smartarrange/AcpWorkerExec.d.ts +35 -0
- package/dist/engines/smartarrange/AcpWorkerExec.d.ts.map +1 -0
- package/dist/engines/smartarrange/AcpWorkerExec.js +71 -0
- package/dist/engines/smartarrange/AcpWorkerExec.js.map +1 -0
- package/dist/engines/smartarrange/cardSink.d.ts +29 -0
- package/dist/engines/smartarrange/cardSink.d.ts.map +1 -0
- package/dist/engines/smartarrange/cardSink.js +43 -0
- package/dist/engines/smartarrange/cardSink.js.map +1 -0
- package/dist/engines/smartarrange/runner.d.ts +24 -0
- package/dist/engines/smartarrange/runner.d.ts.map +1 -0
- package/dist/engines/smartarrange/runner.js +116 -0
- package/dist/engines/smartarrange/runner.js.map +1 -0
- package/dist/engines/smartarrange/screenshot.d.ts +5 -0
- package/dist/engines/smartarrange/screenshot.d.ts.map +1 -0
- package/dist/engines/smartarrange/screenshot.js +117 -0
- package/dist/engines/smartarrange/screenshot.js.map +1 -0
- package/dist/main.js +127 -92
- package/dist/main.js.map +1 -1
- package/dist/manager/worker-manager-impl.d.ts.map +1 -1
- package/dist/manager/worker-manager-impl.js +7 -0
- package/dist/manager/worker-manager-impl.js.map +1 -1
- package/dist/providers/LLMClient.d.ts +32 -0
- package/dist/providers/LLMClient.d.ts.map +1 -0
- package/dist/providers/LLMClient.js +108 -0
- package/dist/providers/LLMClient.js.map +1 -0
- package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
- package/dist/providers/MarkdownTaskBackend.js +3 -2
- package/dist/providers/MarkdownTaskBackend.js.map +1 -1
- package/dist/providers/llm/chatTools.d.ts +11 -0
- package/dist/providers/llm/chatTools.d.ts.map +1 -0
- package/dist/providers/llm/chatTools.js +57 -0
- package/dist/providers/llm/chatTools.js.map +1 -0
- package/dist/providers/llm/codexAuth.d.ts +8 -0
- package/dist/providers/llm/codexAuth.d.ts.map +1 -0
- package/dist/providers/llm/codexAuth.js +57 -0
- package/dist/providers/llm/codexAuth.js.map +1 -0
- package/dist/providers/llm/codexModel.d.ts +14 -0
- package/dist/providers/llm/codexModel.d.ts.map +1 -0
- package/dist/providers/llm/codexModel.js +96 -0
- package/dist/providers/llm/codexModel.js.map +1 -0
- package/dist/providers/llm/localSubscription.d.ts +15 -0
- package/dist/providers/llm/localSubscription.d.ts.map +1 -0
- package/dist/providers/llm/localSubscription.js +66 -0
- package/dist/providers/llm/localSubscription.js.map +1 -0
- package/dist/providers/llm/modelFactory.d.ts +14 -0
- package/dist/providers/llm/modelFactory.d.ts.map +1 -0
- package/dist/providers/llm/modelFactory.js +22 -0
- package/dist/providers/llm/modelFactory.js.map +1 -0
- package/dist/providers/llm/monitorSkills.d.ts +6 -0
- package/dist/providers/llm/monitorSkills.d.ts.map +1 -0
- package/dist/providers/llm/monitorSkills.js +37 -0
- package/dist/providers/llm/monitorSkills.js.map +1 -0
- package/dist/providers/llm/probeTools.d.ts +7 -0
- package/dist/providers/llm/probeTools.d.ts.map +1 -0
- package/dist/providers/llm/probeTools.js +84 -0
- package/dist/providers/llm/probeTools.js.map +1 -0
- package/dist/providers/llm/providers.d.ts +26 -0
- package/dist/providers/llm/providers.d.ts.map +1 -0
- package/dist/providers/llm/providers.js +68 -0
- package/dist/providers/llm/providers.js.map +1 -0
- package/dist/providers/llm/skillTools.d.ts +4 -0
- package/dist/providers/llm/skillTools.d.ts.map +1 -0
- package/dist/providers/llm/skillTools.js +42 -0
- package/dist/providers/llm/skillTools.js.map +1 -0
- package/dist/providers/llm/workerTools.d.ts +9 -0
- package/dist/providers/llm/workerTools.d.ts.map +1 -0
- package/dist/providers/llm/workerTools.js +111 -0
- package/dist/providers/llm/workerTools.js.map +1 -0
- package/dist/providers/mcp/spsMcpServer.d.ts +15 -0
- package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -0
- package/dist/providers/mcp/spsMcpServer.js +67 -0
- package/dist/providers/mcp/spsMcpServer.js.map +1 -0
- package/dist/providers/mcp/spsMcpStdio.d.ts +2 -0
- package/dist/providers/mcp/spsMcpStdio.d.ts.map +1 -0
- package/dist/providers/mcp/spsMcpStdio.js +32 -0
- package/dist/providers/mcp/spsMcpStdio.js.map +1 -0
- package/dist/providers/mcp/spsMcpStdioConfig.d.ts +11 -0
- package/dist/providers/mcp/spsMcpStdioConfig.d.ts.map +1 -0
- package/dist/providers/mcp/spsMcpStdioConfig.js +19 -0
- package/dist/providers/mcp/spsMcpStdioConfig.js.map +1 -0
- package/dist/server.d.ts +23 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +23 -0
- package/dist/server.js.map +1 -1
- package/dist/services/ChatService.d.ts +8 -0
- package/dist/services/ChatService.d.ts.map +1 -1
- package/dist/services/ChatService.js +2 -0
- package/dist/services/ChatService.js.map +1 -1
- package/dist/services/LogService.d.ts +1 -1
- package/dist/services/LogService.d.ts.map +1 -1
- package/dist/services/LogService.js +3 -2
- package/dist/services/LogService.js.map +1 -1
- package/dist/services/ProjectService.d.ts +12 -2
- package/dist/services/ProjectService.d.ts.map +1 -1
- package/dist/services/ProjectService.js +1 -0
- package/dist/services/ProjectService.js.map +1 -1
- package/dist/services/SkillService.js +11 -13
- package/dist/services/SkillService.js.map +1 -1
- package/dist/services/SmartArrangeService.d.ts +12 -0
- package/dist/services/SmartArrangeService.d.ts.map +1 -0
- package/dist/services/SmartArrangeService.js +37 -0
- package/dist/services/SmartArrangeService.js.map +1 -0
- package/dist/services/SystemService.d.ts +20 -0
- package/dist/services/SystemService.d.ts.map +1 -1
- package/dist/services/SystemService.js +93 -0
- package/dist/services/SystemService.js.map +1 -1
- package/dist/services/WorkerService.d.ts +8 -0
- package/dist/services/WorkerService.d.ts.map +1 -1
- package/dist/services/WorkerService.js +73 -3
- package/dist/services/WorkerService.js.map +1 -1
- package/dist/services/container.d.ts +2 -0
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +2 -0
- package/dist/services/container.js.map +1 -1
- package/dist/shared/localTime.d.ts +8 -0
- package/dist/shared/localTime.d.ts.map +1 -0
- package/dist/shared/localTime.js +11 -0
- package/dist/shared/localTime.js.map +1 -0
- package/dist/shared/runtimePaths.d.ts +1 -1
- package/dist/shared/runtimePaths.d.ts.map +1 -1
- package/dist/shared/runtimePaths.js +2 -2
- package/dist/shared/runtimePaths.js.map +1 -1
- package/dist/shared/runtimeSchemas.d.ts +74 -245
- package/dist/shared/runtimeSchemas.d.ts.map +1 -1
- package/dist/shared/runtimeSchemas.js +2 -2
- package/dist/shared/runtimeSchemas.js.map +1 -1
- package/monitor-skills/probe-playbook/SKILL.md +32 -0
- package/monitor-skills/visual-rubric/SKILL.md +34 -0
- package/package.json +8 -8
- package/project-template/.claude/hooks/stop.sh +3 -1
- package/dist/console-assets/assets/index-BvWWj69G.js +0 -557
- package/dist/console-assets/assets/index-Eo4PuNPl.css +0 -10
- package/dist/interfaces/ACPClient.d.ts +0 -107
- package/dist/interfaces/ACPClient.d.ts.map +0 -1
- package/dist/interfaces/ACPClient.js +0 -17
- package/dist/interfaces/ACPClient.js.map +0 -1
- package/dist/interfaces/AgentRuntime.d.ts +0 -40
- package/dist/interfaces/AgentRuntime.d.ts.map +0 -1
- package/dist/interfaces/AgentRuntime.js +0 -17
- package/dist/interfaces/AgentRuntime.js.map +0 -1
- package/dist/manager/agentmemory.d.ts +0 -6
- package/dist/manager/agentmemory.d.ts.map +0 -1
- package/dist/manager/agentmemory.js +0 -73
- package/dist/manager/agentmemory.js.map +0 -1
- package/dist/models/acp.d.ts +0 -64
- package/dist/models/acp.d.ts.map +0 -1
- package/dist/models/acp.js +0 -17
- package/dist/models/acp.js.map +0 -1
- package/dist/providers/LocalACPClient.d.ts +0 -27
- package/dist/providers/LocalACPClient.d.ts.map +0 -1
- package/dist/providers/LocalACPClient.js +0 -26
- package/dist/providers/LocalACPClient.js.map +0 -1
- package/dist/providers/adapters/AcpSdkAdapter.d.ts +0 -24
- package/dist/providers/adapters/AcpSdkAdapter.d.ts.map +0 -1
- package/dist/providers/adapters/AcpSdkAdapter.js +0 -439
- package/dist/providers/adapters/AcpSdkAdapter.js.map +0 -1
- package/dist/providers/adapters/acp-fs-handlers.d.ts +0 -26
- package/dist/providers/adapters/acp-fs-handlers.d.ts.map +0 -1
- package/dist/providers/adapters/acp-fs-handlers.js +0 -61
- package/dist/providers/adapters/acp-fs-handlers.js.map +0 -1
- package/dist/providers/adapters/acp-permissions.d.ts +0 -42
- package/dist/providers/adapters/acp-permissions.d.ts.map +0 -1
- package/dist/providers/adapters/acp-permissions.js +0 -76
- package/dist/providers/adapters/acp-permissions.js.map +0 -1
- package/dist/providers/adapters/acp-session-accumulator.d.ts +0 -55
- package/dist/providers/adapters/acp-session-accumulator.d.ts.map +0 -1
- package/dist/providers/adapters/acp-session-accumulator.js +0 -133
- package/dist/providers/adapters/acp-session-accumulator.js.map +0 -1
- package/dist/providers/adapters/acp-terminal-manager.d.ts +0 -56
- package/dist/providers/adapters/acp-terminal-manager.d.ts.map +0 -1
- package/dist/providers/adapters/acp-terminal-manager.js +0 -127
- package/dist/providers/adapters/acp-terminal-manager.js.map +0 -1
- package/project-template/logs/.gitkeep +0 -0
- package/skills/architecture-decision-records/SKILL.md +0 -207
- package/skills/backend/SKILL.md +0 -62
- package/skills/backend/references/api-design.md +0 -168
- package/skills/backend/references/caching.md +0 -181
- package/skills/backend/references/data-access.md +0 -173
- package/skills/backend/references/layering.md +0 -181
- package/skills/backend/references/observability.md +0 -190
- package/skills/backend/references/resilience.md +0 -201
- package/skills/backend/references/security.md +0 -186
- package/skills/backend-architect/SKILL.md +0 -119
- package/skills/code-reviewer/SKILL.md +0 -143
- package/skills/coding-standards/SKILL.md +0 -60
- package/skills/coding-standards/references/clean-code.md +0 -258
- package/skills/coding-standards/references/code-review.md +0 -192
- package/skills/coding-standards/references/commits-and-prs.md +0 -226
- package/skills/coding-standards/references/error-strategy.md +0 -193
- package/skills/coding-standards/references/naming.md +0 -185
- package/skills/coding-standards/references/tdd.md +0 -171
- package/skills/database/SKILL.md +0 -53
- package/skills/database/references/indexing.md +0 -190
- package/skills/database/references/migrations.md +0 -199
- package/skills/database/references/nosql.md +0 -185
- package/skills/database/references/queries.md +0 -295
- package/skills/database/references/scaling.md +0 -203
- package/skills/database/references/schema.md +0 -191
- package/skills/database-optimizer/SKILL.md +0 -168
- package/skills/debugging-workflow/SKILL.md +0 -244
- package/skills/dev-worker/SKILL.md +0 -40
- package/skills/dev-worker/references/architect.md +0 -139
- package/skills/dev-worker/references/backend.md +0 -163
- package/skills/dev-worker/references/frontend.md +0 -122
- package/skills/dev-worker/references/fullstack.md +0 -179
- package/skills/dev-worker/references/optimizer.md +0 -151
- package/skills/dev-worker/references/phaser.md +0 -109
- package/skills/dev-worker/references/prototyper.md +0 -171
- package/skills/dev-worker/references/reviewer.md +0 -122
- package/skills/dev-worker/references/security.md +0 -154
- package/skills/dev-worker/references/senior.md +0 -155
- package/skills/dev-worker/references/typescript.md +0 -65
- package/skills/dev-worker/references/writer.md +0 -201
- package/skills/devops/SKILL.md +0 -55
- package/skills/devops/references/ci-cd.md +0 -204
- package/skills/devops/references/containers.md +0 -272
- package/skills/devops/references/deploy.md +0 -201
- package/skills/devops/references/iac.md +0 -252
- package/skills/devops/references/observability.md +0 -228
- package/skills/devops/references/secrets.md +0 -178
- package/skills/devops-automator/SKILL.md +0 -164
- package/skills/frontend/SKILL.md +0 -52
- package/skills/frontend/references/accessibility.md +0 -222
- package/skills/frontend/references/components.md +0 -206
- package/skills/frontend/references/performance.md +0 -219
- package/skills/frontend/references/routing.md +0 -209
- package/skills/frontend/references/state.md +0 -190
- package/skills/frontend/references/testing.md +0 -216
- package/skills/frontend-developer/SKILL.md +0 -115
- package/skills/git-workflow/SKILL.md +0 -355
- package/skills/golang/SKILL.md +0 -49
- package/skills/golang/references/concurrency.md +0 -284
- package/skills/golang/references/errors.md +0 -241
- package/skills/golang/references/idioms.md +0 -285
- package/skills/golang/references/testing.md +0 -238
- package/skills/java/SKILL.md +0 -50
- package/skills/java/references/concurrency.md +0 -194
- package/skills/java/references/idioms.md +0 -283
- package/skills/java/references/testing.md +0 -228
- package/skills/kotlin/SKILL.md +0 -47
- package/skills/kotlin/references/coroutines.md +0 -240
- package/skills/kotlin/references/idioms.md +0 -268
- package/skills/kotlin/references/testing.md +0 -219
- package/skills/mobile/SKILL.md +0 -50
- package/skills/mobile/references/architecture.md +0 -204
- package/skills/mobile/references/navigation.md +0 -158
- package/skills/mobile/references/performance.md +0 -152
- package/skills/mobile/references/platform.md +0 -166
- package/skills/mobile/references/state-and-data.md +0 -174
- package/skills/python/SKILL.md +0 -51
- package/skills/python/THIRD_PARTY.md +0 -14
- package/skills/python/references/async.md +0 -218
- package/skills/python/references/error-handling.md +0 -254
- package/skills/python/references/idioms.md +0 -279
- package/skills/python/references/packaging.md +0 -233
- package/skills/python/references/testing.md +0 -269
- package/skills/python/references/typing.md +0 -292
- package/skills/qa-tester/SKILL.md +0 -186
- package/skills/rust/SKILL.md +0 -50
- package/skills/rust/references/async.md +0 -224
- package/skills/rust/references/errors.md +0 -240
- package/skills/rust/references/ownership.md +0 -263
- package/skills/rust/references/testing.md +0 -274
- package/skills/rust/references/traits.md +0 -250
- package/skills/security-engineer/SKILL.md +0 -157
- package/skills/sps-memory/SKILL.md +0 -213
- package/skills/sps-pipeline/SKILL.md +0 -476
- package/skills/swift/SKILL.md +0 -48
- package/skills/swift/references/concurrency.md +0 -280
- package/skills/swift/references/idioms.md +0 -334
- package/skills/swift/references/testing.md +0 -229
- package/skills/tax-worker/SKILL.md +0 -150
- package/skills/tax-worker/references/account-codes.md +0 -165
- package/skills/typescript/SKILL.md +0 -51
- package/skills/typescript/references/async.md +0 -241
- package/skills/typescript/references/errors.md +0 -208
- package/skills/typescript/references/idioms.md +0 -246
- package/skills/typescript/references/testing.md +0 -225
- package/skills/typescript/references/tooling.md +0 -208
- package/skills/typescript/references/types.md +0 -259
- package/skills/wiki-update/SKILL.md +0 -300
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/wiki/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/wiki/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/wiki/types.js
CHANGED
|
@@ -99,7 +99,7 @@ export const ManifestSchema = z.object({
|
|
|
99
99
|
version: z.literal(1),
|
|
100
100
|
updated_at: z.string(),
|
|
101
101
|
/** Key = source path relative to repo root (e.g. "src/X.ts" or ".raw/pdfs/y.pdf") */
|
|
102
|
-
sources: z.record(ManifestEntrySchema).default({}),
|
|
102
|
+
sources: z.record(z.string(), ManifestEntrySchema).default({}),
|
|
103
103
|
});
|
|
104
104
|
export const EMPTY_MANIFEST = {
|
|
105
105
|
version: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/wiki/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qEAAqE;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG5F,qEAAqE;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAG3F,qEAAqE;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAGlE,qEAAqE;AAErE,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;AAErF,oEAAoE;AACpE,EAAE;AACF,iDAAiD;AACjD,gDAAgD;AAChD,oDAAoD;AACpD,yDAAyD;AACzD,EAAE;AACF,gDAAgD;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAChC,YAAY;IACZ,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAqB,CAAC;CAC/D,CAAC,CAAC;AAGH,0EAA0E;AAE1E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,CAAC;AAGxE,oEAAoE;AAEpE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC7C,CAAC,CAAC;AAEH,qEAAqE;AAErE,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACnE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACpE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACvD,aAAa,EAAE,cAAc,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACjE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SAC1E,OAAO,CAAC,SAAS,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC5D,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,CAAC;AAqBH,qEAAqE;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,iGAAiG;IACjG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjE,yBAAyB;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,0CAA0C;IAC1C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,qFAAqF;IACrF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/wiki/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { OrchestratorDecision, OrchestratorInput, PlanDraft } from '../core/intel/types.js';
|
|
2
|
+
export interface LLMClientLike {
|
|
3
|
+
planTasks(goal: string): Promise<{
|
|
4
|
+
draft: PlanDraft;
|
|
5
|
+
usage: {
|
|
6
|
+
inputTokens: number;
|
|
7
|
+
outputTokens: number;
|
|
8
|
+
};
|
|
9
|
+
}>;
|
|
10
|
+
orchestrate(input: OrchestratorInput, session: import('@openai/agents').Session, images?: string[]): Promise<{
|
|
11
|
+
decision: OrchestratorDecision;
|
|
12
|
+
usage: {
|
|
13
|
+
inputTokens: number;
|
|
14
|
+
outputTokens: number;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export interface CardSink {
|
|
19
|
+
/** 动态落一张卡,返回 seq。 */
|
|
20
|
+
create(card: {
|
|
21
|
+
title: string;
|
|
22
|
+
prompt: string;
|
|
23
|
+
skills: string[];
|
|
24
|
+
taskId: string;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
seq: number;
|
|
27
|
+
}>;
|
|
28
|
+
/** worker 跑完上一卡 → 流转卡状态(completed=Done/failed=Done+标记)。 */
|
|
29
|
+
markResult(seq: number, execStatus: 'completed' | 'failed'): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
/** worker 执行抽象:保活、跨 tick 异步跑、完成后给结果。 */
|
|
32
|
+
export interface WorkerExec {
|
|
33
|
+
sync?(): Promise<void>;
|
|
34
|
+
isBusy(): boolean;
|
|
35
|
+
takeLastResult(): {
|
|
36
|
+
seq: number;
|
|
37
|
+
title: string;
|
|
38
|
+
execStatus: 'completed' | 'failed';
|
|
39
|
+
} | null;
|
|
40
|
+
dispatch(card: {
|
|
41
|
+
seq: number;
|
|
42
|
+
title: string;
|
|
43
|
+
prompt: string;
|
|
44
|
+
skills: string[];
|
|
45
|
+
}): void;
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export interface SmartArrangeDeps {
|
|
49
|
+
llm: LLMClientLike;
|
|
50
|
+
cards: CardSink;
|
|
51
|
+
exec: WorkerExec;
|
|
52
|
+
planFile: string;
|
|
53
|
+
sessionFile: string;
|
|
54
|
+
readGoal: () => string;
|
|
55
|
+
maxRounds: number;
|
|
56
|
+
captureScreenshot?: () => Promise<string | null>;
|
|
57
|
+
log?: (msg: string) => void;
|
|
58
|
+
emit?: (ev: {
|
|
59
|
+
type: string;
|
|
60
|
+
[k: string]: unknown;
|
|
61
|
+
}) => void;
|
|
62
|
+
}
|
|
63
|
+
export declare class SmartArrangeEngine {
|
|
64
|
+
private readonly d;
|
|
65
|
+
constructor(d: SmartArrangeDeps);
|
|
66
|
+
private log;
|
|
67
|
+
private emit;
|
|
68
|
+
/** 外部(控制台/会话)确认任务清单后调用 → 进入自动流水线。 */
|
|
69
|
+
approvePlan(): void;
|
|
70
|
+
tick(): Promise<void>;
|
|
71
|
+
private runningTick;
|
|
72
|
+
private done;
|
|
73
|
+
private halt;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=SmartArrangeEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartArrangeEngine.d.ts","sourceRoot":"","sources":["../../src/engines/SmartArrangeEngine.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAa,MAAM,wBAAwB,CAAC;AAG5G,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC7G,WAAW,CACT,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,OAAO,gBAAgB,EAAE,OAAO,EACzC,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACtG;AAED,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5G,2DAA2D;IAC3D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC;IAClB,cAAc,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,QAAQ,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACvF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7D;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,gBAAgB;IAEhD,OAAO,CAAC,GAAG;IAGX,OAAO,CAAC,IAAI;IAIZ,qCAAqC;IACrC,WAAW,IAAI,IAAI;IASb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAwBb,WAAW;YA6CX,IAAI;YAQJ,IAAI;CAOnB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module engines/SmartArrangeEngine
|
|
3
|
+
* @description 智能编排模式的确定性状态机(与 StageEngine 并列)。
|
|
4
|
+
* planning → awaiting-approval(人工确认清单) → running(评审↔产卡循环) → done/halted。
|
|
5
|
+
* 三权分立:OpenAI 只产"任务清单/评审/下一卡"(经 deps.llm);执行(改代码)经 deps.exec(claude);
|
|
6
|
+
* 终止由本机判定(任务清单全 done / 硬上限),orchestrator 的 done 仅建议。
|
|
7
|
+
* @layer engine
|
|
8
|
+
* @boundedContext smartarrange
|
|
9
|
+
*/
|
|
10
|
+
import { RuntimeSession } from '../core/intel/RuntimeSession.js';
|
|
11
|
+
import { applyTaskUpdate, attachCard, initPlan, isComplete, isHardLimit, loadPlan, materializeTasks, savePlan, summarizePlan, } from '../core/intel/planStore.js';
|
|
12
|
+
export class SmartArrangeEngine {
|
|
13
|
+
d;
|
|
14
|
+
constructor(d) {
|
|
15
|
+
this.d = d;
|
|
16
|
+
}
|
|
17
|
+
log(m) {
|
|
18
|
+
this.d.log?.(`[smartArrange] ${m}`);
|
|
19
|
+
}
|
|
20
|
+
emit(ev) {
|
|
21
|
+
this.d.emit?.(ev);
|
|
22
|
+
}
|
|
23
|
+
/** 外部(控制台/会话)确认任务清单后调用 → 进入自动流水线。 */
|
|
24
|
+
approvePlan() {
|
|
25
|
+
const plan = loadPlan(this.d.planFile);
|
|
26
|
+
if (plan && plan.status === 'awaiting-approval') {
|
|
27
|
+
plan.status = 'running';
|
|
28
|
+
savePlan(this.d.planFile, plan);
|
|
29
|
+
this.log('任务清单已人工确认 → 进入自动流水线');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async tick() {
|
|
33
|
+
let plan = loadPlan(this.d.planFile) ?? initPlan(this.d.readGoal(), this.d.maxRounds);
|
|
34
|
+
switch (plan.status) {
|
|
35
|
+
case 'planning': {
|
|
36
|
+
const { draft } = await this.d.llm.planTasks(plan.goal);
|
|
37
|
+
plan.tasks = materializeTasks(draft.tasks);
|
|
38
|
+
plan.status = 'awaiting-approval';
|
|
39
|
+
savePlan(this.d.planFile, plan);
|
|
40
|
+
this.emit({ type: 'plan-proposed', tasks: plan.tasks });
|
|
41
|
+
this.log(`已拆 ${plan.tasks.length} 项任务清单,等待人工确认`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
case 'awaiting-approval':
|
|
45
|
+
return; // 等 approvePlan()
|
|
46
|
+
case 'done':
|
|
47
|
+
case 'halted':
|
|
48
|
+
return;
|
|
49
|
+
case 'running':
|
|
50
|
+
await this.runningTick(plan);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async runningTick(plan) {
|
|
55
|
+
if (isHardLimit(plan))
|
|
56
|
+
return this.halt(plan, '撞硬上限');
|
|
57
|
+
await this.d.exec.sync?.(); // 轮询 worker run 状态
|
|
58
|
+
if (this.d.exec.isBusy())
|
|
59
|
+
return; // worker 在跑,等下一 tick
|
|
60
|
+
const last = this.d.exec.takeLastResult(); // 上一卡完成结果(首次/已消费=null)
|
|
61
|
+
if (last)
|
|
62
|
+
await this.d.cards.markResult(last.seq, last.execStatus); // 上一卡流转状态(看板/编排同步可见)
|
|
63
|
+
// 一次 orchestrate = 评审上卡 + 产下一卡
|
|
64
|
+
plan.round += 1;
|
|
65
|
+
const session = new RuntimeSession(this.d.sessionFile, `sa-${plan.goal.slice(0, 8)}`);
|
|
66
|
+
const input = { planSummary: summarizePlan(plan), lastCard: last ?? undefined };
|
|
67
|
+
// 游戏类:采一张实战截图预喂给 orchestrator"看"(失败/非游戏返 null,不影响纯文本评审)
|
|
68
|
+
const shot = this.d.captureScreenshot ? await this.d.captureScreenshot() : null;
|
|
69
|
+
if (shot)
|
|
70
|
+
this.log(`已采集实战截图 → 随本轮评审预喂`);
|
|
71
|
+
const { decision } = await this.d.llm.orchestrate(input, session, shot ? [shot] : undefined);
|
|
72
|
+
applyTaskUpdate(plan, decision.taskUpdate);
|
|
73
|
+
this.emit({ type: 'decision', round: plan.round, decision });
|
|
74
|
+
this.log(`round ${plan.round}: ${decision.critique.pass ? '达标' : `${decision.critique.gaps.length} gap`} → ${decision.next.kind}`);
|
|
75
|
+
if (decision.next.kind === 'done') {
|
|
76
|
+
if (isComplete(plan)) {
|
|
77
|
+
savePlan(this.d.planFile, plan);
|
|
78
|
+
return this.done(plan);
|
|
79
|
+
}
|
|
80
|
+
// 清单未全 done → 否决 DONE 建议,继续(硬上限兜底)
|
|
81
|
+
this.log('orchestrator 建议 DONE 但任务清单未全完成 → 忽略,继续');
|
|
82
|
+
savePlan(this.d.planFile, plan);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// continue / revise → 产卡 + 派给 worker
|
|
86
|
+
const { seq } = await this.d.cards.create({
|
|
87
|
+
title: decision.next.title,
|
|
88
|
+
prompt: decision.next.prompt,
|
|
89
|
+
skills: decision.next.skills,
|
|
90
|
+
taskId: decision.next.taskId,
|
|
91
|
+
});
|
|
92
|
+
attachCard(plan, decision.next.taskId, seq);
|
|
93
|
+
savePlan(this.d.planFile, plan);
|
|
94
|
+
this.d.exec.dispatch({ seq, title: decision.next.title, prompt: decision.next.prompt, skills: decision.next.skills });
|
|
95
|
+
this.log(`派卡 seq=${seq} "${decision.next.title}" (${decision.next.kind})`);
|
|
96
|
+
}
|
|
97
|
+
async done(plan) {
|
|
98
|
+
plan.status = 'done';
|
|
99
|
+
savePlan(this.d.planFile, plan);
|
|
100
|
+
await this.d.exec.stop();
|
|
101
|
+
this.emit({ type: 'complete' });
|
|
102
|
+
this.log('🎉 任务清单全部完成 → 收口,杀 worker 进程');
|
|
103
|
+
}
|
|
104
|
+
async halt(plan, reason) {
|
|
105
|
+
plan.status = 'halted';
|
|
106
|
+
savePlan(this.d.planFile, plan);
|
|
107
|
+
await this.d.exec.stop();
|
|
108
|
+
this.emit({ type: 'halted', reason });
|
|
109
|
+
this.log(`⛔ ${reason} → 优雅收口,杀 worker 进程`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=SmartArrangeEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartArrangeEngine.js","sourceRoot":"","sources":["../../src/engines/SmartArrangeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,14 +22,7 @@ import type { Notifier } from '../interfaces/Notifier.js';
|
|
|
22
22
|
import type { RepoBackend } from '../interfaces/RepoBackend.js';
|
|
23
23
|
import type { TaskBackend } from '../interfaces/TaskBackend.js';
|
|
24
24
|
import type { WorkerManager } from '../manager/worker-manager.js';
|
|
25
|
-
import type {
|
|
26
|
-
/**
|
|
27
|
-
* v0.51.0: pull pinned wiki page ids from card frontmatter `meta.wiki_pages`
|
|
28
|
-
* (string[] or comma-separated string). Tolerates both shapes.
|
|
29
|
-
*
|
|
30
|
-
* Exported for unit testing.
|
|
31
|
-
*/
|
|
32
|
-
export declare function extractPinnedPages(card: Card): string[];
|
|
25
|
+
import type { CommandResult } from '../shared/types.js';
|
|
33
26
|
/**
|
|
34
27
|
* StageEngine — generic engine that handles any pipeline stage.
|
|
35
28
|
*
|
|
@@ -64,6 +57,8 @@ export declare class StageEngine {
|
|
|
64
57
|
}): Promise<CommandResult>;
|
|
65
58
|
private processStageCard;
|
|
66
59
|
private inspectStageWorker;
|
|
60
|
+
/** 项目级 worker 模型 → ANTHROPIC_MODEL(claude-acp 唯一的模型入口);空=不注入,用全局/默认。 */
|
|
61
|
+
private workerModelEnv;
|
|
67
62
|
private startStageWorker;
|
|
68
63
|
private completeAndAdvance;
|
|
69
64
|
/**
|
|
@@ -78,15 +73,6 @@ export declare class StageEngine {
|
|
|
78
73
|
private reconcilePmStatesWithRuntime;
|
|
79
74
|
private derivePmStateFromLease;
|
|
80
75
|
private buildStagePrompt;
|
|
81
|
-
/**
|
|
82
|
-
* v0.51.0: build the wiki injection (`wikiContext`) and the trailing
|
|
83
|
-
* wiki-update reminder (`wikiUpdateReminder`) for the current card.
|
|
84
|
-
*
|
|
85
|
-
* Disabled when `WIKI_ENABLED` is not 'true' or the project has no
|
|
86
|
-
* `wiki/WIKI.md`. Failures degrade silently — wiki notes are best-effort
|
|
87
|
-
* context and shouldn't block a card.
|
|
88
|
-
*/
|
|
89
|
-
private buildWikiSections;
|
|
90
76
|
private loadSkillProfiles;
|
|
91
77
|
private shouldSkip;
|
|
92
78
|
private cleanAuxiliaryLabels;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"StageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/StageEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,KAAK,EAAsC,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAY/G;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,QAAQ,CAAC;IAZnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAAe;gBAGzB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EAChC,YAAY,EAAE,WAAW,EACjB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,sBAAsB,EACvC,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B,2BAA2B;IAC3B,IAAI,IAAI,IAAI,MAAM,CAA4B;IAE9C,mFAAmF;IACnF,IAAI,YAAY,IAAI,OAAO,CAAkC;IAE7D,iFAAiF;IACjF,IAAI,WAAW,IAAI,OAAO,CAAqD;IAE/E,2DAA2D;IAGrD,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YA0HrD,gBAAgB;YAgChB,kBAAkB;IAgEhC,wEAAwE;IACxE,OAAO,CAAC,cAAc;YAKR,gBAAgB;YA2GhB,kBAAkB;IAkChC;;;OAGG;YACW,cAAc;YA4Fd,eAAe;YAmDf,WAAW;YAuBX,YAAY;YAoHZ,2BAA2B;YAe3B,4BAA4B;IA6C1C,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,UAAU;YAIJ,oBAAoB;IAgBlC;;;;;;;;;OASG;YACW,iBAAiB;IA2E/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;YAWL,mBAAmB;YAyBnB,YAAY;YAQZ,YAAY;YAMZ,WAAW;YAMX,UAAU;IAKxB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA6EzF;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC3B,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3B,mBAAmB,EAAE,MAAM,GAAG,SAAS,GACtC,MAAM,EAAE,CAeV;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/D"}
|
|
@@ -20,50 +20,11 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
20
20
|
import { resolve } from 'node:path';
|
|
21
21
|
import { resolveGitlabProjectId, resolveWorkflowTransport } from '../core/config.js';
|
|
22
22
|
import { Logger } from '../core/logger.js';
|
|
23
|
-
import {
|
|
23
|
+
import { buildWorkerMemoryInstructions, resolveMemoryConfig } from '../core/memoryProvider.js';
|
|
24
24
|
import { RuntimeStore } from '../core/runtimeStore.js';
|
|
25
25
|
import { buildPhasePrompt, buildTaskPrompt } from '../core/taskPrompts.js';
|
|
26
|
-
import { formatWikiContext, wikiRead } from '../core/wiki/reader.js';
|
|
27
26
|
// branchPushed/branchCommitsAhead removed — no worktree/branch management
|
|
28
27
|
const SKIP_LABELS = ['BLOCKED', 'NEEDS-FIX', 'CONFLICT', 'WAITING-CONFIRMATION', 'STALE-RUNTIME'];
|
|
29
|
-
/**
|
|
30
|
-
* v0.51.0: trailing block appended to Worker prompt when WIKI_ENABLED=true.
|
|
31
|
-
* Points to the `wiki-update` skill so Worker knows the SOP without us inlining it.
|
|
32
|
-
*/
|
|
33
|
-
function WIKI_UPDATE_REMINDER(projectName) {
|
|
34
|
-
return `# Wiki Update Reminder
|
|
35
|
-
|
|
36
|
-
After completing this card, follow the **wiki-update** skill if any of these apply:
|
|
37
|
-
|
|
38
|
-
- A module changed → update \`wiki/modules/<Name>.md\`
|
|
39
|
-
- A non-trivial decision was made → write \`wiki/decisions/<Name>.md\`
|
|
40
|
-
- A bug or gotcha surfaced → write \`wiki/lessons/<Name>.md\`
|
|
41
|
-
- A reusable pattern emerged → write \`wiki/concepts/<Name>.md\`
|
|
42
|
-
|
|
43
|
-
Workflow:
|
|
44
|
-
1. \`sps wiki update ${projectName}\` — see what source files changed.
|
|
45
|
-
2. Apply the wiki-update skill to write/update pages (TL;DR + frontmatter + cross-links).
|
|
46
|
-
3. \`sps wiki check ${projectName}\` — verify lint passes (must clear errors).
|
|
47
|
-
4. \`sps wiki update ${projectName} --finalize\` — flush manifest.
|
|
48
|
-
|
|
49
|
-
If none of the four conditions hit, append a one-line entry to \`wiki/.log.md\` and move on. Empty wiki growth is worse than no growth.`;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* v0.51.0: pull pinned wiki page ids from card frontmatter `meta.wiki_pages`
|
|
53
|
-
* (string[] or comma-separated string). Tolerates both shapes.
|
|
54
|
-
*
|
|
55
|
-
* Exported for unit testing.
|
|
56
|
-
*/
|
|
57
|
-
export function extractPinnedPages(card) {
|
|
58
|
-
const raw = card.meta?.wiki_pages;
|
|
59
|
-
if (!raw)
|
|
60
|
-
return [];
|
|
61
|
-
if (Array.isArray(raw))
|
|
62
|
-
return raw.filter((s) => typeof s === 'string');
|
|
63
|
-
if (typeof raw === 'string')
|
|
64
|
-
return raw.split(',').map((s) => s.trim()).filter(Boolean);
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
28
|
// CLEANUP_LABELS: cleared when a card re-enters a stage (backlog prepare step).
|
|
68
29
|
// ACK-TIMEOUT: left over when a dispatch failed; must be wiped before re-try.
|
|
69
30
|
// Per-stage ACK-RETRIED-<stage> is wiped separately in cleanAuxiliaryLabels().
|
|
@@ -305,6 +266,11 @@ export class StageEngine {
|
|
|
305
266
|
});
|
|
306
267
|
return 'failed';
|
|
307
268
|
}
|
|
269
|
+
/** 项目级 worker 模型 → ANTHROPIC_MODEL(claude-acp 唯一的模型入口);空=不注入,用全局/默认。 */
|
|
270
|
+
workerModelEnv() {
|
|
271
|
+
const m = this.ctx.config.WORKER_MODEL?.trim();
|
|
272
|
+
return m ? { ANTHROPIC_MODEL: m } : undefined;
|
|
273
|
+
}
|
|
308
274
|
async startStageWorker(card, _preferredSlot, worktree, taskId, actions) {
|
|
309
275
|
const seq = card.seq;
|
|
310
276
|
const prompt = this.buildStagePrompt(card, worktree, taskId);
|
|
@@ -325,6 +291,7 @@ export class StageEngine {
|
|
|
325
291
|
transport: 'acp-sdk',
|
|
326
292
|
outputFile: resolve(logsDir, `${this.ctx.projectName}-${this.stage.name}-${card.seq}-${Date.now()}.jsonl`),
|
|
327
293
|
completionStrategy: this.stage.completion,
|
|
294
|
+
env: this.workerModelEnv(),
|
|
328
295
|
};
|
|
329
296
|
const response = await this.workerManager.run(runRequest);
|
|
330
297
|
if (!response.accepted) {
|
|
@@ -640,6 +607,7 @@ export class StageEngine {
|
|
|
640
607
|
// genuine hangs are caught earlier by the INPROGRESS_TIMEOUT_HOURS stale check.
|
|
641
608
|
maxRetries: this.ctx.config.WORKER_RESTART_LIMIT,
|
|
642
609
|
completionStrategy: this.stage.completion,
|
|
610
|
+
env: this.workerModelEnv(),
|
|
643
611
|
};
|
|
644
612
|
let response;
|
|
645
613
|
try {
|
|
@@ -786,13 +754,11 @@ export class StageEngine {
|
|
|
786
754
|
const agentsRules = readFileSync(agentsMdPath, 'utf-8').trim();
|
|
787
755
|
projectRules = projectRules ? `${projectRules}\n\n${agentsRules}` : agentsRules;
|
|
788
756
|
}
|
|
789
|
-
// Memory
|
|
790
|
-
//
|
|
791
|
-
//
|
|
792
|
-
const
|
|
793
|
-
const knowledge =
|
|
794
|
-
// v0.51.0:Wiki 注入(仅 WIKI_ENABLED=true 启用)。失败/缺 wiki 时安静退化。
|
|
795
|
-
const { wikiContext, wikiUpdateReminder } = this.buildWikiSections(card, worktreePath);
|
|
757
|
+
// Memory:可插拔后端。开工召回由 cc-agent 的 MemoryProvider 在 daemon 侧做(每卡注入),
|
|
758
|
+
// 这里只下发「收尾写记忆」的引导,且按后端不同(none → 无;builtin → 文件记忆 CLI;
|
|
759
|
+
// agentmemory/custom → 语义库)。ENABLE_MEMORY=false 兼容旧开关(等同 none)。
|
|
760
|
+
const { provider: memProvider } = resolveMemoryConfig(this.ctx.config.raw);
|
|
761
|
+
const knowledge = buildWorkerMemoryInstructions(this.ctx.projectName, memProvider);
|
|
796
762
|
const promptCtx = {
|
|
797
763
|
taskSeq: card.seq,
|
|
798
764
|
taskTitle: card.title,
|
|
@@ -806,8 +772,6 @@ export class StageEngine {
|
|
|
806
772
|
skillContent,
|
|
807
773
|
projectRules: projectRules || undefined,
|
|
808
774
|
knowledge,
|
|
809
|
-
wikiContext,
|
|
810
|
-
wikiUpdateReminder,
|
|
811
775
|
// v0.50.18:COMPLETION_SIGNAL env 覆盖默认 "done"
|
|
812
776
|
completionSignal: this.ctx.config.raw.COMPLETION_SIGNAL || undefined,
|
|
813
777
|
};
|
|
@@ -820,48 +784,6 @@ export class StageEngine {
|
|
|
820
784
|
}
|
|
821
785
|
return prompt;
|
|
822
786
|
}
|
|
823
|
-
/**
|
|
824
|
-
* v0.51.0: build the wiki injection (`wikiContext`) and the trailing
|
|
825
|
-
* wiki-update reminder (`wikiUpdateReminder`) for the current card.
|
|
826
|
-
*
|
|
827
|
-
* Disabled when `WIKI_ENABLED` is not 'true' or the project has no
|
|
828
|
-
* `wiki/WIKI.md`. Failures degrade silently — wiki notes are best-effort
|
|
829
|
-
* context and shouldn't block a card.
|
|
830
|
-
*/
|
|
831
|
-
buildWikiSections(card, worktreePath) {
|
|
832
|
-
if (this.ctx.config.raw.WIKI_ENABLED !== 'true')
|
|
833
|
-
return {};
|
|
834
|
-
const repoDir = this.ctx.paths.repoDir;
|
|
835
|
-
const wikiMeta = resolve(repoDir, 'wiki', 'WIKI.md');
|
|
836
|
-
if (!existsSync(wikiMeta)) {
|
|
837
|
-
// Wiki opted in via conf but never initialized — log once + silently skip.
|
|
838
|
-
this.log.warn('WIKI_ENABLED=true but wiki/WIKI.md is missing; skipping wiki injection');
|
|
839
|
-
return {};
|
|
840
|
-
}
|
|
841
|
-
let wikiContext;
|
|
842
|
-
try {
|
|
843
|
-
const ctx = wikiRead({
|
|
844
|
-
repoDir,
|
|
845
|
-
cardTitle: card.title,
|
|
846
|
-
cardDesc: card.desc ?? '',
|
|
847
|
-
cardSkills: card.skills ?? [],
|
|
848
|
-
cardLabels: card.labels,
|
|
849
|
-
pinnedPages: extractPinnedPages(card),
|
|
850
|
-
});
|
|
851
|
-
const formatted = formatWikiContext(ctx);
|
|
852
|
-
wikiContext = formatted.trim() || undefined;
|
|
853
|
-
}
|
|
854
|
-
catch (err) {
|
|
855
|
-
this.log.warn(`wiki injection skipped: ${err instanceof Error ? err.message : String(err)}`);
|
|
856
|
-
wikiContext = undefined;
|
|
857
|
-
}
|
|
858
|
-
return {
|
|
859
|
-
wikiContext,
|
|
860
|
-
wikiUpdateReminder: WIKI_UPDATE_REMINDER(this.ctx.projectName),
|
|
861
|
-
};
|
|
862
|
-
// worktreePath unused for now — kept in signature for future wikilink resolution.
|
|
863
|
-
void worktreePath;
|
|
864
|
-
}
|
|
865
787
|
loadSkillProfiles(card) {
|
|
866
788
|
const skills = resolveRequiredSkills(card, this.stage, this.ctx.config.raw.DEFAULT_WORKER_SKILLS);
|
|
867
789
|
if (skills.length === 0)
|