@okrlinkhub/agent-factory 3.0.2 → 3.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.
- package/README.md +235 -31
- package/dist/client/bridge.d.ts +1 -0
- package/dist/client/bridge.d.ts.map +1 -1
- package/dist/client/bridge.js.map +1 -1
- package/dist/client/index.d.ts +29 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +59 -3
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +2 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +140 -2
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/flyCleanup.d.ts +32 -0
- package/dist/component/flyCleanup.d.ts.map +1 -0
- package/dist/component/flyCleanup.js +272 -0
- package/dist/component/flyCleanup.js.map +1 -0
- package/dist/component/identity.d.ts +60 -2
- package/dist/component/identity.d.ts.map +1 -1
- package/dist/component/identity.js +372 -32
- package/dist/component/identity.js.map +1 -1
- package/dist/component/lib.d.ts +2 -1
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +2 -1
- package/dist/component/lib.js.map +1 -1
- package/dist/component/providers/fly.d.ts +23 -2
- package/dist/component/providers/fly.d.ts.map +1 -1
- package/dist/component/providers/fly.js +15 -3
- package/dist/component/providers/fly.js.map +1 -1
- package/dist/component/pushing.d.ts +4 -4
- package/dist/component/queue.d.ts +12 -7
- package/dist/component/queue.d.ts.map +1 -1
- package/dist/component/queue.js +9 -0
- package/dist/component/queue.js.map +1 -1
- package/dist/component/scheduler.d.ts +8 -8
- package/dist/component/scheduler.d.ts.map +1 -1
- package/dist/component/scheduler.js +22 -2
- package/dist/component/scheduler.js.map +1 -1
- package/dist/component/schema.d.ts +16 -4
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +16 -0
- package/dist/component/schema.js.map +1 -1
- package/package.json +1 -1
- package/src/client/bridge.ts +1 -0
- package/src/client/index.ts +68 -3
- package/src/component/_generated/api.ts +2 -0
- package/src/component/_generated/component.ts +188 -8
- package/src/component/flyCleanup.ts +386 -0
- package/src/component/identity.ts +425 -31
- package/src/component/lib.test.ts +197 -3
- package/src/component/lib.ts +3 -0
- package/src/component/providers/fly.ts +39 -5
- package/src/component/queue.ts +11 -0
- package/src/component/scheduler.ts +23 -2
- package/src/component/schema.ts +16 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { v } from "convex/values";
|
|
2
|
+
import { api, internal } from "./_generated/api.js";
|
|
3
|
+
import { action } from "./_generated/server.js";
|
|
4
|
+
import { DEFAULT_CONFIG, providerConfigValidator } from "./config.js";
|
|
5
|
+
const DEFAULT_MACHINE_CONCURRENCY = 6;
|
|
6
|
+
const DEFAULT_VOLUME_CONCURRENCY = 16;
|
|
7
|
+
const cleanupReportValidator = v.object({
|
|
8
|
+
appName: v.string(),
|
|
9
|
+
machinesFound: v.number(),
|
|
10
|
+
machinesDeleted: v.number(),
|
|
11
|
+
machinesRemaining: v.number(),
|
|
12
|
+
machineIdsDeleted: v.array(v.string()),
|
|
13
|
+
machineIdsRemaining: v.array(v.string()),
|
|
14
|
+
volumesFound: v.number(),
|
|
15
|
+
volumesDeleted: v.number(),
|
|
16
|
+
volumesRemaining: v.number(),
|
|
17
|
+
volumeIdsDeleted: v.array(v.string()),
|
|
18
|
+
volumeIdsRemaining: v.array(v.string()),
|
|
19
|
+
warnings: v.array(v.string()),
|
|
20
|
+
errors: v.array(v.string()),
|
|
21
|
+
});
|
|
22
|
+
export const runFlyCleanup = action({
|
|
23
|
+
args: {
|
|
24
|
+
flyApiToken: v.optional(v.string()),
|
|
25
|
+
machineConcurrency: v.optional(v.number()),
|
|
26
|
+
providerConfig: v.optional(providerConfigValidator),
|
|
27
|
+
volumeConcurrency: v.optional(v.number()),
|
|
28
|
+
},
|
|
29
|
+
returns: cleanupReportValidator,
|
|
30
|
+
handler: async (ctx, args) => {
|
|
31
|
+
const providerConfig = await resolveProviderConfig(ctx, args.providerConfig);
|
|
32
|
+
if (providerConfig.kind !== "fly") {
|
|
33
|
+
throw new Error("Fly cleanup requires a Fly provider configuration.");
|
|
34
|
+
}
|
|
35
|
+
const appName = providerConfig.appName.trim();
|
|
36
|
+
if (appName.length === 0) {
|
|
37
|
+
throw new Error("Fly cleanup requires a non-empty Fly app name.");
|
|
38
|
+
}
|
|
39
|
+
const flyApiToken = await resolveFlyApiToken(ctx, args.flyApiToken);
|
|
40
|
+
const client = new FlyApiClient(flyApiToken);
|
|
41
|
+
const machineConcurrency = normalizeConcurrency(args.machineConcurrency, DEFAULT_MACHINE_CONCURRENCY);
|
|
42
|
+
const volumeConcurrency = normalizeConcurrency(args.volumeConcurrency, DEFAULT_VOLUME_CONCURRENCY);
|
|
43
|
+
await client.verifyAppAccess(appName);
|
|
44
|
+
const warnings = [];
|
|
45
|
+
const errors = [];
|
|
46
|
+
const initialMachines = await client.listMachines(appName);
|
|
47
|
+
const machineResults = await runWithConcurrency(initialMachines, machineConcurrency, async (machine) => cleanupMachine(client, appName, machine));
|
|
48
|
+
for (const result of machineResults) {
|
|
49
|
+
warnings.push(...result.warnings);
|
|
50
|
+
if (result.error) {
|
|
51
|
+
errors.push(result.error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const remainingMachines = await client.listMachines(appName);
|
|
55
|
+
if (remainingMachines.length > 0) {
|
|
56
|
+
warnings.push(`Fly cleanup left ${remainingMachines.length} machine(s) after verification: ${remainingMachines
|
|
57
|
+
.map((machine) => machine.id)
|
|
58
|
+
.join(", ")}`);
|
|
59
|
+
}
|
|
60
|
+
const initialVolumes = await client.listVolumes(appName);
|
|
61
|
+
const volumeResults = await runWithConcurrency(initialVolumes, volumeConcurrency, async (volume) => cleanupVolume(client, appName, volume));
|
|
62
|
+
for (const result of volumeResults) {
|
|
63
|
+
warnings.push(...result.warnings);
|
|
64
|
+
if (result.error) {
|
|
65
|
+
errors.push(result.error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const remainingVolumes = await client.listVolumes(appName);
|
|
69
|
+
if (remainingVolumes.length > 0) {
|
|
70
|
+
warnings.push(`Fly cleanup left ${remainingVolumes.length} volume(s) after verification: ${remainingVolumes
|
|
71
|
+
.map((volume) => volume.id)
|
|
72
|
+
.join(", ")}`);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
appName,
|
|
76
|
+
machinesFound: initialMachines.length,
|
|
77
|
+
machinesDeleted: machineResults.filter((result) => result.deleted).length,
|
|
78
|
+
machinesRemaining: remainingMachines.length,
|
|
79
|
+
machineIdsDeleted: machineResults
|
|
80
|
+
.filter((result) => result.deleted)
|
|
81
|
+
.map((result) => result.machineId),
|
|
82
|
+
machineIdsRemaining: remainingMachines.map((machine) => machine.id),
|
|
83
|
+
volumesFound: initialVolumes.length,
|
|
84
|
+
volumesDeleted: volumeResults.filter((result) => result.deleted).length,
|
|
85
|
+
volumesRemaining: remainingVolumes.length,
|
|
86
|
+
volumeIdsDeleted: volumeResults
|
|
87
|
+
.filter((result) => result.deleted)
|
|
88
|
+
.map((result) => result.volumeId),
|
|
89
|
+
volumeIdsRemaining: remainingVolumes.map((volume) => volume.id),
|
|
90
|
+
warnings,
|
|
91
|
+
errors,
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
async function resolveProviderConfig(ctx, providerConfigOverride) {
|
|
96
|
+
if (providerConfigOverride) {
|
|
97
|
+
return providerConfigOverride;
|
|
98
|
+
}
|
|
99
|
+
const runtimeConfig = await ctx.runQuery(api.queue.providerRuntimeConfig, {});
|
|
100
|
+
return runtimeConfig ?? DEFAULT_CONFIG.provider;
|
|
101
|
+
}
|
|
102
|
+
async function resolveFlyApiToken(ctx, flyApiTokenOverride) {
|
|
103
|
+
const inlineToken = flyApiTokenOverride?.trim();
|
|
104
|
+
if (inlineToken) {
|
|
105
|
+
return inlineToken;
|
|
106
|
+
}
|
|
107
|
+
const storedToken = await ctx.runQuery(internal.queue.getActiveSecretPlaintext, {
|
|
108
|
+
secretRef: "fly.apiToken",
|
|
109
|
+
});
|
|
110
|
+
const normalized = storedToken?.trim();
|
|
111
|
+
if (!normalized) {
|
|
112
|
+
throw new Error("Missing active 'fly.apiToken' secret. Import it before running Fly cleanup.");
|
|
113
|
+
}
|
|
114
|
+
return normalized;
|
|
115
|
+
}
|
|
116
|
+
async function cleanupMachine(client, appName, machine) {
|
|
117
|
+
const warnings = [];
|
|
118
|
+
try {
|
|
119
|
+
await client.cordonMachine(appName, machine.id);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
if (isFlyNotFoundError(error)) {
|
|
123
|
+
return { machineId: machine.id, deleted: true, warnings, error: null };
|
|
124
|
+
}
|
|
125
|
+
warnings.push(`Machine ${machine.id}: cordon warning (${describeError(error)})`);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
await client.stopMachine(appName, machine.id);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (isFlyNotFoundError(error)) {
|
|
132
|
+
return { machineId: machine.id, deleted: true, warnings, error: null };
|
|
133
|
+
}
|
|
134
|
+
warnings.push(`Machine ${machine.id}: stop warning (${describeError(error)})`);
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
await client.deleteMachine(appName, machine.id);
|
|
138
|
+
return { machineId: machine.id, deleted: true, warnings, error: null };
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (isFlyNotFoundError(error)) {
|
|
142
|
+
return { machineId: machine.id, deleted: true, warnings, error: null };
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
machineId: machine.id,
|
|
146
|
+
deleted: false,
|
|
147
|
+
warnings,
|
|
148
|
+
error: `Machine ${machine.id}: destroy failed (${describeError(error)})`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async function cleanupVolume(client, appName, volume) {
|
|
153
|
+
try {
|
|
154
|
+
await client.deleteVolume(appName, volume.id);
|
|
155
|
+
return { volumeId: volume.id, deleted: true, warnings: [], error: null };
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
if (isFlyNotFoundError(error)) {
|
|
159
|
+
return { volumeId: volume.id, deleted: true, warnings: [], error: null };
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
volumeId: volume.id,
|
|
163
|
+
deleted: false,
|
|
164
|
+
warnings: [],
|
|
165
|
+
error: `Volume ${volume.id}: destroy failed (${describeError(error)})`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
async function runWithConcurrency(items, concurrency, worker) {
|
|
170
|
+
if (items.length === 0) {
|
|
171
|
+
return [];
|
|
172
|
+
}
|
|
173
|
+
const results = new Array(items.length);
|
|
174
|
+
let nextIndex = 0;
|
|
175
|
+
const workerCount = Math.min(concurrency, items.length);
|
|
176
|
+
await Promise.all(Array.from({ length: workerCount }, async () => {
|
|
177
|
+
while (nextIndex < items.length) {
|
|
178
|
+
const currentIndex = nextIndex;
|
|
179
|
+
nextIndex += 1;
|
|
180
|
+
results[currentIndex] = await worker(items[currentIndex], currentIndex);
|
|
181
|
+
}
|
|
182
|
+
}));
|
|
183
|
+
return results;
|
|
184
|
+
}
|
|
185
|
+
function normalizeConcurrency(value, fallback) {
|
|
186
|
+
if (value === undefined || !Number.isFinite(value)) {
|
|
187
|
+
return fallback;
|
|
188
|
+
}
|
|
189
|
+
return Math.max(1, Math.floor(value));
|
|
190
|
+
}
|
|
191
|
+
class FlyApiClient {
|
|
192
|
+
apiToken;
|
|
193
|
+
constructor(apiToken) {
|
|
194
|
+
this.apiToken = apiToken;
|
|
195
|
+
}
|
|
196
|
+
async verifyAppAccess(appName) {
|
|
197
|
+
await this.request({
|
|
198
|
+
method: "GET",
|
|
199
|
+
path: `/apps/${encodeURIComponent(appName)}`,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
async listMachines(appName) {
|
|
203
|
+
return await this.request({
|
|
204
|
+
method: "GET",
|
|
205
|
+
path: `/apps/${encodeURIComponent(appName)}/machines`,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
async listVolumes(appName) {
|
|
209
|
+
return await this.request({
|
|
210
|
+
method: "GET",
|
|
211
|
+
path: `/apps/${encodeURIComponent(appName)}/volumes`,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
async cordonMachine(appName, machineId) {
|
|
215
|
+
await this.request({
|
|
216
|
+
method: "POST",
|
|
217
|
+
path: `/apps/${encodeURIComponent(appName)}/machines/${encodeURIComponent(machineId)}/cordon`,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
async stopMachine(appName, machineId) {
|
|
221
|
+
await this.request({
|
|
222
|
+
method: "POST",
|
|
223
|
+
path: `/apps/${encodeURIComponent(appName)}/machines/${encodeURIComponent(machineId)}/stop`,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async deleteMachine(appName, machineId) {
|
|
227
|
+
await this.request({
|
|
228
|
+
method: "DELETE",
|
|
229
|
+
path: `/apps/${encodeURIComponent(appName)}/machines/${encodeURIComponent(machineId)}`,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
async deleteVolume(appName, volumeId) {
|
|
233
|
+
await this.request({
|
|
234
|
+
method: "DELETE",
|
|
235
|
+
path: `/apps/${encodeURIComponent(appName)}/volumes/${encodeURIComponent(volumeId)}`,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
async request(input) {
|
|
239
|
+
const response = await fetch(`https://api.machines.dev/v1${input.path}`, {
|
|
240
|
+
method: input.method,
|
|
241
|
+
headers: {
|
|
242
|
+
Authorization: `Bearer ${this.apiToken}`,
|
|
243
|
+
"Content-Type": "application/json",
|
|
244
|
+
},
|
|
245
|
+
});
|
|
246
|
+
if (!response.ok) {
|
|
247
|
+
const body = await response.text();
|
|
248
|
+
throw new Error(`Fly API ${input.method} ${input.path} failed: ${body || response.statusText}`);
|
|
249
|
+
}
|
|
250
|
+
if (response.status === 204 || input.method === "DELETE") {
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
const text = await response.text();
|
|
254
|
+
if (!text) {
|
|
255
|
+
return undefined;
|
|
256
|
+
}
|
|
257
|
+
return JSON.parse(text);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function isFlyNotFoundError(error) {
|
|
261
|
+
if (!(error instanceof Error)) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
return /not found|unknown machine|does not exist/i.test(error.message);
|
|
265
|
+
}
|
|
266
|
+
function describeError(error) {
|
|
267
|
+
if (error instanceof Error) {
|
|
268
|
+
return error.message;
|
|
269
|
+
}
|
|
270
|
+
return String(error);
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=flyCleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flyCleanup.js","sourceRoot":"","sources":["../../src/component/flyCleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Id } from "./_generated/dataModel.js";
|
|
1
2
|
type UserAgentStatus = "draft" | "pairing" | "active" | "disabled" | "failed";
|
|
2
3
|
type PairingStatus = "pending" | "used" | "expired" | null;
|
|
3
4
|
type UserAgentView = {
|
|
@@ -24,6 +25,7 @@ type OnboardingNextAction = "import_token" | "configure_webhook" | "create_pairi
|
|
|
24
25
|
type OnboardingState = {
|
|
25
26
|
agentKey: string;
|
|
26
27
|
telegramUsername: string | null;
|
|
28
|
+
botIdentity: string | null;
|
|
27
29
|
tokenSecretRef: string | null;
|
|
28
30
|
tokenImported: boolean;
|
|
29
31
|
webhookReady: boolean;
|
|
@@ -33,12 +35,15 @@ type OnboardingState = {
|
|
|
33
35
|
nextAction: OnboardingNextAction;
|
|
34
36
|
};
|
|
35
37
|
export declare const configureTelegramWebhook: import("convex/server").RegisteredAction<"public", {
|
|
38
|
+
agentKey?: string | undefined;
|
|
36
39
|
secretRef?: string | undefined;
|
|
37
40
|
convexSiteUrl: string;
|
|
38
41
|
}, Promise<{
|
|
39
42
|
ok: boolean;
|
|
40
43
|
webhookUrl: string;
|
|
41
44
|
currentUrl: string | null;
|
|
45
|
+
botIdentity: string;
|
|
46
|
+
secretTokenConfigured: boolean;
|
|
42
47
|
isReady: boolean;
|
|
43
48
|
pendingUpdateCount: number;
|
|
44
49
|
lastErrorMessage: string | null;
|
|
@@ -54,6 +59,7 @@ export declare const createPairingCode: import("convex/server").RegisteredMutati
|
|
|
54
59
|
code: string;
|
|
55
60
|
consumerUserId: string;
|
|
56
61
|
agentKey: string;
|
|
62
|
+
botIdentity: string;
|
|
57
63
|
status: "pending";
|
|
58
64
|
createdAt: number;
|
|
59
65
|
expiresAt: number;
|
|
@@ -62,6 +68,7 @@ export declare const createPairingCode: import("convex/server").RegisteredMutati
|
|
|
62
68
|
telegramChatId: null;
|
|
63
69
|
}>>;
|
|
64
70
|
export declare const consumePairingCode: import("convex/server").RegisteredMutation<"public", {
|
|
71
|
+
botIdentity?: string | undefined;
|
|
65
72
|
nowMs?: number | undefined;
|
|
66
73
|
telegramChatId: string;
|
|
67
74
|
telegramUserId: string;
|
|
@@ -70,6 +77,7 @@ export declare const consumePairingCode: import("convex/server").RegisteredMutat
|
|
|
70
77
|
code: string;
|
|
71
78
|
consumerUserId: string;
|
|
72
79
|
agentKey: string;
|
|
80
|
+
botIdentity: string;
|
|
73
81
|
status: "used";
|
|
74
82
|
createdAt: number;
|
|
75
83
|
expiresAt: number;
|
|
@@ -84,6 +92,7 @@ export declare const getPairingCodeStatus: import("convex/server").RegisteredQue
|
|
|
84
92
|
code: string;
|
|
85
93
|
consumerUserId: string;
|
|
86
94
|
agentKey: string;
|
|
95
|
+
botIdentity: string | null;
|
|
87
96
|
status: "pending" | "used" | "expired";
|
|
88
97
|
createdAt: number;
|
|
89
98
|
expiresAt: number;
|
|
@@ -92,6 +101,7 @@ export declare const getPairingCodeStatus: import("convex/server").RegisteredQue
|
|
|
92
101
|
telegramChatId: string | null;
|
|
93
102
|
} | null>>;
|
|
94
103
|
export declare const bindUserAgent: import("convex/server").RegisteredMutation<"public", {
|
|
104
|
+
botIdentity?: string | undefined;
|
|
95
105
|
metadata?: Record<string, string> | undefined;
|
|
96
106
|
nowMs?: number | undefined;
|
|
97
107
|
source?: "manual" | "telegram_pairing" | "api" | undefined;
|
|
@@ -103,6 +113,7 @@ export declare const bindUserAgent: import("convex/server").RegisteredMutation<"
|
|
|
103
113
|
consumerUserId: string;
|
|
104
114
|
agentKey: string;
|
|
105
115
|
conversationId: string;
|
|
116
|
+
botIdentity: string | null;
|
|
106
117
|
status: "active" | "revoked";
|
|
107
118
|
source: "manual" | "telegram_pairing" | "api";
|
|
108
119
|
telegramUserId: string | null;
|
|
@@ -124,6 +135,7 @@ export declare const resolveAgentForUser: import("convex/server").RegisteredQuer
|
|
|
124
135
|
agentKey: string | null;
|
|
125
136
|
}>>;
|
|
126
137
|
export declare const resolveAgentForTelegram: import("convex/server").RegisteredQuery<"public", {
|
|
138
|
+
botIdentity?: string | undefined;
|
|
127
139
|
telegramChatId?: string | undefined;
|
|
128
140
|
telegramUserId?: string | undefined;
|
|
129
141
|
}, Promise<{
|
|
@@ -137,6 +149,7 @@ export declare const getUserAgentBinding: import("convex/server").RegisteredQuer
|
|
|
137
149
|
consumerUserId: string;
|
|
138
150
|
agentKey: string;
|
|
139
151
|
conversationId: string;
|
|
152
|
+
botIdentity: string | null;
|
|
140
153
|
status: "active" | "revoked";
|
|
141
154
|
source: "manual" | "telegram_pairing" | "api";
|
|
142
155
|
telegramUserId: string | null;
|
|
@@ -173,6 +186,7 @@ export declare const createUserAgentPairing: import("convex/server").RegisteredM
|
|
|
173
186
|
code: string;
|
|
174
187
|
consumerUserId: string;
|
|
175
188
|
agentKey: string;
|
|
189
|
+
botIdentity: string;
|
|
176
190
|
status: "pending";
|
|
177
191
|
createdAt: number;
|
|
178
192
|
expiresAt: number;
|
|
@@ -190,6 +204,7 @@ export declare const getUserAgentPairingStatus: import("convex/server").Register
|
|
|
190
204
|
code: string;
|
|
191
205
|
consumerUserId: string;
|
|
192
206
|
agentKey: string;
|
|
207
|
+
botIdentity: string | null;
|
|
193
208
|
status: "pending" | "used" | "expired";
|
|
194
209
|
createdAt: number;
|
|
195
210
|
expiresAt: number;
|
|
@@ -197,15 +212,17 @@ export declare const getUserAgentPairingStatus: import("convex/server").Register
|
|
|
197
212
|
telegramUserId: string | null;
|
|
198
213
|
telegramChatId: string | null;
|
|
199
214
|
} | null>>;
|
|
200
|
-
export declare const importTelegramTokenForAgent: import("convex/server").
|
|
215
|
+
export declare const importTelegramTokenForAgent: import("convex/server").RegisteredAction<"public", {
|
|
201
216
|
metadata?: Record<string, string> | undefined;
|
|
202
217
|
agentKey: string;
|
|
203
218
|
consumerUserId: string;
|
|
204
219
|
plaintextValue: string;
|
|
205
220
|
}, Promise<{
|
|
206
|
-
secretId:
|
|
221
|
+
secretId: Id<"secrets">;
|
|
207
222
|
secretRef: string;
|
|
208
223
|
version: number;
|
|
224
|
+
botIdentity: string;
|
|
225
|
+
telegramUsername: string | null;
|
|
209
226
|
}>>;
|
|
210
227
|
export declare const getRequiredSecretRefs: import("convex/server").RegisteredQuery<"public", {
|
|
211
228
|
agentKey?: string | undefined;
|
|
@@ -261,5 +278,46 @@ export declare const getWebhookReadiness: import("convex/server").RegisteredActi
|
|
|
261
278
|
lastErrorDate: number | null;
|
|
262
279
|
webhookReady: boolean;
|
|
263
280
|
}>>;
|
|
281
|
+
export declare const syncAgentProfileTelegramBotIdentity: import("convex/server").RegisteredMutation<"internal", {
|
|
282
|
+
telegramUsername?: string | undefined;
|
|
283
|
+
agentKey: string;
|
|
284
|
+
botIdentity: string;
|
|
285
|
+
}, Promise<null>>;
|
|
286
|
+
export declare const persistImportedTelegramTokenForAgent: import("convex/server").RegisteredMutation<"internal", {
|
|
287
|
+
metadata?: Record<string, string> | undefined;
|
|
288
|
+
telegramUsername?: string | undefined;
|
|
289
|
+
agentKey: string;
|
|
290
|
+
botIdentity: string;
|
|
291
|
+
consumerUserId: string;
|
|
292
|
+
plaintextValue: string;
|
|
293
|
+
}, Promise<{
|
|
294
|
+
botIdentity: string;
|
|
295
|
+
telegramUsername: string | null;
|
|
296
|
+
secretId: import("convex/values").GenericId<"secrets">;
|
|
297
|
+
secretRef: string;
|
|
298
|
+
version: number;
|
|
299
|
+
}>>;
|
|
300
|
+
export declare const reconcileTelegramBotIdentityForAgent: import("convex/server").RegisteredAction<"public", {
|
|
301
|
+
secretRef?: string | undefined;
|
|
302
|
+
agentKey: string;
|
|
303
|
+
}, Promise<{
|
|
304
|
+
agentKey: string;
|
|
305
|
+
secretRef: string;
|
|
306
|
+
botIdentity: string;
|
|
307
|
+
telegramUsername: string | null;
|
|
308
|
+
}>>;
|
|
309
|
+
export declare const softResetTelegramBindingsMissingBotIdentity: import("convex/server").RegisteredMutation<"public", {
|
|
310
|
+
nowMs?: number | undefined;
|
|
311
|
+
expirePendingPairings?: boolean | undefined;
|
|
312
|
+
revokeActiveBindings?: boolean | undefined;
|
|
313
|
+
}, Promise<{
|
|
314
|
+
revokedBindings: number;
|
|
315
|
+
annotatedBindings: number;
|
|
316
|
+
expiredPairings: number;
|
|
317
|
+
pendingPairingsMissingBotIdentity: number;
|
|
318
|
+
legacyBindingsMissingBotIdentity: number;
|
|
319
|
+
profilesMissingBotIdentity: number;
|
|
320
|
+
}>>;
|
|
321
|
+
export declare function parseTelegramWebhookSecretToken(secretToken: string | null | undefined): string | null;
|
|
264
322
|
export {};
|
|
265
323
|
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/component/identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/component/identity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AA0HpD,KAAK,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC9E,KAAK,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;AAC3D,KAAK,aAAa,GAAG;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3C,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AACF,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AACF,KAAK,oBAAoB,GACrB,cAAc,GACd,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,OAAO,CAAC;AACZ,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAeF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;GAgHnC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;GAW5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;GAgE7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;UA0C/B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;GAexB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;GAqBjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;GAqB9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;GAiGlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;UA6B9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;4BAiBzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;iCAevB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iCAgB7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;+BAchC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;GA2BjC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;UA8BpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;cAkB1B,EAAE,CAAC,SAAS,CAAC;eACZ,MAAM;aACR,MAAM;iBACF,MAAM;sBACD,MAAM,GAAG,IAAI;GAgBjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;GAWhC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;GAU1C,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;GAUpC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;GAUvC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;4BA2DtC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;GA0C9B,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;iBA0B9C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;GAyD/C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;GAgC/C,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;;;;;;GAuEtD,CAAC;AAwTH,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iBAOrF"}
|