copilot-hub 0.1.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.
Files changed (128) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +215 -0
  3. package/apps/agent-engine/.env.example +41 -0
  4. package/apps/agent-engine/LICENSE +21 -0
  5. package/apps/agent-engine/README.md +57 -0
  6. package/apps/agent-engine/bot-registry.example.json +28 -0
  7. package/apps/agent-engine/capabilities/example/index.js +3 -0
  8. package/apps/agent-engine/capabilities/example/manifest.json +14 -0
  9. package/apps/agent-engine/dist/agent-worker.js +241 -0
  10. package/apps/agent-engine/dist/config.js +225 -0
  11. package/apps/agent-engine/dist/index.js +352 -0
  12. package/apps/agent-engine/dist/test/project-fingerprint.test.js +40 -0
  13. package/apps/agent-engine/dist/test/thread-id.test.js +12 -0
  14. package/apps/agent-engine/package.json +28 -0
  15. package/apps/control-plane/.env.example +25 -0
  16. package/apps/control-plane/README.md +35 -0
  17. package/apps/control-plane/bot-registry.example.json +40 -0
  18. package/apps/control-plane/capabilities/example/index.js +3 -0
  19. package/apps/control-plane/capabilities/example/manifest.json +14 -0
  20. package/apps/control-plane/dist/agent-worker.js +243 -0
  21. package/apps/control-plane/dist/channels/channel-factory.js +21 -0
  22. package/apps/control-plane/dist/channels/hub-ops-commands.js +752 -0
  23. package/apps/control-plane/dist/channels/telegram-channel.js +743 -0
  24. package/apps/control-plane/dist/channels/whatsapp-channel.js +35 -0
  25. package/apps/control-plane/dist/config.js +230 -0
  26. package/apps/control-plane/dist/copilot-hub.js +138 -0
  27. package/apps/control-plane/dist/index.js +349 -0
  28. package/apps/control-plane/dist/kernel/admin-contract.js +51 -0
  29. package/apps/control-plane/dist/test/project-fingerprint.test.js +40 -0
  30. package/apps/control-plane/dist/test/thread-id.test.js +12 -0
  31. package/apps/control-plane/package.json +27 -0
  32. package/package.json +89 -0
  33. package/packages/contracts/README.md +10 -0
  34. package/packages/contracts/dist/control-plane.d.ts +24 -0
  35. package/packages/contracts/dist/control-plane.js +37 -0
  36. package/packages/contracts/dist/control-plane.js.map +1 -0
  37. package/packages/contracts/dist/index.d.ts +1 -0
  38. package/packages/contracts/dist/index.js +2 -0
  39. package/packages/contracts/dist/index.js.map +1 -0
  40. package/packages/contracts/package.json +27 -0
  41. package/packages/core/README.md +33 -0
  42. package/packages/core/dist/agent-supervisor.d.ts +39 -0
  43. package/packages/core/dist/agent-supervisor.js +552 -0
  44. package/packages/core/dist/agent-supervisor.js.map +1 -0
  45. package/packages/core/dist/bot-manager.d.ts +66 -0
  46. package/packages/core/dist/bot-manager.js +333 -0
  47. package/packages/core/dist/bot-manager.js.map +1 -0
  48. package/packages/core/dist/bot-registry.d.ts +60 -0
  49. package/packages/core/dist/bot-registry.js +381 -0
  50. package/packages/core/dist/bot-registry.js.map +1 -0
  51. package/packages/core/dist/bot-runtime.d.ts +135 -0
  52. package/packages/core/dist/bot-runtime.js +349 -0
  53. package/packages/core/dist/bot-runtime.js.map +1 -0
  54. package/packages/core/dist/bridge-service.d.ts +39 -0
  55. package/packages/core/dist/bridge-service.js +272 -0
  56. package/packages/core/dist/bridge-service.js.map +1 -0
  57. package/packages/core/dist/capability-manager.d.ts +18 -0
  58. package/packages/core/dist/capability-manager.js +335 -0
  59. package/packages/core/dist/capability-manager.js.map +1 -0
  60. package/packages/core/dist/capability-scaffold.d.ts +26 -0
  61. package/packages/core/dist/capability-scaffold.js +118 -0
  62. package/packages/core/dist/capability-scaffold.js.map +1 -0
  63. package/packages/core/dist/channel-factory.d.ts +6 -0
  64. package/packages/core/dist/channel-factory.js +22 -0
  65. package/packages/core/dist/channel-factory.js.map +1 -0
  66. package/packages/core/dist/codex-app-client.d.ts +56 -0
  67. package/packages/core/dist/codex-app-client.js +762 -0
  68. package/packages/core/dist/codex-app-client.js.map +1 -0
  69. package/packages/core/dist/codex-provider.d.ts +31 -0
  70. package/packages/core/dist/codex-provider.js +64 -0
  71. package/packages/core/dist/codex-provider.js.map +1 -0
  72. package/packages/core/dist/control-permission.d.ts +19 -0
  73. package/packages/core/dist/control-permission.js +106 -0
  74. package/packages/core/dist/control-permission.js.map +1 -0
  75. package/packages/core/dist/control-plane-actions.d.ts +1 -0
  76. package/packages/core/dist/control-plane-actions.js +2 -0
  77. package/packages/core/dist/control-plane-actions.js.map +1 -0
  78. package/packages/core/dist/example-capability.d.ts +17 -0
  79. package/packages/core/dist/example-capability.js +22 -0
  80. package/packages/core/dist/example-capability.js.map +1 -0
  81. package/packages/core/dist/extension-contract.d.ts +22 -0
  82. package/packages/core/dist/extension-contract.js +28 -0
  83. package/packages/core/dist/extension-contract.js.map +1 -0
  84. package/packages/core/dist/index.d.ts +26 -0
  85. package/packages/core/dist/index.js +27 -0
  86. package/packages/core/dist/index.js.map +1 -0
  87. package/packages/core/dist/instance-lock.d.ts +9 -0
  88. package/packages/core/dist/instance-lock.js +74 -0
  89. package/packages/core/dist/instance-lock.js.map +1 -0
  90. package/packages/core/dist/kernel-control-plane.d.ts +16 -0
  91. package/packages/core/dist/kernel-control-plane.js +500 -0
  92. package/packages/core/dist/kernel-control-plane.js.map +1 -0
  93. package/packages/core/dist/kernel-version.d.ts +1 -0
  94. package/packages/core/dist/kernel-version.js +2 -0
  95. package/packages/core/dist/kernel-version.js.map +1 -0
  96. package/packages/core/dist/project-fingerprint.d.ts +11 -0
  97. package/packages/core/dist/project-fingerprint.js +33 -0
  98. package/packages/core/dist/project-fingerprint.js.map +1 -0
  99. package/packages/core/dist/provider-factory.d.ts +7 -0
  100. package/packages/core/dist/provider-factory.js +21 -0
  101. package/packages/core/dist/provider-factory.js.map +1 -0
  102. package/packages/core/dist/secret-store.d.ts +18 -0
  103. package/packages/core/dist/secret-store.js +110 -0
  104. package/packages/core/dist/secret-store.js.map +1 -0
  105. package/packages/core/dist/state-store.d.ts +50 -0
  106. package/packages/core/dist/state-store.js +324 -0
  107. package/packages/core/dist/state-store.js.map +1 -0
  108. package/packages/core/dist/telegram-channel.d.ts +27 -0
  109. package/packages/core/dist/telegram-channel.js +951 -0
  110. package/packages/core/dist/telegram-channel.js.map +1 -0
  111. package/packages/core/dist/thread-id.d.ts +1 -0
  112. package/packages/core/dist/thread-id.js +12 -0
  113. package/packages/core/dist/thread-id.js.map +1 -0
  114. package/packages/core/dist/whatsapp-channel.d.ts +26 -0
  115. package/packages/core/dist/whatsapp-channel.js +36 -0
  116. package/packages/core/dist/whatsapp-channel.js.map +1 -0
  117. package/packages/core/dist/workspace-paths.d.ts +5 -0
  118. package/packages/core/dist/workspace-paths.js +77 -0
  119. package/packages/core/dist/workspace-paths.js.map +1 -0
  120. package/packages/core/dist/workspace-policy.d.ts +30 -0
  121. package/packages/core/dist/workspace-policy.js +104 -0
  122. package/packages/core/dist/workspace-policy.js.map +1 -0
  123. package/packages/core/package.json +126 -0
  124. package/scripts/cli.mjs +537 -0
  125. package/scripts/configure.mjs +254 -0
  126. package/scripts/ensure-shared-build.mjs +96 -0
  127. package/scripts/run-node-tests.mjs +52 -0
  128. package/scripts/supervisor.mjs +332 -0
@@ -0,0 +1,381 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { assertWorkspaceAllowed } from "./workspace-policy.js";
4
+ import { getKernelRootPath, isPathInside } from "./workspace-paths.js";
5
+ const REGISTRY_VERSION = 3;
6
+ const BOT_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
7
+ const CHANNEL_ID_PATTERN = /^[A-Za-z0-9._:-]{1,80}$/;
8
+ const KERNEL_ROOT_PATH = getKernelRootPath();
9
+ export async function loadBotRegistry({ filePath, dataDir, defaultWorkspaceRoot, defaultThreadMode, defaultSharedThreadId, defaultAllowedChatIds, bootstrapTelegramToken, defaultProviderKind, workspacePolicy = null, resolveSecret = null, }) {
10
+ const state = await readOrCreateRegistry({
11
+ filePath,
12
+ bootstrapTelegramToken,
13
+ });
14
+ if (!Array.isArray(state?.agents)) {
15
+ throw new Error("Registry must define an 'agents' array.");
16
+ }
17
+ const workspaceRootFallback = path.resolve(String(defaultWorkspaceRoot ?? process.cwd()));
18
+ const bots = [];
19
+ const seenIds = new Set();
20
+ for (let index = 0; index < state.agents.length; index += 1) {
21
+ const raw = state.agents[index];
22
+ const normalized = normalizeAgentDefinition({
23
+ raw,
24
+ index,
25
+ dataDir,
26
+ defaultWorkspaceRoot: workspaceRootFallback,
27
+ defaultThreadMode,
28
+ defaultSharedThreadId,
29
+ defaultAllowedChatIds,
30
+ defaultProviderKind,
31
+ workspacePolicy,
32
+ resolveSecret,
33
+ });
34
+ if (!normalized) {
35
+ continue;
36
+ }
37
+ if (seenIds.has(normalized.id)) {
38
+ throw new Error(`Duplicated agent id '${normalized.id}' in registry.`);
39
+ }
40
+ seenIds.add(normalized.id);
41
+ bots.push(normalized);
42
+ }
43
+ return {
44
+ filePath,
45
+ version: REGISTRY_VERSION,
46
+ bots,
47
+ };
48
+ }
49
+ async function readOrCreateRegistry({ filePath, bootstrapTelegramToken, }) {
50
+ try {
51
+ const raw = await fs.readFile(filePath, "utf8");
52
+ const parsed = JSON.parse(stripBom(raw));
53
+ if (!parsed || typeof parsed !== "object") {
54
+ throw new Error("Invalid registry format.");
55
+ }
56
+ if (!Array.isArray(parsed.agents)) {
57
+ throw new Error("Registry must include an 'agents' array.");
58
+ }
59
+ return parsed;
60
+ }
61
+ catch (error) {
62
+ if (getErrorCode(error) !== "ENOENT") {
63
+ throw error;
64
+ }
65
+ const initial = createInitialRegistry(bootstrapTelegramToken);
66
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
67
+ await fs.writeFile(filePath, `${JSON.stringify(initial, null, 2)}\n`, "utf8");
68
+ return initial;
69
+ }
70
+ }
71
+ function stripBom(value) {
72
+ const text = String(value ?? "");
73
+ if (text.charCodeAt(0) === 0xfeff) {
74
+ return text.slice(1);
75
+ }
76
+ return text;
77
+ }
78
+ function createInitialRegistry(bootstrapTelegramToken) {
79
+ const agents = [];
80
+ if (bootstrapTelegramToken) {
81
+ agents.push({
82
+ id: deriveBotIdFromToken(bootstrapTelegramToken) ?? "bot_default",
83
+ name: "Primary Bot",
84
+ enabled: true,
85
+ autoStart: true,
86
+ provider: {
87
+ kind: "codex",
88
+ options: {},
89
+ },
90
+ channels: [
91
+ {
92
+ kind: "telegram",
93
+ id: "telegram_main",
94
+ token: bootstrapTelegramToken,
95
+ },
96
+ ],
97
+ capabilities: [],
98
+ });
99
+ }
100
+ return {
101
+ version: REGISTRY_VERSION,
102
+ agents,
103
+ };
104
+ }
105
+ function normalizeAgentDefinition({ raw, index, dataDir, defaultWorkspaceRoot, defaultThreadMode, defaultSharedThreadId, defaultAllowedChatIds, defaultProviderKind, workspacePolicy, resolveSecret, }) {
106
+ if (!raw || typeof raw !== "object") {
107
+ return null;
108
+ }
109
+ const rawAgent = raw;
110
+ const candidateId = String(rawAgent.id ?? `bot_${index + 1}`).trim();
111
+ if (!BOT_ID_PATTERN.test(candidateId)) {
112
+ throw new Error(`Invalid agent id '${candidateId}'.`);
113
+ }
114
+ const threadMode = normalizeThreadMode(rawAgent.threadMode, defaultThreadMode);
115
+ const sharedThreadId = String(rawAgent.sharedThreadId ?? defaultSharedThreadId).trim();
116
+ const workspaceRoot = resolveAgentWorkspaceRoot({
117
+ rawWorkspaceRoot: rawAgent.workspaceRoot,
118
+ defaultWorkspaceRoot,
119
+ botId: candidateId,
120
+ });
121
+ assertWorkspaceForAgent({
122
+ workspaceRoot,
123
+ workspacePolicy,
124
+ botId: candidateId,
125
+ });
126
+ const provider = normalizeProvider(rawAgent.provider, defaultProviderKind);
127
+ const channels = normalizeChannels({
128
+ channels: rawAgent.channels,
129
+ botId: candidateId,
130
+ defaultAllowedChatIds,
131
+ resolveSecret,
132
+ });
133
+ const kernelAccess = normalizeKernelAccess(rawAgent.kernelAccess);
134
+ const capabilities = normalizeCapabilities(rawAgent.capabilities);
135
+ if (channels.length === 0) {
136
+ throw new Error(`Agent '${candidateId}' must define at least one channel.`);
137
+ }
138
+ return {
139
+ id: candidateId,
140
+ name: String(rawAgent.name ?? candidateId).trim() || candidateId,
141
+ enabled: rawAgent.enabled !== false,
142
+ autoStart: Boolean(rawAgent.autoStart),
143
+ workspaceRoot,
144
+ dataDir: path.resolve(String(rawAgent.dataDir ?? path.join(dataDir, "bots", candidateId))),
145
+ threadMode,
146
+ sharedThreadId,
147
+ provider,
148
+ kernelAccess,
149
+ capabilities,
150
+ channels,
151
+ };
152
+ }
153
+ function resolveAgentWorkspaceRoot({ rawWorkspaceRoot, defaultWorkspaceRoot, botId, }) {
154
+ const defaultRoot = path.resolve(String(defaultWorkspaceRoot ?? process.cwd()));
155
+ const fallbackRoot = path.resolve(defaultRoot, String(botId ?? "").trim() || "agent");
156
+ const raw = String(rawWorkspaceRoot ?? "").trim();
157
+ if (!raw) {
158
+ return fallbackRoot;
159
+ }
160
+ return path.resolve(raw);
161
+ }
162
+ function assertWorkspaceForAgent({ workspaceRoot, workspacePolicy, botId, }) {
163
+ if (workspacePolicy && typeof workspacePolicy === "object") {
164
+ assertWorkspaceAllowed({
165
+ workspaceRoot,
166
+ policy: workspacePolicy,
167
+ label: `Agent '${botId}' workspaceRoot`,
168
+ });
169
+ return;
170
+ }
171
+ if (isPathInside(KERNEL_ROOT_PATH, workspaceRoot)) {
172
+ throw new Error(`Agent '${botId}' workspaceRoot must be outside kernel directory. kernel=${KERNEL_ROOT_PATH} workspace=${workspaceRoot}`);
173
+ }
174
+ }
175
+ function normalizeThreadMode(value, fallback) {
176
+ const mode = String(value ?? fallback ?? "single")
177
+ .trim()
178
+ .toLowerCase();
179
+ if (mode === "single" || mode === "per_chat") {
180
+ return mode;
181
+ }
182
+ throw new Error(`Invalid threadMode '${mode}'.`);
183
+ }
184
+ function normalizeProvider(provider, defaultProviderKind) {
185
+ const raw = provider && typeof provider === "object" ? provider : {};
186
+ const kind = String(raw.kind ?? defaultProviderKind ?? "codex")
187
+ .trim()
188
+ .toLowerCase();
189
+ if (!kind) {
190
+ throw new Error("Provider kind is required.");
191
+ }
192
+ const rawOptions = raw.options && typeof raw.options === "object" ? raw.options : {};
193
+ return {
194
+ kind,
195
+ options: rawOptions,
196
+ };
197
+ }
198
+ function normalizeChannels({ channels, botId, defaultAllowedChatIds, resolveSecret, }) {
199
+ if (!Array.isArray(channels)) {
200
+ throw new Error(`Agent '${botId}' channels must be an array.`);
201
+ }
202
+ const normalized = [];
203
+ const seen = new Set();
204
+ for (let index = 0; index < channels.length; index += 1) {
205
+ const channel = channels[index];
206
+ if (!channel || typeof channel !== "object") {
207
+ continue;
208
+ }
209
+ const rawChannel = channel;
210
+ const kind = String(rawChannel.kind ?? "")
211
+ .trim()
212
+ .toLowerCase();
213
+ if (!kind) {
214
+ continue;
215
+ }
216
+ const generatedId = `${kind}_${index + 1}`;
217
+ const id = String(rawChannel.id ?? generatedId).trim() || generatedId;
218
+ if (!CHANNEL_ID_PATTERN.test(id)) {
219
+ throw new Error(`Invalid channel id '${id}' for bot '${botId}'.`);
220
+ }
221
+ const key = `${kind}:${id}`;
222
+ if (seen.has(key)) {
223
+ throw new Error(`Duplicate channel '${key}' for bot '${botId}'.`);
224
+ }
225
+ seen.add(key);
226
+ if (kind === "telegram") {
227
+ normalized.push({
228
+ kind: "telegram",
229
+ id,
230
+ token: resolveTelegramToken(rawChannel, botId, id, resolveSecret),
231
+ tokenEnv: String(rawChannel.tokenEnv ?? "").trim() || null,
232
+ tokenSecretRef: String(rawChannel.tokenSecretRef ?? "").trim() || null,
233
+ allowedChatIds: normalizeAllowedChatIds(rawChannel.allowedChatIds, defaultAllowedChatIds),
234
+ });
235
+ continue;
236
+ }
237
+ if (kind === "whatsapp") {
238
+ normalized.push({
239
+ kind: "whatsapp",
240
+ id,
241
+ options: rawChannel.options && typeof rawChannel.options === "object"
242
+ ? rawChannel.options
243
+ : {},
244
+ });
245
+ continue;
246
+ }
247
+ normalized.push({
248
+ kind,
249
+ id,
250
+ options: rawChannel.options && typeof rawChannel.options === "object"
251
+ ? rawChannel.options
252
+ : {},
253
+ });
254
+ }
255
+ return normalized;
256
+ }
257
+ function normalizeCapabilities(value) {
258
+ if (!Array.isArray(value)) {
259
+ return [];
260
+ }
261
+ const normalized = [];
262
+ const seen = new Set();
263
+ for (let index = 0; index < value.length; index += 1) {
264
+ const entry = value[index];
265
+ if (typeof entry === "string") {
266
+ const manifestPath = entry.trim();
267
+ if (!manifestPath) {
268
+ continue;
269
+ }
270
+ const id = `capability_${index + 1}`;
271
+ if (seen.has(id)) {
272
+ continue;
273
+ }
274
+ seen.add(id);
275
+ normalized.push({
276
+ id,
277
+ enabled: true,
278
+ manifestPath,
279
+ options: {},
280
+ });
281
+ continue;
282
+ }
283
+ if (!entry || typeof entry !== "object") {
284
+ continue;
285
+ }
286
+ const rawEntry = entry;
287
+ const id = String(rawEntry.id ?? `capability_${index + 1}`).trim();
288
+ const manifestPath = String(rawEntry.manifestPath ?? "").trim();
289
+ if (!id || !manifestPath || seen.has(id)) {
290
+ continue;
291
+ }
292
+ seen.add(id);
293
+ normalized.push({
294
+ id,
295
+ enabled: rawEntry.enabled !== false,
296
+ manifestPath,
297
+ options: rawEntry.options && typeof rawEntry.options === "object"
298
+ ? rawEntry.options
299
+ : {},
300
+ });
301
+ }
302
+ return normalized;
303
+ }
304
+ function normalizeAllowedChatIds(value, fallbackSet) {
305
+ if (Array.isArray(value)) {
306
+ return uniqueStrings(value);
307
+ }
308
+ if (typeof value === "string") {
309
+ return uniqueStrings(value.split(","));
310
+ }
311
+ return uniqueStrings([...fallbackSet]);
312
+ }
313
+ function normalizeKernelAccess(value) {
314
+ if (!value || typeof value !== "object") {
315
+ return {
316
+ enabled: false,
317
+ allowedActions: [],
318
+ allowedChatIds: [],
319
+ };
320
+ }
321
+ const raw = value;
322
+ return {
323
+ enabled: raw.enabled === true,
324
+ allowedActions: normalizeActionList(raw.allowedActions),
325
+ allowedChatIds: normalizeAllowedChatIds(raw.allowedChatIds, new Set()),
326
+ };
327
+ }
328
+ function normalizeActionList(value) {
329
+ if (Array.isArray(value)) {
330
+ return uniqueStrings(value.map((entry) => String(entry ?? "").toLowerCase()));
331
+ }
332
+ if (typeof value === "string") {
333
+ return uniqueStrings(value.split(",").map((entry) => String(entry ?? "").toLowerCase()));
334
+ }
335
+ return [];
336
+ }
337
+ function uniqueStrings(values) {
338
+ const seen = new Set();
339
+ const output = [];
340
+ for (const value of values) {
341
+ const normalized = String(value ?? "").trim();
342
+ if (!normalized || seen.has(normalized)) {
343
+ continue;
344
+ }
345
+ seen.add(normalized);
346
+ output.push(normalized);
347
+ }
348
+ return output;
349
+ }
350
+ function resolveTelegramToken(channel, botId, channelId, resolveSecret) {
351
+ const tokenEnvName = String(channel?.tokenEnv ?? "").trim();
352
+ const tokenSecretRef = String(channel?.tokenSecretRef ?? "").trim();
353
+ const directToken = String(channel?.token ?? "").trim();
354
+ const envToken = tokenEnvName ? String(process.env[tokenEnvName] ?? "").trim() : "";
355
+ const secretToken = tokenSecretRef && typeof resolveSecret === "function"
356
+ ? String(resolveSecret(tokenSecretRef) ?? "").trim()
357
+ : "";
358
+ const resolved = envToken || secretToken || directToken;
359
+ if (!resolved) {
360
+ throw new Error(`Telegram token missing for bot '${botId}' channel '${channelId}'. Set '${tokenEnvName || tokenSecretRef || "token"}'.`);
361
+ }
362
+ return resolved;
363
+ }
364
+ function deriveBotIdFromToken(token) {
365
+ const value = String(token ?? "").trim();
366
+ const prefix = value.split(":")[0]?.trim();
367
+ if (!prefix) {
368
+ return null;
369
+ }
370
+ const candidate = `bot_${prefix}`;
371
+ return BOT_ID_PATTERN.test(candidate) ? candidate : null;
372
+ }
373
+ function getErrorCode(error) {
374
+ if (!error || typeof error !== "object") {
375
+ return "";
376
+ }
377
+ return String(error.code ?? "")
378
+ .trim()
379
+ .toUpperCase();
380
+ }
381
+ //# sourceMappingURL=bot-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-registry.js","sourceRoot":"","sources":["../src/bot-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ export declare class BotRuntime {
2
+ #private;
3
+ constructor({ botConfig, providerDefaults, turnActivityTimeoutMs, maxMessages, kernelControl, channelAdapterFactory, }: {
4
+ botConfig: any;
5
+ providerDefaults: any;
6
+ turnActivityTimeoutMs: any;
7
+ maxMessages: any;
8
+ kernelControl?: null | undefined;
9
+ channelAdapterFactory?: null | undefined;
10
+ });
11
+ get id(): any;
12
+ get name(): any;
13
+ get providerKind(): string;
14
+ get webThreadId(): any;
15
+ setWebPublicBaseUrl(value: any): void;
16
+ ensureInitialized(): Promise<void>;
17
+ startChannels(): Promise<{
18
+ id: any;
19
+ name: any;
20
+ enabled: any;
21
+ autoStart: any;
22
+ threadMode: any;
23
+ sharedThreadId: any;
24
+ providerKind: string;
25
+ kernelVersion: string;
26
+ webThreadId: any;
27
+ running: any;
28
+ telegramRunning: any;
29
+ telegramError: any;
30
+ workspaceRoot: any;
31
+ dataDir: any;
32
+ kernelAccess: {
33
+ enabled: boolean;
34
+ allowedActions: any[];
35
+ allowedChatIds: any[];
36
+ };
37
+ capabilities: any;
38
+ channels: any;
39
+ }>;
40
+ stopChannels(): Promise<{
41
+ id: any;
42
+ name: any;
43
+ enabled: any;
44
+ autoStart: any;
45
+ threadMode: any;
46
+ sharedThreadId: any;
47
+ providerKind: string;
48
+ kernelVersion: string;
49
+ webThreadId: any;
50
+ running: any;
51
+ telegramRunning: any;
52
+ telegramError: any;
53
+ workspaceRoot: any;
54
+ dataDir: any;
55
+ kernelAccess: {
56
+ enabled: boolean;
57
+ allowedActions: any[];
58
+ allowedChatIds: any[];
59
+ };
60
+ capabilities: any;
61
+ channels: any;
62
+ }>;
63
+ shutdown(): Promise<void>;
64
+ setProjectRoot(projectRoot: any): Promise<void>;
65
+ resetWebThread(): Promise<any>;
66
+ listPendingApprovals(threadId: any): Promise<any>;
67
+ resolvePendingApproval({ threadId, approvalId, decision }: {
68
+ threadId: any;
69
+ approvalId: any;
70
+ decision: any;
71
+ }): Promise<any>;
72
+ interruptThread(threadId: any): Promise<any>;
73
+ resolveThreadIdForChannel({ channelKind, channelId, externalUserId }: {
74
+ channelKind: any;
75
+ channelId: any;
76
+ externalUserId: any;
77
+ }): Promise<any>;
78
+ getThread(threadId: any): Promise<any>;
79
+ resetThread(threadId: any): Promise<any>;
80
+ sendTurn(payload: any): Promise<any>;
81
+ getStatus(): {
82
+ id: any;
83
+ name: any;
84
+ enabled: any;
85
+ autoStart: any;
86
+ threadMode: any;
87
+ sharedThreadId: any;
88
+ providerKind: string;
89
+ kernelVersion: string;
90
+ webThreadId: any;
91
+ running: any;
92
+ telegramRunning: any;
93
+ telegramError: any;
94
+ workspaceRoot: any;
95
+ dataDir: any;
96
+ kernelAccess: {
97
+ enabled: boolean;
98
+ allowedActions: any[];
99
+ allowedChatIds: any[];
100
+ };
101
+ capabilities: any;
102
+ channels: any;
103
+ };
104
+ reloadCapabilities(nextDefinitions?: null): Promise<{
105
+ id: any;
106
+ name: any;
107
+ enabled: any;
108
+ autoStart: any;
109
+ threadMode: any;
110
+ sharedThreadId: any;
111
+ providerKind: string;
112
+ kernelVersion: string;
113
+ webThreadId: any;
114
+ running: any;
115
+ telegramRunning: any;
116
+ telegramError: any;
117
+ workspaceRoot: any;
118
+ dataDir: any;
119
+ kernelAccess: {
120
+ enabled: boolean;
121
+ allowedActions: any[];
122
+ allowedChatIds: any[];
123
+ };
124
+ capabilities: any;
125
+ channels: any;
126
+ }>;
127
+ onApprovalRequested(approval: any): Promise<void>;
128
+ buildWebBotUrl(): string;
129
+ isKernelControlEnabled(): boolean;
130
+ executeKernelAction({ action, payload, context }: {
131
+ action: any;
132
+ payload: any;
133
+ context: any;
134
+ }): Promise<any>;
135
+ }