opencode-plugin-teleprompt 0.1.3 → 0.1.12
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/index.d.ts +0 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/opencode/binding.d.ts +1 -0
- package/dist/opencode/binding.js +44 -0
- package/dist/opencode/binding.js.map +1 -1
- package/dist/opencode/permissions.d.ts +1 -1
- package/dist/opencode/permissions.js +11 -4
- package/dist/opencode/permissions.js.map +1 -1
- package/dist/opencode/submit.d.ts +5 -0
- package/dist/opencode/submit.js +18 -6
- package/dist/opencode/submit.js.map +1 -1
- package/dist/runtime/controller.d.ts +11 -2
- package/dist/runtime/controller.js +235 -44
- package/dist/runtime/controller.js.map +1 -1
- package/dist/telegram/api.d.ts +1 -0
- package/dist/telegram/api.js +7 -1
- package/dist/telegram/api.js.map +1 -1
- package/dist/telegram/parser.js +13 -1
- package/dist/telegram/parser.js.map +1 -1
- package/dist/telegram/poller.d.ts +1 -0
- package/dist/telegram/poller.js +3 -0
- package/dist/telegram/poller.js.map +1 -1
- package/dist/tui.js +42 -0
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { tui } from "./tui.js";
|
|
2
2
|
const id = "opencode-plugin-teleprompt";
|
|
3
|
-
// OpenCode 1.4+ requires external plugins to expose server().
|
|
4
|
-
// This plugin is TUI-focused, so server hooks are intentionally empty.
|
|
5
3
|
const server = async () => ({});
|
|
6
|
-
export default { id, server
|
|
4
|
+
export default { id, server };
|
|
7
5
|
export { id, server, tui };
|
|
8
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,MAAM,EAAE,GAAG,4BAA4B,CAAC;AAExC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,MAAM,EAAE,GAAG,4BAA4B,CAAC;AAExC,MAAM,MAAM,GAAW,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAExC,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC"}
|
package/dist/opencode/binding.js
CHANGED
|
@@ -9,4 +9,48 @@ export function getCurrentSessionID(api) {
|
|
|
9
9
|
}
|
|
10
10
|
return sessionID;
|
|
11
11
|
}
|
|
12
|
+
export async function getCurrentOrCreateSessionID(api, client) {
|
|
13
|
+
const route = api.route.current;
|
|
14
|
+
if (route.name === "session") {
|
|
15
|
+
const sessionID = route.params?.sessionID;
|
|
16
|
+
if (sessionID && typeof sessionID === "string") {
|
|
17
|
+
return sessionID;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const response = await client.session.create({
|
|
21
|
+
responseStyle: "data",
|
|
22
|
+
throwOnError: true,
|
|
23
|
+
});
|
|
24
|
+
// Try multiple common paths for session ID
|
|
25
|
+
const sessionID = response?.id ??
|
|
26
|
+
response?.data?.id ??
|
|
27
|
+
response?.session?.id ??
|
|
28
|
+
response?.session?.data?.id;
|
|
29
|
+
if (!sessionID || typeof sessionID !== "string") {
|
|
30
|
+
const responseKeys = response ? Object.keys(response).join(", ") : "null";
|
|
31
|
+
const responseJson = JSON.stringify(response).slice(0, 150);
|
|
32
|
+
throw new Error(`Could not create a new OpenCode session. Response keys: [${responseKeys}]. Body: ${responseJson}`);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const route = api.route;
|
|
36
|
+
// According to debug dump, api.route.navigate exists
|
|
37
|
+
// Reverting to positional arguments as the object-based call caused a crash
|
|
38
|
+
if (typeof route.navigate === "function") {
|
|
39
|
+
route.navigate("session", { sessionID });
|
|
40
|
+
}
|
|
41
|
+
else if (typeof route.push === "function") {
|
|
42
|
+
route.push({ name: "session", params: { sessionID } });
|
|
43
|
+
}
|
|
44
|
+
else if (typeof route.set === "function") {
|
|
45
|
+
route.set({ name: "session", params: { sessionID } });
|
|
46
|
+
}
|
|
47
|
+
else if (typeof api.navigate === "function") {
|
|
48
|
+
api.navigate("session", { sessionID });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
// Ignore routing errors as the session is already created
|
|
53
|
+
}
|
|
54
|
+
return sessionID;
|
|
55
|
+
}
|
|
12
56
|
//# sourceMappingURL=binding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/opencode/binding.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,GAAiB;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IAC1C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../src/opencode/binding.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,GAAiB;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IAC1C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAiB,EACjB,MAAW;IAEX,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;QAC1C,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3C,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,SAAS,GACZ,QAAgB,EAAE,EAAE;QACpB,QAAgB,EAAE,IAAI,EAAE,EAAE;QAC1B,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC7B,QAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;IAEvC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,4DAA4D,YAAY,YAAY,YAAY,EAAE,CACnG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAY,CAAC;QAC/B,qDAAqD;QACrD,4EAA4E;QAC5E,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,OAAQ,GAAW,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACtD,GAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0DAA0D;IAC5D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { PendingPermission, PermissionAskInput } from "../types.js";
|
|
2
2
|
export declare function toPendingPermission(input: PermissionAskInput): PendingPermission;
|
|
3
3
|
export declare function formatPermissionRequestMessage(prefix: string, permission: PendingPermission): string;
|
|
4
|
-
export declare function replyPermission(client: any, requestID: string, action: "once" | "always" | "reject"): Promise<void>;
|
|
4
|
+
export declare function replyPermission(client: any, sessionID: string, requestID: string, action: "once" | "always" | "reject"): Promise<void>;
|
|
@@ -57,10 +57,17 @@ function classifyRisk(permission, metadata) {
|
|
|
57
57
|
}
|
|
58
58
|
return "read";
|
|
59
59
|
}
|
|
60
|
-
export async function replyPermission(client, requestID, action) {
|
|
61
|
-
await client.
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
export async function replyPermission(client, sessionID, requestID, action) {
|
|
61
|
+
await client.postSessionByIdPermissionsByPermissionId({
|
|
62
|
+
path: {
|
|
63
|
+
id: sessionID,
|
|
64
|
+
permissionID: requestID,
|
|
65
|
+
},
|
|
66
|
+
body: {
|
|
67
|
+
response: action === "once" ? "once" : action === "always" ? "always" : "reject",
|
|
68
|
+
},
|
|
69
|
+
responseStyle: "data",
|
|
70
|
+
throwOnError: true,
|
|
64
71
|
});
|
|
65
72
|
}
|
|
66
73
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/opencode/permissions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/opencode/permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/opencode/submit.js
CHANGED
|
@@ -3,12 +3,24 @@ export function createTelegramUserMessageID(updateID) {
|
|
|
3
3
|
}
|
|
4
4
|
export async function submitPrompt(client, sessionID, prompt, updateID, model) {
|
|
5
5
|
const userMessageID = createTelegramUserMessageID(updateID);
|
|
6
|
-
await client.session.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const response = await client.session.prompt({
|
|
7
|
+
path: {
|
|
8
|
+
id: sessionID,
|
|
9
|
+
},
|
|
10
|
+
body: {
|
|
11
|
+
messageID: userMessageID,
|
|
12
|
+
...(model ? { model } : {}),
|
|
13
|
+
parts: [{ type: "text", text: prompt }],
|
|
14
|
+
},
|
|
15
|
+
responseStyle: "data",
|
|
16
|
+
throwOnError: true,
|
|
11
17
|
});
|
|
12
|
-
|
|
18
|
+
const info = (response?.info || response?.data?.info);
|
|
19
|
+
const parts = (response?.parts || response?.data?.parts);
|
|
20
|
+
return {
|
|
21
|
+
userMessageID,
|
|
22
|
+
assistantMessageID: typeof info?.id === "string" ? info.id : undefined,
|
|
23
|
+
assistantParts: parts,
|
|
24
|
+
};
|
|
13
25
|
}
|
|
14
26
|
//# sourceMappingURL=submit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/opencode/submit.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,OAAO,MAAM,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAW,EACX,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,KAGC;
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/opencode/submit.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,OAAO,MAAM,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAW,EACX,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,KAGC;IAMD,MAAM,aAAa,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE;YACJ,EAAE,EAAE,SAAS;SACd;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,aAAa;YACxB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACxC;QACD,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAgC,CAAC;IACrF,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,IAAI,EAAE,KAAK,CAE1C,CAAC;IAEd,OAAO;QACL,aAAa;QACb,kBAAkB,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QACtE,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BridgeConfig, ParsedTelegramCommand, RuntimeDeps } from "../types.js";
|
|
1
|
+
import type { BridgeConfig, BridgeStoreData, ParsedTelegramCommand, RuntimeDeps } from "../types.js";
|
|
2
2
|
import type { TuiPluginApi } from "../tui-types.js";
|
|
3
3
|
type SessionCredentials = {
|
|
4
4
|
botToken: string;
|
|
@@ -23,6 +23,7 @@ export declare class BridgeController {
|
|
|
23
23
|
private processingQueue;
|
|
24
24
|
private lastEscAt;
|
|
25
25
|
private sessionCredentials?;
|
|
26
|
+
private activePromptCheckInFlight;
|
|
26
27
|
constructor(api: TuiPluginApi, config: BridgeConfig, storePath: string, deps?: Partial<RuntimeDeps>);
|
|
27
28
|
init(): Promise<void>;
|
|
28
29
|
bindCurrent(credentials?: SessionCredentials): Promise<string>;
|
|
@@ -33,6 +34,7 @@ export declare class BridgeController {
|
|
|
33
34
|
handleLocalTuiCommand(command: string): Promise<void>;
|
|
34
35
|
private processPromptQueue;
|
|
35
36
|
private onAssistantCompleted;
|
|
37
|
+
private completeActivePrompt;
|
|
36
38
|
private onUserMessage;
|
|
37
39
|
private onPermissionAsked;
|
|
38
40
|
private handlePermissionReply;
|
|
@@ -68,12 +70,19 @@ export declare class BridgeController {
|
|
|
68
70
|
private parseCredentialArgs;
|
|
69
71
|
private parseStartWithCredentials;
|
|
70
72
|
private parseCredentialCommand;
|
|
73
|
+
private isVersionCommand;
|
|
74
|
+
private versionLine;
|
|
71
75
|
private resolveCredentials;
|
|
72
76
|
private getTelegramApi;
|
|
73
77
|
private requireChannelID;
|
|
74
78
|
private stopRuntime;
|
|
75
79
|
private requireState;
|
|
76
80
|
private persist;
|
|
77
|
-
|
|
81
|
+
syncState(): Promise<BridgeStoreData>;
|
|
82
|
+
private resetBoundSessionState;
|
|
83
|
+
private skipTelegramBacklog;
|
|
84
|
+
private reconcileActivePrompt;
|
|
85
|
+
private clearTuiPrompt;
|
|
86
|
+
private waitForPromptCompletion;
|
|
78
87
|
}
|
|
79
88
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
|
-
import {
|
|
3
|
+
import { getCurrentOrCreateSessionID } from "../opencode/binding.js";
|
|
4
4
|
import { replyPermission, toPendingPermission, formatPermissionRequestMessage } from "../opencode/permissions.js";
|
|
5
5
|
import { createTelegramUserMessageID, submitPrompt } from "../opencode/submit.js";
|
|
6
6
|
import { formatSummaryForTelegram } from "../summary/format.js";
|
|
@@ -10,6 +10,7 @@ import { TelegramApi } from "../telegram/api.js";
|
|
|
10
10
|
import { TelegramPoller } from "../telegram/poller.js";
|
|
11
11
|
import { SessionEventStream } from "../opencode/events.js";
|
|
12
12
|
import { createShutdownGuard } from "./shutdown.js";
|
|
13
|
+
import { PLUGIN_VERSION } from "../version.js";
|
|
13
14
|
const execFileAsync = promisify(execFile);
|
|
14
15
|
const DEFAULT_DEPS = {
|
|
15
16
|
now: () => Date.now(),
|
|
@@ -134,6 +135,7 @@ export class BridgeController {
|
|
|
134
135
|
processingQueue = false;
|
|
135
136
|
lastEscAt = 0;
|
|
136
137
|
sessionCredentials;
|
|
138
|
+
activePromptCheckInFlight = false;
|
|
137
139
|
constructor(api, config, storePath, deps) {
|
|
138
140
|
this.api = api;
|
|
139
141
|
this.config = config;
|
|
@@ -154,17 +156,16 @@ export class BridgeController {
|
|
|
154
156
|
this.config.botToken = resolvedCredentials.botToken;
|
|
155
157
|
this.config.channelID = resolvedCredentials.channelID;
|
|
156
158
|
this.store.setChannelID(resolvedCredentials.channelID);
|
|
157
|
-
const sessionID =
|
|
159
|
+
const sessionID = await getCurrentOrCreateSessionID(this.api, this.client);
|
|
158
160
|
const state = await this.syncState();
|
|
159
161
|
const claimed = this.lease.claim(state);
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
claimed.bound.channelID = resolvedCredentials.channelID;
|
|
164
|
-
await this.persist(claimed);
|
|
162
|
+
const next = this.resetBoundSessionState(claimed, sessionID, resolvedCredentials.channelID);
|
|
163
|
+
await this.persist(next);
|
|
164
|
+
await this.skipTelegramBacklog();
|
|
165
165
|
this.startHeartbeat();
|
|
166
166
|
await this.startEventStream(sessionID);
|
|
167
167
|
this.startPolling();
|
|
168
|
+
await this.clearTuiPrompt();
|
|
168
169
|
if (this.config.onlineNotice) {
|
|
169
170
|
await this.getTelegramApi().sendMessage(this.requireChannelID(), `OpenCode Telegram bridge online.\nsession_id: ${sessionID}`);
|
|
170
171
|
}
|
|
@@ -223,7 +224,7 @@ export class BridgeController {
|
|
|
223
224
|
async handleTelegramCommand(command) {
|
|
224
225
|
const state = await this.syncState();
|
|
225
226
|
const isOwner = this.lease.isOwner(state);
|
|
226
|
-
const alwaysAllowed = new Set(["status", "who", "health", "reclaim"]);
|
|
227
|
+
const alwaysAllowed = new Set(["status", "who", "health", "reclaim", "version"]);
|
|
227
228
|
if (!isOwner && !alwaysAllowed.has(command.command.kind)) {
|
|
228
229
|
await this.telegram.sendMessage(this.config.channelID, "Bridge is currently owned by another OpenCode instance. Use /tp:reclaim first.", { replyToMessageID: command.messageID });
|
|
229
230
|
return;
|
|
@@ -232,6 +233,10 @@ export class BridgeController {
|
|
|
232
233
|
await this.telegram.sendMessage(this.config.channelID, await this.statusLine(), { replyToMessageID: command.messageID });
|
|
233
234
|
return;
|
|
234
235
|
}
|
|
236
|
+
if (command.command.kind === "version") {
|
|
237
|
+
await this.telegram.sendMessage(this.config.channelID, this.versionLine(), { replyToMessageID: command.messageID });
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
235
240
|
if (command.command.kind === "disconnect") {
|
|
236
241
|
const state = await this.requireState();
|
|
237
242
|
if (state.bound.status !== "online") {
|
|
@@ -358,12 +363,20 @@ export class BridgeController {
|
|
|
358
363
|
const startWithCredentials = this.parseStartWithCredentials(command);
|
|
359
364
|
if (startWithCredentials) {
|
|
360
365
|
const sessionID = await this.bindCurrent(startWithCredentials);
|
|
366
|
+
await this.clearTuiPrompt();
|
|
361
367
|
this.api.ui.toast({
|
|
362
368
|
variant: "success",
|
|
363
369
|
message: `Telegram bridge bound to session ${sessionID}`,
|
|
364
370
|
});
|
|
365
371
|
return;
|
|
366
372
|
}
|
|
373
|
+
if (this.isVersionCommand(command)) {
|
|
374
|
+
this.api.ui.toast({
|
|
375
|
+
variant: "info",
|
|
376
|
+
message: this.versionLine(),
|
|
377
|
+
});
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
367
380
|
const credentialOnly = this.parseCredentialCommand(command);
|
|
368
381
|
if (credentialOnly) {
|
|
369
382
|
this.sessionCredentials = credentialOnly;
|
|
@@ -425,9 +438,14 @@ export class BridgeController {
|
|
|
425
438
|
promptQueue: state.promptQueue.slice(1),
|
|
426
439
|
};
|
|
427
440
|
await this.persist(next);
|
|
441
|
+
this.api.ui.toast({
|
|
442
|
+
variant: "info",
|
|
443
|
+
message: `Teleprompt: sending prompt to session ${state.bound.sessionID}...`,
|
|
444
|
+
});
|
|
428
445
|
await this.telegram.sendMessage(this.config.channelID, "running", { replyToMessageID: activeJob.telegramMessageID });
|
|
429
446
|
try {
|
|
430
|
-
await submitPrompt(this.client, state.bound.sessionID, job.prompt, job.telegramUpdateID, state.bound.model);
|
|
447
|
+
const submitted = await submitPrompt(this.client, state.bound.sessionID, job.prompt, job.telegramUpdateID, state.bound.model);
|
|
448
|
+
await this.waitForPromptCompletion(state.bound.sessionID, submitted.userMessageID, submitted.assistantMessageID);
|
|
431
449
|
}
|
|
432
450
|
catch (error) {
|
|
433
451
|
const latest = await this.requireState();
|
|
@@ -453,16 +471,17 @@ export class BridgeController {
|
|
|
453
471
|
}
|
|
454
472
|
}
|
|
455
473
|
async onAssistantCompleted(sessionID, assistantMessageID, parentUserMessageID) {
|
|
474
|
+
await this.completeActivePrompt(sessionID, assistantMessageID, parentUserMessageID);
|
|
475
|
+
}
|
|
476
|
+
async completeActivePrompt(sessionID, assistantMessageID, diffMessageID, directParts) {
|
|
456
477
|
const state = await this.syncState();
|
|
457
478
|
if (!this.lease.isOwner(state))
|
|
458
479
|
return;
|
|
459
480
|
if (!state.activePrompt)
|
|
460
481
|
return;
|
|
461
|
-
if (state.activePrompt.userMessageID !== parentUserMessageID)
|
|
462
|
-
return;
|
|
463
482
|
if (state.bound.sessionID !== sessionID)
|
|
464
483
|
return;
|
|
465
|
-
const summary = await this.buildSummary(sessionID, assistantMessageID,
|
|
484
|
+
const summary = await this.buildSummary(sessionID, assistantMessageID, diffMessageID, directParts);
|
|
466
485
|
const completedAt = this.deps.now();
|
|
467
486
|
const elapsed = completedAt - (state.activePrompt.startedAt ?? state.activePrompt.createdAt);
|
|
468
487
|
const message = formatSummaryForTelegram(summary, this.config.summaryMaxChars);
|
|
@@ -491,12 +510,10 @@ export class BridgeController {
|
|
|
491
510
|
return;
|
|
492
511
|
if (userMessageID.startsWith("tg-"))
|
|
493
512
|
return;
|
|
513
|
+
if (state.activePrompt)
|
|
514
|
+
return;
|
|
494
515
|
try {
|
|
495
|
-
await this.client.session.abort({ sessionID });
|
|
496
|
-
}
|
|
497
|
-
catch { }
|
|
498
|
-
try {
|
|
499
|
-
await this.client.session.deleteMessage({ sessionID, messageID: userMessageID });
|
|
516
|
+
await this.client.session.abort({ path: { id: sessionID } });
|
|
500
517
|
}
|
|
501
518
|
catch { }
|
|
502
519
|
this.api.ui.toast({
|
|
@@ -534,7 +551,7 @@ export class BridgeController {
|
|
|
534
551
|
await this.telegram.sendMessage(this.config.channelID, `Permission request not found: ${requestID}`, replyToMessageID ? { replyToMessageID } : undefined);
|
|
535
552
|
return;
|
|
536
553
|
}
|
|
537
|
-
await replyPermission(this.client, requestID, action);
|
|
554
|
+
await replyPermission(this.client, pending.sessionID, requestID, action);
|
|
538
555
|
const { [requestID]: _removed, ...rest } = state.pendingPermissions;
|
|
539
556
|
await this.persist({
|
|
540
557
|
...state,
|
|
@@ -593,7 +610,10 @@ export class BridgeController {
|
|
|
593
610
|
}
|
|
594
611
|
async fetchAvailableModels() {
|
|
595
612
|
try {
|
|
596
|
-
const response = await this.client.config.providers({
|
|
613
|
+
const response = await this.client.config.providers({
|
|
614
|
+
responseStyle: "data",
|
|
615
|
+
throwOnError: true,
|
|
616
|
+
});
|
|
597
617
|
const providers = response?.providers;
|
|
598
618
|
if (!Array.isArray(providers))
|
|
599
619
|
return [];
|
|
@@ -622,8 +642,8 @@ export class BridgeController {
|
|
|
622
642
|
return [];
|
|
623
643
|
}
|
|
624
644
|
}
|
|
625
|
-
async buildSummary(sessionID, assistantMessageID, userMessageID) {
|
|
626
|
-
const parts = this.api.state.part(assistantMessageID);
|
|
645
|
+
async buildSummary(sessionID, assistantMessageID, userMessageID, directParts) {
|
|
646
|
+
const parts = directParts ?? this.api.state.part(assistantMessageID);
|
|
627
647
|
const text = parts
|
|
628
648
|
.filter((part) => {
|
|
629
649
|
return part.type === "text" && typeof part.text === "string";
|
|
@@ -633,11 +653,15 @@ export class BridgeController {
|
|
|
633
653
|
.trim();
|
|
634
654
|
let changedFiles = [];
|
|
635
655
|
try {
|
|
636
|
-
const diffResponse = await this.client.session.
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
656
|
+
const diffResponse = await this.client.session.message({
|
|
657
|
+
path: {
|
|
658
|
+
id: sessionID,
|
|
659
|
+
messageID: userMessageID,
|
|
660
|
+
},
|
|
661
|
+
responseStyle: "data",
|
|
662
|
+
throwOnError: true,
|
|
663
|
+
});
|
|
664
|
+
const diff = diffResponse?.diff;
|
|
641
665
|
changedFiles = (diff || []).map((item) => item.file);
|
|
642
666
|
}
|
|
643
667
|
catch {
|
|
@@ -780,7 +804,11 @@ export class BridgeController {
|
|
|
780
804
|
return;
|
|
781
805
|
}
|
|
782
806
|
try {
|
|
783
|
-
await this.client.session.summarize({
|
|
807
|
+
await this.client.session.summarize({
|
|
808
|
+
path: { id: state.bound.sessionID },
|
|
809
|
+
responseStyle: "data",
|
|
810
|
+
throwOnError: true,
|
|
811
|
+
});
|
|
784
812
|
await this.telegram.sendMessage(this.config.channelID, `Compaction requested for session ${state.bound.sessionID}.`, { replyToMessageID });
|
|
785
813
|
}
|
|
786
814
|
catch (error) {
|
|
@@ -794,8 +822,11 @@ export class BridgeController {
|
|
|
794
822
|
return;
|
|
795
823
|
}
|
|
796
824
|
try {
|
|
797
|
-
const response = await this.client.session.create({
|
|
798
|
-
|
|
825
|
+
const response = await this.client.session.create({
|
|
826
|
+
responseStyle: "data",
|
|
827
|
+
throwOnError: true,
|
|
828
|
+
});
|
|
829
|
+
const nextSessionID = response?.id ?? response?.session?.id;
|
|
799
830
|
if (!nextSessionID || typeof nextSessionID !== "string") {
|
|
800
831
|
throw new Error("Could not resolve new session id.");
|
|
801
832
|
}
|
|
@@ -901,7 +932,7 @@ export class BridgeController {
|
|
|
901
932
|
return;
|
|
902
933
|
}
|
|
903
934
|
try {
|
|
904
|
-
await this.client.session.abort({
|
|
935
|
+
await this.client.session.abort({ path: { id: state.bound.sessionID } });
|
|
905
936
|
const latest = await this.requireState();
|
|
906
937
|
if (latest.activePrompt?.userMessageID === state.activePrompt.userMessageID) {
|
|
907
938
|
await this.persist(this.appendPromptHistory({
|
|
@@ -975,8 +1006,12 @@ export class BridgeController {
|
|
|
975
1006
|
if (!sessionID)
|
|
976
1007
|
return undefined;
|
|
977
1008
|
try {
|
|
978
|
-
const response = await this.client.session.get({
|
|
979
|
-
|
|
1009
|
+
const response = await this.client.session.get({
|
|
1010
|
+
path: { id: sessionID },
|
|
1011
|
+
responseStyle: "data",
|
|
1012
|
+
throwOnError: true,
|
|
1013
|
+
});
|
|
1014
|
+
const title = response?.title ?? response?.session?.title;
|
|
980
1015
|
if (typeof title === "string" && title.trim().length > 0)
|
|
981
1016
|
return title.trim();
|
|
982
1017
|
return undefined;
|
|
@@ -987,18 +1022,9 @@ export class BridgeController {
|
|
|
987
1022
|
}
|
|
988
1023
|
async switchBoundSession(sessionID) {
|
|
989
1024
|
const state = await this.syncState();
|
|
990
|
-
const next =
|
|
991
|
-
...state,
|
|
992
|
-
bound: {
|
|
993
|
-
...state.bound,
|
|
994
|
-
sessionID,
|
|
995
|
-
status: "online",
|
|
996
|
-
},
|
|
997
|
-
activePrompt: undefined,
|
|
998
|
-
promptQueue: [],
|
|
999
|
-
pendingPermissions: {},
|
|
1000
|
-
};
|
|
1025
|
+
const next = this.resetBoundSessionState(state, sessionID, state.bound.channelID || this.requireChannelID());
|
|
1001
1026
|
await this.persist(next);
|
|
1027
|
+
await this.skipTelegramBacklog();
|
|
1002
1028
|
await this.startEventStream(sessionID);
|
|
1003
1029
|
}
|
|
1004
1030
|
startHeartbeat() {
|
|
@@ -1008,7 +1034,9 @@ export class BridgeController {
|
|
|
1008
1034
|
const state = await this.syncState();
|
|
1009
1035
|
if (!this.lease.isOwner(state))
|
|
1010
1036
|
return;
|
|
1011
|
-
|
|
1037
|
+
const refreshed = this.lease.refresh(state);
|
|
1038
|
+
await this.persist(refreshed);
|
|
1039
|
+
await this.reconcileActivePrompt(refreshed);
|
|
1012
1040
|
}
|
|
1013
1041
|
catch (error) {
|
|
1014
1042
|
this.api.ui.toast({
|
|
@@ -1037,6 +1065,12 @@ export class BridgeController {
|
|
|
1037
1065
|
return;
|
|
1038
1066
|
await this.persist({ ...state, pollingOffset: offset });
|
|
1039
1067
|
},
|
|
1068
|
+
onUpdates: (count) => {
|
|
1069
|
+
this.api.ui.toast({
|
|
1070
|
+
variant: "info",
|
|
1071
|
+
message: `Teleprompt: received ${count} Telegram updates`,
|
|
1072
|
+
});
|
|
1073
|
+
},
|
|
1040
1074
|
onError: (error) => {
|
|
1041
1075
|
this.api.ui.toast({
|
|
1042
1076
|
variant: "warning",
|
|
@@ -1134,6 +1168,13 @@ export class BridgeController {
|
|
|
1134
1168
|
}
|
|
1135
1169
|
return this.parseCredentialArgs(parts);
|
|
1136
1170
|
}
|
|
1171
|
+
isVersionCommand(command) {
|
|
1172
|
+
const parts = this.splitCommandArgs(command);
|
|
1173
|
+
return this.isLocalCommand(parts, "version");
|
|
1174
|
+
}
|
|
1175
|
+
versionLine() {
|
|
1176
|
+
return `opencode-plugin-teleprompt ${PLUGIN_VERSION}`;
|
|
1177
|
+
}
|
|
1137
1178
|
resolveCredentials(credentials) {
|
|
1138
1179
|
const botToken = credentials?.botToken?.trim()
|
|
1139
1180
|
|| this.sessionCredentials?.botToken?.trim()
|
|
@@ -1193,5 +1234,155 @@ export class BridgeController {
|
|
|
1193
1234
|
this.data = latest;
|
|
1194
1235
|
return latest;
|
|
1195
1236
|
}
|
|
1237
|
+
resetBoundSessionState(state, sessionID, channelID) {
|
|
1238
|
+
return {
|
|
1239
|
+
...state,
|
|
1240
|
+
bound: {
|
|
1241
|
+
sessionID,
|
|
1242
|
+
channelID,
|
|
1243
|
+
status: "online",
|
|
1244
|
+
model: undefined,
|
|
1245
|
+
},
|
|
1246
|
+
activePrompt: undefined,
|
|
1247
|
+
promptQueue: [],
|
|
1248
|
+
pendingPermissions: {},
|
|
1249
|
+
promptHistory: [],
|
|
1250
|
+
recentPrompts: [],
|
|
1251
|
+
};
|
|
1252
|
+
}
|
|
1253
|
+
async skipTelegramBacklog() {
|
|
1254
|
+
const latestOffset = await this.getTelegramApi().getLatestUpdateOffset();
|
|
1255
|
+
if (latestOffset === undefined)
|
|
1256
|
+
return;
|
|
1257
|
+
const state = await this.requireState();
|
|
1258
|
+
if (latestOffset <= state.pollingOffset)
|
|
1259
|
+
return;
|
|
1260
|
+
await this.persist({
|
|
1261
|
+
...state,
|
|
1262
|
+
pollingOffset: latestOffset,
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1265
|
+
async reconcileActivePrompt(state) {
|
|
1266
|
+
if (this.activePromptCheckInFlight)
|
|
1267
|
+
return;
|
|
1268
|
+
if (!state.activePrompt)
|
|
1269
|
+
return;
|
|
1270
|
+
if (state.bound.status !== "online" || !state.bound.sessionID)
|
|
1271
|
+
return;
|
|
1272
|
+
this.activePromptCheckInFlight = true;
|
|
1273
|
+
try {
|
|
1274
|
+
const response = await this.client.session.messages({
|
|
1275
|
+
path: {
|
|
1276
|
+
id: state.bound.sessionID,
|
|
1277
|
+
},
|
|
1278
|
+
responseStyle: "data",
|
|
1279
|
+
throwOnError: true,
|
|
1280
|
+
});
|
|
1281
|
+
const messages = Array.isArray(response) ? response : (response?.messages || response?.items || response?.data || []);
|
|
1282
|
+
const threshold = (state.activePrompt.startedAt ?? state.activePrompt.createdAt) - 1_000;
|
|
1283
|
+
const latestCompletedAssistant = [...messages]
|
|
1284
|
+
.reverse()
|
|
1285
|
+
.find((entry) => {
|
|
1286
|
+
const info = entry?.info;
|
|
1287
|
+
return (info?.role === "assistant"
|
|
1288
|
+
&& typeof info?.id === "string"
|
|
1289
|
+
&& typeof info?.time?.completed === "number"
|
|
1290
|
+
&& info.time.completed >= threshold);
|
|
1291
|
+
});
|
|
1292
|
+
if (!latestCompletedAssistant)
|
|
1293
|
+
return;
|
|
1294
|
+
await this.completeActivePrompt(state.bound.sessionID, latestCompletedAssistant.info.id, state.activePrompt.userMessageID, latestCompletedAssistant.parts);
|
|
1295
|
+
}
|
|
1296
|
+
catch { }
|
|
1297
|
+
finally {
|
|
1298
|
+
this.activePromptCheckInFlight = false;
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
async clearTuiPrompt() {
|
|
1302
|
+
try {
|
|
1303
|
+
await this.client.tui.clearPrompt({
|
|
1304
|
+
responseStyle: "data",
|
|
1305
|
+
throwOnError: true,
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
catch { }
|
|
1309
|
+
}
|
|
1310
|
+
async waitForPromptCompletion(sessionID, userMessageID, assistantMessageID) {
|
|
1311
|
+
const startedAt = this.deps.now();
|
|
1312
|
+
const timeoutMs = 10 * 60 * 1000;
|
|
1313
|
+
const pollEveryMs = 2000;
|
|
1314
|
+
while (this.deps.now() - startedAt < timeoutMs) {
|
|
1315
|
+
const state = await this.syncState();
|
|
1316
|
+
if (!this.lease.isOwner(state))
|
|
1317
|
+
return;
|
|
1318
|
+
if (state.bound.sessionID !== sessionID)
|
|
1319
|
+
return;
|
|
1320
|
+
if (!state.activePrompt || state.activePrompt.userMessageID !== userMessageID)
|
|
1321
|
+
return;
|
|
1322
|
+
try {
|
|
1323
|
+
const response = await this.client.session.messages({
|
|
1324
|
+
path: {
|
|
1325
|
+
id: sessionID,
|
|
1326
|
+
},
|
|
1327
|
+
responseStyle: "data",
|
|
1328
|
+
throwOnError: true,
|
|
1329
|
+
});
|
|
1330
|
+
const messages = Array.isArray(response) ? response : (response?.messages || response?.items || response?.data || []);
|
|
1331
|
+
const completedAssistant = [...messages]
|
|
1332
|
+
.reverse()
|
|
1333
|
+
.find((entry) => {
|
|
1334
|
+
const info = entry?.info;
|
|
1335
|
+
if (info?.role !== "assistant")
|
|
1336
|
+
return false;
|
|
1337
|
+
if (assistantMessageID && info.id !== assistantMessageID)
|
|
1338
|
+
return false;
|
|
1339
|
+
if (info?.error)
|
|
1340
|
+
return true;
|
|
1341
|
+
const isCompleted = typeof info?.time?.completed === "number";
|
|
1342
|
+
if (!isCompleted)
|
|
1343
|
+
return false;
|
|
1344
|
+
// If we don't have a specific ID, ensure this message wasn't created before we started
|
|
1345
|
+
if (!assistantMessageID) {
|
|
1346
|
+
const created = info?.time?.created || 0;
|
|
1347
|
+
if (created > 0 && created < startedAt - 5000)
|
|
1348
|
+
return false; // 5s buffer
|
|
1349
|
+
}
|
|
1350
|
+
return true;
|
|
1351
|
+
});
|
|
1352
|
+
if (completedAssistant?.info?.id) {
|
|
1353
|
+
if (completedAssistant.info.error) {
|
|
1354
|
+
throw new Error(`Assistant error: ${JSON.stringify(completedAssistant.info.error)}`);
|
|
1355
|
+
}
|
|
1356
|
+
await this.completeActivePrompt(sessionID, completedAssistant.info.id, userMessageID, completedAssistant.parts);
|
|
1357
|
+
return;
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
catch (err) {
|
|
1361
|
+
if (err instanceof Error && err.message.startsWith("Assistant error:")) {
|
|
1362
|
+
throw err;
|
|
1363
|
+
}
|
|
1364
|
+
}
|
|
1365
|
+
await new Promise((resolve) => setTimeout(resolve, pollEveryMs));
|
|
1366
|
+
}
|
|
1367
|
+
const state = await this.syncState();
|
|
1368
|
+
if (!this.lease.isOwner(state))
|
|
1369
|
+
return;
|
|
1370
|
+
if (state.bound.sessionID !== sessionID)
|
|
1371
|
+
return;
|
|
1372
|
+
if (state.activePrompt?.userMessageID !== userMessageID)
|
|
1373
|
+
return;
|
|
1374
|
+
await this.telegram.sendMessage(this.config.channelID, "failed: prompt timed out waiting for completion", { replyToMessageID: state.activePrompt.telegramMessageID });
|
|
1375
|
+
await this.persist(this.appendPromptHistory({
|
|
1376
|
+
...state,
|
|
1377
|
+
activePrompt: undefined,
|
|
1378
|
+
}, {
|
|
1379
|
+
jobID: userMessageID,
|
|
1380
|
+
prompt: state.activePrompt.prompt,
|
|
1381
|
+
summary: "Timed out waiting for assistant completion.",
|
|
1382
|
+
changedFiles: [],
|
|
1383
|
+
status: "failed",
|
|
1384
|
+
at: this.deps.now(),
|
|
1385
|
+
}));
|
|
1386
|
+
}
|
|
1196
1387
|
}
|
|
1197
1388
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/runtime/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/runtime/controller.ts"],"names":[],"mappings":"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"}
|
package/dist/telegram/api.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class TelegramApi {
|
|
|
9
9
|
private readonly maxMessageLen;
|
|
10
10
|
constructor(token: string);
|
|
11
11
|
getUpdates(offset: number, timeoutSec: number, signal?: AbortSignal): Promise<GetUpdatesResult>;
|
|
12
|
+
getLatestUpdateOffset(signal?: AbortSignal): Promise<number | undefined>;
|
|
12
13
|
sendMessage(channelID: string, text: string, options?: SendMessageOptions, signal?: AbortSignal): Promise<void>;
|
|
13
14
|
private chunkText;
|
|
14
15
|
private post;
|
package/dist/telegram/api.js
CHANGED
|
@@ -10,11 +10,17 @@ export class TelegramApi {
|
|
|
10
10
|
const payload = {
|
|
11
11
|
offset,
|
|
12
12
|
timeout: timeoutSec,
|
|
13
|
-
allowed_updates: ["channel_post"],
|
|
14
13
|
};
|
|
15
14
|
const response = await this.post("/getUpdates", payload, signal);
|
|
16
15
|
return response;
|
|
17
16
|
}
|
|
17
|
+
async getLatestUpdateOffset(signal) {
|
|
18
|
+
const updates = await this.getUpdates(-1, 0, signal);
|
|
19
|
+
if (updates.length === 0)
|
|
20
|
+
return undefined;
|
|
21
|
+
const latest = updates.reduce((max, update) => Math.max(max, update.update_id), 0);
|
|
22
|
+
return latest + 1;
|
|
23
|
+
}
|
|
18
24
|
async sendMessage(channelID, text, options, signal) {
|
|
19
25
|
const chunks = this.chunkText(text);
|
|
20
26
|
for (const [index, chunk] of chunks.entries()) {
|
package/dist/telegram/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/telegram/api.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,WAAW;IAIO;IAHZ,OAAO,CAAS;IAChB,aAAa,GAAG,IAAI,CAAC;IAEtC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QACxC,IAAI,CAAC,OAAO,GAAG,+BAA+B,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,UAAkB,EAClB,MAAoB;QAEpB,MAAM,OAAO,GAAG;YACd,MAAM;YACN,OAAO,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/telegram/api.ts"],"names":[],"mappings":"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"}
|
package/dist/telegram/parser.js
CHANGED
|
@@ -41,6 +41,9 @@ function parseCommandBody(body) {
|
|
|
41
41
|
const lastErrorMatch = /^last-error\s*$/i.exec(trimmed);
|
|
42
42
|
if (lastErrorMatch)
|
|
43
43
|
return { kind: "last-error" };
|
|
44
|
+
const versionMatch = /^version\s*$/i.exec(trimmed);
|
|
45
|
+
if (versionMatch)
|
|
46
|
+
return { kind: "version" };
|
|
44
47
|
const cancelMatch = /^cancel\s+([A-Za-z0-9_\-:.]+)\s*$/i.exec(trimmed);
|
|
45
48
|
if (cancelMatch)
|
|
46
49
|
return { kind: "cancel", target: cancelMatch[1] };
|
|
@@ -63,7 +66,7 @@ function parseCommandBody(body) {
|
|
|
63
66
|
return { kind: "prompt", prompt: trimmed };
|
|
64
67
|
}
|
|
65
68
|
export function parseTelegramUpdate(update, channelID, prefix) {
|
|
66
|
-
const post = update.channel_post;
|
|
69
|
+
const post = update.channel_post || update.message;
|
|
67
70
|
if (!post)
|
|
68
71
|
return undefined;
|
|
69
72
|
const normalizedChannel = String(post.chat.id);
|
|
@@ -193,6 +196,15 @@ export function parseTelegramUpdate(update, channelID, prefix) {
|
|
|
193
196
|
command: { kind: "last-error" },
|
|
194
197
|
};
|
|
195
198
|
}
|
|
199
|
+
if (/^version\s*$/i.test(colonBody)) {
|
|
200
|
+
return {
|
|
201
|
+
updateID: update.update_id,
|
|
202
|
+
messageID: post.message_id,
|
|
203
|
+
channelID: normalizedChannel,
|
|
204
|
+
rawText: text,
|
|
205
|
+
command: { kind: "version" },
|
|
206
|
+
};
|
|
207
|
+
}
|
|
196
208
|
const cancelMatch = /^cancel\s+([A-Za-z0-9_\-:.]+)\s*$/i.exec(colonBody);
|
|
197
209
|
if (cancelMatch) {
|
|
198
210
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/telegram/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/telegram/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ type PollerHandlers = {
|
|
|
4
4
|
onCommand: (command: ParsedTelegramCommand) => Promise<void>;
|
|
5
5
|
onOffset: (offset: number) => Promise<void>;
|
|
6
6
|
onError: (error: unknown) => void;
|
|
7
|
+
onUpdates?: (count: number) => void;
|
|
7
8
|
};
|
|
8
9
|
export declare class TelegramPoller {
|
|
9
10
|
private readonly api;
|
package/dist/telegram/poller.js
CHANGED
|
@@ -19,6 +19,9 @@ export class TelegramPoller {
|
|
|
19
19
|
const updates = await this.api.getUpdates(offset, this.timeoutSec, signal);
|
|
20
20
|
if (signal.aborted)
|
|
21
21
|
break;
|
|
22
|
+
if (updates.length > 0) {
|
|
23
|
+
this.handlers.onUpdates?.(updates.length);
|
|
24
|
+
}
|
|
22
25
|
offset = await this.processUpdates(offset, updates);
|
|
23
26
|
}
|
|
24
27
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/telegram/poller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/telegram/poller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,MAAM,OAAO,cAAc;IAEN;IACA;IACA;IACA;IACA;IALnB,YACmB,GAAgB,EAChB,SAAiB,EACjB,MAAc,EACd,UAAkB,EAClB,QAAwB;QAJxB,QAAG,GAAH,GAAG,CAAa;QAChB,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAgB;IACxC,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,MAAmB;QAChD,IAAI,MAAM,GAAG,WAAW,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC3E,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM;gBAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM;gBAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,OAAyB;QAEzB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,UAAU,GAAG,eAAe,CAAC;gBAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,uFAAuF;YACvF,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,UAAU,GAAG,eAAe,CAAC;YAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
package/dist/tui.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { loadConfig } from "./config.js";
|
|
3
3
|
import { BridgeController } from "./runtime/controller.js";
|
|
4
|
+
import { PLUGIN_VERSION } from "./version.js";
|
|
4
5
|
async function runSafe(api, fn) {
|
|
5
6
|
try {
|
|
6
7
|
const message = await fn();
|
|
@@ -23,6 +24,31 @@ export const tui = async (api, _options) => {
|
|
|
23
24
|
const storePath = join(api.state.path.directory, ".opencode-telegram-bridge.json");
|
|
24
25
|
const controller = new BridgeController(api, config, storePath);
|
|
25
26
|
await controller.init();
|
|
27
|
+
if (config.botToken && config.channelID) {
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
// DUMP DEV TOOL
|
|
30
|
+
try {
|
|
31
|
+
const fs = require('node:fs');
|
|
32
|
+
const dump = {
|
|
33
|
+
routeKeys: Object.keys(api.route || {}),
|
|
34
|
+
apiKeys: Object.keys(api || {}),
|
|
35
|
+
commandKeys: Object.keys(api.command || {}),
|
|
36
|
+
uiKeys: Object.keys(api.ui || {}),
|
|
37
|
+
hasNavigate: typeof api.navigate,
|
|
38
|
+
routeCurrent: api.route?.current
|
|
39
|
+
};
|
|
40
|
+
fs.writeFileSync(storePath + '.debug.json', JSON.stringify(dump, null, 2));
|
|
41
|
+
}
|
|
42
|
+
catch (e) { }
|
|
43
|
+
void runSafe(api, async () => {
|
|
44
|
+
const state = await controller.syncState();
|
|
45
|
+
if (state.bound.status !== "online" || !state.bound.sessionID) {
|
|
46
|
+
const sessionID = await controller.bindCurrent();
|
|
47
|
+
return `Telegram bridge auto-bound to session ${sessionID}`;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}, 500);
|
|
51
|
+
}
|
|
26
52
|
const unregister = api.command.register(() => [
|
|
27
53
|
{
|
|
28
54
|
title: "Teleprompt: Start",
|
|
@@ -85,6 +111,22 @@ export const tui = async (api, _options) => {
|
|
|
85
111
|
});
|
|
86
112
|
},
|
|
87
113
|
},
|
|
114
|
+
{
|
|
115
|
+
title: "Teleprompt: Version",
|
|
116
|
+
value: "/tp:version",
|
|
117
|
+
description: "Show the loaded Teleprompt plugin version",
|
|
118
|
+
category: "Teleprompt",
|
|
119
|
+
slash: {
|
|
120
|
+
name: "tp:version",
|
|
121
|
+
aliases: ["telegram.version"],
|
|
122
|
+
},
|
|
123
|
+
onSelect: () => {
|
|
124
|
+
api.ui.toast({
|
|
125
|
+
variant: "info",
|
|
126
|
+
message: `opencode-plugin-teleprompt ${PLUGIN_VERSION}`,
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
},
|
|
88
130
|
]);
|
|
89
131
|
const unsubscribeTuiCommand = api.event.on("tui.command.execute", (event) => {
|
|
90
132
|
void controller.handleLocalTuiCommand(event.properties.command);
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export type BridgeStoreData = {
|
|
|
66
66
|
};
|
|
67
67
|
export type TelegramUpdate = {
|
|
68
68
|
update_id: number;
|
|
69
|
+
message?: TelegramChannelPost;
|
|
69
70
|
channel_post?: TelegramChannelPost;
|
|
70
71
|
};
|
|
71
72
|
export type TelegramChannelPost = {
|
|
@@ -133,6 +134,9 @@ export type TelegramCommandHistory = {
|
|
|
133
134
|
export type TelegramCommandLastError = {
|
|
134
135
|
kind: "last-error";
|
|
135
136
|
};
|
|
137
|
+
export type TelegramCommandVersion = {
|
|
138
|
+
kind: "version";
|
|
139
|
+
};
|
|
136
140
|
export type TelegramCommandModel = {
|
|
137
141
|
kind: "model";
|
|
138
142
|
target?: {
|
|
@@ -141,7 +145,7 @@ export type TelegramCommandModel = {
|
|
|
141
145
|
};
|
|
142
146
|
preset?: "fast" | "smart" | "max";
|
|
143
147
|
};
|
|
144
|
-
export type TelegramCommand = TelegramCommandPrompt | TelegramCommandPermission | TelegramCommandStatus | TelegramCommandDisconnect | TelegramCommandInterrupt | TelegramCommandQueue | TelegramCommandCancel | TelegramCommandRetry | TelegramCommandContext | TelegramCommandCompact | TelegramCommandNewSession | TelegramCommandResetContext | TelegramCommandWho | TelegramCommandHealth | TelegramCommandReclaim | TelegramCommandHistory | TelegramCommandLastError | TelegramCommandModel;
|
|
148
|
+
export type TelegramCommand = TelegramCommandPrompt | TelegramCommandPermission | TelegramCommandStatus | TelegramCommandDisconnect | TelegramCommandInterrupt | TelegramCommandQueue | TelegramCommandCancel | TelegramCommandRetry | TelegramCommandContext | TelegramCommandCompact | TelegramCommandNewSession | TelegramCommandResetContext | TelegramCommandWho | TelegramCommandHealth | TelegramCommandReclaim | TelegramCommandHistory | TelegramCommandLastError | TelegramCommandVersion | TelegramCommandModel;
|
|
145
149
|
export type ParsedTelegramCommand = {
|
|
146
150
|
updateID: number;
|
|
147
151
|
messageID: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PLUGIN_VERSION = "0.1.12";
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-plugin-teleprompt",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "OpenCode TUI plugin — control your AI coding session remotely via Telegram. Queue prompts, approve permissions, and get results as Telegram messages.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|