@herdctl/core 5.6.0 → 5.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.
- package/dist/config/__tests__/merge.test.js +1 -1
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/schema.d.ts +10 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/scheduler/schedule-runner.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.js +6 -5
- package/dist/scheduler/schedule-runner.js.map +1 -1
- package/dist/state/__tests__/jsonl-parser.test.d.ts +5 -0
- package/dist/state/__tests__/jsonl-parser.test.d.ts.map +1 -0
- package/dist/state/__tests__/jsonl-parser.test.js +307 -0
- package/dist/state/__tests__/jsonl-parser.test.js.map +1 -0
- package/dist/state/__tests__/session-attribution.test.d.ts +2 -0
- package/dist/state/__tests__/session-attribution.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-attribution.test.js +567 -0
- package/dist/state/__tests__/session-attribution.test.js.map +1 -0
- package/dist/state/__tests__/session-discovery.test.d.ts +2 -0
- package/dist/state/__tests__/session-discovery.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-discovery.test.js +941 -0
- package/dist/state/__tests__/session-discovery.test.js.map +1 -0
- package/dist/state/__tests__/session-metadata.test.d.ts +2 -0
- package/dist/state/__tests__/session-metadata.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-metadata.test.js +422 -0
- package/dist/state/__tests__/session-metadata.test.js.map +1 -0
- package/dist/state/__tests__/tool-parsing.test.d.ts +5 -0
- package/dist/state/__tests__/tool-parsing.test.d.ts.map +1 -0
- package/dist/state/__tests__/tool-parsing.test.js +315 -0
- package/dist/state/__tests__/tool-parsing.test.js.map +1 -0
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +10 -0
- package/dist/state/index.js.map +1 -1
- package/dist/state/jsonl-parser.d.ts +115 -0
- package/dist/state/jsonl-parser.d.ts.map +1 -0
- package/dist/state/jsonl-parser.js +437 -0
- package/dist/state/jsonl-parser.js.map +1 -0
- package/dist/state/session-attribution.d.ts +35 -0
- package/dist/state/session-attribution.d.ts.map +1 -0
- package/dist/state/session-attribution.js +179 -0
- package/dist/state/session-attribution.js.map +1 -0
- package/dist/state/session-discovery.d.ts +188 -0
- package/dist/state/session-discovery.d.ts.map +1 -0
- package/dist/state/session-discovery.js +513 -0
- package/dist/state/session-discovery.js.map +1 -0
- package/dist/state/session-metadata.d.ts +186 -0
- package/dist/state/session-metadata.d.ts.map +1 -0
- package/dist/state/session-metadata.js +297 -0
- package/dist/state/session-metadata.js.map +1 -0
- package/dist/state/tool-parsing.d.ts +88 -0
- package/dist/state/tool-parsing.d.ts.map +1 -0
- package/dist/state/tool-parsing.js +199 -0
- package/dist/state/tool-parsing.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for JSONL session file parser
|
|
3
|
+
*/
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { describe, expect, it } from "vitest";
|
|
6
|
+
import { extractLastSummary, extractSessionMetadata, extractSessionUsage, isSidechainSession, parseSessionMessages, } from "../jsonl-parser.js";
|
|
7
|
+
const fixturesDir = join(import.meta.dirname, "fixtures");
|
|
8
|
+
const fixture = (name) => join(fixturesDir, name);
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// parseSessionMessages
|
|
11
|
+
// =============================================================================
|
|
12
|
+
describe("parseSessionMessages", () => {
|
|
13
|
+
it("parses simple-session.jsonl into correct ChatMessages", async () => {
|
|
14
|
+
const messages = await parseSessionMessages(fixture("simple-session.jsonl"));
|
|
15
|
+
// 2 user + 2 assistant = 4 messages
|
|
16
|
+
expect(messages).toHaveLength(4);
|
|
17
|
+
// All roles are user or assistant (no tool calls in this fixture)
|
|
18
|
+
for (const msg of messages) {
|
|
19
|
+
expect(["user", "assistant"]).toContain(msg.role);
|
|
20
|
+
}
|
|
21
|
+
// All messages have non-empty content
|
|
22
|
+
for (const msg of messages) {
|
|
23
|
+
expect(msg.content.length).toBeGreaterThan(0);
|
|
24
|
+
}
|
|
25
|
+
// All timestamps are ISO strings
|
|
26
|
+
for (const msg of messages) {
|
|
27
|
+
expect(new Date(msg.timestamp).toISOString()).toBe(msg.timestamp);
|
|
28
|
+
}
|
|
29
|
+
// Verify ordering: user, assistant, user, assistant
|
|
30
|
+
expect(messages[0].role).toBe("user");
|
|
31
|
+
expect(messages[0].content).toBe("What is TypeScript?");
|
|
32
|
+
expect(messages[1].role).toBe("assistant");
|
|
33
|
+
expect(messages[1].content).toContain("TypeScript is a strongly typed");
|
|
34
|
+
expect(messages[2].role).toBe("user");
|
|
35
|
+
expect(messages[2].content).toBe("How do I install it?");
|
|
36
|
+
expect(messages[3].role).toBe("assistant");
|
|
37
|
+
expect(messages[3].content).toContain("npm install -g typescript");
|
|
38
|
+
});
|
|
39
|
+
it("parses tool-calls-session.jsonl with correct tool metadata", async () => {
|
|
40
|
+
const messages = await parseSessionMessages(fixture("tool-calls-session.jsonl"));
|
|
41
|
+
// 1 user + 1 assistant (text) + 1 tool (Read result) + 1 assistant = 4
|
|
42
|
+
expect(messages).toHaveLength(4);
|
|
43
|
+
expect(messages[0].role).toBe("user");
|
|
44
|
+
expect(messages[1].role).toBe("assistant");
|
|
45
|
+
expect(messages[1].content).toBe("Let me read that file for you.");
|
|
46
|
+
// Tool message
|
|
47
|
+
const toolMsg = messages[2];
|
|
48
|
+
expect(toolMsg.role).toBe("tool");
|
|
49
|
+
expect(toolMsg.toolCall).toBeDefined();
|
|
50
|
+
expect(toolMsg.toolCall.toolName).toBe("Read");
|
|
51
|
+
expect(toolMsg.toolCall.isError).toBe(false);
|
|
52
|
+
expect(toolMsg.toolCall.output).toContain("import express from 'express'");
|
|
53
|
+
expect(toolMsg.toolCall.inputSummary).toBe("/src/index.ts");
|
|
54
|
+
// Final assistant message
|
|
55
|
+
expect(messages[3].role).toBe("assistant");
|
|
56
|
+
expect(messages[3].content).toContain("entry point for an Express.js web server");
|
|
57
|
+
});
|
|
58
|
+
it("parses multi-tool-session.jsonl with multiple tool messages from one assistant response", async () => {
|
|
59
|
+
const messages = await parseSessionMessages(fixture("multi-tool-session.jsonl"));
|
|
60
|
+
// 1 user + 1 assistant (text) + 1 tool (Bash) + 1 tool (Read) + 1 assistant = 5
|
|
61
|
+
expect(messages).toHaveLength(5);
|
|
62
|
+
expect(messages[0].role).toBe("user");
|
|
63
|
+
expect(messages[1].role).toBe("assistant");
|
|
64
|
+
// First tool: Bash
|
|
65
|
+
const bashTool = messages[2];
|
|
66
|
+
expect(bashTool.role).toBe("tool");
|
|
67
|
+
expect(bashTool.toolCall.toolName).toBe("Bash");
|
|
68
|
+
expect(bashTool.toolCall.isError).toBe(false);
|
|
69
|
+
expect(bashTool.toolCall.output).toContain("On branch main");
|
|
70
|
+
expect(bashTool.toolCall.inputSummary).toBe("git status");
|
|
71
|
+
// Second tool: Read
|
|
72
|
+
const readTool = messages[3];
|
|
73
|
+
expect(readTool.role).toBe("tool");
|
|
74
|
+
expect(readTool.toolCall.toolName).toBe("Read");
|
|
75
|
+
expect(readTool.toolCall.isError).toBe(false);
|
|
76
|
+
expect(readTool.toolCall.output).toContain("my-project");
|
|
77
|
+
expect(readTool.toolCall.inputSummary).toBe("/workspace/package.json");
|
|
78
|
+
// Final assistant text
|
|
79
|
+
expect(messages[4].role).toBe("assistant");
|
|
80
|
+
});
|
|
81
|
+
it("parses content-blocks-session.jsonl with mixed text and tool_use blocks", async () => {
|
|
82
|
+
const messages = await parseSessionMessages(fixture("content-blocks-session.jsonl"));
|
|
83
|
+
// 1 user + 1 assistant (combined text) + 1 tool (Read) + 1 tool (Bash) + 1 assistant = 5
|
|
84
|
+
expect(messages).toHaveLength(5);
|
|
85
|
+
expect(messages[0].role).toBe("user");
|
|
86
|
+
// Assistant message should contain combined text from both text blocks
|
|
87
|
+
expect(messages[1].role).toBe("assistant");
|
|
88
|
+
expect(messages[1].content).toContain("Let me check both for you.");
|
|
89
|
+
expect(messages[1].content).toContain("I'll also check the current directory.");
|
|
90
|
+
// Tool results
|
|
91
|
+
const readTool = messages[2];
|
|
92
|
+
expect(readTool.role).toBe("tool");
|
|
93
|
+
expect(readTool.toolCall.toolName).toBe("Read");
|
|
94
|
+
expect(readTool.toolCall.output).toContain("port");
|
|
95
|
+
const bashTool = messages[3];
|
|
96
|
+
expect(bashTool.role).toBe("tool");
|
|
97
|
+
expect(bashTool.toolCall.toolName).toBe("Bash");
|
|
98
|
+
expect(bashTool.toolCall.output).toBe("/workspace");
|
|
99
|
+
expect(messages[4].role).toBe("assistant");
|
|
100
|
+
});
|
|
101
|
+
it("parses sdk-agent-session.jsonl the same way as regular sessions", async () => {
|
|
102
|
+
const messages = await parseSessionMessages(fixture("sdk-agent-session.jsonl"));
|
|
103
|
+
// 1 user + 1 assistant + 1 tool (Bash) + 1 assistant + 1 tool (Write) + 1 assistant = 6
|
|
104
|
+
expect(messages).toHaveLength(6);
|
|
105
|
+
expect(messages[0].role).toBe("user");
|
|
106
|
+
expect(messages[0].content).toContain("login form component");
|
|
107
|
+
expect(messages[1].role).toBe("assistant");
|
|
108
|
+
expect(messages[2].role).toBe("tool");
|
|
109
|
+
expect(messages[2].toolCall.toolName).toBe("Bash");
|
|
110
|
+
expect(messages[2].toolCall.inputSummary).toBe("ls src/components/");
|
|
111
|
+
expect(messages[3].role).toBe("assistant");
|
|
112
|
+
expect(messages[4].role).toBe("tool");
|
|
113
|
+
expect(messages[4].toolCall.toolName).toBe("Write");
|
|
114
|
+
expect(messages[4].toolCall.inputSummary).toBe("/workspace/project/src/components/LoginForm.tsx");
|
|
115
|
+
expect(messages[5].role).toBe("assistant");
|
|
116
|
+
expect(messages[5].content).toContain("LoginForm");
|
|
117
|
+
});
|
|
118
|
+
it("skips summary lines in summary-session.jsonl", async () => {
|
|
119
|
+
const messages = await parseSessionMessages(fixture("summary-session.jsonl"));
|
|
120
|
+
// 2 summary lines are skipped, 2 user + 2 assistant = 4
|
|
121
|
+
expect(messages).toHaveLength(4);
|
|
122
|
+
// All messages should be user or assistant, no summaries leaking through
|
|
123
|
+
for (const msg of messages) {
|
|
124
|
+
expect(["user", "assistant"]).toContain(msg.role);
|
|
125
|
+
}
|
|
126
|
+
// First message should be the first actual user message, not summary text
|
|
127
|
+
expect(messages[0].role).toBe("user");
|
|
128
|
+
expect(messages[0].content).toBe("Now let's add a health check endpoint.");
|
|
129
|
+
});
|
|
130
|
+
it("handles malformed-session.jsonl without throwing", async () => {
|
|
131
|
+
const messages = await parseSessionMessages(fixture("malformed-session.jsonl"));
|
|
132
|
+
// Line 1: valid user
|
|
133
|
+
// Line 2: invalid JSON - skipped
|
|
134
|
+
// Line 3: blank line - skipped
|
|
135
|
+
// Line 4: valid assistant
|
|
136
|
+
// Line 5: valid JSON but no type field - skipped
|
|
137
|
+
// Line 6: valid user
|
|
138
|
+
// Total: 2 user + 1 assistant = 3
|
|
139
|
+
expect(messages).toHaveLength(3);
|
|
140
|
+
expect(messages[0].role).toBe("user");
|
|
141
|
+
expect(messages[0].content).toBe("First valid message");
|
|
142
|
+
expect(messages[1].role).toBe("assistant");
|
|
143
|
+
expect(messages[1].content).toBe("Response to the first message.");
|
|
144
|
+
expect(messages[2].role).toBe("user");
|
|
145
|
+
expect(messages[2].content).toBe("Another valid user message after the bad lines");
|
|
146
|
+
});
|
|
147
|
+
it("returns all messages from large-session.jsonl without error", async () => {
|
|
148
|
+
const messages = await parseSessionMessages(fixture("large-session.jsonl"));
|
|
149
|
+
// 53 user + 53 assistant = 106 messages
|
|
150
|
+
expect(messages).toHaveLength(106);
|
|
151
|
+
// Verify first and last messages
|
|
152
|
+
expect(messages[0].role).toBe("user");
|
|
153
|
+
expect(messages[0].content).toBe("What is a variable?");
|
|
154
|
+
expect(messages[messages.length - 1].role).toBe("assistant");
|
|
155
|
+
expect(messages[messages.length - 1].content).toContain("Server-Side Rendering");
|
|
156
|
+
});
|
|
157
|
+
it("respects limit parameter on large-session.jsonl", async () => {
|
|
158
|
+
const messages = await parseSessionMessages(fixture("large-session.jsonl"), { limit: 5 });
|
|
159
|
+
expect(messages).toHaveLength(5);
|
|
160
|
+
});
|
|
161
|
+
it("returns empty array for nonexistent file", async () => {
|
|
162
|
+
const messages = await parseSessionMessages(fixture("does-not-exist.jsonl"));
|
|
163
|
+
expect(messages).toEqual([]);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
// =============================================================================
|
|
167
|
+
// extractSessionMetadata
|
|
168
|
+
// =============================================================================
|
|
169
|
+
describe("extractSessionMetadata", () => {
|
|
170
|
+
it("extracts correct metadata from simple-session.jsonl", async () => {
|
|
171
|
+
const meta = await extractSessionMetadata(fixture("simple-session.jsonl"));
|
|
172
|
+
expect(meta.sessionId).toBe("session-simple-001");
|
|
173
|
+
expect(meta.gitBranch).toBe("main");
|
|
174
|
+
expect(meta.claudeCodeVersion).toBe("2.0.77");
|
|
175
|
+
expect(meta.firstMessagePreview).toBe("What is TypeScript?");
|
|
176
|
+
expect(meta.firstMessagePreview.length).toBeGreaterThan(0);
|
|
177
|
+
expect(meta.messageCount).toBe(4);
|
|
178
|
+
expect(meta.firstMessageAt).toBe("2026-01-26T10:00:00.000Z");
|
|
179
|
+
expect(meta.lastMessageAt).toBe("2026-01-26T10:00:20.000Z");
|
|
180
|
+
});
|
|
181
|
+
it("returns the correct sessionId from the fixture", async () => {
|
|
182
|
+
const meta = await extractSessionMetadata(fixture("tool-calls-session.jsonl"));
|
|
183
|
+
expect(meta.sessionId).toBe("session-tools-001");
|
|
184
|
+
});
|
|
185
|
+
it("deduplicates assistant messages by message.id for messageCount", async () => {
|
|
186
|
+
// simple-session has 2 user + 2 assistant (each with unique id) = 4
|
|
187
|
+
const meta = await extractSessionMetadata(fixture("simple-session.jsonl"));
|
|
188
|
+
expect(meta.messageCount).toBe(4);
|
|
189
|
+
});
|
|
190
|
+
it("has firstMessageAt < lastMessageAt", async () => {
|
|
191
|
+
const meta = await extractSessionMetadata(fixture("simple-session.jsonl"));
|
|
192
|
+
expect(meta.firstMessageAt).toBeDefined();
|
|
193
|
+
expect(meta.lastMessageAt).toBeDefined();
|
|
194
|
+
const first = new Date(meta.firstMessageAt).getTime();
|
|
195
|
+
const last = new Date(meta.lastMessageAt).getTime();
|
|
196
|
+
expect(first).toBeLessThan(last);
|
|
197
|
+
});
|
|
198
|
+
it("returns sensible defaults for nonexistent file", async () => {
|
|
199
|
+
const meta = await extractSessionMetadata(fixture("does-not-exist.jsonl"));
|
|
200
|
+
expect(meta.sessionId).toBe("");
|
|
201
|
+
expect(meta.firstMessagePreview).toBeUndefined();
|
|
202
|
+
expect(meta.gitBranch).toBeUndefined();
|
|
203
|
+
expect(meta.claudeCodeVersion).toBeUndefined();
|
|
204
|
+
expect(meta.messageCount).toBe(0);
|
|
205
|
+
expect(meta.firstMessageAt).toBeUndefined();
|
|
206
|
+
expect(meta.lastMessageAt).toBeUndefined();
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
// =============================================================================
|
|
210
|
+
// extractSessionUsage
|
|
211
|
+
// =============================================================================
|
|
212
|
+
describe("extractSessionUsage", () => {
|
|
213
|
+
it("returns usage data from simple-session.jsonl", async () => {
|
|
214
|
+
const usage = await extractSessionUsage(fixture("simple-session.jsonl"));
|
|
215
|
+
expect(usage.hasData).toBe(true);
|
|
216
|
+
expect(usage.turnCount).toBeGreaterThan(0);
|
|
217
|
+
expect(usage.inputTokens).toBeGreaterThan(0);
|
|
218
|
+
});
|
|
219
|
+
it("turnCount equals number of unique assistant message IDs", async () => {
|
|
220
|
+
const usage = await extractSessionUsage(fixture("simple-session.jsonl"));
|
|
221
|
+
// msg_001 and msg_002 = 2 unique assistant IDs
|
|
222
|
+
expect(usage.turnCount).toBe(2);
|
|
223
|
+
});
|
|
224
|
+
it("inputTokens is the last assistant message total, not cumulative", async () => {
|
|
225
|
+
const usage = await extractSessionUsage(fixture("simple-session.jsonl"));
|
|
226
|
+
// Last assistant (msg_002): input_tokens=180 + cache_creation=0 + cache_read=120 = 300
|
|
227
|
+
expect(usage.inputTokens).toBe(300);
|
|
228
|
+
});
|
|
229
|
+
it("handles malformed-session.jsonl without throwing", async () => {
|
|
230
|
+
const usage = await extractSessionUsage(fixture("malformed-session.jsonl"));
|
|
231
|
+
// Only one valid assistant (msg_010): input_tokens=100 + 0 + 0 = 100
|
|
232
|
+
expect(usage.hasData).toBe(true);
|
|
233
|
+
expect(usage.turnCount).toBe(1);
|
|
234
|
+
expect(usage.inputTokens).toBe(100);
|
|
235
|
+
});
|
|
236
|
+
it("returns zero usage for nonexistent file", async () => {
|
|
237
|
+
const usage = await extractSessionUsage(fixture("does-not-exist.jsonl"));
|
|
238
|
+
expect(usage.inputTokens).toBe(0);
|
|
239
|
+
expect(usage.turnCount).toBe(0);
|
|
240
|
+
expect(usage.hasData).toBe(false);
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
// =============================================================================
|
|
244
|
+
// extractLastSummary
|
|
245
|
+
// =============================================================================
|
|
246
|
+
describe("extractLastSummary", () => {
|
|
247
|
+
it("returns the last summary from summary-session.jsonl", async () => {
|
|
248
|
+
const summary = await extractLastSummary(fixture("summary-session.jsonl"));
|
|
249
|
+
// The fixture has 2 summary entries; should return the second (last) one
|
|
250
|
+
expect(summary).toBe("The assistant helped configure CORS and body-parser middleware. The user then asked about database integration.");
|
|
251
|
+
});
|
|
252
|
+
it("returns undefined for simple-session.jsonl (no summaries)", async () => {
|
|
253
|
+
const summary = await extractLastSummary(fixture("simple-session.jsonl"));
|
|
254
|
+
expect(summary).toBeUndefined();
|
|
255
|
+
});
|
|
256
|
+
it("returns undefined for nonexistent file", async () => {
|
|
257
|
+
const summary = await extractLastSummary(fixture("does-not-exist.jsonl"));
|
|
258
|
+
expect(summary).toBeUndefined();
|
|
259
|
+
});
|
|
260
|
+
it("handles malformed-session.jsonl without throwing", async () => {
|
|
261
|
+
const summary = await extractLastSummary(fixture("malformed-session.jsonl"));
|
|
262
|
+
// No summary entries in this fixture
|
|
263
|
+
expect(summary).toBeUndefined();
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
// =============================================================================
|
|
267
|
+
// extractSessionMetadata - summary field
|
|
268
|
+
// =============================================================================
|
|
269
|
+
describe("extractSessionMetadata - summary field", () => {
|
|
270
|
+
it("includes summary field from summary-session.jsonl", async () => {
|
|
271
|
+
const meta = await extractSessionMetadata(fixture("summary-session.jsonl"));
|
|
272
|
+
// Should have the last summary
|
|
273
|
+
expect(meta.summary).toBe("The assistant helped configure CORS and body-parser middleware. The user then asked about database integration.");
|
|
274
|
+
});
|
|
275
|
+
it("returns undefined summary for sessions without summaries", async () => {
|
|
276
|
+
const meta = await extractSessionMetadata(fixture("simple-session.jsonl"));
|
|
277
|
+
expect(meta.summary).toBeUndefined();
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
// =============================================================================
|
|
281
|
+
// isSidechainSession
|
|
282
|
+
// =============================================================================
|
|
283
|
+
describe("isSidechainSession", () => {
|
|
284
|
+
it("returns true for sidechain session", async () => {
|
|
285
|
+
expect(await isSidechainSession(fixture("sidechain-session.jsonl"))).toBe(true);
|
|
286
|
+
});
|
|
287
|
+
it("returns false for normal session", async () => {
|
|
288
|
+
expect(await isSidechainSession(fixture("simple-session.jsonl"))).toBe(false);
|
|
289
|
+
});
|
|
290
|
+
it("returns false for nonexistent file", async () => {
|
|
291
|
+
expect(await isSidechainSession(fixture("does-not-exist.jsonl"))).toBe(false);
|
|
292
|
+
});
|
|
293
|
+
});
|
|
294
|
+
// =============================================================================
|
|
295
|
+
// extractSessionMetadata - isSidechain field
|
|
296
|
+
// =============================================================================
|
|
297
|
+
describe("extractSessionMetadata - isSidechain field", () => {
|
|
298
|
+
it("sets isSidechain true for sidechain sessions", async () => {
|
|
299
|
+
const meta = await extractSessionMetadata(fixture("sidechain-session.jsonl"));
|
|
300
|
+
expect(meta.isSidechain).toBe(true);
|
|
301
|
+
});
|
|
302
|
+
it("sets isSidechain false for normal sessions", async () => {
|
|
303
|
+
const meta = await extractSessionMetadata(fixture("simple-session.jsonl"));
|
|
304
|
+
expect(meta.isSidechain).toBe(false);
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
//# sourceMappingURL=jsonl-parser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl-parser.test.js","sourceRoot":"","sources":["../../../src/state/__tests__/jsonl-parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-attribution.test.d.ts","sourceRoot":"","sources":["../../../src/state/__tests__/session-attribution.test.ts"],"names":[],"mappings":""}
|