causantic 0.6.0 → 0.7.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 (65) hide show
  1. package/dist/cli/skill-templates.d.ts.map +1 -1
  2. package/dist/cli/skill-templates.js +26 -9
  3. package/dist/cli/skill-templates.js.map +1 -1
  4. package/dist/ingest/edge-creator.d.ts +13 -0
  5. package/dist/ingest/edge-creator.d.ts.map +1 -1
  6. package/dist/ingest/edge-creator.js +36 -0
  7. package/dist/ingest/edge-creator.js.map +1 -1
  8. package/dist/ingest/index.d.ts +5 -1
  9. package/dist/ingest/index.d.ts.map +1 -1
  10. package/dist/ingest/index.js +5 -1
  11. package/dist/ingest/index.js.map +1 -1
  12. package/dist/ingest/ingest-session.d.ts +6 -0
  13. package/dist/ingest/ingest-session.d.ts.map +1 -1
  14. package/dist/ingest/ingest-session.js +263 -33
  15. package/dist/ingest/ingest-session.js.map +1 -1
  16. package/dist/ingest/team-detector.d.ts +52 -0
  17. package/dist/ingest/team-detector.d.ts.map +1 -0
  18. package/dist/ingest/team-detector.js +241 -0
  19. package/dist/ingest/team-detector.js.map +1 -0
  20. package/dist/ingest/team-edge-detector.d.ts +47 -0
  21. package/dist/ingest/team-edge-detector.d.ts.map +1 -0
  22. package/dist/ingest/team-edge-detector.js +224 -0
  23. package/dist/ingest/team-edge-detector.js.map +1 -0
  24. package/dist/mcp/tools.d.ts.map +1 -1
  25. package/dist/mcp/tools.js +49 -0
  26. package/dist/mcp/tools.js.map +1 -1
  27. package/dist/parser/session-reader.d.ts +4 -0
  28. package/dist/parser/session-reader.d.ts.map +1 -1
  29. package/dist/parser/session-reader.js +45 -2
  30. package/dist/parser/session-reader.js.map +1 -1
  31. package/dist/retrieval/chain-assembler.d.ts +2 -0
  32. package/dist/retrieval/chain-assembler.d.ts.map +1 -1
  33. package/dist/retrieval/chain-assembler.js +5 -3
  34. package/dist/retrieval/chain-assembler.js.map +1 -1
  35. package/dist/retrieval/context-assembler.d.ts +2 -0
  36. package/dist/retrieval/context-assembler.d.ts.map +1 -1
  37. package/dist/retrieval/context-assembler.js +3 -0
  38. package/dist/retrieval/context-assembler.js.map +1 -1
  39. package/dist/retrieval/search-assembler.d.ts +2 -0
  40. package/dist/retrieval/search-assembler.d.ts.map +1 -1
  41. package/dist/retrieval/search-assembler.js +17 -5
  42. package/dist/retrieval/search-assembler.js.map +1 -1
  43. package/dist/retrieval/session-reconstructor.d.ts +3 -0
  44. package/dist/retrieval/session-reconstructor.d.ts.map +1 -1
  45. package/dist/retrieval/session-reconstructor.js +24 -2
  46. package/dist/retrieval/session-reconstructor.js.map +1 -1
  47. package/dist/storage/chunk-store.d.ts +1 -0
  48. package/dist/storage/chunk-store.d.ts.map +1 -1
  49. package/dist/storage/chunk-store.js +11 -6
  50. package/dist/storage/chunk-store.js.map +1 -1
  51. package/dist/storage/keyword-store.d.ts +1 -1
  52. package/dist/storage/keyword-store.d.ts.map +1 -1
  53. package/dist/storage/keyword-store.js +13 -8
  54. package/dist/storage/keyword-store.js.map +1 -1
  55. package/dist/storage/migrations.d.ts.map +1 -1
  56. package/dist/storage/migrations.js +21 -0
  57. package/dist/storage/migrations.js.map +1 -1
  58. package/dist/storage/schema.sql +5 -3
  59. package/dist/storage/types.d.ts +5 -1
  60. package/dist/storage/types.d.ts.map +1 -1
  61. package/dist/storage/vector-store.d.ts +3 -1
  62. package/dist/storage/vector-store.d.ts.map +1 -1
  63. package/dist/storage/vector-store.js +31 -5
  64. package/dist/storage/vector-store.js.map +1 -1
  65. package/package.json +2 -2
@@ -17,11 +17,15 @@ import { getModel } from '../models/model-registry.js';
17
17
  import { insertChunks, isSessionIngested } from '../storage/chunk-store.js';
18
18
  import { vectorStore } from '../storage/vector-store.js';
19
19
  import { detectCausalTransitions } from './edge-detector.js';
20
- import { createEdgesFromTransitions, createBriefEdge, createDebriefEdge } from './edge-creator.js';
20
+ import { createEdgesFromTransitions, createBriefEdge, createDebriefEdge, createTeamEdges, } from './edge-creator.js';
21
21
  import { linkCrossSession } from './cross-session-linker.js';
22
22
  import { detectBriefPoints, detectDebriefPoints, buildChunkIdsByTurn, } from './brief-debrief-detector.js';
23
+ import { detectTeamTopology, groupTeammateFiles } from './team-detector.js';
24
+ import { detectTeamEdges } from './team-edge-detector.js';
23
25
  import { getCheckpoint, saveCheckpoint } from '../storage/checkpoint-store.js';
24
26
  import { computeContentHash, getCachedEmbeddingsBatch, cacheEmbeddingsBatch, } from '../storage/embedding-cache.js';
27
+ import { createLogger } from '../utils/logger.js';
28
+ const log = createLogger('ingest-session');
25
29
  /** Threshold for streaming file parsing (10MB) */
26
30
  const STREAMING_THRESHOLD_BYTES = 10 * 1024 * 1024;
27
31
  /**
@@ -54,6 +58,9 @@ export async function ingestSession(sessionPath, options = {}) {
54
58
  skipReason: 'unchanged_file',
55
59
  durationMs: Date.now() - startTime,
56
60
  subAgentCount: 0,
61
+ teamEdges: 0,
62
+ deadEndFilesSkipped: 0,
63
+ isTeamSession: false,
57
64
  };
58
65
  }
59
66
  }
@@ -70,6 +77,9 @@ export async function ingestSession(sessionPath, options = {}) {
70
77
  skipReason: 'already_ingested',
71
78
  durationMs: Date.now() - startTime,
72
79
  subAgentCount: 0,
80
+ teamEdges: 0,
81
+ deadEndFilesSkipped: 0,
82
+ isTeamSession: false,
73
83
  };
74
84
  }
75
85
  // Use streaming for large files
@@ -113,6 +123,9 @@ export async function ingestSession(sessionPath, options = {}) {
113
123
  skipReason: startTurnIndex > 0 ? 'no_new_turns' : undefined,
114
124
  durationMs: Date.now() - startTime,
115
125
  subAgentCount: 0,
126
+ teamEdges: 0,
127
+ deadEndFilesSkipped: 0,
128
+ isTeamSession: false,
116
129
  };
117
130
  }
118
131
  // Set up embedding — single embedder, sequential inference
@@ -138,49 +151,226 @@ export async function ingestSession(sessionPath, options = {}) {
138
151
  let totalChunkCount = 0;
139
152
  let totalEdgeCount = 0;
140
153
  let subAgentEdges = 0;
154
+ let teamEdgeCount = 0;
155
+ let deadEndFilesSkipped = 0;
141
156
  const subAgentData = new Map();
142
- // 1. Discover and process sub-agents first (if enabled)
157
+ // 1. Discover sub-agents (if enabled)
143
158
  let subAgentInfos = [];
144
159
  if (processSubAgents) {
145
160
  subAgentInfos = await discoverSubAgents(sessionPath);
146
- for (const subAgent of subAgentInfos) {
147
- // Parse sub-agent session
148
- const subMessages = await readSessionMessages(subAgent.filePath, {
149
- includeSidechains: true,
161
+ // Filter out dead-end files
162
+ const activeSubAgents = [];
163
+ for (const sa of subAgentInfos) {
164
+ if (sa.isDeadEnd) {
165
+ deadEndFilesSkipped++;
166
+ log.debug('Skipping dead-end sub-agent file', {
167
+ agentId: sa.agentId,
168
+ lineCount: sa.lineCount,
169
+ });
170
+ }
171
+ else {
172
+ activeSubAgents.push(sa);
173
+ }
174
+ }
175
+ // Detect team topology using ALL turns (not turnsToProcess — needs full history)
176
+ const topology = detectTeamTopology(turns, activeSubAgents);
177
+ if (topology.isTeamSession) {
178
+ log.info('Detected team session', {
179
+ teamName: topology.teamName,
180
+ teammates: topology.teammates.size,
181
+ teamAgentIds: topology.teamAgentIds.size,
150
182
  });
151
- const subTurns = assembleTurns(subMessages);
152
- if (subTurns.length === 0)
153
- continue;
154
- // Chunk sub-agent turns
155
- const subChunks = chunkTurns(subTurns, {
183
+ // Partition sub-agents: team members vs regular sub-agents
184
+ const regularSubAgents = [];
185
+ const teamSubAgents = [];
186
+ for (const sa of activeSubAgents) {
187
+ if (topology.teamAgentIds.has(sa.agentId)) {
188
+ teamSubAgents.push(sa);
189
+ }
190
+ else {
191
+ regularSubAgents.push(sa);
192
+ }
193
+ }
194
+ // Process regular sub-agents through existing brief/debrief pipeline
195
+ for (const subAgent of regularSubAgents) {
196
+ const result = await processSubAgent(subAgent, info.sessionId, projectSlug, projectPath, maxTokensPerChunk, includeThinking, embedAllFn, embeddingModel, useEmbeddingCache);
197
+ if (!result)
198
+ continue;
199
+ totalChunkCount += result.chunkCount;
200
+ totalEdgeCount += result.edgeCount;
201
+ totalCacheHits += result.cacheHits;
202
+ totalCacheMisses += result.cacheMisses;
203
+ subAgentData.set(subAgent.agentId, { turns: result.turns, chunks: result.chunks });
204
+ }
205
+ // Process team members: group by teammate name, then process each file
206
+ const teammateGroups = groupTeammateFiles(teamSubAgents, topology);
207
+ const teamAgentData = new Map();
208
+ for (const group of teammateGroups) {
209
+ for (const subAgent of group.files) {
210
+ const subMessages = await readSessionMessages(subAgent.filePath, {
211
+ includeSidechains: true,
212
+ });
213
+ const subTurns = assembleTurns(subMessages);
214
+ if (subTurns.length === 0)
215
+ continue;
216
+ const subChunks = chunkTurns(subTurns, {
217
+ maxTokens: maxTokensPerChunk,
218
+ includeThinking,
219
+ sessionId: info.sessionId,
220
+ sessionSlug: projectSlug,
221
+ });
222
+ if (subChunks.length === 0)
223
+ continue;
224
+ // Store with human-readable agentId and teamName
225
+ const subChunkInputs = subChunks.map((chunk) => ({
226
+ ...chunkToInput(chunk),
227
+ projectPath,
228
+ agentId: group.humanName,
229
+ teamName: topology.teamName ?? undefined,
230
+ }));
231
+ const subChunkIds = insertChunks(subChunkInputs);
232
+ // Embed
233
+ const { embeddings: subEmbeddings, cacheHits: ch, cacheMisses: cm, } = await embedChunksWithCache(subChunks, embedAllFn, embeddingModel, useEmbeddingCache);
234
+ totalCacheHits += ch;
235
+ totalCacheMisses += cm;
236
+ await vectorStore.insertBatch(subChunkIds.map((id, i) => ({ id, embedding: subEmbeddings[i] })));
237
+ // Create within-chain edges
238
+ const subTransitions = detectCausalTransitions(subChunks);
239
+ const subEdgeResult = await createEdgesFromTransitions(subTransitions, subChunkIds);
240
+ totalChunkCount += subChunkIds.length;
241
+ totalEdgeCount += subEdgeResult.totalCount;
242
+ // Store for team edge detection (use ChunkInput with IDs)
243
+ const chunkInputsWithIds = subChunkInputs.map((c, i) => ({ ...c, id: subChunkIds[i] }));
244
+ const existing = teamAgentData.get(group.humanName);
245
+ if (existing) {
246
+ existing.turns.push(...subTurns);
247
+ existing.chunks.push(...chunkInputsWithIds);
248
+ }
249
+ else {
250
+ teamAgentData.set(group.humanName, {
251
+ turns: subTurns,
252
+ chunks: chunkInputsWithIds,
253
+ });
254
+ }
255
+ }
256
+ }
257
+ // 2. Chunk main session (only new turns)
258
+ const mainChunks = chunkTurns(turnsToProcess, {
156
259
  maxTokens: maxTokensPerChunk,
157
260
  includeThinking,
158
261
  sessionId: info.sessionId,
159
262
  sessionSlug: projectSlug,
160
263
  });
161
- if (subChunks.length === 0)
264
+ if (mainChunks.length === 0) {
265
+ return {
266
+ sessionId: info.sessionId,
267
+ sessionSlug: projectSlug,
268
+ chunkCount: totalChunkCount,
269
+ edgeCount: totalEdgeCount,
270
+ crossSessionEdges: 0,
271
+ subAgentEdges: 0,
272
+ skipped: false,
273
+ durationMs: Date.now() - startTime,
274
+ subAgentCount: subAgentInfos.length,
275
+ cacheHits: totalCacheHits,
276
+ cacheMisses: totalCacheMisses,
277
+ teamEdges: 0,
278
+ deadEndFilesSkipped,
279
+ isTeamSession: true,
280
+ };
281
+ }
282
+ // Store main chunks
283
+ const mainChunkInputs = mainChunks.map((chunk) => ({
284
+ ...chunkToInput(chunk),
285
+ projectPath,
286
+ }));
287
+ const mainChunkIds = insertChunks(mainChunkInputs);
288
+ // Embed main chunks
289
+ const { embeddings: mainEmbeddings, cacheHits: mainCH, cacheMisses: mainCM, } = await embedChunksWithCache(mainChunks, embedAllFn, embeddingModel, useEmbeddingCache);
290
+ totalCacheHits += mainCH;
291
+ totalCacheMisses += mainCM;
292
+ await vectorStore.insertBatch(mainChunkIds.map((id, i) => ({ id, embedding: mainEmbeddings[i] })));
293
+ // Create main intra-session edges
294
+ const mainTransitions = detectCausalTransitions(mainChunks);
295
+ const mainEdgeResult = await createEdgesFromTransitions(mainTransitions, mainChunkIds);
296
+ totalChunkCount += mainChunkIds.length;
297
+ totalEdgeCount += mainEdgeResult.totalCount;
298
+ // Brief/debrief edges for regular sub-agents
299
+ if (subAgentData.size > 0) {
300
+ const chunkIdsByTurn = buildChunkIdsByTurn(mainChunks.map((c, i) => ({ ...c, id: mainChunkIds[i] })));
301
+ const briefPoints = detectBriefPoints(turnsToProcess, chunkIdsByTurn, undefined, 0);
302
+ for (const brief of briefPoints) {
303
+ const subData = subAgentData.get(brief.agentId);
304
+ if (subData && subData.chunks.length > 0) {
305
+ const lastParentChunkId = brief.parentChunkIds[brief.parentChunkIds.length - 1];
306
+ const firstSubAgentChunkId = subData.chunks[0].id;
307
+ await createBriefEdge(lastParentChunkId, firstSubAgentChunkId);
308
+ subAgentEdges += 1;
309
+ }
310
+ }
311
+ const debriefPoints = detectDebriefPoints(turnsToProcess, new Map(Array.from(subAgentData.entries()).map(([k, v]) => [k, v.chunks])), mainChunks.map((c, i) => ({ ...c, id: mainChunkIds[i] })), chunkIdsByTurn, undefined, 1);
312
+ for (const debrief of debriefPoints) {
313
+ const lastAgentChunkId = debrief.agentFinalChunkIds[debrief.agentFinalChunkIds.length - 1];
314
+ const firstParentChunkId = debrief.parentChunkIds[0];
315
+ await createDebriefEdge(lastAgentChunkId, firstParentChunkId);
316
+ subAgentEdges += 1;
317
+ }
318
+ }
319
+ // Detect and create team edges
320
+ if (teamAgentData.size > 0) {
321
+ const mainChunkInputsForEdges = mainChunks.map((c, i) => ({
322
+ ...chunkToInput(c),
323
+ projectPath,
324
+ id: mainChunkIds[i],
325
+ }));
326
+ const teamEdgePoints = detectTeamEdges(turns, // Use ALL turns for detection
327
+ mainChunkInputsForEdges, teamAgentData, topology);
328
+ teamEdgeCount = await createTeamEdges(teamEdgePoints);
329
+ totalEdgeCount += teamEdgeCount;
330
+ }
331
+ // Save checkpoint
332
+ if (useIncrementalIngestion) {
333
+ saveCheckpoint({
334
+ sessionId: info.sessionId,
335
+ projectSlug,
336
+ lastTurnIndex: startTurnIndex + turnsToProcess.length - 1,
337
+ lastChunkId: mainChunkIds[mainChunkIds.length - 1],
338
+ fileMtime,
339
+ });
340
+ }
341
+ // Link cross-sessions
342
+ let crossSessionEdges = 0;
343
+ if (linkCrossSessions) {
344
+ const linkResult = await linkCrossSession(info.sessionId, projectSlug);
345
+ crossSessionEdges = linkResult.edgeCount;
346
+ }
347
+ return {
348
+ sessionId: info.sessionId,
349
+ sessionSlug: projectSlug,
350
+ chunkCount: totalChunkCount,
351
+ edgeCount: totalEdgeCount,
352
+ crossSessionEdges,
353
+ subAgentEdges,
354
+ skipped: false,
355
+ durationMs: Date.now() - startTime,
356
+ subAgentCount: subAgentInfos.length,
357
+ cacheHits: totalCacheHits,
358
+ cacheMisses: totalCacheMisses,
359
+ teamEdges: teamEdgeCount,
360
+ deadEndFilesSkipped,
361
+ isTeamSession: true,
362
+ };
363
+ }
364
+ // Non-team session: process all active sub-agents through existing pipeline
365
+ for (const subAgent of activeSubAgents) {
366
+ const result = await processSubAgent(subAgent, info.sessionId, projectSlug, projectPath, maxTokensPerChunk, includeThinking, embedAllFn, embeddingModel, useEmbeddingCache);
367
+ if (!result)
162
368
  continue;
163
- // Store sub-agent chunks
164
- const subChunkInputs = subChunks.map((chunk) => ({ ...chunkToInput(chunk), projectPath }));
165
- const subChunkIds = insertChunks(subChunkInputs);
166
- // Embed with caching and true batch embedding
167
- const { embeddings: subEmbeddings, cacheHits, cacheMisses, } = await embedChunksWithCache(subChunks, embedAllFn, embeddingModel, useEmbeddingCache);
168
- totalCacheHits += cacheHits;
169
- totalCacheMisses += cacheMisses;
170
- await vectorStore.insertBatch(subChunkIds.map((id, i) => ({
171
- id,
172
- embedding: subEmbeddings[i],
173
- })));
174
- // Create intra-agent edges
175
- const subTransitions = detectCausalTransitions(subChunks);
176
- const subEdgeResult = await createEdgesFromTransitions(subTransitions, subChunkIds);
177
- totalChunkCount += subChunkIds.length;
178
- totalEdgeCount += subEdgeResult.totalCount;
179
- // Store for brief/debrief detection
180
- subAgentData.set(subAgent.agentId, {
181
- turns: subTurns,
182
- chunks: subChunks.map((c, i) => ({ ...c, id: subChunkIds[i] })),
183
- });
369
+ totalChunkCount += result.chunkCount;
370
+ totalEdgeCount += result.edgeCount;
371
+ totalCacheHits += result.cacheHits;
372
+ totalCacheMisses += result.cacheMisses;
373
+ subAgentData.set(subAgent.agentId, { turns: result.turns, chunks: result.chunks });
184
374
  }
185
375
  }
186
376
  // 2. Chunk main session (only new turns)
@@ -203,6 +393,9 @@ export async function ingestSession(sessionPath, options = {}) {
203
393
  subAgentCount: subAgentInfos.length,
204
394
  cacheHits: totalCacheHits,
205
395
  cacheMisses: totalCacheMisses,
396
+ teamEdges: 0,
397
+ deadEndFilesSkipped,
398
+ isTeamSession: false,
206
399
  };
207
400
  }
208
401
  // Store main chunks
@@ -275,6 +468,9 @@ export async function ingestSession(sessionPath, options = {}) {
275
468
  subAgentCount: subAgentInfos.length,
276
469
  cacheHits: totalCacheHits,
277
470
  cacheMisses: totalCacheMisses,
471
+ teamEdges: 0,
472
+ deadEndFilesSkipped,
473
+ isTeamSession: false,
278
474
  };
279
475
  }
280
476
  finally {
@@ -283,6 +479,40 @@ export async function ingestSession(sessionPath, options = {}) {
283
479
  }
284
480
  }
285
481
  }
482
+ /**
483
+ * Process a single sub-agent file: parse, chunk, embed, store, create edges.
484
+ * Extracted to reduce duplication between team and non-team paths.
485
+ */
486
+ async function processSubAgent(subAgent, sessionId, sessionSlug, projectPath, maxTokensPerChunk, includeThinking, embedAllFn, embeddingModel, useEmbeddingCache) {
487
+ const subMessages = await readSessionMessages(subAgent.filePath, {
488
+ includeSidechains: true,
489
+ });
490
+ const subTurns = assembleTurns(subMessages);
491
+ if (subTurns.length === 0)
492
+ return null;
493
+ const subChunks = chunkTurns(subTurns, {
494
+ maxTokens: maxTokensPerChunk,
495
+ includeThinking,
496
+ sessionId,
497
+ sessionSlug,
498
+ });
499
+ if (subChunks.length === 0)
500
+ return null;
501
+ const subChunkInputs = subChunks.map((chunk) => ({ ...chunkToInput(chunk), projectPath }));
502
+ const subChunkIds = insertChunks(subChunkInputs);
503
+ const { embeddings: subEmbeddings, cacheHits, cacheMisses, } = await embedChunksWithCache(subChunks, embedAllFn, embeddingModel, useEmbeddingCache);
504
+ await vectorStore.insertBatch(subChunkIds.map((id, i) => ({ id, embedding: subEmbeddings[i] })));
505
+ const subTransitions = detectCausalTransitions(subChunks);
506
+ const subEdgeResult = await createEdgesFromTransitions(subTransitions, subChunkIds);
507
+ return {
508
+ turns: subTurns,
509
+ chunks: subChunks.map((c, i) => ({ ...c, id: subChunkIds[i] })),
510
+ chunkCount: subChunkIds.length,
511
+ edgeCount: subEdgeResult.totalCount,
512
+ cacheHits,
513
+ cacheMisses,
514
+ };
515
+ }
286
516
  /**
287
517
  * Embed chunks with optional content-hash caching.
288
518
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ingest-session.js","sourceRoot":"","sources":["../../src/ingest/ingest-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest-session.js","sourceRoot":"","sources":["../../src/ingest/ingest-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Team topology detection for agent team sessions.
3
+ *
4
+ * Detects whether a session uses agent teams by scanning for:
5
+ * - TeamCreate tool calls (explicit team creation)
6
+ * - Task tool calls with team_name (team member spawning)
7
+ * - SendMessage tool calls (inter-agent messaging)
8
+ *
9
+ * Resolves hex agent IDs to human-readable teammate names and
10
+ * groups multi-file teammates for consolidated ingestion.
11
+ */
12
+ import type { Turn } from '../parser/types.js';
13
+ import type { SubAgentInfo } from '../parser/session-reader.js';
14
+ /**
15
+ * Detected team topology for a session.
16
+ */
17
+ export interface TeamTopology {
18
+ /** Whether this session uses agent teams */
19
+ isTeamSession: boolean;
20
+ /** Name of the team (from TeamCreate), or null */
21
+ teamName: string | null;
22
+ /** Map of hex agent ID → human-readable name */
23
+ teammates: Map<string, string>;
24
+ /** Set of hex IDs that belong to the team (vs regular sub-agents) */
25
+ teamAgentIds: Set<string>;
26
+ }
27
+ /**
28
+ * A group of files belonging to one teammate.
29
+ */
30
+ export interface TeammateFileGroup {
31
+ /** Human-readable teammate name */
32
+ humanName: string;
33
+ /** Sub-agent files for this teammate, ordered by first message timestamp */
34
+ files: SubAgentInfo[];
35
+ }
36
+ /**
37
+ * Detect team topology from main session turns and sub-agent info.
38
+ *
39
+ * Scans assistant blocks for TeamCreate, Task (with team_name), and
40
+ * SendMessage tool calls. Resolves hex IDs to human names using a
41
+ * priority chain: Task.name > Task result parsing > SendMessage routing > XML fallback.
42
+ */
43
+ export declare function detectTeamTopology(mainTurns: Turn[], subAgents: SubAgentInfo[]): TeamTopology;
44
+ /**
45
+ * Group sub-agent files by resolved teammate name.
46
+ *
47
+ * Only includes files that belong to the team (in teamAgentIds).
48
+ * Filters out dead-end files. Groups multiple files per teammate
49
+ * when a teammate has been respawned.
50
+ */
51
+ export declare function groupTeammateFiles(subAgents: SubAgentInfo[], topology: TeamTopology): TeammateFileGroup[];
52
+ //# sourceMappingURL=team-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-detector.d.ts","sourceRoot":"","sources":["../../src/ingest/team-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gDAAgD;IAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,qEAAqE;IACrE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAwF7F;AAoID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EAAE,EACzB,QAAQ,EAAE,YAAY,GACrB,iBAAiB,EAAE,CA0BrB"}