@jingyi0605/codingns 0.1.5 → 0.2.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 (72) hide show
  1. package/dist/public/assets/{TerminalPage-4p6EBqrR.js → TerminalPage-BlbQuWi1.js} +1 -1
  2. package/dist/public/assets/index-1VIm8lVL.css +1 -0
  3. package/dist/public/assets/index-Dti93O2S.js +109 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/server/config/env.d.ts +1 -0
  6. package/dist/server/config/env.js +5 -1
  7. package/dist/server/config/env.js.map +1 -1
  8. package/dist/server/modules/file/file-controller.d.ts +12 -1
  9. package/dist/server/modules/file/file-controller.js +72 -1
  10. package/dist/server/modules/file/file-controller.js.map +1 -1
  11. package/dist/server/modules/file/file-preview-link-service.d.ts +22 -0
  12. package/dist/server/modules/file/file-preview-link-service.js +160 -0
  13. package/dist/server/modules/file/file-preview-link-service.js.map +1 -0
  14. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +2 -1
  15. package/dist/server/modules/sessions/codex-app-server-helper-client.js +103 -0
  16. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  17. package/dist/server/modules/sessions/codex-app-server-helper-process.js +106 -1
  18. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  19. package/dist/server/modules/sessions/session-controller.d.ts +21 -0
  20. package/dist/server/modules/sessions/session-controller.js +23 -1
  21. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  22. package/dist/server/modules/sessions/session-history-service.d.ts +34 -2
  23. package/dist/server/modules/sessions/session-history-service.js +591 -27
  24. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  25. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -0
  26. package/dist/server/modules/sessions/session-live-runtime-service.js +59 -2
  27. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  28. package/dist/server/modules/sessions/session-provider-error-mapper.js +66 -0
  29. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  30. package/dist/server/routes/files.js +2 -0
  31. package/dist/server/routes/files.js.map +1 -1
  32. package/dist/server/routes/sessions.js +1 -0
  33. package/dist/server/routes/sessions.js.map +1 -1
  34. package/dist/server/server/create-server.d.ts +4 -0
  35. package/dist/server/server/create-server.js +7 -2
  36. package/dist/server/server/create-server.js.map +1 -1
  37. package/dist/server/shared/utils/command-availability.d.ts +1 -0
  38. package/dist/server/shared/utils/command-availability.js +83 -0
  39. package/dist/server/shared/utils/command-availability.js.map +1 -0
  40. package/dist/server/storage/repositories/session-fork-repository.d.ts +8 -0
  41. package/dist/server/storage/repositories/session-fork-repository.js +69 -0
  42. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -0
  43. package/dist/server/storage/repositories/session-index-repository.js +40 -2
  44. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  45. package/dist/server/storage/sqlite/client.js +107 -0
  46. package/dist/server/storage/sqlite/client.js.map +1 -1
  47. package/dist/server/storage/sqlite/schema.sql +30 -0
  48. package/dist/server/types/domain.d.ts +25 -1
  49. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +6 -1
  50. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +228 -7
  51. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  52. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +26 -1
  53. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +495 -2
  54. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  55. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +94 -5
  56. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
  57. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +5 -1
  58. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +269 -3
  59. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  60. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
  61. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +117 -17
  62. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
  63. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +10 -0
  64. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +128 -8
  65. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  66. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +2 -1
  67. package/node_modules/@codingns/session-sync-core/dist/services.js +55 -8
  68. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  69. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +27 -0
  70. package/package.json +1 -1
  71. package/dist/public/assets/index-CxeghocY.css +0 -1
  72. package/dist/public/assets/index-DXusStl0.js +0 -108
@@ -1,8 +1,9 @@
1
1
  import { existsSync } from "node:fs";
2
+ import { randomUUID } from "node:crypto";
2
3
  import { homedir } from "node:os";
3
4
  import { join } from "node:path";
4
5
  import { ensureText, nextTimestamp, normalizeWorkspacePath, sliceHistory } from "./utils.js";
5
- import { buildMessageRawRef, buildSessionRawStoreRef, firstValidNumber, normalizeOpenCodeMessageEnvelopes, parseSessionIdFromRawStoreRef, readInteger, toIsoTimestamp, toJsonRecord, workspaceMatches } from "./opencode-shared.js";
6
+ import { buildMessageRawRef, normalizeOpenCodePartMessage, buildSessionRawStoreRef, firstValidNumber, normalizeOpenCodeMessageEnvelopes, parseSessionIdFromRawStoreRef, readInteger, toIsoTimestamp, toJsonRecord, workspaceMatches } from "./opencode-shared.js";
6
7
  import { createOpenCodeMessagePermissionOptions } from "./opencode-permissions.js";
7
8
  import { loadDatabaseSync } from "../sqlite/node-sqlite.js";
8
9
  const DEFAULT_DATA_DIR = join(homedir(), ".local", "share", "opencode");
@@ -144,6 +145,38 @@ export class OpenCodeAdapter {
144
145
  initialCursor: null
145
146
  };
146
147
  }
148
+ async forkSession(providerSessionId, rawWorkspacePath, options) {
149
+ const sourceSessionId = this.resolveSessionId(providerSessionId, options.rawStoreRef);
150
+ const workspacePath = rawWorkspacePath.trim() || rawWorkspacePath;
151
+ if (options.sourceType === "message" && !(options.sourceMessageId?.trim())) {
152
+ throw new Error("FORK_SOURCE_MESSAGE_ID_REQUIRED");
153
+ }
154
+ const forked = this.cloneSessionFromSqlite({
155
+ sourceSessionId,
156
+ workspacePath,
157
+ sourceType: options.sourceType,
158
+ sourceMessageId: options.sourceMessageId?.trim() || null
159
+ });
160
+ return {
161
+ session: {
162
+ provider: this.providerId,
163
+ providerSessionId: forked.providerSessionId,
164
+ title: forked.title,
165
+ workspacePath,
166
+ rawStoreRef: buildSessionRawStoreRef(forked.providerSessionId),
167
+ isArchived: false,
168
+ lastMessageAt: forked.lastMessageAt,
169
+ messageCount: forked.inheritedPrefixMessageCount,
170
+ parentProviderSessionId: null,
171
+ isSubagent: false,
172
+ subagentLabel: null
173
+ },
174
+ forkMethod: options.sourceType === "session" ? "native_session_fork" : "native_message_fork",
175
+ forkSourceType: options.sourceType,
176
+ inheritedPrefixMessageCount: forked.inheritedPrefixMessageCount,
177
+ providerSourceMessageId: forked.providerSourceMessageId
178
+ };
179
+ }
147
180
  async sendMessage(providerSessionId, rawStoreRef, content, clientRequestId, permissionMode) {
148
181
  const sessionId = this.resolveSessionId(providerSessionId, rawStoreRef);
149
182
  const trimmed = content.trim();
@@ -173,7 +206,10 @@ export class OpenCodeAdapter {
173
206
  throw new Error("PROVIDER_SESSION_NOT_FOUND");
174
207
  }
175
208
  const title = ensureText(row.title).trim();
176
- return title || sessionId;
209
+ if (title) {
210
+ return title;
211
+ }
212
+ return this.readFirstUserMessageTitleFromSqlite(sessionId) || sessionId;
177
213
  }
178
214
  async renameSessionTitle(providerSessionId, rawStoreRef, title) {
179
215
  const sessionId = this.resolveSessionId(providerSessionId, rawStoreRef);
@@ -265,7 +301,7 @@ export class OpenCodeAdapter {
265
301
  };
266
302
  }
267
303
  catch (error) {
268
- if (isServerUnavailableError(error)) {
304
+ if (isServerUnavailableError(error) || isServerTimeoutError(error)) {
269
305
  return null;
270
306
  }
271
307
  throw error;
@@ -426,6 +462,190 @@ export class OpenCodeAdapter {
426
462
  }
427
463
  return Math.max(1_000, Math.floor(configured));
428
464
  }
465
+ cloneSessionFromSqlite(input) {
466
+ const forkedSessionId = `ses_${randomUUID().replaceAll("-", "")}`;
467
+ const nowMs = Date.now();
468
+ return this.withWritableDb((db) => {
469
+ const sourceSession = db.prepare(`SELECT
470
+ id,
471
+ project_id,
472
+ parent_id,
473
+ slug,
474
+ directory,
475
+ title,
476
+ version,
477
+ share_url,
478
+ summary_additions,
479
+ summary_deletions,
480
+ summary_files,
481
+ summary_diffs,
482
+ revert,
483
+ permission,
484
+ time_created,
485
+ time_updated,
486
+ time_compacting,
487
+ time_archived,
488
+ workspace_id
489
+ FROM session
490
+ WHERE id = ?
491
+ LIMIT 1`).get(input.sourceSessionId);
492
+ if (!sourceSession) {
493
+ throw new Error("PROVIDER_SESSION_NOT_FOUND");
494
+ }
495
+ const sourceMessageRows = db.prepare(`SELECT id, time_created, time_updated, data
496
+ FROM message
497
+ WHERE session_id = ?
498
+ ORDER BY COALESCE(time_updated, time_created), time_created, id`).all(input.sourceSessionId);
499
+ const readPartRows = db.prepare(`SELECT id, message_id, time_created, time_updated, data
500
+ FROM part
501
+ WHERE session_id = ? AND message_id = ?
502
+ ORDER BY COALESCE(time_updated, time_created), time_created, id`);
503
+ const insertSession = db.prepare(`INSERT INTO session (
504
+ id,
505
+ project_id,
506
+ parent_id,
507
+ slug,
508
+ directory,
509
+ title,
510
+ version,
511
+ share_url,
512
+ summary_additions,
513
+ summary_deletions,
514
+ summary_files,
515
+ summary_diffs,
516
+ revert,
517
+ permission,
518
+ time_created,
519
+ time_updated,
520
+ time_compacting,
521
+ time_archived,
522
+ workspace_id
523
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
524
+ const insertMessage = db.prepare(`INSERT INTO message (
525
+ id,
526
+ session_id,
527
+ time_created,
528
+ time_updated,
529
+ data
530
+ ) VALUES (?, ?, ?, ?, ?)`);
531
+ const insertPart = db.prepare(`INSERT INTO part (
532
+ id,
533
+ message_id,
534
+ session_id,
535
+ time_created,
536
+ time_updated,
537
+ data
538
+ ) VALUES (?, ?, ?, ?, ?, ?)`);
539
+ let derivedTitle = null;
540
+ insertSession.run(forkedSessionId, ensureText(sourceSession.project_id).trim() || "global", null, buildForkSlug(ensureText(sourceSession.slug).trim(), forkedSessionId), input.workspacePath, "", ensureText(sourceSession.version).trim() || "v1", ensureNullableText(sourceSession.share_url), readInteger(sourceSession.summary_additions), readInteger(sourceSession.summary_deletions), readInteger(sourceSession.summary_files), ensureNullableText(sourceSession.summary_diffs), ensureNullableText(sourceSession.revert), ensureNullableText(sourceSession.permission), readInteger(sourceSession.time_created) ?? nowMs, nowMs, readInteger(sourceSession.time_compacting), null, ensureNullableText(sourceSession.workspace_id));
541
+ let inheritedPrefixMessageCount = 0;
542
+ let providerSourceMessageId = null;
543
+ let lastMessageAtMs = firstValidNumber(sourceSession.time_updated, sourceSession.time_created);
544
+ let reachedAnchor = false;
545
+ for (const messageRow of sourceMessageRows) {
546
+ const sourceMessageRowId = ensureText(messageRow.id).trim();
547
+ if (!sourceMessageRowId) {
548
+ continue;
549
+ }
550
+ const partRows = readPartRows.all(input.sourceSessionId, sourceMessageRowId);
551
+ const includedPartRows = [];
552
+ for (const partRow of partRows) {
553
+ const sourcePartId = ensureText(partRow.id).trim();
554
+ if (!sourcePartId) {
555
+ continue;
556
+ }
557
+ includedPartRows.push(partRow);
558
+ const normalized = normalizeOpenCodePartMessage({
559
+ sessionId: input.sourceSessionId,
560
+ providerSessionId: input.sourceSessionId,
561
+ partId: sourcePartId,
562
+ messageId: sourceMessageRowId,
563
+ partPayload: toJsonRecord(partRow.data) ?? {},
564
+ messagePayload: toJsonRecord(messageRow.data) ?? {},
565
+ defaultTimestamp: toIsoTimestamp(firstValidNumber(partRow.time_created, messageRow.time_created, messageRow.time_updated), null) ?? nextTimestamp()
566
+ });
567
+ if (normalized) {
568
+ inheritedPrefixMessageCount += 1;
569
+ lastMessageAtMs = Date.parse(normalized.timestamp);
570
+ if (derivedTitle === null) {
571
+ derivedTitle = resolveOpenCodeMessageTitle(normalized);
572
+ }
573
+ }
574
+ if (input.sourceType === "message" && normalized?.messageId === input.sourceMessageId) {
575
+ providerSourceMessageId = sourcePartId;
576
+ reachedAnchor = true;
577
+ break;
578
+ }
579
+ }
580
+ if (includedPartRows.length === 0) {
581
+ continue;
582
+ }
583
+ const forkedMessageId = randomUUID();
584
+ insertMessage.run(forkedMessageId, forkedSessionId, readInteger(messageRow.time_created) ?? nowMs, readInteger(messageRow.time_updated) ?? readInteger(messageRow.time_created) ?? nowMs, JSON.stringify(toJsonRecord(messageRow.data) ?? {}));
585
+ for (const partRow of includedPartRows) {
586
+ insertPart.run(randomUUID(), forkedMessageId, forkedSessionId, readInteger(partRow.time_created) ?? nowMs, readInteger(partRow.time_updated) ?? readInteger(partRow.time_created) ?? nowMs, JSON.stringify(toJsonRecord(partRow.data) ?? {}));
587
+ }
588
+ if (reachedAnchor) {
589
+ break;
590
+ }
591
+ }
592
+ if (input.sourceType === "message" && !reachedAnchor) {
593
+ throw new Error("FORK_SOURCE_MESSAGE_NOT_FOUND");
594
+ }
595
+ const resolvedTitle = derivedTitle ?? "";
596
+ db.prepare("UPDATE session SET title = ? WHERE id = ?").run(resolvedTitle, forkedSessionId);
597
+ return {
598
+ providerSessionId: forkedSessionId,
599
+ title: resolvedTitle,
600
+ lastMessageAt: toIsoTimestamp(lastMessageAtMs, nextTimestamp()),
601
+ inheritedPrefixMessageCount,
602
+ providerSourceMessageId
603
+ };
604
+ });
605
+ }
606
+ readFirstUserMessageTitleFromSqlite(sessionId) {
607
+ return this.withReadonlyDb((db) => {
608
+ const rows = db.prepare(`SELECT
609
+ message.id AS message_id,
610
+ message.time_created AS message_time_created,
611
+ message.time_updated AS message_time_updated,
612
+ message.data AS message_data,
613
+ part.id AS part_id,
614
+ part.time_created AS part_time_created,
615
+ part.time_updated AS part_time_updated,
616
+ part.data AS part_data
617
+ FROM message
618
+ INNER JOIN part
619
+ ON part.message_id = message.id
620
+ AND part.session_id = message.session_id
621
+ WHERE message.session_id = ?
622
+ ORDER BY COALESCE(part.time_updated, part.time_created, message.time_updated, message.time_created),
623
+ COALESCE(part.time_created, message.time_created),
624
+ message.id,
625
+ part.id`).all(sessionId);
626
+ for (const row of rows) {
627
+ const messageId = ensureText(row.message_id).trim();
628
+ const partId = ensureText(row.part_id).trim();
629
+ if (!messageId || !partId) {
630
+ continue;
631
+ }
632
+ const normalized = normalizeOpenCodePartMessage({
633
+ sessionId,
634
+ providerSessionId: sessionId,
635
+ messageId,
636
+ partId,
637
+ messagePayload: toJsonRecord(row.message_data) ?? {},
638
+ partPayload: toJsonRecord(row.part_data) ?? {},
639
+ defaultTimestamp: toIsoTimestamp(firstValidNumber(row.part_time_created, row.part_time_updated, row.message_time_created, row.message_time_updated), null) ?? nextTimestamp()
640
+ });
641
+ const title = normalized ? resolveOpenCodeMessageTitle(normalized) : null;
642
+ if (title) {
643
+ return title;
644
+ }
645
+ }
646
+ return null;
647
+ });
648
+ }
429
649
  async fetchJson(pathname, input = {}) {
430
650
  return this.fetchJsonWithRetry(pathname, input, false);
431
651
  }
@@ -498,6 +718,33 @@ export class OpenCodeAdapter {
498
718
  db?.close();
499
719
  }
500
720
  }
721
+ withWritableDb(run) {
722
+ const dbPath = this.resolveDbPath();
723
+ if (!existsSync(dbPath)) {
724
+ throw new Error("OPENCODE_DB_NOT_FOUND");
725
+ }
726
+ const DatabaseSync = loadDatabaseSync();
727
+ let db = null;
728
+ try {
729
+ db = new DatabaseSync(dbPath, { open: true });
730
+ db.exec("BEGIN IMMEDIATE");
731
+ const result = run(db);
732
+ db.exec("COMMIT");
733
+ return result;
734
+ }
735
+ catch (error) {
736
+ try {
737
+ db?.exec("ROLLBACK");
738
+ }
739
+ catch {
740
+ // 这里优先保留原始异常,回滚失败只做吞吐。
741
+ }
742
+ throw error;
743
+ }
744
+ finally {
745
+ db?.close();
746
+ }
747
+ }
501
748
  resolveSessionId(providerSessionId, rawStoreRef) {
502
749
  const explicit = providerSessionId.trim();
503
750
  if (explicit.length > 0) {
@@ -693,6 +940,22 @@ export class OpenCodeAdapter {
693
940
  return normalizeOpenCodeMessageEnvelopes(sessionId, sessionId, [...envelopes.values()]);
694
941
  }
695
942
  }
943
+ function ensureNullableText(value) {
944
+ const normalized = ensureText(value).trim();
945
+ return normalized || null;
946
+ }
947
+ function resolveOpenCodeMessageTitle(message) {
948
+ if (message.role !== "user" || message.kind !== "text") {
949
+ return null;
950
+ }
951
+ const title = message.content.trim().replace(/\s+/g, " ");
952
+ return title || null;
953
+ }
954
+ function buildForkSlug(sourceSlug, forkedSessionId) {
955
+ const base = sourceSlug.trim() || "session";
956
+ const suffix = forkedSessionId.slice(0, 8);
957
+ return `${base}-fork-${suffix}`;
958
+ }
696
959
  function buildSyntheticAcceptedMessage(sessionId, content, timestamp) {
697
960
  const rawRef = `${buildMessageRawRef(sessionId, `accepted-${Date.parse(timestamp)}`)}#synthetic`;
698
961
  return {
@@ -731,6 +994,9 @@ async function safeReadResponseText(response) {
731
994
  function isServerUnavailableError(error) {
732
995
  return error instanceof Error && error.message === "SERVER_UNAVAILABLE";
733
996
  }
997
+ function isServerTimeoutError(error) {
998
+ return error instanceof Error && error.message === "SERVER_TIMEOUT";
999
+ }
734
1000
  function createTimeoutRetryState() {
735
1001
  return {
736
1002
  startedAtMs: Date.now(),
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { HistoryDirection, HistoryPage, NormalizedMessage, ProviderId } from "../types.js";
2
2
  export interface RawJsonLine {
3
3
  lineNumber: number;
4
+ partIndex: number;
4
5
  raw: string;
5
6
  data: Record<string, unknown>;
6
7
  }
@@ -47,14 +47,7 @@ export function walkJsonlFiles(rootDir) {
47
47
  }
48
48
  export function readJsonLines(filePath) {
49
49
  const content = readFileSync(filePath, "utf8");
50
- return content
51
- .split(/\r?\n/)
52
- .filter((line) => line.trim().length > 0)
53
- .map((line, index) => ({
54
- lineNumber: index + 1,
55
- raw: line,
56
- data: JSON.parse(line)
57
- }));
50
+ return parseJsonLines(filePath, content.split(/\r?\n/));
58
51
  }
59
52
  export function readFirstNonEmptyLine(filePath, maxBytes = 256 * 1024) {
60
53
  const stats = statSync(filePath);
@@ -117,20 +110,127 @@ export function readTrailingJsonLines(filePath, maxBytes) {
117
110
  return [];
118
111
  }
119
112
  const firstLineNumber = countLinesBeforeOffset(fd, alignedStartOffset) + 1;
120
- return content
121
- .toString("utf8")
122
- .split(/\r?\n/)
123
- .filter((line) => line.trim().length > 0)
124
- .map((line, index) => ({
125
- lineNumber: firstLineNumber + index,
126
- raw: line,
127
- data: JSON.parse(line)
128
- }));
113
+ return parseJsonLines(filePath, content.toString("utf8").split(/\r?\n/), firstLineNumber);
129
114
  }
130
115
  finally {
131
116
  closeSync(fd);
132
117
  }
133
118
  }
119
+ const warnedInvalidJsonLineKeys = new Set();
120
+ const MAX_INVALID_JSON_WARNINGS = 256;
121
+ function parseJsonLines(filePath, lines, firstLineNumber = 1) {
122
+ return lines.flatMap((line, index) => parseJsonLine(filePath, line, firstLineNumber + index));
123
+ }
124
+ function parseJsonLine(filePath, rawLine, lineNumber) {
125
+ const trimmed = rawLine.trim();
126
+ if (trimmed.length === 0) {
127
+ return [];
128
+ }
129
+ const directRecord = parseJsonRecord(trimmed);
130
+ if (directRecord) {
131
+ return [{
132
+ lineNumber,
133
+ partIndex: 0,
134
+ raw: trimmed,
135
+ data: directRecord
136
+ }];
137
+ }
138
+ const splitRecords = splitConcatenatedJsonObjects(trimmed);
139
+ if (splitRecords.length > 1) {
140
+ const parsedRecords = splitRecords.flatMap((segment, partIndex) => {
141
+ const parsed = parseJsonRecord(segment);
142
+ if (!parsed) {
143
+ return [];
144
+ }
145
+ return [{
146
+ lineNumber,
147
+ partIndex,
148
+ raw: segment,
149
+ data: parsed
150
+ }];
151
+ });
152
+ if (parsedRecords.length === splitRecords.length) {
153
+ return parsedRecords;
154
+ }
155
+ }
156
+ warnInvalidJsonLine(filePath, lineNumber, trimmed);
157
+ return [];
158
+ }
159
+ function parseJsonRecord(raw) {
160
+ try {
161
+ const parsed = JSON.parse(raw);
162
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed)
163
+ ? parsed
164
+ : null;
165
+ }
166
+ catch {
167
+ return null;
168
+ }
169
+ }
170
+ function splitConcatenatedJsonObjects(raw) {
171
+ if (!raw.startsWith("{")) {
172
+ return [];
173
+ }
174
+ const segments = [];
175
+ let depth = 0;
176
+ let startIndex = -1;
177
+ let inString = false;
178
+ let escaping = false;
179
+ for (let index = 0; index < raw.length; index += 1) {
180
+ const char = raw[index];
181
+ if (inString) {
182
+ if (escaping) {
183
+ escaping = false;
184
+ continue;
185
+ }
186
+ if (char === "\\") {
187
+ escaping = true;
188
+ continue;
189
+ }
190
+ if (char === "\"") {
191
+ inString = false;
192
+ }
193
+ continue;
194
+ }
195
+ if (char === "\"") {
196
+ inString = true;
197
+ continue;
198
+ }
199
+ if (char === "{") {
200
+ if (depth === 0) {
201
+ startIndex = index;
202
+ }
203
+ depth += 1;
204
+ continue;
205
+ }
206
+ if (char !== "}") {
207
+ continue;
208
+ }
209
+ depth -= 1;
210
+ if (depth === 0 && startIndex >= 0) {
211
+ segments.push(raw.slice(startIndex, index + 1));
212
+ startIndex = -1;
213
+ }
214
+ }
215
+ if (depth !== 0 || inString || segments.length === 0) {
216
+ return [];
217
+ }
218
+ return segments.join("") === raw ? segments : [];
219
+ }
220
+ function warnInvalidJsonLine(filePath, lineNumber, raw) {
221
+ const warningKey = `${filePath}:${lineNumber}:${createHash("sha1").update(raw).digest("hex")}`;
222
+ if (warnedInvalidJsonLineKeys.has(warningKey)) {
223
+ return;
224
+ }
225
+ warnedInvalidJsonLineKeys.add(warningKey);
226
+ if (warnedInvalidJsonLineKeys.size > MAX_INVALID_JSON_WARNINGS) {
227
+ const oldestKey = warnedInvalidJsonLineKeys.keys().next().value;
228
+ if (oldestKey) {
229
+ warnedInvalidJsonLineKeys.delete(oldestKey);
230
+ }
231
+ }
232
+ console.warn(`[session-sync-core] 忽略损坏的 JSONL 记录: ${filePath}:${String(lineNumber)}`);
233
+ }
134
234
  function countLinesBeforeOffset(fd, offset) {
135
235
  if (offset <= 0) {
136
236
  return 0;