spidersan 0.4.3 → 0.5.0

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 (172) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/README.md +95 -23
  3. package/dist/bin/spidersan.d.ts.map +1 -1
  4. package/dist/bin/spidersan.js +22 -2
  5. package/dist/bin/spidersan.js.map +1 -1
  6. package/dist/commands/abandon.d.ts.map +1 -1
  7. package/dist/commands/abandon.js +4 -2
  8. package/dist/commands/abandon.js.map +1 -1
  9. package/dist/commands/auto.js +6 -6
  10. package/dist/commands/auto.js.map +1 -1
  11. package/dist/commands/cleanup.d.ts.map +1 -1
  12. package/dist/commands/cleanup.js +3 -8
  13. package/dist/commands/cleanup.js.map +1 -1
  14. package/dist/commands/config.d.ts +7 -0
  15. package/dist/commands/config.d.ts.map +1 -1
  16. package/dist/commands/config.js +12 -0
  17. package/dist/commands/config.js.map +1 -1
  18. package/dist/commands/conflicts.d.ts.map +1 -1
  19. package/dist/commands/conflicts.js +238 -34
  20. package/dist/commands/conflicts.js.map +1 -1
  21. package/dist/commands/cross-conflicts.d.ts +17 -0
  22. package/dist/commands/cross-conflicts.d.ts.map +1 -0
  23. package/dist/commands/cross-conflicts.js +305 -0
  24. package/dist/commands/cross-conflicts.js.map +1 -0
  25. package/dist/commands/daily.d.ts +7 -0
  26. package/dist/commands/daily.d.ts.map +1 -0
  27. package/dist/commands/daily.js +171 -0
  28. package/dist/commands/daily.js.map +1 -0
  29. package/dist/commands/dashboard.d.ts +22 -0
  30. package/dist/commands/dashboard.d.ts.map +1 -0
  31. package/dist/commands/dashboard.js +401 -0
  32. package/dist/commands/dashboard.js.map +1 -0
  33. package/dist/commands/depends.js +2 -2
  34. package/dist/commands/depends.js.map +1 -1
  35. package/dist/commands/doctor.d.ts +22 -0
  36. package/dist/commands/doctor.d.ts.map +1 -1
  37. package/dist/commands/doctor.js +215 -14
  38. package/dist/commands/doctor.js.map +1 -1
  39. package/dist/commands/github-sync.d.ts +9 -0
  40. package/dist/commands/github-sync.d.ts.map +1 -0
  41. package/dist/commands/github-sync.js +180 -0
  42. package/dist/commands/github-sync.js.map +1 -0
  43. package/dist/commands/index.d.ts +11 -0
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +17 -0
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/log.d.ts +3 -4
  48. package/dist/commands/log.d.ts.map +1 -1
  49. package/dist/commands/log.js +102 -87
  50. package/dist/commands/log.js.map +1 -1
  51. package/dist/commands/merge-order.js +8 -1
  52. package/dist/commands/merge-order.js.map +1 -1
  53. package/dist/commands/merged.d.ts.map +1 -1
  54. package/dist/commands/merged.js +4 -2
  55. package/dist/commands/merged.js.map +1 -1
  56. package/dist/commands/pulse.d.ts +6 -2
  57. package/dist/commands/pulse.d.ts.map +1 -1
  58. package/dist/commands/pulse.js +152 -202
  59. package/dist/commands/pulse.js.map +1 -1
  60. package/dist/commands/queen.d.ts +25 -0
  61. package/dist/commands/queen.d.ts.map +1 -0
  62. package/dist/commands/queen.js +309 -0
  63. package/dist/commands/queen.js.map +1 -0
  64. package/dist/commands/ready-check.d.ts +1 -0
  65. package/dist/commands/ready-check.d.ts.map +1 -1
  66. package/dist/commands/ready-check.js +43 -28
  67. package/dist/commands/ready-check.js.map +1 -1
  68. package/dist/commands/rebase-helper.d.ts +3 -0
  69. package/dist/commands/rebase-helper.d.ts.map +1 -0
  70. package/dist/commands/rebase-helper.js +52 -0
  71. package/dist/commands/rebase-helper.js.map +1 -0
  72. package/dist/commands/register.d.ts +2 -0
  73. package/dist/commands/register.d.ts.map +1 -1
  74. package/dist/commands/register.js +66 -10
  75. package/dist/commands/register.js.map +1 -1
  76. package/dist/commands/registry-sync.d.ts +9 -0
  77. package/dist/commands/registry-sync.d.ts.map +1 -0
  78. package/dist/commands/registry-sync.js +163 -0
  79. package/dist/commands/registry-sync.js.map +1 -0
  80. package/dist/commands/rescue.d.ts.map +1 -1
  81. package/dist/commands/rescue.js +69 -12
  82. package/dist/commands/rescue.js.map +1 -1
  83. package/dist/commands/stale.d.ts +16 -0
  84. package/dist/commands/stale.d.ts.map +1 -1
  85. package/dist/commands/stale.js +55 -21
  86. package/dist/commands/stale.js.map +1 -1
  87. package/dist/commands/sync-advisor.d.ts +14 -0
  88. package/dist/commands/sync-advisor.d.ts.map +1 -0
  89. package/dist/commands/sync-advisor.js +110 -0
  90. package/dist/commands/sync-advisor.js.map +1 -0
  91. package/dist/commands/sync.d.ts.map +1 -1
  92. package/dist/commands/sync.js +16 -5
  93. package/dist/commands/sync.js.map +1 -1
  94. package/dist/commands/torrent.d.ts.map +1 -1
  95. package/dist/commands/torrent.js +45 -22
  96. package/dist/commands/torrent.js.map +1 -1
  97. package/dist/commands/watch.d.ts.map +1 -1
  98. package/dist/commands/watch.js +198 -7
  99. package/dist/commands/watch.js.map +1 -1
  100. package/dist/lib/activity.d.ts +53 -0
  101. package/dist/lib/activity.d.ts.map +1 -0
  102. package/dist/lib/activity.js +267 -0
  103. package/dist/lib/activity.js.map +1 -0
  104. package/dist/lib/agent-errors.d.ts.map +1 -1
  105. package/dist/lib/agent-errors.js +3 -1
  106. package/dist/lib/agent-errors.js.map +1 -1
  107. package/dist/lib/ast.d.ts.map +1 -1
  108. package/dist/lib/ast.js +66 -19
  109. package/dist/lib/ast.js.map +1 -1
  110. package/dist/lib/colony-subscriber.d.ts +53 -0
  111. package/dist/lib/colony-subscriber.d.ts.map +1 -0
  112. package/dist/lib/colony-subscriber.js +184 -0
  113. package/dist/lib/colony-subscriber.js.map +1 -0
  114. package/dist/lib/config.d.ts +1 -0
  115. package/dist/lib/config.d.ts.map +1 -1
  116. package/dist/lib/config.js +7 -3
  117. package/dist/lib/config.js.map +1 -1
  118. package/dist/lib/crypto.d.ts.map +1 -1
  119. package/dist/lib/crypto.js +7 -3
  120. package/dist/lib/crypto.js.map +1 -1
  121. package/dist/lib/daily-bridge.d.ts +41 -0
  122. package/dist/lib/daily-bridge.d.ts.map +1 -0
  123. package/dist/lib/daily-bridge.js +185 -0
  124. package/dist/lib/daily-bridge.js.map +1 -0
  125. package/dist/lib/github.d.ts +83 -0
  126. package/dist/lib/github.d.ts.map +1 -0
  127. package/dist/lib/github.js +206 -0
  128. package/dist/lib/github.js.map +1 -0
  129. package/dist/lib/repo-scanner.d.ts +36 -0
  130. package/dist/lib/repo-scanner.d.ts.map +1 -0
  131. package/dist/lib/repo-scanner.js +159 -0
  132. package/dist/lib/repo-scanner.js.map +1 -0
  133. package/dist/lib/salvage-analyzer.d.ts +29 -0
  134. package/dist/lib/salvage-analyzer.d.ts.map +1 -0
  135. package/dist/lib/salvage-analyzer.js +122 -0
  136. package/dist/lib/salvage-analyzer.js.map +1 -0
  137. package/dist/lib/security.d.ts +15 -8
  138. package/dist/lib/security.d.ts.map +1 -1
  139. package/dist/lib/security.js +36 -1
  140. package/dist/lib/security.js.map +1 -1
  141. package/dist/lib/symbol-extractor.d.ts +41 -0
  142. package/dist/lib/symbol-extractor.d.ts.map +1 -0
  143. package/dist/lib/symbol-extractor.js +78 -0
  144. package/dist/lib/symbol-extractor.js.map +1 -0
  145. package/dist/storage/adapter.d.ts +1 -1
  146. package/dist/storage/adapter.d.ts.map +1 -1
  147. package/dist/storage/git-messages.d.ts.map +1 -1
  148. package/dist/storage/git-messages.js +57 -53
  149. package/dist/storage/git-messages.js.map +1 -1
  150. package/dist/storage/local.d.ts +1 -1
  151. package/dist/storage/local.d.ts.map +1 -1
  152. package/dist/storage/local.js +7 -5
  153. package/dist/storage/local.js.map +1 -1
  154. package/dist/storage/mycmail-adapter.d.ts.map +1 -1
  155. package/dist/storage/mycmail-adapter.js +11 -6
  156. package/dist/storage/mycmail-adapter.js.map +1 -1
  157. package/dist/storage/supabase.d.ts +21 -1
  158. package/dist/storage/supabase.d.ts.map +1 -1
  159. package/dist/storage/supabase.js +171 -6
  160. package/dist/storage/supabase.js.map +1 -1
  161. package/dist/tui/dashboard.d.ts.map +1 -1
  162. package/dist/tui/dashboard.js +15 -6
  163. package/dist/tui/dashboard.js.map +1 -1
  164. package/dist/types/cloud.d.ts +101 -0
  165. package/dist/types/cloud.d.ts.map +1 -0
  166. package/dist/types/cloud.js +13 -0
  167. package/dist/types/cloud.js.map +1 -0
  168. package/package.json +9 -6
  169. package/dist/commands/sync-all.d.ts +0 -9
  170. package/dist/commands/sync-all.d.ts.map +0 -1
  171. package/dist/commands/sync-all.js +0 -180
  172. package/dist/commands/sync-all.js.map +0 -1
@@ -9,13 +9,25 @@ import { getStorage } from '../storage/index.js';
9
9
  import { spawnSync } from 'child_process';
10
10
  import { existsSync, readFileSync, appendFileSync } from 'fs';
11
11
  import { resolve } from 'path';
12
+ import { validateAgentId, validateBranchName } from '../lib/security.js';
12
13
  /**
13
14
  * Send notification to agent via mycmail
15
+ * ⚡ Bolt: Batched notifications to avoid N+1 slow spawnSync calls
14
16
  */
15
- function notifyAgentViaMycmail(agentId, branchName, daysOld) {
17
+ export function notifyAgentViaMycmail(agentId, branches) {
18
+ if (branches.length === 0)
19
+ return true;
16
20
  try {
17
- const subject = `⚠️ Stale branch: ${branchName}`;
18
- const message = `Your branch "${branchName}" has been inactive for ${daysOld} days.\n\nActions:\n- Run: spidersan cleanup\n- Or resume work and push updates`;
21
+ // Security: Validate inputs
22
+ validateAgentId(agentId);
23
+ for (const b of branches) {
24
+ validateBranchName(b.name);
25
+ }
26
+ const subject = branches.length === 1
27
+ ? `⚠️ Stale branch: ${branches[0].name}`
28
+ : `⚠️ ${branches.length} Stale branches`;
29
+ const branchList = branches.map(b => `- "${b.name}" (${b.daysOld} days inactive)`).join('\n');
30
+ const message = `You have ${branches.length} stale branch(es):\n\n${branchList}\n\nActions:\n- Run: spidersan cleanup\n- Or resume work and push updates`;
19
31
  const result = spawnSync('mycmail', [
20
32
  'send',
21
33
  agentId,
@@ -34,9 +46,17 @@ function notifyAgentViaMycmail(agentId, branchName, daysOld) {
34
46
  }
35
47
  /**
36
48
  * Update agent's .pending_task.md file
49
+ * ⚡ Bolt: Batched updates to avoid N+1 file I/O
37
50
  */
38
- function updatePendingTaskFile(agentId, branchName, daysOld) {
51
+ export function updatePendingTaskFile(agentId, branches) {
52
+ if (branches.length === 0)
53
+ return true;
39
54
  try {
55
+ // Security: Validate inputs
56
+ validateAgentId(agentId);
57
+ for (const b of branches) {
58
+ validateBranchName(b.name);
59
+ }
40
60
  // Try common locations for .pending_task.md
41
61
  const possiblePaths = [
42
62
  resolve(process.cwd(), '.pending_task.md'),
@@ -54,14 +74,17 @@ function updatePendingTaskFile(agentId, branchName, daysOld) {
54
74
  if (!taskFilePath) {
55
75
  return false;
56
76
  }
57
- const entry = `- [ ] 🕷️ Stale branch: \`${branchName}\` (${daysOld}d inactive) - run \`spidersan cleanup\`\n`;
58
- // Read file and check if entry already exists
59
77
  const content = readFileSync(taskFilePath, 'utf-8');
60
- if (content.includes(branchName)) {
61
- return true; // Already notified
78
+ let newEntries = '';
79
+ for (const b of branches) {
80
+ // Check if entry already exists
81
+ if (!content.includes(b.name)) {
82
+ newEntries += `- [ ] 🕷️ Stale branch: \`${b.name}\` (${b.daysOld}d inactive) - run \`spidersan cleanup\`\n`;
83
+ }
84
+ }
85
+ if (newEntries.length > 0) {
86
+ appendFileSync(taskFilePath, newEntries, 'utf-8');
62
87
  }
63
- // Append to the file
64
- appendFileSync(taskFilePath, entry, 'utf-8');
65
88
  return true;
66
89
  }
67
90
  catch {
@@ -72,6 +95,7 @@ export const staleCommand = new Command('stale')
72
95
  .description('Show stale branches (not updated recently)')
73
96
  .option('--days <n>', 'Days threshold for staleness', '7')
74
97
  .option('--notify', 'Send notifications to branch owners')
98
+ .option('--auto-cleanup', 'Automatically remove stale branches after listing')
75
99
  .option('--json', 'Output as JSON')
76
100
  .action(async (options) => {
77
101
  const storage = await getStorage();
@@ -117,22 +141,32 @@ export const staleCommand = new Command('stale')
117
141
  for (const [agent, branches] of byAgent) {
118
142
  if (agent === 'unknown')
119
143
  continue;
120
- for (const branch of branches) {
121
- const age = Math.floor((Date.now() - new Date(branch.registeredAt).getTime()) / 86400000);
122
- // Try mycmail notification
123
- if (notifyAgentViaMycmail(agent, branch.name, age)) {
124
- mycmailSuccess++;
125
- }
126
- // Try .pending_task.md update
127
- if (updatePendingTaskFile(agent, branch.name, age)) {
128
- fileSuccess++;
129
- }
144
+ // Bolt: Batch notification per agent to avoid N+1 slow calls
145
+ const branchData = branches.map(branch => ({
146
+ name: branch.name,
147
+ daysOld: Math.floor((Date.now() - new Date(branch.registeredAt).getTime()) / 86400000)
148
+ }));
149
+ // Try mycmail notification
150
+ if (notifyAgentViaMycmail(agent, branchData)) {
151
+ mycmailSuccess += branches.length;
152
+ }
153
+ // Try .pending_task.md update
154
+ if (updatePendingTaskFile(agent, branchData)) {
155
+ fileSuccess += branches.length;
130
156
  }
131
157
  }
132
158
  console.log(`✅ Notifications sent:`);
133
159
  console.log(` - Mycmail: ${mycmailSuccess}/${stale.length}`);
134
160
  console.log(` - File updates: ${fileSuccess}/${stale.length}`);
135
161
  }
136
- console.log(`\nRun 'spidersan cleanup' to remove these.`);
162
+ if (options.autoCleanup) {
163
+ console.log(`\n🗑️ Auto-cleaning ${stale.length} stale branch(es)...`);
164
+ const removedNames = await storage.cleanup(threshold);
165
+ removedNames.forEach(name => console.log(` Removed: ${name}`));
166
+ console.log(`✅ Cleaned up ${removedNames.length} branch(es).`);
167
+ }
168
+ else {
169
+ console.log(`\nRun 'spidersan cleanup' to remove these.`);
170
+ }
137
171
  });
138
172
  //# sourceMappingURL=stale.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stale.js","sourceRoot":"","sources":["../../src/commands/stale.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stale.js","sourceRoot":"","sources":["../../src/commands/stale.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * spidersan sync-advisor
3
+ *
4
+ * Scan all repos and recommend push/pull/cleanup actions.
5
+ *
6
+ * Usage:
7
+ * spidersan sync-advisor
8
+ * spidersan sync-advisor --dir ~/Dev
9
+ * spidersan sync-advisor --repo /path/to/repo
10
+ * spidersan sync-advisor --json
11
+ */
12
+ import { Command } from 'commander';
13
+ export declare function syncAdvisorCommand(): Command;
14
+ //# sourceMappingURL=sync-advisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-advisor.d.ts","sourceRoot":"","sources":["../../src/commands/sync-advisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,wBAAgB,kBAAkB,IAAI,OAAO,CAqC5C"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * spidersan sync-advisor
3
+ *
4
+ * Scan all repos and recommend push/pull/cleanup actions.
5
+ *
6
+ * Usage:
7
+ * spidersan sync-advisor
8
+ * spidersan sync-advisor --dir ~/Dev
9
+ * spidersan sync-advisor --repo /path/to/repo
10
+ * spidersan sync-advisor --json
11
+ */
12
+ import { Command } from 'commander';
13
+ import { homedir } from 'os';
14
+ import { join } from 'path';
15
+ import { scanAllRepos, scanRepo, generateRecommendations } from '../lib/repo-scanner.js';
16
+ const ICON = {
17
+ push: '🔴',
18
+ pull: '🟠',
19
+ rebase: '🟡',
20
+ conflict: '⚪',
21
+ 'up-to-date': '✅',
22
+ };
23
+ const ACTION_LABEL = {
24
+ push: 'PUSH',
25
+ pull: 'PULL',
26
+ rebase: 'REBASE',
27
+ conflict: 'DIRTY',
28
+ 'up-to-date': 'OK',
29
+ };
30
+ function expandPath(p) {
31
+ return p.startsWith('~') ? join(homedir(), p.slice(1)) : p;
32
+ }
33
+ function formatRow(rec) {
34
+ const icon = ICON[rec.action] || '❓';
35
+ const action = ACTION_LABEL[rec.action] || rec.action.toUpperCase();
36
+ return `${icon} ${rec.repo_name.padEnd(20)} ${rec.branch_name.padEnd(25)} ${action.padEnd(8)} ${rec.reason}`;
37
+ }
38
+ function groupByAction(recs) {
39
+ const groups = {
40
+ push: [], pull: [], rebase: [], conflict: [], 'up-to-date': [],
41
+ };
42
+ for (const rec of recs) {
43
+ (groups[rec.action] ??= []).push(rec);
44
+ }
45
+ return groups;
46
+ }
47
+ function formatTable(recs) {
48
+ const g = groupByAction(recs);
49
+ const lines = [];
50
+ const sections = [
51
+ ['push', '🔴 PUSH NEEDED'],
52
+ ['pull', '🟠 PULL NEEDED'],
53
+ ['rebase', '🟡 REBASE NEEDED'],
54
+ ['conflict', '⚪ DIRTY ONLY'],
55
+ ];
56
+ for (const [key, label] of sections) {
57
+ if (g[key].length > 0) {
58
+ lines.push('', `${label} (${g[key].length}):`);
59
+ for (const rec of g[key])
60
+ lines.push(` ${formatRow(rec)}`);
61
+ }
62
+ }
63
+ if (g['up-to-date'].length > 0) {
64
+ lines.push('', `✅ SYNCED (${g['up-to-date'].length}):`);
65
+ lines.push(` ${g['up-to-date'].map(r => r.repo_name).join(', ')}`);
66
+ }
67
+ lines.push('', `Summary: ${g.push.length} push, ${g.pull.length} pull, ` +
68
+ `${g.rebase.length} rebase, ${g.conflict.length} dirty, ${g['up-to-date'].length} clean`);
69
+ return lines.join('\n');
70
+ }
71
+ export function syncAdvisorCommand() {
72
+ return new Command('sync-advisor')
73
+ .description('Scan repositories and recommend push/pull/cleanup actions')
74
+ .option('--dir <path>', 'Base directory to scan (default: ~/Dev)', join(homedir(), 'Dev'))
75
+ .option('--repo <path>', 'Scan a single repository')
76
+ .option('--json', 'Output as JSON')
77
+ .action(async (options) => {
78
+ try {
79
+ const dir = expandPath(options.dir);
80
+ let recommendations = [];
81
+ if (options.repo) {
82
+ const repoPath = expandPath(options.repo);
83
+ const state = scanRepo(repoPath);
84
+ if (!state) {
85
+ console.error(`❌ Not a git repository: ${repoPath}`);
86
+ process.exit(1);
87
+ }
88
+ recommendations = generateRecommendations([state]);
89
+ }
90
+ else {
91
+ console.log(`\n🕷️ Sync Advisor — scanning ${dir}`);
92
+ const states = scanAllRepos(dir);
93
+ recommendations = generateRecommendations(states);
94
+ console.log(`Found ${states.length} repositories\n`);
95
+ }
96
+ if (options.json) {
97
+ console.log(JSON.stringify(recommendations, null, 2));
98
+ }
99
+ else {
100
+ console.log(formatTable(recommendations));
101
+ console.log('');
102
+ }
103
+ }
104
+ catch (error) {
105
+ console.error(`❌ Error: ${error instanceof Error ? error.message : String(error)}`);
106
+ process.exit(1);
107
+ }
108
+ });
109
+ }
110
+ //# sourceMappingURL=sync-advisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-advisor.js","sourceRoot":"","sources":["../../src/commands/sync-advisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAoClB,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,WAAW,SAsClB,CAAC"}
@@ -4,16 +4,25 @@
4
4
  * Sync local registry with git state.
5
5
  */
6
6
  import { Command } from 'commander';
7
- import { execSync } from 'child_process';
7
+ import { execFileSync } from 'child_process';
8
8
  import { getStorage } from '../storage/index.js';
9
+ import { logActivity } from '../lib/activity.js';
9
10
  function getGitBranches() {
11
+ const branches = new Set();
10
12
  try {
11
- const output = execSync('git branch --format="%(refname:short)"', { encoding: 'utf-8' });
12
- return output.trim().split('\n').filter(Boolean);
13
+ const local = execFileSync('git', ['branch', '--format=%(refname:short)'], { encoding: 'utf-8' });
14
+ local.trim().split('\n').filter(Boolean).forEach(b => branches.add(b));
13
15
  }
14
- catch {
15
- return [];
16
+ catch { /* no local branches */ }
17
+ try {
18
+ const remote = execFileSync('git', ['branch', '-r', '--format=%(refname:short)'], { encoding: 'utf-8' });
19
+ remote.trim().split('\n').filter(Boolean)
20
+ .map(b => b.replace(/^origin\//, ''))
21
+ .filter(b => b !== 'HEAD')
22
+ .forEach(b => branches.add(b));
16
23
  }
24
+ catch { /* no remote branches */ }
25
+ return Array.from(branches);
17
26
  }
18
27
  export const syncCommand = new Command('sync')
19
28
  .description('Sync registry with actual git branches')
@@ -30,6 +39,7 @@ export const syncCommand = new Command('sync')
30
39
  const orphaned = registeredBranches.filter(b => !gitBranches.has(b.name));
31
40
  if (orphaned.length === 0) {
32
41
  console.log('🕷️ Registry is in sync with git.');
42
+ logActivity({ event: 'sync', details: { orphaned: 0, action: 'clean' } });
33
43
  return;
34
44
  }
35
45
  console.log(`🕷️ Found ${orphaned.length} orphaned branch(es):\n`);
@@ -40,6 +50,7 @@ export const syncCommand = new Command('sync')
40
50
  else {
41
51
  await storage.unregister(branch.name);
42
52
  console.log(` 🗑️ Removed: ${branch.name}`);
53
+ logActivity({ event: 'sync', branch: branch.name, details: { action: 'removed_orphan' } });
43
54
  }
44
55
  }
45
56
  if (!options.dryRun) {
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,SAAS,cAAc;IACnB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,wCAAwC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACzC,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAEhD,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAEnE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"torrent.d.ts","sourceRoot":"","sources":["../../src/commands/torrent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgFpC,eAAO,MAAM,cAAc,SACyD,CAAC"}
1
+ {"version":3,"file":"torrent.d.ts","sourceRoot":"","sources":["../../src/commands/torrent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,eAAO,MAAM,cAAc,SACyD,CAAC"}
@@ -7,20 +7,12 @@
7
7
  import { Command } from 'commander';
8
8
  import { execFileSync } from 'child_process';
9
9
  import { getStorage } from '../storage/index.js';
10
- import { validateTaskId } from '../lib/security.js';
10
+ import { validateBranchName, validateTaskId } from '../lib/security.js';
11
11
  // Config
12
12
  const HUB_URL = process.env.HUB_URL || 'https://hub.treebird.uk';
13
- function getCurrentBranch() {
14
- try {
15
- return execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { encoding: 'utf-8' }).trim();
16
- }
17
- catch {
18
- throw new Error('Not in a git repository');
19
- }
20
- }
21
13
  function createBranchForTask(taskId) {
22
14
  const safeTaskId = validateTaskId(taskId);
23
- const branchName = `task/${safeTaskId}`;
15
+ const branchName = validateBranchName(`task/${safeTaskId}`);
24
16
  try {
25
17
  // Check if branch exists
26
18
  execFileSync('git', ['rev-parse', '--verify', branchName], { encoding: 'utf-8', stdio: 'pipe' });
@@ -50,12 +42,14 @@ async function checkForConflicts(branchName) {
50
42
  if (!currentBranch)
51
43
  return [];
52
44
  const conflicts = [];
45
+ // Performance Optimization: Convert current branch files to Set for O(1) lookup
46
+ const currentFilesSet = new Set(currentBranch.files);
53
47
  for (const other of branches) {
54
48
  if (other.name === branchName || other.status !== 'active')
55
49
  continue;
56
50
  if (!other.name.startsWith('task/'))
57
51
  continue; // Only check other task branches
58
- const overlap = currentBranch.files.filter(f => other.files.includes(f));
52
+ const overlap = other.files.filter(f => currentFilesSet.has(f));
59
53
  if (overlap.length > 0) {
60
54
  conflicts.push({ branch: other.name, files: overlap });
61
55
  }
@@ -72,19 +66,27 @@ torrentCommand
72
66
  .option('-a, --agent <agent>', 'Agent claiming this task')
73
67
  .option('-p, --parent <parent-task>', 'Parent task ID (for nested decomposition)')
74
68
  .action(async (taskId, options) => {
75
- const safeTaskId = validateTaskId(taskId);
76
69
  const storage = await getStorage();
77
70
  if (!await storage.isInitialized()) {
78
71
  console.error('❌ Spidersan not initialized. Run: spidersan init');
79
72
  process.exit(1);
80
73
  }
74
+ let safeTaskId;
75
+ try {
76
+ safeTaskId = validateTaskId(taskId);
77
+ }
78
+ catch (error) {
79
+ const errorMsg = error instanceof Error ? error.message : String(error);
80
+ console.error(`❌ ${errorMsg}`);
81
+ process.exit(1);
82
+ }
81
83
  const branchName = `task/${safeTaskId}`;
82
84
  const agent = options.agent || process.env.SPIDERSAN_AGENT || 'unknown';
83
85
  const parentTaskId = options.parent || getParentTaskId(safeTaskId);
84
86
  console.log(`
85
87
  🔄 TASK TORRENTING: Create Branch
86
88
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
87
- Task: ${safeTaskId}
89
+ Task: ${taskId}
88
90
  Branch: ${branchName}
89
91
  Agent: ${agent}
90
92
  Parent: ${parentTaskId || '(none)'}
@@ -114,7 +116,7 @@ Parent: ${parentTaskId || '(none)'}
114
116
  console.log(`✅ Registered in Spidersan`);
115
117
  // Try to notify Hub
116
118
  try {
117
- await fetch(`${HUB_URL}/api/tasks/${safeTaskId}/claim`, {
119
+ await fetch(`${HUB_URL}/api/tasks/${taskId}/claim`, {
118
120
  method: 'POST',
119
121
  headers: { 'Content-Type': 'application/json' },
120
122
  body: JSON.stringify({ agent, branch: branchName })
@@ -128,7 +130,7 @@ Parent: ${parentTaskId || '(none)'}
128
130
  💡 Next steps:
129
131
  1. Make your changes
130
132
  2. git add && git commit
131
- 3. spidersan torrent complete ${safeTaskId}
133
+ 3. spidersan torrent complete ${taskId}
132
134
  `);
133
135
  });
134
136
  // Subcommand: torrent status
@@ -202,19 +204,27 @@ torrentCommand
202
204
  .option('-a, --agent <agent>', 'Agent completing this task')
203
205
  .action(async (taskId, options) => {
204
206
  const storage = await getStorage();
205
- const safeTaskId = validateTaskId(taskId);
207
+ let safeTaskId;
208
+ try {
209
+ safeTaskId = validateTaskId(taskId);
210
+ }
211
+ catch (error) {
212
+ const errorMsg = error instanceof Error ? error.message : String(error);
213
+ console.error(`❌ ${errorMsg}`);
214
+ process.exit(1);
215
+ }
206
216
  const branchName = `task/${safeTaskId}`;
207
217
  const agent = options.agent || process.env.SPIDERSAN_AGENT || 'unknown';
208
218
  const branch = await storage.get(branchName);
209
219
  if (!branch) {
210
220
  console.error(`❌ Task branch not found: ${branchName}`);
211
- console.log(` Run: spidersan torrent create ${safeTaskId}`);
221
+ console.log(` Run: spidersan torrent create ${taskId}`);
212
222
  process.exit(1);
213
223
  }
214
224
  // Mark as completed
215
225
  await storage.update(branchName, { status: 'completed' });
216
226
  console.log(`
217
- 🎉 TASK COMPLETE: ${safeTaskId}
227
+ 🎉 TASK COMPLETE: ${taskId}
218
228
  ━━━━━━━━━━━━━━━━━━━━━━━━━━
219
229
  Branch: ${branchName}
220
230
  Agent: ${agent}
@@ -234,7 +244,7 @@ Files: ${branch.files.length}
234
244
  }
235
245
  // Try to notify Hub
236
246
  try {
237
- await fetch(`${HUB_URL}/api/tasks/${safeTaskId}/complete`, {
247
+ await fetch(`${HUB_URL}/api/tasks/${taskId}/complete`, {
238
248
  method: 'POST',
239
249
  headers: { 'Content-Type': 'application/json' },
240
250
  body: JSON.stringify({ agent, branch: branchName })
@@ -267,12 +277,18 @@ torrentCommand
267
277
  }
268
278
  // Build conflict graph
269
279
  const conflictGraph = new Map();
280
+ // Performance Optimization: Convert branch files to Sets once
281
+ const branchFilesSets = new Map();
282
+ for (const branch of taskBranches) {
283
+ branchFilesSets.set(branch.name, new Set(branch.files));
284
+ }
270
285
  for (const branch of taskBranches) {
271
286
  const conflicts = [];
287
+ const filesSet = branchFilesSets.get(branch.name);
272
288
  for (const other of taskBranches) {
273
289
  if (branch.name === other.name)
274
290
  continue;
275
- const overlap = branch.files.some(f => other.files.includes(f));
291
+ const overlap = other.files.some(f => filesSet.has(f));
276
292
  if (overlap)
277
293
  conflicts.push(other.name);
278
294
  }
@@ -401,10 +417,17 @@ torrentCommand
401
417
  .option('-a, --agent <agent>', 'Agent creating the decomposition')
402
418
  .action(async (parentId, options) => {
403
419
  const storage = await getStorage();
404
- const safeParentId = validateTaskId(parentId);
405
420
  const count = parseInt(options.count || '3', 10);
406
- const agent = options.agent || process.env.SPIDERSAN_AGENT || 'unknown';
407
421
  const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
422
+ let safeParentId;
423
+ try {
424
+ safeParentId = validateTaskId(parentId);
425
+ }
426
+ catch (error) {
427
+ const errorMsg = error instanceof Error ? error.message : String(error);
428
+ console.error(`❌ ${errorMsg}`);
429
+ process.exit(1);
430
+ }
408
431
  console.log(`
409
432
  🔀 DECOMPOSING: ${safeParentId}
410
433
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -1 +1 @@
1
- {"version":3,"file":"torrent.js","sourceRoot":"","sources":["../../src/commands/torrent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"torrent.js","sourceRoot":"","sources":["../../src/commands/torrent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGxE,SAAS;AACT,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC;AAgBjE,SAAS,mBAAmB,CAAC,MAAc;IACvC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACD,yBAAyB;QACzB,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,kCAAkC,CAAC,CAAC;QACvE,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACL,kCAAkC;QAClC,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,MAAc;IACnC,sDAAsD;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IAC/C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEpD,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,SAAS,GAA0C,EAAE,CAAC;IAE5D,gFAAgF;IAChF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QACrE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,iCAAiC;QAEhF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC/C,WAAW,CAAC,kEAAkE,CAAC,CAAC;AAErF,uCAAuC;AACvC,cAAc;KACT,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;KACzD,MAAM,CAAC,4BAA4B,EAAE,2CAA2C,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA6B,EAAE,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACD,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,UAAU,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IACxE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC;;;UAGV,MAAM;UACN,UAAU;UACV,KAAK;UACL,YAAY,IAAI,QAAQ;;SAEzB,CAAC,CAAC;IAEH,oBAAoB;IACpB,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IAExD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;YAC7B,KAAK;YACL,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;SACrE,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,MAAM,OAAO,CAAC,QAAQ,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,QAAQ;YAChB,KAAK;YACL,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;SACrE,CAAC,CAAC;IACP,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,oBAAoB;IACpB,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,GAAG,OAAO,cAAc,MAAM,QAAQ,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;;mCAIe,MAAM;SAChC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,6BAA6B;AAC7B,cAAc;KACT,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,CAAC,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CACtD,CAAC;IAEF,gCAAgC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;QAC3B,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAO,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC;QAC5F,CAAC,CAAC;QACF,CAAC,CAAC,YAAY,CAAC;IAEnB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO;IACX,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;gBAGJ,QAAQ,CAAC,MAAM;;SAEtB,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEtD,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1G,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,yCAAyC;AACzC,cAAc;KACT,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACD,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,UAAU,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;IAExE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC;oBACA,MAAM;;aAEb,UAAU;aACV,KAAK;aACL,MAAM,CAAC,KAAK,CAAC,MAAM;;SAEvB,CAAC,CAAC;IAEH,kDAAkD;IAClD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,GAAG,OAAO,cAAc,MAAM,WAAW,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;0CAEsB,UAAU;2DACO,UAAU;mCAClC,UAAU;SACpC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,kCAAkC;AAClC,cAAc;KACT,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CACtD,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO;IACX,CAAC;IAED,uBAAuB;IACvB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAElD,8DAA8D;IAC9D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAChC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gBAAE,SAAS;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,kDAAkD;IAClD,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,wBAAwB;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC;QAEnE,yBAAyB;QACzB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1D,OAAO,UAAU,GAAG,UAAU,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;aAC7C,CAAC,CAAC;SACN,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;SAGX,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC;;;SAGX,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,2BAA2B;AAC3B,cAAc;KACT,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACX,CAAC;IAYD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,+BAA+B;IAC/B,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAa;YACnB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,EAAE;SACf,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;SAGX,CAAC,CAAC;IAEH,yBAAyB;IACzB,SAAS,SAAS,CAAC,IAAc,EAAE,MAAc,EAAE,MAAe;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACtB,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,UAAU;IACV,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;IAClC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC;;YAER,KAAK,eAAe,OAAO,cAAc,QAAQ;OACtD,SAAS,kBAAkB,MAAM;SAC/B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,4CAA4C;AAC5C,cAAc;KACT,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,qFAAqF,CAAC;KAClG,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,EAAE,GAAG,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAA2C,EAAE,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,4BAA4B,CAAC;IAE7C,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACD,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;kBACF,YAAY;;WAEnB,KAAK;SACP,CAAC,CAAC;IAEH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,QAAQ,OAAO,EAAE,CAAC;QAErC,+DAA+D;QAC/D,MAAM,OAAO,CAAC,QAAQ,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS,EAAE,kBAAkB;YACpC,WAAW,EAAE,YAAY,QAAQ,EAAE;SACtC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;YAER,OAAO,CAAC,MAAM;;;8BAGI,OAAO,CAAC,CAAC,CAAC;SAC/B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EpC,eAAO,MAAM,YAAY,SAgOnB,CAAC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8EpC,eAAO,MAAM,YAAY,SAmOnB,CAAC"}