crewly 1.8.9 → 1.8.12
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.d.ts.map +1 -0
- package/config/index.d.ts.map +1 -0
- package/config/roles/_common/memory-instructions.md +6 -5
- package/config/roles/_common/wiki-instructions.md +49 -0
- package/config/roles/architect/prompt.md +2 -2
- package/config/roles/backend-developer/prompt.md +2 -2
- package/config/roles/designer/prompt.md +2 -2
- package/config/roles/developer/prompt.md +2 -2
- package/config/roles/frontend-developer/prompt.md +2 -2
- package/config/roles/fullstack-dev/prompt.md +2 -2
- package/config/roles/generalist/prompt.md +2 -2
- package/config/roles/ops/prompt.md +2 -2
- package/config/roles/orchestrator/prompt.md +135 -11
- package/config/roles/product-manager/prompt.md +2 -2
- package/config/roles/qa/prompt.md +2 -2
- package/config/roles/qa-engineer/prompt.md +2 -2
- package/config/roles/researcher/prompt.md +15 -6
- package/config/roles/sales/prompt.md +2 -2
- package/config/roles/support/prompt.md +2 -2
- package/config/roles/team-leader/prompt.md +17 -2
- package/config/roles/tpm/prompt.md +2 -2
- package/config/roles/ux-designer/prompt.md +2 -2
- package/config/skills/orchestrator/wiki-cleanup/SKILL.md +89 -0
- package/config/skills/orchestrator/wiki-cleanup/execute.sh +139 -0
- package/config/skills/orchestrator/wiki-lint/SKILL.md +75 -0
- package/config/skills/orchestrator/wiki-lint/execute.sh +66 -0
- package/config/skills/orchestrator/wiki-migrate/SKILL.md +103 -0
- package/config/skills/orchestrator/wiki-migrate/execute.sh +82 -0
- package/config/skills/orchestrator/wiki-process-queue/SKILL.md +9 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +169 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +1779 -0
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +18 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +63 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +5 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +109 -0
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +419 -4
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.js +11 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +78 -3
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/index.js.orc-bak-20260529 +3130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +513 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +1568 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +86 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +147 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +68 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +131 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +130 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +263 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +74 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +140 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +29 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +279 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +340 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +1176 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +79 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +145 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +79 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +218 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +16 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js +16 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +141 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +310 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +91 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +143 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +103 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +256 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +13 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +91 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +135 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +1937 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -0
- package/dist/backend/backend/src/services/ai/prompt-builder.service.js +1 -1
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +429 -0
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +852 -0
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +1 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +171 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.js +725 -0
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +50 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +45 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- 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 +34 -1
- package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts +72 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +186 -0
- package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts +27 -4
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js +133 -10
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts +18 -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 +15 -4
- package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +74 -0
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +154 -0
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts +160 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +399 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts +182 -0
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +505 -0
- package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +232 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +1416 -0
- package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +102 -0
- package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts +104 -0
- package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js +229 -0
- package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +90 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js +190 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts +164 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +675 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -0
- package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.js +65 -0
- package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
- package/dist/backend/backend/src/types/auto-assign.types.d.ts +271 -0
- package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/auto-assign.types.js +136 -0
- package/dist/backend/backend/src/types/auto-assign.types.js.map +1 -0
- package/dist/backend/backend/src/types/cron-task.types.d.ts +16 -1
- package/dist/backend/backend/src/types/cron-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts +111 -0
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js +124 -0
- package/dist/backend/backend/src/utils/esm-require.utils.js.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +220 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +37 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts +159 -0
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.js +304 -0
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.js.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
- package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
- package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +171 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.js +725 -0
- package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +45 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
- package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
- package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
- package/dist/cli/cli/src/index.js +0 -0
- package/frontend/dist/assets/{index-db3f5041.css → index-068bb4f6.css} +10 -1
- package/frontend/dist/assets/index-c24ceb15.js +4960 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/config/skills/agent/core/query-knowledge/SKILL.md +0 -87
- package/config/skills/agent/core/query-knowledge/execute.sh +0 -30
- package/config/skills/orchestrator/query-knowledge/SKILL.md +0 -75
- package/config/skills/orchestrator/query-knowledge/execute.sh +0 -30
- package/frontend/dist/assets/index-cc115bb4.js +0 -4926
|
@@ -20,6 +20,14 @@ import { LoggerService } from '../core/logger.service.js';
|
|
|
20
20
|
import { TaskPoolService } from '../task-pool/task-pool.service.js';
|
|
21
21
|
import { computeAgentScore } from '../reconciler/reconcile-rules.js';
|
|
22
22
|
import { SLA_TRACKER_ID_PATTERN } from './workitem-dispatch.subscriber.js';
|
|
23
|
+
import { CREWLY_CONSTANTS } from '../../constants.js';
|
|
24
|
+
/**
|
|
25
|
+
* The orchestrator's own session name. Used to short-circuit the wake +
|
|
26
|
+
* escalation paths — those paths are agent-to-agent recovery; firing
|
|
27
|
+
* them with the orc as both source and target creates a self-referential
|
|
28
|
+
* loop ("ORC escalates to ORC", observed 2026-05-27).
|
|
29
|
+
*/
|
|
30
|
+
const ORCHESTRATOR_SESSION_NAME = CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME;
|
|
23
31
|
// ---------------------------------------------------------------------------
|
|
24
32
|
// Constants
|
|
25
33
|
// ---------------------------------------------------------------------------
|
|
@@ -355,7 +363,7 @@ export class AgentAutoClaimService {
|
|
|
355
363
|
}
|
|
356
364
|
}
|
|
357
365
|
const agentsToWake = new Set();
|
|
358
|
-
|
|
366
|
+
let orphanedItems = [];
|
|
359
367
|
const activeTargetedItems = [];
|
|
360
368
|
for (const wi of targetedItems) {
|
|
361
369
|
if (!wi.target)
|
|
@@ -407,6 +415,21 @@ export class AgentAutoClaimService {
|
|
|
407
415
|
}
|
|
408
416
|
// Wake known offline agents via correct team member start endpoint
|
|
409
417
|
for (const session of agentsToWake) {
|
|
418
|
+
// The orchestrator manages its own lifecycle (heartbeat-respawn
|
|
419
|
+
// from the service wrapper / supervisor) — it is NOT a regular
|
|
420
|
+
// team-member and the `POST /api/teams/:teamId/members/:memberId/start`
|
|
421
|
+
// endpoint returns 400 for it. Pre-fix, that 400 routed the WI into
|
|
422
|
+
// `orphanedItems` and then the escalation path "Escalated to
|
|
423
|
+
// Orchestrator" — but the orchestrator IS the orchestrator, so the
|
|
424
|
+
// escalation closed the loop into itself ("ORC escalates to ORC",
|
|
425
|
+
// observed 2026-05-27 22:29:06 / 23:22:28). Skip both the wake
|
|
426
|
+
// attempt and the escalation; the orc's supervisor will respawn it
|
|
427
|
+
// and the dispatch subscriber will re-deliver targeted WIs once
|
|
428
|
+
// the session is back.
|
|
429
|
+
if (session === ORCHESTRATOR_SESSION_NAME) {
|
|
430
|
+
this.logger.debug('Skipping wake for orchestrator session — supervisor handles its respawn', { sessionName: session, pendingWiCount: targetedItems.filter((wi) => wi.target === session).length });
|
|
431
|
+
continue;
|
|
432
|
+
}
|
|
410
433
|
try {
|
|
411
434
|
// Find team and member ID for this session
|
|
412
435
|
const axios = (await import('axios')).default;
|
|
@@ -440,6 +463,16 @@ export class AgentAutoClaimService {
|
|
|
440
463
|
orphanedItems.push(...targetedItems.filter((wi) => wi.target === session));
|
|
441
464
|
}
|
|
442
465
|
}
|
|
466
|
+
// Belt-and-suspenders: a WI whose target IS the orchestrator must
|
|
467
|
+
// never enter the escalation path — the path delivers via
|
|
468
|
+
// [RECOVERY] alerts that route back to the orc, which is the same
|
|
469
|
+
// session that "owns" the WI. Filter them out and log so ops sees
|
|
470
|
+
// why no alert fired for orc-targeted tasks.
|
|
471
|
+
const orcOrphans = orphanedItems.filter((wi) => wi.target === ORCHESTRATOR_SESSION_NAME);
|
|
472
|
+
if (orcOrphans.length > 0) {
|
|
473
|
+
this.logger.debug('Dropping orchestrator-targeted items from escalation list (would create self-loop)', { count: orcOrphans.length, workItemIds: orcOrphans.map((wi) => wi.id) });
|
|
474
|
+
}
|
|
475
|
+
orphanedItems = orphanedItems.filter((wi) => wi.target !== ORCHESTRATOR_SESSION_NAME);
|
|
443
476
|
// Escalate orphaned tasks — notify Orchestrator via Slack (reliable delivery)
|
|
444
477
|
if (orphanedItems.length > 0) {
|
|
445
478
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-auto-claim.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/agent-auto-claim.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-auto-claim.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/agent-auto-claim.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectTaskWatcherService — Watches `.crewly/tasks/` for new ProjectTask files
|
|
3
|
+
* and automatically creates WorkItems in the TaskPool.
|
|
4
|
+
*
|
|
5
|
+
* This service ensures that every ProjectTask file with status 'open' or 'in_progress'
|
|
6
|
+
* results in a corresponding WorkItem. It handles two scenarios:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Initial sync**: Scans existing task files on startup and creates missing WorkItems
|
|
9
|
+
* 2. **Live watch**: Monitors the tasks directory for new `.md` files via chokidar
|
|
10
|
+
*
|
|
11
|
+
* Design principle: Fire-and-forget. Errors are logged but never block normal operations.
|
|
12
|
+
*
|
|
13
|
+
* @module services/v3/project-task-watcher.service
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Metadata parsed from a ProjectTask markdown file.
|
|
17
|
+
*/
|
|
18
|
+
export interface ParsedProjectTask {
|
|
19
|
+
/** Derived from filename (sans extension) */
|
|
20
|
+
taskId: string;
|
|
21
|
+
/** First H1 heading or filename */
|
|
22
|
+
title: string;
|
|
23
|
+
/** Full markdown content */
|
|
24
|
+
description: string;
|
|
25
|
+
/** Priority parsed from metadata block, defaults to 'medium' */
|
|
26
|
+
priority: string;
|
|
27
|
+
/** Milestone (parent directory name) */
|
|
28
|
+
milestone: string;
|
|
29
|
+
/** Status folder name: 'open' | 'in_progress' */
|
|
30
|
+
statusFolder: string;
|
|
31
|
+
/** Assigned session name, if present */
|
|
32
|
+
assignedTo?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Watches the `.crewly/tasks/` directory for ProjectTask files and ensures
|
|
36
|
+
* each one has a corresponding WorkItem in the TaskPool.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const watcher = new ProjectTaskWatcherService('/path/to/project');
|
|
41
|
+
* await watcher.start();
|
|
42
|
+
* // ...later:
|
|
43
|
+
* watcher.dispose();
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class ProjectTaskWatcherService {
|
|
47
|
+
private readonly logger;
|
|
48
|
+
private readonly projectPath;
|
|
49
|
+
private readonly tasksBaseDir;
|
|
50
|
+
private watcher;
|
|
51
|
+
private pendingFiles;
|
|
52
|
+
private debounceTimer;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new ProjectTaskWatcherService.
|
|
55
|
+
*
|
|
56
|
+
* @param projectPath - Absolute path to the project root
|
|
57
|
+
*/
|
|
58
|
+
constructor(projectPath: string);
|
|
59
|
+
/**
|
|
60
|
+
* Starts watching for new ProjectTask files and performs an initial sync.
|
|
61
|
+
*
|
|
62
|
+
* 1. Ensures the tasks directory exists
|
|
63
|
+
* 2. Scans all existing open/in_progress tasks and creates missing WorkItems
|
|
64
|
+
* 3. Starts a chokidar watcher for live file creation events
|
|
65
|
+
*/
|
|
66
|
+
start(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Scans all milestone directories for open/in_progress task files
|
|
69
|
+
* and creates WorkItems for any that don't already exist in the TaskPool.
|
|
70
|
+
*/
|
|
71
|
+
syncExistingTasks(): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Starts the chokidar file watcher on the tasks directory.
|
|
74
|
+
* Watches for new `.md` files in any `open/` or `in_progress/` subdirectory.
|
|
75
|
+
*/
|
|
76
|
+
private startWatcher;
|
|
77
|
+
/**
|
|
78
|
+
* Handles a newly detected task file. Debounces rapid creation events.
|
|
79
|
+
*
|
|
80
|
+
* @param filePath - Absolute path to the new task file
|
|
81
|
+
*/
|
|
82
|
+
private onFileAdded;
|
|
83
|
+
/**
|
|
84
|
+
* Schedules a debounced batch sync of pending files.
|
|
85
|
+
*/
|
|
86
|
+
private scheduleDebouncedSync;
|
|
87
|
+
/**
|
|
88
|
+
* Ensures a WorkItem exists in the TaskPool for the given ProjectTask file.
|
|
89
|
+
* If one already exists (matched by projectTaskId), this is a no-op.
|
|
90
|
+
*
|
|
91
|
+
* @param filePath - Absolute path to the task .md file
|
|
92
|
+
* @param milestone - The milestone directory name
|
|
93
|
+
* @param statusFolder - The status folder name ('open' or 'in_progress')
|
|
94
|
+
* @returns True if a new WorkItem was created, false if already existed
|
|
95
|
+
*/
|
|
96
|
+
ensureWorkItemForTask(filePath: string, milestone: string, statusFolder: string, options?: {
|
|
97
|
+
skipStalenessCheck?: boolean;
|
|
98
|
+
}): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* Stops the file watcher and cleans up resources.
|
|
101
|
+
*/
|
|
102
|
+
dispose(): void;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Parses a ProjectTask markdown file to extract metadata.
|
|
106
|
+
*
|
|
107
|
+
* Extracts:
|
|
108
|
+
* - Title from first H1 heading or filename
|
|
109
|
+
* - Priority from `**Priority**: ...` line
|
|
110
|
+
* - AssignedTo from `**Assigned to**: ...` line
|
|
111
|
+
*
|
|
112
|
+
* @param filePath - Absolute path to the .md file
|
|
113
|
+
* @param milestone - Milestone directory name
|
|
114
|
+
* @param statusFolder - Status folder name
|
|
115
|
+
* @returns Parsed task metadata, or null if the file is unreadable
|
|
116
|
+
*/
|
|
117
|
+
export declare function parseProjectTaskFile(filePath: string, milestone: string, statusFolder: string): Promise<ParsedProjectTask | null>;
|
|
118
|
+
//# sourceMappingURL=project-task-watcher.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-task-watcher.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/project-task-watcher.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgCH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,aAAa,CAA8C;IAEnE;;;;OAIG;gBACS,WAAW,EAAE,MAAM;IAM/B;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCxC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAyBpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;;;;;;OAQG;IACG,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,GACzC,OAAO,CAAC,OAAO,CAAC;IA0DnB;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA6BnC"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectTaskWatcherService — Watches `.crewly/tasks/` for new ProjectTask files
|
|
3
|
+
* and automatically creates WorkItems in the TaskPool.
|
|
4
|
+
*
|
|
5
|
+
* This service ensures that every ProjectTask file with status 'open' or 'in_progress'
|
|
6
|
+
* results in a corresponding WorkItem. It handles two scenarios:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Initial sync**: Scans existing task files on startup and creates missing WorkItems
|
|
9
|
+
* 2. **Live watch**: Monitors the tasks directory for new `.md` files via chokidar
|
|
10
|
+
*
|
|
11
|
+
* Design principle: Fire-and-forget. Errors are logged but never block normal operations.
|
|
12
|
+
*
|
|
13
|
+
* @module services/v3/project-task-watcher.service
|
|
14
|
+
*/
|
|
15
|
+
import * as chokidar from 'chokidar';
|
|
16
|
+
import * as fs from 'fs/promises';
|
|
17
|
+
import * as path from 'path';
|
|
18
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
19
|
+
import { TaskPoolService } from '../task-pool/task-pool.service.js';
|
|
20
|
+
import { createWorkItem } from '../../types/v2/work-item.types.js';
|
|
21
|
+
import { ensureDir } from '../../utils/file-io.utils.js';
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Constants
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
/** Debounce interval in ms to batch rapid file creation events. */
|
|
26
|
+
const WATCHER_DEBOUNCE_MS = 500;
|
|
27
|
+
/** Subdirectories within a milestone folder that indicate actionable tasks. */
|
|
28
|
+
const ACTIONABLE_STATUS_FOLDERS = ['open', 'in_progress'];
|
|
29
|
+
/**
|
|
30
|
+
* Maximum age (ms) for a task file to be considered during initial startup sync.
|
|
31
|
+
* Tasks older than this are assumed stale and skipped during initial scan.
|
|
32
|
+
* Live watcher still processes new files regardless of age.
|
|
33
|
+
* Default: 48 hours.
|
|
34
|
+
*/
|
|
35
|
+
const STARTUP_SYNC_MAX_AGE_MS = 48 * 60 * 60 * 1000;
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Service
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Watches the `.crewly/tasks/` directory for ProjectTask files and ensures
|
|
41
|
+
* each one has a corresponding WorkItem in the TaskPool.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const watcher = new ProjectTaskWatcherService('/path/to/project');
|
|
46
|
+
* await watcher.start();
|
|
47
|
+
* // ...later:
|
|
48
|
+
* watcher.dispose();
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export class ProjectTaskWatcherService {
|
|
52
|
+
logger;
|
|
53
|
+
projectPath;
|
|
54
|
+
tasksBaseDir;
|
|
55
|
+
watcher = null;
|
|
56
|
+
pendingFiles = new Set();
|
|
57
|
+
debounceTimer = null;
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new ProjectTaskWatcherService.
|
|
60
|
+
*
|
|
61
|
+
* @param projectPath - Absolute path to the project root
|
|
62
|
+
*/
|
|
63
|
+
constructor(projectPath) {
|
|
64
|
+
this.logger = LoggerService.getInstance().createComponentLogger('ProjectTaskWatcher');
|
|
65
|
+
this.projectPath = projectPath;
|
|
66
|
+
this.tasksBaseDir = path.join(projectPath, '.crewly', 'tasks');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Starts watching for new ProjectTask files and performs an initial sync.
|
|
70
|
+
*
|
|
71
|
+
* 1. Ensures the tasks directory exists
|
|
72
|
+
* 2. Scans all existing open/in_progress tasks and creates missing WorkItems
|
|
73
|
+
* 3. Starts a chokidar watcher for live file creation events
|
|
74
|
+
*/
|
|
75
|
+
async start() {
|
|
76
|
+
try {
|
|
77
|
+
await ensureDir(this.tasksBaseDir);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
this.logger.warn('Tasks directory does not exist and cannot be created', {
|
|
81
|
+
tasksBaseDir: this.tasksBaseDir,
|
|
82
|
+
});
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// Step 1: Initial sync — scan existing task files
|
|
86
|
+
await this.syncExistingTasks();
|
|
87
|
+
// Step 2: Start live watcher
|
|
88
|
+
this.startWatcher();
|
|
89
|
+
this.logger.info('ProjectTaskWatcherService started', {
|
|
90
|
+
tasksBaseDir: this.tasksBaseDir,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Scans all milestone directories for open/in_progress task files
|
|
95
|
+
* and creates WorkItems for any that don't already exist in the TaskPool.
|
|
96
|
+
*/
|
|
97
|
+
async syncExistingTasks() {
|
|
98
|
+
try {
|
|
99
|
+
const entries = await fs.readdir(this.tasksBaseDir, { withFileTypes: true });
|
|
100
|
+
const milestones = entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
101
|
+
let synced = 0;
|
|
102
|
+
for (const milestone of milestones) {
|
|
103
|
+
for (const statusFolder of ACTIONABLE_STATUS_FOLDERS) {
|
|
104
|
+
const dir = path.join(this.tasksBaseDir, milestone, statusFolder);
|
|
105
|
+
let files;
|
|
106
|
+
try {
|
|
107
|
+
files = await fs.readdir(dir);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Directory doesn't exist — skip
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
for (const file of files) {
|
|
114
|
+
if (!file.endsWith('.md'))
|
|
115
|
+
continue;
|
|
116
|
+
const filePath = path.join(dir, file);
|
|
117
|
+
const created = await this.ensureWorkItemForTask(filePath, milestone, statusFolder);
|
|
118
|
+
if (created)
|
|
119
|
+
synced++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (synced > 0) {
|
|
124
|
+
this.logger.info('Initial sync created WorkItems for existing tasks', {
|
|
125
|
+
count: synced,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
this.logger.warn('Initial task sync failed (non-fatal)', {
|
|
131
|
+
error: err instanceof Error ? err.message : String(err),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Starts the chokidar file watcher on the tasks directory.
|
|
137
|
+
* Watches for new `.md` files in any `open/` or `in_progress/` subdirectory.
|
|
138
|
+
*/
|
|
139
|
+
startWatcher() {
|
|
140
|
+
// Watch pattern: .crewly/tasks/*/{open,in_progress}/*.md
|
|
141
|
+
const watchPattern = path.join(this.tasksBaseDir, '**', '*.md');
|
|
142
|
+
this.watcher = chokidar.watch(watchPattern, {
|
|
143
|
+
ignoreInitial: true,
|
|
144
|
+
persistent: true,
|
|
145
|
+
depth: 3,
|
|
146
|
+
awaitWriteFinish: {
|
|
147
|
+
stabilityThreshold: 300,
|
|
148
|
+
pollInterval: 100,
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
this.watcher.on('add', (filePath) => {
|
|
152
|
+
this.onFileAdded(filePath);
|
|
153
|
+
});
|
|
154
|
+
this.watcher.on('error', (err) => {
|
|
155
|
+
this.logger.warn('File watcher error (non-fatal)', {
|
|
156
|
+
error: err.message,
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Handles a newly detected task file. Debounces rapid creation events.
|
|
162
|
+
*
|
|
163
|
+
* @param filePath - Absolute path to the new task file
|
|
164
|
+
*/
|
|
165
|
+
onFileAdded(filePath) {
|
|
166
|
+
// Only process files in actionable status folders
|
|
167
|
+
const relative = path.relative(this.tasksBaseDir, filePath);
|
|
168
|
+
const parts = relative.split(path.sep);
|
|
169
|
+
// Expected structure: {milestone}/{statusFolder}/{filename}.md
|
|
170
|
+
if (parts.length < 3)
|
|
171
|
+
return;
|
|
172
|
+
const statusFolder = parts[parts.length - 2];
|
|
173
|
+
if (!ACTIONABLE_STATUS_FOLDERS.includes(statusFolder))
|
|
174
|
+
return;
|
|
175
|
+
this.pendingFiles.add(filePath);
|
|
176
|
+
this.scheduleDebouncedSync();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Schedules a debounced batch sync of pending files.
|
|
180
|
+
*/
|
|
181
|
+
scheduleDebouncedSync() {
|
|
182
|
+
if (this.debounceTimer) {
|
|
183
|
+
clearTimeout(this.debounceTimer);
|
|
184
|
+
}
|
|
185
|
+
this.debounceTimer = setTimeout(async () => {
|
|
186
|
+
const files = Array.from(this.pendingFiles);
|
|
187
|
+
this.pendingFiles.clear();
|
|
188
|
+
for (const filePath of files) {
|
|
189
|
+
try {
|
|
190
|
+
const relative = path.relative(this.tasksBaseDir, filePath);
|
|
191
|
+
const parts = relative.split(path.sep);
|
|
192
|
+
const milestone = parts[0];
|
|
193
|
+
const statusFolder = parts[parts.length - 2];
|
|
194
|
+
await this.ensureWorkItemForTask(filePath, milestone, statusFolder, { skipStalenessCheck: true });
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
this.logger.warn('Failed to process new task file (non-fatal)', {
|
|
198
|
+
filePath,
|
|
199
|
+
error: err instanceof Error ? err.message : String(err),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}, WATCHER_DEBOUNCE_MS);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Ensures a WorkItem exists in the TaskPool for the given ProjectTask file.
|
|
207
|
+
* If one already exists (matched by projectTaskId), this is a no-op.
|
|
208
|
+
*
|
|
209
|
+
* @param filePath - Absolute path to the task .md file
|
|
210
|
+
* @param milestone - The milestone directory name
|
|
211
|
+
* @param statusFolder - The status folder name ('open' or 'in_progress')
|
|
212
|
+
* @returns True if a new WorkItem was created, false if already existed
|
|
213
|
+
*/
|
|
214
|
+
async ensureWorkItemForTask(filePath, milestone, statusFolder, options) {
|
|
215
|
+
try {
|
|
216
|
+
const parsed = await parseProjectTaskFile(filePath, milestone, statusFolder);
|
|
217
|
+
if (!parsed)
|
|
218
|
+
return false;
|
|
219
|
+
// Staleness check: skip old files during initial sync to prevent
|
|
220
|
+
// re-creating WorkItems for long-abandoned tasks on every restart
|
|
221
|
+
if (!options?.skipStalenessCheck) {
|
|
222
|
+
try {
|
|
223
|
+
const stat = await fs.stat(filePath);
|
|
224
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
225
|
+
if (ageMs > STARTUP_SYNC_MAX_AGE_MS) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// If we can't stat the file, skip it
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
const taskPool = TaskPoolService.getInstance();
|
|
235
|
+
const existing = await taskPool.getAllItems();
|
|
236
|
+
// Dedup: check if a WorkItem with this projectTaskId already exists
|
|
237
|
+
if (existing.some((wi) => wi.projectTaskId === parsed.taskId)) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
const workItem = createWorkItem({
|
|
241
|
+
type: 'project_task',
|
|
242
|
+
owner: parsed.assignedTo ? 'agent' : 'orchestrator',
|
|
243
|
+
target: parsed.assignedTo,
|
|
244
|
+
title: parsed.title,
|
|
245
|
+
description: parsed.description.substring(0, 500),
|
|
246
|
+
projectTaskId: parsed.taskId,
|
|
247
|
+
maxRetries: 2,
|
|
248
|
+
});
|
|
249
|
+
await taskPool.addToPool(workItem);
|
|
250
|
+
this.logger.info('WorkItem auto-created from ProjectTask file', {
|
|
251
|
+
workItemId: workItem.id,
|
|
252
|
+
taskId: parsed.taskId,
|
|
253
|
+
milestone: parsed.milestone,
|
|
254
|
+
status: parsed.statusFolder,
|
|
255
|
+
assignedTo: parsed.assignedTo,
|
|
256
|
+
});
|
|
257
|
+
return true;
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
this.logger.warn('ensureWorkItemForTask failed (non-fatal)', {
|
|
261
|
+
filePath,
|
|
262
|
+
error: err instanceof Error ? err.message : String(err),
|
|
263
|
+
});
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Stops the file watcher and cleans up resources.
|
|
269
|
+
*/
|
|
270
|
+
dispose() {
|
|
271
|
+
if (this.debounceTimer) {
|
|
272
|
+
clearTimeout(this.debounceTimer);
|
|
273
|
+
this.debounceTimer = null;
|
|
274
|
+
}
|
|
275
|
+
if (this.watcher) {
|
|
276
|
+
this.watcher.close();
|
|
277
|
+
this.watcher = null;
|
|
278
|
+
}
|
|
279
|
+
this.pendingFiles.clear();
|
|
280
|
+
this.logger.info('ProjectTaskWatcherService disposed');
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// ---------------------------------------------------------------------------
|
|
284
|
+
// Parser
|
|
285
|
+
// ---------------------------------------------------------------------------
|
|
286
|
+
/**
|
|
287
|
+
* Parses a ProjectTask markdown file to extract metadata.
|
|
288
|
+
*
|
|
289
|
+
* Extracts:
|
|
290
|
+
* - Title from first H1 heading or filename
|
|
291
|
+
* - Priority from `**Priority**: ...` line
|
|
292
|
+
* - AssignedTo from `**Assigned to**: ...` line
|
|
293
|
+
*
|
|
294
|
+
* @param filePath - Absolute path to the .md file
|
|
295
|
+
* @param milestone - Milestone directory name
|
|
296
|
+
* @param statusFolder - Status folder name
|
|
297
|
+
* @returns Parsed task metadata, or null if the file is unreadable
|
|
298
|
+
*/
|
|
299
|
+
export async function parseProjectTaskFile(filePath, milestone, statusFolder) {
|
|
300
|
+
try {
|
|
301
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
302
|
+
const fileName = path.basename(filePath, '.md');
|
|
303
|
+
// Extract title from first H1 heading
|
|
304
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
305
|
+
const title = titleMatch ? titleMatch[1].trim() : fileName;
|
|
306
|
+
// Extract priority
|
|
307
|
+
const priorityMatch = content.match(/\*\*Priority\*\*:\s*(\S+)/i);
|
|
308
|
+
const priority = priorityMatch ? priorityMatch[1].toLowerCase() : 'medium';
|
|
309
|
+
// Extract assigned session name
|
|
310
|
+
const assignedMatch = content.match(/\*\*Assigned to\*\*:\s*(\S+)/i);
|
|
311
|
+
const assignedTo = assignedMatch ? assignedMatch[1] : undefined;
|
|
312
|
+
return {
|
|
313
|
+
taskId: fileName,
|
|
314
|
+
title,
|
|
315
|
+
description: content,
|
|
316
|
+
priority,
|
|
317
|
+
milestone,
|
|
318
|
+
statusFolder,
|
|
319
|
+
assignedTo,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=project-task-watcher.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-task-watcher.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/project-task-watcher.service.ts"],"names":[],"mappings":"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"}
|