@threadbase-sh/streamer 1.67.0 → 1.67.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.
- package/dist/api/handlers/conversations.handlers.d.ts +29 -0
- package/dist/api/handlers/conversations.handlers.d.ts.map +1 -1
- package/dist/cli.cjs +86 -17
- package/dist/cli.cjs.map +1 -1
- package/dist/conversation-cache.d.ts.map +1 -1
- package/dist/index.cjs +63 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +68 -9
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-cache.d.ts","sourceRoot":"","sources":["../src/conversation-cache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"conversation-cache.d.ts","sourceRoot":"","sources":["../src/conversation-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -6809,6 +6809,7 @@ CREATE TABLE IF NOT EXISTS session_names (
|
|
|
6809
6809
|
);
|
|
6810
6810
|
`;
|
|
6811
6811
|
var cacheLog = getLogger("cache");
|
|
6812
|
+
var PARSE_STATE_LOOKBACK = 8;
|
|
6812
6813
|
var ConversationCache = class _ConversationCache {
|
|
6813
6814
|
db;
|
|
6814
6815
|
tailSize;
|
|
@@ -7325,7 +7326,7 @@ var ConversationCache = class _ConversationCache {
|
|
|
7325
7326
|
if (to <= from) return { messages: [], total, fromIndex: from };
|
|
7326
7327
|
const rows = this.getMessageIndexWindow(
|
|
7327
7328
|
_ConversationCache.conversationIdForFile(filePath),
|
|
7328
|
-
from,
|
|
7329
|
+
Math.max(0, from - PARSE_STATE_LOOKBACK),
|
|
7329
7330
|
to
|
|
7330
7331
|
);
|
|
7331
7332
|
if (rows.length === 0) return { messages: [], total, fromIndex: from };
|
|
@@ -7337,7 +7338,7 @@ var ConversationCache = class _ConversationCache {
|
|
|
7337
7338
|
const buf = Buffer.alloc(row.byte_length);
|
|
7338
7339
|
(0, import_fs11.readSync)(fd, buf, 0, row.byte_length, row.byte_offset);
|
|
7339
7340
|
const msg = (0, import_scanner2.parseJsonlLine)(buf.toString("utf-8"), state);
|
|
7340
|
-
if (msg) messages.push(msg);
|
|
7341
|
+
if (msg && row.message_index >= from) messages.push(msg);
|
|
7341
7342
|
}
|
|
7342
7343
|
} finally {
|
|
7343
7344
|
(0, import_fs11.closeSync)(fd);
|
|
@@ -8684,6 +8685,64 @@ var ConversationHandlers = class {
|
|
|
8684
8685
|
}
|
|
8685
8686
|
return null;
|
|
8686
8687
|
}
|
|
8688
|
+
/**
|
|
8689
|
+
* Resolve a conversation id to a JSONL path, in order of authority.
|
|
8690
|
+
*
|
|
8691
|
+
* `findJsonlPath` alone answers 64.0% of this machine's 961 conversations and
|
|
8692
|
+
* 0 of 343 Codex ones — it reconstructs `<projectsDir>/<dir>/<uuid>.jsonl`,
|
|
8693
|
+
* which is Claude Code's layout, and a Codex rollout is
|
|
8694
|
+
* `rollout-<ts>-<uuid>.jsonl` under a date path, so that walk cannot match one
|
|
8695
|
+
* by construction. The ladder below answers 99.7%, leaving only the three
|
|
8696
|
+
* whose file is genuinely gone.
|
|
8697
|
+
*/
|
|
8698
|
+
async locateJsonlPath(uuid, lookupId) {
|
|
8699
|
+
const live = this.deps.findLiveSessionFilePath(uuid) ?? this.deps.findLiveSessionFilePath(lookupId);
|
|
8700
|
+
if (live) return live;
|
|
8701
|
+
const cached3 = this.cache?.getMetaById(lookupId)?.filePath;
|
|
8702
|
+
if (cached3 && await this.isJsonlPathFor(cached3, lookupId)) return cached3;
|
|
8703
|
+
return this.findJsonlPath(lookupId);
|
|
8704
|
+
}
|
|
8705
|
+
/**
|
|
8706
|
+
* Does `filePath` actually hold the conversation `requestedId` names?
|
|
8707
|
+
*
|
|
8708
|
+
* The filename settles it for both providers: Claude writes `<uuid>.jsonl`
|
|
8709
|
+
* (or `agent-<agentId>.jsonl`), Codex writes `rollout-<ts>-<uuid>.jsonl`.
|
|
8710
|
+
* Only when the name says nothing do we open the file — and there the naive
|
|
8711
|
+
* rule is wrong, because **a Claude subagent transcript carries the PARENT's
|
|
8712
|
+
* `sessionId`**. Matching on `sessionId` alone therefore verifies exactly the
|
|
8713
|
+
* file this check exists to reject, so a sidechain is refused outright unless
|
|
8714
|
+
* it was asked for by its own `agent-<agentId>` name, which the filename
|
|
8715
|
+
* branch above already covers.
|
|
8716
|
+
*/
|
|
8717
|
+
async isJsonlPathFor(filePath, requestedId) {
|
|
8718
|
+
if (!(0, import_fs13.existsSync)(filePath)) return false;
|
|
8719
|
+
const stem = (0, import_path13.basename)(filePath).replace(/\.jsonl$/, "");
|
|
8720
|
+
if (stem === requestedId || stem.includes(requestedId)) return true;
|
|
8721
|
+
const first = await this.readFirstJsonlEntry(filePath);
|
|
8722
|
+
if (!first || first.isSidechain === true) return false;
|
|
8723
|
+
return first.sessionId === requestedId;
|
|
8724
|
+
}
|
|
8725
|
+
/** First parseable JSONL line, for identity checks. Null on an empty or unreadable file. */
|
|
8726
|
+
async readFirstJsonlEntry(filePath) {
|
|
8727
|
+
return new Promise((resolve2) => {
|
|
8728
|
+
const rl = (0, import_readline.createInterface)({ input: (0, import_fs13.createReadStream)(filePath), crlfDelay: Infinity });
|
|
8729
|
+
let done = false;
|
|
8730
|
+
rl.on("line", (line) => {
|
|
8731
|
+
if (done) return;
|
|
8732
|
+
try {
|
|
8733
|
+
const entry = JSON.parse(line);
|
|
8734
|
+
done = true;
|
|
8735
|
+
rl.close();
|
|
8736
|
+
resolve2(entry);
|
|
8737
|
+
} catch {
|
|
8738
|
+
}
|
|
8739
|
+
});
|
|
8740
|
+
rl.on("close", () => {
|
|
8741
|
+
if (!done) resolve2(null);
|
|
8742
|
+
});
|
|
8743
|
+
rl.on("error", () => resolve2(null));
|
|
8744
|
+
});
|
|
8745
|
+
}
|
|
8687
8746
|
async readCwdFromJsonl(filePath) {
|
|
8688
8747
|
return new Promise((resolve2) => {
|
|
8689
8748
|
const rl = (0, import_readline.createInterface)({ input: (0, import_fs13.createReadStream)(filePath), crlfDelay: Infinity });
|
|
@@ -8709,7 +8768,7 @@ var ConversationHandlers = class {
|
|
|
8709
8768
|
async findConversationByUuid(uuid) {
|
|
8710
8769
|
const lookupId = this.deps.resolveConversationLookupId(uuid);
|
|
8711
8770
|
if (!this.scannerManager.ready && !this.scanProfiles) {
|
|
8712
|
-
const filePath2 =
|
|
8771
|
+
const filePath2 = await this.locateJsonlPath(uuid, lookupId);
|
|
8713
8772
|
if (filePath2) {
|
|
8714
8773
|
const account = this.cache?.getMetaById(lookupId)?.account ?? void 0;
|
|
8715
8774
|
const coldScanner = this.scannerManager.current ?? this.scannerManager.newScanner();
|
|
@@ -8761,7 +8820,7 @@ var ConversationHandlers = class {
|
|
|
8761
8820
|
return fromIndex;
|
|
8762
8821
|
}
|
|
8763
8822
|
if (this.scanProfiles) return null;
|
|
8764
|
-
const filePath =
|
|
8823
|
+
const filePath = await this.locateJsonlPath(uuid, lookupId);
|
|
8765
8824
|
if (!filePath) return null;
|
|
8766
8825
|
if (this.scannerManager.ready) {
|
|
8767
8826
|
const account = this.cache?.getMetaById(lookupId)?.account ?? void 0;
|