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.
- package/dist/backend/backend/src/constants.d.ts +12 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +12 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/browser/browser.controller.js +17 -0
- package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +8 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +15 -7
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts +7 -0
- package/dist/backend/backend/src/services/browser/browser-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js +69 -12
- package/dist/backend/backend/src/services/browser/browser-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +122 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +252 -17
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts +37 -3
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js +140 -23
- package/dist/backend/backend/src/services/browser/browser-relay-adapter.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +75 -0
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +164 -12
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +12 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +12 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/cli/src/index.js +0 -0
- package/package.json +1 -1
- package/config/constants.d.ts.map +0 -1
- package/config/index.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +0 -169
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +0 -1
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +0 -1779
- package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +0 -513
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +0 -1568
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +0 -86
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +0 -147
- package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +0 -68
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +0 -131
- package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +0 -130
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +0 -263
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +0 -74
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +0 -140
- package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +0 -29
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +0 -279
- package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +0 -340
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +0 -1176
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +0 -79
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +0 -145
- package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +0 -79
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +0 -218
- package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +0 -16
- package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js +0 -16
- package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +0 -135
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +0 -185
- package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +0 -141
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +0 -310
- package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +0 -91
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +0 -143
- package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +0 -103
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +0 -256
- package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +0 -143
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +0 -264
- package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +0 -13
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +0 -91
- package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +0 -135
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +0 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +0 -1937
- package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +0 -1
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +0 -429
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +0 -852
- package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +0 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +0 -171
- package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/project/task-tracking.service.js +0 -725
- package/dist/backend/backend/src/services/project/task-tracking.service.js.map +0 -1
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +0 -118
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +0 -326
- package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +0 -1
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +0 -74
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +0 -1
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +0 -154
- package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +0 -1
- package/dist/backend/backend/src/types/auto-assign.types.d.ts +0 -271
- package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +0 -1
- package/dist/backend/backend/src/types/auto-assign.types.js +0 -136
- package/dist/backend/backend/src/types/auto-assign.types.js.map +0 -1
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts +0 -111
- package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +0 -1
- package/dist/backend/backend/src/utils/esm-require.utils.js +0 -124
- package/dist/backend/backend/src/utils/esm-require.utils.js.map +0 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +0 -220
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +0 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +0 -37
- package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +0 -1
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +0 -56
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +0 -1
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +0 -91
- package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +0 -1
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts +0 -159
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts.map +0 -1
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.js +0 -304
- package/dist/cli/backend/src/services/knowledge/learnings-index.service.js.map +0 -1
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +0 -115
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +0 -1
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +0 -215
- package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +0 -1
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +0 -78
- package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +0 -1
- package/dist/cli/backend/src/services/memory/embedding-provider.js +0 -179
- package/dist/cli/backend/src/services/memory/embedding-provider.js.map +0 -1
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +0 -331
- package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +0 -1
- package/dist/cli/backend/src/services/memory/vector-store.service.js +0 -814
- package/dist/cli/backend/src/services/memory/vector-store.service.js.map +0 -1
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +0 -171
- package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +0 -1
- package/dist/cli/backend/src/services/project/task-tracking.service.js +0 -725
- package/dist/cli/backend/src/services/project/task-tracking.service.js.map +0 -1
- package/dist/cli/backend/src/types/auto-assign.types.d.ts +0 -271
- package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +0 -1
- package/dist/cli/backend/src/types/auto-assign.types.js +0 -136
- 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"}
|