@gobing-ai/ts-llm-jsonl-importer 0.4.20 → 0.4.22
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/mappers.d.ts.map +1 -1
- package/dist/mappers.js +11 -8
- package/package.json +4 -4
- package/src/mappers.ts +12 -8
package/dist/mappers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA2FtD,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,CA4G/E;AAMD,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,UAAU,EAAE,CAsE3D;AAMD,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,CA4F5E;AAMD,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,CAiG9E;AAMD,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,CAgH5E;AAyJD,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE,CAoR7E;AAwDD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAKxD;AAMD,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,wBAAsE,CAAC;AACpG,4CAA4C;AAC5C,eAAO,MAAM,YAAY,wBAAsE,CAAC;AAChG,6CAA6C;AAC7C,eAAO,MAAM,aAAa,wBAAsE,CAAC;AACjG,+CAA+C;AAC/C,eAAO,MAAM,eAAe,wBAAsE,CAAC;AACnG,6CAA6C;AAC7C,eAAO,MAAM,aAAa,wBAAsE,CAAC;AACjG,8CAA8C;AAC9C,eAAO,MAAM,cAAc,wBAAsE,CAAC;AAQlG,oDAAoD;AACpD,eAAO,MAAM,aAAa,gCAAoB,CAAC;AAC/C,gDAAgD;AAChD,eAAO,MAAM,SAAS,gCAAoB,CAAC;AAC3C,iDAAiD;AACjD,eAAO,MAAM,UAAU,gCAAoB,CAAC;AAC5C,mDAAmD;AACnD,eAAO,MAAM,YAAY,gCAAoB,CAAC;AAC9C,iDAAiD;AACjD,eAAO,MAAM,UAAU,gCAAoB,CAAC;AAC5C,kDAAkD;AAClD,eAAO,MAAM,WAAW,gCAAoB,CAAC"}
|
package/dist/mappers.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck — dynamic JSON property access not compatible with noUncheckedIndexedAccess
|
|
2
1
|
import { z } from 'zod';
|
|
3
2
|
import { sha256 } from './hash.js';
|
|
4
3
|
// ---------------------------------------------------------------------------
|
|
@@ -196,12 +195,12 @@ export function claudeSplit(raw) {
|
|
|
196
195
|
export function piSplit(raw) {
|
|
197
196
|
const entries = [];
|
|
198
197
|
const r = raw;
|
|
199
|
-
const sessionId = s(r.id, r.session
|
|
198
|
+
const sessionId = s(r.id, o(r.session).id) ?? 'unknown';
|
|
200
199
|
const seq = typeof r.seq === 'number' ? r.seq : 0;
|
|
201
200
|
const ts = s(r.ts, r.timestamp, r.createdAt) ?? new Date(0).toISOString();
|
|
202
201
|
const role = mapRole(r.type ?? r.role);
|
|
203
202
|
const recordType = String(r.type ?? '');
|
|
204
|
-
const model = s(r.model, r.message
|
|
203
|
+
const model = s(r.model, o(r.message).model);
|
|
205
204
|
const cwd = s(r.cwd, r.dir);
|
|
206
205
|
const msg = r.message;
|
|
207
206
|
const usage = msg?.usage;
|
|
@@ -275,7 +274,7 @@ export function ompSplit(raw) {
|
|
|
275
274
|
{
|
|
276
275
|
targetTable: 'history_message',
|
|
277
276
|
record: {
|
|
278
|
-
session_id: s(raw.id, raw.session
|
|
277
|
+
session_id: s(raw.id, o(raw.session).id) ?? 'unknown',
|
|
279
278
|
seq: typeof raw.seq === 'number' ? raw.seq : 0,
|
|
280
279
|
role: 'meta',
|
|
281
280
|
record_type: recordType,
|
|
@@ -287,11 +286,11 @@ export function ompSplit(raw) {
|
|
|
287
286
|
];
|
|
288
287
|
}
|
|
289
288
|
const entries = [];
|
|
290
|
-
const sessionId = s(raw.id, raw.session
|
|
289
|
+
const sessionId = s(raw.id, o(raw.session).id) ?? 'unknown';
|
|
291
290
|
const seq = typeof raw.seq === 'number' ? raw.seq : 0;
|
|
292
291
|
const ts = s(raw.ts, raw.timestamp, raw.createdAt) ?? new Date(0).toISOString();
|
|
293
292
|
const role = mapRole(raw.type ?? raw.role);
|
|
294
|
-
const model = s(raw.model, raw.message
|
|
293
|
+
const model = s(raw.model, o(raw.message).model);
|
|
295
294
|
const cwd = s(raw.cwd, raw.dir);
|
|
296
295
|
const msg = raw.message;
|
|
297
296
|
const usage = msg?.usage;
|
|
@@ -355,7 +354,7 @@ export function ompSplit(raw) {
|
|
|
355
354
|
export function codexSplit(raw) {
|
|
356
355
|
const entries = [];
|
|
357
356
|
const payload = (raw.payload ?? raw);
|
|
358
|
-
const sessionId = s(raw.session_id, raw.session_meta
|
|
357
|
+
const sessionId = s(raw.session_id, o(raw.session_meta).id, raw.id) ?? 'unknown';
|
|
359
358
|
const seq = typeof raw.seq === 'number' ? raw.seq : 0;
|
|
360
359
|
const ts = s(raw.timestamp, raw.ts, payload.ts) ?? new Date(0).toISOString();
|
|
361
360
|
const recordType = String(raw.type ?? '');
|
|
@@ -377,7 +376,7 @@ export function codexSplit(raw) {
|
|
|
377
376
|
];
|
|
378
377
|
}
|
|
379
378
|
const role = mapRole(recordType);
|
|
380
|
-
const model = s(raw.model, payload.model, raw.turn_context
|
|
379
|
+
const model = s(raw.model, payload.model, o(o(raw.turn_context).payload).model);
|
|
381
380
|
const cwd = s(raw.cwd, raw.dir);
|
|
382
381
|
const tokenCount = payload.token_count;
|
|
383
382
|
const inputTokens = (tokenCount?.input ?? tokenCount?.input_tokens ?? undefined);
|
|
@@ -945,6 +944,10 @@ export function grokSplit(raw) {
|
|
|
945
944
|
// ---------------------------------------------------------------------------
|
|
946
945
|
// Shared utilities
|
|
947
946
|
// ---------------------------------------------------------------------------
|
|
947
|
+
/** Narrow an unknown JSON value to an object bag so nested lookups type-check. */
|
|
948
|
+
function o(value) {
|
|
949
|
+
return typeof value === 'object' && value !== null ? value : {};
|
|
950
|
+
}
|
|
948
951
|
/** Safe string accessor: returns the first non-empty string value. */
|
|
949
952
|
function s(...values) {
|
|
950
953
|
for (const value of values) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gobing-ai/ts-llm-jsonl-importer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.22",
|
|
4
4
|
"description": "@gobing-ai/ts-llm-jsonl-importer — Generic JSONL importer for LLM agent history files.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"release": "echo 'Manual publish is disabled. Releases go through GitHub Actions via Trusted Publishing — push a tag: git tag @gobing-ai/ts-llm-jsonl-importer-v<version> && git push --tags' && exit 1"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@gobing-ai/ts-db": "^0.4.
|
|
51
|
-
"@gobing-ai/ts-runtime": "^0.4.
|
|
52
|
-
"@gobing-ai/ts-utils": "^0.4.
|
|
50
|
+
"@gobing-ai/ts-db": "^0.4.22",
|
|
51
|
+
"@gobing-ai/ts-runtime": "^0.4.22",
|
|
52
|
+
"@gobing-ai/ts-utils": "^0.4.22",
|
|
53
53
|
"zod": "^4.1.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
package/src/mappers.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck — dynamic JSON property access not compatible with noUncheckedIndexedAccess
|
|
2
1
|
import { z } from 'zod';
|
|
3
2
|
import { sha256 } from './hash';
|
|
4
3
|
import type { JsonObject, SplitEntry } from './types';
|
|
@@ -211,12 +210,12 @@ export function claudeSplit(raw: Record<string, unknown>): readonly SplitEntry[]
|
|
|
211
210
|
export function piSplit(raw: unknown): readonly SplitEntry[] {
|
|
212
211
|
const entries: SplitEntry[] = [];
|
|
213
212
|
const r = raw as Record<string, unknown>;
|
|
214
|
-
const sessionId = s(r.id, r.session
|
|
213
|
+
const sessionId = s(r.id, o(r.session).id) ?? 'unknown';
|
|
215
214
|
const seq = typeof r.seq === 'number' ? r.seq : 0;
|
|
216
215
|
const ts = s(r.ts, r.timestamp, r.createdAt) ?? new Date(0).toISOString();
|
|
217
216
|
const role = mapRole(r.type ?? r.role);
|
|
218
217
|
const recordType = String(r.type ?? '');
|
|
219
|
-
const model = s(r.model, r.message
|
|
218
|
+
const model = s(r.model, o(r.message).model);
|
|
220
219
|
const cwd = s(r.cwd, r.dir);
|
|
221
220
|
|
|
222
221
|
const msg = r.message as Record<string, unknown> | undefined;
|
|
@@ -299,7 +298,7 @@ export function ompSplit(raw: Record<string, unknown>): readonly SplitEntry[] {
|
|
|
299
298
|
{
|
|
300
299
|
targetTable: 'history_message',
|
|
301
300
|
record: {
|
|
302
|
-
session_id: s(raw.id, raw.session
|
|
301
|
+
session_id: s(raw.id, o(raw.session).id) ?? 'unknown',
|
|
303
302
|
seq: typeof raw.seq === 'number' ? raw.seq : 0,
|
|
304
303
|
role: 'meta',
|
|
305
304
|
record_type: recordType,
|
|
@@ -312,11 +311,11 @@ export function ompSplit(raw: Record<string, unknown>): readonly SplitEntry[] {
|
|
|
312
311
|
}
|
|
313
312
|
|
|
314
313
|
const entries: SplitEntry[] = [];
|
|
315
|
-
const sessionId = s(raw.id, raw.session
|
|
314
|
+
const sessionId = s(raw.id, o(raw.session).id) ?? 'unknown';
|
|
316
315
|
const seq = typeof raw.seq === 'number' ? raw.seq : 0;
|
|
317
316
|
const ts = s(raw.ts, raw.timestamp, raw.createdAt) ?? new Date(0).toISOString();
|
|
318
317
|
const role = mapRole(raw.type ?? raw.role);
|
|
319
|
-
const model = s(raw.model, raw.message
|
|
318
|
+
const model = s(raw.model, o(raw.message).model);
|
|
320
319
|
const cwd = s(raw.cwd, raw.dir);
|
|
321
320
|
|
|
322
321
|
const msg = raw.message as Record<string, unknown> | undefined;
|
|
@@ -388,7 +387,7 @@ export function codexSplit(raw: Record<string, unknown>): readonly SplitEntry[]
|
|
|
388
387
|
const entries: SplitEntry[] = [];
|
|
389
388
|
|
|
390
389
|
const payload = (raw.payload ?? raw) as Record<string, unknown>;
|
|
391
|
-
const sessionId = s(raw.session_id, raw.session_meta
|
|
390
|
+
const sessionId = s(raw.session_id, o(raw.session_meta).id, raw.id) ?? 'unknown';
|
|
392
391
|
const seq = typeof raw.seq === 'number' ? raw.seq : 0;
|
|
393
392
|
const ts = s(raw.timestamp, raw.ts, payload.ts) ?? new Date(0).toISOString();
|
|
394
393
|
const recordType = String(raw.type ?? '');
|
|
@@ -412,7 +411,7 @@ export function codexSplit(raw: Record<string, unknown>): readonly SplitEntry[]
|
|
|
412
411
|
}
|
|
413
412
|
|
|
414
413
|
const role = mapRole(recordType);
|
|
415
|
-
const model = s(raw.model, payload.model, raw.turn_context
|
|
414
|
+
const model = s(raw.model, payload.model, o(o(raw.turn_context).payload).model);
|
|
416
415
|
const cwd = s(raw.cwd, raw.dir);
|
|
417
416
|
|
|
418
417
|
const tokenCount = payload.token_count as Record<string, unknown> | undefined;
|
|
@@ -1036,6 +1035,11 @@ export function grokSplit(raw: Record<string, unknown>): readonly SplitEntry[] {
|
|
|
1036
1035
|
// Shared utilities
|
|
1037
1036
|
// ---------------------------------------------------------------------------
|
|
1038
1037
|
|
|
1038
|
+
/** Narrow an unknown JSON value to an object bag so nested lookups type-check. */
|
|
1039
|
+
function o(value: unknown): Record<string, unknown> {
|
|
1040
|
+
return typeof value === 'object' && value !== null ? (value as Record<string, unknown>) : {};
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1039
1043
|
/** Safe string accessor: returns the first non-empty string value. */
|
|
1040
1044
|
function s(...values: readonly unknown[]): string | undefined {
|
|
1041
1045
|
for (const value of values) {
|