spidersan 0.5.0 → 0.9.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 (217) hide show
  1. package/CHANGELOG.md +46 -48
  2. package/README.md +241 -4
  3. package/dist/bin/spidersan.d.ts.map +1 -1
  4. package/dist/bin/spidersan.js +13 -1
  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 +1 -9
  8. package/dist/commands/abandon.js.map +1 -1
  9. package/dist/commands/ai.d.ts +15 -0
  10. package/dist/commands/ai.d.ts.map +1 -0
  11. package/dist/commands/ai.js +498 -0
  12. package/dist/commands/ai.js.map +1 -0
  13. package/dist/commands/auto.d.ts.map +1 -1
  14. package/dist/commands/auto.js +2 -1
  15. package/dist/commands/auto.js.map +1 -1
  16. package/dist/commands/bot.d.ts +16 -0
  17. package/dist/commands/bot.d.ts.map +1 -0
  18. package/dist/commands/bot.js +398 -0
  19. package/dist/commands/bot.js.map +1 -0
  20. package/dist/commands/conflicts.d.ts.map +1 -1
  21. package/dist/commands/conflicts.js +264 -313
  22. package/dist/commands/conflicts.js.map +1 -1
  23. package/dist/commands/context.d.ts +8 -0
  24. package/dist/commands/context.d.ts.map +1 -0
  25. package/dist/commands/context.js +104 -0
  26. package/dist/commands/context.js.map +1 -0
  27. package/dist/commands/cross-conflicts.d.ts.map +1 -1
  28. package/dist/commands/cross-conflicts.js +1 -38
  29. package/dist/commands/cross-conflicts.js.map +1 -1
  30. package/dist/commands/depends.d.ts.map +1 -1
  31. package/dist/commands/depends.js +1 -9
  32. package/dist/commands/depends.js.map +1 -1
  33. package/dist/commands/doctor.d.ts.map +1 -1
  34. package/dist/commands/doctor.js +117 -59
  35. package/dist/commands/doctor.js.map +1 -1
  36. package/dist/commands/fleet-status.d.ts +14 -0
  37. package/dist/commands/fleet-status.d.ts.map +1 -0
  38. package/dist/commands/fleet-status.js +127 -0
  39. package/dist/commands/fleet-status.js.map +1 -0
  40. package/dist/commands/git-watch.d.ts +24 -0
  41. package/dist/commands/git-watch.d.ts.map +1 -0
  42. package/dist/commands/git-watch.js +84 -0
  43. package/dist/commands/git-watch.js.map +1 -0
  44. package/dist/commands/index.d.ts +5 -0
  45. package/dist/commands/index.d.ts.map +1 -1
  46. package/dist/commands/index.js +7 -0
  47. package/dist/commands/index.js.map +1 -1
  48. package/dist/commands/merge-order.d.ts.map +1 -1
  49. package/dist/commands/merge-order.js +18 -67
  50. package/dist/commands/merge-order.js.map +1 -1
  51. package/dist/commands/merged.d.ts.map +1 -1
  52. package/dist/commands/merged.js +1 -9
  53. package/dist/commands/merged.js.map +1 -1
  54. package/dist/commands/pulse.d.ts.map +1 -1
  55. package/dist/commands/pulse.js +137 -74
  56. package/dist/commands/pulse.js.map +1 -1
  57. package/dist/commands/queen.d.ts.map +1 -1
  58. package/dist/commands/queen.js +36 -19
  59. package/dist/commands/queen.js.map +1 -1
  60. package/dist/commands/ready-check.d.ts +2 -1
  61. package/dist/commands/ready-check.d.ts.map +1 -1
  62. package/dist/commands/ready-check.js +6 -30
  63. package/dist/commands/ready-check.js.map +1 -1
  64. package/dist/commands/register.d.ts.map +1 -1
  65. package/dist/commands/register.js +7 -29
  66. package/dist/commands/register.js.map +1 -1
  67. package/dist/commands/stale.d.ts +1 -9
  68. package/dist/commands/stale.d.ts.map +1 -1
  69. package/dist/commands/stale.js +1 -42
  70. package/dist/commands/stale.js.map +1 -1
  71. package/dist/commands/torrent.d.ts.map +1 -1
  72. package/dist/commands/torrent.js +29 -18
  73. package/dist/commands/torrent.js.map +1 -1
  74. package/dist/commands/watch.d.ts.map +1 -1
  75. package/dist/commands/watch.js +13 -34
  76. package/dist/commands/watch.js.map +1 -1
  77. package/dist/lib/agent-errors.js +2 -2
  78. package/dist/lib/agent-errors.js.map +1 -1
  79. package/dist/lib/ai/context-builder.d.ts +16 -0
  80. package/dist/lib/ai/context-builder.d.ts.map +1 -0
  81. package/dist/lib/ai/context-builder.js +216 -0
  82. package/dist/lib/ai/context-builder.js.map +1 -0
  83. package/dist/lib/ai/event-handler.d.ts +21 -0
  84. package/dist/lib/ai/event-handler.d.ts.map +1 -0
  85. package/dist/lib/ai/event-handler.js +98 -0
  86. package/dist/lib/ai/event-handler.js.map +1 -0
  87. package/dist/lib/ai/index.d.ts +13 -0
  88. package/dist/lib/ai/index.d.ts.map +1 -0
  89. package/dist/lib/ai/index.js +11 -0
  90. package/dist/lib/ai/index.js.map +1 -0
  91. package/dist/lib/ai/llm-client.d.ts +37 -0
  92. package/dist/lib/ai/llm-client.d.ts.map +1 -0
  93. package/dist/lib/ai/llm-client.js +225 -0
  94. package/dist/lib/ai/llm-client.js.map +1 -0
  95. package/dist/lib/ai/reasoner.d.ts +11 -0
  96. package/dist/lib/ai/reasoner.d.ts.map +1 -0
  97. package/dist/lib/ai/reasoner.js +246 -0
  98. package/dist/lib/ai/reasoner.js.map +1 -0
  99. package/dist/lib/ai/setup.d.ts +40 -0
  100. package/dist/lib/ai/setup.d.ts.map +1 -0
  101. package/dist/lib/ai/setup.js +154 -0
  102. package/dist/lib/ai/setup.js.map +1 -0
  103. package/dist/lib/ai/types.d.ts +135 -0
  104. package/dist/lib/ai/types.d.ts.map +1 -0
  105. package/dist/lib/ai/types.js +39 -0
  106. package/dist/lib/ai/types.js.map +1 -0
  107. package/dist/lib/colony-subscriber.d.ts +15 -12
  108. package/dist/lib/colony-subscriber.d.ts.map +1 -1
  109. package/dist/lib/colony-subscriber.js +146 -65
  110. package/dist/lib/colony-subscriber.js.map +1 -1
  111. package/dist/lib/config.d.ts.map +1 -1
  112. package/dist/lib/config.js +18 -4
  113. package/dist/lib/config.js.map +1 -1
  114. package/dist/lib/conflict-analyzer.d.ts +33 -0
  115. package/dist/lib/conflict-analyzer.d.ts.map +1 -0
  116. package/dist/lib/conflict-analyzer.js +114 -0
  117. package/dist/lib/conflict-analyzer.js.map +1 -0
  118. package/dist/lib/conflict-renderer.d.ts +7 -0
  119. package/dist/lib/conflict-renderer.d.ts.map +1 -0
  120. package/dist/lib/conflict-renderer.js +162 -0
  121. package/dist/lib/conflict-renderer.js.map +1 -0
  122. package/dist/lib/conflict-tier.d.ts +20 -0
  123. package/dist/lib/conflict-tier.d.ts.map +1 -0
  124. package/dist/lib/conflict-tier.js +49 -0
  125. package/dist/lib/conflict-tier.js.map +1 -0
  126. package/dist/lib/crypto.js +1 -1
  127. package/dist/lib/crypto.js.map +1 -1
  128. package/dist/lib/daily-bridge.d.ts.map +1 -1
  129. package/dist/lib/daily-bridge.js +3 -2
  130. package/dist/lib/daily-bridge.js.map +1 -1
  131. package/dist/lib/git-events-subscriber.d.ts +59 -0
  132. package/dist/lib/git-events-subscriber.d.ts.map +1 -0
  133. package/dist/lib/git-events-subscriber.js +779 -0
  134. package/dist/lib/git-events-subscriber.js.map +1 -0
  135. package/dist/lib/git.d.ts +15 -0
  136. package/dist/lib/git.d.ts.map +1 -0
  137. package/dist/lib/git.js +180 -0
  138. package/dist/lib/git.js.map +1 -0
  139. package/dist/lib/github.d.ts.map +1 -1
  140. package/dist/lib/github.js +14 -9
  141. package/dist/lib/github.js.map +1 -1
  142. package/dist/lib/graph.d.ts +23 -0
  143. package/dist/lib/graph.d.ts.map +1 -0
  144. package/dist/lib/graph.js +134 -0
  145. package/dist/lib/graph.js.map +1 -0
  146. package/dist/lib/hub.d.ts +31 -0
  147. package/dist/lib/hub.d.ts.map +1 -0
  148. package/dist/lib/hub.js +92 -0
  149. package/dist/lib/hub.js.map +1 -0
  150. package/dist/lib/regex-utils.d.ts +6 -0
  151. package/dist/lib/regex-utils.d.ts.map +1 -0
  152. package/dist/lib/regex-utils.js +24 -0
  153. package/dist/lib/regex-utils.js.map +1 -0
  154. package/dist/lib/remote-drift.d.ts +60 -0
  155. package/dist/lib/remote-drift.d.ts.map +1 -0
  156. package/dist/lib/remote-drift.js +225 -0
  157. package/dist/lib/remote-drift.js.map +1 -0
  158. package/dist/lib/repo-scanner.d.ts +0 -4
  159. package/dist/lib/repo-scanner.d.ts.map +1 -1
  160. package/dist/lib/repo-scanner.js +2 -1
  161. package/dist/lib/repo-scanner.js.map +1 -1
  162. package/dist/lib/salvage-analyzer.d.ts.map +1 -1
  163. package/dist/lib/salvage-analyzer.js +2 -3
  164. package/dist/lib/salvage-analyzer.js.map +1 -1
  165. package/dist/lib/security.d.ts +17 -0
  166. package/dist/lib/security.d.ts.map +1 -1
  167. package/dist/lib/security.js +34 -1
  168. package/dist/lib/security.js.map +1 -1
  169. package/dist/lib/session-logger.d.ts +54 -0
  170. package/dist/lib/session-logger.d.ts.map +1 -0
  171. package/dist/lib/session-logger.js +136 -0
  172. package/dist/lib/session-logger.js.map +1 -0
  173. package/dist/storage/adapter.d.ts +4 -0
  174. package/dist/storage/adapter.d.ts.map +1 -1
  175. package/dist/storage/branch-registry-store.d.ts +13 -0
  176. package/dist/storage/branch-registry-store.d.ts.map +1 -0
  177. package/dist/storage/branch-registry-store.js +2 -0
  178. package/dist/storage/branch-registry-store.js.map +1 -0
  179. package/dist/storage/factory.d.ts +4 -0
  180. package/dist/storage/factory.d.ts.map +1 -1
  181. package/dist/storage/factory.js +25 -9
  182. package/dist/storage/factory.js.map +1 -1
  183. package/dist/storage/index.d.ts +5 -5
  184. package/dist/storage/index.d.ts.map +1 -1
  185. package/dist/storage/index.js +5 -6
  186. package/dist/storage/index.js.map +1 -1
  187. package/dist/storage/json-branch-registry-store.d.ts +19 -0
  188. package/dist/storage/json-branch-registry-store.d.ts.map +1 -0
  189. package/dist/storage/json-branch-registry-store.js +112 -0
  190. package/dist/storage/json-branch-registry-store.js.map +1 -0
  191. package/dist/storage/local.d.ts +2 -6
  192. package/dist/storage/local.d.ts.map +1 -1
  193. package/dist/storage/local.js +13 -76
  194. package/dist/storage/local.js.map +1 -1
  195. package/dist/storage/memory-branch-registry-store.d.ts +16 -0
  196. package/dist/storage/memory-branch-registry-store.d.ts.map +1 -0
  197. package/dist/storage/memory-branch-registry-store.js +65 -0
  198. package/dist/storage/memory-branch-registry-store.js.map +1 -0
  199. package/dist/storage/mycmail-adapter.d.ts.map +1 -1
  200. package/dist/storage/mycmail-adapter.js +4 -6
  201. package/dist/storage/mycmail-adapter.js.map +1 -1
  202. package/dist/storage/supabase-registry-sync-client-impl.d.ts +46 -0
  203. package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +1 -0
  204. package/dist/storage/supabase-registry-sync-client-impl.js +322 -0
  205. package/dist/storage/supabase-registry-sync-client-impl.js.map +1 -0
  206. package/dist/storage/supabase-registry-sync-client.d.ts +9 -0
  207. package/dist/storage/supabase-registry-sync-client.d.ts.map +1 -0
  208. package/dist/storage/supabase-registry-sync-client.js +2 -0
  209. package/dist/storage/supabase-registry-sync-client.js.map +1 -0
  210. package/dist/storage/supabase.d.ts +8 -46
  211. package/dist/storage/supabase.d.ts.map +1 -1
  212. package/dist/storage/supabase.js +30 -342
  213. package/dist/storage/supabase.js.map +1 -1
  214. package/dist/tui/screen.d.ts.map +1 -1
  215. package/dist/tui/screen.js +5 -3
  216. package/dist/tui/screen.js.map +1 -1
  217. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Colony Subscriber — reads Colony work_claim/work_release signals
2
+ * Colony Subscriber — reads Colony in-progress signals
3
3
  * and keeps the local Spidersan branch registry in sync.
4
4
  *
5
5
  * Design notes:
@@ -7,43 +7,116 @@
7
7
  * `is_stale` is already computed server-side.
8
8
  * - Credentials come from COLONY_SUPABASE_URL + COLONY_SUPABASE_KEY env vars
9
9
  * (the MycToak Supabase project, separate from Spidersan's own project).
10
+ * If env vars are absent, falls back to ~/.envoak/config.json + session files
11
+ * automatically (so `envoak vault login` is sufficient — no env vars needed).
12
+ * - Auth: COLONY_SESSION_JWT is required for RLS-scoped access to colony_state.
13
+ * Without it the query falls back to the anon key and will return 0 rows (RLS
14
+ * blocks unauthenticated reads of user-scoped signals).
15
+ * - Queries colony_state with status=in-progress — the status-based model
16
+ * replaces the old type=work_claim / type=work_release approach.
10
17
  * - Full offline fallback: any network/auth error returns offline=true and
11
18
  * the caller falls back to the local registry. Never throws.
12
- * - Agent label resolution: fetches all colony_state rows first to build a
13
- * agentKeyId agentLabel map, so labels are available even when the
14
- * work_claim row itself doesn't carry agent_label.
19
+ * - Field mapping: task (branch name), files (top-level column), agent_label
20
+ * (top-level from colony_state view no payload parsing needed).
15
21
  *
16
22
  * 🍄 hey tsan — the mycelium remembers. migration 025 opened the gradient.
17
23
  * your spiders can smell the pheromones now. — mycsan
18
24
  */
19
25
  import { getStorage } from '../storage/index.js';
26
+ import { readFileSync, existsSync } from 'fs';
27
+ import { join } from 'path';
28
+ import { homedir } from 'os';
20
29
  // ─── Agent name resolution ────────────────────────────────────────────────────
21
30
  /**
22
31
  * Resolve a human-readable agent name from a Colony agent key ID.
23
32
  *
24
- * Uses the `agent_label` field already present on `colony_state` rows — no
25
- * UUID lookup table needed. Falls back to a truncated UUID when no label is
26
- * available.
33
+ * Uses the `agent_label` field already present on `colony_state` rows.
34
+ * Falls back to a truncated UUID when no label is available.
27
35
  */
28
36
  export function resolveAgentName(agentKeyId, agentLabel) {
29
37
  if (agentLabel)
30
38
  return agentLabel;
39
+ if (!agentKeyId)
40
+ return 'unknown-agent';
31
41
  return `agent:${agentKeyId.slice(0, 8)}`;
32
42
  }
33
43
  // ─── Supabase REST helpers ────────────────────────────────────────────────────
44
+ // ─── Envoak filesystem fallback ───────────────────────────────────────────────
45
+ /** Read a JSON file safely; returns null on any error (missing, malformed, mid-write). */
46
+ function readJsonSafe(filePath) {
47
+ try {
48
+ if (!existsSync(filePath))
49
+ return null;
50
+ return JSON.parse(readFileSync(filePath, 'utf-8'));
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Resolve colony credentials from envoak's local session files.
58
+ *
59
+ * Resolution order:
60
+ * 1. ~/.envoak/sessions/current.json → clientSessionId
61
+ * 2. ~/.envoak/sessions/<id>.json → accessToken + expiresAt
62
+ * 3. Fallback: ~/.envoak/session.json (legacy single-session file)
63
+ *
64
+ * JWT is only used if not expired (or within 60s of expiry).
65
+ */
66
+ function resolveEnvoakCredentials() {
67
+ const envoakDir = join(homedir(), '.envoak');
68
+ const config = readJsonSafe(join(envoakDir, 'config.json'));
69
+ if (!config?.url || !config?.anonKey)
70
+ return null;
71
+ const nowMs = Date.now();
72
+ const EXPIRY_BUFFER_MS = 60_000; // reject tokens within 60s of expiry
73
+ function extractJwt(sessionData) {
74
+ if (!sessionData?.accessToken)
75
+ return null;
76
+ const exp = sessionData.expiresAt ?? 0;
77
+ if (exp && exp - nowMs < EXPIRY_BUFFER_MS) {
78
+ if (process.env.DEBUG_COLONY) {
79
+ console.warn(' [colony] envoak session JWT is expired or expiring soon — treating as offline');
80
+ }
81
+ return null;
82
+ }
83
+ return sessionData.accessToken;
84
+ }
85
+ // Try new per-session file via current.json pointer
86
+ const current = readJsonSafe(join(envoakDir, 'sessions', 'current.json'));
87
+ if (current?.clientSessionId) {
88
+ const sessFile = join(envoakDir, 'sessions', `${current.clientSessionId}.json`);
89
+ const jwt = extractJwt(readJsonSafe(sessFile));
90
+ if (process.env.DEBUG_COLONY) {
91
+ console.warn(` [colony] envoak fallback: using sessions/${current.clientSessionId}.json (jwt=${jwt ? 'ok' : 'missing/expired'})`);
92
+ }
93
+ return { url: config.url, anonKey: config.anonKey, sessionJwt: jwt };
94
+ }
95
+ // Legacy single session.json
96
+ const jwt = extractJwt(readJsonSafe(join(envoakDir, 'session.json')));
97
+ if (process.env.DEBUG_COLONY) {
98
+ console.warn(` [colony] envoak fallback: using legacy session.json (jwt=${jwt ? 'ok' : 'missing/expired'})`);
99
+ }
100
+ return { url: config.url, anonKey: config.anonKey, sessionJwt: jwt };
101
+ }
34
102
  function getColonyCredentials() {
35
103
  const url = process.env.COLONY_SUPABASE_URL || process.env.SUPABASE_URL;
36
- const key = process.env.COLONY_SUPABASE_KEY || process.env.SUPABASE_KEY;
37
- if (!url || !key)
38
- return null;
39
- return { url, key };
104
+ const anonKey = process.env.COLONY_SUPABASE_KEY || process.env.SUPABASE_KEY;
105
+ // Session JWT is required for RLS — without it colony_state returns 0 rows
106
+ const sessionJwt = process.env.COLONY_SESSION_JWT || null;
107
+ if (url && anonKey)
108
+ return { url, anonKey, sessionJwt };
109
+ // Fall back to envoak's local session files when env vars aren't set
110
+ return resolveEnvoakCredentials();
40
111
  }
41
- async function fetchColonySignals(url, key, query) {
112
+ async function fetchColonySignals(url, anonKey, sessionJwt, query) {
42
113
  const endpoint = `${url}/rest/v1/${query}`;
114
+ // Use session JWT for Authorization when available — anon key alone is blocked by RLS
115
+ const authToken = sessionJwt ?? anonKey;
43
116
  const response = await fetch(endpoint, {
44
117
  headers: {
45
- apikey: key,
46
- Authorization: `Bearer ${key}`,
118
+ apikey: anonKey,
119
+ Authorization: `Bearer ${authToken}`,
47
120
  'Content-Type': 'application/json',
48
121
  },
49
122
  });
@@ -54,6 +127,9 @@ async function fetchColonySignals(url, key, query) {
54
127
  return (await response.json());
55
128
  }
56
129
  function isStale(row) {
130
+ // Prefer the view-computed flag when present
131
+ if (row.is_stale !== undefined)
132
+ return !!row.is_stale;
57
133
  if (!row.stale_after_ms)
58
134
  return false;
59
135
  const age = Date.now() - new Date(row.updated_at).getTime();
@@ -64,11 +140,9 @@ function isStale(row) {
64
140
  * Sync the local Spidersan branch registry from Colony signals.
65
141
  *
66
142
  * Steps:
67
- * 0. Build an agentKeyId agentLabel map from all current colony_state rows
68
- * (unfiltered) so labels are available even when work_claim rows lack them.
69
- * 1. Query `colony_state` for non-stale `work_claim` rows.
70
- * 2. Upsert each claimed branch into the local registry.
71
- * 3. Query `colony_state` for `work_release` rows and remove released branches.
143
+ * 1. Query `colony_state` VIEW for in-progress signals (one per agent, deduped).
144
+ * 2. Upsert each active branch into the local registry.
145
+ * 3. Sweep: remove local active branches absent from the colony in-progress set.
72
146
  * 4. Detect conflicts in the updated registry and return them.
73
147
  *
74
148
  * Returns `offline: true` and an empty conflicts list on any error so callers
@@ -80,55 +154,53 @@ export async function syncFromColony() {
80
154
  // Credentials not configured — treat as offline (not an error)
81
155
  return { conflicts: [], synced: 0, offline: true };
82
156
  }
157
+ if (!creds.sessionJwt) {
158
+ // Warn but continue — queries will silently return 0 rows without session auth
159
+ console.warn('⚠ COLONY_SESSION_JWT not set — colony_state RLS will block reads. Set COLONY_SESSION_JWT to enable colony sync.');
160
+ }
83
161
  try {
84
162
  const storage = await getStorage();
85
- // ── 1. Fetch active work_claim signals from colony_signals (raw table) ─
163
+ // ── 1. Fetch all in-progress signals from colony_state VIEW ──────────
86
164
  //
87
- // Query the raw table instead of the colony_state VIEW because the
88
- // anon key can only see agent_key_id from the view (agent_label and
89
- // payload are hidden by RLS on the agent_keys join). colony_signals
90
- // exposes type + payload to anon. We compute staleness ourselves.
165
+ // colony_state (not colony_signals) is the correct target:
166
+ // - already deduped (one row per agent via colony_gc)
167
+ // - is_stale computed server-side
168
+ // - agent_label, task, files are top-level columns (no payload parsing)
169
+ // - requires session JWT for RLS — anon key returns 0 rows
91
170
  //
92
- // Order by updated_at desc, limit to recent signals to avoid scanning
93
- // the full history. Dedup by branch name — latest signal wins.
94
- const claimRows = await fetchColonySignals(creds.url, creds.key, 'colony_signals?type=eq.work_claim&order=updated_at.desc&limit=200&select=*');
95
- // Dedup: keep only the latest work_claim per agent_key_id
96
- const latestByAgent = new Map();
97
- for (const row of claimRows) {
98
- if (!latestByAgent.has(row.agent_key_id)) {
99
- latestByAgent.set(row.agent_key_id, row);
100
- }
101
- }
171
+ // status=in-progress is the status-based replacement for type=work_claim.
172
+ const inProgressRows = await fetchColonySignals(creds.url, creds.anonKey, creds.sessionJwt, 'colony_state?status=eq.in-progress&select=*');
173
+ // Track branch names seen in the colony so we can sweep stale local entries
174
+ const colonyBranches = new Set();
102
175
  let synced = 0;
103
176
  // ── 2. Upsert claimed branches into local registry ────────────────────
104
- for (const row of latestByAgent.values()) {
177
+ for (const row of inProgressRows) {
105
178
  if (isStale(row))
106
179
  continue;
107
- const rawPayload = typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload;
108
- const payload = rawPayload;
109
- if (!payload.branch)
180
+ // Branch name: top-level task column (set by register_branch signal emitter)
181
+ // Fallback to payload.branch for backwards-compat with older signal emitters
182
+ const rawPayload = row.payload
183
+ ? (typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload)
184
+ : null;
185
+ const branch = row.task || rawPayload?.branch;
186
+ if (!branch)
110
187
  continue;
111
- // Resolve label: prefer row.agent_label (authoritative database field),
112
- // then fall back to payload.agent (self-reported, always available),
113
- // then fall back to UUID prefix.
114
- const agentName = resolveAgentName(row.agent_key_id, row.agent_label ?? payload.agent ?? undefined);
115
- const files = Array.isArray(payload.files) ? payload.files : [];
116
- const existing = await storage.get(payload.branch);
188
+ colonyBranches.add(branch);
189
+ // Files: top-level column (no longer inside payload)
190
+ const files = Array.isArray(row.files) ? row.files : [];
191
+ // Agent name: top-level agent_label (visible with session JWT)
192
+ const agentName = resolveAgentName(row.agent_key_id ?? '', row.agent_label ?? rawPayload?.agent);
193
+ const existing = await storage.get(branch);
117
194
  if (existing) {
118
- // Merge files (additive) and update agent name if better info available
119
195
  const merged = [...new Set([...existing.files, ...files])];
120
196
  const updatedAgent = (existing.agent?.startsWith('agent:') && agentName && !agentName.startsWith('agent:'))
121
197
  ? agentName
122
198
  : existing.agent;
123
- await storage.update(payload.branch, {
124
- files: merged,
125
- agent: updatedAgent,
126
- status: 'active',
127
- });
199
+ await storage.update(branch, { files: merged, agent: updatedAgent, status: 'active' });
128
200
  }
129
201
  else {
130
202
  await storage.register({
131
- name: payload.branch,
203
+ name: branch,
132
204
  files,
133
205
  agent: agentName,
134
206
  status: 'active',
@@ -138,27 +210,36 @@ export async function syncFromColony() {
138
210
  synced++;
139
211
  }
140
212
  // ── 3. Sweep released branches ────────────────────────────────────────
141
- const releaseRows = await fetchColonySignals(creds.url, creds.key, 'colony_signals?type=eq.work_release&order=updated_at.desc&limit=200&select=*');
142
- for (const row of releaseRows) {
143
- const rawPayload = typeof row.payload === 'string' ? JSON.parse(row.payload) : row.payload;
144
- const payload = rawPayload;
145
- if (!payload.branch)
146
- continue;
147
- const existing = await storage.get(payload.branch);
148
- if (existing && existing.status === 'active') {
149
- await storage.unregister(payload.branch);
213
+ //
214
+ // Only sweep branches that were synced FROM colony (have a colony-sourced
215
+ // agent description). Manually-registered local branches are left alone.
216
+ const allBranches = await storage.list();
217
+ for (const localBranch of allBranches) {
218
+ const isColonySourced = localBranch.description?.startsWith('Colony claim by') ||
219
+ localBranch.agent?.startsWith('agent:');
220
+ if (localBranch.status === 'active' && !colonyBranches.has(localBranch.name) && isColonySourced) {
221
+ await storage.unregister(localBranch.name);
150
222
  }
151
223
  }
152
224
  // ── 4. Detect conflicts in the updated registry ───────────────────────
153
- const allBranches = await storage.list();
154
- const activeBranches = allBranches.filter(b => b.status === 'active');
225
+ const postSweepBranches = await storage.list();
226
+ const activeBranches = postSweepBranches.filter(b => b.status === 'active');
155
227
  const conflicts = [];
228
+ // Performance Optimization: Pre-compute sets to avoid O(N^2) memory allocations
229
+ const branchFileSets = activeBranches.map(b => new Set(b.files));
156
230
  for (let i = 0; i < activeBranches.length; i++) {
231
+ const a = activeBranches[i];
232
+ const aFiles = branchFileSets[i];
157
233
  for (let j = i + 1; j < activeBranches.length; j++) {
158
- const a = activeBranches[i];
159
234
  const b = activeBranches[j];
160
- const aFiles = new Set(a.files);
161
- const overlapping = b.files.filter(f => aFiles.has(f));
235
+ // Prioritize standard loop over .filter for short-circuit and less allocations
236
+ const overlapping = [];
237
+ for (let k = 0; k < b.files.length; k++) {
238
+ const f = b.files[k];
239
+ if (aFiles.has(f)) {
240
+ overlapping.push(f);
241
+ }
242
+ }
162
243
  if (overlapping.length > 0) {
163
244
  conflicts.push({
164
245
  branch: a.name,
@@ -1 +1 @@
1
- {"version":3,"file":"colony-subscriber.js","sourceRoot":"","sources":["../../src/lib/colony-subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colony-subscriber.js","sourceRoot":"","sources":["../../src/lib/colony-subscriber.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACR,kBAAkB,EAAE,OAAO,CAAC;QAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,2BAA2B,EAAE,OAAO,CAAC;QACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,SAAS,EAAE;QACP,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,OAAO,EAAE;QACL,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;QAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAmCD,eAAO,MAAM,YAAY,UAAkE,CAAC;AAE5F,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAqGD,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,EAAE,aAAa,GAAE,OAAc,GAAG,MAAM,EAAE,CAUxG;AAED,wBAAsB,qBAAqB,CACvC,QAAQ,GAAE,MAAsB,EAChC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CA8BpF;AAED,wBAAsB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAO3F;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAmBvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAEpE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAEzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAE3E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACR,kBAAkB,EAAE,OAAO,CAAC;QAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,2BAA2B,EAAE,OAAO,CAAC;QACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,SAAS,EAAE;QACP,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;KACpC,CAAC;IACF,OAAO,EAAE;QACL,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;QAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAmCD,eAAO,MAAM,YAAY,UAAkE,CAAC;AAE5F,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAqGD,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,EAAE,aAAa,GAAE,OAAc,GAAG,MAAM,EAAE,CAUxG;AAED,wBAAsB,qBAAqB,CACvC,QAAQ,GAAE,MAAsB,EAChC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CA8BpF;AAED,wBAAsB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAO3F;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAmBvD;AAUD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAIhE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAEpE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAIzE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,EAAE,CAI3E"}
@@ -185,7 +185,7 @@ export async function loadConfig(basePath = process.cwd()) {
185
185
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
186
  export function deepMerge(target, source) {
187
187
  const result = { ...target };
188
- for (const key in source) {
188
+ for (const key of Object.keys(source)) {
189
189
  // Security: Prevent prototype pollution
190
190
  if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
191
191
  throw new Error(`Invalid config key: ${key}`);
@@ -201,16 +201,30 @@ export function deepMerge(target, source) {
201
201
  }
202
202
  return result;
203
203
  }
204
+ function safeRegExp(pattern, flags) {
205
+ try {
206
+ return new RegExp(pattern, flags);
207
+ }
208
+ catch {
209
+ return null;
210
+ }
211
+ }
204
212
  export function getWipPatterns(config) {
205
- return config.readyCheck.wipPatterns.map(p => new RegExp(`\\b${p}\\b`, 'i'));
213
+ return config.readyCheck.wipPatterns
214
+ .map(p => safeRegExp(`\\b${p}\\b`, 'i'))
215
+ .filter((r) => r !== null);
206
216
  }
207
217
  export function getExcludePatterns(config) {
208
218
  return config.readyCheck.excludeFiles;
209
219
  }
210
220
  export function getHighSeverityPatterns(config) {
211
- return config.conflicts.highSeverityPatterns.map(p => new RegExp(p));
221
+ return config.conflicts.highSeverityPatterns
222
+ .map(p => safeRegExp(p))
223
+ .filter((r) => r !== null);
212
224
  }
213
225
  export function getMediumSeverityPatterns(config) {
214
- return config.conflicts.mediumSeverityPatterns.map(p => new RegExp(p));
226
+ return config.conflicts.mediumSeverityPatterns
227
+ .map(p => safeRegExp(p))
228
+ .filter((r) => r !== null);
215
229
  }
216
230
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type ConflictTier } from './conflict-tier.js';
2
+ import type { Branch } from '../storage/adapter.js';
3
+ export interface BranchRef {
4
+ name: string;
5
+ agent?: string;
6
+ }
7
+ export interface Conflict {
8
+ file: string;
9
+ tier: ConflictTier;
10
+ branches: BranchRef[];
11
+ symbolsOverlap?: string[];
12
+ classifierSource: 'path' | 'symbol';
13
+ recommendation: string;
14
+ }
15
+ export interface ConflictReport {
16
+ conflicts: Conflict[];
17
+ highest: ConflictTier;
18
+ shouldBlock: boolean;
19
+ byTier: Record<ConflictTier, Conflict[]>;
20
+ }
21
+ interface AnalyzerOptions {
22
+ extraTier3?: RegExp[];
23
+ extraTier2?: RegExp[];
24
+ useSymbolAware?: boolean;
25
+ }
26
+ interface AnalyzerInput {
27
+ branches: Array<Pick<Branch, 'name' | 'files' | 'agent' | 'status'>>;
28
+ targetFiles: string[];
29
+ options?: AnalyzerOptions;
30
+ }
31
+ export declare function analyzeConflicts(input: AnalyzerInput): ConflictReport;
32
+ export {};
33
+ //# sourceMappingURL=conflict-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-analyzer.d.ts","sourceRoot":"","sources":["../../src/lib/conflict-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;CAC5C;AAED,UAAU,eAAe;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,UAAU,aAAa;IACnB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;IACrE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC7B;AAmBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA6ErE"}
@@ -0,0 +1,114 @@
1
+ import { ASTParser } from './ast.js';
2
+ import { classifyTier, TIER_LABELS } from './conflict-tier.js';
3
+ const SYMBOL_TIER_3_PATTERNS = [
4
+ /auth/i,
5
+ /security/i,
6
+ /secret/i,
7
+ /credential/i,
8
+ /password/i,
9
+ /token/i,
10
+ /api[_-]?key/i,
11
+ /private[_-]?key/i,
12
+ ];
13
+ const SYMBOL_TIER_2_PATTERNS = [
14
+ /config/i,
15
+ /server/i,
16
+ /index/i,
17
+ ];
18
+ export function analyzeConflicts(input) {
19
+ const options = input.options ?? {};
20
+ const targetFiles = unique(input.targetFiles);
21
+ const targetFilesSet = new Set(targetFiles);
22
+ const activeBranches = input.branches.filter(branch => branch.status === 'active');
23
+ const branchesByFile = new Map();
24
+ const astParser = options.useSymbolAware ? new ASTParser() : null;
25
+ for (const branch of activeBranches) {
26
+ const seenFiles = new Set();
27
+ for (const file of branch.files) {
28
+ if (!targetFilesSet.has(file) || seenFiles.has(file)) {
29
+ continue;
30
+ }
31
+ seenFiles.add(file);
32
+ const refs = branchesByFile.get(file) ?? [];
33
+ refs.push({ name: branch.name, agent: branch.agent });
34
+ branchesByFile.set(file, refs);
35
+ }
36
+ }
37
+ const conflicts = [];
38
+ const byTier = { 1: [], 2: [], 3: [] };
39
+ let highest = 1;
40
+ for (const file of targetFiles) {
41
+ const branches = branchesByFile.get(file);
42
+ if (!branches || branches.length === 0) {
43
+ continue;
44
+ }
45
+ const pathTier = classifyTier(file, {
46
+ extraTier3: options.extraTier3,
47
+ extraTier2: options.extraTier2,
48
+ });
49
+ let tier = pathTier;
50
+ let classifierSource = 'path';
51
+ let symbolsOverlap;
52
+ if (astParser && isSymbolAwareFile(file)) {
53
+ try {
54
+ const symbolTier = classifySymbolTier(astParser.getSymbols(file));
55
+ tier = Math.max(pathTier, symbolTier.tier);
56
+ classifierSource = 'symbol';
57
+ symbolsOverlap = symbolTier.matches.length > 0 ? symbolTier.matches : undefined;
58
+ }
59
+ catch {
60
+ tier = pathTier;
61
+ classifierSource = 'path';
62
+ }
63
+ }
64
+ const conflict = {
65
+ file,
66
+ tier,
67
+ branches,
68
+ classifierSource,
69
+ recommendation: TIER_LABELS[tier].action,
70
+ ...(symbolsOverlap ? { symbolsOverlap } : {}),
71
+ };
72
+ conflicts.push(conflict);
73
+ byTier[tier].push(conflict);
74
+ if (tier > highest) {
75
+ highest = tier;
76
+ }
77
+ }
78
+ return {
79
+ conflicts,
80
+ highest,
81
+ shouldBlock: highest === 3,
82
+ byTier,
83
+ };
84
+ }
85
+ function unique(values) {
86
+ return [...new Set(values)];
87
+ }
88
+ function isSymbolAwareFile(file) {
89
+ return /\.(ts|tsx|js|jsx)$/.test(file);
90
+ }
91
+ function classifySymbolTier(symbols) {
92
+ const tier3Matches = collectMatchingSymbols(symbols, SYMBOL_TIER_3_PATTERNS);
93
+ if (tier3Matches.length > 0) {
94
+ return { tier: 3, matches: tier3Matches };
95
+ }
96
+ const tier2Matches = collectMatchingSymbols(symbols, SYMBOL_TIER_2_PATTERNS);
97
+ if (tier2Matches.length > 0) {
98
+ return { tier: 2, matches: tier2Matches };
99
+ }
100
+ return { tier: 1, matches: [] };
101
+ }
102
+ function collectMatchingSymbols(symbols, patterns) {
103
+ const matches = new Set();
104
+ for (const symbol of symbols) {
105
+ for (const pattern of patterns) {
106
+ if (pattern.test(symbol.name)) {
107
+ matches.add(symbol.name);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ return [...matches];
113
+ }
114
+ //# sourceMappingURL=conflict-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-analyzer.js","sourceRoot":"","sources":["../../src/lib/conflict-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ConflictReport } from './conflict-analyzer.js';
2
+ export interface RenderOptions {
3
+ verbose?: boolean;
4
+ showRecommendations?: boolean;
5
+ }
6
+ export declare function renderConflictReport(report: ConflictReport, options?: RenderOptions): string;
7
+ //# sourceMappingURL=conflict-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/conflict-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AASD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CA2ChG"}