@okrlinkhub/agent-bridge 0.1.0 → 2.0.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 (58) hide show
  1. package/README.md +96 -127
  2. package/dist/cli/init.d.ts +3 -0
  3. package/dist/cli/init.d.ts.map +1 -0
  4. package/dist/cli/init.js +100 -0
  5. package/dist/cli/init.js.map +1 -0
  6. package/dist/client/index.d.ts +50 -173
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +129 -263
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/component/_generated/api.d.ts +4 -4
  11. package/dist/component/_generated/api.d.ts.map +1 -1
  12. package/dist/component/_generated/component.d.ts +66 -162
  13. package/dist/component/_generated/component.d.ts.map +1 -1
  14. package/dist/component/agentBridgeUtils.d.ts +8 -0
  15. package/dist/component/agentBridgeUtils.d.ts.map +1 -0
  16. package/dist/component/agentBridgeUtils.js +33 -0
  17. package/dist/component/agentBridgeUtils.js.map +1 -0
  18. package/dist/component/agents.d.ts +27 -0
  19. package/dist/component/agents.d.ts.map +1 -0
  20. package/dist/component/agents.js +94 -0
  21. package/dist/component/agents.js.map +1 -0
  22. package/dist/component/gateway.d.ts +30 -44
  23. package/dist/component/gateway.d.ts.map +1 -1
  24. package/dist/component/gateway.js +127 -132
  25. package/dist/component/gateway.js.map +1 -1
  26. package/dist/component/permissions.d.ts +30 -84
  27. package/dist/component/permissions.d.ts.map +1 -1
  28. package/dist/component/permissions.js +80 -203
  29. package/dist/component/permissions.js.map +1 -1
  30. package/dist/component/schema.d.ts +55 -153
  31. package/dist/component/schema.d.ts.map +1 -1
  32. package/dist/component/schema.js +30 -80
  33. package/dist/component/schema.js.map +1 -1
  34. package/dist/react/index.d.ts +2 -2
  35. package/dist/react/index.d.ts.map +1 -1
  36. package/dist/react/index.js +2 -3
  37. package/dist/react/index.js.map +1 -1
  38. package/package.json +7 -3
  39. package/src/cli/init.ts +116 -0
  40. package/src/client/index.ts +228 -389
  41. package/src/component/_generated/api.ts +4 -4
  42. package/src/component/_generated/component.ts +79 -195
  43. package/src/component/agentBridgeUtils.ts +52 -0
  44. package/src/component/agents.ts +106 -0
  45. package/src/component/gateway.ts +149 -163
  46. package/src/component/permissions.ts +89 -259
  47. package/src/component/schema.ts +31 -96
  48. package/src/react/index.ts +5 -6
  49. package/dist/component/provisioning.d.ts +0 -87
  50. package/dist/component/provisioning.d.ts.map +0 -1
  51. package/dist/component/provisioning.js +0 -343
  52. package/dist/component/provisioning.js.map +0 -1
  53. package/dist/component/registry.d.ts +0 -46
  54. package/dist/component/registry.d.ts.map +0 -1
  55. package/dist/component/registry.js +0 -121
  56. package/dist/component/registry.js.map +0 -1
  57. package/src/component/provisioning.ts +0 -402
  58. package/src/component/registry.ts +0 -152
@@ -19,206 +19,110 @@ import type { FunctionReference } from "convex/server";
19
19
  * ```
20
20
  */
21
21
  export type ComponentApi<Name extends string | undefined = string | undefined> = {
22
+ agents: {
23
+ createAgent: FunctionReference<"mutation", "internal", {
24
+ apiKey: string;
25
+ enabled?: boolean;
26
+ name: string;
27
+ rateLimit?: number;
28
+ }, {
29
+ agentId: string;
30
+ }, Name>;
31
+ listAgents: FunctionReference<"query", "internal", {}, Array<{
32
+ _id: string;
33
+ createdAt: number;
34
+ enabled: boolean;
35
+ lastUsed?: number;
36
+ name: string;
37
+ rateLimit: number;
38
+ }>, Name>;
39
+ rotateApiKey: FunctionReference<"mutation", "internal", {
40
+ agentId: string;
41
+ newApiKey: string;
42
+ }, null, Name>;
43
+ updateAgent: FunctionReference<"mutation", "internal", {
44
+ agentId: string;
45
+ enabled?: boolean;
46
+ name?: string;
47
+ rateLimit?: number;
48
+ }, null, Name>;
49
+ };
22
50
  gateway: {
23
51
  authorizeRequest: FunctionReference<"mutation", "internal", {
24
- appName: string;
25
- functionName: string;
26
- instanceToken: string;
52
+ apiKey: string;
53
+ estimatedCost?: number;
54
+ functionKey: string;
27
55
  }, {
28
56
  agentId: string;
29
- appName: string;
30
57
  authorized: true;
31
- functionHandle: string;
32
- functionType: "query" | "mutation" | "action";
33
58
  } | {
34
59
  agentId?: string;
35
60
  authorized: false;
36
61
  error: string;
37
- matchedPattern?: string;
38
- matchedPermission?: "allow" | "deny" | "rate_limited";
62
+ retryAfterSeconds?: number;
39
63
  statusCode: number;
40
64
  }, Name>;
41
65
  logAccess: FunctionReference<"mutation", "internal", {
42
66
  agentId: string;
43
- appName: string;
44
- durationMs?: number;
45
- errorMessage?: string;
46
- functionCalled: string;
47
- permission: string;
67
+ args: any;
68
+ duration: number;
69
+ error?: string;
70
+ functionKey: string;
71
+ result?: any;
72
+ timestamp: number;
48
73
  }, null, Name>;
49
74
  queryAccessLog: FunctionReference<"query", "internal", {
50
75
  agentId?: string;
51
- appName?: string;
76
+ functionKey?: string;
52
77
  limit?: number;
53
78
  }, Array<{
79
+ _id: string;
54
80
  agentId: string;
55
- appName: string;
56
- durationMs?: number;
57
- errorMessage?: string;
58
- functionCalled: string;
59
- permission: string;
81
+ args: any;
82
+ duration: number;
83
+ error?: string;
84
+ functionKey: string;
85
+ result?: any;
60
86
  timestamp: number;
61
87
  }>, Name>;
62
88
  };
63
89
  permissions: {
64
- checkPermission: FunctionReference<"query", "internal", {
65
- agentId: string;
66
- appName: string;
67
- functionName: string;
68
- }, {
69
- matchedPattern?: string;
70
- permission: "allow" | "deny" | "rate_limited";
71
- rateLimitConfig?: {
72
- requestsPerHour: number;
73
- tokenBudget: number;
74
- };
75
- }, Name>;
76
- clearPermissions: FunctionReference<"mutation", "internal", {
77
- agentId: string;
78
- appName: string;
79
- }, number, Name>;
80
- debugMatchPermission: FunctionReference<"query", "internal", {
90
+ listAgentPermissions: FunctionReference<"query", "internal", {
81
91
  agentId: string;
82
- appName: string;
83
- functionName: string;
84
- }, {
85
- bestMatch?: {
86
- functionPattern: string;
87
- permission: "allow" | "deny" | "rate_limited";
88
- specificity: number;
89
- };
90
- functionName: string;
91
- matches: Array<{
92
- functionPattern: string;
93
- permission: "allow" | "deny" | "rate_limited";
94
- specificity: number;
95
- }>;
96
- permissions: Array<{
97
- functionPattern: string;
98
- permission: "allow" | "deny" | "rate_limited";
99
- specificity: number;
100
- }>;
101
- }, Name>;
102
- listPermissions: FunctionReference<"query", "internal", {
103
- agentId: string;
104
- appName: string;
105
92
  }, Array<{
106
- createdAt: number;
107
- createdBy: string;
108
93
  functionPattern: string;
109
94
  permission: "allow" | "deny" | "rate_limited";
110
95
  rateLimitConfig?: {
111
96
  requestsPerHour: number;
112
- tokenBudget: number;
97
+ tokenBudget?: number;
113
98
  };
99
+ updatedAt: number;
114
100
  }>, Name>;
115
- removePermission: FunctionReference<"mutation", "internal", {
116
- agentId: string;
117
- appName: string;
118
- functionPattern: string;
119
- }, boolean, Name>;
120
- setPermission: FunctionReference<"mutation", "internal", {
101
+ listFunctionOverrides: FunctionReference<"query", "internal", {}, Array<{
102
+ enabled: boolean;
103
+ globalRateLimit?: number;
104
+ key: string;
105
+ }>, Name>;
106
+ setAgentPermissions: FunctionReference<"mutation", "internal", {
121
107
  agentId: string;
122
- appName: string;
123
- createdBy: string;
124
- functionPattern: string;
125
- permission: "allow" | "deny" | "rate_limited";
126
- rateLimitConfig?: {
127
- requestsPerHour: number;
128
- tokenBudget: number;
129
- };
130
- }, string, Name>;
131
- };
132
- provisioning: {
133
- configure: FunctionReference<"mutation", "internal", {
134
- appName: string;
135
- defaultPermissions: Array<{
108
+ availableFunctionKeys: Array<string>;
109
+ rules: Array<{
136
110
  pattern: string;
137
111
  permission: "allow" | "deny" | "rate_limited";
138
112
  rateLimitConfig?: {
139
113
  requestsPerHour: number;
140
- tokenBudget: number;
114
+ tokenBudget?: number;
141
115
  };
142
116
  }>;
143
- }, null, Name>;
144
- generateProvisioningToken: FunctionReference<"mutation", "internal", {
145
- createdBy: string;
146
- department: string;
147
- employeeEmail: string;
148
- expiresInDays?: number;
149
- maxApps?: number;
150
- }, {
151
- expiresAt: number;
152
- token: string;
153
- }, Name>;
154
- listAgents: FunctionReference<"query", "internal", {
155
- activeOnly?: boolean;
156
- }, Array<{
157
- agentId: string;
158
- department: string;
159
- employeeEmail: string;
160
- firstRegisteredAt: number;
161
- isActive: boolean;
162
- lastSeenAt: number;
163
- revokedAt?: number;
164
- revokedBy?: string;
165
- }>, Name>;
166
- provisionAgent: FunctionReference<"mutation", "internal", {
167
- appName: string;
168
- provisioningToken: string;
169
- }, {
170
- agentId: string;
171
- appName: string;
172
- expiresAt: number;
173
- instanceToken: string;
174
- message: string;
175
- }, Name>;
176
- refreshInstanceToken: FunctionReference<"mutation", "internal", {
177
- agentId: string;
178
- appName: string;
179
- currentTokenHash: string;
180
- }, {
181
- expiresAt: number;
182
- instanceToken: string;
183
- }, Name>;
184
- revokeAgent: FunctionReference<"mutation", "internal", {
185
- agentId: string;
186
- revokedBy: string;
187
- }, boolean, Name>;
188
- revokeAppInstance: FunctionReference<"mutation", "internal", {
189
- agentId: string;
190
- appName: string;
191
- }, boolean, Name>;
192
- };
193
- registry: {
194
- getHandle: FunctionReference<"query", "internal", {
195
- appName: string;
196
- functionName: string;
197
- }, null | {
198
- description?: string;
199
- functionHandle: string;
200
- functionName: string;
201
- functionType: "query" | "mutation" | "action";
202
- }, Name>;
203
- listFunctions: FunctionReference<"query", "internal", {
204
- appName: string;
205
- }, Array<{
206
- description?: string;
207
- functionName: string;
208
- functionType: "query" | "mutation" | "action";
209
- registeredAt: number;
210
- }>, Name>;
211
- register: FunctionReference<"mutation", "internal", {
212
- appName: string;
213
- description?: string;
214
- functionHandle: string;
215
- functionName: string;
216
- functionType: "query" | "mutation" | "action";
217
- }, string, Name>;
218
- unregister: FunctionReference<"mutation", "internal", {
219
- appName: string;
220
- functionName: string;
221
- }, boolean, Name>;
117
+ }, number, Name>;
118
+ setFunctionOverrides: FunctionReference<"mutation", "internal", {
119
+ availableFunctionKeys: Array<string>;
120
+ overrides: Array<{
121
+ enabled: boolean;
122
+ globalRateLimit?: number;
123
+ key: string;
124
+ }>;
125
+ }, number, Name>;
222
126
  };
223
127
  };
224
128
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Doc } from "./_generated/dataModel.js";
2
+ export type PermissionType = "allow" | "deny" | "rate_limited";
3
+ export declare function hashApiKey(apiKey: string): Promise<string>;
4
+ export declare function matchesPattern(functionKey: string, pattern: string): boolean;
5
+ export declare function patternSpecificity(pattern: string): number;
6
+ export declare function findBestPermissionMatch(functionKey: string, permissions: Array<Doc<"agentPermissions">>): Doc<"agentPermissions"> | null;
7
+ export declare function patternMatchesAvailableFunctions(pattern: string, availableFunctionKeys: string[]): boolean;
8
+ //# sourceMappingURL=agentBridgeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentBridgeUtils.d.ts","sourceRoot":"","sources":["../../src/component/agentBridgeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;AAE/D,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQ5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAC1C,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAQhC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,MAAM,EAAE,GAC9B,OAAO,CAIT"}
@@ -0,0 +1,33 @@
1
+ export async function hashApiKey(apiKey) {
2
+ const encoder = new TextEncoder();
3
+ const data = encoder.encode(apiKey);
4
+ const hash = await crypto.subtle.digest("SHA-256", data);
5
+ return Array.from(new Uint8Array(hash))
6
+ .map((byte) => byte.toString(16).padStart(2, "0"))
7
+ .join("");
8
+ }
9
+ export function matchesPattern(functionKey, pattern) {
10
+ if (pattern === "*") {
11
+ return true;
12
+ }
13
+ const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, "\\$&");
14
+ const regexPattern = "^" + escaped.replace(/\*/g, ".*") + "$";
15
+ return new RegExp(regexPattern).test(functionKey);
16
+ }
17
+ export function patternSpecificity(pattern) {
18
+ const wildcardIndex = pattern.indexOf("*");
19
+ if (wildcardIndex === -1) {
20
+ return pattern.length;
21
+ }
22
+ return wildcardIndex;
23
+ }
24
+ export function findBestPermissionMatch(functionKey, permissions) {
25
+ const matches = permissions
26
+ .filter((permission) => matchesPattern(functionKey, permission.functionPattern))
27
+ .sort((a, b) => patternSpecificity(b.functionPattern) - patternSpecificity(a.functionPattern));
28
+ return matches[0] ?? null;
29
+ }
30
+ export function patternMatchesAvailableFunctions(pattern, availableFunctionKeys) {
31
+ return availableFunctionKeys.some((functionKey) => matchesPattern(functionKey, pattern));
32
+ }
33
+ //# sourceMappingURL=agentBridgeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentBridgeUtils.js","sourceRoot":"","sources":["../../src/component/agentBridgeUtils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,OAAe;IACjE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;IAC9D,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,WAA2C;IAE3C,MAAM,OAAO,GAAG,WAAW;SACxB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;SAC/E,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC,CAChF,CAAC;IACJ,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAAe,EACf,qBAA+B;IAE/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAChD,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ export declare const createAgent: import("convex/server").RegisteredMutation<"public", {
2
+ enabled?: boolean | undefined;
3
+ rateLimit?: number | undefined;
4
+ apiKey: string;
5
+ name: string;
6
+ }, Promise<{
7
+ agentId: import("convex/values").GenericId<"agents">;
8
+ }>>;
9
+ export declare const rotateApiKey: import("convex/server").RegisteredMutation<"public", {
10
+ agentId: import("convex/values").GenericId<"agents">;
11
+ newApiKey: string;
12
+ }, Promise<null>>;
13
+ export declare const updateAgent: import("convex/server").RegisteredMutation<"public", {
14
+ enabled?: boolean | undefined;
15
+ name?: string | undefined;
16
+ rateLimit?: number | undefined;
17
+ agentId: import("convex/values").GenericId<"agents">;
18
+ }, Promise<null>>;
19
+ export declare const listAgents: import("convex/server").RegisteredQuery<"public", {}, Promise<{
20
+ _id: import("convex/values").GenericId<"agents">;
21
+ name: string;
22
+ enabled: boolean;
23
+ rateLimit: number;
24
+ lastUsed: number | undefined;
25
+ createdAt: number;
26
+ }[]>>;
27
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/component/agents.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;GA+BtB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAmBvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;iBAsBtB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;KAuBrB,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { v } from "convex/values";
2
+ import { mutation, query } from "./_generated/server.js";
3
+ import { hashApiKey } from "./agentBridgeUtils.js";
4
+ export const createAgent = mutation({
5
+ args: {
6
+ name: v.string(),
7
+ apiKey: v.string(),
8
+ enabled: v.optional(v.boolean()),
9
+ rateLimit: v.optional(v.number()),
10
+ },
11
+ returns: v.object({
12
+ agentId: v.id("agents"),
13
+ }),
14
+ handler: async (ctx, args) => {
15
+ const apiKeyHash = await hashApiKey(args.apiKey);
16
+ const existing = await ctx.db
17
+ .query("agents")
18
+ .withIndex("by_apiKeyHash", (q) => q.eq("apiKeyHash", apiKeyHash))
19
+ .unique();
20
+ if (existing) {
21
+ throw new Error("An agent with this API key already exists");
22
+ }
23
+ const agentId = await ctx.db.insert("agents", {
24
+ name: args.name,
25
+ apiKeyHash,
26
+ enabled: args.enabled ?? true,
27
+ rateLimit: args.rateLimit ?? 1000,
28
+ createdAt: Date.now(),
29
+ });
30
+ return { agentId };
31
+ },
32
+ });
33
+ export const rotateApiKey = mutation({
34
+ args: {
35
+ agentId: v.id("agents"),
36
+ newApiKey: v.string(),
37
+ },
38
+ returns: v.null(),
39
+ handler: async (ctx, args) => {
40
+ const agent = await ctx.db.get(args.agentId);
41
+ if (!agent) {
42
+ throw new Error("Agent not found");
43
+ }
44
+ const newApiKeyHash = await hashApiKey(args.newApiKey);
45
+ await ctx.db.patch(args.agentId, {
46
+ apiKeyHash: newApiKeyHash,
47
+ });
48
+ return null;
49
+ },
50
+ });
51
+ export const updateAgent = mutation({
52
+ args: {
53
+ agentId: v.id("agents"),
54
+ name: v.optional(v.string()),
55
+ enabled: v.optional(v.boolean()),
56
+ rateLimit: v.optional(v.number()),
57
+ },
58
+ returns: v.null(),
59
+ handler: async (ctx, args) => {
60
+ const agent = await ctx.db.get(args.agentId);
61
+ if (!agent) {
62
+ throw new Error("Agent not found");
63
+ }
64
+ await ctx.db.patch(args.agentId, {
65
+ name: args.name ?? agent.name,
66
+ enabled: args.enabled ?? agent.enabled,
67
+ rateLimit: args.rateLimit ?? agent.rateLimit,
68
+ });
69
+ return null;
70
+ },
71
+ });
72
+ export const listAgents = query({
73
+ args: {},
74
+ returns: v.array(v.object({
75
+ _id: v.id("agents"),
76
+ name: v.string(),
77
+ enabled: v.boolean(),
78
+ rateLimit: v.number(),
79
+ lastUsed: v.optional(v.number()),
80
+ createdAt: v.number(),
81
+ })),
82
+ handler: async (ctx) => {
83
+ const agents = await ctx.db.query("agents").collect();
84
+ return agents.map((agent) => ({
85
+ _id: agent._id,
86
+ name: agent.name,
87
+ enabled: agent.enabled,
88
+ rateLimit: agent.rateLimit,
89
+ lastUsed: agent.lastUsed,
90
+ createdAt: agent.createdAt,
91
+ }));
92
+ },
93
+ });
94
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/component/agents.ts"],"names":[],"mappings":"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"}
@@ -3,85 +3,71 @@
3
3
  * This is a mutation (not a query) because it updates counters and last activity.
4
4
  *
5
5
  * Steps:
6
- * 1. Validate instance token
6
+ * 1. Validate API key
7
7
  * 2. Check agent is active
8
8
  * 3. Check function permissions
9
- * 4. Look up function handle in registry
10
- * 5. Update activity counters
9
+ * 4. Check function global override
10
+ * 5. Check rate limits
11
11
  *
12
- * Returns the function handle info if authorized, or an error.
12
+ * Returns the agent id if authorized, or an error.
13
13
  */
14
14
  export declare const authorizeRequest: import("convex/server").RegisteredMutation<"public", {
15
- appName: string;
16
- functionName: string;
17
- instanceToken: string;
15
+ estimatedCost?: number | undefined;
16
+ apiKey: string;
17
+ functionKey: string;
18
18
  }, Promise<{
19
19
  authorized: false;
20
20
  error: string;
21
21
  statusCode: number;
22
22
  agentId?: undefined;
23
- matchedPattern?: undefined;
24
- matchedPermission?: undefined;
25
- appName?: undefined;
26
- functionHandle?: undefined;
27
- functionType?: undefined;
23
+ retryAfterSeconds?: undefined;
28
24
  } | {
29
25
  authorized: false;
30
26
  error: string;
31
27
  statusCode: number;
32
- agentId: string;
33
- matchedPattern?: undefined;
34
- matchedPermission?: undefined;
35
- appName?: undefined;
36
- functionHandle?: undefined;
37
- functionType?: undefined;
28
+ agentId: import("convex/values").GenericId<"agents">;
29
+ retryAfterSeconds?: undefined;
38
30
  } | {
39
31
  authorized: false;
40
32
  error: string;
41
33
  statusCode: number;
42
- agentId: string;
43
- matchedPattern: string;
44
- matchedPermission: "allow" | "deny" | "rate_limited";
45
- appName?: undefined;
46
- functionHandle?: undefined;
47
- functionType?: undefined;
34
+ retryAfterSeconds: number;
35
+ agentId: import("convex/values").GenericId<"agents">;
48
36
  } | {
49
37
  authorized: true;
50
- agentId: string;
51
- appName: string;
52
- functionHandle: string;
53
- functionType: "query" | "mutation" | "action";
38
+ agentId: import("convex/values").GenericId<"agents">;
54
39
  error?: undefined;
55
40
  statusCode?: undefined;
56
- matchedPattern?: undefined;
57
- matchedPermission?: undefined;
41
+ retryAfterSeconds?: undefined;
58
42
  }>>;
59
43
  /**
60
44
  * Log an access attempt to the audit log.
61
45
  * Called after function execution (success or failure).
62
46
  */
63
47
  export declare const logAccess: import("convex/server").RegisteredMutation<"public", {
64
- durationMs?: number | undefined;
65
- errorMessage?: string | undefined;
66
- appName: string;
67
- agentId: string;
68
- functionCalled: string;
69
- permission: string;
48
+ error?: string | undefined;
49
+ result?: any;
50
+ agentId: import("convex/values").GenericId<"agents">;
51
+ functionKey: string;
52
+ args: any;
53
+ duration: number;
54
+ timestamp: number;
70
55
  }, Promise<null>>;
71
56
  /**
72
57
  * Query access logs for audit purposes.
73
58
  */
74
59
  export declare const queryAccessLog: import("convex/server").RegisteredQuery<"public", {
75
- appName?: string | undefined;
76
- agentId?: string | undefined;
60
+ agentId?: import("convex/values").GenericId<"agents"> | undefined;
61
+ functionKey?: string | undefined;
77
62
  limit?: number | undefined;
78
63
  }, Promise<{
64
+ _id: import("convex/values").GenericId<"agentLogs">;
79
65
  timestamp: number;
80
- agentId: string;
81
- appName: string;
82
- functionCalled: string;
83
- permission: string;
84
- errorMessage: string | undefined;
85
- durationMs: number | undefined;
66
+ agentId: import("convex/values").GenericId<"agents">;
67
+ functionKey: string;
68
+ args: any;
69
+ result: any;
70
+ error: string | undefined;
71
+ duration: number;
86
72
  }[]>>;
87
73
  //# sourceMappingURL=gateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/component/gateway.ts"],"names":[],"mappings":"AA2DA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwH3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;iBAsBpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;KAwDzB,CAAC"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/component/gateway.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6G3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;iBAuBpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;KA+DzB,CAAC"}