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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAK5G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,
|
|
1
|
+
{"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAK5G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,EAQX,MAAM,oBAAoB,CAAC;AA0C5B,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aACnB,QAAQ,EAAE,OAAO;gBAAjB,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAc/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAQzF;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAA6B;IAGhD,OAAO,CAAC,oBAAoB,CAA4G;IAGxI,OAAO,CAAC,4BAA4B,CAAsC;IAG1E,OAAO,CAAC,yBAAyB,CAA+C;IAGhF,OAAO,CAAC,kBAAkB,CAAkC;IAI5D,OAAO,CAAC,kBAAkB,CAKpB;IAKN,OAAO,CAAC,oBAAoB,CAAoC;IAIhE,OAAO,CAAC,mBAAmB,CAAuD;IAIlF,OAAO,CAAC,iBAAiB,CAAwD;IAEjF,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB,CAA+E;IAEvG,qFAAqF;IACrF,OAAO,CAAC,eAAe,CAAmK;IAK1L,OAAO,CAAC,MAAM,KAAK,wBAAwB,GAE1C;gBAGA,kBAAkB,EAAE,OAAO,EAAE,+CAA+C;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,cAAc;IAmB/B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE;QAAE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAIpG;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,GAAG,OAAO,gCAAgC,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;IAItL;;;;;OAKG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IASpD;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;OASG;YACW,yBAAyB;IA+BvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAsDpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,6BAA6B;IA0KrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;YACW,mBAAmB;IA2DjC;;;;;;OAMG;YACW,iBAAiB;IAgB/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,iCAAiC,GAAG,SAAS;IAIvF;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKtD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;YACW,qBAAqB;IAkBnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKrC;IAEH;;;;;;;;;;OAUG;YACW,0BAA0B;IAqCxC;;;OAGG;YACW,oBAAoB;IAclC;;;OAGG;IACG,+BAA+B,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAoD,EAC7D,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,WAAuC,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACjC,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkFF;;;OAGG;YACW,qBAAqB;IA8CnC;;;OAGG;YACW,mBAAmB;IAuKjC;;;;;;;;;;;OAWG;YACW,uBAAuB;IA0CrC;;;;;;;;;;;;;OAaG;YACW,0BAA0B;IA6DxC;;;;OAIG;YACW,2BAA2B;IAwDzC;;;;;;;;;;;;;OAaG;YACW,wBAAwB;IA0DtC;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;;;;;;;;OAWG;YACW,uBAAuB;IAiDrC;;;OAGG;YACW,iBAAiB;IAmP/B;;;;;;;;;OASG;YACW,oBAAoB;IA0DlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;OAEG;IACH;;;;;;;OAOG;YACW,uBAAuB;YASvB,sBAAsB;IAsapC;;;;;;;;;;;OAWG;YACW,eAAe;IAsC7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,sBAAsB;IAiCpC;;;;OAIG;YACW,mCAAmC;IAgJjD;;OAEG;YACW,uBAAuB;IA8BrC;;;;;;;;;OASG;IACG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B/C;;OAEG;YACW,yBAAyB;IA0BvC;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,GAAG,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkDF;;;;OAIG;YACW,uBAAuB;IAskBrC;;;;;OAKG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAkB,GACtB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuFF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IA+PF;;;;;;;;;;;OAWG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAqD,EAChE,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,OAAO,CAAC;IAsGnB;;;;;;;;;OASG;YACW,oBAAoB;IAqzBlC;;;;;;;;;;OAUG;YACW,sBAAsB;IAmDpC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;;;;;;OAOG;YACW,sBAAsB;IA2BpC;;;;;;;;;;OAUG;IACH,yBAAyB,IAAI,IAAI;IAsBjC;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAQhC;;;;;;;;OAQG;YACW,oBAAoB;IAqKlC;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;;;;;;OAOG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAuB5D;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;;;OASG;YACW,qBAAqB;IA+BnC;;;;;OAKG;IACG,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyCF;;;;;;OAMG;IACG,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,MAAa,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACN,KAAK,EAAE;gBACN,WAAW,EAAE,MAAM,CAAC;gBACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,CAAC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC/F,CAAC;YACF,SAAS,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuCF;;;;;;;;;;;;;OAaG;YACW,kBAAkB;IAmLhC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW3E"}
|
|
@@ -7,7 +7,7 @@ import { createSessionCommandHelper, getSessionBackendSync, createSessionBackend
|
|
|
7
7
|
import { RuntimeServiceFactory } from './runtime-service.factory.js';
|
|
8
8
|
import { registerInProcessRuntime, unregisterInProcessRuntime, } from './crewly-agent/in-process-runtime-registry.js';
|
|
9
9
|
import { getCrewlyHomePath } from '../core/crewly-home.utils.js';
|
|
10
|
-
import { CREWLY_CONSTANTS, ENV_CONSTANTS, AGENT_TIMEOUTS, ORCHESTRATOR_SESSION_NAME, ORCHESTRATOR_ROLE, RUNTIME_TYPES, SESSION_COMMAND_DELAYS, EVENT_DELIVERY_CONSTANTS, TERMINAL_PATTERNS, GEMINI_SHELL_MODE_CONSTANTS, GEMINI_STUCK_CONNECTIVITY_PATTERN, GEMINI_ERROR_STATE_CONSTANTS, } from '../../constants.js';
|
|
10
|
+
import { CREWLY_CONSTANTS, ENV_CONSTANTS, AGENT_TIMEOUTS, ORCHESTRATOR_SESSION_NAME, ORCHESTRATOR_ROLE, RUNTIME_TYPES, SESSION_COMMAND_DELAYS, EVENT_DELIVERY_CONSTANTS, TERMINAL_PATTERNS, GEMINI_SHELL_MODE_CONSTANTS, GEMINI_STUCK_CONNECTIVITY_PATTERN, GEMINI_ERROR_STATE_CONSTANTS, REGISTRATION_DELIVERY_CONSTANTS, } from '../../constants.js';
|
|
11
11
|
import { WEB_CONSTANTS } from '../../../../config/constants.js';
|
|
12
12
|
import { delay } from '../../utils/async.utils.js';
|
|
13
13
|
import { getSettingsService } from '../settings/settings.service.js';
|
|
@@ -18,8 +18,9 @@ import { ContextWindowMonitorService } from './context-window-monitor.service.js
|
|
|
18
18
|
import { OAuthReloginMonitorService } from './oauth-relogin-monitor.service.js';
|
|
19
19
|
import { SubAgentMessageQueue } from '../messaging/sub-agent-message-queue.service.js';
|
|
20
20
|
import { AgentSuspendService } from './agent-suspend.service.js';
|
|
21
|
-
import { PromptBuilderService, buildModuleConfigFromTeamMember, } from '../ai/prompt-builder.service.js';
|
|
21
|
+
import { PromptBuilderService, buildModuleConfigFromTeamMember, memberSkillsJson, } from '../ai/prompt-builder.service.js';
|
|
22
22
|
import { PromptAssemblyService } from '../ai/prompt-modules/prompt-assembly.service.js';
|
|
23
|
+
import { resolveOrcPromptProfile, ORC_PROMPT_PROFILE_ENV, } from '../ai/prompt-modules/prompt-module.interface.js';
|
|
23
24
|
import { stripAnsiCodes } from '../../utils/terminal-output.utils.js';
|
|
24
25
|
import { isPromptLine, containsSpinnerOrWorkingIndicator, containsProcessingIndicator, containsBusyStatusBar, containsRewindMode, extractChatPrefix, stripTuiLineBorders, matchTuiPromptLine, } from '../../utils/terminal-string-ops.js';
|
|
25
26
|
import { PtyActivityTrackerService } from './pty-activity-tracker.service.js';
|
|
@@ -620,6 +621,16 @@ export class AgentRegistrationService {
|
|
|
620
621
|
getCheckInterval() {
|
|
621
622
|
return process.env.NODE_ENV === 'test' ? 1000 : 2000;
|
|
622
623
|
}
|
|
624
|
+
/**
|
|
625
|
+
* Use the short test-environment cadence under Jest, otherwise the given
|
|
626
|
+
* production interval.
|
|
627
|
+
*
|
|
628
|
+
* @param productionMs - Interval to use outside the test environment
|
|
629
|
+
* @returns Interval in milliseconds
|
|
630
|
+
*/
|
|
631
|
+
testAwareInterval(productionMs) {
|
|
632
|
+
return process.env.NODE_ENV === 'test' ? this.getCheckInterval() : productionMs;
|
|
633
|
+
}
|
|
623
634
|
/**
|
|
624
635
|
* Update agent status with safe error handling (non-blocking).
|
|
625
636
|
* Returns true if successful, false if failed.
|
|
@@ -658,6 +669,49 @@ export class AgentRegistrationService {
|
|
|
658
669
|
['tl', 'team-leader'],
|
|
659
670
|
['team-lead', 'team-leader'],
|
|
660
671
|
]);
|
|
672
|
+
/**
|
|
673
|
+
* Assemble the orchestrator prompt at the *other* profile and log the
|
|
674
|
+
* module count + token estimate of both tiers side by side, so the
|
|
675
|
+
* operator can judge what `CREWLY_ORC_PROMPT_PROFILE=lite` would save (or
|
|
676
|
+
* did save) without diffing prompts by hand. Read-only and best-effort:
|
|
677
|
+
* a failure here never affects the prompt that was already assembled.
|
|
678
|
+
*
|
|
679
|
+
* @param assembler - The assembler used for the live prompt
|
|
680
|
+
* @param moduleConfig - Config the live prompt was assembled from
|
|
681
|
+
* @param liveReport - Report of the live (selected-profile) assembly
|
|
682
|
+
*/
|
|
683
|
+
async logPromptProfileComparison(assembler, moduleConfig, liveReport) {
|
|
684
|
+
const otherProfile = liveReport.profile === 'lite' ? 'full' : 'lite';
|
|
685
|
+
try {
|
|
686
|
+
const { report: other } = await assembler.assemble({
|
|
687
|
+
...moduleConfig,
|
|
688
|
+
promptProfile: otherProfile,
|
|
689
|
+
});
|
|
690
|
+
const byProfile = {
|
|
691
|
+
[liveReport.profile]: {
|
|
692
|
+
moduleCount: liveReport.moduleBreakdown.length,
|
|
693
|
+
estimatedTokens: liveReport.totalTokens,
|
|
694
|
+
},
|
|
695
|
+
[otherProfile]: {
|
|
696
|
+
moduleCount: other.moduleBreakdown.length,
|
|
697
|
+
estimatedTokens: other.totalTokens,
|
|
698
|
+
},
|
|
699
|
+
};
|
|
700
|
+
this.logger.info('Orchestrator prompt profile comparison', {
|
|
701
|
+
sessionName: moduleConfig.sessionName,
|
|
702
|
+
selected: liveReport.profile,
|
|
703
|
+
env: ORC_PROMPT_PROFILE_ENV,
|
|
704
|
+
...byProfile,
|
|
705
|
+
liteSavesTokens: (byProfile.full?.estimatedTokens ?? 0) - (byProfile.lite?.estimatedTokens ?? 0),
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
catch (error) {
|
|
709
|
+
this.logger.debug('Prompt profile comparison skipped', {
|
|
710
|
+
sessionName: moduleConfig.sessionName,
|
|
711
|
+
error: error instanceof Error ? error.message : String(error),
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
}
|
|
661
715
|
/**
|
|
662
716
|
* Get prompt file path for a specific role
|
|
663
717
|
* Uses the unified config/roles/{role}/prompt.md structure
|
|
@@ -976,6 +1030,7 @@ export class AgentRegistrationService {
|
|
|
976
1030
|
* - Claude Code → .crewly/CLAUDE.md
|
|
977
1031
|
* - Gemini CLI → GEMINI.md (project root)
|
|
978
1032
|
* - Codex → AGENTS.md (project root)
|
|
1033
|
+
* - OpenCode → AGENTS.md (project root, same convention as Codex — #306)
|
|
979
1034
|
*
|
|
980
1035
|
* Uses 'wx' flag to avoid overwriting existing files.
|
|
981
1036
|
*
|
|
@@ -997,6 +1052,10 @@ export class AgentRegistrationService {
|
|
|
997
1052
|
template: 'agent-agents-md.md',
|
|
998
1053
|
outputPath: path.join(projectPath, 'AGENTS.md'),
|
|
999
1054
|
},
|
|
1055
|
+
[RUNTIME_TYPES.OPENCODE_CLI]: {
|
|
1056
|
+
template: 'agent-agents-md.md',
|
|
1057
|
+
outputPath: path.join(projectPath, 'AGENTS.md'),
|
|
1058
|
+
},
|
|
1000
1059
|
};
|
|
1001
1060
|
const config = configMap[runtimeType];
|
|
1002
1061
|
if (!config)
|
|
@@ -1052,6 +1111,14 @@ export class AgentRegistrationService {
|
|
|
1052
1111
|
this.logger.info('Registration prompt loaded, sending to agent', {
|
|
1053
1112
|
sessionName, role, runtimeType, promptLength: prompt.length,
|
|
1054
1113
|
});
|
|
1114
|
+
// Gate on the runtime actually accepting input. `waitForRuntimeReady`
|
|
1115
|
+
// (already passed by the caller) matches banner text that is on screen
|
|
1116
|
+
// while the TUI is still booting — with Codex the instruction landed
|
|
1117
|
+
// ~2 s after spawn, during `model: loading`, and was swallowed while
|
|
1118
|
+
// every log line still said "sent successfully" (server-install finding 3).
|
|
1119
|
+
if (controller.signal.aborted)
|
|
1120
|
+
return;
|
|
1121
|
+
await this.waitForRuntimeInputReady(sessionName, runtimeType, controller.signal);
|
|
1055
1122
|
if (controller.signal.aborted)
|
|
1056
1123
|
return;
|
|
1057
1124
|
const sent = await this.sendPromptRobustly(sessionName, prompt, runtimeType, controller.signal);
|
|
@@ -1061,6 +1128,10 @@ export class AgentRegistrationService {
|
|
|
1061
1128
|
else {
|
|
1062
1129
|
this.logger.warn('Registration prompt delivery returned false', { sessionName, role, runtimeType });
|
|
1063
1130
|
}
|
|
1131
|
+
// Make a silent non-registration loud, and re-deliver once. Previously a
|
|
1132
|
+
// swallowed instruction left the agent at `started` / readyAt null forever
|
|
1133
|
+
// with no log line saying so.
|
|
1134
|
+
await this.redeliverIfUnregistered(sessionName, role, prompt, runtimeType, controller.signal);
|
|
1064
1135
|
}
|
|
1065
1136
|
catch (error) {
|
|
1066
1137
|
if (controller.signal.aborted) {
|
|
@@ -1077,6 +1148,134 @@ export class AgentRegistrationService {
|
|
|
1077
1148
|
this.registrationAbortControllers.delete(sessionName);
|
|
1078
1149
|
}
|
|
1079
1150
|
}
|
|
1151
|
+
/**
|
|
1152
|
+
* Poll the PTY screen until the runtime is idle at its input prompt
|
|
1153
|
+
* (`RuntimeAgentService.isReadyForInput`) or the timeout elapses.
|
|
1154
|
+
*
|
|
1155
|
+
* On timeout we log a warning and return `false` but the caller still
|
|
1156
|
+
* sends the instruction — a late instruction is recoverable (re-delivery,
|
|
1157
|
+
* `POST /api/terminal/:s/deliver`), a never-sent one is not.
|
|
1158
|
+
*
|
|
1159
|
+
* @param sessionName - PTY session name
|
|
1160
|
+
* @param runtimeType - Runtime whose prompt heuristics to use
|
|
1161
|
+
* @param abortSignal - Aborts the wait when the runtime exits
|
|
1162
|
+
* @param timeoutMs - Maximum time to wait (defaults to RUNTIME_INPUT_READY_TIMEOUT_MS)
|
|
1163
|
+
* @returns true when the idle prompt was observed, false on timeout/abort
|
|
1164
|
+
*/
|
|
1165
|
+
async waitForRuntimeInputReady(sessionName, runtimeType, abortSignal, timeoutMs = REGISTRATION_DELIVERY_CONSTANTS.RUNTIME_INPUT_READY_TIMEOUT_MS) {
|
|
1166
|
+
const runtimeService = this.createRuntimeService(runtimeType);
|
|
1167
|
+
// Mocked / non-TUI runtimes without the predicate: nothing to wait for.
|
|
1168
|
+
if (typeof runtimeService.isReadyForInput !== 'function') {
|
|
1169
|
+
return true;
|
|
1170
|
+
}
|
|
1171
|
+
const sessionHelper = await this.getSessionHelper();
|
|
1172
|
+
const pollMs = this.testAwareInterval(REGISTRATION_DELIVERY_CONSTANTS.RUNTIME_INPUT_READY_POLL_MS);
|
|
1173
|
+
const startedAt = Date.now();
|
|
1174
|
+
let polls = 0;
|
|
1175
|
+
while (!abortSignal?.aborted) {
|
|
1176
|
+
let screen = '';
|
|
1177
|
+
try {
|
|
1178
|
+
screen = sessionHelper.capturePane(sessionName);
|
|
1179
|
+
}
|
|
1180
|
+
catch (captureError) {
|
|
1181
|
+
this.logger.debug('Runtime input-ready capture failed (will retry)', {
|
|
1182
|
+
sessionName,
|
|
1183
|
+
error: captureError instanceof Error ? captureError.message : String(captureError),
|
|
1184
|
+
});
|
|
1185
|
+
}
|
|
1186
|
+
polls++;
|
|
1187
|
+
if (runtimeService.isReadyForInput(screen)) {
|
|
1188
|
+
this.logger.info('Runtime idle at input prompt — delivering registration instruction', {
|
|
1189
|
+
sessionName,
|
|
1190
|
+
runtimeType,
|
|
1191
|
+
waitedMs: Date.now() - startedAt,
|
|
1192
|
+
polls,
|
|
1193
|
+
});
|
|
1194
|
+
return true;
|
|
1195
|
+
}
|
|
1196
|
+
if (Date.now() - startedAt >= timeoutMs) {
|
|
1197
|
+
const lastLines = screen.split('\n').filter((l) => l.trim()).slice(-5);
|
|
1198
|
+
this.logger.warn('Timed out waiting for runtime input prompt — sending registration instruction anyway', {
|
|
1199
|
+
sessionName,
|
|
1200
|
+
runtimeType,
|
|
1201
|
+
timeoutMs,
|
|
1202
|
+
polls,
|
|
1203
|
+
lastTerminalLines: lastLines,
|
|
1204
|
+
});
|
|
1205
|
+
return false;
|
|
1206
|
+
}
|
|
1207
|
+
await delay(pollMs);
|
|
1208
|
+
}
|
|
1209
|
+
this.logger.info('Runtime input-ready wait aborted (runtime exited)', { sessionName });
|
|
1210
|
+
return false;
|
|
1211
|
+
}
|
|
1212
|
+
/**
|
|
1213
|
+
* Resolve how long an agent gets to register after its prompt is delivered.
|
|
1214
|
+
* Mirrors the timeout selection used when the session is created.
|
|
1215
|
+
*
|
|
1216
|
+
* @param role - Agent role
|
|
1217
|
+
* @param runtimeType - Agent runtime
|
|
1218
|
+
* @returns Registration timeout in milliseconds
|
|
1219
|
+
*/
|
|
1220
|
+
resolveRegistrationTimeout(role, runtimeType) {
|
|
1221
|
+
if (role === ORCHESTRATOR_ROLE)
|
|
1222
|
+
return AGENT_TIMEOUTS.ORCHESTRATOR_INITIALIZATION;
|
|
1223
|
+
if (runtimeType === RUNTIME_TYPES.CLAUDE_CODE)
|
|
1224
|
+
return AGENT_TIMEOUTS.CLAUDE_CODE_INITIALIZATION;
|
|
1225
|
+
return AGENT_TIMEOUTS.REGULAR_AGENT_INITIALIZATION;
|
|
1226
|
+
}
|
|
1227
|
+
/**
|
|
1228
|
+
* After the registration instruction was delivered, wait the registration
|
|
1229
|
+
* timeout for the agent to flip to `active`. If it does not, log an error
|
|
1230
|
+
* (this used to be completely silent) and re-deliver the instruction once,
|
|
1231
|
+
* gated again on the runtime being idle at its prompt.
|
|
1232
|
+
*
|
|
1233
|
+
* @param sessionName - PTY session name
|
|
1234
|
+
* @param role - Agent role
|
|
1235
|
+
* @param prompt - The full registration prompt (re-written to the prompt file)
|
|
1236
|
+
* @param runtimeType - Agent runtime
|
|
1237
|
+
* @param abortSignal - Aborts when the runtime exits
|
|
1238
|
+
*/
|
|
1239
|
+
async redeliverIfUnregistered(sessionName, role, prompt, runtimeType, abortSignal) {
|
|
1240
|
+
const timeout = this.resolveRegistrationTimeout(role, runtimeType);
|
|
1241
|
+
const checkInterval = this.testAwareInterval(REGISTRATION_DELIVERY_CONSTANTS.REGISTRATION_CHECK_INTERVAL_MS);
|
|
1242
|
+
for (let redelivery = 0; redelivery <= REGISTRATION_DELIVERY_CONSTANTS.MAX_REDELIVERIES; redelivery++) {
|
|
1243
|
+
const startedAt = Date.now();
|
|
1244
|
+
while (Date.now() - startedAt < timeout) {
|
|
1245
|
+
if (abortSignal.aborted)
|
|
1246
|
+
return;
|
|
1247
|
+
if (await this.checkAgentRegistration(sessionName, role)) {
|
|
1248
|
+
this.logger.info('Agent registration confirmed after prompt delivery', {
|
|
1249
|
+
sessionName, role, redeliveries: redelivery, waitedMs: Date.now() - startedAt,
|
|
1250
|
+
});
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1253
|
+
await delay(checkInterval);
|
|
1254
|
+
}
|
|
1255
|
+
if (abortSignal.aborted)
|
|
1256
|
+
return;
|
|
1257
|
+
if (redelivery >= REGISTRATION_DELIVERY_CONSTANTS.MAX_REDELIVERIES) {
|
|
1258
|
+
this.logger.error('Agent never registered after registration prompt delivery', {
|
|
1259
|
+
sessionName, role, runtimeType, timeoutMs: timeout, redeliveries: redelivery,
|
|
1260
|
+
hint: `POST /api/terminal/${sessionName}/deliver {force:true} with the prompt-file instruction`,
|
|
1261
|
+
});
|
|
1262
|
+
return;
|
|
1263
|
+
}
|
|
1264
|
+
const sessionHelper = await this.getSessionHelper();
|
|
1265
|
+
if (!sessionHelper.sessionExists(sessionName)) {
|
|
1266
|
+
this.logger.warn('Registration re-delivery skipped — session no longer exists', { sessionName, role });
|
|
1267
|
+
return;
|
|
1268
|
+
}
|
|
1269
|
+
this.logger.warn('No registration within timeout — re-delivering registration instruction', {
|
|
1270
|
+
sessionName, role, runtimeType, timeoutMs: timeout,
|
|
1271
|
+
});
|
|
1272
|
+
await this.waitForRuntimeInputReady(sessionName, runtimeType, abortSignal);
|
|
1273
|
+
if (abortSignal.aborted)
|
|
1274
|
+
return;
|
|
1275
|
+
const resent = await this.sendPromptRobustly(sessionName, prompt, runtimeType, abortSignal);
|
|
1276
|
+
this.logger.info('registration re-delivered', { sessionName, role, runtimeType, resent });
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1080
1279
|
/**
|
|
1081
1280
|
* Step 3: Kill session and recreate completely
|
|
1082
1281
|
* Most aggressive approach - completely recreates the session from scratch
|
|
@@ -1135,13 +1334,17 @@ export class AgentRegistrationService {
|
|
|
1135
1334
|
}
|
|
1136
1335
|
// Recreate session based on role
|
|
1137
1336
|
if (role === ORCHESTRATOR_ROLE) {
|
|
1337
|
+
// Same deterministic cwd for the PTY and the runtime `cd` — this site
|
|
1338
|
+
// used to `cd` into process.cwd() (the package install dir under
|
|
1339
|
+
// systemd) while the PTY was created elsewhere.
|
|
1340
|
+
const orchestratorCwd = projectPath || (await this.resolveOrchestratorCwd());
|
|
1138
1341
|
await this.createOrchestratorSession({
|
|
1139
1342
|
sessionName,
|
|
1140
|
-
projectPath:
|
|
1343
|
+
projectPath: orchestratorCwd,
|
|
1141
1344
|
});
|
|
1142
1345
|
// Initialize runtime for orchestrator using script (always fresh start)
|
|
1143
1346
|
const runtimeService = this.createRuntimeService(runtimeType);
|
|
1144
|
-
await runtimeService.executeRuntimeInitScript(sessionName,
|
|
1347
|
+
await runtimeService.executeRuntimeInitScript(sessionName, orchestratorCwd, effectiveFlags, promptFilePath, agentName);
|
|
1145
1348
|
// Wait for runtime to be ready
|
|
1146
1349
|
const checkInterval = this.getCheckInterval();
|
|
1147
1350
|
// runtimeService3: Separate instance for orchestrator ready-state detection
|
|
@@ -1400,6 +1603,23 @@ export class AgentRegistrationService {
|
|
|
1400
1603
|
/**
|
|
1401
1604
|
* Load registration prompt from config files (with caching to prevent file I/O contention)
|
|
1402
1605
|
*/
|
|
1606
|
+
/**
|
|
1607
|
+
* The `{{MEMBER_SKILLS_JSON}}` value for a session: the member's declared
|
|
1608
|
+
* skills, else its reported capabilities, else `[]`. Storage failures
|
|
1609
|
+
* degrade to `[]` so registration never blocks on it.
|
|
1610
|
+
*
|
|
1611
|
+
* @param sessionName - Session whose member to look up
|
|
1612
|
+
* @returns A JSON array literal
|
|
1613
|
+
*/
|
|
1614
|
+
async resolveMemberSkillsJson(sessionName) {
|
|
1615
|
+
try {
|
|
1616
|
+
const found = await this.storageService.findMemberBySessionName(sessionName);
|
|
1617
|
+
return memberSkillsJson({ skills: found?.member.skills, capabilities: found?.member.capabilities });
|
|
1618
|
+
}
|
|
1619
|
+
catch {
|
|
1620
|
+
return '[]';
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1403
1623
|
async loadRegistrationPrompt(role, sessionName, memberId, runtimeType = RUNTIME_TYPES.CLAUDE_CODE) {
|
|
1404
1624
|
try {
|
|
1405
1625
|
// Cache key is role only - the template file is the same regardless of memberId
|
|
@@ -1422,6 +1642,12 @@ export class AgentRegistrationService {
|
|
|
1422
1642
|
prompt = prompt.replace(/\{\{SESSION_ID\}\}/g, sessionName);
|
|
1423
1643
|
prompt = prompt.replace(/\{\{SESSION_NAME\}\}/g, sessionName);
|
|
1424
1644
|
prompt = prompt.replace(/\{\{ROLE\}\}/g, role);
|
|
1645
|
+
// The member's own skill tags for poll-tasks (2026-09-18): role prompts
|
|
1646
|
+
// used to ship a literal `["typescript","react"]` example, so every
|
|
1647
|
+
// agent polled the pool with those two tags whatever its job was.
|
|
1648
|
+
if (prompt.includes('{{MEMBER_SKILLS_JSON}}')) {
|
|
1649
|
+
prompt = prompt.replace(/\{\{MEMBER_SKILLS_JSON\}\}/g, await this.resolveMemberSkillsJson(sessionName));
|
|
1650
|
+
}
|
|
1425
1651
|
if (memberId) {
|
|
1426
1652
|
prompt = prompt.replace(/\{\{MEMBER_ID\}\}/g, memberId);
|
|
1427
1653
|
}
|
|
@@ -1456,7 +1682,7 @@ export class AgentRegistrationService {
|
|
|
1456
1682
|
}
|
|
1457
1683
|
// Write runtime-specific project config file so the agent CLI
|
|
1458
1684
|
// recognizes Crewly as a legitimate project configuration (fixes #33)
|
|
1459
|
-
// Claude Code → .crewly/CLAUDE.md, Gemini CLI → GEMINI.md, Codex → AGENTS.md
|
|
1685
|
+
// Claude Code → .crewly/CLAUDE.md, Gemini CLI → GEMINI.md, Codex / OpenCode → AGENTS.md
|
|
1460
1686
|
if (role !== ORCHESTRATOR_ROLE) {
|
|
1461
1687
|
await this.provisionRuntimeConfigFile(projectPath, runtimeType);
|
|
1462
1688
|
}
|
|
@@ -1707,16 +1933,29 @@ export class AgentRegistrationService {
|
|
|
1707
1933
|
teamNormsPath,
|
|
1708
1934
|
};
|
|
1709
1935
|
}
|
|
1936
|
+
// Prompt tiering: the orchestrator is re-registered on every
|
|
1937
|
+
// cold start and re-reads the whole system prompt at full price.
|
|
1938
|
+
// CREWLY_ORC_PROMPT_PROFILE=lite drops the planning/onboarding
|
|
1939
|
+
// modules; the default stays `full`. Both tiers are assembled
|
|
1940
|
+
// for the orchestrator so the operator can compare their size
|
|
1941
|
+
// in the log before flipping the env.
|
|
1942
|
+
const requestedProfile = role === ORCHESTRATOR_ROLE ? resolveOrcPromptProfile() : undefined;
|
|
1943
|
+
if (requestedProfile)
|
|
1944
|
+
moduleConfig.promptProfile = requestedProfile;
|
|
1710
1945
|
const assembler = new PromptAssemblyService();
|
|
1711
1946
|
const { prompt: modularPrompt, report } = await assembler.assemble(moduleConfig);
|
|
1712
1947
|
this.logger.info('Modular prompt assembled for registration', {
|
|
1713
1948
|
sessionName,
|
|
1714
1949
|
role,
|
|
1950
|
+
profile: report.profile,
|
|
1715
1951
|
totalTokens: report.totalTokens,
|
|
1716
1952
|
moduleCount: report.moduleBreakdown.length,
|
|
1717
1953
|
truncatedCount: report.truncated.length,
|
|
1718
1954
|
modules: report.moduleBreakdown.map(m => m.name),
|
|
1719
1955
|
});
|
|
1956
|
+
if (requestedProfile) {
|
|
1957
|
+
await this.logPromptProfileComparison(assembler, moduleConfig, report);
|
|
1958
|
+
}
|
|
1720
1959
|
return modularPrompt;
|
|
1721
1960
|
}
|
|
1722
1961
|
return prompt;
|
|
@@ -2029,6 +2268,44 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2029
2268
|
this.logger.warn('Fast registration timeout', { sessionName, role, timeout });
|
|
2030
2269
|
return false;
|
|
2031
2270
|
}
|
|
2271
|
+
/**
|
|
2272
|
+
* Resolve the orchestrator's working directory deterministically:
|
|
2273
|
+
* `CREWLY_ORC_CWD` env → first stored project whose path exists → CREWLY_HOME.
|
|
2274
|
+
*
|
|
2275
|
+
* Never the package install dir or the server's `process.cwd()`: under
|
|
2276
|
+
* systemd that is `/usr/lib/node_modules/crewly`, and the orchestrator
|
|
2277
|
+
* would see a different filesystem depending on which code path started it.
|
|
2278
|
+
*
|
|
2279
|
+
* @returns Absolute directory to spawn the orchestrator PTY in
|
|
2280
|
+
*/
|
|
2281
|
+
async resolveOrchestratorCwd() {
|
|
2282
|
+
const envCwd = process.env[ENV_CONSTANTS.CREWLY_ORC_CWD]?.trim();
|
|
2283
|
+
if (envCwd) {
|
|
2284
|
+
const resolved = path.resolve(envCwd);
|
|
2285
|
+
this.logger.info('Orchestrator cwd resolved from CREWLY_ORC_CWD', { cwd: resolved });
|
|
2286
|
+
return resolved;
|
|
2287
|
+
}
|
|
2288
|
+
try {
|
|
2289
|
+
const projects = await this.storageService.getProjects();
|
|
2290
|
+
const firstProject = projects.find((project) => project.path && existsSync(project.path));
|
|
2291
|
+
if (firstProject) {
|
|
2292
|
+
this.logger.info('Orchestrator cwd resolved from first assigned project', {
|
|
2293
|
+
cwd: firstProject.path,
|
|
2294
|
+
projectId: firstProject.id,
|
|
2295
|
+
projectName: firstProject.name,
|
|
2296
|
+
});
|
|
2297
|
+
return firstProject.path;
|
|
2298
|
+
}
|
|
2299
|
+
}
|
|
2300
|
+
catch (error) {
|
|
2301
|
+
this.logger.debug('Could not read projects for orchestrator cwd (falling back to CREWLY_HOME)', {
|
|
2302
|
+
error: error instanceof Error ? error.message : String(error),
|
|
2303
|
+
});
|
|
2304
|
+
}
|
|
2305
|
+
const home = getCrewlyHomePath();
|
|
2306
|
+
this.logger.info('Orchestrator cwd resolved to CREWLY_HOME (no env override, no project)', { cwd: home });
|
|
2307
|
+
return home;
|
|
2308
|
+
}
|
|
2032
2309
|
/**
|
|
2033
2310
|
* Create orchestrator session - extracted from the original tmux service
|
|
2034
2311
|
*/
|
|
@@ -2113,7 +2390,14 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2113
2390
|
* @returns Promise with success/error information
|
|
2114
2391
|
*/
|
|
2115
2392
|
async _createAgentSessionImpl(config) {
|
|
2116
|
-
const { sessionName, role,
|
|
2393
|
+
const { sessionName, role, windowName, memberId } = config;
|
|
2394
|
+
// The orchestrator's cwd is resolved deterministically (env > first
|
|
2395
|
+
// project > CREWLY_HOME) regardless of which boot path called us — the
|
|
2396
|
+
// boot path, /orchestrator/setup and the restart service used to pass
|
|
2397
|
+
// three different directories (server-install finding 4).
|
|
2398
|
+
const projectPath = role === ORCHESTRATOR_ROLE
|
|
2399
|
+
? await this.resolveOrchestratorCwd()
|
|
2400
|
+
: (config.projectPath ?? process.cwd());
|
|
2117
2401
|
const forceRecreate = config.forceRecreate ?? false;
|
|
2118
2402
|
// Get runtime type from config or default to claude-code
|
|
2119
2403
|
let runtimeType = config.runtimeType || RUNTIME_TYPES.CLAUDE_CODE;
|
|
@@ -2480,7 +2764,11 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2480
2764
|
await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_PROJECT_PATH, cwdToUse);
|
|
2481
2765
|
// #222: Set install dir so agents can resolve skill paths regardless of CWD
|
|
2482
2766
|
await sessionHelper.setEnvironmentVariable(sessionName, ENV_CONSTANTS.CREWLY_INSTALL_DIR, this.projectRoot);
|
|
2483
|
-
// Inject API keys from settings (with override chain) for
|
|
2767
|
+
// Inject API keys from settings (with override chain) for the PTY
|
|
2768
|
+
// runtimes (claude-code, gemini-cli, codex-cli, opencode-cli). crewly-agent never
|
|
2769
|
+
// reaches this block — it returns from the in-process branch above —
|
|
2770
|
+
// and gets its keys via CrewlyAgentExternalRuntimeService.buildChildEnv
|
|
2771
|
+
// on the child's spawn environment instead.
|
|
2484
2772
|
const settingsService = getSettingsService();
|
|
2485
2773
|
const runtimeContext = { runtime: runtimeType };
|
|
2486
2774
|
// Gemini key — needed by gemini-cli and crewly-agent
|
|
@@ -2494,7 +2782,7 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2494
2782
|
if (anthropicKey) {
|
|
2495
2783
|
await sessionHelper.setEnvironmentVariable(sessionName, 'ANTHROPIC_API_KEY', anthropicKey);
|
|
2496
2784
|
}
|
|
2497
|
-
// OpenAI key — needed by codex-cli and crewly-agent
|
|
2785
|
+
// OpenAI key — needed by codex-cli, opencode-cli and crewly-agent
|
|
2498
2786
|
const openaiKey = await settingsService.getApiKey('openai', runtimeContext);
|
|
2499
2787
|
if (openaiKey) {
|
|
2500
2788
|
await sessionHelper.setEnvironmentVariable(sessionName, 'OPENAI_API_KEY', openaiKey);
|
|
@@ -2512,11 +2800,7 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2512
2800
|
});
|
|
2513
2801
|
// Use the existing unified registration system
|
|
2514
2802
|
// #227: Claude Code gets extended timeout for PI protection evaluation
|
|
2515
|
-
const timeout = role
|
|
2516
|
-
? AGENT_TIMEOUTS.ORCHESTRATOR_INITIALIZATION
|
|
2517
|
-
: runtimeType === RUNTIME_TYPES.CLAUDE_CODE
|
|
2518
|
-
? AGENT_TIMEOUTS.CLAUDE_CODE_INITIALIZATION
|
|
2519
|
-
: AGENT_TIMEOUTS.REGULAR_AGENT_INITIALIZATION;
|
|
2803
|
+
const timeout = this.resolveRegistrationTimeout(role, runtimeType);
|
|
2520
2804
|
const initResult = await this.initializeAgentWithRegistration(sessionName, role, projectPath, timeout, memberId, runtimeType, runtimeFlags, config.additionalAllowlistPaths);
|
|
2521
2805
|
if (!initResult.success) {
|
|
2522
2806
|
return {
|
|
@@ -2718,9 +3002,23 @@ Loop until done, blocked, or explicitly reassigned:
|
|
|
2718
3002
|
// Process message asynchronously — don't block the caller
|
|
2719
3003
|
crewlyRuntime.handleMessage(message, slackMetadata)
|
|
2720
3004
|
.then((result) => {
|
|
3005
|
+
// Usage goes in the main log, not only the per-session buffer: this
|
|
3006
|
+
// is the line an operator greps to see what a run cost (2026-09-18).
|
|
3007
|
+
// cachedInput is the cached portion of input, so the rate is cached / input.
|
|
3008
|
+
const cachedInput = result.usage?.cachedInput ?? 0;
|
|
3009
|
+
const promptTokens = Math.max(result.usage?.input ?? 0, cachedInput);
|
|
2721
3010
|
this.logger.info('Crewly Agent finished processing message', {
|
|
2722
3011
|
sessionName, messageLength: message.length,
|
|
2723
3012
|
responseLength: result.text?.length ?? 0,
|
|
3013
|
+
steps: result.steps,
|
|
3014
|
+
toolCalls: result.toolCalls?.length ?? 0,
|
|
3015
|
+
finishReason: result.finishReason,
|
|
3016
|
+
usage: {
|
|
3017
|
+
input: result.usage?.input ?? 0,
|
|
3018
|
+
output: result.usage?.output ?? 0,
|
|
3019
|
+
cachedInput,
|
|
3020
|
+
cacheHitPercent: promptTokens > 0 ? Math.round((cachedInput / promptTokens) * 100) : 0,
|
|
3021
|
+
},
|
|
2724
3022
|
});
|
|
2725
3023
|
// Route response text back to the originating chat conversation.
|
|
2726
3024
|
// Without this, crewly-agent responses are discarded — the agent
|