crewly 1.20.356 → 1.20.359
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/constants.ts +11 -0
- package/dist/backend/backend/src/constants.d.ts +313 -17
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +316 -17
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +21 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +232 -15
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -2
- 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 +27 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
- package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +8 -0
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +26 -2
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +9 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.js +16 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
- 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 +126 -11
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
- 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 +9 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts +150 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js +324 -0
- package/dist/backend/backend/src/services/memory/agent-memory-refresh.service.js.map +1 -0
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts +9 -7
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js +19 -17
- package/dist/backend/backend/src/services/memory/auto-learning.subscriber.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +11 -0
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts +114 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js +345 -0
- package/dist/backend/backend/src/services/memory/startup-briefing.service.js.map +1 -0
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts +24 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js +54 -3
- package/dist/backend/backend/src/services/messaging/owner-thread-sentinel.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts +9 -0
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js +16 -2
- package/dist/backend/backend/src/services/orc/owner-completion-report.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts +30 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js +48 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-prefixes.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +8 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +29 -8
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +27 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +78 -24
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +23 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +38 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/session/session-binding.d.ts +25 -2
- package/dist/backend/backend/src/services/session/session-binding.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/session-binding.js +32 -4
- package/dist/backend/backend/src/services/session/session-binding.js.map +1 -1
- package/dist/backend/backend/src/services/slack/agent-coordination.d.ts +119 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.js +174 -0
- package/dist/backend/backend/src/services/slack/agent-coordination.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +619 -9
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +49 -12
- package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +21 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-chat.js +54 -2
- package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +9 -4
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js +32 -10
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +19 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-importer.js +78 -3
- package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js +8 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts +106 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.js +212 -0
- package/dist/backend/backend/src/services/team-move/team-move-transcripts.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +20 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -2
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +11 -4
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +4 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +4 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +36 -5
- 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 +75 -7
- package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +3 -1
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts +141 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js +324 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-compile.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.js +222 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts +93 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js +142 -0
- package/dist/backend/backend/src/services/wiki/wiki-log-rotation.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts +104 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js +192 -0
- package/dist/backend/backend/src/services/wiki/wiki-maintenance.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +3 -2
- package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js +23 -39
- package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts +105 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js +195 -0
- package/dist/backend/backend/src/services/wiki/wiki-queue-drain.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +3 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js +96 -25
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js +17 -1
- package/dist/backend/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/work-record-transcript.d.ts +64 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.js +194 -0
- package/dist/backend/backend/src/services/wiki/work-record-transcript.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.d.ts +239 -0
- package/dist/backend/backend/src/services/wiki/work-record.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.js +631 -0
- package/dist/backend/backend/src/services/wiki/work-record.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.d.ts +209 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.js +514 -0
- package/dist/backend/backend/src/services/wiki/work-record.service.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +11 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +11 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +313 -17
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +316 -17
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -2
- 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 +27 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +34 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +69 -13
- package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +9 -0
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.js +16 -0
- package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +44 -3
- 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 +126 -11
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +2 -0
- 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 +9 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +11 -0
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts +114 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js +345 -0
- package/dist/cli/backend/src/services/memory/startup-briefing.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts +33 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js +69 -4
- package/dist/cli/backend/src/services/messaging/owner-thread-sentinel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/agent-coordination.d.ts +119 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.js +174 -0
- package/dist/cli/backend/src/services/slack/agent-coordination.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +167 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +619 -9
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts +22 -0
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +49 -12
- package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +7 -0
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +25 -4
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +36 -5
- 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 +75 -7
- package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts +142 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.js +222 -0
- package/dist/cli/backend/src/services/wiki/wiki-log-entries.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.js +105 -0
- package/dist/cli/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +28 -5
- package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js +96 -25
- package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts +11 -0
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.d.ts.map +1 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js +17 -1
- package/dist/cli/backend/src/services/wiki/wiki-vault-walk.js.map +1 -1
- package/dist/cli/backend/src/services/wiki/work-record-transcript.d.ts +64 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.js +194 -0
- package/dist/cli/backend/src/services/wiki/work-record-transcript.js.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record.d.ts +239 -0
- package/dist/cli/backend/src/services/wiki/work-record.d.ts.map +1 -0
- package/dist/cli/backend/src/services/wiki/work-record.js +631 -0
- package/dist/cli/backend/src/services/wiki/work-record.js.map +1 -0
- package/dist/cli/config/constants.d.ts +11 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +11 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -1692,6 +1692,178 @@ export const WIKI_QUEUE_CONSTANTS = {
|
|
|
1692
1692
|
CLAIM_TIMEOUT_MS: WIKI_QUEUE_DAY_MS,
|
|
1693
1693
|
/** Sub-folder of the queue root that holds expired items (kept, never deleted). */
|
|
1694
1694
|
DEAD_LETTER_DIR: 'dead-letter',
|
|
1695
|
+
/**
|
|
1696
|
+
* Code drain (#1345): a pending item nobody claimed within this age is
|
|
1697
|
+
* filed into the vault's `log.md` by the backend, without an LLM.
|
|
1698
|
+
*/
|
|
1699
|
+
DRAIN_MIN_AGE_MS: WIKI_QUEUE_DAY_MS,
|
|
1700
|
+
/** Items filed per drain pass (the pass runs hourly, so a backlog of hundreds clears within a day). */
|
|
1701
|
+
DRAIN_BATCH_SIZE: 100,
|
|
1702
|
+
/** Pause between two filed items, so a long backlog does not saturate disk I/O. */
|
|
1703
|
+
DRAIN_ITEM_PAUSE_MS: 25,
|
|
1704
|
+
/** `claimedBy` / caller the drain stamps on items it files. */
|
|
1705
|
+
DRAIN_CLAIMANT: 'system:wiki-queue-drain',
|
|
1706
|
+
};
|
|
1707
|
+
/**
|
|
1708
|
+
* The vault activity log (`llm-curated/log.md`) and what the backend does
|
|
1709
|
+
* with it (#1345): dedupe on append, rotation into an archive, recent
|
|
1710
|
+
* entries in search, and a weekly digest page compiled from them.
|
|
1711
|
+
*/
|
|
1712
|
+
export const WIKI_LOG_CONSTANTS = {
|
|
1713
|
+
/** Vault-relative path of the activity log. */
|
|
1714
|
+
LOG_RELATIVE_PATH: 'llm-curated/log.md',
|
|
1715
|
+
/** Vault-relative folder rotated logs move to (`log-YYYY-MM-DD.md`). Never read by search. */
|
|
1716
|
+
ARCHIVE_DIR: 'llm-curated/log-archive',
|
|
1717
|
+
/** Rotate when the log is larger than this. */
|
|
1718
|
+
ROTATE_MAX_BYTES: 2 * 1024 * 1024,
|
|
1719
|
+
/** Rotate when the log holds more entries than this. */
|
|
1720
|
+
ROTATE_MAX_ENTRIES: 2000,
|
|
1721
|
+
/** After a rotation the fresh log keeps the non-noise entries from this many days. */
|
|
1722
|
+
CARRY_FORWARD_DAYS: 30,
|
|
1723
|
+
/** Cap on entries carried into the fresh log. */
|
|
1724
|
+
CARRY_FORWARD_MAX_ENTRIES: 500,
|
|
1725
|
+
/** Search/recall index the entries from this many days. */
|
|
1726
|
+
SEARCH_WINDOW_DAYS: 30,
|
|
1727
|
+
/** Cap on log entries one vault contributes to a search. */
|
|
1728
|
+
SEARCH_MAX_ENTRIES_PER_VAULT: 300,
|
|
1729
|
+
/** BM25 score multiplier for a log entry (pages rank above entries of equal relevance). */
|
|
1730
|
+
SEARCH_ENTRY_WEIGHT: 0.6,
|
|
1731
|
+
/** Separator between the log path and an entry's timestamp in a search hit path. */
|
|
1732
|
+
ENTRY_PATH_SEPARATOR: '#',
|
|
1733
|
+
/** Recent entry bodies remembered per vault to drop an identical append. */
|
|
1734
|
+
DEDUPE_RECENT_ENTRIES: 500,
|
|
1735
|
+
/** Bytes of the log tail read once to seed the dedupe set. */
|
|
1736
|
+
DEDUPE_SEED_TAIL_BYTES: 256 * 1024,
|
|
1737
|
+
/** The digest compiles the uncompiled non-noise entries from this many days. */
|
|
1738
|
+
COMPILE_WINDOW_DAYS: 7,
|
|
1739
|
+
/** Fewer uncompiled entries than this: no digest page is written. */
|
|
1740
|
+
COMPILE_MIN_ENTRIES: 3,
|
|
1741
|
+
/** Cap on entries one digest page takes (the rest wait for the next run). */
|
|
1742
|
+
COMPILE_MAX_ENTRIES: 150,
|
|
1743
|
+
/** Characters of an entry body quoted in the digest. */
|
|
1744
|
+
COMPILE_ENTRY_MAX_CHARS: 400,
|
|
1745
|
+
/** Vault-relative folder of digest pages. */
|
|
1746
|
+
COMPILE_DIR: 'llm-curated/digests',
|
|
1747
|
+
/** Vault-root file remembering which entries were compiled (dot-file: walkers skip it). */
|
|
1748
|
+
COMPILE_STATE_FILE: '.wiki-compile-state.json',
|
|
1749
|
+
/** Cap on remembered compiled entry keys per vault. */
|
|
1750
|
+
COMPILE_STATE_MAX_KEYS: 5000,
|
|
1751
|
+
/** Hourly maintenance tick (drain every tick; rotation + compile once per day). */
|
|
1752
|
+
MAINTENANCE_INTERVAL_MS: 60 * 60 * 1000,
|
|
1753
|
+
/** Rotation + compile run at most this often. */
|
|
1754
|
+
MAINTENANCE_DAILY_MS: 24 * 60 * 60 * 1000,
|
|
1755
|
+
/** Delay before the boot-time pass, so boot I/O settles first. */
|
|
1756
|
+
MAINTENANCE_BOOT_DELAY_MS: 90 * 1000,
|
|
1757
|
+
/** Maintenance bookkeeping (last daily pass), under CREWLY_HOME. */
|
|
1758
|
+
MAINTENANCE_STATE_FILE: 'wiki-maintenance-state.json',
|
|
1759
|
+
/** Kill switch env var; the value `false` disables all wiki maintenance. */
|
|
1760
|
+
MAINTENANCE_ENV_KILL_SWITCH: 'CREWLY_WIKI_MAINTENANCE',
|
|
1761
|
+
};
|
|
1762
|
+
/**
|
|
1763
|
+
* Daily agent-memory refresh (#1345): what an agent recorded in the wiki
|
|
1764
|
+
* log is reflected into its `memory.json` and the project's memory.
|
|
1765
|
+
*/
|
|
1766
|
+
export const AGENT_MEMORY_REFRESH_CONSTANTS = {
|
|
1767
|
+
INTERVAL_MS: 24 * 60 * 60 * 1000,
|
|
1768
|
+
/** Delay before the boot-time catch-up run. */
|
|
1769
|
+
BOOT_DELAY_MS: 2 * 60 * 1000,
|
|
1770
|
+
/** Entries newer than this are considered on the first run (later runs use the last-run watermark). */
|
|
1771
|
+
LOOKBACK_MS: 24 * 60 * 60 * 1000,
|
|
1772
|
+
/** Cap on role-knowledge entries added per agent per run. */
|
|
1773
|
+
MAX_ENTRIES_PER_AGENT: 10,
|
|
1774
|
+
/** Cap on characters of one entry kept as knowledge. */
|
|
1775
|
+
ENTRY_MAX_CHARS: 600,
|
|
1776
|
+
/** Confidence of a knowledge entry derived from the agent's own log entries. */
|
|
1777
|
+
CONFIDENCE: 0.5,
|
|
1778
|
+
/** State file (last run per agent), under CREWLY_HOME. */
|
|
1779
|
+
STATE_FILE: 'agent-memory-refresh-state.json',
|
|
1780
|
+
/** Kill switch env var; the value `false` disables the refresh. */
|
|
1781
|
+
ENV_KILL_SWITCH: 'CREWLY_AGENT_MEMORY_REFRESH',
|
|
1782
|
+
};
|
|
1783
|
+
/**
|
|
1784
|
+
* Automatic per-task work records (#1349): one `(record)` entry per finished
|
|
1785
|
+
* WorkItem in the project vault log, compiled into the weekly digest.
|
|
1786
|
+
*/
|
|
1787
|
+
export const WORK_RECORD_CONSTANTS = {
|
|
1788
|
+
/** Hourly tick: catch-up for finished items without a record, blocked items, deferred items. */
|
|
1789
|
+
TICK_MS: 60 * 60 * 1000,
|
|
1790
|
+
/** Delay before the boot-time pass, after the other wiki jobs settled. */
|
|
1791
|
+
BOOT_DELAY_MS: 3 * 60 * 1000,
|
|
1792
|
+
/** A terminal event waits this long before the record is assembled (ticket sync, verify item, evidence land first). */
|
|
1793
|
+
EVENT_DELAY_MS: 20 * 1000,
|
|
1794
|
+
/** Catch-up looks at items that ended within this many days. */
|
|
1795
|
+
CATCHUP_WINDOW_DAYS: 7,
|
|
1796
|
+
/** Cap on records written per pass (the rest wait for the next tick). */
|
|
1797
|
+
CATCHUP_MAX_PER_PASS: 200,
|
|
1798
|
+
/** A record waiting for the owner's OK on a ticket is written anyway after this long. */
|
|
1799
|
+
DEFER_MAX_MS: 72 * 60 * 60 * 1000,
|
|
1800
|
+
/** An item parked in `blocked` for longer than this gets a blocked record. */
|
|
1801
|
+
BLOCKED_AFTER_MS: 24 * 60 * 60 * 1000,
|
|
1802
|
+
/** Hard cap on one record's body (the `meta:` line always fits). */
|
|
1803
|
+
MAX_CHARS: 2_500,
|
|
1804
|
+
/** Characters of the ask quoted. */
|
|
1805
|
+
QUOTE_MAX_CHARS: 160,
|
|
1806
|
+
/** Characters of the result summary kept. */
|
|
1807
|
+
DID_MAX_CHARS: 400,
|
|
1808
|
+
/** Cap on output lines and characters per line. */
|
|
1809
|
+
MAX_OUTPUTS: 8,
|
|
1810
|
+
OUTPUT_MAX_CHARS: 160,
|
|
1811
|
+
/** Cap on error lines and characters per line. */
|
|
1812
|
+
MAX_ERRORS: 5,
|
|
1813
|
+
ERROR_MAX_CHARS: 160,
|
|
1814
|
+
/** Cap on helper lines and characters per line. */
|
|
1815
|
+
MAX_HELPERS: 6,
|
|
1816
|
+
HELPER_MAX_CHARS: 120,
|
|
1817
|
+
/** Bytes read from the end of the agent's transcript for the task window. */
|
|
1818
|
+
TRANSCRIPT_TAIL_BYTES: 2 * 1024 * 1024,
|
|
1819
|
+
/** Transcripts are consulted only for items that ended within this long (older windows are not in the tail). */
|
|
1820
|
+
TRANSCRIPT_MAX_AGE_MS: 48 * 60 * 60 * 1000,
|
|
1821
|
+
/** Slack around the task window when slicing the transcript. */
|
|
1822
|
+
TRANSCRIPT_WINDOW_SLACK_MS: 60 * 1000,
|
|
1823
|
+
/** Cap on trace events read per record. */
|
|
1824
|
+
TRACE_MAX_EVENTS: 2_000,
|
|
1825
|
+
/** State file (recorded keys), under CREWLY_HOME. */
|
|
1826
|
+
STATE_FILE: 'work-records-state.json',
|
|
1827
|
+
/** Cap on remembered record keys. */
|
|
1828
|
+
STATE_MAX_KEYS: 5_000,
|
|
1829
|
+
/** Kill switch env var; the value `false` disables work records. */
|
|
1830
|
+
ENV_KILL_SWITCH: 'CREWLY_WORK_RECORDS',
|
|
1831
|
+
/** Source type of a record entry in the vault log. */
|
|
1832
|
+
SOURCE_TYPE: 'work_record',
|
|
1833
|
+
/** Prefix of a record's `ref:` (`work-record:<workItemId>#<phase>`). */
|
|
1834
|
+
REF_PREFIX: 'work-record:',
|
|
1835
|
+
/** Records the startup briefing lists. */
|
|
1836
|
+
BRIEFING_MAX: 5,
|
|
1837
|
+
/** Characters of one record line in the briefing. */
|
|
1838
|
+
BRIEFING_LINE_MAX_CHARS: 240,
|
|
1839
|
+
/** WorkItem types that are bookkeeping, never recorded. */
|
|
1840
|
+
SKIPPED_TYPES: ['check', 'reconcile', 'confirm', 'ticket_triage', 'autopilot_retro', 'goal_replan', 'ticket_hygiene_review', 'autopilot_self_review'],
|
|
1841
|
+
};
|
|
1842
|
+
/**
|
|
1843
|
+
* Startup briefing content (#1345): wiki pages, recent lessons and open
|
|
1844
|
+
* owner threads an agent gets at registration, on top of its session memory.
|
|
1845
|
+
*/
|
|
1846
|
+
export const STARTUP_BRIEFING_CONSTANTS = {
|
|
1847
|
+
/** Hard cap on the whole section. */
|
|
1848
|
+
MAX_CHARS: 12_000,
|
|
1849
|
+
/** Cap on the wiki index excerpt. */
|
|
1850
|
+
INDEX_MAX_CHARS: 4_000,
|
|
1851
|
+
/** Most-recently-changed topic pages listed. */
|
|
1852
|
+
RECENT_PAGES: 5,
|
|
1853
|
+
/** Characters of a page summary shown. */
|
|
1854
|
+
PAGE_SUMMARY_MAX_CHARS: 240,
|
|
1855
|
+
/** Lessons from this many days back. */
|
|
1856
|
+
LESSONS_DAYS: 7,
|
|
1857
|
+
/** Cap on lessons listed. */
|
|
1858
|
+
LESSONS_MAX: 12,
|
|
1859
|
+
/** Characters of one lesson shown. */
|
|
1860
|
+
LESSON_MAX_CHARS: 300,
|
|
1861
|
+
/** Cap on owner threads listed. */
|
|
1862
|
+
THREADS_MAX: 5,
|
|
1863
|
+
/** Characters of a thread preview shown. */
|
|
1864
|
+
THREAD_PREVIEW_MAX_CHARS: 160,
|
|
1865
|
+
/** Section heading. */
|
|
1866
|
+
HEADING: '## Your Project Knowledge',
|
|
1695
1867
|
};
|
|
1696
1868
|
/**
|
|
1697
1869
|
* Standing-answer pages (#816): a few question-anchored pages per scope,
|
|
@@ -1818,6 +1990,10 @@ export const SLACK_TYPING_CONSTANTS = {
|
|
|
1818
1990
|
TIMEOUT_TEXT: '⏱ {name} is still working on this — the reply will follow.',
|
|
1819
1991
|
/** How long a placeholder waits for the reply before it is edited to TIMEOUT_TEXT */
|
|
1820
1992
|
TIMEOUT_MS: 5 * 60 * 1000,
|
|
1993
|
+
/** Slack errors meaning the agent's bot cannot post in that channel at all (not a member of a private channel, or gone) */
|
|
1994
|
+
UNREACHABLE_CHANNEL_ERROR: /\b(channel_not_found|not_in_channel|is_archived)\b/,
|
|
1995
|
+
/** After such an error, no placeholder is tried for that agent in that channel for this long (ms) */
|
|
1996
|
+
UNREACHABLE_CHANNEL_MS: 60 * 60 * 1000,
|
|
1821
1997
|
/** A timed-out placeholder is still removed by a reply arriving within this long (ms) */
|
|
1822
1998
|
EXPIRED_KEEP_MS: 24 * 60 * 60 * 1000,
|
|
1823
1999
|
/**
|
|
@@ -1902,9 +2078,15 @@ export const SLACK_THREAD_CONTEXT_CONSTANTS = {
|
|
|
1902
2078
|
/** Whether the Slack context block is fetched at all */
|
|
1903
2079
|
ENABLED: true,
|
|
1904
2080
|
/** Most messages shown (newest kept) */
|
|
1905
|
-
MAX_MESSAGES:
|
|
1906
|
-
/**
|
|
1907
|
-
|
|
2081
|
+
MAX_MESSAGES: 40,
|
|
2082
|
+
/**
|
|
2083
|
+
* Character budget of the whole block's message lines (newest kept).
|
|
2084
|
+
* 5 000 → 12 000 (crewly#1344): with the thread root always shown and
|
|
2085
|
+
* 1 500 characters per message, eight messages no longer fit in 5 000,
|
|
2086
|
+
* and the owner approved the larger prompt over agents that could not see
|
|
2087
|
+
* what the thread was about.
|
|
2088
|
+
*/
|
|
2089
|
+
MAX_CHARS: 12_000,
|
|
1908
2090
|
/** Characters kept per message before clipping */
|
|
1909
2091
|
PER_MESSAGE_CHARS: 4_000,
|
|
1910
2092
|
/**
|
|
@@ -1912,11 +2094,18 @@ export const SLACK_THREAD_CONTEXT_CONSTANTS = {
|
|
|
1912
2094
|
* compact "thread so far", not a transcript: a 4 000-char draft pasted in
|
|
1913
2095
|
* the thread made the prompt 13.5k chars, the busy-agent note cut it at
|
|
1914
2096
|
* 6 000, and the newest posts and the owner's ping were the part cut
|
|
1915
|
-
* (2026-10-08, #content-team).
|
|
2097
|
+
* (2026-10-08, #content-team). 500 → 1 500 (crewly#1344): 500 cut most
|
|
2098
|
+
* owner briefs mid-sentence; the busy-agent note now keeps the block's end.
|
|
1916
2099
|
*/
|
|
1917
|
-
BLOCK_PER_MESSAGE_CHARS:
|
|
2100
|
+
BLOCK_PER_MESSAGE_CHARS: 1_500,
|
|
1918
2101
|
/** The block shows at least this many of the newest messages, or everything since the agent's own last post when that is more */
|
|
1919
2102
|
BLOCK_RECENT_MESSAGES: 8,
|
|
2103
|
+
/**
|
|
2104
|
+
* The thread's root message is always in the block, even when it is
|
|
2105
|
+
* older than the window — it says what the thread is about (crewly#1344).
|
|
2106
|
+
* Shown with this marker and a line saying how many messages were skipped.
|
|
2107
|
+
*/
|
|
2108
|
+
ROOT_MARK: '(thread root)',
|
|
1920
2109
|
/** Marks a line addressed to the agent (or a person's post) after its last post in the thread */
|
|
1921
2110
|
UNANSWERED_MARK: '⟵ not answered by you yet',
|
|
1922
2111
|
/**
|
|
@@ -3092,12 +3281,24 @@ export const ORC_CONVERSATION_CONSTANTS = {
|
|
|
3092
3281
|
FRESH_CONTEXT_TOKENS: 300_000,
|
|
3093
3282
|
/** How much of the old transcript's end is read to find the last turn's size */
|
|
3094
3283
|
TAIL_BYTES: 2 * 1024 * 1024,
|
|
3095
|
-
/**
|
|
3096
|
-
|
|
3284
|
+
/**
|
|
3285
|
+
* Messages kept in the handover file, newest last. Raised 40 → 60 with
|
|
3286
|
+
* the per-message and total caps (crewly#1344): a 16k-character tail of
|
|
3287
|
+
* plain words lost the tool traffic entirely, and agents that were reset
|
|
3288
|
+
* several times a day "remembered worse" than plain Claude Code.
|
|
3289
|
+
*/
|
|
3290
|
+
HANDOVER_MESSAGES: 60,
|
|
3097
3291
|
/** Characters kept per handover message */
|
|
3098
|
-
HANDOVER_MESSAGE_CHARS:
|
|
3099
|
-
/** Total cap on the handover file's body */
|
|
3100
|
-
HANDOVER_MAX_CHARS:
|
|
3292
|
+
HANDOVER_MESSAGE_CHARS: 2_000,
|
|
3293
|
+
/** Total cap on the handover file's body (~40k characters, ~10k tokens) */
|
|
3294
|
+
HANDOVER_MAX_CHARS: 40_000,
|
|
3295
|
+
/**
|
|
3296
|
+
* Characters kept of each tool call / tool result in a handover: the tool
|
|
3297
|
+
* name plus the start of its input or output, one line each, so the new
|
|
3298
|
+
* conversation knows WHAT was done (files read, commands run), not just
|
|
3299
|
+
* what was said about it. Images stay a described placeholder.
|
|
3300
|
+
*/
|
|
3301
|
+
HANDOVER_TOOL_RESULT_CHARS: 200,
|
|
3101
3302
|
/** Directory under CREWLY_HOME for handover files */
|
|
3102
3303
|
HANDOVER_DIR: 'handover',
|
|
3103
3304
|
/** A plain restart hands over the previous conversation only when its transcript was written within this window */
|
|
@@ -3107,7 +3308,7 @@ export const ORC_CONVERSATION_CONSTANTS = {
|
|
|
3107
3308
|
/** How much of a transcript's start is read to check it belongs to a session (cwd-wide fallback) */
|
|
3108
3309
|
OWNERSHIP_HEAD_BYTES: 256 * 1024,
|
|
3109
3310
|
/** Most of an earlier handover carried into a new one when the source conversation is unreadable */
|
|
3110
|
-
CHAINED_HANDOVER_MAX_CHARS:
|
|
3311
|
+
CHAINED_HANDOVER_MAX_CHARS: 40_000,
|
|
3111
3312
|
};
|
|
3112
3313
|
/** Pointer header (open work, suggested skills) written at the top of a handover file. */
|
|
3113
3314
|
export const HANDOVER_POINTERS_CONSTANTS = {
|
|
@@ -3169,17 +3370,43 @@ export const FRESH_TASK_CONVERSATION_CONSTANTS = {
|
|
|
3169
3370
|
NEW_SESSION_POLL_MS: 1_000,
|
|
3170
3371
|
/** Cap on the handover text stored through memory (mirrored into the wiki) */
|
|
3171
3372
|
MEMORY_MAX_CHARS: 4_000,
|
|
3172
|
-
/**
|
|
3173
|
-
|
|
3373
|
+
/**
|
|
3374
|
+
* Members start fresh at launch when their last turn carried this many
|
|
3375
|
+
* tokens. Env: CREWLY_MEMBER_FRESH_CONTEXT_TOKENS.
|
|
3376
|
+
*
|
|
3377
|
+
* Above Claude Code's own auto-compact window (CLAUDE_CODE_CONTEXT, 350k)
|
|
3378
|
+
* on purpose (crewly#1344): Claude compacts its conversation itself and
|
|
3379
|
+
* keeps a far better summary than a handover tail, so Crewly's reset is
|
|
3380
|
+
* only a safety net for a conversation that compaction did not bring
|
|
3381
|
+
* down. At the old 150k the audit of 2026-10-16 counted 58 fresh starts
|
|
3382
|
+
* in 48 h, every one of them replacing a live conversation with 16k
|
|
3383
|
+
* characters of tail.
|
|
3384
|
+
*/
|
|
3385
|
+
MEMBER_FRESH_CONTEXT_TOKENS: 400_000,
|
|
3386
|
+
/**
|
|
3387
|
+
* The smallest conversation a new-task `/clear` may close (last-turn
|
|
3388
|
+
* tokens): the same as {@link MEMBER_FRESH_CONTEXT_TOKENS}, read through
|
|
3389
|
+
* `memberFreshContextTokens()` so the env override applies to both. A
|
|
3390
|
+
* conversation under it is cheap to keep and is what the agent remembers
|
|
3391
|
+
* by; 137 clears in 48 h, some at 56k, were the cost of not having a floor.
|
|
3392
|
+
*/
|
|
3393
|
+
MIN_CLEAR_CONTEXT_TOKENS: 400_000,
|
|
3394
|
+
/**
|
|
3395
|
+
* A member the owner spoke to this recently (an owner thread the sentinel
|
|
3396
|
+
* watches: the owner's last message, or an open promise) is never cleared
|
|
3397
|
+
* for a new task — the clear would wipe the conversation the owner is in.
|
|
3398
|
+
*/
|
|
3399
|
+
OWNER_CONVERSATION_ACTIVE_MS: 2 * 60 * 60 * 1000,
|
|
3174
3400
|
/**
|
|
3175
3401
|
* Idle-boundary context cap: a Claude Code member (never the orchestrator)
|
|
3176
3402
|
* whose last turn carried more than this many tokens is saved (handover +
|
|
3177
3403
|
* wiki) and cleared between turns, then re-oriented on its WorkItem. One
|
|
3178
|
-
* long task can otherwise run 1000+ turns at 650k–965k context.
|
|
3179
|
-
*
|
|
3180
|
-
*
|
|
3404
|
+
* long task can otherwise run 1000+ turns at 650k–965k context. Above the
|
|
3405
|
+
* fresh-start threshold and Claude Code's 350k auto-compact (crewly#1344),
|
|
3406
|
+
* so compaction runs first and this only catches a conversation that kept
|
|
3407
|
+
* growing through it.
|
|
3181
3408
|
*/
|
|
3182
|
-
MEMBER_CONTEXT_CAP_TOKENS:
|
|
3409
|
+
MEMBER_CONTEXT_CAP_TOKENS: 450_000,
|
|
3183
3410
|
/** Env override for {@link MEMBER_CONTEXT_CAP_TOKENS}; `0` disables the cap */
|
|
3184
3411
|
MEMBER_CONTEXT_CAP_ENV: 'CREWLY_MEMBER_CONTEXT_CAP_TOKENS',
|
|
3185
3412
|
/** At most one context-cap clear per session in this window */
|
|
@@ -7065,6 +7292,48 @@ export const TL_DELEGATION_CONSTANTS = {
|
|
|
7065
7292
|
/** Accepted tool_name from the hook */
|
|
7066
7293
|
TOOL_NAME_PATTERN: /^[A-Za-z0-9_-]{1,64}$/,
|
|
7067
7294
|
};
|
|
7295
|
+
/**
|
|
7296
|
+
* Agent-to-agent coordination in Slack rooms (crewly#1340): local
|
|
7297
|
+
* coordination stays inside Crewly, cross-machine coordination goes in a
|
|
7298
|
+
* thread, ticket ids never reach Slack, near-identical repeats are dropped.
|
|
7299
|
+
*/
|
|
7300
|
+
export const AGENT_COORDINATION_CONSTANTS = {
|
|
7301
|
+
/** chat-v2 message metadata: this agent post was delivered inside Crewly only (value: the reason) */
|
|
7302
|
+
INTERNAL_METADATA_KEY: 'agentCoordinationInternal',
|
|
7303
|
+
/** A repeat to the same recipients in the same room within this window is dropped (ms) */
|
|
7304
|
+
DUPLICATE_WINDOW_MS: 15 * 60 * 1000,
|
|
7305
|
+
/** Character-bigram similarity at which two messages count as the same message */
|
|
7306
|
+
DUPLICATE_SIMILARITY: 0.85,
|
|
7307
|
+
/** Messages remembered per sender/recipients/room */
|
|
7308
|
+
DUPLICATE_HISTORY: 10,
|
|
7309
|
+
/** Sender/recipients/room keys remembered at most */
|
|
7310
|
+
DUPLICATE_MAX_KEYS: 500,
|
|
7311
|
+
/** Request ticket prefix — always internal (`TKT-187`) */
|
|
7312
|
+
REQUEST_TICKET_PREFIX: 'TKT',
|
|
7313
|
+
/** Ticket prefixes are re-read at most this often (ms) */
|
|
7314
|
+
TICKET_PREFIX_CACHE_MS: 10 * 60 * 1000,
|
|
7315
|
+
/** Who asked a helper is remembered this long, to hand back a reply it cannot post (ms) */
|
|
7316
|
+
ASKED_BY_TTL_MS: 6 * 60 * 60 * 1000,
|
|
7317
|
+
/** Entries of the asked-by map at most */
|
|
7318
|
+
ASKED_BY_MAX: 500,
|
|
7319
|
+
/** Longest wait for the directory when telling agents elsewhere from people (ms) */
|
|
7320
|
+
DIRECTORY_LOOKUP_MS: 2000,
|
|
7321
|
+
/** Coordination threads (one per room per UTC day) remembered at most */
|
|
7322
|
+
COORDINATION_THREADS_MAX: 200,
|
|
7323
|
+
/**
|
|
7324
|
+
* Rules for every agent prompted from a Slack room. 2026-10-16: three
|
|
7325
|
+
* agents on one machine flooded #content-team with top-level coordination,
|
|
7326
|
+
* repeated one conclusion three times, quoted ticket ids, and promised to
|
|
7327
|
+
* watch a log "every 3h".
|
|
7328
|
+
*/
|
|
7329
|
+
PROMPT_RULES: 'Working with colleagues: when you need a colleague\'s help, @ them — if everyone you @ is an agent on this machine, it reaches them inside Crewly and is not posted to Slack. ' +
|
|
7330
|
+
'Helpers answer whoever asked them, not the room; the agent the room asked posts one consolidated update in the original thread once the result is in. ' +
|
|
7331
|
+
'Do not resend an answer you already gave the same colleague — point to it in one line. ' +
|
|
7332
|
+
'Never promise to poll or watch something periodically ("I\'ll check the log every 3h"): ask to be pinged, or rely on the event that tells you. ' +
|
|
7333
|
+
'Ticket ids (e.g. CREW-12) and ticket mechanics are internal: never write them in anything people read.',
|
|
7334
|
+
/** Added when the message came from a colleague inside Crewly (never in Slack). */
|
|
7335
|
+
INTERNAL_PROMPT_LINE: 'This message came from a colleague inside Crewly and is not in Slack: reply with the command above — your answer goes to them, not to the room.',
|
|
7336
|
+
};
|
|
7068
7337
|
/**
|
|
7069
7338
|
* Harness-owned reply routing (specs/2026-10-02-harness-owned-routing.md).
|
|
7070
7339
|
*/
|
|
@@ -7923,6 +8192,19 @@ export const OWNER_THREAD_SENTINEL_CONSTANTS = {
|
|
|
7923
8192
|
BOOT_CARD_MAX_AGE_MS: 24 * 60 * 60 * 1000,
|
|
7924
8193
|
/** A card goes into an owner thread only when that thread was active this recently */
|
|
7925
8194
|
CARD_THREAD_MAX_AGE_MS: 2 * 60 * 60 * 1000,
|
|
8195
|
+
/**
|
|
8196
|
+
* A watched thread with no owner activity for this long is dropped at
|
|
8197
|
+
* load and never counted as owed again (crewly#1344): a thread from 10-07
|
|
8198
|
+
* whose owner last wrote on 10-08 was re-stamped "restarted" on every boot
|
|
8199
|
+
* and listed as "work in hand" for ten days.
|
|
8200
|
+
*/
|
|
8201
|
+
STALE_AFTER_MS: 3 * 24 * 60 * 60 * 1000,
|
|
8202
|
+
/**
|
|
8203
|
+
* An agent counts as "in an owner conversation" while the owner wrote to
|
|
8204
|
+
* it (or it promised the owner something) in a watched thread within this
|
|
8205
|
+
* window — the per-task clear and the slot-cap eviction spare it (crewly#1344).
|
|
8206
|
+
*/
|
|
8207
|
+
OWNER_ACTIVE_MS: 2 * 60 * 60 * 1000,
|
|
7926
8208
|
};
|
|
7927
8209
|
/**
|
|
7928
8210
|
* Drive mode briefing (specs/2026-10-08-drive-mode.md): the owner's queue of
|
|
@@ -8282,6 +8564,23 @@ export const TEAM_MOVE_CONSTANTS = {
|
|
|
8282
8564
|
NON_MACHINE_INSTANCE_PATTERN: '^crewly-cloud',
|
|
8283
8565
|
/** Newest handover notes kept per agent. */
|
|
8284
8566
|
HANDOVERS_PER_AGENT: 10,
|
|
8567
|
+
/**
|
|
8568
|
+
* Largest Claude Code transcript (the agent's current conversation) that
|
|
8569
|
+
* travels with a move, per agent (crewly#1344). Only the latest
|
|
8570
|
+
* conversation per agent is packaged, under `transcripts/<session>/`, and
|
|
8571
|
+
* resumed on the target; a bigger one is left behind and listed.
|
|
8572
|
+
*/
|
|
8573
|
+
TRANSCRIPT_MAX_BYTES: 64 * 1024 * 1024,
|
|
8574
|
+
/** Newest chat-v2 messages of the team's Slack room carried in the package (per channel). */
|
|
8575
|
+
CHAT_MESSAGES_PER_CHANNEL: 500,
|
|
8576
|
+
/** Total cap on carried chat messages' content (bytes), all channels together. */
|
|
8577
|
+
CHAT_MESSAGES_MAX_BYTES: 4 * 1024 * 1024,
|
|
8578
|
+
/**
|
|
8579
|
+
* Suffix of the folder a project is given on the target when the team
|
|
8580
|
+
* lists a project the package did not carry: a clearly flagged placeholder
|
|
8581
|
+
* the owner is told to re-point (never silently dropped, crewly#1344).
|
|
8582
|
+
*/
|
|
8583
|
+
PLACEHOLDER_PROJECT_SUFFIX: '-NEEDS-PATH',
|
|
8285
8584
|
/** Largest text file that is path-rewritten and secret-scanned in memory. */
|
|
8286
8585
|
TEXT_FILE_MAX_BYTES: 8 * 1024 * 1024,
|
|
8287
8586
|
/** Free disk the target needs beyond the package (bytes): 2x package + this. */
|