@threadbase-sh/streamer 1.69.4 → 1.69.6
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 +1 -0
- package/dist/api/handlers/sessions.handlers.d.ts.map +1 -1
- package/dist/cli.cjs +62 -20
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs +62 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +62 -20
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/services/questions/answersToKeystrokes.d.ts +8 -0
- package/dist/services/questions/answersToKeystrokes.d.ts.map +1 -1
- package/dist/services/questions/resolveAnswer.d.ts +1 -1
- package/dist/services/questions/resolveAnswer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -144,6 +144,7 @@ export declare class SessionHandlers {
|
|
|
144
144
|
private get contendedSessions();
|
|
145
145
|
private get selfPtyEndedAt();
|
|
146
146
|
private get sessionSubscribers();
|
|
147
|
+
private broadcastToSession;
|
|
147
148
|
private get agentConfig();
|
|
148
149
|
private get agentClient();
|
|
149
150
|
private get defaultSystemPrompt();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.handlers.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/sessions.handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAoBjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,
|
|
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
|
@@ -147718,19 +147718,39 @@ var UnknownOptionError = class extends Error {
|
|
|
147718
147718
|
question;
|
|
147719
147719
|
value;
|
|
147720
147720
|
};
|
|
147721
|
+
var UnsupportedPromptShapeError = class extends Error {
|
|
147722
|
+
constructor(detail) {
|
|
147723
|
+
super(`Unsupported prompt shape: ${detail}`);
|
|
147724
|
+
this.detail = detail;
|
|
147725
|
+
this.name = "UnsupportedPromptShapeError";
|
|
147726
|
+
}
|
|
147727
|
+
detail;
|
|
147728
|
+
};
|
|
147729
|
+
var IncompleteAnswerError = class extends Error {
|
|
147730
|
+
constructor(question) {
|
|
147731
|
+
super(`Missing answer for question "${question}"`);
|
|
147732
|
+
this.question = question;
|
|
147733
|
+
this.name = "IncompleteAnswerError";
|
|
147734
|
+
}
|
|
147735
|
+
question;
|
|
147736
|
+
};
|
|
147721
147737
|
function answersToKeystrokes(questions, answers) {
|
|
147722
|
-
|
|
147723
|
-
|
|
147724
|
-
const raw2 = answers[q2.question];
|
|
147725
|
-
if (raw2 === void 0) {
|
|
147726
|
-
throw new Error(`Missing answer for question "${q2.question}"`);
|
|
147727
|
-
}
|
|
147728
|
-
const label = Array.isArray(raw2) ? raw2[0] : raw2;
|
|
147729
|
-
const target = q2.options.findIndex((o) => o.label === label);
|
|
147730
|
-
if (target < 0) throw new UnknownOptionError(q2.question, label);
|
|
147731
|
-
out += DOWN.repeat(target) + ENTER2;
|
|
147738
|
+
if (questions.length !== 1) {
|
|
147739
|
+
throw new UnsupportedPromptShapeError(`${questions.length} questions`);
|
|
147732
147740
|
}
|
|
147733
|
-
|
|
147741
|
+
const q2 = questions[0];
|
|
147742
|
+
if (q2.multiSelect) throw new UnsupportedPromptShapeError("multiSelect");
|
|
147743
|
+
const raw2 = answers[q2.question];
|
|
147744
|
+
if (raw2 === void 0 || Array.isArray(raw2) && raw2.length === 0) {
|
|
147745
|
+
throw new IncompleteAnswerError(q2.question);
|
|
147746
|
+
}
|
|
147747
|
+
if (Array.isArray(raw2) && raw2.length > 1) {
|
|
147748
|
+
throw new UnsupportedPromptShapeError(`${raw2.length} labels for a single-select question`);
|
|
147749
|
+
}
|
|
147750
|
+
const label = Array.isArray(raw2) ? raw2[0] : raw2;
|
|
147751
|
+
const target = q2.options.findIndex((o) => o.label === label);
|
|
147752
|
+
if (target < 0) throw new UnknownOptionError(q2.question, label);
|
|
147753
|
+
return DOWN.repeat(target) + ENTER2;
|
|
147734
147754
|
}
|
|
147735
147755
|
|
|
147736
147756
|
// src/services/questions/resolveAnswer.ts
|
|
@@ -147744,6 +147764,10 @@ function resolveAnswer(pending, body) {
|
|
|
147744
147764
|
return { ok: true, keys: answersToKeystrokes(pending.questions, answers) };
|
|
147745
147765
|
} catch (e) {
|
|
147746
147766
|
if (e instanceof UnknownOptionError) return { ok: false, reason: "unknown_option" };
|
|
147767
|
+
if (e instanceof UnsupportedPromptShapeError) {
|
|
147768
|
+
return { ok: false, reason: "unsupported_prompt_shape" };
|
|
147769
|
+
}
|
|
147770
|
+
if (e instanceof IncompleteAnswerError) return { ok: false, reason: "incomplete_answer" };
|
|
147747
147771
|
throw e;
|
|
147748
147772
|
}
|
|
147749
147773
|
}
|
|
@@ -148073,6 +148097,13 @@ var SessionHandlers = class {
|
|
|
148073
148097
|
get sessionSubscribers() {
|
|
148074
148098
|
return this.deps.sessionSubscribers;
|
|
148075
148099
|
}
|
|
148100
|
+
// Prompt lifecycle events (question / permission and their cancellations)
|
|
148101
|
+
// carry prompt content and go ONLY to the session's subscribers — never to
|
|
148102
|
+
// every connected socket. A client that subscribes after a prompt opened
|
|
148103
|
+
// gets it from the subscribe replay (server-wiring), not from a broadcast.
|
|
148104
|
+
broadcastToSession(sessionId, message) {
|
|
148105
|
+
this.wsHub.broadcastToClients(this.sessionSubscribers.get(sessionId) ?? [], message);
|
|
148106
|
+
}
|
|
148076
148107
|
get agentConfig() {
|
|
148077
148108
|
return this.deps.agentConfig;
|
|
148078
148109
|
}
|
|
@@ -148627,7 +148658,7 @@ var SessionHandlers = class {
|
|
|
148627
148658
|
const toolUseId = `screen:${sessionId}:${key.length}`;
|
|
148628
148659
|
this.pendingQuestions.set(sessionId, { toolUseId, questions, origin: "pty" });
|
|
148629
148660
|
this.pendingQuestionKey.set(sessionId, key);
|
|
148630
|
-
this.
|
|
148661
|
+
this.broadcastToSession(sessionId, { type: "question", sessionId, toolUseId, questions });
|
|
148631
148662
|
}
|
|
148632
148663
|
// Permission gate opened/closed (OSC 777 + scraped options). Broadcasts the
|
|
148633
148664
|
// additive `permission` / `permission_cancelled` events. Mobile answers by
|
|
@@ -148637,7 +148668,7 @@ var SessionHandlers = class {
|
|
|
148637
148668
|
if (!this.pendingPermission.has(sessionId)) return;
|
|
148638
148669
|
this.pendingPermission.delete(sessionId);
|
|
148639
148670
|
this.pendingPermissionKey.delete(sessionId);
|
|
148640
|
-
this.
|
|
148671
|
+
this.broadcastToSession(sessionId, { type: "permission_cancelled", sessionId });
|
|
148641
148672
|
return;
|
|
148642
148673
|
}
|
|
148643
148674
|
const key = permissionContentKey(gate);
|
|
@@ -148651,7 +148682,7 @@ var SessionHandlers = class {
|
|
|
148651
148682
|
`[ws.broadcast_permission] ${sessionId.slice(0, 8)} subscribers=${subscriberCount}`,
|
|
148652
148683
|
{ event: "ws.broadcast_permission", sessionId, subscriberCount }
|
|
148653
148684
|
);
|
|
148654
|
-
this.
|
|
148685
|
+
this.broadcastToSession(sessionId, {
|
|
148655
148686
|
type: "permission",
|
|
148656
148687
|
sessionId,
|
|
148657
148688
|
...gate.prompt ? { prompt: gate.prompt } : {},
|
|
@@ -148699,7 +148730,7 @@ var SessionHandlers = class {
|
|
|
148699
148730
|
const gateClosed = () => {
|
|
148700
148731
|
this.pendingPermission.delete(sessionId);
|
|
148701
148732
|
this.pendingPermissionKey.delete(sessionId);
|
|
148702
|
-
this.
|
|
148733
|
+
this.broadcastToSession(sessionId, { type: "permission_cancelled", sessionId });
|
|
148703
148734
|
json2(res, 409, { ok: false, reason: "gate_closed" });
|
|
148704
148735
|
};
|
|
148705
148736
|
const gate = this.pendingPermission.get(sessionId);
|
|
@@ -148771,14 +148802,21 @@ var SessionHandlers = class {
|
|
|
148771
148802
|
const pending = this.pendingQuestions.get(sessionId);
|
|
148772
148803
|
const resolution = resolveAnswer(pending, body);
|
|
148773
148804
|
if (!resolution.ok) {
|
|
148774
|
-
|
|
148805
|
+
const unanswerable = resolution.reason === "unsupported_prompt_shape" || resolution.reason === "incomplete_answer";
|
|
148806
|
+
json2(res, 400, {
|
|
148807
|
+
ok: false,
|
|
148808
|
+
reason: resolution.reason,
|
|
148809
|
+
...unanswerable ? {
|
|
148810
|
+
error: "This prompt needs an answer the app cannot give yet; answer it in the terminal"
|
|
148811
|
+
} : {}
|
|
148812
|
+
});
|
|
148775
148813
|
return;
|
|
148776
148814
|
}
|
|
148777
148815
|
const toolUseId = pending?.toolUseId ?? "";
|
|
148778
148816
|
if (!await this.questionMenuStillOpen(sessionId)) {
|
|
148779
148817
|
this.pendingQuestions.delete(sessionId);
|
|
148780
148818
|
this.pendingQuestionKey.delete(sessionId);
|
|
148781
|
-
this.
|
|
148819
|
+
this.broadcastToSession(sessionId, { type: "question_cancelled", sessionId, toolUseId });
|
|
148782
148820
|
json2(res, 409, { ok: false, reason: "question_gone" });
|
|
148783
148821
|
return;
|
|
148784
148822
|
}
|
|
@@ -148790,7 +148828,7 @@ var SessionHandlers = class {
|
|
|
148790
148828
|
return;
|
|
148791
148829
|
}
|
|
148792
148830
|
this.pendingQuestions.delete(sessionId);
|
|
148793
|
-
this.
|
|
148831
|
+
this.broadcastToSession(sessionId, { type: "question_cancelled", sessionId, toolUseId });
|
|
148794
148832
|
json2(res, 200, { ok: true });
|
|
148795
148833
|
}
|
|
148796
148834
|
// Best-effort: a session we don't own a PTY for, or one that raced away
|
|
@@ -156145,7 +156183,7 @@ var StreamerServer = class {
|
|
|
156145
156183
|
priorToolUseId
|
|
156146
156184
|
});
|
|
156147
156185
|
this.pendingQuestionKey.set(sessionId, key);
|
|
156148
|
-
if (broadcast2) this.wsHub.
|
|
156186
|
+
if (broadcast2) this.wsHub.broadcastToClients(this.sessionSubscribers.get(sessionId) ?? [], m2);
|
|
156149
156187
|
}
|
|
156150
156188
|
}
|
|
156151
156189
|
cancelPendingQuestion(sessionId) {
|
|
@@ -156153,7 +156191,11 @@ var StreamerServer = class {
|
|
|
156153
156191
|
if (!pq) return;
|
|
156154
156192
|
this.pendingQuestions.delete(sessionId);
|
|
156155
156193
|
this.pendingQuestionKey.delete(sessionId);
|
|
156156
|
-
this.wsHub.
|
|
156194
|
+
this.wsHub.broadcastToClients(this.sessionSubscribers.get(sessionId) ?? [], {
|
|
156195
|
+
type: "question_cancelled",
|
|
156196
|
+
sessionId,
|
|
156197
|
+
toolUseId: pq.toolUseId
|
|
156198
|
+
});
|
|
156157
156199
|
}
|
|
156158
156200
|
async handleBrowse(url2, res) {
|
|
156159
156201
|
if (!this.browseRoot) {
|