@threadbase-sh/streamer 1.69.3 → 1.69.4
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/sessions.handlers.d.ts +2 -0
- package/dist/api/handlers/sessions.handlers.d.ts.map +1 -1
- package/dist/cli.cjs +52 -31
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs +45 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +29 -8
- package/dist/index.js.map +1 -1
- package/dist/server-wiring.d.ts +2 -0
- package/dist/server-wiring.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -57,6 +57,8 @@ export type SessionHandlersDeps = {
|
|
|
57
57
|
detail?: string;
|
|
58
58
|
options: PermissionOption[];
|
|
59
59
|
cursor?: number;
|
|
60
|
+
/** Server-owned instance id, minted by handlePermissionChange. */
|
|
61
|
+
gateId: string;
|
|
60
62
|
}>;
|
|
61
63
|
pendingPermissionKey: Map<string, string>;
|
|
62
64
|
contendedSessions: Set<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.cjs
CHANGED
|
@@ -119705,11 +119705,11 @@ function toPublicSession(s3) {
|
|
|
119705
119705
|
subStatus: s3.subStatus ?? null
|
|
119706
119706
|
};
|
|
119707
119707
|
}
|
|
119708
|
-
var
|
|
119708
|
+
var import_crypto12, import_fs26, import_path26, OUTPUT_BUFFER_MAX, INPUT_HISTORY_MAX, QUIET_DETECT_MS, CODEX_READY_FALLBACK_MS, SUBMIT_BYTES, CODEX_SUBMIT_DELAY_MS, CODEX_SUBMIT_MAX_WAIT_MS, CODEX_SUBMIT_STALE_MS, CodexPtyRunner;
|
|
119709
119709
|
var init_codex_pty_runner = __esm({
|
|
119710
119710
|
"src/codex-pty-runner.ts"() {
|
|
119711
119711
|
"use strict";
|
|
119712
|
-
|
|
119712
|
+
import_crypto12 = require("crypto");
|
|
119713
119713
|
import_fs26 = require("fs");
|
|
119714
119714
|
import_path26 = require("path");
|
|
119715
119715
|
init_logger();
|
|
@@ -119874,7 +119874,7 @@ var init_codex_pty_runner = __esm({
|
|
|
119874
119874
|
// binding logic). This runner generates a local placeholder id for the
|
|
119875
119875
|
// ManagedSession handle only.
|
|
119876
119876
|
async startFresh(options) {
|
|
119877
|
-
const sessionId = (0,
|
|
119877
|
+
const sessionId = (0, import_crypto12.randomUUID)();
|
|
119878
119878
|
const args = ["--cd", options.projectPath, "--no-alt-screen"];
|
|
119879
119879
|
if (options.systemPrompt) {
|
|
119880
119880
|
args.push(options.systemPrompt);
|
|
@@ -119893,7 +119893,7 @@ var init_codex_pty_runner = __esm({
|
|
|
119893
119893
|
* until watchForCodexRollout binds the real id.
|
|
119894
119894
|
*/
|
|
119895
119895
|
async startFork(options) {
|
|
119896
|
-
const sessionId = (0,
|
|
119896
|
+
const sessionId = (0, import_crypto12.randomUUID)();
|
|
119897
119897
|
return this.launch(
|
|
119898
119898
|
sessionId,
|
|
119899
119899
|
["fork", options.forkFromId, "--cd", options.projectPath, "--no-alt-screen"],
|
|
@@ -121111,11 +121111,11 @@ function toPublicSession2(s3) {
|
|
|
121111
121111
|
subStatus: s3.subStatus ?? null
|
|
121112
121112
|
};
|
|
121113
121113
|
}
|
|
121114
|
-
var
|
|
121114
|
+
var import_crypto13, import_fs27, import_path27, OUTPUT_BUFFER_MAX2, INPUT_HISTORY_MAX2, CLAUDE_PROMPT_MARKERS, QUIET_DETECT_MS2, OSC_TAIL_CHARS, SCRAPE_THROTTLE_MS, CLAUDE_READY_FALLBACK_MS, SUBMIT_BYTES2, SUBMIT_DELAY_MS, SUBMIT_MAX_WAIT_MS, PTYManager;
|
|
121115
121115
|
var init_pty_manager = __esm({
|
|
121116
121116
|
"src/pty-manager.ts"() {
|
|
121117
121117
|
"use strict";
|
|
121118
|
-
|
|
121118
|
+
import_crypto13 = require("crypto");
|
|
121119
121119
|
import_fs27 = require("fs");
|
|
121120
121120
|
import_path27 = require("path");
|
|
121121
121121
|
init_claude_flags();
|
|
@@ -121308,7 +121308,7 @@ var init_pty_manager = __esm({
|
|
|
121308
121308
|
// onReady fires once Claude reaches its first prompt (waiting_input).
|
|
121309
121309
|
async startFresh(options) {
|
|
121310
121310
|
const nodePty = await loadPty();
|
|
121311
|
-
const sessionId = (0,
|
|
121311
|
+
const sessionId = (0, import_crypto13.randomUUID)();
|
|
121312
121312
|
const projectName = options.projectName ?? (0, import_path27.basename)(options.projectPath);
|
|
121313
121313
|
const permissionMode = options.permissionMode ?? "acceptEdits";
|
|
121314
121314
|
const args = [
|
|
@@ -132349,7 +132349,7 @@ Content-Length: 0\r
|
|
|
132349
132349
|
|
|
132350
132350
|
// src/server.ts
|
|
132351
132351
|
var import_client = __toESM(require_lib3(), 1);
|
|
132352
|
-
var
|
|
132352
|
+
var import_crypto16 = require("crypto");
|
|
132353
132353
|
var import_events2 = require("events");
|
|
132354
132354
|
var import_fs39 = require("fs");
|
|
132355
132355
|
var import_promises16 = require("fs/promises");
|
|
@@ -147066,6 +147066,7 @@ var ConversationHandlers = class {
|
|
|
147066
147066
|
};
|
|
147067
147067
|
|
|
147068
147068
|
// src/api/handlers/sessions.handlers.ts
|
|
147069
|
+
var import_crypto9 = require("crypto");
|
|
147069
147070
|
var import_fs22 = require("fs");
|
|
147070
147071
|
var import_path22 = require("path");
|
|
147071
147072
|
|
|
@@ -148641,7 +148642,9 @@ var SessionHandlers = class {
|
|
|
148641
148642
|
}
|
|
148642
148643
|
const key = permissionContentKey(gate);
|
|
148643
148644
|
if (this.pendingPermissionKey.get(sessionId) === key) return;
|
|
148644
|
-
this.pendingPermission.
|
|
148645
|
+
const prior = this.pendingPermission.get(sessionId);
|
|
148646
|
+
const gateId = prior && permissionGateKey(prior) === permissionGateKey(gate) ? prior.gateId : (0, import_crypto9.randomUUID)();
|
|
148647
|
+
this.pendingPermission.set(sessionId, { ...gate, gateId });
|
|
148645
148648
|
this.pendingPermissionKey.set(sessionId, key);
|
|
148646
148649
|
const subscriberCount = this.sessionSubscribers.get(sessionId)?.size ?? 0;
|
|
148647
148650
|
this.log.info(
|
|
@@ -148655,7 +148658,8 @@ var SessionHandlers = class {
|
|
|
148655
148658
|
...gate.detail ? { detail: gate.detail } : {},
|
|
148656
148659
|
options: gate.options,
|
|
148657
148660
|
...gate.cursor !== void 0 ? { cursor: gate.cursor } : {},
|
|
148658
|
-
contentKey: permissionGateKey(gate)
|
|
148661
|
+
contentKey: permissionGateKey(gate),
|
|
148662
|
+
gateId
|
|
148659
148663
|
});
|
|
148660
148664
|
}
|
|
148661
148665
|
/**
|
|
@@ -148683,10 +148687,15 @@ var SessionHandlers = class {
|
|
|
148683
148687
|
const body = await readBody2(req);
|
|
148684
148688
|
const contentKey = body?.contentKey;
|
|
148685
148689
|
const optionIndex = body?.optionIndex;
|
|
148690
|
+
const gateId = body?.gateId;
|
|
148686
148691
|
if (typeof contentKey !== "string" || !Number.isInteger(optionIndex) || optionIndex < 0) {
|
|
148687
148692
|
json2(res, 400, { ok: false, reason: "Expected { contentKey: string, optionIndex: number }" });
|
|
148688
148693
|
return;
|
|
148689
148694
|
}
|
|
148695
|
+
if (gateId !== void 0 && typeof gateId !== "string") {
|
|
148696
|
+
json2(res, 400, { ok: false, reason: "Expected gateId to be a string" });
|
|
148697
|
+
return;
|
|
148698
|
+
}
|
|
148690
148699
|
const gateClosed = () => {
|
|
148691
148700
|
this.pendingPermission.delete(sessionId);
|
|
148692
148701
|
this.pendingPermissionKey.delete(sessionId);
|
|
@@ -148698,6 +148707,16 @@ var SessionHandlers = class {
|
|
|
148698
148707
|
gateClosed();
|
|
148699
148708
|
return;
|
|
148700
148709
|
}
|
|
148710
|
+
if (gateId !== void 0 && gateId !== gate.gateId) {
|
|
148711
|
+
json2(res, 409, { ok: false, reason: "gate_mismatch" });
|
|
148712
|
+
return;
|
|
148713
|
+
}
|
|
148714
|
+
if (gateId === void 0) {
|
|
148715
|
+
this.log.info(`[permission.answer_legacy_identity] ${sessionId.slice(0, 8)}`, {
|
|
148716
|
+
event: "permission.answer_legacy_identity",
|
|
148717
|
+
sessionId
|
|
148718
|
+
});
|
|
148719
|
+
}
|
|
148701
148720
|
if (permissionGateKey(gate) !== contentKey) {
|
|
148702
148721
|
json2(res, 409, { ok: false, reason: "gate_mismatch" });
|
|
148703
148722
|
return;
|
|
@@ -148707,7 +148726,8 @@ var SessionHandlers = class {
|
|
|
148707
148726
|
json2(res, 409, { ok: false, reason: "unknown_option" });
|
|
148708
148727
|
return;
|
|
148709
148728
|
}
|
|
148710
|
-
|
|
148729
|
+
const provider = this.sessionStore.getManaged(sessionId)?.provider;
|
|
148730
|
+
if (provider !== CODEX_CLI_PROVIDER && !await this.permissionGateStillOpen(sessionId, contentKey)) {
|
|
148711
148731
|
gateClosed();
|
|
148712
148732
|
return;
|
|
148713
148733
|
}
|
|
@@ -149512,7 +149532,7 @@ var ManagedSessionsRepository = class {
|
|
|
149512
149532
|
};
|
|
149513
149533
|
|
|
149514
149534
|
// src/db/repositories/projects.repository.ts
|
|
149515
|
-
var
|
|
149535
|
+
var import_crypto10 = require("crypto");
|
|
149516
149536
|
function rowToProject(row) {
|
|
149517
149537
|
return {
|
|
149518
149538
|
id: row.id,
|
|
@@ -149597,7 +149617,7 @@ var ProjectsRepository = class {
|
|
|
149597
149617
|
});
|
|
149598
149618
|
return rowToProject(this.getById.get(existing.id));
|
|
149599
149619
|
}
|
|
149600
|
-
const id = (0,
|
|
149620
|
+
const id = (0, import_crypto10.randomUUID)();
|
|
149601
149621
|
this.insert.run({
|
|
149602
149622
|
id,
|
|
149603
149623
|
path: path2,
|
|
@@ -149636,7 +149656,7 @@ var SessionsRepository = class {
|
|
|
149636
149656
|
init_runtime_store();
|
|
149637
149657
|
|
|
149638
149658
|
// src/e2ee/noise.ts
|
|
149639
|
-
var
|
|
149659
|
+
var import_crypto11 = require("crypto");
|
|
149640
149660
|
var NOISE_PROTOCOL_NAME = "Noise_IKpsk1_25519_ChaChaPoly_SHA256";
|
|
149641
149661
|
var PAIR_PROLOGUE = Buffer.from("threadbase-e2ee/1 pair", "utf-8");
|
|
149642
149662
|
var DHLEN = 32;
|
|
@@ -149652,15 +149672,15 @@ var NoiseError = class extends Error {
|
|
|
149652
149672
|
}
|
|
149653
149673
|
};
|
|
149654
149674
|
function generateKeyPair() {
|
|
149655
|
-
const { publicKey, privateKey } = (0,
|
|
149675
|
+
const { publicKey, privateKey } = (0, import_crypto11.generateKeyPairSync)("x25519");
|
|
149656
149676
|
return { publicKey, privateKey, publicKeyRaw: rawPublicKey(publicKey) };
|
|
149657
149677
|
}
|
|
149658
149678
|
function keyPairFrom(privateKey) {
|
|
149659
|
-
const publicKey = (0,
|
|
149679
|
+
const publicKey = (0, import_crypto11.createPublicKey)(privateKey);
|
|
149660
149680
|
return { publicKey, privateKey, publicKeyRaw: rawPublicKey(publicKey) };
|
|
149661
149681
|
}
|
|
149662
149682
|
function rawPublicKey(key) {
|
|
149663
|
-
const pub = key.type === "public" ? key : (0,
|
|
149683
|
+
const pub = key.type === "public" ? key : (0, import_crypto11.createPublicKey)(key);
|
|
149664
149684
|
const jwk = pub.export({ format: "jwk" });
|
|
149665
149685
|
if (jwk.crv !== "X25519" || typeof jwk.x !== "string") {
|
|
149666
149686
|
throw new NoiseError("Not an X25519 public key");
|
|
@@ -149672,7 +149692,7 @@ function publicKeyFromRaw(raw2) {
|
|
|
149672
149692
|
throw new NoiseError(`X25519 public key must be ${DHLEN} bytes, got ${raw2.length}`);
|
|
149673
149693
|
}
|
|
149674
149694
|
try {
|
|
149675
|
-
return (0,
|
|
149695
|
+
return (0, import_crypto11.createPublicKey)({
|
|
149676
149696
|
key: { kty: "OKP", crv: "X25519", x: raw2.toString("base64url") },
|
|
149677
149697
|
format: "jwk"
|
|
149678
149698
|
});
|
|
@@ -149681,7 +149701,7 @@ function publicKeyFromRaw(raw2) {
|
|
|
149681
149701
|
}
|
|
149682
149702
|
}
|
|
149683
149703
|
function pskFromPairToken(token) {
|
|
149684
|
-
return (0,
|
|
149704
|
+
return (0, import_crypto11.createHash)("sha256").update("threadbase-e2ee/1 psk", "utf-8").update(token, "utf-8").digest();
|
|
149685
149705
|
}
|
|
149686
149706
|
function chachaNonce(n) {
|
|
149687
149707
|
const nonce = Buffer.alloc(12);
|
|
@@ -149700,7 +149720,7 @@ var CipherState = class {
|
|
|
149700
149720
|
}
|
|
149701
149721
|
encryptWithAd(ad, plaintext) {
|
|
149702
149722
|
if (!this.k) return plaintext;
|
|
149703
|
-
const cipher = (0,
|
|
149723
|
+
const cipher = (0, import_crypto11.createCipheriv)("chacha20-poly1305", this.k, chachaNonce(this.n), {
|
|
149704
149724
|
authTagLength: TAGLEN
|
|
149705
149725
|
});
|
|
149706
149726
|
cipher.setAAD(ad, { plaintextLength: plaintext.length });
|
|
@@ -149713,7 +149733,7 @@ var CipherState = class {
|
|
|
149713
149733
|
if (ciphertext.length < TAGLEN) throw new NoiseError("Ciphertext shorter than its tag");
|
|
149714
149734
|
const body = ciphertext.subarray(0, ciphertext.length - TAGLEN);
|
|
149715
149735
|
const tag = ciphertext.subarray(ciphertext.length - TAGLEN);
|
|
149716
|
-
const decipher = (0,
|
|
149736
|
+
const decipher = (0, import_crypto11.createDecipheriv)("chacha20-poly1305", this.k, chachaNonce(this.n), {
|
|
149717
149737
|
authTagLength: TAGLEN
|
|
149718
149738
|
});
|
|
149719
149739
|
decipher.setAAD(ad, { plaintextLength: body.length });
|
|
@@ -149734,7 +149754,7 @@ var SymmetricState = class {
|
|
|
149734
149754
|
cipher = new CipherState();
|
|
149735
149755
|
constructor(protocolName) {
|
|
149736
149756
|
const name = Buffer.from(protocolName, "utf-8");
|
|
149737
|
-
this.h = name.length <= HASHLEN ? Buffer.concat([name, Buffer.alloc(HASHLEN - name.length)]) : (0,
|
|
149757
|
+
this.h = name.length <= HASHLEN ? Buffer.concat([name, Buffer.alloc(HASHLEN - name.length)]) : (0, import_crypto11.createHash)("sha256").update(name).digest();
|
|
149738
149758
|
this.ck = Buffer.from(this.h);
|
|
149739
149759
|
this.cipher.initializeKey(null);
|
|
149740
149760
|
}
|
|
@@ -149746,7 +149766,7 @@ var SymmetricState = class {
|
|
|
149746
149766
|
* subtly wrong.
|
|
149747
149767
|
*/
|
|
149748
149768
|
hkdf(ikm, outputs) {
|
|
149749
|
-
const raw2 = Buffer.from((0,
|
|
149769
|
+
const raw2 = Buffer.from((0, import_crypto11.hkdfSync)("sha256", ikm, this.ck, Buffer.alloc(0), HASHLEN * outputs));
|
|
149750
149770
|
const out = [];
|
|
149751
149771
|
for (let i = 0; i < outputs; i++) out.push(raw2.subarray(i * HASHLEN, (i + 1) * HASHLEN));
|
|
149752
149772
|
return out;
|
|
@@ -149757,7 +149777,7 @@ var SymmetricState = class {
|
|
|
149757
149777
|
this.cipher.initializeKey(tempK);
|
|
149758
149778
|
}
|
|
149759
149779
|
mixHash(data) {
|
|
149760
|
-
this.h = (0,
|
|
149780
|
+
this.h = (0, import_crypto11.createHash)("sha256").update(this.h).update(data).digest();
|
|
149761
149781
|
}
|
|
149762
149782
|
/** Spec §5.2. Used only by the `psk` token. */
|
|
149763
149783
|
mixKeyAndHash(ikm) {
|
|
@@ -149787,7 +149807,7 @@ var SymmetricState = class {
|
|
|
149787
149807
|
}
|
|
149788
149808
|
};
|
|
149789
149809
|
function dh(privateKey, publicKey) {
|
|
149790
|
-
return (0,
|
|
149810
|
+
return (0, import_crypto11.diffieHellman)({ privateKey, publicKey });
|
|
149791
149811
|
}
|
|
149792
149812
|
function readMessage1(args) {
|
|
149793
149813
|
assertMessageSize(args.message1, NOISE_MESSAGE_1_OVERHEAD);
|
|
@@ -150105,7 +150125,7 @@ init_live_session_manager();
|
|
|
150105
150125
|
init_logger();
|
|
150106
150126
|
|
|
150107
150127
|
// src/pair-store.ts
|
|
150108
|
-
var
|
|
150128
|
+
var import_crypto14 = require("crypto");
|
|
150109
150129
|
var DEFAULT_TTL_SECONDS = 180;
|
|
150110
150130
|
var SWEEP_INTERVAL_MS = 6e4;
|
|
150111
150131
|
var PairTokenStore = class {
|
|
@@ -150120,7 +150140,7 @@ var PairTokenStore = class {
|
|
|
150120
150140
|
}
|
|
150121
150141
|
}
|
|
150122
150142
|
mint() {
|
|
150123
|
-
const token = `pt_${(0,
|
|
150143
|
+
const token = `pt_${(0, import_crypto14.randomBytes)(16).toString("hex")}`;
|
|
150124
150144
|
const expiresAt = Date.now() + this.ttlMs;
|
|
150125
150145
|
this.current = { token, expiresAt, used: false };
|
|
150126
150146
|
return {
|
|
@@ -151467,7 +151487,8 @@ function createApiDeps(deps) {
|
|
|
151467
151487
|
...pendingGate.detail ? { detail: pendingGate.detail } : {},
|
|
151468
151488
|
options: pendingGate.options,
|
|
151469
151489
|
...pendingGate.cursor !== void 0 ? { cursor: pendingGate.cursor } : {},
|
|
151470
|
-
contentKey: permissionGateKey(pendingGate)
|
|
151490
|
+
contentKey: permissionGateKey(pendingGate),
|
|
151491
|
+
gateId: pendingGate.gateId
|
|
151471
151492
|
})
|
|
151472
151493
|
);
|
|
151473
151494
|
}
|
|
@@ -151534,7 +151555,7 @@ function createApiDeps(deps) {
|
|
|
151534
151555
|
}
|
|
151535
151556
|
|
|
151536
151557
|
// src/services/cache-integrity/cacheIntegrityMonitor.ts
|
|
151537
|
-
var
|
|
151558
|
+
var import_crypto15 = require("crypto");
|
|
151538
151559
|
var import_fs34 = require("fs");
|
|
151539
151560
|
|
|
151540
151561
|
// src/services/cache-integrity/alertStore.ts
|
|
@@ -151599,7 +151620,7 @@ function envInt(name, fallback) {
|
|
|
151599
151620
|
}
|
|
151600
151621
|
function fingerprintOf(ids) {
|
|
151601
151622
|
const sorted = [...ids].sort();
|
|
151602
|
-
return `sha256:${(0,
|
|
151623
|
+
return `sha256:${(0, import_crypto15.createHash)("sha256").update(sorted.join("\n")).digest("hex")}`;
|
|
151603
151624
|
}
|
|
151604
151625
|
var CacheIntegrityMonitor = class {
|
|
151605
151626
|
constructor(cache, wsHub, log15, cacheDir, rescan, runDuringReset) {
|
|
@@ -154369,7 +154390,7 @@ var StreamerServer = class {
|
|
|
154369
154390
|
runtimeStore = null;
|
|
154370
154391
|
// Identifies this streamer run. A registry row carrying a different id is a
|
|
154371
154392
|
// session that outlived the process that started it.
|
|
154372
|
-
streamerInstanceId = (0,
|
|
154393
|
+
streamerInstanceId = (0, import_crypto16.randomUUID)();
|
|
154373
154394
|
cacheMetadataRepo = null;
|
|
154374
154395
|
// Push registration + delivery state (C7). Null when the cache DB failed to
|
|
154375
154396
|
// open — registration then degrades to a no-op rather than 500ing.
|