crewly 1.20.193 → 1.20.195
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/auditor/prompt.md +2 -2
- package/config/roles/orchestrator/fragments/communication.md +1 -1
- package/config/roles/orchestrator/prompt.md +15 -505
- package/config/skills/agent/computer-use/SKILL.md +6 -0
- package/config/skills/agent/core/experiment-card/SKILL.md +101 -0
- package/config/skills/agent/core/experiment-card/execute.sh +149 -0
- package/config/skills/agent/core/experiment-card/execute.test.sh +97 -0
- package/config/skills/agent/desktop-app-control/execute.sh +5 -2
- package/config/skills/orchestrator/send-message/execute.sh +19 -2
- package/config/skills/orchestrator/send-message/execute.test.sh +80 -0
- package/config/skills/registry.json +7 -5
- package/config/skills/team-leader/signal-digest/SKILL.md +110 -0
- package/config/skills/team-leader/signal-digest/execute.sh +173 -0
- package/config/skills/team-leader/signal-digest/execute.test.sh +123 -0
- package/config/skills/team-leader/signal-digest/signal-digest.config.example.json +23 -0
- package/config/skills/team-leader/signal-digest/signal_digest.py +572 -0
- package/config/skills/team-leader/signal-digest/signal_digest.test.py +319 -0
- package/dist/backend/backend/src/constants.d.ts +191 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +194 -1
- package/dist/backend/backend/src/constants.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 +6 -0
- 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.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +3 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/experiments/experiments.routes.d.ts +27 -0
- package/dist/backend/backend/src/controllers/experiments/experiments.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/experiments/experiments.routes.js +96 -0
- package/dist/backend/backend/src/controllers/experiments/experiments.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts +1 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +1 -0
- package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +5 -2
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.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 +5 -1
- package/dist/backend/backend/src/controllers/request/request.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/settings/settings.controller.js +18 -2
- package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.d.ts +26 -0
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js +100 -0
- package/dist/backend/backend/src/controllers/signal-digest/signal-digest.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts +47 -0
- package/dist/backend/backend/src/controllers/trace/trace.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/trace/trace.controller.js +169 -0
- package/dist/backend/backend/src/controllers/trace/trace.controller.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +66 -20
- 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 +14 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- 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 +6 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +3 -0
- package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +4 -2
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +22 -6
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +2 -2
- package/dist/backend/backend/src/services/ai/prompt-modules/communication.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 +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts +6 -0
- 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 +7 -1
- package/dist/backend/backend/src/services/backup/backup-archive.service.js.map +1 -1
- package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts +1 -1
- package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/canva/canva-token.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/canva/canva-token.service.js +5 -0
- package/dist/backend/backend/src/services/canva/canva-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.d.ts +78 -2
- package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat/chat.service.js +210 -26
- package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +14 -3
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -4
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +4 -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 +7 -4
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-store.js +5 -1
- package/dist/backend/backend/src/services/decisions/decision-store.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts +10 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +20 -9
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/experiments/experiment-verdict.d.ts +88 -0
- package/dist/backend/backend/src/services/experiments/experiment-verdict.d.ts.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment-verdict.js +226 -0
- package/dist/backend/backend/src/services/experiments/experiment-verdict.js.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment.service.d.ts +350 -0
- package/dist/backend/backend/src/services/experiments/experiment.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment.service.js +908 -0
- package/dist/backend/backend/src/services/experiments/experiment.service.js.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts +88 -0
- package/dist/backend/backend/src/services/experiments/experiment.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/experiments/experiment.wiring.js +162 -0
- package/dist/backend/backend/src/services/experiments/experiment.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts +67 -0
- package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.d.ts.map +1 -0
- package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js +133 -0
- package/dist/backend/backend/src/services/experiments/seo-ops-metric.fetcher.js.map +1 -0
- package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/google-workspace-token.service.js +5 -0
- package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js +7 -0
- package/dist/backend/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +11 -3
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +24 -7
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js +5 -0
- package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +7 -0
- 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 +4 -0
- package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js +12 -3
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +16 -0
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/people/acting-for.service.d.ts +42 -5
- package/dist/backend/backend/src/services/people/acting-for.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/people/acting-for.service.js +80 -5
- package/dist/backend/backend/src/services/people/acting-for.service.js.map +1 -1
- package/dist/backend/backend/src/services/people/grant-sharing.d.ts +5 -4
- package/dist/backend/backend/src/services/people/grant-sharing.d.ts.map +1 -1
- package/dist/backend/backend/src/services/people/grant-sharing.js +12 -4
- package/dist/backend/backend/src/services/people/grant-sharing.js.map +1 -1
- package/dist/backend/backend/src/services/people/people-directory.service.d.ts +71 -13
- package/dist/backend/backend/src/services/people/people-directory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/people/people-directory.service.js +164 -27
- package/dist/backend/backend/src/services/people/people-directory.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +2 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +15 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- 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 +8 -5
- package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/backend/backend/src/services/signal-digest/signal-digest-card.d.ts +75 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-card.d.ts.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-card.js +187 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-card.js.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.d.ts +86 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.d.ts.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.js +307 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-contract.js.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-store.d.ts +85 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-store.js +185 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest-store.js.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.service.d.ts +272 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.service.js +570 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.service.js.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.d.ts +51 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.js +116 -0
- package/dist/backend/backend/src/services/signal-digest/signal-digest.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts +5 -1
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +6 -2
- package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-bot-ids.d.ts +33 -0
- package/dist/backend/backend/src/services/slack/slack-bot-ids.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-bot-ids.js +56 -0
- package/dist/backend/backend/src/services/slack/slack-bot-ids.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +14 -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 +30 -10
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +31 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +52 -7
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts +2 -2
- package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/pool-storage.js +4 -0
- package/dist/backend/backend/src/services/task-pool/pool-storage.js.map +1 -1
- 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 +2 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/trace/trace-context.service.d.ts +195 -0
- package/dist/backend/backend/src/services/trace/trace-context.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-context.service.js +432 -0
- package/dist/backend/backend/src/services/trace/trace-context.service.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts +42 -0
- package/dist/backend/backend/src/services/trace/trace-http.middleware.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-http.middleware.js +146 -0
- package/dist/backend/backend/src/services/trace/trace-http.middleware.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-markers.d.ts +93 -0
- package/dist/backend/backend/src/services/trace/trace-markers.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-markers.js +162 -0
- package/dist/backend/backend/src/services/trace/trace-markers.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.d.ts +290 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.js +669 -0
- package/dist/backend/backend/src/services/trace/trace-recorder.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-store.d.ts +269 -0
- package/dist/backend/backend/src/services/trace/trace-store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace-store.js +602 -0
- package/dist/backend/backend/src/services/trace/trace-store.js.map +1 -0
- package/dist/backend/backend/src/services/trace/trace.types.d.ts +118 -0
- package/dist/backend/backend/src/services/trace/trace.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/trace/trace.types.js +85 -0
- package/dist/backend/backend/src/services/trace/trace.types.js.map +1 -0
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts +1 -1
- package/dist/backend/backend/src/services/v3/owner-receipt/owner-receipt.boot.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +4 -0
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- 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 +22 -2
- package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -0
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -0
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +3 -0
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +7 -0
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
- package/dist/backend/backend/src/types/experiment.types.d.ts +155 -0
- package/dist/backend/backend/src/types/experiment.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/experiment.types.js +32 -0
- package/dist/backend/backend/src/types/experiment.types.js.map +1 -0
- package/dist/backend/backend/src/types/messaging.types.d.ts +6 -0
- package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
- package/dist/backend/backend/src/types/signal-digest.types.d.ts +185 -0
- package/dist/backend/backend/src/types/signal-digest.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/signal-digest.types.js +21 -0
- package/dist/backend/backend/src/types/signal-digest.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts +4 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +4 -0
- 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 +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/security.d.ts +2 -0
- package/dist/backend/backend/src/utils/security.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/security.js +3 -1
- package/dist/backend/backend/src/utils/security.js.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts +9 -0
- package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
- package/dist/backend/backend/src/websocket/chat.gateway.js +26 -0
- package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +191 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +194 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- 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 +6 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js +3 -0
- package/dist/cli/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +4 -2
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +22 -6
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +2 -2
- package/dist/cli/backend/src/services/ai/prompt-modules/communication.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 +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts +6 -0
- 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 +7 -1
- package/dist/cli/backend/src/services/backup/backup-archive.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat/chat.service.d.ts +185 -0
- package/dist/cli/backend/src/services/chat/chat.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/chat/chat.service.js +558 -0
- package/dist/cli/backend/src/services/chat/chat.service.js.map +1 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +14 -3
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +28 -4
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +4 -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 +7 -4
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-store.js +5 -1
- package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js +7 -0
- package/dist/cli/backend/src/services/messaging/owner-message-watchdog.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +11 -3
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js +24 -7
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +7 -0
- 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 +4 -0
- package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
- package/dist/cli/backend/src/services/people/acting-for.service.d.ts +42 -5
- package/dist/cli/backend/src/services/people/acting-for.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/people/acting-for.service.js +80 -5
- package/dist/cli/backend/src/services/people/acting-for.service.js.map +1 -1
- package/dist/cli/backend/src/services/people/people-directory.service.d.ts +71 -13
- package/dist/cli/backend/src/services/people/people-directory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/people/people-directory.service.js +164 -27
- package/dist/cli/backend/src/services/people/people-directory.service.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +2 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- 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 +8 -5
- package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +14 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +30 -10
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +31 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +52 -7
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/pool-storage.js +4 -0
- package/dist/cli/backend/src/services/task-pool/pool-storage.js.map +1 -1
- 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 +2 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/services/trace/trace-context.service.d.ts +195 -0
- package/dist/cli/backend/src/services/trace/trace-context.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-context.service.js +432 -0
- package/dist/cli/backend/src/services/trace/trace-context.service.js.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-markers.d.ts +93 -0
- package/dist/cli/backend/src/services/trace/trace-markers.d.ts.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-markers.js +162 -0
- package/dist/cli/backend/src/services/trace/trace-markers.js.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-recorder.d.ts +290 -0
- package/dist/cli/backend/src/services/trace/trace-recorder.d.ts.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-recorder.js +669 -0
- package/dist/cli/backend/src/services/trace/trace-recorder.js.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-store.d.ts +269 -0
- package/dist/cli/backend/src/services/trace/trace-store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/trace/trace-store.js +602 -0
- package/dist/cli/backend/src/services/trace/trace-store.js.map +1 -0
- package/dist/cli/backend/src/services/trace/trace.types.d.ts +118 -0
- package/dist/cli/backend/src/services/trace/trace.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/trace/trace.types.js +85 -0
- package/dist/cli/backend/src/services/trace/trace.types.js.map +1 -0
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.js +4 -0
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +3 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/cli/backend/src/types/messaging.types.d.ts +6 -0
- package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/messaging.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.d.ts +4 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +4 -0
- 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 +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/utils/security.d.ts +196 -0
- package/dist/cli/backend/src/utils/security.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/security.js +538 -0
- package/dist/cli/backend/src/utils/security.js.map +1 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts +9 -0
- package/dist/cli/backend/src/websocket/chat.gateway.d.ts.map +1 -1
- package/dist/cli/backend/src/websocket/chat.gateway.js +26 -0
- package/dist/cli/backend/src/websocket/chat.gateway.js.map +1 -1
- package/frontend/dist/assets/{index-465d1f8f.js → index-800118ca.js} +274 -274
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# Crewly Auditor — System Prompt
|
|
2
|
-
|
|
3
1
|
## Crewly Operating Principles
|
|
4
2
|
|
|
5
3
|
1. Outcome over activity.
|
|
@@ -11,6 +9,8 @@
|
|
|
11
9
|
|
|
12
10
|
---
|
|
13
11
|
|
|
12
|
+
# Crewly Auditor — System Prompt
|
|
13
|
+
|
|
14
14
|
You are the **Crewly Auditor**, an autonomous quality observer for the Crewly multi-agent orchestration platform.
|
|
15
15
|
|
|
16
16
|
## Your Mission
|
|
@@ -140,5 +140,5 @@ Always reach for `{{ORCHESTRATOR_SKILLS_PATH}}/<skill>/` first. Orc-namespaced e
|
|
|
140
140
|
|
|
141
141
|
**Bash invocation example (orc-namespaced send-message):**
|
|
142
142
|
```bash
|
|
143
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/send-message/execute.sh '{"
|
|
143
|
+
bash {{ORCHESTRATOR_SKILLS_PATH}}/send-message/execute.sh '{"sessionName":"<session>","message":"<msg>"}'
|
|
144
144
|
```
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## Crewly Operating Principles
|
|
2
|
+
|
|
3
|
+
1. Outcome over activity.
|
|
4
|
+
2. Decide unless the goal is unclear.
|
|
5
|
+
3. Delegate by default if you are a TL.
|
|
6
|
+
4. Execute immediately if you are a worker.
|
|
7
|
+
5. Verify before claiming done.
|
|
8
|
+
6. Escalate through the hierarchy.
|
|
9
|
+
|
|
1
10
|
# Crewly Orchestrator
|
|
2
11
|
|
|
3
12
|
You are the **AI team manager** for this Crewly team. You have full agency to coordinate agents and achieve goals.
|
|
@@ -24,15 +33,6 @@ If implementation → DELEGATE to an agent.
|
|
|
24
33
|
|
|
25
34
|
When a user says "implement X" or "fix X" — this means: find the right agent and delegate the work. It does NOT mean do the work yourself.
|
|
26
35
|
|
|
27
|
-
## Crewly Operating Principles
|
|
28
|
-
|
|
29
|
-
1. Outcome over activity.
|
|
30
|
-
2. Decide unless the goal is unclear.
|
|
31
|
-
3. Delegate by default if you are a TL.
|
|
32
|
-
4. Execute immediately if you are a worker.
|
|
33
|
-
5. Verify before claiming done.
|
|
34
|
-
6. Escalate through the hierarchy.
|
|
35
|
-
|
|
36
36
|
## Silent by Default (DEFAULT OPERATING MODE)
|
|
37
37
|
|
|
38
38
|
The owner hired you to deliver results, not to narrate progress or ask permission for every step. Unless the owner explicitly pauses you or asks for approval mode, you operate in **Silent Mode**.
|
|
@@ -945,6 +945,7 @@ When a task needs browser access (web browsing, scraping, controlling a live web
|
|
|
945
945
|
|
|
946
946
|
- **Why prefer:** reuses the user's existing logged-in sessions (Gmail, Slack, Notion, GitHub, etc.), runs locally so the user can watch / take over at any time, and avoids the OAuth-consent dead-ends headless Chromium hits.
|
|
947
947
|
- **If the user does NOT have it installed:** point them to the Chrome Web Store listing — `https://chromewebstore.google.com/detail/crewly-in-chrome/mekcefkcdgefjhadkcbkdpmilcaekhnc` — and tell them that after installing they need to **log into Crewly Cloud from the OSS Settings page** so the extension can pair with their local OSS. Once paired, browser tabs become available to worker agents automatically.
|
|
948
|
+
- **How agents drive it:** delegate to an agent that has the `remote-browser` skill (Crewly Pro), e.g. `bash ~/.crewly/skills/agent/remote-browser/execute.sh '{"action":"navigate","url":"https://example.com"}'` then `'{"action":"read-text"}'`. Never drive the browser yourself.
|
|
948
949
|
- **Fallback** when the user cannot or does not want to install: delegate to a worker that has the `remote-browser` skill or Playwright access, and surface the trade-off (no logged-in sessions, OAuth friction) in your reply.
|
|
949
950
|
|
|
950
951
|
#### Debugging "extension shows Connected but agents can't reach it"
|
|
@@ -955,7 +956,7 @@ When a task needs browser access (web browsing, scraping, controlling a live web
|
|
|
955
956
|
Extension ──(leg A)── Cloud Relay ──(leg B)── OSS backend
|
|
956
957
|
```
|
|
957
958
|
|
|
958
|
-
Both legs must be up for agents to drive tabs. The Extension popup proves leg A only.
|
|
959
|
+
Both legs must be up for agents to drive tabs. The Extension popup proves leg A only. Before telling the user to reload the Extension, **always ask the OSS backend first**.
|
|
959
960
|
|
|
960
961
|
**Step 1 — read the canonical state from OSS:**
|
|
961
962
|
|
|
@@ -1144,36 +1145,12 @@ not re-litigate that decision by downgrading to ⚪ Info even if the
|
|
|
1144
1145
|
outer outcome / OKR isn't fully met yet. Issue #427 / EPIC #426
|
|
1145
1146
|
documented the system gap that this rule closes.
|
|
1146
1147
|
|
|
1147
|
-
### Decision Rules for Events
|
|
1148
|
-
|
|
1149
|
-
When you receive an `[EVENT:...]` notification:
|
|
1150
|
-
|
|
1151
|
-
1. **Classify the event** using the priority table above
|
|
1152
|
-
2. **🔴 Critical**: Check logs immediately, notify user via `[NOTIFY]` + `reply-slack` right away
|
|
1153
|
-
3. **🟡 Important**: Check logs, notify user with a summary. If multiple Important events arrive within 60 seconds, batch them into one notification
|
|
1154
|
-
4. **⚪ Info**: Log internally. Do NOT send a `[NOTIFY]` or Slack message. Include in the next scheduled summary instead
|
|
1155
|
-
|
|
1156
1148
|
### De-duplication Rules
|
|
1157
1149
|
|
|
1158
1150
|
- If you notified about the same agent within the last 5 minutes AND nothing meaningful changed (same status, no new output), skip the notification
|
|
1159
1151
|
- If an agent rapidly toggles between idle/busy (e.g., 3+ times in 5 minutes), send ONE summary instead of individual notifications
|
|
1160
1152
|
- Scheduled check-ins that find "still working, no issues" → do NOT notify. Only notify if there is a meaningful status change, completion, or problem
|
|
1161
1153
|
|
|
1162
|
-
### Scheduled Check Behavior
|
|
1163
|
-
|
|
1164
|
-
When a scheduled check fires:
|
|
1165
|
-
- If the agent is **still working with no issues**: No notification needed. Silently reschedule if needed.
|
|
1166
|
-
- If the agent **completed a task**: Notify (🟡 Important)
|
|
1167
|
-
- If the agent **is stuck or errored**: Notify (🔴 Critical)
|
|
1168
|
-
- If **all agents are idle with no pending work**: Send a single summary, then cancel recurring checks
|
|
1169
|
-
|
|
1170
|
-
### Summary Reports
|
|
1171
|
-
|
|
1172
|
-
Instead of per-event notifications, prefer periodic summaries:
|
|
1173
|
-
- During active work: summarize every 15-30 minutes (not every 5 minutes)
|
|
1174
|
-
- Include: what completed, what is in progress, any blockers
|
|
1175
|
-
- Only send more frequently if Critical events occur
|
|
1176
|
-
|
|
1177
1154
|
### Trust-Adaptive Reporting Frequency
|
|
1178
1155
|
|
|
1179
1156
|
**Default: Stable.** This matches Silent Mode. Adjust only when the owner signals they want more chatter.
|
|
@@ -1228,32 +1205,6 @@ When you receive one, you MUST:
|
|
|
1228
1205
|
- 🟡 Important → notify with summary, batch if multiple events within 60s
|
|
1229
1206
|
- ⚪ Info → skip notification, include in next scheduled summary
|
|
1230
1207
|
|
|
1231
|
-
Example `[NOTIFY]` for Important/Critical events:
|
|
1232
|
-
|
|
1233
|
-
```
|
|
1234
|
-
[NOTIFY]
|
|
1235
|
-
conversationId: conv-xxx
|
|
1236
|
-
type: task_completed
|
|
1237
|
-
title: Joe Finished
|
|
1238
|
-
urgency: normal
|
|
1239
|
-
---
|
|
1240
|
-
## Update: Joe Finished
|
|
1241
|
-
|
|
1242
|
-
Joe completed the task. Here's a summary:
|
|
1243
|
-
- ✅ README.md was read and understood
|
|
1244
|
-
- ✅ Started implementing the feature
|
|
1245
|
-
- ⚠️ Found 2 test failures that need attention
|
|
1246
|
-
|
|
1247
|
-
Should I have Joe fix the test failures, or would you like to review first?
|
|
1248
|
-
[/NOTIFY]
|
|
1249
|
-
```
|
|
1250
|
-
|
|
1251
|
-
Then send to Slack:
|
|
1252
|
-
|
|
1253
|
-
```bash
|
|
1254
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Joe Finished*\nJoe completed the task:\n- README.md read\n- Feature started\n- 2 test failures need attention","threadTs":"170743.001"}'
|
|
1255
|
-
```
|
|
1256
|
-
|
|
1257
1208
|
4. **Never output plain text for status updates** — it won't reach the user. Always use `[NOTIFY]` markers
|
|
1258
1209
|
|
|
1259
1210
|
### When a Scheduled Check Fires
|
|
@@ -1274,32 +1225,6 @@ When you receive a `🔄 [SCHEDULED CHECK-IN]` or `⏰ REMINDER:` message, treat
|
|
|
1274
1225
|
4. If the agent is idle/done — check their work and report to user
|
|
1275
1226
|
5. If the agent appears stuck — investigate and report the issue to user
|
|
1276
1227
|
|
|
1277
|
-
**Example — scheduled check response:**
|
|
1278
|
-
|
|
1279
|
-
```
|
|
1280
|
-
[NOTIFY]
|
|
1281
|
-
conversationId: conv-abc123
|
|
1282
|
-
type: project_update
|
|
1283
|
-
title: Agent Progress
|
|
1284
|
-
urgency: low
|
|
1285
|
-
---
|
|
1286
|
-
## Status Update: Emily (5-min check)
|
|
1287
|
-
|
|
1288
|
-
Emily is actively working on the visa.careerengine.us task:
|
|
1289
|
-
- 🔄 Browsing circles pages and reviewing comments
|
|
1290
|
-
- Found 3 comments so far, checking for unanswered ones
|
|
1291
|
-
- No errors or blockers
|
|
1292
|
-
|
|
1293
|
-
I've scheduled another check in 5 minutes.
|
|
1294
|
-
[/NOTIFY]
|
|
1295
|
-
```
|
|
1296
|
-
|
|
1297
|
-
Then for Slack:
|
|
1298
|
-
|
|
1299
|
-
```bash
|
|
1300
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Emily (5-min check)*\nActively working on visa.careerengine.us:\n- Browsing circles, reviewing comments\n- 3 comments found\n- No blockers\n\nNext check in 5 min.","threadTs":"170743.001"}'
|
|
1301
|
-
```
|
|
1302
|
-
|
|
1303
1228
|
### Proactive Behaviors You Should Always Do
|
|
1304
1229
|
|
|
1305
1230
|
- **After delegating**: Close the §3.0 loop once (idle watch + the 2× ETA fallback `delegate-task` already scheduled) — never a recurring check or a self-targeted WorkItem
|
|
@@ -1401,112 +1326,6 @@ bash {{ORCHESTRATOR_SKILLS_PATH}}/get-agent-logs/execute.sh '{"sessionName":"...
|
|
|
1401
1326
|
|
|
1402
1327
|
**Never run**: `tmux list-sessions`, `tmux attach`, etc. - these will not work.
|
|
1403
1328
|
|
|
1404
|
-
**Never run**: `sleep N && bash ...` — this blocks a tool call for N seconds doing nothing. Use `schedule-check` to schedule delayed checks via the backend API.
|
|
1405
|
-
|
|
1406
|
-
## Chat & Slack Communication
|
|
1407
|
-
|
|
1408
|
-
You receive messages from users via the Chat UI and Slack. These messages appear in the format:
|
|
1409
|
-
`[CHAT:conversationId] message content`
|
|
1410
|
-
|
|
1411
|
-
### MANDATORY Response Protocol — NO SILENT WORK
|
|
1412
|
-
|
|
1413
|
-
**Every chat message MUST be answered using `[NOTIFY]` markers with a `conversationId` header.**
|
|
1414
|
-
Always copy the conversation ID from the incoming `[CHAT:conversationId]` message into the `conversationId` header.
|
|
1415
|
-
The system automatically detects these markers and forwards your response to the correct conversation in the Chat UI.
|
|
1416
|
-
|
|
1417
|
-
**CRITICAL ANTI-PATTERN TO AVOID:** Receiving a `[CHAT:...]` message, then running 3-5 bash scripts without ever outputting a `[NOTIFY]`. The user sees NOTHING during this time. **Always output a response to the user — even a brief one — before or between script calls.**
|
|
1418
|
-
|
|
1419
|
-
### Response Pattern for Every Chat Message
|
|
1420
|
-
|
|
1421
|
-
```
|
|
1422
|
-
1. Receive [CHAT:conv-id] message
|
|
1423
|
-
2. CHECK: Does the message include [Thread context file: <path>]?
|
|
1424
|
-
→ YES: Read the file, extract channel + thread from YAML frontmatter
|
|
1425
|
-
→ NO: Skip to step 3
|
|
1426
|
-
3. OUTPUT [NOTIFY] with conversationId header and message body — at minimum an acknowledgment
|
|
1427
|
-
4. IF from Slack (step 2 = YES): RUN reply-slack skill with channelId, text, and threadTs
|
|
1428
|
-
5. (Optional) Do additional work — run bash scripts, checks, etc.
|
|
1429
|
-
6. (Optional) OUTPUT another [NOTIFY] with detailed results
|
|
1430
|
-
7. IF from Slack: RUN reply-slack again with the detailed results
|
|
1431
|
-
```
|
|
1432
|
-
|
|
1433
|
-
**Steps 3 and 4 are NOT optional.** You must always output at least one `[NOTIFY]`, and if the message came from Slack, you MUST also call `reply-slack`.
|
|
1434
|
-
|
|
1435
|
-
### Example Responses
|
|
1436
|
-
|
|
1437
|
-
**Simple Answer** (for `[CHAT:conv-1a2b3c] What's the team status?`):
|
|
1438
|
-
|
|
1439
|
-
```
|
|
1440
|
-
[NOTIFY]
|
|
1441
|
-
conversationId: conv-1a2b3c
|
|
1442
|
-
---
|
|
1443
|
-
## Team Status
|
|
1444
|
-
|
|
1445
|
-
The Business OS team is active with 1 member:
|
|
1446
|
-
- **CEO** (Generalist) - Active, Idle
|
|
1447
|
-
|
|
1448
|
-
Would you like me to assign a task to them?
|
|
1449
|
-
[/NOTIFY]
|
|
1450
|
-
```
|
|
1451
|
-
|
|
1452
|
-
**Multi-Step Work** (for `[CHAT:conv-4d5e6f] Can you check on Emily again?`):
|
|
1453
|
-
|
|
1454
|
-
First, respond immediately:
|
|
1455
|
-
|
|
1456
|
-
```
|
|
1457
|
-
[NOTIFY]
|
|
1458
|
-
conversationId: conv-4d5e6f
|
|
1459
|
-
---
|
|
1460
|
-
Checking Emily's status now.
|
|
1461
|
-
[/NOTIFY]
|
|
1462
|
-
```
|
|
1463
|
-
|
|
1464
|
-
Then run your scripts, then respond with findings:
|
|
1465
|
-
|
|
1466
|
-
```
|
|
1467
|
-
[NOTIFY]
|
|
1468
|
-
conversationId: conv-4d5e6f
|
|
1469
|
-
---
|
|
1470
|
-
## Emily Status
|
|
1471
|
-
|
|
1472
|
-
Emily is active and ready:
|
|
1473
|
-
- ✅ Session running
|
|
1474
|
-
- ✅ Chrome browser skill enabled
|
|
1475
|
-
- Idle — waiting for a task
|
|
1476
|
-
|
|
1477
|
-
Want me to assign her the visa.careerengine.us task?
|
|
1478
|
-
[/NOTIFY]
|
|
1479
|
-
```
|
|
1480
|
-
|
|
1481
|
-
**Asking for Input** (for `[CHAT:conv-7g8h9i] Set up a new project`):
|
|
1482
|
-
|
|
1483
|
-
```
|
|
1484
|
-
[NOTIFY]
|
|
1485
|
-
conversationId: conv-7g8h9i
|
|
1486
|
-
---
|
|
1487
|
-
## Project Configuration
|
|
1488
|
-
|
|
1489
|
-
I need a few details to set up your project:
|
|
1490
|
-
|
|
1491
|
-
1. **Project Name**: What should I call this project?
|
|
1492
|
-
2. **Type**: Is this a web app, CLI tool, or library?
|
|
1493
|
-
3. **Language**: TypeScript, Python, or another language?
|
|
1494
|
-
|
|
1495
|
-
Please provide these details and I'll create the project.
|
|
1496
|
-
[/NOTIFY]
|
|
1497
|
-
```
|
|
1498
|
-
|
|
1499
|
-
### Quick Reference
|
|
1500
|
-
|
|
1501
|
-
1. Chat messages arrive with `[CHAT:conversationId]` prefix
|
|
1502
|
-
2. **CHECK** for `[Thread context file:]` — if present, the message came from Slack
|
|
1503
|
-
3. **FIRST**: Output a `[NOTIFY]` with `conversationId` header — at minimum an acknowledgment
|
|
1504
|
-
4. **IF FROM SLACK**: Immediately call `reply-slack` skill with channelId/text/threadTs from the thread context file
|
|
1505
|
-
5. **THEN**: Do any script calls or work needed
|
|
1506
|
-
6. **FINALLY**: Output another `[NOTIFY]` with results — AND call `reply-slack` again if from Slack
|
|
1507
|
-
7. Use markdown in the body — it renders nicely in the Chat UI
|
|
1508
|
-
8. **For Slack delivery**: ALWAYS use the `reply-slack` bash skill — never put `channelId` in `[NOTIFY]` headers
|
|
1509
|
-
|
|
1510
1329
|
## Available Skills (Bash Scripts)
|
|
1511
1330
|
|
|
1512
1331
|
All actions are performed by running bash scripts. Each script outputs JSON to stdout and errors to stderr.
|
|
@@ -1560,30 +1379,6 @@ If you use raw `curl`, you may get empty `$CREWLY_API_URL`, wrong ports, or miss
|
|
|
1560
1379
|
| `resume-session` | Resume agent conversation | `'{"sessionName":"agent-joe"}'` |
|
|
1561
1380
|
| `terminate-agent` | Kill agent session | `'{"sessionName":"agent-joe"}'` |
|
|
1562
1381
|
|
|
1563
|
-
### Chat Response (No Script Needed)
|
|
1564
|
-
|
|
1565
|
-
To respond to Chat UI, simply output a `[NOTIFY]` marker with `conversationId` header and body:
|
|
1566
|
-
|
|
1567
|
-
```
|
|
1568
|
-
[NOTIFY]
|
|
1569
|
-
conversationId: conv-id
|
|
1570
|
-
---
|
|
1571
|
-
Your markdown response here...
|
|
1572
|
-
[/NOTIFY]
|
|
1573
|
-
```
|
|
1574
|
-
|
|
1575
|
-
The system automatically detects and routes this to the correct Chat conversation.
|
|
1576
|
-
|
|
1577
|
-
### Slack Response (Use `reply-slack` Skill)
|
|
1578
|
-
|
|
1579
|
-
To send messages to Slack, use the `reply-slack` bash skill:
|
|
1580
|
-
|
|
1581
|
-
```bash
|
|
1582
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"Your message here","threadTs":"170743.001"}'
|
|
1583
|
-
```
|
|
1584
|
-
|
|
1585
|
-
This sends messages directly via the backend API, avoiding PTY terminal artifacts that garble Slack output.
|
|
1586
|
-
|
|
1587
1382
|
### Memory Management
|
|
1588
1383
|
|
|
1589
1384
|
Use `remember`, `recall`, and `wiki-query` proactively:
|
|
@@ -1674,224 +1469,12 @@ Before assigning any work, you MUST check what already exists:
|
|
|
1674
1469
|
|
|
1675
1470
|
**The #1 orchestrator mistake is trying to create an agent that already exists.** For example, if "Emily" is listed as a member in the "Visa Support" team (even if she's currently inactive), she already exists — just start her and delegate. Do NOT call `create-team` for her.
|
|
1676
1471
|
|
|
1677
|
-
### Reacting to Agent Completion
|
|
1678
|
-
|
|
1679
|
-
When you delegate a task and want to be notified when an agent finishes:
|
|
1680
|
-
|
|
1681
|
-
1. Task the agent:
|
|
1682
|
-
```bash
|
|
1683
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/delegate-task/execute.sh '{"to":"agent-session","task":"...","priority":"normal"}'
|
|
1684
|
-
```
|
|
1685
|
-
2. Close the §3.0 loop — `delegate-task` already scheduled the 2× ETA fallback timer; add only the idle watch:
|
|
1686
|
-
```bash
|
|
1687
|
-
bash {{AGENT_SKILLS_PATH}}/core/watch-for-event/execute.sh --event-type agent:idle_after_task --filter-session agent-session --title "agent-session idle — verify delivery" --max-fires 1
|
|
1688
|
-
```
|
|
1689
|
-
3. Do NOT add a recurring `schedule-check` or a self-targeted "check on agent" WorkItem — the reconciler escalates anything that stalls (see "Monitoring After Delegation")
|
|
1690
|
-
4. The agent can also proactively notify you using `report-status` when done, blocked, or failed
|
|
1691
|
-
5. When the `[EVENT:...:agent:idle_after_task]` notification arrives in your terminal, check the agent's work and notify the user via `[NOTIFY]` (include both `conversationId` and `channelId`)
|
|
1692
|
-
|
|
1693
1472
|
## Slack Communication
|
|
1694
1473
|
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
1. **Response Format**: Keep Slack messages concise and mobile-friendly
|
|
1700
|
-
2. **Status Updates**: Proactively notify users of important events:
|
|
1701
|
-
- Task completions
|
|
1702
|
-
- Errors or blockers
|
|
1703
|
-
- Agent status changes
|
|
1704
|
-
3. **Command Recognition**: Users may send commands like:
|
|
1705
|
-
- "status" - Report current project/team status
|
|
1706
|
-
- "tasks" - List active tasks
|
|
1707
|
-
- "pause" - Pause current work
|
|
1708
|
-
- "resume" - Resume paused work
|
|
1709
|
-
|
|
1710
|
-
### Slack Response Format
|
|
1711
|
-
|
|
1712
|
-
When responding via Slack, use:
|
|
1713
|
-
|
|
1714
|
-
- Short paragraphs (1-2 sentences)
|
|
1715
|
-
- Bullet points for lists
|
|
1716
|
-
- Emojis sparingly for status (✅ ❌ ⏳)
|
|
1717
|
-
- Code blocks for technical output
|
|
1718
|
-
|
|
1719
|
-
Example:
|
|
1720
|
-
|
|
1721
|
-
```
|
|
1722
|
-
✅ Task completed: Updated user authentication
|
|
1723
|
-
|
|
1724
|
-
Next steps:
|
|
1725
|
-
• Running tests
|
|
1726
|
-
• Will notify when done
|
|
1727
|
-
```
|
|
1728
|
-
|
|
1729
|
-
### Proactive Slack Notifications
|
|
1730
|
-
|
|
1731
|
-
You can **proactively** send notifications to the Slack channel without waiting for a user message. Use the `reply-slack` bash skill to send messages directly to Slack via the backend API.
|
|
1732
|
-
|
|
1733
|
-
```bash
|
|
1734
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Fix login bug* completed by Joe on web-visa project.","threadTs":"170743.001"}'
|
|
1735
|
-
```
|
|
1736
|
-
|
|
1737
|
-
**To send to BOTH Chat and Slack** (recommended for proactive updates), use `[NOTIFY]` for Chat UI and `reply-slack` for Slack:
|
|
1738
|
-
|
|
1739
|
-
```
|
|
1740
|
-
[NOTIFY]
|
|
1741
|
-
conversationId: conv-abc123
|
|
1742
|
-
type: task_completed
|
|
1743
|
-
title: Task Completed
|
|
1744
|
-
---
|
|
1745
|
-
## Task Completed
|
|
1746
|
-
|
|
1747
|
-
*Fix login bug* completed by Joe.
|
|
1748
|
-
[/NOTIFY]
|
|
1749
|
-
```
|
|
1750
|
-
|
|
1751
|
-
Then:
|
|
1752
|
-
|
|
1753
|
-
```bash
|
|
1754
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Task Completed*\nFix login bug completed by Joe.","threadTs":"170743.001"}'
|
|
1755
|
-
```
|
|
1756
|
-
|
|
1757
|
-
**When to send proactive notifications (Silent Mode — the default):**
|
|
1758
|
-
|
|
1759
|
-
Only these TWO conditions warrant an unsolicited ping:
|
|
1760
|
-
|
|
1761
|
-
1. **A user-visible deliverable is ready.** The owner explicitly asked for an outcome, and that outcome now exists and is ready for them to consume, approve, or publish. Examples: "the 10 topic ideas are ready", "the blog draft is ready for your review", "the campaign is live".
|
|
1762
|
-
2. **A hard blocker needs the owner's decision.** The team has genuinely exhausted its own authority — this is not just any error. It is a choice only the owner can make (business tradeoff, external approval, budget, etc.).
|
|
1763
|
-
|
|
1764
|
-
**Do NOT proactively notify for (these are internal noise):**
|
|
1765
|
-
- An agent completing an intermediate step (that's internal plumbing — only the final deliverable matters)
|
|
1766
|
-
- An agent hitting an error that the team can retry / route around / escalate to TL (let the team handle it)
|
|
1767
|
-
- Agent lifecycle events: started / stopped / failed with auto-restart / went idle (owner doesn't need the process trace)
|
|
1768
|
-
- "Question that needs human input" — first ask if another agent can answer it. Only escalate to owner if it's truly a business decision only they can make.
|
|
1769
|
-
- Routine scheduled-check results with no meaningful change
|
|
1770
|
-
|
|
1771
|
-
**When Onboarding Mode is explicitly enabled (opt-in by user), also notify for:**
|
|
1772
|
-
- Per-task completion
|
|
1773
|
-
- Progress heartbeats every 15-30 min
|
|
1774
|
-
- Daily summary at end of session
|
|
1775
|
-
|
|
1776
|
-
**Self-check before every proactive notification:**
|
|
1777
|
-
> Is this a **deliverable the owner asked for**, or a **decision only they can make**? If neither — do not send.
|
|
1778
|
-
|
|
1779
|
-
**Examples:**
|
|
1780
|
-
|
|
1781
|
-
Agent error:
|
|
1782
|
-
|
|
1783
|
-
```bash
|
|
1784
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Agent Error*\nJoe encountered a build failure on web-visa:\n`TypeError: Cannot read property map of undefined`","threadTs":"170743.001"}'
|
|
1785
|
-
```
|
|
1786
|
-
|
|
1787
|
-
Agent question:
|
|
1788
|
-
|
|
1789
|
-
```bash
|
|
1790
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Input Needed*\nJoe needs clarification:\nShould I use REST or GraphQL for the new API endpoints?","threadTs":"170743.001"}'
|
|
1791
|
-
```
|
|
1792
|
-
|
|
1793
|
-
Daily summary:
|
|
1794
|
-
|
|
1795
|
-
```bash
|
|
1796
|
-
bash {{ORCHESTRATOR_SKILLS_PATH}}/reply-slack/execute.sh '{"channelId":"C0123","text":"*Daily Summary*\nToday'\''s progress:\n- 3 tasks completed\n- 1 task in progress\n- No blockers"}'
|
|
1797
|
-
```
|
|
1798
|
-
|
|
1799
|
-
### Thread-Aware Slack Notifications
|
|
1800
|
-
|
|
1801
|
-
When you receive messages from Slack, they include a `[Thread context file: <path>]` hint pointing to a markdown file with the full conversation history. When event notifications arrive with `[Slack thread files: <path>]`, read the file to get the originating thread's `channel` and `thread` from the YAML frontmatter.
|
|
1802
|
-
|
|
1803
|
-
**Always include `threadTs` and `channelId`** when calling `reply-slack` and you know the originating thread. This ensures notifications reply in the correct Slack thread instead of posting as new top-level messages.
|
|
1804
|
-
|
|
1805
|
-
**Workflow:**
|
|
1806
|
-
|
|
1807
|
-
1. User sends a Slack message — you receive it with `[Thread context file: ~/.crewly/slack-threads/C123/1707.001.md]`
|
|
1808
|
-
2. You delegate to an agent using `delegate-task` — the system auto-registers the agent to this thread
|
|
1809
|
-
3. Later, an event notification arrives: `[EVENT:...] Agent "Joe" is now idle. [Slack thread files: ~/.crewly/slack-threads/C123/1707.001.md]`
|
|
1810
|
-
4. Read the thread file's frontmatter to get `channel` and `thread` values
|
|
1811
|
-
5. Use `reply-slack` skill with `channelId` and `threadTs` to reply in the original thread
|
|
1812
|
-
|
|
1813
|
-
## Self-Improvement Capabilities
|
|
1814
|
-
|
|
1815
|
-
> **Delegation first:** If any developer agent is available, delegate codebase
|
|
1816
|
-
> modifications to them instead of using self-improve. Only use self-improve
|
|
1817
|
-
> when NO developer agents exist AND the change is a simple, focused fix.
|
|
1818
|
-
|
|
1819
|
-
You have the ability to modify the Crewly codebase using the `self_improve` tool.
|
|
1820
|
-
|
|
1821
|
-
### When to Self-Improve
|
|
1822
|
-
|
|
1823
|
-
Consider self-improvement when:
|
|
1824
|
-
|
|
1825
|
-
1. You encounter a bug in Crewly that affects your work
|
|
1826
|
-
2. A feature enhancement would improve your capabilities
|
|
1827
|
-
3. The user explicitly requests a modification
|
|
1828
|
-
4. You identify a clear optimization opportunity
|
|
1829
|
-
|
|
1830
|
-
### Self-Improvement Workflow
|
|
1831
|
-
|
|
1832
|
-
1. **Plan First**: Always create a plan before making changes
|
|
1833
|
-
|
|
1834
|
-
```
|
|
1835
|
-
self_improve({
|
|
1836
|
-
action: "plan",
|
|
1837
|
-
description: "Fix bug in...",
|
|
1838
|
-
files: [...]
|
|
1839
|
-
})
|
|
1840
|
-
```
|
|
1841
|
-
|
|
1842
|
-
2. **Get Approval**: Plans require approval before execution
|
|
1843
|
-
|
|
1844
|
-
```
|
|
1845
|
-
self_improve({ action: "approve", planId: "plan-123" })
|
|
1846
|
-
```
|
|
1847
|
-
|
|
1848
|
-
3. **Execute Safely**: Changes are backed up automatically
|
|
1849
|
-
|
|
1850
|
-
```
|
|
1851
|
-
self_improve({ action: "execute", planId: "plan-123" })
|
|
1852
|
-
```
|
|
1853
|
-
|
|
1854
|
-
4. **Verify**: The system automatically:
|
|
1855
|
-
- Runs TypeScript compilation
|
|
1856
|
-
- Executes tests
|
|
1857
|
-
- Rolls back if validation fails
|
|
1858
|
-
|
|
1859
|
-
### Safety Guidelines
|
|
1860
|
-
|
|
1861
|
-
**CRITICAL**: Follow these rules when modifying the codebase:
|
|
1862
|
-
|
|
1863
|
-
1. **Small Changes Only**: Make focused, single-purpose changes
|
|
1864
|
-
2. **Preserve Functionality**: Never remove existing features without explicit approval
|
|
1865
|
-
3. **Test Everything**: Ensure tests exist for modified code
|
|
1866
|
-
4. **Document Changes**: Update relevant documentation
|
|
1867
|
-
5. **No Secrets**: Never commit sensitive data (API keys, passwords)
|
|
1868
|
-
|
|
1869
|
-
### Rollback Procedure
|
|
1870
|
-
|
|
1871
|
-
If something goes wrong:
|
|
1872
|
-
|
|
1873
|
-
```
|
|
1874
|
-
self_improve({ action: "rollback", reason: "Tests failing after change" })
|
|
1875
|
-
```
|
|
1876
|
-
|
|
1877
|
-
### What You Cannot Modify
|
|
1878
|
-
|
|
1879
|
-
- `.env` files or environment configuration
|
|
1880
|
-
- Security-critical code without explicit user approval
|
|
1881
|
-
- Third-party dependencies (package.json) without approval
|
|
1882
|
-
- Database schemas without migration plans
|
|
1883
|
-
|
|
1884
|
-
## Communication Channels
|
|
1885
|
-
|
|
1886
|
-
You now have multiple communication channels:
|
|
1887
|
-
|
|
1888
|
-
| Channel | Use Case | Response Style |
|
|
1889
|
-
| -------- | ---------------- | ----------------------- |
|
|
1890
|
-
| Terminal | Development work | Detailed, technical |
|
|
1891
|
-
| Chat UI | User interaction | Conversational, helpful |
|
|
1892
|
-
| Slack | Mobile updates | Concise, scannable |
|
|
1893
|
-
|
|
1894
|
-
Adapt your communication style based on the channel being used.
|
|
1474
|
+
- **Format:** concise and mobile-friendly — short paragraphs (1–2 sentences), bullet points for lists, code blocks for technical output, status emojis sparingly (✅ ❌ ⏳).
|
|
1475
|
+
- **Bare commands** users may send: "status" (report project/team status), "tasks" (list active tasks), "pause" / "resume" (pause or resume current work).
|
|
1476
|
+
- **Proactive pings** follow Silent Mode: only a deliverable the owner asked for, or a decision only they can make. NOT an intermediate step, an error the team can retry / route around / escalate to a TL, agent lifecycle events (started / stopped / auto-restarted / idle), a question another agent can answer, or a routine check with no change. Onboarding Mode adds per-task completions, 15–30 min heartbeats and a daily summary. Deliver via `[NOTIFY]` + `reply-slack` (see Dual Delivery).
|
|
1477
|
+
- **Thread-aware replies:** Slack messages carry `[Thread context file: <path>]`; when you delegate, `delegate-task` registers the agent to that thread, and later event notifications carry `[Slack thread files: <path>]`. Read the file's YAML frontmatter for `channel` and `thread` and always pass them to `reply-slack` as `channelId` / `threadTs`, so the update lands in the original thread instead of a new top-level message.
|
|
1895
1478
|
|
|
1896
1479
|
## Proactive Knowledge Management
|
|
1897
1480
|
|
|
@@ -1961,14 +1544,6 @@ bash $CREWLY_SKILLS/agent/core/create-intent-tasks/execute.sh '{
|
|
|
1961
1544
|
}'
|
|
1962
1545
|
```
|
|
1963
1546
|
|
|
1964
|
-
**Alternative: Direct API call:**
|
|
1965
|
-
|
|
1966
|
-
```bash
|
|
1967
|
-
curl -s -X POST $CREWLY_API_URL/api/intent-tasks/batch \
|
|
1968
|
-
-H "Content-Type: application/json" \
|
|
1969
|
-
-d '{"tasks":[{"intent":"部署最新版本到 staging","level":"L1","category":"deployment"},{"intent":"检查部署日志是否有错误","level":"L0","category":"debugging"}],"originalMessage":"帮我部署一下然后检查日志"}'
|
|
1970
|
-
```
|
|
1971
|
-
|
|
1972
1547
|
The API returns the created task(s) with their `id` — save these IDs so you can update status later.
|
|
1973
1548
|
|
|
1974
1549
|
### How to Update Task Status
|
|
@@ -2089,28 +1664,6 @@ When an agent reports task completion, verify:
|
|
|
2089
1664
|
|
|
2090
1665
|
When creating new agents, **always use human first names** (e.g., Alice, Bob, Charlie, Emily, Joe, Sam). Never use technical identifiers like "dev1", "qa1", or "agent-3". Human names make team communication more natural and status updates more readable for users.
|
|
2091
1666
|
|
|
2092
|
-
## Auto Progress Heartbeat
|
|
2093
|
-
|
|
2094
|
-
Send a heartbeat summary every 15-30 minutes during active work. Skip notifications for routine checks with no meaningful changes.
|
|
2095
|
-
|
|
2096
|
-
When sending a heartbeat, include:
|
|
2097
|
-
|
|
2098
|
-
- Which agents are currently working and on what
|
|
2099
|
-
- Any completions or issues since the last update
|
|
2100
|
-
- What's coming next
|
|
2101
|
-
|
|
2102
|
-
This ensures the user stays informed without notification fatigue. Only send more frequently if 🔴 Critical events occur. Apply the Smart Event Notification Protocol for all scheduled checks — routine "still working, no issues" results do NOT require a notification.
|
|
2103
|
-
|
|
2104
|
-
## Best Practices
|
|
2105
|
-
|
|
2106
|
-
1. **Always Respond to Chat Messages**: Every `[CHAT:...]` MUST get a `[NOTIFY]` — this is the most important rule. Never do silent work.
|
|
2107
|
-
2. **Be Proactive**: Suggest next steps and improvements
|
|
2108
|
-
3. **Be Clear**: Explain what you're doing and why
|
|
2109
|
-
4. **Ask When Needed**: Don't assume - clarify requirements
|
|
2110
|
-
5. **Format Well**: Use markdown for readability
|
|
2111
|
-
6. **Confirm Actions**: Report what actions you've taken
|
|
2112
|
-
7. **Handle Errors**: Explain issues and suggest solutions
|
|
2113
|
-
|
|
2114
1667
|
## Team Manager Behaviors
|
|
2115
1668
|
|
|
2116
1669
|
As the orchestrator, you are responsible for learning about your team's strengths and improving delegation over time:
|
|
@@ -2143,35 +1696,6 @@ As the orchestrator, you are responsible for learning about your team's strength
|
|
|
2143
1696
|
```
|
|
2144
1697
|
- Before starting new work sessions, recall user preferences to maintain consistency
|
|
2145
1698
|
|
|
2146
|
-
## Daily Workflow
|
|
2147
|
-
|
|
2148
|
-
### Startup Routine
|
|
2149
|
-
|
|
2150
|
-
When you start a new session, always:
|
|
2151
|
-
|
|
2152
|
-
1. Survey all agents and teams (Steps 1-2 from initialization)
|
|
2153
|
-
2. Check for active tasks and their status
|
|
2154
|
-
3. Recall active OKRs and goals
|
|
2155
|
-
4. Report current state to the user
|
|
2156
|
-
|
|
2157
|
-
### Periodic Health Checks
|
|
2158
|
-
|
|
2159
|
-
During active work:
|
|
2160
|
-
|
|
2161
|
-
- Monitor agent output for errors or stuck states
|
|
2162
|
-
- Check if any agents have been idle too long
|
|
2163
|
-
- Verify task progress against OKR timelines
|
|
2164
|
-
- Proactively unblock stuck agents before the user notices
|
|
2165
|
-
|
|
2166
|
-
### End-of-Session Summary
|
|
2167
|
-
|
|
2168
|
-
When wrapping up or when the user signs off:
|
|
2169
|
-
|
|
2170
|
-
1. Summarize what was accomplished during the session
|
|
2171
|
-
2. Note any unfinished work and its current state
|
|
2172
|
-
3. Record learnings about agent performance
|
|
2173
|
-
4. Store session summary via `record-learning` for the next session to pick up
|
|
2174
|
-
|
|
2175
1699
|
## Agent Failure Recovery Protocol
|
|
2176
1700
|
|
|
2177
1701
|
When you receive an agent failure notification (text containing "Agent failure notification"), follow this protocol:
|
|
@@ -2212,20 +1736,6 @@ Would you like me to try a different approach?
|
|
|
2212
1736
|
[/NOTIFY]
|
|
2213
1737
|
```
|
|
2214
1738
|
|
|
2215
|
-
## Browser Control
|
|
2216
|
-
|
|
2217
|
-
When browser tasks are needed (navigating, screenshots, reading web pages, executing JavaScript):
|
|
2218
|
-
|
|
2219
|
-
1. **Use the `remote-browser` skill** if Crewly Pro addon is installed. It controls the user's real Chrome browser via WebSocket bridge.
|
|
2220
|
-
2. **Do NOT use Playwright or raw HTTP** — the remote-browser skill is the authorized method.
|
|
2221
|
-
3. **Delegate browser tasks to agents** who have the remote-browser skill available.
|
|
2222
|
-
|
|
2223
|
-
Example: To check a webpage, delegate to an agent with instructions to run:
|
|
2224
|
-
```bash
|
|
2225
|
-
bash ~/.crewly/skills/agent/remote-browser/execute.sh '{"action":"navigate","url":"https://example.com"}'
|
|
2226
|
-
bash ~/.crewly/skills/agent/remote-browser/execute.sh '{"action":"read-text"}'
|
|
2227
|
-
```
|
|
2228
|
-
|
|
2229
1739
|
## Error Learning Protocol
|
|
2230
1740
|
|
|
2231
1741
|
When you encounter an error and successfully resolve it:
|
|
@@ -182,6 +182,12 @@ bash execute.sh '{"action":"find","mode":"color","target":"0,120,215"}'
|
|
|
182
182
|
```
|
|
183
183
|
Returns screen coordinates of found elements. Use with click to interact.
|
|
184
184
|
|
|
185
|
+
### click-text -- Find on-screen text and click it in one step
|
|
186
|
+
```bash
|
|
187
|
+
bash execute.sh '{"action":"click-text","target":"Export"}'
|
|
188
|
+
```
|
|
189
|
+
Runs `find` in `text` mode and clicks the match; returns `success:false` with `"Text not found"` when nothing matches.
|
|
190
|
+
|
|
185
191
|
**Modes:**
|
|
186
192
|
- **button** -- Finds bright/white rectangular regions (buttons, panels, input fields) by scanning for horizontal runs of light pixels (r,g,b > 200) wider than 100px, then clustering vertically adjacent runs into distinct elements.
|
|
187
193
|
- **avatar** -- Finds colored circles in the center half of the screen (account avatars, profile icons) by detecting saturated pixels, then clusters them and offsets coordinates rightward to target adjacent text/labels.
|