@tyroneross/bookmark 0.1.0 → 0.3.2

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 (109) hide show
  1. package/.claude-plugin/marketplace.json +29 -12
  2. package/.claude-plugin/plugin.json +12 -8
  3. package/.codex-plugin/plugin.json +31 -0
  4. package/.mcp.json +8 -0
  5. package/CLAUDE.md +83 -49
  6. package/LICENSE +202 -21
  7. package/README.md +150 -57
  8. package/agents/snapshot-analyst.md +1 -1
  9. package/commands/bookmark.md +29 -0
  10. package/commands/feedback.md +37 -0
  11. package/commands/restore.md +14 -4
  12. package/commands/snapshot.md +19 -7
  13. package/commands/status.md +1 -1
  14. package/dist/cli/index.js +627 -87
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/snapshot-resolution.d.ts +15 -0
  17. package/dist/cli/snapshot-resolution.d.ts.map +1 -0
  18. package/dist/cli/snapshot-resolution.js +21 -0
  19. package/dist/cli/snapshot-resolution.js.map +1 -0
  20. package/dist/config.d.ts +19 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +149 -23
  23. package/dist/config.js.map +1 -1
  24. package/dist/context/freshness.d.ts +3 -0
  25. package/dist/context/freshness.d.ts.map +1 -0
  26. package/dist/context/freshness.js +29 -0
  27. package/dist/context/freshness.js.map +1 -0
  28. package/dist/context/handoff-prompt.d.ts +12 -0
  29. package/dist/context/handoff-prompt.d.ts.map +1 -0
  30. package/dist/context/handoff-prompt.js +29 -0
  31. package/dist/context/handoff-prompt.js.map +1 -0
  32. package/dist/index.d.ts +7 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/mcp/server.d.ts +9 -0
  37. package/dist/mcp/server.d.ts.map +1 -0
  38. package/dist/mcp/server.js +85 -0
  39. package/dist/mcp/server.js.map +1 -0
  40. package/dist/mcp/tools.d.ts +97 -0
  41. package/dist/mcp/tools.d.ts.map +1 -0
  42. package/dist/mcp/tools.js +304 -0
  43. package/dist/mcp/tools.js.map +1 -0
  44. package/dist/registry.d.ts +40 -0
  45. package/dist/registry.d.ts.map +1 -0
  46. package/dist/registry.js +134 -0
  47. package/dist/registry.js.map +1 -0
  48. package/dist/restore/index.d.ts +13 -1
  49. package/dist/restore/index.d.ts.map +1 -1
  50. package/dist/restore/index.js +163 -43
  51. package/dist/restore/index.js.map +1 -1
  52. package/dist/setup/auto-setup.d.ts +8 -2
  53. package/dist/setup/auto-setup.d.ts.map +1 -1
  54. package/dist/setup/auto-setup.js +287 -67
  55. package/dist/setup/auto-setup.js.map +1 -1
  56. package/dist/setup/configure-hooks.d.ts +14 -3
  57. package/dist/setup/configure-hooks.d.ts.map +1 -1
  58. package/dist/setup/configure-hooks.js +156 -24
  59. package/dist/setup/configure-hooks.js.map +1 -1
  60. package/dist/snapshot/capture.d.ts +13 -9
  61. package/dist/snapshot/capture.d.ts.map +1 -1
  62. package/dist/snapshot/capture.js +42 -105
  63. package/dist/snapshot/capture.js.map +1 -1
  64. package/dist/snapshot/compress.d.ts +3 -3
  65. package/dist/snapshot/compress.d.ts.map +1 -1
  66. package/dist/snapshot/compress.js +35 -67
  67. package/dist/snapshot/compress.js.map +1 -1
  68. package/dist/snapshot/storage.d.ts +7 -0
  69. package/dist/snapshot/storage.d.ts.map +1 -1
  70. package/dist/snapshot/storage.js +31 -6
  71. package/dist/snapshot/storage.js.map +1 -1
  72. package/dist/threshold/state.d.ts +5 -0
  73. package/dist/threshold/state.d.ts.map +1 -1
  74. package/dist/threshold/state.js +28 -2
  75. package/dist/threshold/state.js.map +1 -1
  76. package/dist/threshold/token-usage.d.ts +29 -0
  77. package/dist/threshold/token-usage.d.ts.map +1 -0
  78. package/dist/threshold/token-usage.js +128 -0
  79. package/dist/threshold/token-usage.js.map +1 -0
  80. package/dist/trails/identity.d.ts +76 -0
  81. package/dist/trails/identity.d.ts.map +1 -0
  82. package/dist/trails/identity.js +117 -0
  83. package/dist/trails/identity.js.map +1 -0
  84. package/dist/trails/reader.d.ts +7 -0
  85. package/dist/trails/reader.d.ts.map +1 -0
  86. package/dist/trails/reader.js +22 -0
  87. package/dist/trails/reader.js.map +1 -0
  88. package/dist/trails/writer.d.ts +9 -0
  89. package/dist/trails/writer.d.ts.map +1 -0
  90. package/dist/trails/writer.js +110 -0
  91. package/dist/trails/writer.js.map +1 -0
  92. package/dist/transcript/extractor.d.ts +17 -4
  93. package/dist/transcript/extractor.d.ts.map +1 -1
  94. package/dist/transcript/extractor.js +141 -174
  95. package/dist/transcript/extractor.js.map +1 -1
  96. package/dist/transcript/parser.d.ts.map +1 -1
  97. package/dist/transcript/parser.js +69 -7
  98. package/dist/transcript/parser.js.map +1 -1
  99. package/dist/types.d.ts +37 -38
  100. package/dist/types.d.ts.map +1 -1
  101. package/hooks/hooks.json +12 -14
  102. package/package.json +13 -10
  103. package/scripts/install-plugin.sh +48 -0
  104. package/skills/context-continuity/SKILL.md +43 -24
  105. package/commands/activate.md +0 -20
  106. package/dist/transcript/estimator.d.ts +0 -20
  107. package/dist/transcript/estimator.d.ts.map +0 -1
  108. package/dist/transcript/estimator.js +0 -95
  109. package/dist/transcript/estimator.js.map +0 -1
@@ -1,131 +1,58 @@
1
- // ─── Pattern Definitions ───
2
- const DECISION_PATTERNS = [
3
- /\b(?:decided to|chose|going with|approach:|instead of|opted for|settled on|will use|let's go with|I'll use|we'll use)\b/i,
4
- /\b(?:because|since|rationale:|reason:|the advantage|better approach)\b/i,
5
- ];
6
- const OPEN_ITEM_PATTERNS = [
7
- /\b(?:still need to|TODO|next step|remaining|haven't yet|need to|should also|left to do|pending)\b/i,
8
- /- \[ \]/, // Unchecked markdown checkbox
9
- /\b(?:will need to|must still|haven't implemented|not yet)\b/i,
10
- ];
11
- const UNKNOWN_PATTERNS = [
12
- /\b(?:not sure|unclear|blocker|blocked by|need to figure out|question:|unknown|investigate|TBD)\b/i,
13
- /\b(?:might need|may require|haven't determined|needs research|uncertain)\b/i,
14
- ];
15
- const ERROR_PATTERNS = [
16
- /\b(?:error|Error|ERROR|exception|Exception|traceback|Traceback|failed|FAILED)\b/,
17
- /\b(?:TypeError|SyntaxError|ReferenceError|cannot find|not found|undefined is not)\b/,
18
- /\b(?:ENOENT|EACCES|EPERM|ECONNREFUSED|ETIMEDOUT)\b/,
19
- ];
1
+ import { relative, isAbsolute } from 'node:path';
2
+ /**
3
+ * Convert an absolute file path to a project-relative one. Falls back to
4
+ * the original path when projectPath is missing or the file isn't under
5
+ * it (e.g. a tool call that touched something outside the repo, like a
6
+ * scratchpad in /tmp).
7
+ *
8
+ * Why: snapshots used to embed absolute paths
9
+ * (e.g. /Users/tyroneross/Desktop/git-folder/...). When the project moved
10
+ * to ~/dev/git-folder/... every old absolute path went stale, defeating
11
+ * the whole point of the snapshot. Going forward we store paths relative
12
+ * to project_path so a move only needs the project_path field updated
13
+ * (or for git-tracked moves — nothing at all).
14
+ */
15
+ function toProjectRelative(filePath, projectPath) {
16
+ if (!projectPath || !filePath)
17
+ return filePath;
18
+ if (!isAbsolute(filePath))
19
+ return filePath;
20
+ if (!filePath.startsWith(projectPath))
21
+ return filePath;
22
+ const rel = relative(projectPath, filePath);
23
+ // `relative` returns '' when paths match exactly; preserve a sentinel so
24
+ // downstream code knows it's the project root rather than the empty
25
+ // string (which can read as "missing data").
26
+ return rel === '' ? '.' : rel;
27
+ }
28
+ /**
29
+ * Extractor v0.3 — file tracking + tool summary only.
30
+ *
31
+ * Removed: decision extraction, open items, unknowns, errors, sentiment, status.
32
+ * These produced noise (not signal) via regex. Claude writes semantic content
33
+ * when a lifecycle or token hook requests the handoff instead.
34
+ *
35
+ * Kept: file change tracking (accurate) and tool usage summary (accurate).
36
+ */
20
37
  const FILE_TOOL_NAMES = new Set(['Write', 'Edit', 'write', 'edit']);
21
38
  const FILE_CREATING_BASH_PATTERNS = [
22
39
  /\b(?:mkdir|touch|mv|cp|cat\s+>|echo\s+>|tee)\b/,
23
40
  ];
24
41
  /**
25
- * Extract structured context from transcript entries using pattern matching.
26
- * Zero LLM calls pure heuristic extraction.
42
+ * Extract file changes and tool usage from transcript entries.
43
+ * These are the two extraction functions that actually produce accurate data.
27
44
  */
28
- export function extractFromEntries(entries) {
29
- const decisions = extractDecisions(entries);
30
- const openItems = extractOpenItems(entries);
31
- const unknowns = extractUnknowns(entries);
32
- const filesChanged = extractFilesChanged(entries);
33
- const errors = extractErrors(entries);
34
- const toolsSummary = extractToolsSummary(entries);
35
- const currentStatus = extractCurrentStatus(entries);
45
+ export function extractFilesAndTools(entries, options) {
46
+ const projectPath = options?.projectPath;
36
47
  return {
37
- current_status: currentStatus,
38
- decisions,
39
- open_items: openItems,
40
- unknowns,
41
- files_changed: filesChanged,
42
- errors_encountered: errors,
43
- tools_summary: toolsSummary,
48
+ files_changed: extractFilesChanged(entries, projectPath),
49
+ tools_summary: extractToolsSummary(entries),
44
50
  };
45
51
  }
46
- function extractDecisions(entries) {
47
- const decisions = [];
48
- const seen = new Set();
49
- for (const entry of entries) {
50
- if (entry.type !== 'assistant')
51
- continue;
52
- const text = getEntryText(entry);
53
- if (!text)
54
- continue;
55
- for (const pattern of DECISION_PATTERNS) {
56
- if (pattern.test(text)) {
57
- // Extract the sentence containing the decision
58
- const sentences = text.split(/[.!?\n]/).filter(s => s.trim().length > 10);
59
- for (const sentence of sentences) {
60
- if (DECISION_PATTERNS.some(p => p.test(sentence))) {
61
- const clean = sentence.trim().slice(0, 200);
62
- const key = clean.toLowerCase().slice(0, 50);
63
- if (!seen.has(key)) {
64
- seen.add(key);
65
- decisions.push({ description: clean });
66
- }
67
- }
68
- }
69
- break;
70
- }
71
- }
72
- }
73
- return decisions.slice(0, 15); // maxDecisions
74
- }
75
- function extractOpenItems(entries) {
76
- const items = [];
77
- const seen = new Set();
78
- // Process in reverse — more recent items are more relevant
79
- for (let i = entries.length - 1; i >= 0; i--) {
80
- const entry = entries[i];
81
- if (entry.type !== 'assistant')
82
- continue;
83
- const text = getEntryText(entry);
84
- if (!text)
85
- continue;
86
- const sentences = text.split(/[.!?\n]/).filter(s => s.trim().length > 10);
87
- for (const sentence of sentences) {
88
- if (OPEN_ITEM_PATTERNS.some(p => p.test(sentence))) {
89
- const clean = sentence.trim().slice(0, 200);
90
- const key = clean.toLowerCase().slice(0, 50);
91
- if (!seen.has(key)) {
92
- seen.add(key);
93
- items.push({
94
- description: clean,
95
- priority: inferPriority(clean),
96
- });
97
- }
98
- }
99
- }
100
- }
101
- return items.slice(0, 10); // maxOpenItems
102
- }
103
- function extractUnknowns(entries) {
104
- const unknowns = [];
105
- const seen = new Set();
106
- for (let i = entries.length - 1; i >= 0; i--) {
107
- const entry = entries[i];
108
- if (entry.type !== 'assistant')
109
- continue;
110
- const text = getEntryText(entry);
111
- if (!text)
112
- continue;
113
- const sentences = text.split(/[.!?\n]/).filter(s => s.trim().length > 10);
114
- for (const sentence of sentences) {
115
- if (UNKNOWN_PATTERNS.some(p => p.test(sentence))) {
116
- const clean = sentence.trim().slice(0, 200);
117
- const key = clean.toLowerCase().slice(0, 50);
118
- if (!seen.has(key)) {
119
- seen.add(key);
120
- unknowns.push(clean);
121
- }
122
- }
123
- }
124
- }
125
- return unknowns.slice(0, 10);
126
- }
127
- function extractFilesChanged(entries) {
52
+ function extractFilesChanged(entries, projectPath) {
128
53
  const fileMap = new Map();
54
+ const fileLinesChanged = new Map();
55
+ const fileStructuralChanges = new Map();
129
56
  for (const entry of entries) {
130
57
  if (entry.type === 'tool_use') {
131
58
  const toolName = entry.tool_name ?? '';
@@ -133,20 +60,33 @@ function extractFilesChanged(entries) {
133
60
  if (FILE_TOOL_NAMES.has(toolName)) {
134
61
  const filePath = input.file_path ?? input.path ?? '';
135
62
  if (filePath) {
63
+ if (projectPath && !filePath.startsWith(projectPath))
64
+ continue;
136
65
  const ops = fileMap.get(filePath) ?? new Set();
137
66
  ops.add(toolName.toLowerCase());
138
67
  fileMap.set(filePath, ops);
68
+ const newStr = input.new_string ?? input.content ?? '';
69
+ const oldStr = input.old_string ?? '';
70
+ const linesAdded = newStr ? newStr.split('\n').length : 0;
71
+ const linesRemoved = oldStr ? oldStr.split('\n').length : 0;
72
+ const delta = Math.abs(linesAdded - linesRemoved) + Math.min(linesAdded, linesRemoved);
73
+ fileLinesChanged.set(filePath, (fileLinesChanged.get(filePath) ?? 0) + delta);
74
+ const changes = fileStructuralChanges.get(filePath) ?? new Set();
75
+ extractStructuralHints(newStr, oldStr, changes);
76
+ if (changes.size > 0) {
77
+ fileStructuralChanges.set(filePath, changes);
78
+ }
139
79
  }
140
80
  }
141
- // Detect file operations in Bash commands
142
81
  if (toolName === 'Bash' || toolName === 'bash') {
143
82
  const cmd = input.command ?? '';
144
83
  for (const pattern of FILE_CREATING_BASH_PATTERNS) {
145
84
  if (pattern.test(cmd)) {
146
- // Try to extract file path from command
147
85
  const parts = cmd.split(/\s+/);
148
86
  const lastPart = parts[parts.length - 1];
149
87
  if (lastPart && !lastPart.startsWith('-')) {
88
+ if (projectPath && !lastPart.startsWith(projectPath))
89
+ break;
150
90
  const ops = fileMap.get(lastPart) ?? new Set();
151
91
  ops.add('create');
152
92
  fileMap.set(lastPart, ops);
@@ -159,43 +99,68 @@ function extractFilesChanged(entries) {
159
99
  }
160
100
  const result = [];
161
101
  for (const [path, ops] of fileMap) {
162
- result.push({ path, operations: [...ops] });
102
+ const changes = fileStructuralChanges.get(path);
103
+ const summary = changes && changes.size > 0
104
+ ? [...changes].slice(0, 4).join(', ')
105
+ : undefined;
106
+ result.push({
107
+ // Store relative to projectPath so snapshots survive a project move.
108
+ // The original absolute path is preserved in `absolute_path` for
109
+ // diagnostic use; consumers should prefer `path` joined to the
110
+ // current project_path.
111
+ path: toProjectRelative(path, projectPath),
112
+ operations: [...ops],
113
+ lines_changed: fileLinesChanged.get(path) ?? 0,
114
+ summary,
115
+ });
163
116
  }
164
- return result.slice(0, 20); // maxFilesTracked
117
+ return result.slice(0, 20);
165
118
  }
166
- function extractErrors(entries) {
167
- const errors = [];
168
- const seen = new Set();
169
- const resolvedFiles = new Set();
170
- // First pass: find files that were successfully edited after errors
171
- for (const entry of entries) {
172
- if (entry.type === 'tool_use' && FILE_TOOL_NAMES.has(entry.tool_name ?? '')) {
173
- const filePath = entry.tool_input?.file_path ?? '';
174
- if (filePath)
175
- resolvedFiles.add(filePath);
119
+ function extractStructuralHints(newStr, oldStr, changes) {
120
+ if (!newStr && !oldStr)
121
+ return;
122
+ const newLines = new Set(newStr.split('\n').map(l => l.trim()));
123
+ const oldLines = new Set(oldStr.split('\n').map(l => l.trim()));
124
+ const STRUCTURAL_PATTERNS = [
125
+ { pattern: /^export\s+(?:async\s+)?function\s+(\w+)/, prefix: '+fn' },
126
+ { pattern: /^(?:async\s+)?function\s+(\w+)/, prefix: '+fn' },
127
+ { pattern: /^export\s+(?:const|let)\s+(\w+)\s*=\s*(?:async\s*)?\(/, prefix: '+fn' },
128
+ { pattern: /^(?:const|let)\s+(\w+)\s*=\s*(?:async\s*)?\(/, prefix: '+fn' },
129
+ { pattern: /^export\s+class\s+(\w+)/, prefix: '+class' },
130
+ { pattern: /^class\s+(\w+)/, prefix: '+class' },
131
+ { pattern: /^export\s+interface\s+(\w+)/, prefix: '+interface' },
132
+ { pattern: /^interface\s+(\w+)/, prefix: '+interface' },
133
+ { pattern: /^export\s+type\s+(\w+)/, prefix: '+type' },
134
+ { pattern: /^type\s+(\w+)/, prefix: '+type' },
135
+ { pattern: /^import\s+.*from\s+['"]([^'"]+)['"]/, prefix: '+import' },
136
+ ];
137
+ for (const line of newLines) {
138
+ if (oldLines.has(line))
139
+ continue;
140
+ for (const { pattern, prefix } of STRUCTURAL_PATTERNS) {
141
+ const match = line.match(pattern);
142
+ if (match) {
143
+ changes.add(`${prefix} ${match[1]}`);
144
+ break;
145
+ }
176
146
  }
177
147
  }
178
- for (const entry of entries) {
179
- if (entry.type !== 'tool_result')
180
- continue;
181
- const text = getEntryText(entry);
182
- if (!text)
183
- continue;
184
- if (ERROR_PATTERNS.some(p => p.test(text))) {
185
- // Extract first line of error
186
- const firstLine = text.split('\n')[0]?.trim().slice(0, 200) ?? '';
187
- const key = firstLine.toLowerCase().slice(0, 50);
188
- if (!seen.has(key) && firstLine) {
189
- seen.add(key);
190
- errors.push({
191
- message: firstLine,
192
- tool: entry.tool_name,
193
- resolved: false, // Will be updated below
194
- });
148
+ if (oldStr) {
149
+ for (const line of oldLines) {
150
+ if (newLines.has(line))
151
+ continue;
152
+ for (const { pattern, prefix } of STRUCTURAL_PATTERNS) {
153
+ const match = line.match(pattern);
154
+ if (match) {
155
+ const removePrefix = prefix.replace('+', '-');
156
+ if (!changes.has(`${prefix} ${match[1]}`)) {
157
+ changes.add(`${removePrefix} ${match[1]}`);
158
+ }
159
+ break;
160
+ }
195
161
  }
196
162
  }
197
163
  }
198
- return errors.slice(0, 10); // maxErrorsTracked
199
164
  }
200
165
  function extractToolsSummary(entries) {
201
166
  const summary = {};
@@ -206,32 +171,34 @@ function extractToolsSummary(entries) {
206
171
  }
207
172
  return summary;
208
173
  }
209
- function extractCurrentStatus(entries) {
210
- // Find the last substantial assistant message
174
+ export function extractCommitGap(entries) {
175
+ let lastCommitIdx = -1;
211
176
  for (let i = entries.length - 1; i >= 0; i--) {
212
177
  const entry = entries[i];
213
- if (entry.type !== 'assistant')
214
- continue;
215
- const text = getEntryText(entry);
216
- if (!text || text.length < 50)
217
- continue;
218
- // Take first 2-3 sentences or 300 chars
219
- const sentences = text.split(/(?<=[.!?])\s+/).slice(0, 3);
220
- return sentences.join(' ').slice(0, 300);
178
+ if (entry.type === 'tool_use' && (entry.tool_name === 'Bash' || entry.tool_name === 'bash')) {
179
+ const cmd = entry.tool_input?.command ?? '';
180
+ if (/git\s+commit\b/.test(cmd)) {
181
+ lastCommitIdx = i;
182
+ break;
183
+ }
184
+ }
221
185
  }
222
- return 'No status available';
223
- }
224
- function getEntryText(entry) {
225
- if (typeof entry.content === 'string')
226
- return entry.content;
227
- return '';
228
- }
229
- function inferPriority(text) {
230
- const lower = text.toLowerCase();
231
- if (/\b(?:must|critical|urgent|blocker|breaking|immediately)\b/.test(lower))
232
- return 'high';
233
- if (/\b(?:should|important|next|before|required)\b/.test(lower))
234
- return 'medium';
235
- return 'low';
186
+ let editCount = 0;
187
+ const filesEdited = new Set();
188
+ const searchFrom = lastCommitIdx >= 0 ? lastCommitIdx + 1 : 0;
189
+ for (let i = searchFrom; i < entries.length; i++) {
190
+ const entry = entries[i];
191
+ if (entry.type === 'tool_use' && FILE_TOOL_NAMES.has(entry.tool_name ?? '')) {
192
+ editCount++;
193
+ const filePath = entry.tool_input?.file_path ?? '';
194
+ if (filePath)
195
+ filesEdited.add(filePath);
196
+ }
197
+ }
198
+ return {
199
+ edits_since_commit: editCount,
200
+ files_since_commit: filesEdited.size,
201
+ last_commit_index: lastCommitIdx,
202
+ };
236
203
  }
237
204
  //# sourceMappingURL=extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/transcript/extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/transcript/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,WAAoB;IAC/D,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5C,yEAAyE;IACzE,oEAAoE;IACpE,6CAA6C;IAC7C,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AAEH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACpE,MAAM,2BAA2B,GAAG;IAClC,gDAAgD;CACjD,CAAC;AAWF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B,EAAE,OAAwB;IACvF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IACzC,OAAO;QACL,aAAa,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;QACxD,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA0B,EAAE,WAAoB;IAC3E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;YAErC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAI,KAAK,CAAC,SAAoB,IAAK,KAAK,CAAC,IAAe,IAAI,EAAE,CAAC;gBAC7E,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;wBAAE,SAAS;oBAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;oBAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAmB,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAE3B,MAAM,MAAM,GAAI,KAAK,CAAC,UAAqB,IAAK,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;oBAC/E,MAAM,MAAM,GAAI,KAAK,CAAC,UAAqB,IAAI,EAAE,CAAC;oBAClD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;oBACvF,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;oBAE9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;oBACjE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oBAChD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBACrB,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAI,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;gBAC5C,KAAK,MAAM,OAAO,IAAI,2BAA2B,EAAE,CAAC;oBAClD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACzC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1C,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;gCAAE,MAAM;4BAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;4BAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC7B,CAAC;wBACD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;YACzC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,CAAC,IAAI,CAAC;YACV,qEAAqE;YACrE,iEAAiE;YACjE,+DAA+D;YAC/D,wBAAwB;YACxB,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC;YAC1C,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC;YACpB,aAAa,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc,EAAE,MAAc,EAAE,OAAoB;IAClF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE,OAAO;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,mBAAmB,GAA+C;QACtE,EAAE,OAAO,EAAE,yCAAyC,EAAE,MAAM,EAAE,KAAK,EAAE;QACrE,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,EAAE,KAAK,EAAE;QAC5D,EAAE,OAAO,EAAE,uDAAuD,EAAE,MAAM,EAAE,KAAK,EAAE;QACnF,EAAE,OAAO,EAAE,8CAA8C,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1E,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE;QACxD,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC/C,EAAE,OAAO,EAAE,6BAA6B,EAAE,MAAM,EAAE,YAAY,EAAE;QAChE,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE;QACvD,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE;QACtD,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE;QAC7C,EAAE,OAAO,EAAE,qCAAqC,EAAE,MAAM,EAAE,SAAS,EAAE;KACtE,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QACjC,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,mBAAmB,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,mBAAmB,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC7C,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA0B;IACrD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;YAC5F,MAAM,GAAG,GAAI,KAAK,CAAC,UAAU,EAAE,OAAkB,IAAI,EAAE,CAAC;YACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,aAAa,GAAG,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,SAAS,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAI,KAAK,CAAC,UAAU,EAAE,SAAoB,IAAI,EAAE,CAAC;YAC/D,IAAI,QAAQ;gBAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,WAAW,CAAC,IAAI;QACpC,iBAAiB,EAAE,aAAa;KACjC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/transcript/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAgD3F"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/transcript/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CA8F3F"}
@@ -30,9 +30,53 @@ export function parseTranscript(transcriptPath, options) {
30
30
  continue;
31
31
  try {
32
32
  const parsed = JSON.parse(trimmed);
33
- const entry = normalizeEntry(parsed);
34
- if (entry) {
35
- entries.push(entry);
33
+ const normalized = normalizeEntry(parsed);
34
+ if (normalized) {
35
+ entries.push(normalized);
36
+ }
37
+ // Also extract individual tool_use blocks from assistant messages
38
+ // Claude Code embeds tool calls inside message.content arrays
39
+ const message = parsed.message;
40
+ if (message?.content && Array.isArray(message.content)) {
41
+ // Build a tool_use_id → tool_name lookup for resolving tool_result entries
42
+ const toolIdToName = new Map();
43
+ for (const block of message.content) {
44
+ if (block.type === 'tool_use' && block.id && block.name) {
45
+ toolIdToName.set(block.id, block.name);
46
+ }
47
+ }
48
+ for (const block of message.content) {
49
+ if (block.type === 'tool_use' && block.name) {
50
+ entries.push({
51
+ type: 'tool_use',
52
+ timestamp: parsed.timestamp ?? undefined,
53
+ content: '',
54
+ tool_name: block.name,
55
+ tool_input: block.input,
56
+ session_id: parsed.sessionId ?? undefined,
57
+ });
58
+ }
59
+ if (block.type === 'tool_result') {
60
+ const resultContent = typeof block.content === 'string'
61
+ ? block.content
62
+ : Array.isArray(block.content)
63
+ ? block.content
64
+ .map(c => c.text ?? '')
65
+ .filter(Boolean)
66
+ .join('\n')
67
+ : '';
68
+ // Resolve tool_use_id to actual tool name
69
+ const toolUseId = block.tool_use_id;
70
+ const resolvedName = toolUseId ? toolIdToName.get(toolUseId) : undefined;
71
+ entries.push({
72
+ type: 'tool_result',
73
+ timestamp: parsed.timestamp ?? undefined,
74
+ content: resultContent,
75
+ tool_name: resolvedName ?? toolUseId,
76
+ session_id: parsed.sessionId ?? undefined,
77
+ });
78
+ }
79
+ }
36
80
  }
37
81
  }
38
82
  catch {
@@ -54,13 +98,27 @@ function normalizeEntry(raw) {
54
98
  if (!type)
55
99
  return null;
56
100
  const content = extractTextContent(raw);
101
+ // Claude Code JSONL nests message fields
102
+ const message = raw.message;
103
+ // Extract tool_use blocks from assistant message content arrays
104
+ let toolName = raw.tool_name ?? raw.name ?? undefined;
105
+ let toolInput = raw.tool_input ?? raw.input ?? undefined;
106
+ if (!toolName && message?.content && Array.isArray(message.content)) {
107
+ for (const block of message.content) {
108
+ if (block.type === 'tool_use') {
109
+ toolName = block.name;
110
+ toolInput = block.input;
111
+ break;
112
+ }
113
+ }
114
+ }
57
115
  return {
58
116
  type,
59
117
  timestamp: raw.timestamp ?? undefined,
60
118
  content,
61
- tool_name: raw.tool_name ?? raw.name ?? undefined,
62
- tool_input: raw.tool_input ?? raw.input ?? undefined,
63
- session_id: raw.session_id ?? undefined,
119
+ tool_name: toolName,
120
+ tool_input: toolInput,
121
+ session_id: raw.sessionId ?? raw.session_id ?? undefined,
64
122
  };
65
123
  }
66
124
  function inferType(raw) {
@@ -98,7 +156,9 @@ function inferType(raw) {
98
156
  * Extract text content from various message formats.
99
157
  */
100
158
  function extractTextContent(raw) {
101
- const content = raw.content ?? raw.text ?? raw.message ?? '';
159
+ // Claude Code JSONL nests content under message.content
160
+ const message = raw.message;
161
+ const content = raw.content ?? message?.content ?? raw.text ?? '';
102
162
  if (typeof content === 'string')
103
163
  return content;
104
164
  if (Array.isArray(content)) {
@@ -108,6 +168,8 @@ function extractTextContent(raw) {
108
168
  return block;
109
169
  if (block.text)
110
170
  return block.text;
171
+ if (block.thinking)
172
+ return block.thinking;
111
173
  if (block.content && typeof block.content === 'string')
112
174
  return block.content;
113
175
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/transcript/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/transcript/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAa7D;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,cAAsB,EAAE,OAAsB;IAC5E,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;IAE7B,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,iBAAiB,GAAG,WAAW,EAAE,CAAC;YACpC,iBAAiB,IAAI,SAAS,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,iBAAiB,IAAI,SAAS,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAED,kEAAkE;YAClE,8DAA8D;YAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAA8C,CAAC;YACtE,IAAI,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,2EAA2E;gBAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAyC,EAAE,CAAC;oBACtE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAY,EAAE,KAAK,CAAC,IAAc,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAyC,EAAE,CAAC;oBACtE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC5C,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,UAAU;4BAChB,SAAS,EAAG,MAAM,CAAC,SAAoB,IAAI,SAAS;4BACpD,OAAO,EAAE,EAAE;4BACX,SAAS,EAAE,KAAK,CAAC,IAAc;4BAC/B,UAAU,EAAE,KAAK,CAAC,KAAgC;4BAClD,UAAU,EAAG,MAAM,CAAC,SAAoB,IAAI,SAAS;yBACtD,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACjC,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;4BACrD,CAAC,CAAC,KAAK,CAAC,OAAO;4BACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gCAC5B,CAAC,CAAE,KAAK,CAAC,OAA0C;qCAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,IAAe,IAAI,EAAE,CAAC;qCAClC,MAAM,CAAC,OAAO,CAAC;qCACf,IAAI,CAAC,IAAI,CAAC;gCACf,CAAC,CAAC,EAAE,CAAC;wBACT,0CAA0C;wBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,WAAiC,CAAC;wBAC1D,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACzE,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,aAAa;4BACnB,SAAS,EAAG,MAAM,CAAC,SAAoB,IAAI,SAAS;4BACpD,OAAO,EAAE,aAAa;4BACtB,SAAS,EAAE,YAAY,IAAI,SAAS;4BACpC,UAAU,EAAG,MAAM,CAAC,SAAoB,IAAI,SAAS;yBACtD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,SAAS,EAAE,UAAU;QACrB,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAA4B;IAClD,sCAAsC;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAExC,yCAAyC;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,OAA8C,CAAC;IAEnE,gEAAgE;IAChE,IAAI,QAAQ,GAAI,GAAG,CAAC,SAAoB,IAAK,GAAG,CAAC,IAAe,IAAI,SAAS,CAAC;IAC9E,IAAI,SAAS,GAAI,GAAG,CAAC,UAAsC,IAAK,GAAG,CAAC,KAAiC,IAAI,SAAS,CAAC;IAEnH,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAyC,EAAE,CAAC;YACtE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,QAAQ,GAAG,KAAK,CAAC,IAAc,CAAC;gBAChC,SAAS,GAAG,KAAK,CAAC,KAAgC,CAAC;gBACnD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS,EAAG,GAAG,CAAC,SAAoB,IAAI,SAAS;QACjD,OAAO;QACP,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAG,GAAG,CAAC,SAAoB,IAAK,GAAG,CAAC,UAAqB,IAAI,SAAS;KACjF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAA4B;IAC7C,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC;QACjD,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QACxD,IAAI,CAAC,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;QACxC,IAAI,CAAC,KAAK,aAAa;YAAE,OAAO,aAAa,CAAC;QAC9C,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;IACtC,CAAC;IAED,wBAAwB;IACxB,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC;QACjD,IAAI,CAAC,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QAC1C,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;IACtC,CAAC;IAED,+BAA+B;IAC/B,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IACjD,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,aAAa,CAAC;IAE1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAA4B;IACtD,wDAAwD;IACxD,MAAM,OAAO,GAAG,GAAG,CAAC,OAA8C,CAAC;IACnE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAElE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAEhD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAQ,OAA+B;aACpC,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;YAClC,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC,QAAkB,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC;YAC7E,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}