crewly 1.14.1 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -4
- package/config/constants.ts +57 -0
- package/config/index.ts +6 -2
- package/config/roles/architect/soul.md +31 -0
- package/config/roles/auditor/soul.md +30 -0
- package/config/roles/backend-developer/soul.md +30 -0
- package/config/roles/content-strategist/soul.md +29 -0
- package/config/roles/designer/soul.md +30 -0
- package/config/roles/developer/prompt.md +1 -1
- package/config/roles/developer/soul.md +4 -1
- package/config/roles/frontend-developer/soul.md +28 -0
- package/config/roles/fullstack-dev/soul.md +28 -0
- package/config/roles/generalist/soul.md +28 -0
- package/config/roles/ops/soul.md +31 -0
- package/config/roles/orchestrator/fragments/lifecycle.md +2 -22
- package/config/roles/orchestrator/fragments/recovery.md +1 -1
- package/config/roles/orchestrator/prompt.md +18 -49
- package/config/roles/orchestrator/soul.md +2 -1
- package/config/roles/product-manager/prompt.md +1 -1
- package/config/roles/product-manager/soul.md +30 -0
- package/config/roles/qa/soul.md +31 -0
- package/config/roles/qa-engineer/soul.md +31 -0
- package/config/roles/researcher/soul.md +4 -1
- package/config/roles/sales/soul.md +30 -0
- package/config/roles/support/soul.md +30 -0
- package/config/roles/team-leader/prompt.md +1 -1
- package/config/roles/team-leader/soul.md +32 -0
- package/config/roles/tpm/soul.md +31 -0
- package/config/roles/ux-designer/soul.md +31 -0
- package/config/runtime_scripts/runtime-config.json +7 -0
- package/config/skills/_common/lib.sh +124 -2
- package/config/skills/_common/lib.test.sh +68 -1
- package/config/skills/agent/core/count-json/SKILL.md +61 -0
- package/config/skills/agent/core/count-json/execute.sh +52 -0
- package/config/skills/agent/core/count-json/execute.test.sh +35 -0
- package/config/skills/agent/core/record-prediction/SKILL.md +61 -0
- package/config/skills/agent/core/record-prediction/execute.sh +90 -0
- package/config/skills/agent/core/record-prediction/execute.test.sh +67 -0
- package/config/skills/agent/core/resolve-prediction/SKILL.md +61 -0
- package/config/skills/agent/core/resolve-prediction/execute.sh +87 -0
- package/config/skills/agent/core/resolve-prediction/execute.test.sh +74 -0
- package/config/skills/agent/core/set-focus/SKILL.md +64 -0
- package/config/skills/agent/core/set-focus/execute.sh +73 -0
- package/config/skills/agent/core/set-focus/execute.test.sh +67 -0
- package/config/skills/agent/core/suppress-noise/SKILL.md +59 -0
- package/config/skills/agent/core/suppress-noise/execute.sh +68 -0
- package/config/skills/agent/core/suppress-noise/execute.test.sh +58 -0
- package/config/skills/orchestrator/delegate-task/SKILL.md +17 -21
- package/config/skills/orchestrator/delegate-task/execute.sh +18 -9
- package/config/skills/orchestrator/delegate-task/execute.test.sh +1 -1
- package/config/skills/orchestrator/wiki-migrate/SKILL.md +33 -3
- package/config/skills/orchestrator/wiki-migrate/compact.jq +36 -0
- package/config/skills/orchestrator/wiki-migrate/execute.sh +35 -5
- package/config/skills/orchestrator/wiki-migrate/execute.test.sh +124 -0
- package/config/skills/team-leader/verify-output/execute.sh +14 -6
- package/config/skills/team-leader/verify-output/execute.test.sh +117 -0
- package/dist/backend/backend/src/constants.d.ts +161 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +159 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.d.ts +76 -0
- package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.js +262 -0
- package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +4 -6
- package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +10 -0
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +78 -16
- package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +31 -0
- package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +11 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request-types.d.ts +6 -2
- package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +14 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +59 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +9 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +14 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +20 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +13 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +240 -9
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +139 -0
- package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/middleware/api-token.middleware.js +301 -0
- package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -0
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +9 -1
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +78 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +311 -13
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +7 -0
- package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js +10 -1
- package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +8 -0
- package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js +11 -1
- package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +36 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +66 -9
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +7 -0
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +10 -1
- package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +197 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +422 -3
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/opencode-runtime.service.d.ts +114 -0
- package/dist/backend/backend/src/services/agent/opencode-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/opencode-runtime.service.js +185 -0
- package/dist/backend/backend/src/services/agent/opencode-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +27 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +71 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +15 -3
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +23 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +45 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +43 -3
- package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.js +85 -4
- package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +35 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +73 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +44 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js +33 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +13 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts +45 -0
- package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.js +59 -0
- package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.js.map +1 -0
- package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.d.ts +137 -0
- package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.js +216 -0
- package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.js.map +1 -0
- package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts +4 -1
- package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.js +3 -1
- package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.js.map +1 -1
- package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts +26 -2
- package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/backup/backup-archive.service.js +91 -10
- package/dist/backend/backend/src/services/backup/backup-archive.service.js.map +1 -1
- package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts +15 -2
- package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/backup/backup-restore.service.js +100 -21
- package/dist/backend/backend/src/services/backup/backup-restore.service.js.map +1 -1
- package/dist/backend/backend/src/services/backup/backup.types.d.ts +85 -2
- package/dist/backend/backend/src/services/backup/backup.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/backup/backup.types.js +21 -0
- package/dist/backend/backend/src/services/backup/backup.types.js.map +1 -1
- package/dist/backend/backend/src/services/backup/project-file-filter.d.ts +35 -0
- package/dist/backend/backend/src/services/backup/project-file-filter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/backup/project-file-filter.js +90 -0
- package/dist/backend/backend/src/services/backup/project-file-filter.js.map +1 -0
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts +165 -0
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.js +364 -0
- package/dist/backend/backend/src/services/budget/team-budget-gate.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -3
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +34 -3
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +5 -3
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +6 -4
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/core/api-token.service.d.ts +78 -0
- package/dist/backend/backend/src/services/core/api-token.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/api-token.service.js +149 -0
- package/dist/backend/backend/src/services/core/api-token.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/logger.service.d.ts +10 -1
- package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/logger.service.js +18 -3
- package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +11 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +34 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +7 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +29 -7
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.d.ts +140 -0
- package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.js +346 -0
- package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.js.map +1 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +27 -3
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js +42 -7
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +47 -0
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +67 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +22 -15
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +24 -15
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts +10 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.js +12 -1
- package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +7 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js +9 -3
- package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +27 -0
- package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-handoff.service.js +110 -22
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +7 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +52 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +132 -6
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-boot.d.ts +87 -0
- package/dist/backend/backend/src/services/v3/escalation-boot.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation-boot.js +128 -0
- package/dist/backend/backend/src/services/v3/escalation-boot.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.js +4 -4
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.d.ts +78 -0
- package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.js +129 -0
- package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-completion.subscriber.d.ts +118 -0
- package/dist/backend/backend/src/services/v3/kr-completion.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-completion.subscriber.js +277 -0
- package/dist/backend/backend/src/services/v3/kr-completion.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.d.ts +117 -0
- package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.js +214 -0
- package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js +3 -6
- package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +5 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-executor.service.js +36 -0
- package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-paths.d.ts +69 -0
- package/dist/backend/backend/src/services/v3/mission-paths.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-paths.js +92 -0
- package/dist/backend/backend/src/services/v3/mission-paths.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-period.service.js +1 -12
- package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +76 -2
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js +267 -9
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts +6 -4
- package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/okr-cascade.service.js +11 -10
- package/dist/backend/backend/src/services/v3/okr-cascade.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +24 -0
- package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/okr-review.service.js +63 -3
- package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +17 -0
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +62 -13
- package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +6 -2
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.js +14 -9
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +14 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +31 -0
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +4 -2
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +15 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +27 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +7 -0
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +2 -2
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -1
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/mission.types.d.ts +41 -0
- package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/mission.types.js +29 -0
- package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
- package/dist/backend/backend/src/utils/network-exposure.utils.d.ts +67 -0
- package/dist/backend/backend/src/utils/network-exposure.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/network-exposure.utils.js +92 -0
- package/dist/backend/backend/src/utils/network-exposure.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +2 -0
- package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/terminal-string-ops.js +14 -0
- package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +53 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +54 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +2 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +6 -6
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +161 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +159 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +78 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +311 -13
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +7 -0
- package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js +10 -1
- package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +8 -0
- package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js +11 -1
- package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +36 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +66 -9
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +7 -0
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +10 -1
- package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +197 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +422 -3
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/opencode-runtime.service.d.ts +114 -0
- package/dist/cli/backend/src/services/agent/opencode-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/opencode-runtime.service.js +185 -0
- package/dist/cli/backend/src/services/agent/opencode-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +27 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +71 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +15 -3
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js +9 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +23 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js +45 -0
- package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +43 -3
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +85 -4
- package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +35 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +73 -2
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +44 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +33 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +13 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts +45 -0
- package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.js +59 -0
- package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.js.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/attention.service.d.ts +74 -0
- package/dist/cli/backend/src/services/ai/self-improvement/attention.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/attention.service.js +132 -0
- package/dist/cli/backend/src/services/ai/self-improvement/attention.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.d.ts +107 -0
- package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.js +183 -0
- package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.js.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts +100 -0
- package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.js +130 -0
- package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.js.map +1 -0
- package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts +26 -2
- package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/backup/backup-archive.service.js +91 -10
- package/dist/cli/backend/src/services/backup/backup-archive.service.js.map +1 -1
- package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts +15 -2
- package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/backup/backup-restore.service.js +100 -21
- package/dist/cli/backend/src/services/backup/backup-restore.service.js.map +1 -1
- package/dist/cli/backend/src/services/backup/backup.types.d.ts +85 -2
- package/dist/cli/backend/src/services/backup/backup.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/backup/backup.types.js +21 -0
- package/dist/cli/backend/src/services/backup/backup.types.js.map +1 -1
- package/dist/cli/backend/src/services/backup/project-file-filter.d.ts +35 -0
- package/dist/cli/backend/src/services/backup/project-file-filter.d.ts.map +1 -0
- package/dist/cli/backend/src/services/backup/project-file-filter.js +90 -0
- package/dist/cli/backend/src/services/backup/project-file-filter.js.map +1 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts +165 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.js +364 -0
- package/dist/cli/backend/src/services/budget/team-budget-gate.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +23 -3
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +34 -3
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +5 -3
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +6 -4
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/core/api-token.service.d.ts +78 -0
- package/dist/cli/backend/src/services/core/api-token.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/api-token.service.js +149 -0
- package/dist/cli/backend/src/services/core/api-token.service.js.map +1 -0
- package/dist/cli/backend/src/services/core/logger.service.d.ts +10 -1
- package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/logger.service.js +18 -3
- package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +11 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +34 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +27 -3
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js +42 -7
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +47 -0
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +67 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +7 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/pty/pty-session.js +9 -3
- package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +27 -0
- package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/session/session-handoff.service.js +110 -22
- package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.js +1 -0
- package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +52 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +132 -6
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js +3 -6
- package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +5 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/mission-executor.service.js +36 -0
- package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/mission-paths.d.ts +69 -0
- package/dist/cli/backend/src/services/v3/mission-paths.d.ts.map +1 -0
- package/dist/cli/backend/src/services/v3/mission-paths.js +92 -0
- package/dist/cli/backend/src/services/v3/mission-paths.js.map +1 -0
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +6 -2
- package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/v3-data.service.js +14 -9
- package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.d.ts +4 -2
- package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/event-bus.types.js +15 -0
- package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +27 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +7 -0
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.d.ts +2 -2
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.js +1 -1
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -1
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/mission.types.d.ts +41 -0
- package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/mission.types.js +29 -0
- package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -1
- package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +2 -0
- package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/terminal-string-ops.js +14 -0
- package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
- package/dist/cli/cli/src/commands/backup.d.ts +25 -0
- package/dist/cli/cli/src/commands/backup.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/backup.js +120 -6
- package/dist/cli/cli/src/commands/backup.js.map +1 -1
- package/dist/cli/cli/src/commands/doctor.d.ts +58 -0
- package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/doctor.js +163 -0
- package/dist/cli/cli/src/commands/doctor.js.map +1 -0
- package/dist/cli/cli/src/commands/onboard.d.ts +2 -2
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +15 -7
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/commands/service.d.ts +68 -11
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/service.js +183 -51
- package/dist/cli/cli/src/commands/service.js.map +1 -1
- package/dist/cli/cli/src/commands/token.d.ts +53 -0
- package/dist/cli/cli/src/commands/token.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/token.js +70 -0
- package/dist/cli/cli/src/commands/token.js.map +1 -0
- package/dist/cli/cli/src/index.js +40 -5
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/scripts/check-native-toolchain.d.ts +21 -0
- package/dist/cli/cli/src/scripts/check-native-toolchain.d.ts.map +1 -0
- package/dist/cli/cli/src/scripts/check-native-toolchain.js +40 -0
- package/dist/cli/cli/src/scripts/check-native-toolchain.js.map +1 -0
- package/dist/cli/cli/src/utils/native-toolchain.d.ts +111 -0
- package/dist/cli/cli/src/utils/native-toolchain.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/native-toolchain.js +146 -0
- package/dist/cli/cli/src/utils/native-toolchain.js.map +1 -0
- package/dist/cli/cli/src/utils/package-root.d.ts +55 -0
- package/dist/cli/cli/src/utils/package-root.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/package-root.js +107 -0
- package/dist/cli/cli/src/utils/package-root.js.map +1 -0
- package/dist/cli/cli/src/utils/version-check.d.ts +18 -2
- package/dist/cli/cli/src/utils/version-check.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/version-check.js +51 -4
- package/dist/cli/cli/src/utils/version-check.js.map +1 -1
- package/dist/cli/config/constants.d.ts +53 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +54 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +2 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +6 -6
- package/dist/cli/config/index.js.map +1 -1
- package/frontend/dist/assets/index-019817e2.js +4961 -0
- package/frontend/dist/assets/{index-88feb412.css → index-a56613e7.css} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +3 -2
- package/frontend/dist/assets/index-190a957f.js +0 -4961
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Wiki Migrate
|
|
3
3
|
description: One-shot conversion from legacy `.crewly/knowledge/*.json` + loose `.md` + agent `memory.json` into the v2.1 three-scope vault structure. Default dry-run; idempotent; never deletes legacy files.
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
category: knowledge
|
|
6
6
|
skillType: claude-skill
|
|
7
7
|
assignableRoles:
|
|
@@ -65,14 +65,39 @@ Vault picker:
|
|
|
65
65
|
| `--project-root <abs path>` | yes | — | The dir containing `.crewly/`. |
|
|
66
66
|
| `--apply` | no | off | Execute writes. Without this, run a dry-run scan. |
|
|
67
67
|
| `--no-memory` | no | off | Skip the per-agent `memory.json` import. |
|
|
68
|
+
| `--full` (or `"full": true`) | no | off | Return the raw backend payload including the full `proposedPages` array. Default output is the compact report below. |
|
|
69
|
+
|
|
70
|
+
## Output: compact by default
|
|
71
|
+
|
|
72
|
+
The backend payload carries one row per proposed page — hundreds of entries on a real project — and re-reading it on every scan is a context-cost problem, not a decision aid. By default the skill therefore returns a **compact report**:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"ok": true, "vaultPath": "...", "legacyDetected": true,
|
|
77
|
+
"bootstrapNeeded": { "project": true, "global": false, "teams": [] },
|
|
78
|
+
"summary": { "decisions": 10, "patterns": 8, "...": 0, "alreadyMigrated": 8 },
|
|
79
|
+
"totalProposed": 25, "alreadyMigrated": 8, "skippedOther": 1, "netNew": 16,
|
|
80
|
+
"routingUncertain": 2,
|
|
81
|
+
"byCategory": { "decision": { "proposed": 10, "netNew": 6 }, "pattern": { "...": 0 } },
|
|
82
|
+
"netNewSample": [ "llm-curated/decisions/2026-05-01-foo.md", "..." ],
|
|
83
|
+
"hint": "compact view — pass --full for the complete proposedPages array"
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- `byCategory` is keyed by `sourceType`; `netNew` = pages without a `skipReason`.
|
|
88
|
+
- `netNewSample` lists the first 10 net-new target paths (`WIKI_MIGRATE_SAMPLE_SIZE` env overrides the count).
|
|
89
|
+
- Apply-only keys (`applied`, `skipped`, `bootstrapped`, `manifestPath`) pass through unchanged.
|
|
90
|
+
|
|
91
|
+
Only pass `--full` when you actually need per-row detail (a specific `sourceFile`, `sourceId`, or the `routingUncertain` rows). Even then the shared skill output cap applies: very large payloads are parked under `$CREWLY_HOME/tmp/skill-output/` and you get a `{"truncated":true,"file":...}` envelope — read the file with `jq` and select the fields you need.
|
|
68
92
|
|
|
69
93
|
## What you do with the report
|
|
70
94
|
|
|
71
95
|
**On scan (dry-run):**
|
|
72
|
-
-
|
|
96
|
+
- `netNew == 0` → nothing to do; stop here.
|
|
97
|
+
- Read `byCategory` / `netNewSample` to sanity-check what will land; use `--full` only if a specific row needs inspection.
|
|
73
98
|
- Look at `bootstrapNeeded` — confirms which vaults will be created.
|
|
74
99
|
- Look at `summary` — counts per source type.
|
|
75
|
-
-
|
|
100
|
+
- `routingUncertain` counts rows that will land in the project vault but flagged for later human review (`--full` shows which).
|
|
76
101
|
|
|
77
102
|
**On apply:**
|
|
78
103
|
- Confirm `applied` count matches the proposal.
|
|
@@ -97,6 +122,11 @@ bash execute.sh --project-root /Users/me/code/myproject --apply
|
|
|
97
122
|
bash execute.sh --project-root /Users/me/code/myproject --no-memory --apply
|
|
98
123
|
```
|
|
99
124
|
|
|
125
|
+
**Inspect every proposed row (raw payload):**
|
|
126
|
+
```bash
|
|
127
|
+
bash execute.sh --project-root /Users/me/code/myproject --full
|
|
128
|
+
```
|
|
129
|
+
|
|
100
130
|
## Failure modes
|
|
101
131
|
|
|
102
132
|
- `400 invalid_input` — `projectRoot` is not absolute, or `confirm` was missing on apply (skill handles this automatically).
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# wiki-migrate compact report filter.
|
|
2
|
+
#
|
|
3
|
+
# The backend's scan/apply payload carries the full `proposedPages` array —
|
|
4
|
+
# hundreds of rows on a real project — and the orchestrator only needs the
|
|
5
|
+
# shape of the migration to decide whether to apply it. This filter drops the
|
|
6
|
+
# array and replaces it with counts (by sourceType), the already-migrated /
|
|
7
|
+
# net-new split, and a short sample of net-new target paths.
|
|
8
|
+
#
|
|
9
|
+
# Every other top-level key (ok, vaultPath, legacyDetected, bootstrapNeeded,
|
|
10
|
+
# summary, applied, skipped, bootstrapped, manifestPath, ...) passes through.
|
|
11
|
+
#
|
|
12
|
+
# Args: $sample (number) — how many net-new relPaths to include.
|
|
13
|
+
def is_new: (.skipReason // "") == "";
|
|
14
|
+
|
|
15
|
+
. as $r
|
|
16
|
+
| ($r.proposedPages // []) as $pages
|
|
17
|
+
| ($pages | map(select(is_new))) as $new
|
|
18
|
+
| ($r | del(.proposedPages))
|
|
19
|
+
+ {
|
|
20
|
+
totalProposed: ($pages | length),
|
|
21
|
+
alreadyMigrated: ($pages | map(select(.skipReason == "already migrated")) | length),
|
|
22
|
+
skippedOther: ($pages | map(select((.skipReason // "") != "" and .skipReason != "already migrated")) | length),
|
|
23
|
+
netNew: ($new | length),
|
|
24
|
+
routingUncertain: ($pages | map(select(.routingUncertain == true)) | length),
|
|
25
|
+
byCategory: (
|
|
26
|
+
$pages
|
|
27
|
+
| group_by(.sourceType)
|
|
28
|
+
| map({
|
|
29
|
+
key: (.[0].sourceType // "unknown"),
|
|
30
|
+
value: { proposed: length, netNew: (map(select(is_new)) | length) }
|
|
31
|
+
})
|
|
32
|
+
| from_entries
|
|
33
|
+
),
|
|
34
|
+
netNewSample: ($new | .[:$sample] | map(.targetRelativePath)),
|
|
35
|
+
hint: "compact view — pass --full for the complete proposedPages array"
|
|
36
|
+
}
|
|
@@ -12,18 +12,30 @@
|
|
|
12
12
|
# Safe to re-run. The manifest at <project>/.crewly/wiki/.migration-state.json
|
|
13
13
|
# tracks already-migrated entries by content hash + sourceId.
|
|
14
14
|
#
|
|
15
|
+
# Output is a COMPACT report by default (counts by sourceType, alreadyMigrated
|
|
16
|
+
# vs netNew, first few net-new target paths). The raw backend payload carries
|
|
17
|
+
# the full `proposedPages` array — hundreds of rows — and is only returned
|
|
18
|
+
# with --full.
|
|
19
|
+
#
|
|
15
20
|
# Usage:
|
|
16
|
-
# bash execute.sh --project-root /abs/path # scan
|
|
21
|
+
# bash execute.sh --project-root /abs/path # scan (compact)
|
|
22
|
+
# bash execute.sh --project-root /abs/path --full # scan (raw proposedPages)
|
|
17
23
|
# bash execute.sh --project-root /abs/path --apply # write
|
|
18
24
|
# bash execute.sh --project-root /abs/path --no-memory --apply # skip agent memory.json copies
|
|
19
25
|
set -euo pipefail
|
|
20
26
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
21
27
|
source "${SCRIPT_DIR}/../../_common/lib.sh"
|
|
22
28
|
|
|
29
|
+
# Number of net-new target paths listed in the compact report.
|
|
30
|
+
WIKI_MIGRATE_SAMPLE_SIZE="${WIKI_MIGRATE_SAMPLE_SIZE:-10}"
|
|
31
|
+
COMPACT_FILTER="${SCRIPT_DIR}/compact.jq"
|
|
32
|
+
|
|
23
33
|
INPUT_JSON=""
|
|
24
34
|
PROJECT_ROOT=""
|
|
25
35
|
APPLY="false"
|
|
26
36
|
INCLUDE_MEMORY="true"
|
|
37
|
+
# lib.sh sets CREWLY_SKILL_FULL_OUTPUT=1 when --full is anywhere in argv.
|
|
38
|
+
FULL="${CREWLY_SKILL_FULL_OUTPUT:-0}"
|
|
27
39
|
|
|
28
40
|
if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
|
|
29
41
|
INPUT_JSON="$1"; shift || true
|
|
@@ -34,6 +46,7 @@ while [[ $# -gt 0 ]]; do
|
|
|
34
46
|
--project-root|-p) PROJECT_ROOT="$2"; shift 2 ;;
|
|
35
47
|
--apply|-a) APPLY="true"; shift ;;
|
|
36
48
|
--no-memory) INCLUDE_MEMORY="false"; shift ;;
|
|
49
|
+
--full|-f) FULL="1"; shift ;;
|
|
37
50
|
--json|-j) INPUT_JSON="$2"; shift 2 ;;
|
|
38
51
|
--help|-h)
|
|
39
52
|
cat <<EOF
|
|
@@ -42,14 +55,20 @@ Usage:
|
|
|
42
55
|
execute.sh --project-root <abs path> --apply # execute migration
|
|
43
56
|
execute.sh --project-root <abs path> --no-memory --apply
|
|
44
57
|
# apply but skip agent memory.json copies
|
|
58
|
+
execute.sh --project-root <abs path> --full # raw payload incl. full proposedPages
|
|
45
59
|
|
|
46
|
-
Outputs a JSON report:
|
|
60
|
+
Outputs a compact JSON report (default):
|
|
47
61
|
- legacyDetected : true when any legacy source exists
|
|
48
|
-
-
|
|
62
|
+
- totalProposed / alreadyMigrated / netNew / skippedOther / routingUncertain
|
|
63
|
+
- byCategory : {sourceType: {proposed, netNew}}
|
|
64
|
+
- netNewSample : first ${WIKI_MIGRATE_SAMPLE_SIZE} net-new target paths
|
|
49
65
|
- bootstrapNeeded : which vaults will be bootstrapped on --apply
|
|
50
66
|
- summary : counts per source type
|
|
51
67
|
- applied/skipped : only present on --apply
|
|
52
68
|
|
|
69
|
+
With --full the raw backend payload is returned instead, including the
|
|
70
|
+
per-entry proposedPages array (target + skipReason when "already migrated").
|
|
71
|
+
|
|
53
72
|
The skill makes NO LLM calls. Re-running is safe (idempotent via manifest).
|
|
54
73
|
EOF
|
|
55
74
|
exit 0 ;;
|
|
@@ -65,6 +84,7 @@ if [ -n "$INPUT_JSON" ]; then
|
|
|
65
84
|
[ -z "$PROJECT_ROOT" ] && PROJECT_ROOT=$(printf '%s' "$INPUT" | jq -r '.projectRoot // empty')
|
|
66
85
|
if printf '%s' "$INPUT" | jq -e '.apply == true' >/dev/null 2>&1; then APPLY="true"; fi
|
|
67
86
|
if printf '%s' "$INPUT" | jq -e '.includeAgentMemory == false' >/dev/null 2>&1; then INCLUDE_MEMORY="false"; fi
|
|
87
|
+
if printf '%s' "$INPUT" | jq -e '.full == true' >/dev/null 2>&1; then FULL="1"; fi
|
|
68
88
|
fi
|
|
69
89
|
|
|
70
90
|
require_param "projectRoot (--project-root)" "$PROJECT_ROOT"
|
|
@@ -74,9 +94,19 @@ export _WM_M="$INCLUDE_MEMORY"
|
|
|
74
94
|
|
|
75
95
|
if [ "$APPLY" = "true" ]; then
|
|
76
96
|
BODY=$(jq -n '{projectRoot: env._WM_R, includeAgentMemory: (env._WM_M == "true"), confirm: true}')
|
|
77
|
-
|
|
97
|
+
ENDPOINT="/wiki/migrate/apply"
|
|
78
98
|
else
|
|
79
99
|
BODY=$(jq -n '{projectRoot: env._WM_R, includeAgentMemory: (env._WM_M == "true")}')
|
|
80
|
-
|
|
100
|
+
ENDPOINT="/wiki/migrate/scan"
|
|
81
101
|
fi
|
|
82
102
|
unset _WM_R _WM_M
|
|
103
|
+
|
|
104
|
+
# Fetch the raw payload uncapped so the compact filter sees the whole array;
|
|
105
|
+
# the compact report is small, and --full re-enters the shared output cap.
|
|
106
|
+
RAW=$(CREWLY_SKILL_FULL_OUTPUT=1 api_call POST "$ENDPOINT" "$BODY")
|
|
107
|
+
|
|
108
|
+
if [ "$FULL" = "1" ]; then
|
|
109
|
+
_cap_skill_output "$RAW"
|
|
110
|
+
else
|
|
111
|
+
printf '%s' "$RAW" | jq --argjson sample "$WIKI_MIGRATE_SAMPLE_SIZE" -f "$COMPACT_FILTER"
|
|
112
|
+
fi
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Tests for ORC wiki-migrate execute.sh
|
|
3
|
+
#
|
|
4
|
+
# The backend's scan payload carries the full `proposedPages` array (hundreds
|
|
5
|
+
# of rows on a real project). The skill must return a COMPACT report by
|
|
6
|
+
# default and only hand back the raw payload with --full / {"full":true}.
|
|
7
|
+
#
|
|
8
|
+
# Like delegate-task/execute.test.sh, this harness runs a COPY of the real
|
|
9
|
+
# execute.sh (plus compact.jq) under a stubbed api_call so production logic
|
|
10
|
+
# is exercised verbatim.
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
13
|
+
PASS=0
|
|
14
|
+
FAIL=0
|
|
15
|
+
|
|
16
|
+
CALL_LOG=$(mktemp)
|
|
17
|
+
SKILL_PARENT=$(mktemp -d)
|
|
18
|
+
trap 'rm -rf "$SKILL_PARENT" "$CALL_LOG"' EXIT
|
|
19
|
+
|
|
20
|
+
# The skill resolves `${SCRIPT_DIR}/../../_common/lib.sh`, so mirror the
|
|
21
|
+
# config/skills/<role>/<skill> depth.
|
|
22
|
+
mkdir -p "$SKILL_PARENT/_common" "$SKILL_PARENT/orchestrator/wiki-migrate"
|
|
23
|
+
|
|
24
|
+
# Fixture: 25 proposed pages across 4 sourceTypes; 8 already migrated, 1
|
|
25
|
+
# skipped for another reason, 16 net-new, 2 routingUncertain.
|
|
26
|
+
FIXTURE=$(jq -nc '
|
|
27
|
+
def page($i; $type; $skip; $unc):
|
|
28
|
+
{sourceType: $type, sourceFile: "src/\($i).json", sourceId: "id-\($i)",
|
|
29
|
+
contentHash: "h\($i)", targetVaultPath: "/vault",
|
|
30
|
+
targetRelativePath: "llm-curated/\($type)/\($i).md", title: "t\($i)",
|
|
31
|
+
routingUncertain: $unc}
|
|
32
|
+
+ (if $skip == "" then {} else {skipReason: $skip} end);
|
|
33
|
+
{
|
|
34
|
+
ok: true, vaultPath: "/vault", legacyDetected: true,
|
|
35
|
+
bootstrapNeeded: {project: true, global: false, teams: []},
|
|
36
|
+
summary: {decisions: 10, patterns: 8, gotchas: 4, relationships: 3,
|
|
37
|
+
learnings: 0, looseMd: 0, memoryEntries: 0, alreadyMigrated: 8},
|
|
38
|
+
proposedPages: (
|
|
39
|
+
[range(0;10) | page(.; "decision"; (if . < 4 then "already migrated" else "" end); false)]
|
|
40
|
+
+ [range(10;18) | page(.; "pattern"; (if . < 14 then "already migrated" else "" end); (. == 15))]
|
|
41
|
+
+ [range(18;22) | page(.; "gotcha"; (if . == 18 then "malformed" else "" end); (. == 19))]
|
|
42
|
+
+ [range(22;25) | page(.; "relationship"; ""; false)]
|
|
43
|
+
)
|
|
44
|
+
}')
|
|
45
|
+
export FIXTURE
|
|
46
|
+
|
|
47
|
+
REAL_LIB="$(cd "$SCRIPT_DIR/../.." && pwd)/_common/lib.sh"
|
|
48
|
+
cat > "$SKILL_PARENT/_common/lib.sh" <<EOF
|
|
49
|
+
source "$REAL_LIB"
|
|
50
|
+
api_call() {
|
|
51
|
+
local method="\$1" path="\$2" body="\${3:-}"
|
|
52
|
+
echo "\${method} \${path} \${body}" >> "${CALL_LOG}"
|
|
53
|
+
printf '%s' "\$FIXTURE"
|
|
54
|
+
}
|
|
55
|
+
EOF
|
|
56
|
+
cp "$SCRIPT_DIR/execute.sh" "$SCRIPT_DIR/compact.jq" "$SKILL_PARENT/orchestrator/wiki-migrate/"
|
|
57
|
+
chmod +x "$SKILL_PARENT/orchestrator/wiki-migrate/execute.sh"
|
|
58
|
+
SKILL="$SKILL_PARENT/orchestrator/wiki-migrate/execute.sh"
|
|
59
|
+
|
|
60
|
+
assert_eq() {
|
|
61
|
+
local desc="$1" expected="$2" actual="$3"
|
|
62
|
+
if [ "$expected" = "$actual" ]; then
|
|
63
|
+
echo " PASS: $desc"; PASS=$((PASS + 1))
|
|
64
|
+
else
|
|
65
|
+
echo " FAIL: $desc"; echo " expected: $expected"; echo " actual: $actual"; FAIL=$((FAIL + 1))
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
echo "=== wiki-migrate compact output ==="
|
|
70
|
+
|
|
71
|
+
# ---- Test 1: default scan is compact and drops proposedPages ----
|
|
72
|
+
OUT=$(bash "$SKILL" --project-root /tmp/proj)
|
|
73
|
+
assert_eq "scan hits the scan endpoint" "1" "$(grep -c 'POST /wiki/migrate/scan' "$CALL_LOG")"
|
|
74
|
+
assert_eq "compact: proposedPages dropped" "false" "$(printf '%s' "$OUT" | jq 'has("proposedPages")')"
|
|
75
|
+
assert_eq "compact: totalProposed" "25" "$(printf '%s' "$OUT" | jq '.totalProposed')"
|
|
76
|
+
assert_eq "compact: alreadyMigrated" "8" "$(printf '%s' "$OUT" | jq '.alreadyMigrated')"
|
|
77
|
+
assert_eq "compact: skippedOther" "1" "$(printf '%s' "$OUT" | jq '.skippedOther')"
|
|
78
|
+
assert_eq "compact: netNew" "16" "$(printf '%s' "$OUT" | jq '.netNew')"
|
|
79
|
+
assert_eq "compact: routingUncertain" "2" "$(printf '%s' "$OUT" | jq '.routingUncertain')"
|
|
80
|
+
assert_eq "compact: byCategory decision" '{"proposed":10,"netNew":6}' "$(printf '%s' "$OUT" | jq -c '.byCategory.decision')"
|
|
81
|
+
assert_eq "compact: byCategory gotcha" '{"proposed":4,"netNew":3}' "$(printf '%s' "$OUT" | jq -c '.byCategory.gotcha')"
|
|
82
|
+
assert_eq "compact: sample holds first 10 net-new relPaths" "10" "$(printf '%s' "$OUT" | jq '.netNewSample | length')"
|
|
83
|
+
assert_eq "compact: sample starts at first net-new page" "llm-curated/decision/4.md" "$(printf '%s' "$OUT" | jq -r '.netNewSample[0]')"
|
|
84
|
+
assert_eq "compact: sample excludes skipped pages" "0" "$(printf '%s' "$OUT" | jq '[.netNewSample[] | select(. == "llm-curated/gotcha/18.md")] | length')"
|
|
85
|
+
assert_eq "compact: passthrough keys kept" "true|/vault|true" "$(printf '%s' "$OUT" | jq -r '"\(.ok)|\(.vaultPath)|\(.bootstrapNeeded.project)"')"
|
|
86
|
+
assert_eq "compact: original summary kept" "8" "$(printf '%s' "$OUT" | jq '.summary.alreadyMigrated')"
|
|
87
|
+
assert_eq "compact: hint mentions --full" "true" "$(printf '%s' "$OUT" | jq '.hint | test("--full")')"
|
|
88
|
+
COMPACT_BYTES=$(printf '%s' "$OUT" | wc -c | tr -d ' ')
|
|
89
|
+
RAW_BYTES=$(printf '%s' "$FIXTURE" | wc -c | tr -d ' ')
|
|
90
|
+
assert_eq "compact: smaller than raw" "yes" "$([ "$COMPACT_BYTES" -lt "$RAW_BYTES" ] && echo yes || echo no)"
|
|
91
|
+
|
|
92
|
+
# ---- Test 2: WIKI_MIGRATE_SAMPLE_SIZE tunes the sample ----
|
|
93
|
+
OUT=$(WIKI_MIGRATE_SAMPLE_SIZE=3 bash "$SKILL" --project-root /tmp/proj)
|
|
94
|
+
assert_eq "sample size env respected" "3" "$(printf '%s' "$OUT" | jq '.netNewSample | length')"
|
|
95
|
+
|
|
96
|
+
# ---- Test 3: --full returns the raw payload ----
|
|
97
|
+
OUT=$(bash "$SKILL" --project-root /tmp/proj --full)
|
|
98
|
+
assert_eq "--full: proposedPages present" "25" "$(printf '%s' "$OUT" | jq '.proposedPages | length')"
|
|
99
|
+
assert_eq "--full: no compact keys" "false" "$(printf '%s' "$OUT" | jq 'has("netNew")')"
|
|
100
|
+
|
|
101
|
+
# ---- Test 4: {"full":true} JSON input also returns the raw payload ----
|
|
102
|
+
OUT=$(bash "$SKILL" '{"projectRoot":"/tmp/proj","full":true}')
|
|
103
|
+
assert_eq "json full:true: proposedPages present" "25" "$(printf '%s' "$OUT" | jq '.proposedPages | length')"
|
|
104
|
+
|
|
105
|
+
# ---- Test 5: apply path is compacted too and keeps apply-only keys ----
|
|
106
|
+
FIXTURE=$(printf '%s' "$FIXTURE" | jq -c '. + {applied: 16, skipped: 9, bootstrapped: ["/vault"], manifestPath: "/vault/.migration-state.json"}')
|
|
107
|
+
export FIXTURE
|
|
108
|
+
: > "$CALL_LOG"
|
|
109
|
+
OUT=$(bash "$SKILL" --project-root /tmp/proj --apply)
|
|
110
|
+
assert_eq "apply hits the apply endpoint" "1" "$(grep -c 'POST /wiki/migrate/apply' "$CALL_LOG")"
|
|
111
|
+
assert_eq "apply body carries confirm:true" "1" "$(grep -c '"confirm": *true' "$CALL_LOG")"
|
|
112
|
+
assert_eq "apply: applied/skipped kept" "16|9|/vault/.migration-state.json" "$(printf '%s' "$OUT" | jq -r '"\(.applied)|\(.skipped)|\(.manifestPath)"')"
|
|
113
|
+
assert_eq "apply: proposedPages dropped" "false" "$(printf '%s' "$OUT" | jq 'has("proposedPages")')"
|
|
114
|
+
|
|
115
|
+
# ---- Test 6: payload without proposedPages does not break the filter ----
|
|
116
|
+
FIXTURE='{"ok":true,"legacyDetected":false,"bootstrapNeeded":{"project":false,"global":false,"teams":[]}}'
|
|
117
|
+
export FIXTURE
|
|
118
|
+
OUT=$(bash "$SKILL" --project-root /tmp/proj)
|
|
119
|
+
assert_eq "empty scan: netNew 0" "0" "$(printf '%s' "$OUT" | jq '.netNew')"
|
|
120
|
+
assert_eq "empty scan: byCategory {}" "{}" "$(printf '%s' "$OUT" | jq -c '.byCategory')"
|
|
121
|
+
|
|
122
|
+
echo ""
|
|
123
|
+
echo "=== Results: $PASS passed, $FAIL failed ==="
|
|
124
|
+
[ "$FAIL" -eq 0 ]
|
|
@@ -44,6 +44,12 @@ elif [ -n "$WI_BRIEF" ]; then
|
|
|
44
44
|
TASK_OUTPUT="$WI_BRIEF"
|
|
45
45
|
fi
|
|
46
46
|
|
|
47
|
+
# Defaults. A pre-approved checklist or a template pipeline (below) may
|
|
48
|
+
# override these — they must NOT be reset after checklist loading, or the
|
|
49
|
+
# checklist's passPolicy is silently discarded.
|
|
50
|
+
PASS_POLICY="all"
|
|
51
|
+
MAX_RETRIES=2
|
|
52
|
+
|
|
47
53
|
# =============================================================================
|
|
48
54
|
# Pre-approved checklist loading (from design-checklist skill)
|
|
49
55
|
# =============================================================================
|
|
@@ -55,13 +61,17 @@ if [ -n "$CHECKLIST_PATH" ] && [ -f "$CHECKLIST_PATH" ]; then
|
|
|
55
61
|
CHECKLIST_STATUS=$(echo "$CHECKLIST_DATA" | jq -r '.status // "unknown"' 2>/dev/null || true)
|
|
56
62
|
|
|
57
63
|
if [ "$CHECKLIST_STATUS" = "approved" ]; then
|
|
58
|
-
# Convert checklist items to verification checks
|
|
64
|
+
# Convert checklist items to verification checks.
|
|
65
|
+
# NOTE: `(.command // empty)` inside an object constructor makes jq drop
|
|
66
|
+
# the WHOLE item when the key is absent, so every checklist item without
|
|
67
|
+
# both `command` and `pattern` used to vanish. Use `// null` instead —
|
|
68
|
+
# the consumers below read fields with `// empty`, so null is harmless.
|
|
59
69
|
CHECKS=$(echo "$CHECKLIST_DATA" | jq -c '
|
|
60
70
|
[.items[] | {
|
|
61
71
|
name: .id,
|
|
62
72
|
type: .type,
|
|
63
|
-
command: (.command //
|
|
64
|
-
pattern: (.pattern //
|
|
73
|
+
command: (.command // null),
|
|
74
|
+
pattern: (.pattern // null),
|
|
65
75
|
description: .description,
|
|
66
76
|
critical: (.critical // false)
|
|
67
77
|
}]
|
|
@@ -79,7 +89,7 @@ elif [ -n "$TASK_ID" ] && [ -n "$PROJECT_PATH" ]; then
|
|
|
79
89
|
if [ -f "$AUTO_CHECKLIST" ]; then
|
|
80
90
|
CHECKLIST_STATUS=$(jq -r '.status // "unknown"' "$AUTO_CHECKLIST" 2>/dev/null || true)
|
|
81
91
|
if [ "$CHECKLIST_STATUS" = "approved" ]; then
|
|
82
|
-
CHECKS=$(jq -c '[.items[] | {name: .id, type: .type, command: (.command //
|
|
92
|
+
CHECKS=$(jq -c '[.items[] | {name: .id, type: .type, command: (.command // null), pattern: (.pattern // null), description: .description, critical: (.critical // false)}]' "$AUTO_CHECKLIST" 2>/dev/null || echo '[]')
|
|
83
93
|
PASS_POLICY=$(jq -r '.passPolicy // "critical_only"' "$AUTO_CHECKLIST" 2>/dev/null || echo "critical_only")
|
|
84
94
|
fi
|
|
85
95
|
fi
|
|
@@ -89,8 +99,6 @@ fi
|
|
|
89
99
|
# Pipeline loading: convert template pipeline steps to checks
|
|
90
100
|
# =============================================================================
|
|
91
101
|
|
|
92
|
-
PASS_POLICY="all"
|
|
93
|
-
MAX_RETRIES=2
|
|
94
102
|
CHECK_COUNT=$(echo "$CHECKS" | jq 'length')
|
|
95
103
|
|
|
96
104
|
if [ "$CHECK_COUNT" = "0" ] && [ -n "$TEMPLATE_ID" ]; then
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Tests for TL verify-output execute.sh
|
|
3
|
+
# Covers: passPolicy resolution — an approved checklist's passPolicy must
|
|
4
|
+
# survive into the verdict (it used to be clobbered by the
|
|
5
|
+
# pipeline-loading defaults), a template pipeline still overrides
|
|
6
|
+
# it when no checklist checks were loaded, and the default is "all".
|
|
7
|
+
#
|
|
8
|
+
# The real execute.sh is run end-to-end; HTTP is intercepted by a fake `curl`
|
|
9
|
+
# placed first on PATH so api_call() sees controlled responses.
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
|
+
PASS=0
|
|
13
|
+
FAIL=0
|
|
14
|
+
|
|
15
|
+
WORK_DIR=$(mktemp -d)
|
|
16
|
+
trap 'rm -rf "$WORK_DIR"' EXIT
|
|
17
|
+
|
|
18
|
+
# ---------------------------------------------------------------------------
|
|
19
|
+
# Fake curl: dispatches on the URL (last argument) and emits body + http code
|
|
20
|
+
# in the `-w '\n%{http_code}'` shape api_call() parses.
|
|
21
|
+
# ---------------------------------------------------------------------------
|
|
22
|
+
FAKE_BIN="$WORK_DIR/bin"
|
|
23
|
+
mkdir -p "$FAKE_BIN"
|
|
24
|
+
cat > "$FAKE_BIN/curl" <<'CURL_EOF'
|
|
25
|
+
#!/bin/bash
|
|
26
|
+
url="${@: -1}"
|
|
27
|
+
case "$url" in
|
|
28
|
+
*/api/templates/tmpl-majority)
|
|
29
|
+
printf '%s\n200' '{"success":true,"data":{"verificationPipeline":{"passPolicy":"majority","maxRetries":3,"steps":[{"id":"s1","name":"Review","method":"code_review","critical":false}]}}}'
|
|
30
|
+
;;
|
|
31
|
+
*)
|
|
32
|
+
printf '%s\n404' '{"success":false}'
|
|
33
|
+
;;
|
|
34
|
+
esac
|
|
35
|
+
CURL_EOF
|
|
36
|
+
chmod +x "$FAKE_BIN/curl"
|
|
37
|
+
|
|
38
|
+
PROJECT_DIR="$WORK_DIR/project"
|
|
39
|
+
mkdir -p "$PROJECT_DIR/.crewly/tasks"
|
|
40
|
+
|
|
41
|
+
run_verify() {
|
|
42
|
+
PATH="$FAKE_BIN:$PATH" CREWLY_API_URL="http://127.0.0.1:1" bash "$SCRIPT_DIR/execute.sh" "$1" 2>/dev/null
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
assert_json_field() {
|
|
46
|
+
local desc="$1" input="$2" filter="$3" expected="$4"
|
|
47
|
+
local OUTPUT actual
|
|
48
|
+
OUTPUT=$(run_verify "$input") || true
|
|
49
|
+
actual=$(printf '%s' "$OUTPUT" | jq -r "$filter" 2>/dev/null || echo "<no-json>")
|
|
50
|
+
if [ "$actual" = "$expected" ]; then
|
|
51
|
+
echo " PASS: $desc"
|
|
52
|
+
PASS=$((PASS + 1))
|
|
53
|
+
else
|
|
54
|
+
echo " FAIL: $desc (expected '$filter' = '$expected', got '$actual'; output: $OUTPUT)"
|
|
55
|
+
FAIL=$((FAIL + 1))
|
|
56
|
+
fi
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# One critical check that passes, one non-critical check that fails.
|
|
60
|
+
# Under critical_only the verdict is PASS; under "all" it would be FAIL.
|
|
61
|
+
CHECKLIST='{
|
|
62
|
+
"status":"approved",
|
|
63
|
+
"passPolicy":"critical_only",
|
|
64
|
+
"items":[
|
|
65
|
+
{"id":"crit-ok","type":"command","command":"true","description":"critical passes","critical":true},
|
|
66
|
+
{"id":"minor-fail","type":"command","command":"false","description":"non-critical fails","critical":false}
|
|
67
|
+
]
|
|
68
|
+
}'
|
|
69
|
+
printf '%s' "$CHECKLIST" > "$WORK_DIR/checklist.json"
|
|
70
|
+
printf '%s' "$CHECKLIST" > "$PROJECT_DIR/.crewly/tasks/checklist-task-auto.json"
|
|
71
|
+
|
|
72
|
+
echo "verify-output: passPolicy resolution"
|
|
73
|
+
|
|
74
|
+
INPUT_EXPLICIT=$(jq -n --arg p "$WORK_DIR/checklist.json" --arg pp "$PROJECT_DIR" \
|
|
75
|
+
'{taskId:"task-1",workerId:"w1",teamId:"t1",projectPath:$pp,checklistPath:$p}')
|
|
76
|
+
assert_json_field "explicit checklistPath: passPolicy from checklist survives" \
|
|
77
|
+
"$INPUT_EXPLICIT" '.passPolicy' 'critical_only'
|
|
78
|
+
assert_json_field "explicit checklistPath: both checklist items are loaded as checks" \
|
|
79
|
+
"$INPUT_EXPLICIT" '[.results[] | select(.name != "manual-review")] | length' '2'
|
|
80
|
+
assert_json_field "explicit checklistPath: non-critical failure is recorded" \
|
|
81
|
+
"$INPUT_EXPLICIT" '.failedSteps | join(",")' 'minor-fail'
|
|
82
|
+
assert_json_field "explicit checklistPath: verdict honours critical_only" \
|
|
83
|
+
"$INPUT_EXPLICIT" '.passed' 'true'
|
|
84
|
+
|
|
85
|
+
INPUT_AUTO=$(jq -n --arg pp "$PROJECT_DIR" \
|
|
86
|
+
'{taskId:"task-auto",workerId:"w1",teamId:"t1",projectPath:$pp}')
|
|
87
|
+
assert_json_field "auto-discovered checklist: passPolicy from checklist survives" \
|
|
88
|
+
"$INPUT_AUTO" '.passPolicy' 'critical_only'
|
|
89
|
+
assert_json_field "auto-discovered checklist: both checklist items are loaded as checks" \
|
|
90
|
+
"$INPUT_AUTO" '[.results[] | select(.name != "manual-review")] | length' '2'
|
|
91
|
+
assert_json_field "auto-discovered checklist: verdict honours critical_only" \
|
|
92
|
+
"$INPUT_AUTO" '.passed' 'true'
|
|
93
|
+
|
|
94
|
+
INPUT_ALL_POLICY=$(jq -n --arg p "$WORK_DIR/checklist-all.json" --arg pp "$PROJECT_DIR" \
|
|
95
|
+
'{taskId:"task-1b",workerId:"w1",teamId:"t1",projectPath:$pp,checklistPath:$p}')
|
|
96
|
+
printf '%s' "$CHECKLIST" | jq '.passPolicy = "all"' > "$WORK_DIR/checklist-all.json"
|
|
97
|
+
assert_json_field "checklist with passPolicy=all: non-critical failure fails the verdict" \
|
|
98
|
+
"$INPUT_ALL_POLICY" '.passed' 'false'
|
|
99
|
+
|
|
100
|
+
INPUT_TEMPLATE=$(jq -n --arg pp "$PROJECT_DIR" \
|
|
101
|
+
'{taskId:"task-2",workerId:"w1",teamId:"t1",projectPath:$pp,templateId:"tmpl-majority"}')
|
|
102
|
+
assert_json_field "template pipeline: passPolicy comes from the pipeline when no checklist" \
|
|
103
|
+
"$INPUT_TEMPLATE" '.passPolicy' 'majority'
|
|
104
|
+
|
|
105
|
+
INPUT_NONE=$(jq -n --arg pp "$PROJECT_DIR" \
|
|
106
|
+
'{taskId:"task-3",workerId:"w1",teamId:"t1",projectPath:$pp}')
|
|
107
|
+
assert_json_field "no checklist, no template: passPolicy defaults to all" \
|
|
108
|
+
"$INPUT_NONE" '.passPolicy' 'all'
|
|
109
|
+
|
|
110
|
+
INPUT_INLINE=$(jq -n --arg pp "$PROJECT_DIR" \
|
|
111
|
+
'{taskId:"task-4",workerId:"w1",teamId:"t1",projectPath:$pp,checks:[{name:"ok",type:"command",command:"true",critical:true},{name:"bad",type:"command",command:"false",critical:false}]}')
|
|
112
|
+
assert_json_field "inline checks with default policy: all must pass" \
|
|
113
|
+
"$INPUT_INLINE" '.passed' 'false'
|
|
114
|
+
|
|
115
|
+
echo ""
|
|
116
|
+
echo "Results: $PASS passed, $FAIL failed"
|
|
117
|
+
[ "$FAIL" -eq 0 ]
|