crewly 1.6.0 → 1.6.2
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/config/roles/orchestrator/fragments/role-boundary.md +4 -1
- package/config/roles/orchestrator/prompt.md +53 -0
- package/config/roles/orchestrator/soul.md +47 -10
- package/config/skills/_common/lib.sh +28 -0
- package/config/skills/agent/core/cancel-followup/execute.sh +0 -19
- package/config/skills/agent/core/get-my-active-work/SKILL.md +101 -0
- package/config/skills/agent/core/get-my-active-work/execute.sh +122 -0
- package/config/skills/agent/core/list-my-followups/execute.sh +0 -19
- package/config/skills/agent/core/record-learning/SKILL.md +29 -0
- package/config/skills/agent/core/reply-channel/SKILL.md +41 -0
- package/config/skills/agent/core/reply-channel/execute.sh +165 -0
- package/config/skills/agent/core/reply-channel/execute.test.sh +148 -0
- package/config/skills/agent/core/schedule-followup/execute.sh +0 -19
- package/config/skills/agent/core/watch-for-event/execute.sh +0 -19
- package/config/skills/agent/remote-browser/execute.sh +296 -14
- package/config/skills/agent/remote-browser/execute.test.sh +482 -0
- package/config/skills/orchestrator/credential-manager/execute.test.sh +88 -0
- package/config/skills/orchestrator/send-message/SKILL.md +30 -7
- package/config/skills/orchestrator/team-health-scan/SKILL.md +98 -0
- package/config/skills/orchestrator/team-health-scan/execute.sh +44 -0
- package/config/skills/registry.json +62 -1
- package/config/sops/developer/git-workflow.md +38 -3
- package/dist/backend/backend/src/config/oauth.config.d.ts +33 -0
- package/dist/backend/backend/src/config/oauth.config.d.ts.map +1 -0
- package/dist/backend/backend/src/config/oauth.config.js +45 -0
- package/dist/backend/backend/src/config/oauth.config.js.map +1 -0
- package/dist/backend/backend/src/constants.d.ts +69 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +69 -2
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts +53 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +92 -0
- package/dist/backend/backend/src/controllers/active-work/active-work.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js +18 -1
- package/dist/backend/backend/src/controllers/agent-stream/agent-stream.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +68 -0
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +233 -5
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js +10 -1
- package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +8 -3
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +132 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +401 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +29 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +39 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.d.ts +8 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.js +8 -0
- package/dist/backend/backend/src/controllers/chat-v2/index.js.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts +0 -26
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.js +47 -184
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.js +2 -1
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts +40 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js +162 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts +13 -13
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js +74 -234
- package/dist/backend/backend/src/controllers/onboarding/onboarding.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.controller.js +4 -6
- package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/skill/skill.controller.js +1 -0
- package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts +43 -0
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +200 -72
- package/dist/backend/backend/src/controllers/task-management/tasks.controller.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 +46 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts +59 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.js +127 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts +13 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.js +20 -0
- package/dist/backend/backend/src/controllers/team-health/team-health.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts +9 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +256 -4
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +43 -6
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts +498 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js +759 -0
- package/dist/backend/backend/src/services/agent/active-work-briefing.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +25 -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 +193 -57
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +9 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +35 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +8 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.js +2 -1
- package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +148 -3
- 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 +241 -2
- package/dist/backend/backend/src/services/ai/prompt-builder.service.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 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +30 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.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 +17 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +161 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +382 -2
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +105 -0
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +232 -13
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +178 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +254 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts +134 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js +232 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.mention-resolver.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts +25 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js +23 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.realtime-holder.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +254 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +467 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts +27 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js +57 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.singleton.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts +43 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js +54 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.team-membership.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/config.d.ts +100 -0
- package/dist/backend/backend/src/services/chat-v2/config.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/config.js +174 -0
- package/dist/backend/backend/src/services/chat-v2/config.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/index.d.ts +11 -0
- package/dist/backend/backend/src/services/chat-v2/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/index.js +12 -0
- package/dist/backend/backend/src/services/chat-v2/index.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +114 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +194 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +100 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +351 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +132 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +281 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +295 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/chat-v2/types.js +61 -0
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts +113 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js +179 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-bridge.service.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts +131 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js +227 -0
- package/dist/backend/backend/src/services/cloud/cloud-event-forwarder.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/config.service.js +3 -3
- package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +7 -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 +15 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +4 -16
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +7 -28
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +69 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js +118 -0
- package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +275 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +736 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js +18 -2
- package/dist/backend/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +123 -29
- package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts +159 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.js +304 -0
- package/dist/backend/backend/src/services/knowledge/learnings-index.service.js.map +1 -0
- package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js +24 -4
- package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.d.ts +46 -2
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +216 -211
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +254 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +285 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +174 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +375 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
- package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +1 -0
- package/dist/backend/backend/src/services/memory/vector-store.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/vector-store.service.js +19 -4
- package/dist/backend/backend/src/services/memory/vector-store.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts +16 -5
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js +32 -5
- package/dist/backend/backend/src/services/onboarding/onboarding-provision.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts +157 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js +229 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.service.js.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts +141 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.js +18 -0
- package/dist/backend/backend/src/services/onboarding/onboarding.types.js.map +1 -0
- package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/pr-review/pr-review.service.js +1 -1
- package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.js +5 -0
- package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +41 -0
- package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-executor.service.js +136 -7
- package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill.service.js +1 -0
- package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js +17 -1
- package/dist/backend/backend/src/services/slack/cross-machine-message.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +39 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +158 -26
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +248 -6
- 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 +531 -51
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-health/index.d.ts +16 -0
- package/dist/backend/backend/src/services/team-health/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/index.js +16 -0
- package/dist/backend/backend/src/services/team-health/index.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts +52 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js +161 -0
- package/dist/backend/backend/src/services/team-health/live-team-health-data-provider.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts +53 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js +88 -0
- package/dist/backend/backend/src/services/team-health/lost-dispatch-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts +44 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js +83 -0
- package/dist/backend/backend/src/services/team-health/stale-trigger-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts +92 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.js +328 -0
- package/dist/backend/backend/src/services/team-health/team-health-alert-router.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.d.ts +41 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.js +213 -0
- package/dist/backend/backend/src/services/team-health/team-health-config.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts +46 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.js +347 -0
- package/dist/backend/backend/src/services/team-health/team-health-detector.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.d.ts +154 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.js +94 -0
- package/dist/backend/backend/src/services/team-health/team-health-types.js.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts +111 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js +226 -0
- package/dist/backend/backend/src/services/team-health/team-health-watchdog.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +148 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js +545 -0
- package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +499 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +1105 -0
- package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts +22 -0
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +71 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +1 -0
- 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 +22 -6
- package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts +19 -1
- package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/event-bus.types.js +43 -0
- package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +22 -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/review-reason.types.d.ts +63 -0
- package/dist/backend/backend/src/types/review-reason.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/review-reason.types.js +50 -0
- package/dist/backend/backend/src/types/review-reason.types.js.map +1 -0
- package/dist/backend/backend/src/types/skill.types.d.ts +9 -0
- package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/skill.types.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +4 -1
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/mission.types.d.ts +18 -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 +1 -0
- package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +25 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts +41 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.js +44 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/team.utils.d.ts +38 -0
- package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/team.utils.js +45 -0
- package/dist/backend/backend/src/utils/team.utils.js.map +1 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts +195 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts.map +1 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js +401 -0
- package/dist/backend/backend/src/websocket/chat-v2.gateway.js.map +1 -0
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +37 -2
- package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/terminal.gateway.js +106 -5
- package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
- package/dist/cli/backend/src/config/oauth.config.d.ts +33 -0
- package/dist/cli/backend/src/config/oauth.config.d.ts.map +1 -0
- package/dist/cli/backend/src/config/oauth.config.js +45 -0
- package/dist/cli/backend/src/config/oauth.config.js.map +1 -0
- package/dist/cli/backend/src/constants.d.ts +69 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +69 -2
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/core/config.service.js +3 -3
- package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +7 -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 +15 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +4 -16
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -1
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +7 -28
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js +18 -2
- package/dist/cli/backend/src/services/knowledge/fts5-index.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +49 -13
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +123 -29
- package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js +24 -4
- package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.d.ts +46 -2
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +216 -211
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +254 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +285 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts +18 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/skill/skill-executor.service.js +7 -9
- package/dist/cli/backend/src/services/skill/skill-executor.service.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +22 -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/skill.types.d.ts +9 -0
- package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/skill.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +25 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts +41 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.js +44 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.js.map +1 -0
- package/frontend/dist/assets/{index-9e6d97d1.js → index-7a4e7df5.js} +328 -326
- package/frontend/dist/assets/index-b7e59b2b.css +33 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +2 -1
- package/config/skills/orchestrator/recall/SKILL.md +0 -47
- package/config/skills/orchestrator/recall/execute.sh +0 -13
- package/config/skills/orchestrator/record-learning/SKILL.md +0 -47
- package/config/skills/orchestrator/record-learning/execute.sh +0 -13
- package/config/skills/orchestrator/remember/SKILL.md +0 -55
- package/config/skills/orchestrator/remember/execute.sh +0 -15
- package/frontend/dist/assets/index-6aaa0630.css +0 -33
|
@@ -37,12 +37,37 @@ export class RoleBoundaryModule {
|
|
|
37
37
|
* @returns Formatted markdown role boundary section
|
|
38
38
|
*/
|
|
39
39
|
async build(config) {
|
|
40
|
+
// === Fail-fast misconfiguration guards (WIRE-1 V4 + F-G) ===========
|
|
41
|
+
// (1) canDelegate=true && orgRole undefined → throw.
|
|
42
|
+
// A member who can delegate but whose orgRole was never resolved
|
|
43
|
+
// indicates the caller bypassed `buildModuleConfigFromTeamMember`.
|
|
44
|
+
// The previous silent `?? 'executor'` fallback caused every TL
|
|
45
|
+
// agent in production to render with the executor boundary —
|
|
46
|
+
// the bug this ticket fixes (Arch Veto #7).
|
|
47
|
+
if (config.canDelegate === true && config.orgRole === undefined) {
|
|
48
|
+
throw new Error(`RoleBoundaryModule: canDelegate=true but orgRole is undefined for ` +
|
|
49
|
+
`session=${config.sessionName ?? '<unknown>'}. ` +
|
|
50
|
+
`Resolve orgRole via deriveOrgRole(member, team) before assembly — ` +
|
|
51
|
+
`silent executor fallback is the bug WIRE-1 fixes (Arch Veto #7).`);
|
|
52
|
+
}
|
|
53
|
+
// (2) Symmetric misconfig (F-G): canDelegate=false && orgRole='team-lead'.
|
|
54
|
+
// Refuse to render TL authority for a member that cannot delegate.
|
|
55
|
+
if (config.canDelegate === false && config.orgRole === 'team-lead') {
|
|
56
|
+
throw new Error(`RoleBoundaryModule: canDelegate=false but orgRole='team-lead' for ` +
|
|
57
|
+
`session=${config.sessionName ?? '<unknown>'}. ` +
|
|
58
|
+
`Symmetric misconfiguration — refuse to render TL authority for a ` +
|
|
59
|
+
`member that cannot delegate (WIRE-1 F-G).`);
|
|
60
|
+
}
|
|
40
61
|
// Try loading a custom role fragment first
|
|
41
62
|
const fragment = loadRoleFragment(config.projectRoot, config.role, 'role-boundary');
|
|
42
63
|
if (fragment) {
|
|
43
64
|
return fragment + this.buildOrganizationContext(config);
|
|
44
65
|
}
|
|
45
|
-
// Fall back to inline content based on orgRole
|
|
66
|
+
// Fall back to inline content based on orgRole. Default to 'executor'
|
|
67
|
+
// for non-TL members whose orgRole was not resolved — that path is
|
|
68
|
+
// correct (executor is the right boundary for plain workers) and not
|
|
69
|
+
// the bug we are fixing. The canDelegate=true case is gated above
|
|
70
|
+
// so it cannot reach this fallback silently.
|
|
46
71
|
const orgRole = config.orgRole ?? 'executor';
|
|
47
72
|
let boundary;
|
|
48
73
|
switch (orgRole) {
|
|
@@ -162,11 +187,14 @@ export class RoleBoundaryModule {
|
|
|
162
187
|
'',
|
|
163
188
|
'### What You ARE',
|
|
164
189
|
'- User secretary and message router',
|
|
165
|
-
'-
|
|
190
|
+
'- **Status translator**: condense multi-agent technical chatter into plain business-language updates the owner can act on',
|
|
191
|
+
'- **Decision packager**: when owner input is needed, deliver one clear question + context + recommendation, never raw analysis',
|
|
166
192
|
'- Thread continuity manager',
|
|
167
193
|
'- Notification and event router',
|
|
168
194
|
'- Escalation handler and cross-team coordinator',
|
|
169
195
|
'',
|
|
196
|
+
'**Note on "compression":** condensing means distilling what matters, NOT using shorthand or internal code names. A 3-line summary in plain English is correct compression; a 3-line summary packed with internal task IDs is wrong compression.',
|
|
197
|
+
'',
|
|
170
198
|
'### What You Are NOT',
|
|
171
199
|
'- Strategy maker or task decomposer (that\'s the Team Lead)',
|
|
172
200
|
'- Code writer or implementer (that\'s the Executor)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-boundary.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/role-boundary.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,kBAAkB;IAC9B,IAAI,GAAG,eAAe,CAAC;IACvB,QAAQ,GAAG,CAAC,CAAC;IACb,SAAS,GAAG,IAAI,CAAC;IACjB,WAAW,GAAG,KAAK,CAAC;IAEpB;;;;;OAKG;IACH,aAAa,CAAC,OAAqB;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CAAC,MAAoB;QAC/B,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACpF,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC;QAE7C,IAAI,QAAgB,CAAC;QACrB,QAAQ,OAAO,EAAE,CAAC;YACjB,KAAK,cAAc;gBAClB,QAAQ,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAC5C,MAAM;YACP,KAAK,WAAW;gBACf,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACxC,MAAM;YACP,KAAK,UAAU,CAAC;YAChB;gBACC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACxC,MAAM;QACR,CAAC;QAED,OAAO,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,MAAoB;QACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,eAAe;QACf,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,cAAc;gBAAE,QAAQ,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,yDAAyD,CAAC,CAAC;YAC7E,QAAQ,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACxF,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;gBACnD,QAAQ,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACK,0BAA0B;QACjC,OAAO;YACN,yCAAyC;YACzC,2FAA2F;YAC3F,EAAE;YACF,wEAAwE;YACxE,0EAA0E;YAC1E,sFAAsF;YACtF,2DAA2D;YAC3D,sEAAsE;YACtE,oEAAoE;YACpE,EAAE;YACF,4GAA4G;YAC5G,EAAE;YACF,yFAAyF;YACzF,gFAAgF;YAChF,uEAAuE;SACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACK,4BAA4B;QACnC,OAAO;YACN,+BAA+B;YAC/B,EAAE;YACF,oIAAoI;YACpI,yJAAyJ;YACzJ,uNAAuN;SACvN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACK,yBAAyB;QAChC,OAAO;YACN,oBAAoB;YACpB,EAAE;YACF,kBAAkB;YAClB,qCAAqC;YACrC,
|
|
1
|
+
{"version":3,"file":"role-boundary.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/role-boundary.module.ts"],"names":[],"mappings":"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"}
|
package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD;;OAEG;IACH,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"skills-reference.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,IAAI,SAAuB;IAC3B,QAAQ,SAAK;IACb,SAAS,SAAO;IAChB,WAAW,UAAS;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD;;OAEG;IACH,OAAO,CAAC,eAAe;IAqEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA0DzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAkB1B"}
|
|
@@ -48,6 +48,23 @@ export class SkillsReferenceModule {
|
|
|
48
48
|
'- `core/remember` — store knowledge for future reference',
|
|
49
49
|
'- `core/record-learning` — record learnings while working',
|
|
50
50
|
'- `core/report-status` — report status to team leader or orchestrator',
|
|
51
|
+
'',
|
|
52
|
+
'### Follow-up skills (ad-hoc timers and event watchers)',
|
|
53
|
+
'- `core/schedule-followup` — schedule a future check-in that creates a WorkItem at time T',
|
|
54
|
+
' • one-shot: `--in-minutes N` or `--fire-at <ISO8601>`',
|
|
55
|
+
' • bounded recurring: `--cron "<expr>" --max-fires N`',
|
|
56
|
+
' • target yourself (default) or another agent via `--target`',
|
|
57
|
+
'- `core/watch-for-event` — fire a WorkItem whenever an event occurs (e.g. `agent:idle`, `task:completed`)',
|
|
58
|
+
' • narrow with `--filter-session <session>` or `--filter-json \'{"...":"..."}\'`',
|
|
59
|
+
' • cap with `--max-fires` / `--max-idle-fires` so a flapping source does not loop forever',
|
|
60
|
+
'- `core/cancel-followup` — cancel a trigger you created (`--id` or `--name`)',
|
|
61
|
+
'- `core/list-my-followups` — list follow-ups owned by your team (audit before adding a new one)',
|
|
62
|
+
'',
|
|
63
|
+
'**Follow-up discipline (required):**',
|
|
64
|
+
'1. Every follow-up must have a **finite end**. Use `maxFires` for recurring, or rely on the default `maxIdleFires=3` auto-cancel.',
|
|
65
|
+
'2. Call `cancel-followup` the moment you confirm the task is done — do not rely on idle-auto-cancel as your only safety net.',
|
|
66
|
+
'3. Before scheduling a new watcher on a target, run `list-my-followups --name-prefix watch:` to avoid duplicates.',
|
|
67
|
+
'4. Prefer `watch-for-event` when you need reactive coverage (agent went idle → check). Prefer `schedule-followup` when you need a wall-clock checkpoint (9am tomorrow → re-prompt).',
|
|
51
68
|
];
|
|
52
69
|
// Orchestrators and TLs get additional coordination skills
|
|
53
70
|
if (config.role === 'orchestrator') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IACjC,IAAI,GAAG,mBAAmB,CAAC;IAC3B,QAAQ,GAAG,CAAC,CAAC;IACb,SAAS,GAAG,GAAG,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAqB;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,MAAoB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAoB;QAC3C,MAAM,KAAK,GAAG;YACb,qBAAqB;YACrB,EAAE;YACF,oBAAoB,MAAM,CAAC,eAAe,MAAM;YAChD,2DAA2D;YAC3D,0DAA0D;YAC1D,2DAA2D;YAC3D,uEAAuE;
|
|
1
|
+
{"version":3,"file":"skills-reference.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/skills-reference.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { PromptModule, ModuleConfig } from './prompt-module.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* SOP-vs-Norm distinction module — teaches every agent how to differentiate
|
|
4
|
+
* procedural SOPs (step-by-step deliverable guides) from behavioral Norms
|
|
5
|
+
* (collaboration covenants applied as constraints), how to name and place
|
|
6
|
+
* new SOP / Norm docs, how to reconcile conflicting versions, and how to
|
|
7
|
+
* communicate with task owners (silent-by-default / outcomes-first /
|
|
8
|
+
* thread-scope-discipline).
|
|
9
|
+
*
|
|
10
|
+
* This module sits at v1.5 of the three-tier knowledge-reconciliation
|
|
11
|
+
* roadmap:
|
|
12
|
+
* - v1 (Mia, shipped): Karpathy-lite — `record-learning` entity-centric format.
|
|
13
|
+
* - v1.5 (this module): prompt-layer SOP/Norm classification + naming + reconciliation hint.
|
|
14
|
+
* - v2 (Archivist, deferred): full cross-artifact synthesis engine.
|
|
15
|
+
*
|
|
16
|
+
* Reconciliation is treated as a horizontal primitive across all knowledge
|
|
17
|
+
* artifacts. v1.5 is the prompt-layer hint only — it does NOT introduce a
|
|
18
|
+
* service. It teaches agents to recognise conflict and escalate to TL,
|
|
19
|
+
* never silently merge.
|
|
20
|
+
*
|
|
21
|
+
* Source of truth for SOP/Norm classification:
|
|
22
|
+
* YAML frontmatter `type: sop | norm | hybrid` on each doc file.
|
|
23
|
+
* Filename prefix (`sop-*` / `norm-*` / `hybrid-*`) is a secondary hint.
|
|
24
|
+
*
|
|
25
|
+
* Owner Communication Discipline (3 norms folded as one family):
|
|
26
|
+
* - Silent by default
|
|
27
|
+
* - Deliver outcomes, not narrate progress
|
|
28
|
+
* - Thread scope discipline
|
|
29
|
+
* The three propagate via this module's system-prompt injection so they
|
|
30
|
+
* apply to ALL agents, not just orchestrator agent memory.
|
|
31
|
+
*
|
|
32
|
+
* Spec source:
|
|
33
|
+
* `.crewly/tasks/autonomy_v1/follow-up/sop-norm-prompt-module.md`
|
|
34
|
+
* (orc relay 2026-04-26 evening; Steve directive on naming + placement +
|
|
35
|
+
* reconciliation rules + Owner Communication Discipline.)
|
|
36
|
+
*
|
|
37
|
+
* @module services/ai/prompt-modules/sop-norm-distinction.module
|
|
38
|
+
*/
|
|
39
|
+
export declare class SOPNormDistinctionModule implements PromptModule {
|
|
40
|
+
name: string;
|
|
41
|
+
/** Just after `learning_references` (priority 10) so the SOP/Norm lens is established before downstream behavioural sections. */
|
|
42
|
+
priority: number;
|
|
43
|
+
/**
|
|
44
|
+
* Soft cap. Note: the spec acceptance criterion lists "Token estimate < 450"
|
|
45
|
+
* but that estimate undercounts the verbatim skeleton — once all 6 required
|
|
46
|
+
* sections (Definitions, Reading rules, Naming + placement, Reconciliation,
|
|
47
|
+
* Owner Communication Discipline, Why this matters) plus their mandated
|
|
48
|
+
* sub-items are rendered, the actual content measures ~1009 tokens. The
|
|
49
|
+
* authoritative budget is therefore raised to 1100 (≈9% headroom). Module is
|
|
50
|
+
* `compactable = true` so the assembler still trims under budget pressure.
|
|
51
|
+
* Deviation logged in spec follow-up; spec's "Token estimate < 450" line is
|
|
52
|
+
* acknowledged as an undercount, not enforced.
|
|
53
|
+
*/
|
|
54
|
+
maxTokens: number;
|
|
55
|
+
compactable: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Always include — every agent (orchestrator, TL, executor) needs the
|
|
58
|
+
* SOP-vs-Norm lens and the Owner Communication Discipline guard rails.
|
|
59
|
+
*
|
|
60
|
+
* @param _config - unused; included for interface symmetry.
|
|
61
|
+
* @returns always `true`.
|
|
62
|
+
*/
|
|
63
|
+
shouldInclude(_config: ModuleConfig): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Build the SOP-vs-Norm distinction section as a markdown string.
|
|
66
|
+
* Output structure (6 sections, per spec acceptance criteria):
|
|
67
|
+
* 1. Definitions (SOP / Team Norm / Hybrid).
|
|
68
|
+
* 2. Reading rules (4 items).
|
|
69
|
+
* 3. Naming + placement rules (4 items).
|
|
70
|
+
* 4. Reconciliation rules (4 items, "extend not replace").
|
|
71
|
+
* 5. Owner Communication Discipline (3 norms as one family).
|
|
72
|
+
* 6. Why this matters.
|
|
73
|
+
*
|
|
74
|
+
* @param _config - unused; module content is static.
|
|
75
|
+
* @returns markdown section.
|
|
76
|
+
*/
|
|
77
|
+
build(_config: ModuleConfig): Promise<string>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=sop-norm-distinction.module.d.ts.map
|
package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sop-norm-distinction.module.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/sop-norm-distinction.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC5D,IAAI,SAA0B;IAC9B,iIAAiI;IACjI,QAAQ,SAAM;IACd;;;;;;;;;;OAUG;IACH,SAAS,SAAQ;IACjB,WAAW,UAAQ;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI7C;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;CAuCnD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SOP-vs-Norm distinction module — teaches every agent how to differentiate
|
|
3
|
+
* procedural SOPs (step-by-step deliverable guides) from behavioral Norms
|
|
4
|
+
* (collaboration covenants applied as constraints), how to name and place
|
|
5
|
+
* new SOP / Norm docs, how to reconcile conflicting versions, and how to
|
|
6
|
+
* communicate with task owners (silent-by-default / outcomes-first /
|
|
7
|
+
* thread-scope-discipline).
|
|
8
|
+
*
|
|
9
|
+
* This module sits at v1.5 of the three-tier knowledge-reconciliation
|
|
10
|
+
* roadmap:
|
|
11
|
+
* - v1 (Mia, shipped): Karpathy-lite — `record-learning` entity-centric format.
|
|
12
|
+
* - v1.5 (this module): prompt-layer SOP/Norm classification + naming + reconciliation hint.
|
|
13
|
+
* - v2 (Archivist, deferred): full cross-artifact synthesis engine.
|
|
14
|
+
*
|
|
15
|
+
* Reconciliation is treated as a horizontal primitive across all knowledge
|
|
16
|
+
* artifacts. v1.5 is the prompt-layer hint only — it does NOT introduce a
|
|
17
|
+
* service. It teaches agents to recognise conflict and escalate to TL,
|
|
18
|
+
* never silently merge.
|
|
19
|
+
*
|
|
20
|
+
* Source of truth for SOP/Norm classification:
|
|
21
|
+
* YAML frontmatter `type: sop | norm | hybrid` on each doc file.
|
|
22
|
+
* Filename prefix (`sop-*` / `norm-*` / `hybrid-*`) is a secondary hint.
|
|
23
|
+
*
|
|
24
|
+
* Owner Communication Discipline (3 norms folded as one family):
|
|
25
|
+
* - Silent by default
|
|
26
|
+
* - Deliver outcomes, not narrate progress
|
|
27
|
+
* - Thread scope discipline
|
|
28
|
+
* The three propagate via this module's system-prompt injection so they
|
|
29
|
+
* apply to ALL agents, not just orchestrator agent memory.
|
|
30
|
+
*
|
|
31
|
+
* Spec source:
|
|
32
|
+
* `.crewly/tasks/autonomy_v1/follow-up/sop-norm-prompt-module.md`
|
|
33
|
+
* (orc relay 2026-04-26 evening; Steve directive on naming + placement +
|
|
34
|
+
* reconciliation rules + Owner Communication Discipline.)
|
|
35
|
+
*
|
|
36
|
+
* @module services/ai/prompt-modules/sop-norm-distinction.module
|
|
37
|
+
*/
|
|
38
|
+
export class SOPNormDistinctionModule {
|
|
39
|
+
name = 'sop_norm_distinction';
|
|
40
|
+
/** Just after `learning_references` (priority 10) so the SOP/Norm lens is established before downstream behavioural sections. */
|
|
41
|
+
priority = 11;
|
|
42
|
+
/**
|
|
43
|
+
* Soft cap. Note: the spec acceptance criterion lists "Token estimate < 450"
|
|
44
|
+
* but that estimate undercounts the verbatim skeleton — once all 6 required
|
|
45
|
+
* sections (Definitions, Reading rules, Naming + placement, Reconciliation,
|
|
46
|
+
* Owner Communication Discipline, Why this matters) plus their mandated
|
|
47
|
+
* sub-items are rendered, the actual content measures ~1009 tokens. The
|
|
48
|
+
* authoritative budget is therefore raised to 1100 (≈9% headroom). Module is
|
|
49
|
+
* `compactable = true` so the assembler still trims under budget pressure.
|
|
50
|
+
* Deviation logged in spec follow-up; spec's "Token estimate < 450" line is
|
|
51
|
+
* acknowledged as an undercount, not enforced.
|
|
52
|
+
*/
|
|
53
|
+
maxTokens = 1100;
|
|
54
|
+
compactable = true;
|
|
55
|
+
/**
|
|
56
|
+
* Always include — every agent (orchestrator, TL, executor) needs the
|
|
57
|
+
* SOP-vs-Norm lens and the Owner Communication Discipline guard rails.
|
|
58
|
+
*
|
|
59
|
+
* @param _config - unused; included for interface symmetry.
|
|
60
|
+
* @returns always `true`.
|
|
61
|
+
*/
|
|
62
|
+
shouldInclude(_config) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Build the SOP-vs-Norm distinction section as a markdown string.
|
|
67
|
+
* Output structure (6 sections, per spec acceptance criteria):
|
|
68
|
+
* 1. Definitions (SOP / Team Norm / Hybrid).
|
|
69
|
+
* 2. Reading rules (4 items).
|
|
70
|
+
* 3. Naming + placement rules (4 items).
|
|
71
|
+
* 4. Reconciliation rules (4 items, "extend not replace").
|
|
72
|
+
* 5. Owner Communication Discipline (3 norms as one family).
|
|
73
|
+
* 6. Why this matters.
|
|
74
|
+
*
|
|
75
|
+
* @param _config - unused; module content is static.
|
|
76
|
+
* @returns markdown section.
|
|
77
|
+
*/
|
|
78
|
+
async build(_config) {
|
|
79
|
+
return `## SOP vs Team Norm — How to Read, Create, and Reconcile Procedure Docs
|
|
80
|
+
|
|
81
|
+
### Definitions
|
|
82
|
+
- **SOP** (Standard Operating Procedure): A step-by-step procedure to produce a specific deliverable. Follow it sequentially. Examples: code-commit-sop, content-production-pipeline.
|
|
83
|
+
- **Team Norm**: A behavioral / collaboration covenant with teammates. Apply it as a constraint on *how* you work, not as steps to execute. Examples: branch-guard rule, worktree-isolation pattern.
|
|
84
|
+
- **Hybrid**: A doc containing both. Identify which sections are procedural (follow steps) vs which are normative (apply as constraint).
|
|
85
|
+
|
|
86
|
+
### Reading rules
|
|
87
|
+
1. **Source of truth = YAML frontmatter \`type:\`** on the doc file (\`sop\` | \`norm\` | \`hybrid\`).
|
|
88
|
+
2. **Filename prefix** is secondary: \`sop-*.md\` → procedural, \`norm-*.md\` → behavioral.
|
|
89
|
+
3. **When you call \`get-sops\` skill**: returned docs declare their type in the response. Do NOT step-through a Norm.
|
|
90
|
+
4. **When in doubt**: ask the team-leader. Misreading a Norm as an SOP causes over-procedure; ignoring a Norm causes collaboration breakdown.
|
|
91
|
+
|
|
92
|
+
### Naming + placement rules (when you create a new SOP / Norm)
|
|
93
|
+
1. **Filename prefix:** \`sop-<name>.md\` for procedural, \`norm-<name>.md\` for behavioral, \`hybrid-<name>.md\` for mixed.
|
|
94
|
+
2. **YAML frontmatter:** Every doc MUST start with \`---\\ntype: sop|norm|hybrid\\n---\` block. The frontmatter \`type:\` is the contract — filename prefix is a secondary cue.
|
|
95
|
+
3. **Subdirectory:** place under \`sops/sops/\`, \`sops/norms/\`, or \`sops/hybrids/\` respectively.
|
|
96
|
+
4. **Hybrid docs** must have section-level \`<!-- type: sop -->\` / \`<!-- type: norm -->\` HTML comments inside the body so consumers can split.
|
|
97
|
+
|
|
98
|
+
### Reconciliation rules (when you encounter conflicting SOPs / Norms)
|
|
99
|
+
1. **Flag, don't merge.** If two docs disagree on the same procedure or covenant, do NOT silently merge. Open a conflict marker (write a note + escalate to TL).
|
|
100
|
+
2. **Escalate to team-leader.** TL owns reconciliation decisions. Only TL may declare which version is canonical.
|
|
101
|
+
3. **Multiple-version coexistence priority** (when no TL decision yet): \`mtime\` (newest wins for procedural drift) → \`version:\` frontmatter field (explicit semver wins) → explicit \`owner:\` frontmatter (owner-declared canonical wins).
|
|
102
|
+
4. **Never delete.** Conflicting docs stay on disk. Append \`status: deprecated\` to frontmatter of the losing version once TL decides; keep file for audit. Mirrors Norm v0.2 "extend not replace".
|
|
103
|
+
|
|
104
|
+
### Owner Communication Discipline
|
|
105
|
+
When you communicate with task owners (TL, PM, Steve, Orchestrator), apply these three norms together — they are one family: **owner attention discipline**.
|
|
106
|
+
|
|
107
|
+
1. **Silent by default.** Do not surface what should not be surfaced. If a status update doesn't change a decision, don't send it. Heartbeats / "still working" pings are noise; only surface progress when (a) a milestone landed, (b) you are blocked, or (c) the owner asked for an update.
|
|
108
|
+
2. **Deliver outcomes, not narrate progress.** When you do surface, lead with the conclusion + recommendation. Owners parse the first line; everything after is supporting evidence. Never bury the verdict at the bottom of a play-by-play.
|
|
109
|
+
3. **Thread Scope Discipline.** Each Slack thread / message-context has its own topic scope. Replies stay within that scope — no cross-thread sidebars. ("By the way, X thread is also progressing…" is noise to the X-thread owner.) Cross-thread routing is the orchestrator's job; topic owners do not need sidebar updates from peer threads. Exception: owner explicitly asked "also tell me about X".
|
|
110
|
+
|
|
111
|
+
### Why this matters
|
|
112
|
+
- An SOP says "do X then Y then Z to ship a PR". Follow exactly.
|
|
113
|
+
- A Norm says "always branch-guard before commit". Apply every time, not as a sequential step.
|
|
114
|
+
- Silent merging of conflicting docs erases team-decision history. Always surface conflict, never resolve it implicitly.
|
|
115
|
+
- Owner attention is finite. The three Owner Communication norms compound: silent-by-default reduces volume, outcomes-first reduces parse cost, thread-scope reduces context-switch cost.`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=sop-norm-distinction.module.js.map
|
package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sop-norm-distinction.module.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/ai/prompt-modules/sop-norm-distinction.module.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,wBAAwB;IACpC,IAAI,GAAG,sBAAsB,CAAC;IAC9B,iIAAiI;IACjI,QAAQ,GAAG,EAAE,CAAC;IACd;;;;;;;;;;OAUG;IACH,SAAS,GAAG,IAAI,CAAC;IACjB,WAAW,GAAG,IAAI,CAAC;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,OAAqB;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK,CAAC,OAAqB;QAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0LAoCiL,CAAC;IAC1L,CAAC;CACD"}
|
|
@@ -59,7 +59,45 @@ export interface BrowserBridgeStatus {
|
|
|
59
59
|
relayAvailable?: boolean;
|
|
60
60
|
/** Cloud device ID of the relay-connected Extension (null if not discovered) */
|
|
61
61
|
relayDeviceId?: string | null;
|
|
62
|
+
/** Number of currently active agent→tab bindings (per-tab dispatch). */
|
|
63
|
+
bindingCount?: number;
|
|
62
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Per-tab dispatch (1 agent : 1 tab) — see
|
|
67
|
+
* `.crewly/specs/crewly-in-chrome-per-tab-fix-2026-04-25.md`.
|
|
68
|
+
*
|
|
69
|
+
* Each binding records which agentSession owns which Extension tab, plus
|
|
70
|
+
* a recency stamp used by the TTL sweep to evict idle bindings.
|
|
71
|
+
*/
|
|
72
|
+
export interface AgentTabBinding {
|
|
73
|
+
/** Owning agent session (`X-Agent-Session` header value). */
|
|
74
|
+
agentSession: string;
|
|
75
|
+
/** Chrome tab id this agent has been bound to. */
|
|
76
|
+
tabId: number;
|
|
77
|
+
/** Window id the tab lives in (tracked for cross-window heuristics). */
|
|
78
|
+
windowId?: number;
|
|
79
|
+
/** Wall-clock time when the binding was first established. */
|
|
80
|
+
boundAt: Date;
|
|
81
|
+
/** Wall-clock time of the last command that touched this binding. Reset on activity. */
|
|
82
|
+
lastActivityAt: Date;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Tab descriptor reported by the Extension during the post-reconnect
|
|
86
|
+
* inventory handshake (§4.4 Reconnect Reconciliation).
|
|
87
|
+
*/
|
|
88
|
+
export interface ExtensionTabDescriptor {
|
|
89
|
+
tabId: number;
|
|
90
|
+
url?: string;
|
|
91
|
+
title?: string;
|
|
92
|
+
windowId?: number;
|
|
93
|
+
/** True when the tab is in Crewly's tab group — only these are eligible for auto-close. */
|
|
94
|
+
crewlyOwned?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Reasons a tab binding can disappear. Surfaced in logs/metrics so we
|
|
98
|
+
* can distinguish user-driven closes from sweep-driven evictions.
|
|
99
|
+
*/
|
|
100
|
+
export type AgentTabBindingRemovalReason = 'unbind' | 'tab_removed' | 'ttl_expired' | 'reconcile_extension_missing' | 'shutdown';
|
|
63
101
|
/**
|
|
64
102
|
* BrowserBridgeService manages WebSocket connections from the Crewly Chrome
|
|
65
103
|
* Extension and provides a command-response bridge for the REST API layer.
|
|
@@ -73,6 +111,16 @@ export declare class BrowserBridgeService {
|
|
|
73
111
|
private clients;
|
|
74
112
|
private pendingCommands;
|
|
75
113
|
private commandCounter;
|
|
114
|
+
/**
|
|
115
|
+
* Per-agent tab bindings (per-tab dispatch §3.2). Keyed by `agentSession`
|
|
116
|
+
* so each agent has at most one bound tab. Cleared on `unbindAgentTab`,
|
|
117
|
+
* tab-removed events from the Extension, TTL expiry, or shutdown.
|
|
118
|
+
*/
|
|
119
|
+
private agentTabBindings;
|
|
120
|
+
/** Periodic timer that evicts idle bindings (§4.2). Only running while attached. */
|
|
121
|
+
private sweepTimer;
|
|
122
|
+
/** Last time we logged the soft-cap warning, used to throttle to once per sweep cycle. */
|
|
123
|
+
private softWarnLoggedAt;
|
|
76
124
|
private constructor();
|
|
77
125
|
/**
|
|
78
126
|
* Get the singleton instance.
|
|
@@ -115,6 +163,119 @@ export declare class BrowserBridgeService {
|
|
|
115
163
|
* @throws Error if no client is connected or command times out
|
|
116
164
|
*/
|
|
117
165
|
sendCommand(tool: string, params?: Record<string, unknown>, timeoutMs?: number, agentName?: string): Promise<BrowserCommandResponse>;
|
|
166
|
+
/**
|
|
167
|
+
* Look up the current binding for an agent session, if any. Read-only —
|
|
168
|
+
* does NOT update `lastActivityAt`. Use `sendCommandForAgent` for the
|
|
169
|
+
* activity-tracking lookup path.
|
|
170
|
+
*
|
|
171
|
+
* @param agentSession `X-Agent-Session` header value.
|
|
172
|
+
* @returns The binding, or `undefined` if this agent has no bound tab.
|
|
173
|
+
*/
|
|
174
|
+
getBinding(agentSession: string): AgentTabBinding | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Snapshot the current bindings as a plain array — used by `GET
|
|
177
|
+
* /api/browser/bindings` and by tests.
|
|
178
|
+
*/
|
|
179
|
+
listBindings(): AgentTabBinding[];
|
|
180
|
+
/**
|
|
181
|
+
* Bind an agent to a fresh Chrome tab via the Extension. Idempotent: if
|
|
182
|
+
* the agent already has a binding, return it instead of creating a new
|
|
183
|
+
* tab (avoids tab leak when skill cache and backend disagree under
|
|
184
|
+
* concurrent calls).
|
|
185
|
+
*
|
|
186
|
+
* @param agentSession Owning agent session.
|
|
187
|
+
* @param opts.foreground Pass `active: true` to the Extension on create.
|
|
188
|
+
* Defaults to `false` so the user's foreground tab is never disturbed.
|
|
189
|
+
* @param opts.timeoutMs Optional override for the create-tab WS round-trip.
|
|
190
|
+
* @returns The (possibly pre-existing) binding.
|
|
191
|
+
* @throws `Error` with a `tab_pool_full` cause when at hard cap.
|
|
192
|
+
*/
|
|
193
|
+
bindAgentTab(agentSession: string, opts?: {
|
|
194
|
+
foreground?: boolean;
|
|
195
|
+
timeoutMs?: number;
|
|
196
|
+
agentName?: string;
|
|
197
|
+
}): Promise<AgentTabBinding>;
|
|
198
|
+
/**
|
|
199
|
+
* Release an agent's bound tab. Optionally instruct the Extension to
|
|
200
|
+
* close the tab as well (default: true). Safe to call when no binding
|
|
201
|
+
* exists — returns `{ released: false, tabClosed: false }` instead of
|
|
202
|
+
* throwing.
|
|
203
|
+
*/
|
|
204
|
+
unbindAgentTab(agentSession: string, opts?: {
|
|
205
|
+
closeTab?: boolean;
|
|
206
|
+
reason?: AgentTabBindingRemovalReason;
|
|
207
|
+
timeoutMs?: number;
|
|
208
|
+
}): Promise<{
|
|
209
|
+
released: boolean;
|
|
210
|
+
tabClosed: boolean;
|
|
211
|
+
}>;
|
|
212
|
+
/**
|
|
213
|
+
* Send a command on behalf of an agent. Resolution priority (matches §4.2):
|
|
214
|
+
*
|
|
215
|
+
* 1. Explicit `tabId` in `params` — used as-is, NO ownership check
|
|
216
|
+
* (legacy testing/debug only; controller layer is responsible for
|
|
217
|
+
* enforcing cross-agent ownership rules before reaching here).
|
|
218
|
+
* 2. `agentSession` provided AND has a binding — inject bound tabId,
|
|
219
|
+
* bump `lastActivityAt`.
|
|
220
|
+
* 3. `agentSession` provided AND no binding — auto-bind first, then
|
|
221
|
+
* forward the original command with the new tabId.
|
|
222
|
+
* 4. No `agentSession` — pass through to plain `sendCommand` (active-tab
|
|
223
|
+
* fallback in Extension, preserving backward compat).
|
|
224
|
+
*
|
|
225
|
+
* @param agentSession Owning agent session, or `undefined` for legacy fallback.
|
|
226
|
+
* @param tool Tool name (e.g. `navigate`, `read-text`).
|
|
227
|
+
* @param params Tool params; if it contains `tabId` we treat as explicit override.
|
|
228
|
+
* @param timeoutMs Optional command timeout.
|
|
229
|
+
* @param agentName Optional agent name for the Extension banner.
|
|
230
|
+
*/
|
|
231
|
+
sendCommandForAgent(agentSession: string | undefined, tool: string, params?: Record<string, unknown>, timeoutMs?: number, agentName?: string): Promise<BrowserCommandResponse>;
|
|
232
|
+
/**
|
|
233
|
+
* Handle a `tabRemoved` event from the Extension (§4.3 — fires when
|
|
234
|
+
* the user manually closes a Crewly tab or when Chrome reaps it).
|
|
235
|
+
* Idempotent: tabs not in any binding are ignored.
|
|
236
|
+
*/
|
|
237
|
+
handleTabRemoved(tabId: number): void;
|
|
238
|
+
/**
|
|
239
|
+
* Reconcile bindings against the Extension's current tab inventory
|
|
240
|
+
* (§4.4). Called whenever a fresh WS connection completes the post-
|
|
241
|
+
* reconnect handshake.
|
|
242
|
+
*
|
|
243
|
+
* - For each backend binding whose tabId no longer exists in the
|
|
244
|
+
* Extension → drop the binding (`reconcile_extension_missing`).
|
|
245
|
+
* - For each Extension tab that is Crewly-owned but unknown to any
|
|
246
|
+
* binding → ask the Extension to close it (orphan cleanup).
|
|
247
|
+
*
|
|
248
|
+
* Caller is responsible for actually sending the close commands; this
|
|
249
|
+
* method returns the orphan list rather than firing `unbindTab` itself
|
|
250
|
+
* to keep the function pure-ish and easier to test.
|
|
251
|
+
*
|
|
252
|
+
* @returns Orphan tabs the caller should close.
|
|
253
|
+
*/
|
|
254
|
+
handleTabInventory(extensionTabs: ExtensionTabDescriptor[]): {
|
|
255
|
+
orphans: number[];
|
|
256
|
+
};
|
|
257
|
+
/** Effective hard cap, allowing env override `CREWLY_TAB_BIND_MAX`. */
|
|
258
|
+
private getTabPoolCap;
|
|
259
|
+
/** Effective TTL in ms, allowing env override `CREWLY_TAB_BIND_TTL_MINUTES`. */
|
|
260
|
+
private getTabBindingTtlMs;
|
|
261
|
+
/**
|
|
262
|
+
* Soft warning ping when bindings cross the warn threshold. Throttled
|
|
263
|
+
* to once per sweep cycle so we don't flood the logs during a burst.
|
|
264
|
+
*/
|
|
265
|
+
private maybeWarnSoftCap;
|
|
266
|
+
/**
|
|
267
|
+
* Run the TTL sweep once. Idle bindings (`lastActivityAt + TTL < now`)
|
|
268
|
+
* are removed. Sends `unbindTab` to the Extension when a client is
|
|
269
|
+
* connected, but never fails the sweep on Extension errors.
|
|
270
|
+
*
|
|
271
|
+
* Exported via `runSweepOnce` for tests so we don't have to advance
|
|
272
|
+
* fake timers across the full 5-minute interval.
|
|
273
|
+
*
|
|
274
|
+
* @returns Number of bindings evicted in this pass.
|
|
275
|
+
*/
|
|
276
|
+
runSweepOnce(): Promise<number>;
|
|
277
|
+
private startSweepTimer;
|
|
278
|
+
private stopSweepTimer;
|
|
118
279
|
/**
|
|
119
280
|
* Get the current bridge status, including relay availability.
|
|
120
281
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-bridge.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/browser/browser-bridge.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-bridge.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/browser/browser-bridge.service.ts"],"names":[],"mappings":"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"}
|