crewly 1.8.7 → 1.8.9

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.
Files changed (165) hide show
  1. package/dist/backend/backend/src/constants.d.ts +12 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +12 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  6. package/dist/backend/backend/src/controllers/browser/browser.controller.js +17 -0
  7. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  8. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +8 -1
  10. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  11. package/dist/backend/backend/src/index.d.ts.map +1 -1
  12. package/dist/backend/backend/src/index.js +15 -7
  13. package/dist/backend/backend/src/index.js.map +1 -1
  14. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +7 -0
  15. package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/browser/browser-bridge.service.js +69 -12
  17. package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
  18. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +122 -1
  19. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  20. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +252 -17
  21. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  22. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts +37 -3
  23. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts.map +1 -1
  24. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js +140 -23
  25. package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js.map +1 -1
  26. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +75 -0
  27. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  28. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +164 -12
  29. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  30. package/dist/cli/backend/src/constants.d.ts +12 -0
  31. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  32. package/dist/cli/backend/src/constants.js +12 -0
  33. package/dist/cli/backend/src/constants.js.map +1 -1
  34. package/dist/cli/cli/src/index.js +0 -0
  35. package/package.json +1 -1
  36. package/config/constants.d.ts.map +0 -1
  37. package/config/index.d.ts.map +0 -1
  38. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +0 -169
  39. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +0 -1
  40. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +0 -1779
  41. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +0 -1
  42. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +0 -513
  43. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +0 -1
  44. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +0 -1568
  45. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +0 -1
  46. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +0 -86
  47. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +0 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +0 -147
  49. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +0 -1
  50. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +0 -68
  51. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +0 -1
  52. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +0 -131
  53. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +0 -1
  54. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +0 -130
  55. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +0 -1
  56. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +0 -263
  57. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +0 -1
  58. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +0 -74
  59. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +0 -1
  60. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +0 -140
  61. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +0 -1
  62. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +0 -29
  63. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +0 -1
  64. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +0 -279
  65. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +0 -1
  66. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +0 -340
  67. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +0 -1
  68. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +0 -1176
  69. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +0 -1
  70. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +0 -79
  71. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +0 -1
  72. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +0 -145
  73. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +0 -1
  74. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +0 -79
  75. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +0 -1
  76. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +0 -218
  77. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +0 -1
  78. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +0 -16
  79. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +0 -1
  80. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +0 -16
  81. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +0 -1
  82. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +0 -135
  83. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +0 -1
  84. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +0 -185
  85. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +0 -1
  86. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +0 -141
  87. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +0 -1
  88. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +0 -310
  89. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +0 -1
  90. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +0 -91
  91. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +0 -1
  92. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +0 -143
  93. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +0 -1
  94. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +0 -103
  95. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +0 -1
  96. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +0 -256
  97. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +0 -1
  98. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +0 -143
  99. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +0 -1
  100. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +0 -264
  101. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +0 -1
  102. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +0 -13
  103. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +0 -1
  104. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +0 -91
  105. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +0 -1
  106. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +0 -135
  107. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +0 -1
  108. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +0 -1937
  109. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +0 -1
  110. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +0 -429
  111. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +0 -1
  112. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +0 -852
  113. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +0 -1
  114. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +0 -171
  115. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
  116. package/dist/backend/backend/src/services/project/task-tracking.service.js +0 -725
  117. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +0 -1
  118. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +0 -118
  119. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +0 -1
  120. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +0 -326
  121. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +0 -1
  122. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +0 -74
  123. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +0 -1
  124. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +0 -154
  125. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +0 -1
  126. package/dist/backend/backend/src/types/auto-assign.types.d.ts +0 -271
  127. package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +0 -1
  128. package/dist/backend/backend/src/types/auto-assign.types.js +0 -136
  129. package/dist/backend/backend/src/types/auto-assign.types.js.map +0 -1
  130. package/dist/backend/backend/src/utils/esm-require.utils.d.ts +0 -111
  131. package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +0 -1
  132. package/dist/backend/backend/src/utils/esm-require.utils.js +0 -124
  133. package/dist/backend/backend/src/utils/esm-require.utils.js.map +0 -1
  134. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +0 -220
  135. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +0 -1
  136. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +0 -37
  137. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +0 -1
  138. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
  139. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
  140. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
  141. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
  142. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts +0 -159
  143. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -1
  144. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js +0 -304
  145. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js.map +0 -1
  146. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +0 -115
  147. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +0 -1
  148. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +0 -215
  149. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +0 -1
  150. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +0 -78
  151. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +0 -1
  152. package/dist/cli/backend/src/services/memory/embedding-provider.js +0 -179
  153. package/dist/cli/backend/src/services/memory/embedding-provider.js.map +0 -1
  154. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +0 -331
  155. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +0 -1
  156. package/dist/cli/backend/src/services/memory/vector-store.service.js +0 -814
  157. package/dist/cli/backend/src/services/memory/vector-store.service.js.map +0 -1
  158. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +0 -171
  159. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
  160. package/dist/cli/backend/src/services/project/task-tracking.service.js +0 -725
  161. package/dist/cli/backend/src/services/project/task-tracking.service.js.map +0 -1
  162. package/dist/cli/backend/src/types/auto-assign.types.d.ts +0 -271
  163. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +0 -1
  164. package/dist/cli/backend/src/types/auto-assign.types.js +0 -136
  165. package/dist/cli/backend/src/types/auto-assign.types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-tracking.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project/task-tracking.service.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,326 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,74 +0,0 @@
1
- /**
2
- * WikiChatSubscriberService — listens on chat-v2's `chat_message` event
3
- * and fires `WikiIngestService.ingest` for every user-authored message.
4
- *
5
- * Phase A (rules-only routing):
6
- * senderType === 'user' → ingest into the Crewly project vault.
7
- * senderType === 'agent' | 'system' → skip.
8
- *
9
- * Phase B (per spec §4.5) will replace the project-only routing with an
10
- * LLM-driven gate that picks team / project / global per source.
11
- *
12
- * Failure mode is FIRE-AND-FORGET: a malformed message, missing schema,
13
- * or filesystem error MUST NOT block the live chat flow. Errors are
14
- * logged at warn-level and swallowed.
15
- *
16
- * @module services/wiki/wiki-chat-subscriber.service
17
- */
18
- import type { ChatV2Service } from '../chat-v2/chat-v2.service.js';
19
- import { WikiIngestService } from './wiki-ingest.service.js';
20
- /**
21
- * Shape we consume from chat-v2's `chat_message` payload. Kept narrow so
22
- * we don't take a heavy structural dep on the wire DTO; matches the
23
- * fields produced by `toMessageDTO` (chat-v2.service.ts:1537).
24
- */
25
- interface MinimalChatMessageDTO {
26
- id: string;
27
- channelId: string;
28
- senderType: 'user' | 'agent' | 'system';
29
- senderId: string;
30
- content: string;
31
- contentType: string;
32
- createdAt: string | number;
33
- }
34
- export interface WikiChatSubscriberOptions {
35
- /** chat-v2 singleton — `getChatV2Service()` at composition root. */
36
- chatService: ChatV2Service;
37
- /** Absolute path to the project vault. Default falls back to env / well-known location. */
38
- projectVaultPath?: string;
39
- /** Optional override for tests. */
40
- ingestService?: WikiIngestService;
41
- }
42
- /**
43
- * Process-singleton subscriber. Call `start()` once at server boot,
44
- * `stop()` at shutdown.
45
- */
46
- export declare class WikiChatSubscriberService {
47
- private readonly logger;
48
- private readonly chatService;
49
- private readonly projectVaultPath;
50
- private readonly ingestService;
51
- private boundHandler;
52
- private started;
53
- constructor(opts: WikiChatSubscriberOptions);
54
- /**
55
- * Subscribe to `chat_message`. Idempotent — calling start() twice
56
- * leaves a single listener.
57
- */
58
- start(): void;
59
- /** Detach. Safe to call when not started. */
60
- stop(): void;
61
- /**
62
- * Handle a single chat message. Public for tests.
63
- */
64
- handle(dto: MinimalChatMessageDTO): Promise<void>;
65
- /**
66
- * Decide whether a chat-v2 message should drive a wiki write.
67
- * Public for tests; logic is conservative — only ingest user-authored
68
- * text messages, skip agents/system, mentions-only pings, and slash
69
- * commands.
70
- */
71
- isIngestable(dto: MinimalChatMessageDTO): boolean;
72
- }
73
- export {};
74
- //# sourceMappingURL=wiki-chat-subscriber.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wiki-chat-subscriber.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-chat-subscriber.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAsB,MAAM,0BAA0B,CAAC;AAEjF;;;;GAIG;AACH,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,oEAAoE;IACpE,WAAW,EAAE,aAAa,CAAC;IAC3B,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,YAAY,CAAuD;IAC3E,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,yBAAyB;IAO3C;;;OAGG;IACH,KAAK,IAAI,IAAI;IAgBb,6CAA6C;IAC7C,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDvD;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO;CAYlD"}