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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text helpers for run traces: the `[TRACE:<id>]` prompt marker, the ids a
|
|
3
|
+
* delivered text refers to, safe summaries, and skill-call path labels.
|
|
4
|
+
*
|
|
5
|
+
* All pure; no I/O.
|
|
6
|
+
*
|
|
7
|
+
* @module services/trace/trace-markers
|
|
8
|
+
*/
|
|
9
|
+
import { type TraceData } from './trace.types.js';
|
|
10
|
+
/**
|
|
11
|
+
* The marker for a trace.
|
|
12
|
+
*
|
|
13
|
+
* @param traceId - Trace id
|
|
14
|
+
* @returns `[TRACE:<id>]`
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatTraceMarker(traceId: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Trace ids named by `[TRACE:…]` markers in a text, in order, de-duplicated.
|
|
19
|
+
*
|
|
20
|
+
* @param text - Delivered text
|
|
21
|
+
* @returns Trace ids
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseTraceMarkers(text: string): string[];
|
|
24
|
+
/**
|
|
25
|
+
* Append the trace marker as the last line, unless the text already names
|
|
26
|
+
* this trace. Used where a prefix could disturb routing parsers (status
|
|
27
|
+
* reports, agent-to-agent messages).
|
|
28
|
+
*
|
|
29
|
+
* @param text - Message text
|
|
30
|
+
* @param traceId - Trace to carry (no-op when absent)
|
|
31
|
+
* @returns The text with the marker
|
|
32
|
+
*/
|
|
33
|
+
export declare function appendTraceMarker(text: string, traceId: string | null | undefined): string;
|
|
34
|
+
/**
|
|
35
|
+
* Remove every `[TRACE:…]` marker from text going to the owner or an outside
|
|
36
|
+
* channel (Slack, chat, the portal). Trace ids are harness plumbing; an
|
|
37
|
+
* agent that copies a prompt's marker into its reply must not show it.
|
|
38
|
+
*
|
|
39
|
+
* @param text - Outgoing text
|
|
40
|
+
* @returns The text without markers (unchanged when it had none)
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* stripTraceMarkers('Done.\n[TRACE:tr-20261003-0123abcd]') // 'Done.'
|
|
44
|
+
*/
|
|
45
|
+
export declare function stripTraceMarkers(text: string): string;
|
|
46
|
+
/** Ids a delivered text refers to, by kind. */
|
|
47
|
+
export interface TextRefs {
|
|
48
|
+
/** Request ids from `[TICKET:TKT-n <id>]` markers */
|
|
49
|
+
requestIds: string[];
|
|
50
|
+
/** UUIDs (candidate work item ids) */
|
|
51
|
+
workItemIds: string[];
|
|
52
|
+
/** `D-n` */
|
|
53
|
+
decisionIds: string[];
|
|
54
|
+
/** `CE-7`, `TKT-12`, … (not `D-n`) */
|
|
55
|
+
ticketIds: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Every id in a text that the trace index might know.
|
|
59
|
+
*
|
|
60
|
+
* @param text - Delivered text
|
|
61
|
+
* @returns Ids by kind, each de-duplicated
|
|
62
|
+
*/
|
|
63
|
+
export declare function extractTextRefs(text: string): TextRefs;
|
|
64
|
+
/**
|
|
65
|
+
* A summary safe to store: one line, routing prefixes and trace markers
|
|
66
|
+
* removed, secrets redacted, cut to {@link TRACE_CONSTANTS.SUMMARY_MAX_CHARS}.
|
|
67
|
+
*
|
|
68
|
+
* @param text - Raw text (a message body, an error, a title)
|
|
69
|
+
* @param max - Character limit
|
|
70
|
+
* @returns The summary
|
|
71
|
+
*/
|
|
72
|
+
export declare function safeSummary(text: string | null | undefined, max?: number): string;
|
|
73
|
+
/**
|
|
74
|
+
* Keep only small values in an event's data map: strings are summarised,
|
|
75
|
+
* non-finite numbers and empty values are dropped.
|
|
76
|
+
*
|
|
77
|
+
* @param data - Raw data
|
|
78
|
+
* @returns Cleaned data, or undefined when nothing is left
|
|
79
|
+
*/
|
|
80
|
+
export declare function cleanTraceData(data: Record<string, unknown> | undefined): TraceData | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* The label of a skill call: method plus API path with ids replaced, so calls
|
|
83
|
+
* group by endpoint.
|
|
84
|
+
*
|
|
85
|
+
* @param method - HTTP method
|
|
86
|
+
* @param apiPath - Path relative to `/api` (query string ignored)
|
|
87
|
+
* @returns e.g. `POST /task-pool/:id/complete`
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* skillLabel('post', '/terminal/crewly-orc/write?x=1') // 'POST /terminal/:session/write'
|
|
91
|
+
*/
|
|
92
|
+
export declare function skillLabel(method: string, apiPath: string): string;
|
|
93
|
+
//# sourceMappingURL=trace-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-markers.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/trace-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoB7D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG1F;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACxB,qDAAqD;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sCAAsC;IACtC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY;IACZ,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAOtD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,GAAE,MAA0C,GAAG,MAAM,CAOpH;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAS/F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWlE"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text helpers for run traces: the `[TRACE:<id>]` prompt marker, the ids a
|
|
3
|
+
* delivered text refers to, safe summaries, and skill-call path labels.
|
|
4
|
+
*
|
|
5
|
+
* All pure; no I/O.
|
|
6
|
+
*
|
|
7
|
+
* @module services/trace/trace-markers
|
|
8
|
+
*/
|
|
9
|
+
import { TRACE_CONSTANTS } from '../../constants.js';
|
|
10
|
+
import { redactSensitive } from '../wiki/wiki-redaction.js';
|
|
11
|
+
import { parseTicketMarkers } from '../../types/v2/ticket.types.js';
|
|
12
|
+
import { isTraceId } from './trace.types.js';
|
|
13
|
+
/** `[TRACE:tr-…]` anywhere in a text. */
|
|
14
|
+
const TRACE_MARKER = /\[TRACE:(tr-\d{8}-[0-9a-f]+)\]/g;
|
|
15
|
+
/** A UUID (work item ids). */
|
|
16
|
+
const UUID = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
17
|
+
/** A decision id (`D-12`). */
|
|
18
|
+
const DECISION_ID = /\bD-\d+\b/g;
|
|
19
|
+
/** A project ticket id (`CE-7`, `APP-12`) or a Request label (`TKT-12`). */
|
|
20
|
+
const TICKET_ID = /\b[A-Z][A-Z0-9]{1,9}-\d+\b/g;
|
|
21
|
+
/** `…TOKEN=value`, `…_KEY=value`, `…SECRET=value`, `…PASSWORD=value` assignments. */
|
|
22
|
+
const SECRET_ASSIGNMENT = /\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|API_KEY|PRIVATE_KEY))=(\S+)/gi;
|
|
23
|
+
/** Routing prefixes the harness puts in front of a delivered message. */
|
|
24
|
+
const ROUTING_PREFIX = /^\s*(\[(?:G?CHAT|SLACK|SLACK-THREAD|TICKET|TRACE|REMOTE):[^\]]*\]\s*)+/;
|
|
25
|
+
/**
|
|
26
|
+
* The marker for a trace.
|
|
27
|
+
*
|
|
28
|
+
* @param traceId - Trace id
|
|
29
|
+
* @returns `[TRACE:<id>]`
|
|
30
|
+
*/
|
|
31
|
+
export function formatTraceMarker(traceId) {
|
|
32
|
+
return `[TRACE:${traceId}]`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Trace ids named by `[TRACE:…]` markers in a text, in order, de-duplicated.
|
|
36
|
+
*
|
|
37
|
+
* @param text - Delivered text
|
|
38
|
+
* @returns Trace ids
|
|
39
|
+
*/
|
|
40
|
+
export function parseTraceMarkers(text) {
|
|
41
|
+
const out = [];
|
|
42
|
+
for (const m of text.matchAll(TRACE_MARKER)) {
|
|
43
|
+
if (isTraceId(m[1]) && !out.includes(m[1]))
|
|
44
|
+
out.push(m[1]);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Append the trace marker as the last line, unless the text already names
|
|
50
|
+
* this trace. Used where a prefix could disturb routing parsers (status
|
|
51
|
+
* reports, agent-to-agent messages).
|
|
52
|
+
*
|
|
53
|
+
* @param text - Message text
|
|
54
|
+
* @param traceId - Trace to carry (no-op when absent)
|
|
55
|
+
* @returns The text with the marker
|
|
56
|
+
*/
|
|
57
|
+
export function appendTraceMarker(text, traceId) {
|
|
58
|
+
if (!traceId || !isTraceId(traceId) || parseTraceMarkers(text).includes(traceId))
|
|
59
|
+
return text;
|
|
60
|
+
return `${text}\n${formatTraceMarker(traceId)}`;
|
|
61
|
+
}
|
|
62
|
+
/** A line holding only a marker (optionally labelled `Trace:`), with its newline. */
|
|
63
|
+
const TRACE_MARKER_LINE = /^[ \t]*(?:Trace:[ \t]*)?\[TRACE:tr-\d{8}-[0-9a-f]+\][ \t]*(?:\r?\n|$)/gm;
|
|
64
|
+
/** A marker inside a line, with one space before it. */
|
|
65
|
+
const TRACE_MARKER_INLINE = /[ \t]?\[TRACE:tr-\d{8}-[0-9a-f]+\]/g;
|
|
66
|
+
/**
|
|
67
|
+
* Remove every `[TRACE:…]` marker from text going to the owner or an outside
|
|
68
|
+
* channel (Slack, chat, the portal). Trace ids are harness plumbing; an
|
|
69
|
+
* agent that copies a prompt's marker into its reply must not show it.
|
|
70
|
+
*
|
|
71
|
+
* @param text - Outgoing text
|
|
72
|
+
* @returns The text without markers (unchanged when it had none)
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* stripTraceMarkers('Done.\n[TRACE:tr-20261003-0123abcd]') // 'Done.'
|
|
76
|
+
*/
|
|
77
|
+
export function stripTraceMarkers(text) {
|
|
78
|
+
if (typeof text !== 'string' || !text.includes('[TRACE:'))
|
|
79
|
+
return text;
|
|
80
|
+
return text.replace(TRACE_MARKER_LINE, '').replace(TRACE_MARKER_INLINE, '').replace(/\n+$/, '');
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Every id in a text that the trace index might know.
|
|
84
|
+
*
|
|
85
|
+
* @param text - Delivered text
|
|
86
|
+
* @returns Ids by kind, each de-duplicated
|
|
87
|
+
*/
|
|
88
|
+
export function extractTextRefs(text) {
|
|
89
|
+
const uniq = (values) => [...new Set(values)];
|
|
90
|
+
const requestIds = uniq(parseTicketMarkers(text).map((r) => r.id));
|
|
91
|
+
const workItemIds = uniq([...text.matchAll(UUID)].map((m) => m[0].toLowerCase()));
|
|
92
|
+
const decisionIds = uniq([...text.matchAll(DECISION_ID)].map((m) => m[0]));
|
|
93
|
+
const ticketIds = uniq([...text.matchAll(TICKET_ID)].map((m) => m[0]).filter((id) => !/^D-\d+$/.test(id)));
|
|
94
|
+
return { requestIds, workItemIds, decisionIds, ticketIds };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* A summary safe to store: one line, routing prefixes and trace markers
|
|
98
|
+
* removed, secrets redacted, cut to {@link TRACE_CONSTANTS.SUMMARY_MAX_CHARS}.
|
|
99
|
+
*
|
|
100
|
+
* @param text - Raw text (a message body, an error, a title)
|
|
101
|
+
* @param max - Character limit
|
|
102
|
+
* @returns The summary
|
|
103
|
+
*/
|
|
104
|
+
export function safeSummary(text, max = TRACE_CONSTANTS.SUMMARY_MAX_CHARS) {
|
|
105
|
+
if (!text)
|
|
106
|
+
return '';
|
|
107
|
+
const flat = String(text).replace(ROUTING_PREFIX, '').replace(TRACE_MARKER, '').replace(/\s+/g, ' ').trim();
|
|
108
|
+
// Pattern-only redaction (no constants read at import time, so modules
|
|
109
|
+
// that stub the constants in tests can still load this one).
|
|
110
|
+
const redacted = redactSensitive(flat.replace(SECRET_ASSIGNMENT, '$1=[REDACTED]'));
|
|
111
|
+
return redacted.length > max ? `${redacted.slice(0, max - 1)}…` : redacted;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Keep only small values in an event's data map: strings are summarised,
|
|
115
|
+
* non-finite numbers and empty values are dropped.
|
|
116
|
+
*
|
|
117
|
+
* @param data - Raw data
|
|
118
|
+
* @returns Cleaned data, or undefined when nothing is left
|
|
119
|
+
*/
|
|
120
|
+
export function cleanTraceData(data) {
|
|
121
|
+
if (!data)
|
|
122
|
+
return undefined;
|
|
123
|
+
const out = {};
|
|
124
|
+
for (const [key, value] of Object.entries(data)) {
|
|
125
|
+
if (typeof value === 'number' && Number.isFinite(value))
|
|
126
|
+
out[key] = value;
|
|
127
|
+
else if (typeof value === 'boolean')
|
|
128
|
+
out[key] = value;
|
|
129
|
+
else if (typeof value === 'string' && value.length > 0)
|
|
130
|
+
out[key] = safeSummary(value, TRACE_CONSTANTS.DATA_VALUE_MAX_CHARS);
|
|
131
|
+
}
|
|
132
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The label of a skill call: method plus API path with ids replaced, so calls
|
|
136
|
+
* group by endpoint.
|
|
137
|
+
*
|
|
138
|
+
* @param method - HTTP method
|
|
139
|
+
* @param apiPath - Path relative to `/api` (query string ignored)
|
|
140
|
+
* @returns e.g. `POST /task-pool/:id/complete`
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* skillLabel('post', '/terminal/crewly-orc/write?x=1') // 'POST /terminal/:session/write'
|
|
144
|
+
*/
|
|
145
|
+
export function skillLabel(method, apiPath) {
|
|
146
|
+
const pathOnly = apiPath.split('?')[0] || '/';
|
|
147
|
+
const segments = pathOnly.split('/').map((seg, i, all) => {
|
|
148
|
+
if (!seg)
|
|
149
|
+
return seg;
|
|
150
|
+
if (all[i - 1] === 'terminal')
|
|
151
|
+
return ':session';
|
|
152
|
+
if (/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(seg) || /^\d+$/.test(seg) || /^[0-9a-f]{12,}$/i.test(seg))
|
|
153
|
+
return ':id';
|
|
154
|
+
if (/^[A-Z][A-Z0-9]{0,9}-\d+$/.test(seg))
|
|
155
|
+
return ':id';
|
|
156
|
+
if (isTraceId(seg))
|
|
157
|
+
return ':id';
|
|
158
|
+
return seg;
|
|
159
|
+
});
|
|
160
|
+
return `${method.toUpperCase()} ${segments.join('/')}`;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=trace-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-markers.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/trace-markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run trace hooks: the one-line calls the rest of the backend makes to start
|
|
3
|
+
* traces, carry them onto entities, and record what happened.
|
|
4
|
+
*
|
|
5
|
+
* Every function here is fire-and-forget: it catches its own errors and never
|
|
6
|
+
* throws, so a trace problem can never break a turn, a delivery or a request.
|
|
7
|
+
*
|
|
8
|
+
* specs/2026-10-03-run-traces.md
|
|
9
|
+
*
|
|
10
|
+
* @module services/trace/trace-recorder
|
|
11
|
+
*/
|
|
12
|
+
import type { Request } from '../../types/v2/request.types.js';
|
|
13
|
+
import type { WorkItem, WorkItemStatus } from '../../types/v2/work-item.types.js';
|
|
14
|
+
import type { OwnerDecision } from '../../types/decision.types.js';
|
|
15
|
+
import { type TraceEventType, type TraceOutcome, type TraceRefs } from './trace.types.js';
|
|
16
|
+
/**
|
|
17
|
+
* The trace a session's turn is on (no pending root is materialised).
|
|
18
|
+
*
|
|
19
|
+
* @param session - Agent session
|
|
20
|
+
* @returns Trace id, or null
|
|
21
|
+
*/
|
|
22
|
+
export declare function currentTraceOf(session: string | null | undefined): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* The trace a session's turn is on; a waiting owner message becomes a root now
|
|
25
|
+
* because the turn is starting work.
|
|
26
|
+
*
|
|
27
|
+
* @param session - Agent session
|
|
28
|
+
* @returns Trace id, or null
|
|
29
|
+
*/
|
|
30
|
+
export declare function ensureTraceForSession(session: string | null | undefined): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* A message was written into an agent turn (PTY or in-process).
|
|
33
|
+
*
|
|
34
|
+
* @param session - Agent session
|
|
35
|
+
* @param text - Exactly what was delivered
|
|
36
|
+
* @param runtime - `pty` or `in-process`
|
|
37
|
+
* @returns The trace the turn is now on, or null
|
|
38
|
+
*/
|
|
39
|
+
export declare function noteTurnDelivery(session: string, text: string, runtime?: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* An in-process turn failed.
|
|
42
|
+
*
|
|
43
|
+
* @param session - Agent session
|
|
44
|
+
* @param error - What failed
|
|
45
|
+
*/
|
|
46
|
+
export declare function traceTurnError(session: string, error: unknown): void;
|
|
47
|
+
/**
|
|
48
|
+
* Start a goal or experiment trace (POST /api/traces, #986 experiment cards).
|
|
49
|
+
*
|
|
50
|
+
* @param input - Kind, summary, who, refs, session to bind
|
|
51
|
+
* @returns Trace id, or null
|
|
52
|
+
*/
|
|
53
|
+
export declare function startGoalTrace(input: {
|
|
54
|
+
kind: 'goal' | 'experiment';
|
|
55
|
+
summary: string;
|
|
56
|
+
session?: string;
|
|
57
|
+
refs?: TraceRefs;
|
|
58
|
+
}): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Give a new Request its trace (call before its first save): an explicit or
|
|
61
|
+
* creator trace, the parent ticket's trace, or a new `request` root. Sets
|
|
62
|
+
* `request.traceId` and records `request.created`.
|
|
63
|
+
*
|
|
64
|
+
* @param request - The Request about to be saved (mutated)
|
|
65
|
+
* @param opts.traceId - Trace to join (e.g. the creating agent's)
|
|
66
|
+
* @param opts.creatorSession - Agent creating it, when known
|
|
67
|
+
* @returns The trace id, or null
|
|
68
|
+
*/
|
|
69
|
+
export declare function assignRequestTrace(request: Request, opts?: {
|
|
70
|
+
traceId?: string;
|
|
71
|
+
creatorSession?: string;
|
|
72
|
+
}): string | null;
|
|
73
|
+
/**
|
|
74
|
+
* A Request (ticket) changed status: submitted for review, accepted, sent
|
|
75
|
+
* back, reopened, cancelled.
|
|
76
|
+
*
|
|
77
|
+
* @param request - The Request after the change
|
|
78
|
+
* @param previous - Its status before
|
|
79
|
+
*/
|
|
80
|
+
export declare function traceRequestStatus(request: Request, previous: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* A project ticket was created: link it to the trace of its Request or of the
|
|
83
|
+
* creating agent's turn, and record `ticket.created`.
|
|
84
|
+
*
|
|
85
|
+
* @param ticket - The ticket
|
|
86
|
+
* @param actor - Who created it (agent session, or a non-agent label)
|
|
87
|
+
* @returns The trace id, or null
|
|
88
|
+
*/
|
|
89
|
+
export declare function traceProjectTicketCreated(ticket: {
|
|
90
|
+
id: string;
|
|
91
|
+
title: string;
|
|
92
|
+
requestId?: string | null;
|
|
93
|
+
assignee?: string | null;
|
|
94
|
+
}, actor: string): string | null;
|
|
95
|
+
/**
|
|
96
|
+
* Give a work item its trace before it is stored. Order: its own `traceId`;
|
|
97
|
+
* the item it continues (parent / verify-of / source); its Request; its
|
|
98
|
+
* project ticket; the creating agent's turn. Sets `workItem.traceId`.
|
|
99
|
+
*
|
|
100
|
+
* @param workItem - The item (mutated)
|
|
101
|
+
* @param creatorSession - Agent creating it (X-Agent-Session), when known
|
|
102
|
+
* @returns The trace id, or null
|
|
103
|
+
*/
|
|
104
|
+
export declare function assignWorkItemTrace(workItem: WorkItem, creatorSession?: string): string | null;
|
|
105
|
+
/**
|
|
106
|
+
* A work item entered the pool (PoolStorage.addWorkItem): fill in its trace if
|
|
107
|
+
* the caller did not, and record `workitem.created`.
|
|
108
|
+
*
|
|
109
|
+
* @param workItem - The stored item (mutated when its trace is filled in)
|
|
110
|
+
*/
|
|
111
|
+
export declare function traceWorkItemCreated(workItem: WorkItem): void;
|
|
112
|
+
/**
|
|
113
|
+
* A work item changed status (PoolStorage.updateWorkItem). `running` is the
|
|
114
|
+
* claim.
|
|
115
|
+
*
|
|
116
|
+
* @param workItem - The item after the change
|
|
117
|
+
* @param previous - Its status before
|
|
118
|
+
*/
|
|
119
|
+
export declare function traceWorkItemStatus(workItem: WorkItem, previous: WorkItemStatus): void;
|
|
120
|
+
/**
|
|
121
|
+
* The `[TRACE:…]` header line for a work item's prompt.
|
|
122
|
+
*
|
|
123
|
+
* @param workItem - The item
|
|
124
|
+
* @returns The marker, or '' when the item has no trace
|
|
125
|
+
*/
|
|
126
|
+
export declare function workItemTraceMarker(workItem: Pick<WorkItem, 'traceId'>): string;
|
|
127
|
+
/**
|
|
128
|
+
* Append a work item's trace marker as the last line of a hand-over message,
|
|
129
|
+
* unless it is already there. Appended, never prepended: routing parsers
|
|
130
|
+
* anchor on the start of a delivered message (`[CHAT:…]`, `[TASK]`).
|
|
131
|
+
*
|
|
132
|
+
* @param message - The hand-over text
|
|
133
|
+
* @param workItem - The item handed over
|
|
134
|
+
* @returns The text with the marker last
|
|
135
|
+
*/
|
|
136
|
+
export declare function withWorkItemTraceMarker(message: string, workItem: Pick<WorkItem, 'traceId'>): string;
|
|
137
|
+
/**
|
|
138
|
+
* One agent messaged another through `/terminal/:to/*`: return the text with
|
|
139
|
+
* the sender's trace appended so the receiving turn joins it, and record
|
|
140
|
+
* `message.agent`.
|
|
141
|
+
*
|
|
142
|
+
* @param sender - Sending agent session
|
|
143
|
+
* @param target - Receiving session
|
|
144
|
+
* @param text - Message text
|
|
145
|
+
* @param maxLength - Longest text the endpoint accepts; the marker is skipped when it would not fit
|
|
146
|
+
* @returns The text to deliver (unchanged when the sender has no trace)
|
|
147
|
+
*/
|
|
148
|
+
export declare function carryAgentMessageTrace(sender: string, target: string, text: string, maxLength?: number): string;
|
|
149
|
+
/**
|
|
150
|
+
* A status report was routed. Returns the trace so the routed text can carry
|
|
151
|
+
* its marker.
|
|
152
|
+
*
|
|
153
|
+
* @param input.sender - Reporting agent
|
|
154
|
+
* @param input.content - Report text
|
|
155
|
+
* @param input.workItem - The work item it is about, if found
|
|
156
|
+
* @param input.action - Route (`orc`, `team-lead`, `digest`, `record`)
|
|
157
|
+
* @param input.target - Who receives it
|
|
158
|
+
* @returns The trace id, or null
|
|
159
|
+
*/
|
|
160
|
+
export declare function traceStatusRouted(input: {
|
|
161
|
+
sender: string;
|
|
162
|
+
content: string;
|
|
163
|
+
workItem?: Pick<WorkItem, 'id' | 'traceId'> | null;
|
|
164
|
+
action: string;
|
|
165
|
+
target?: string;
|
|
166
|
+
}): string | null;
|
|
167
|
+
/**
|
|
168
|
+
* Append the trace marker to a routed status text.
|
|
169
|
+
*
|
|
170
|
+
* @param text - Status text
|
|
171
|
+
* @param traceId - Trace (no-op when null)
|
|
172
|
+
* @returns The text with the marker last
|
|
173
|
+
*/
|
|
174
|
+
export declare function withTraceMarker(text: string, traceId: string | null): string;
|
|
175
|
+
/** What the reply resolver did with an agent message (subset of ReplyDelivery). */
|
|
176
|
+
export interface OutboundReplyResult {
|
|
177
|
+
ok: boolean;
|
|
178
|
+
error?: string;
|
|
179
|
+
messageId?: string;
|
|
180
|
+
conversationId?: string;
|
|
181
|
+
slackChannelId?: string;
|
|
182
|
+
messageTs?: string;
|
|
183
|
+
destination?: {
|
|
184
|
+
kind?: string;
|
|
185
|
+
source?: string;
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The reply resolver (#954) delivered or refused an agent message.
|
|
190
|
+
*
|
|
191
|
+
* @param input.session - Agent
|
|
192
|
+
* @param input.content - Message text
|
|
193
|
+
* @param input.reference - The reference it named (ticket / work item / decision / message)
|
|
194
|
+
* @param result - The delivery
|
|
195
|
+
*/
|
|
196
|
+
export declare function traceOutboundReply(input: {
|
|
197
|
+
session: string;
|
|
198
|
+
content: string;
|
|
199
|
+
reference?: {
|
|
200
|
+
messageId?: string;
|
|
201
|
+
ticket?: string;
|
|
202
|
+
workItemId?: string;
|
|
203
|
+
decisionId?: string;
|
|
204
|
+
};
|
|
205
|
+
}, result: OutboundReplyResult): void;
|
|
206
|
+
/**
|
|
207
|
+
* A decision card was asked: link it to the trace of its work item, Request,
|
|
208
|
+
* project ticket or asker's turn, and record `decision.created`.
|
|
209
|
+
*
|
|
210
|
+
* @param decision - The stored decision
|
|
211
|
+
*/
|
|
212
|
+
export declare function traceDecisionCreated(decision: OwnerDecision): void;
|
|
213
|
+
/**
|
|
214
|
+
* A decision changed state (answered, defaulted, cancelled, …).
|
|
215
|
+
*
|
|
216
|
+
* @param previous - Before
|
|
217
|
+
* @param next - After
|
|
218
|
+
*/
|
|
219
|
+
export declare function traceDecisionChanged(previous: Pick<OwnerDecision, 'status'>, next: OwnerDecision): void;
|
|
220
|
+
/** Input of {@link traceHarness}. */
|
|
221
|
+
export interface HarnessEventInput {
|
|
222
|
+
/** Session acted on */
|
|
223
|
+
session?: string;
|
|
224
|
+
workItemId?: string;
|
|
225
|
+
workItem?: Pick<WorkItem, 'id' | 'traceId'> | null;
|
|
226
|
+
/** Trace, when the caller knows it */
|
|
227
|
+
traceId?: string | null;
|
|
228
|
+
summary: string;
|
|
229
|
+
outcome?: TraceOutcome;
|
|
230
|
+
data?: Record<string, unknown>;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The harness intervened (redelivery, wake, correction, nudge, guard block):
|
|
234
|
+
* record it in the trace of the work item, else of the session's turn.
|
|
235
|
+
*
|
|
236
|
+
* @param type - Event type
|
|
237
|
+
* @param input - What and on whom
|
|
238
|
+
* @returns True when recorded
|
|
239
|
+
*/
|
|
240
|
+
export declare function traceHarness(type: Extract<TraceEventType, `harness.${string}` | 'guard.block'>, input: HarnessEventInput): boolean;
|
|
241
|
+
/** A token-ledger entry (subset of TokenUsageEvent). */
|
|
242
|
+
export interface UsageEntry {
|
|
243
|
+
timestamp: string;
|
|
244
|
+
input: number;
|
|
245
|
+
output: number;
|
|
246
|
+
model: string;
|
|
247
|
+
cachedInput?: number;
|
|
248
|
+
runtime?: string;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* A token-ledger entry was recorded: find the trace the session was on at
|
|
252
|
+
* that time, record `usage`, and return the id to stamp on the entry.
|
|
253
|
+
*
|
|
254
|
+
* @param session - Agent session
|
|
255
|
+
* @param entry - The usage
|
|
256
|
+
* @returns Trace id, or null
|
|
257
|
+
*/
|
|
258
|
+
export declare function traceUsage(session: string, entry: UsageEntry): string | null;
|
|
259
|
+
/** The part of an experiment card the trace needs. */
|
|
260
|
+
export interface ExperimentTraceInput {
|
|
261
|
+
/** `EXP-n` */
|
|
262
|
+
id: string;
|
|
263
|
+
title: string;
|
|
264
|
+
/** The ticket it rides on: a project ticket id, or a TKT-n label / request id */
|
|
265
|
+
ticket?: {
|
|
266
|
+
kind: 'project' | 'harness';
|
|
267
|
+
id: string;
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* An experiment card was created: join its ticket's trace when the ticket
|
|
272
|
+
* has one, else start an `experiment` root. Links `experiment:<EXP-n>` (and
|
|
273
|
+
* the ticket) in the index.
|
|
274
|
+
*
|
|
275
|
+
* @param experiment - The new card
|
|
276
|
+
* @param caller - Who created it (agent session, or `owner`)
|
|
277
|
+
* @returns The trace id, or null
|
|
278
|
+
*/
|
|
279
|
+
export declare function startExperimentTrace(experiment: ExperimentTraceInput, caller: string): string | null;
|
|
280
|
+
/**
|
|
281
|
+
* Mirror one experiment timeline entry (created, shipped, baseline, measured,
|
|
282
|
+
* verdict, …) into its trace.
|
|
283
|
+
*
|
|
284
|
+
* @param traceId - The card's trace
|
|
285
|
+
* @param experimentId - `EXP-n`
|
|
286
|
+
* @param event - Timeline event name
|
|
287
|
+
* @param detail - Optional detail
|
|
288
|
+
*/
|
|
289
|
+
export declare function traceExperimentEvent(traceId: string, experimentId: string, event: string, detail?: string): void;
|
|
290
|
+
//# sourceMappingURL=trace-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-recorder.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/trace-recorder.ts"],"names":[],"mappings":"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"}
|