@llblab/pi-telegram 0.46.0 → 0.48.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.
- package/AGENTS.md +4 -2
- package/BACKLOG.md +0 -6
- package/CHANGELOG.md +14 -0
- package/README.md +5 -2
- package/dist/api/activity.d.ts +6 -0
- package/dist/api/activity.js +6 -0
- package/dist/api/commands.d.ts +6 -0
- package/dist/api/commands.js +6 -0
- package/dist/api/delivery.d.ts +6 -0
- package/dist/api/delivery.js +6 -0
- package/dist/api/inbound.d.ts +6 -0
- package/dist/api/inbound.js +6 -0
- package/dist/api/keyboard.d.ts +6 -0
- package/dist/api/keyboard.js +6 -0
- package/dist/api/outbound.d.ts +6 -0
- package/dist/api/outbound.js +6 -0
- package/dist/api/sections.d.ts +7 -0
- package/dist/api/sections.js +6 -0
- package/dist/api/status.d.ts +6 -0
- package/dist/api/status.js +6 -0
- package/dist/api/updates.d.ts +6 -0
- package/dist/api/updates.js +6 -0
- package/dist/api/voice.d.ts +6 -0
- package/dist/api/voice.js +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/lib/activity-verbosity.d.ts +52 -0
- package/dist/lib/activity-verbosity.js +596 -0
- package/dist/lib/activity.d.ts +220 -0
- package/dist/lib/activity.js +574 -0
- package/dist/lib/agent-messages.d.ts +28 -0
- package/dist/lib/agent-messages.js +86 -0
- package/dist/lib/bindings.d.ts +250 -0
- package/dist/lib/bindings.js +936 -0
- package/dist/lib/bus-api.d.ts +18 -0
- package/dist/lib/bus-api.js +254 -0
- package/dist/lib/bus-follower.d.ts +464 -0
- package/dist/lib/bus-follower.js +1686 -0
- package/dist/lib/bus-leader.d.ts +292 -0
- package/dist/lib/bus-leader.js +2242 -0
- package/dist/lib/bus-transport.d.ts +64 -0
- package/dist/lib/bus-transport.js +140 -0
- package/dist/lib/bus.d.ts +518 -0
- package/dist/lib/bus.js +2055 -0
- package/dist/lib/channel-posts.d.ts +170 -0
- package/dist/lib/channel-posts.js +611 -0
- package/dist/lib/command-templates.d.ts +70 -0
- package/dist/lib/command-templates.js +744 -0
- package/dist/lib/commands.d.ts +541 -0
- package/dist/lib/commands.js +1155 -0
- package/dist/lib/config.d.ts +252 -0
- package/dist/lib/config.js +889 -0
- package/dist/lib/delivery.d.ts +163 -0
- package/dist/lib/delivery.js +542 -0
- package/dist/lib/extension.d.ts +7 -0
- package/dist/lib/extension.js +1604 -0
- package/dist/lib/generative-app-worker.mjs +104 -0
- package/dist/lib/generative-apps.d.ts +212 -0
- package/dist/lib/generative-apps.js +1006 -0
- package/dist/lib/inbound.d.ts +91 -0
- package/dist/lib/inbound.js +502 -0
- package/dist/lib/journal.d.ts +665 -0
- package/dist/lib/journal.js +3701 -0
- package/dist/lib/keyboard.d.ts +23 -0
- package/dist/lib/keyboard.js +37 -0
- package/dist/lib/lifecycle.d.ts +157 -0
- package/dist/lib/lifecycle.js +395 -0
- package/dist/lib/locks.d.ts +164 -0
- package/dist/lib/locks.js +1208 -0
- package/dist/lib/logging.d.ts +50 -0
- package/dist/lib/logging.js +274 -0
- package/dist/lib/media.d.ts +181 -0
- package/dist/lib/media.js +602 -0
- package/dist/lib/menu-model.d.ts +217 -0
- package/dist/lib/menu-model.js +663 -0
- package/dist/lib/menu-queue.d.ts +37 -0
- package/dist/lib/menu-queue.js +408 -0
- package/dist/lib/menu-settings.d.ts +115 -0
- package/dist/lib/menu-settings.js +595 -0
- package/dist/lib/menu-status.d.ts +32 -0
- package/dist/lib/menu-status.js +112 -0
- package/dist/lib/menu-thinking.d.ts +29 -0
- package/dist/lib/menu-thinking.js +82 -0
- package/dist/lib/menu.d.ts +171 -0
- package/dist/lib/menu.js +323 -0
- package/dist/lib/model.d.ts +127 -0
- package/dist/lib/model.js +409 -0
- package/dist/lib/outbound-attachments.d.ts +241 -0
- package/dist/lib/outbound-attachments.js +639 -0
- package/dist/lib/outbound-buttons.d.ts +69 -0
- package/dist/lib/outbound-buttons.js +248 -0
- package/dist/lib/outbound-markup.d.ts +42 -0
- package/dist/lib/outbound-markup.js +678 -0
- package/dist/lib/outbound-voice.d.ts +55 -0
- package/dist/lib/outbound-voice.js +152 -0
- package/dist/lib/outbound.d.ts +185 -0
- package/dist/lib/outbound.js +516 -0
- package/dist/lib/ownership.d.ts +77 -0
- package/dist/lib/ownership.js +174 -0
- package/dist/lib/paths.d.ts +40 -0
- package/dist/lib/paths.js +94 -0
- package/dist/lib/pi.d.ts +72 -0
- package/dist/lib/pi.js +121 -0
- package/dist/lib/polling.d.ts +351 -0
- package/dist/lib/polling.js +1196 -0
- package/dist/lib/preview.d.ts +192 -0
- package/dist/lib/preview.js +614 -0
- package/dist/lib/prompt-templates.d.ts +24 -0
- package/dist/lib/prompt-templates.js +118 -0
- package/dist/lib/prompts.d.ts +57 -0
- package/dist/lib/prompts.js +167 -0
- package/dist/lib/queue.d.ts +766 -0
- package/dist/lib/queue.js +1965 -0
- package/dist/lib/recovery.d.ts +86 -0
- package/dist/lib/recovery.js +285 -0
- package/dist/lib/rendering.d.ts +20 -0
- package/dist/lib/rendering.js +983 -0
- package/dist/lib/replies.d.ts +214 -0
- package/dist/lib/replies.js +737 -0
- package/dist/lib/routing.d.ts +207 -0
- package/dist/lib/routing.js +2282 -0
- package/dist/lib/runtime.d.ts +172 -0
- package/dist/lib/runtime.js +402 -0
- package/dist/lib/sections.d.ts +165 -0
- package/dist/lib/sections.js +327 -0
- package/dist/lib/setup.d.ts +82 -0
- package/dist/lib/setup.js +150 -0
- package/dist/lib/skills.d.ts +8 -0
- package/dist/lib/skills.js +12 -0
- package/dist/lib/status.d.ts +442 -0
- package/dist/lib/status.js +1008 -0
- package/dist/lib/sync.d.ts +179 -0
- package/dist/lib/sync.js +782 -0
- package/dist/lib/target.d.ts +20 -0
- package/dist/lib/target.js +27 -0
- package/dist/lib/telegram-api.d.ts +541 -0
- package/dist/lib/telegram-api.js +1159 -0
- package/dist/lib/text-groups.d.ts +89 -0
- package/dist/lib/text-groups.js +317 -0
- package/dist/lib/thread-cleanup-manager.d.ts +288 -0
- package/dist/lib/thread-cleanup-manager.js +560 -0
- package/dist/lib/thread-display.d.ts +46 -0
- package/dist/lib/thread-display.js +257 -0
- package/dist/lib/thread-naming.d.ts +46 -0
- package/dist/lib/thread-naming.js +78 -0
- package/dist/lib/thread-reconciler.d.ts +239 -0
- package/dist/lib/thread-reconciler.js +644 -0
- package/dist/lib/threads.d.ts +621 -0
- package/dist/lib/threads.js +3679 -0
- package/dist/lib/time-injection.d.ts +15 -0
- package/dist/lib/time-injection.js +56 -0
- package/dist/lib/turns.d.ts +109 -0
- package/dist/lib/turns.js +500 -0
- package/dist/lib/updates.d.ts +1290 -0
- package/dist/lib/updates.js +3634 -0
- package/dist/lib/voice.d.ts +117 -0
- package/dist/lib/voice.js +174 -0
- package/dist/lib/workspace-admission.d.ts +264 -0
- package/dist/lib/workspace-admission.js +1136 -0
- package/dist/lib/workspace-retirement.d.ts +219 -0
- package/dist/lib/workspace-retirement.js +587 -0
- package/dist/lib/workspace-slots.d.ts +30 -0
- package/dist/lib/workspace-slots.js +54 -0
- package/dist/package.json +126 -0
- package/dist/pi-telegram/index.js +1 -0
- package/dist/skills/generated-control-surface/SKILL.md +107 -0
- package/dist/skills/generated-control-surface/references/capability-adapters.md +27 -0
- package/dist/skills/generated-control-surface/references/layout-and-state.md +37 -0
- package/dist/skills/generative-apps/SKILL.md +115 -0
- package/dist/skills/show-me/SKILL.md +166 -0
- package/dist/skills/show-me/references/telegram-surfaces.md +43 -0
- package/dist/skills/telegram-bridge/SKILL.md +129 -0
- package/dist/skills/telegram-bridge/references/configuration.md +15 -0
- package/dist/skills/telegram-bridge/references/delivery-and-threads.md +27 -0
- package/dist/skills/telegram-bridge/references/diagnosis.md +18 -0
- package/docs/README.md +2 -0
- package/docs/architecture.md +1 -1
- package/docs/compact-matrix-literal.md +10 -3
- package/docs/generative-apps.md +15 -13
- package/docs/multi-instance-bus.md +6 -4
- package/docs/outbound.md +1 -1
- package/docs/public-api.md +3 -3
- package/lib/bindings.ts +89 -6
- package/lib/bus-follower.ts +7 -3
- package/lib/bus-leader.ts +44 -19
- package/lib/bus.ts +4 -1
- package/lib/commands.ts +2 -2
- package/lib/config.ts +14 -7
- package/lib/delivery.ts +38 -6
- package/lib/extension.ts +7 -0
- package/lib/generative-apps.ts +379 -13
- package/lib/menu-settings.ts +20 -6
- package/lib/outbound-markup.ts +16 -7
- package/lib/status.ts +15 -12
- package/lib/telegram-api.ts +12 -1
- package/lib/thread-display.ts +96 -18
- package/package.json +56 -13
- package/scripts/build-dist.mjs +44 -0
- package/scripts/measure-bus.mjs +8 -1
- package/scripts/measure-workspace.mjs +8 -1
- package/skills/generative-apps/SKILL.md +1 -1
- package/skills/show-me/SKILL.md +1 -1
- package/skills/show-me/references/telegram-surfaces.md +1 -1
- package/skills/telegram-bridge/SKILL.md +1 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable journal for Telegram channel posts authored by this agent path
|
|
3
|
+
* Zones: telegram outbound, filesystem authority
|
|
4
|
+
* Owns publication intent, outcome-unknown fencing, confirmed post identity, and bounded local listing
|
|
5
|
+
*/
|
|
6
|
+
import type { ExtensionAPI } from "./pi.ts";
|
|
7
|
+
export type TelegramChannelPostMediaKind = "photo" | "video";
|
|
8
|
+
export interface TelegramChannelPostMediaIntent {
|
|
9
|
+
kind: TelegramChannelPostMediaKind;
|
|
10
|
+
fileName: string;
|
|
11
|
+
sizeBytes: number;
|
|
12
|
+
sha256: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const TELEGRAM_CHANNEL_POST_MEDIA_MAX_BYTES: Record<TelegramChannelPostMediaKind, number>;
|
|
15
|
+
export declare const TELEGRAM_CHANNEL_POST_CAPTION_MAX_LENGTH = 1024;
|
|
16
|
+
export declare const TELEGRAM_CHANNEL_POST_MEDIA_FILE_NAME_MAX_LENGTH = 255;
|
|
17
|
+
/** Safe, content-free local validation failure for channel media publication intent. */
|
|
18
|
+
export declare class TelegramChannelPostValidationError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
export declare function isTelegramChannelPostValidationError(error: unknown): error is TelegramChannelPostValidationError;
|
|
22
|
+
export declare function resolveTelegramChannelPostMediaKind(path: string): TelegramChannelPostMediaKind | undefined;
|
|
23
|
+
export declare function assertTelegramChannelPostMediaSize(kind: TelegramChannelPostMediaKind, sizeBytes: number): void;
|
|
24
|
+
export declare function inspectTelegramChannelPostMedia(path: string): Promise<TelegramChannelPostMediaIntent>;
|
|
25
|
+
export declare function getTelegramChannelPostCaptionLength(caption: string): number;
|
|
26
|
+
export declare function assertTelegramChannelPostCaptionWithinLimit(caption: string): void;
|
|
27
|
+
type ChannelPostJournalCode = "invalid" | "conflict" | "capacity" | "io";
|
|
28
|
+
export declare class TelegramChannelPostJournalError extends Error {
|
|
29
|
+
readonly code: ChannelPostJournalCode;
|
|
30
|
+
constructor(code: ChannelPostJournalCode, message: string, cause?: unknown);
|
|
31
|
+
}
|
|
32
|
+
export type TelegramChannelPostAddress = number | `@${string}`;
|
|
33
|
+
interface TelegramChannelPostRecordBase {
|
|
34
|
+
operationId: string;
|
|
35
|
+
requestedChannel: TelegramChannelPostAddress;
|
|
36
|
+
markdown: string;
|
|
37
|
+
media?: TelegramChannelPostMediaIntent;
|
|
38
|
+
createdAtMs: number;
|
|
39
|
+
updatedAtMs: number;
|
|
40
|
+
}
|
|
41
|
+
interface TelegramPublishedChannelPostIdentity {
|
|
42
|
+
issuedAtMs: number;
|
|
43
|
+
publishedAtMs: number;
|
|
44
|
+
channelId: number;
|
|
45
|
+
messageId: number;
|
|
46
|
+
channelUsername?: `@${string}`;
|
|
47
|
+
channelTitle?: string;
|
|
48
|
+
lastMutationId?: string;
|
|
49
|
+
}
|
|
50
|
+
export type TelegramChannelPostRecord = TelegramChannelPostRecordBase & ({
|
|
51
|
+
state: "prepared";
|
|
52
|
+
} | {
|
|
53
|
+
state: "outcome-unknown";
|
|
54
|
+
issuedAtMs: number;
|
|
55
|
+
} | ({
|
|
56
|
+
state: "published";
|
|
57
|
+
} & TelegramPublishedChannelPostIdentity) | ({
|
|
58
|
+
state: "edit-outcome-unknown";
|
|
59
|
+
mutationId: string;
|
|
60
|
+
attemptedMarkdown: string;
|
|
61
|
+
mutationIssuedAtMs: number;
|
|
62
|
+
} & TelegramPublishedChannelPostIdentity) | ({
|
|
63
|
+
state: "delete-outcome-unknown";
|
|
64
|
+
mutationId: string;
|
|
65
|
+
mutationIssuedAtMs: number;
|
|
66
|
+
} & TelegramPublishedChannelPostIdentity) | ({
|
|
67
|
+
state: "deleted";
|
|
68
|
+
mutationId: string;
|
|
69
|
+
deletedAtMs: number;
|
|
70
|
+
} & TelegramPublishedChannelPostIdentity));
|
|
71
|
+
export interface TelegramChannelPostJournalStoreOptions {
|
|
72
|
+
path: string;
|
|
73
|
+
profileName: string;
|
|
74
|
+
tokenSha256: string;
|
|
75
|
+
maxRecords?: number;
|
|
76
|
+
maxBytes?: number;
|
|
77
|
+
getNowMs?: () => number;
|
|
78
|
+
}
|
|
79
|
+
export interface TelegramChannelPostJournalStore {
|
|
80
|
+
prepare(input: {
|
|
81
|
+
operationId: string;
|
|
82
|
+
channel: TelegramChannelPostAddress;
|
|
83
|
+
markdown: string;
|
|
84
|
+
media?: TelegramChannelPostMediaIntent;
|
|
85
|
+
}): {
|
|
86
|
+
prepared: boolean;
|
|
87
|
+
record: TelegramChannelPostRecord;
|
|
88
|
+
};
|
|
89
|
+
get(operationId: string): TelegramChannelPostRecord | undefined;
|
|
90
|
+
beginPublication(operationId: string): {
|
|
91
|
+
began: boolean;
|
|
92
|
+
record: TelegramChannelPostRecord;
|
|
93
|
+
};
|
|
94
|
+
confirmPublished(input: {
|
|
95
|
+
operationId: string;
|
|
96
|
+
channelId: number;
|
|
97
|
+
messageId: number;
|
|
98
|
+
channelUsername?: `@${string}`;
|
|
99
|
+
channelTitle?: string;
|
|
100
|
+
}): {
|
|
101
|
+
confirmed: boolean;
|
|
102
|
+
record: TelegramChannelPostRecord;
|
|
103
|
+
};
|
|
104
|
+
beginEdit(input: {
|
|
105
|
+
operationId: string;
|
|
106
|
+
mutationId: string;
|
|
107
|
+
markdown: string;
|
|
108
|
+
}): {
|
|
109
|
+
began: boolean;
|
|
110
|
+
record: TelegramChannelPostRecord;
|
|
111
|
+
};
|
|
112
|
+
confirmEdited(input: {
|
|
113
|
+
operationId: string;
|
|
114
|
+
mutationId: string;
|
|
115
|
+
}): {
|
|
116
|
+
confirmed: boolean;
|
|
117
|
+
record: TelegramChannelPostRecord;
|
|
118
|
+
};
|
|
119
|
+
beginDelete(input: {
|
|
120
|
+
operationId: string;
|
|
121
|
+
mutationId: string;
|
|
122
|
+
}): {
|
|
123
|
+
began: boolean;
|
|
124
|
+
record: TelegramChannelPostRecord;
|
|
125
|
+
};
|
|
126
|
+
confirmDeleted(input: {
|
|
127
|
+
operationId: string;
|
|
128
|
+
mutationId: string;
|
|
129
|
+
}): {
|
|
130
|
+
confirmed: boolean;
|
|
131
|
+
record: TelegramChannelPostRecord;
|
|
132
|
+
};
|
|
133
|
+
list(input?: {
|
|
134
|
+
channel?: TelegramChannelPostAddress;
|
|
135
|
+
limit?: number;
|
|
136
|
+
}): TelegramChannelPostRecord[];
|
|
137
|
+
}
|
|
138
|
+
export declare function publishTelegramChannelPost(input: {
|
|
139
|
+
store: TelegramChannelPostJournalStore;
|
|
140
|
+
operationId: string;
|
|
141
|
+
channel: TelegramChannelPostAddress;
|
|
142
|
+
markdown: string;
|
|
143
|
+
media?: TelegramChannelPostMediaIntent;
|
|
144
|
+
observeChannel(channel: TelegramChannelPostAddress): Promise<{
|
|
145
|
+
id: number;
|
|
146
|
+
type: string;
|
|
147
|
+
username?: string;
|
|
148
|
+
title?: string;
|
|
149
|
+
}>;
|
|
150
|
+
send(channel: TelegramChannelPostAddress, markdown: string): Promise<{
|
|
151
|
+
messageId: number;
|
|
152
|
+
chat: {
|
|
153
|
+
id: number;
|
|
154
|
+
type: string;
|
|
155
|
+
};
|
|
156
|
+
}>;
|
|
157
|
+
}): Promise<TelegramChannelPostRecord>;
|
|
158
|
+
export declare function registerTelegramChannelPostMutationTool(pi: ExtensionAPI, deps: {
|
|
159
|
+
mutate(input: {
|
|
160
|
+
action: "edit" | "delete";
|
|
161
|
+
operationId: string;
|
|
162
|
+
mutationId: string;
|
|
163
|
+
markdown?: string;
|
|
164
|
+
}): Promise<TelegramChannelPostRecord>;
|
|
165
|
+
}): void;
|
|
166
|
+
export declare function registerTelegramChannelPostListTool(pi: ExtensionAPI, deps: {
|
|
167
|
+
list: TelegramChannelPostJournalStore["list"];
|
|
168
|
+
}): void;
|
|
169
|
+
export declare function createTelegramChannelPostJournalStore(options: TelegramChannelPostJournalStoreOptions): TelegramChannelPostJournalStore;
|
|
170
|
+
export {};
|