@okrlinkhub/agent-bridge 2.0.0 → 3.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 (35) hide show
  1. package/README.md +48 -3
  2. package/dist/cli/init.js +6 -0
  3. package/dist/cli/init.js.map +1 -1
  4. package/dist/client/index.d.ts +6 -2
  5. package/dist/client/index.d.ts.map +1 -1
  6. package/dist/client/index.js +142 -6
  7. package/dist/client/index.js.map +1 -1
  8. package/dist/component/_generated/component.d.ts +20 -0
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/agentBridgeUtils.d.ts +1 -0
  11. package/dist/component/agentBridgeUtils.d.ts.map +1 -1
  12. package/dist/component/agentBridgeUtils.js +3 -0
  13. package/dist/component/agentBridgeUtils.js.map +1 -1
  14. package/dist/component/agents.d.ts +5 -2
  15. package/dist/component/agents.d.ts.map +1 -1
  16. package/dist/component/agents.js +31 -1
  17. package/dist/component/agents.js.map +1 -1
  18. package/dist/component/gateway.d.ts +29 -1
  19. package/dist/component/gateway.d.ts.map +1 -1
  20. package/dist/component/gateway.js +128 -67
  21. package/dist/component/gateway.js.map +1 -1
  22. package/dist/component/permissions.d.ts +1 -1
  23. package/dist/component/schema.d.ts +11 -5
  24. package/dist/component/schema.d.ts.map +1 -1
  25. package/dist/component/schema.js +4 -0
  26. package/dist/component/schema.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/cli/init.ts +6 -0
  29. package/src/client/index.test.ts +295 -0
  30. package/src/client/index.ts +186 -10
  31. package/src/component/_generated/component.ts +31 -2
  32. package/src/component/agentBridgeUtils.ts +4 -0
  33. package/src/component/agents.ts +33 -1
  34. package/src/component/gateway.ts +157 -80
  35. package/src/component/schema.ts +4 -0
package/README.md CHANGED
@@ -49,6 +49,15 @@ registerAgentBridgeRoutes(http);
49
49
  export default http;
50
50
  ```
51
51
 
52
+ Configura auth strict multi-service in `registerRoutes`:
53
+
54
+ ```ts
55
+ registerRoutes(http, components.agentBridge, bridgeConfig, {
56
+ pathPrefix: "/agent",
57
+ serviceKeysEnvVar: "AGENT_BRIDGE_SERVICE_KEYS_JSON",
58
+ });
59
+ ```
60
+
52
61
  ### 4) Configura funzioni esposte in `agent-bridge.config.ts`
53
62
 
54
63
  ```ts
@@ -78,9 +87,11 @@ export default defineAgentBridgeConfig({
78
87
 
79
88
  ### `POST /agent/execute`
80
89
 
81
- Header richiesto:
90
+ Header richiesti (strict-only):
82
91
 
83
- - `X-Agent-API-Key: <api-key>`
92
+ - `X-Agent-Service-Id: <service-id>`
93
+ - `X-Agent-Service-Key: <service-key>`
94
+ - `X-Agent-App: <app-key>` (es. `crm`, `billing`)
84
95
 
85
96
  Body richiesto:
86
97
 
@@ -98,6 +109,32 @@ Risposta:
98
109
 
99
110
  Codici principali: `401`, `403`, `404`, `429`, `500`.
100
111
 
112
+ ## Setup OpenClaw multi-app (semplice su Railway)
113
+
114
+ Per piu istanze OpenClaw che gestiscono piu applicativi:
115
+
116
+ 1. In Convex imposta:
117
+ - `AGENT_BRIDGE_SERVICE_KEYS_JSON={"openclaw-prod":"<key>","openclaw-staging":"<key>"}`
118
+ 2. In Convex registra un agente per app con `appKey` univoco:
119
+ - `crm`, `billing`, `warehouse`, ecc.
120
+ 3. OpenClaw invia per ogni chiamata:
121
+ - `X-Agent-Service-Id` (identita istanza)
122
+ - `X-Agent-Service-Key` (chiave della specifica istanza)
123
+ - `X-Agent-App` (varia per app target)
124
+
125
+ Puoi generare una service key con l'helper del package:
126
+
127
+ ```ts
128
+ import { generateAgentBridgeServiceKey } from "@okrlinkhub/agent-bridge";
129
+
130
+ const serviceKey = generateAgentBridgeServiceKey(); // es: abs_live_<random>
131
+ ```
132
+
133
+ Vantaggi:
134
+ - controllo e debugging centralizzati nel bridge Convex;
135
+ - nessun invio multiplo di API key nelle request;
136
+ - rotazione e policy per app gestite nel bridge.
137
+
101
138
  ## Gestione agenti e permessi
102
139
 
103
140
  Mutation/query del componente disponibili in `components.agentBridge`:
@@ -106,6 +143,7 @@ Mutation/query del componente disponibili in `components.agentBridge`:
106
143
  - `agents.updateAgent`
107
144
  - `agents.rotateApiKey`
108
145
  - `agents.listAgents`
146
+ - `gateway.authorizeByAppKey`
109
147
  - `permissions.setAgentPermissions` (batch)
110
148
  - `permissions.listAgentPermissions`
111
149
  - `permissions.setFunctionOverrides` (batch)
@@ -129,6 +167,13 @@ await ctx.runMutation(components.agentBridge.permissions.setAgentPermissions, {
129
167
  });
130
168
  ```
131
169
 
170
+ ## Breaking change strict-only
171
+
172
+ Da questa versione:
173
+ - `X-Agent-API-Key` non e piu supportato nel runtime HTTP;
174
+ - non esiste fallback single-key;
175
+ - e obbligatoria la triade `X-Agent-Service-Id` + `X-Agent-Service-Key` + `X-Agent-App`.
176
+
132
177
  ## Migrazione 0.2 -> next major
133
178
 
134
179
  Breaking changes principali:
@@ -140,7 +185,7 @@ Breaking changes principali:
140
185
  Nuovo flusso:
141
186
 
142
187
  1. config funzioni in `agent-bridge.config.ts`;
143
- 2. auth via `X-Agent-API-Key`;
188
+ 2. auth strict via `X-Agent-Service-Id + X-Agent-Service-Key + X-Agent-App`;
144
189
  3. policy in batch via mutation del componente;
145
190
  4. log centralizzato in `agentLogs`.
146
191
 
package/dist/cli/init.js CHANGED
@@ -52,6 +52,7 @@ export function registerAgentBridgeRoutes(
52
52
  ) {
53
53
  registerRoutes(http, components.agentBridge, config, {
54
54
  pathPrefix: "/agent",
55
+ serviceKeysEnvVar: "AGENT_BRIDGE_SERVICE_KEYS_JSON",
55
56
  });
56
57
  }
57
58
  `;
@@ -81,6 +82,11 @@ export default http;
81
82
  - components.agentBridge.agents.createAgent
82
83
  - components.agentBridge.permissions.setAgentPermissions
83
84
  - components.agentBridge.permissions.setFunctionOverrides
85
+
86
+ 4) Configure strict service auth map (required):
87
+ - AGENT_BRIDGE_SERVICE_KEYS_JSON={"openclaw-prod":"<key>","openclaw-staging":"<key>"}
88
+ - OpenClaw must send X-Agent-Service-Id, X-Agent-Service-Key and X-Agent-App
89
+ - Legacy X-Agent-API-Key is not supported in strict mode
84
90
  `;
85
91
  async function main() {
86
92
  const commandArg = process.argv[2];
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1B,KAAK,UAAU,MAAM,CAAC,UAAkB;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,YAAoB,EACpB,OAAe;IAEf,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBtB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;;CAW1B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BxB,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,mCAAmC,UAAU,IAAI,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,CACT,0CAA0C,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAChH,CAAC;IACF,OAAO,CAAC,GAAG,CACT,yCAAyC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAC/G,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1B,KAAK,UAAU,MAAM,CAAC,UAAkB;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,YAAoB,EACpB,OAAe;IAEf,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBtB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;CAY1B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,mCAAmC,UAAU,IAAI,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,CACT,0CAA0C,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAChH,CAAC;IACF,OAAO,CAAC,GAAG,CACT,yCAAyC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAC/G,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -17,6 +17,7 @@ export interface AgentBridgeConfig {
17
17
  }
18
18
  export declare function defineAgentBridgeConfig(config: AgentBridgeConfig): AgentBridgeConfig;
19
19
  export declare function generateAgentApiKey(prefix?: string): string;
20
+ export declare function generateAgentBridgeServiceKey(prefix?: string): string;
20
21
  type NormalizedFunctionDefinition = {
21
22
  ref: UnknownFunctionReference;
22
23
  type: AgentBridgeFunctionType;
@@ -27,9 +28,12 @@ type NormalizedAgentBridgeConfig = {
27
28
  };
28
29
  export declare function detectFunctionType(fnRef: UnknownFunctionReference): AgentBridgeFunctionType | null;
29
30
  export declare function normalizeAgentBridgeConfig(config: AgentBridgeConfig): NormalizedAgentBridgeConfig;
30
- export declare function registerRoutes(http: HttpRouter, component: ComponentApi, bridgeConfig: AgentBridgeConfig, options?: {
31
+ type RegisterRoutesOptions = {
31
32
  pathPrefix?: string;
32
- }): void;
33
+ serviceKeys?: Record<string, string>;
34
+ serviceKeysEnvVar?: string;
35
+ };
36
+ export declare function registerRoutes(http: HttpRouter, component: ComponentApi, bridgeConfig: AgentBridgeConfig, options?: RegisterRoutesOptions): void;
33
37
  type PermissionRule = {
34
38
  pattern: string;
35
39
  permission: "allow" | "deny" | "rate_limited";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtE,KAAK,wBAAwB,GAAG,OAAO,CAAC;AAExC,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CACf,MAAM,EACN,wBAAwB,GAAG,6BAA6B,CACzD,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;CACxD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAEnB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,MAAmB,GAAG,MAAM,CAOvE;AAED,KAAK,4BAA4B,GAAG;IAClC,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CACxC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,wBAAwB,GAC9B,uBAAuB,GAAG,IAAI,CAiBhC;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,GACxB,2BAA2B,CAsC7B;AAQD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,iBAAiB,EAC/B,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,QA4HlC;AAED,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;IAC9C,eAAe,CAAC,EAAE;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,KAAK,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC;AAE7E,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,mBAQF;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE;IACJ,SAAS,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,EAAE,iBAAiB,CAAC;CAC3B,mBAOF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB;;;;IAShE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ export function defineAgentBridgeConfig(config) {
3
3
  return config;
4
4
  }
5
5
  export function generateAgentApiKey(prefix = "abk_live") {
6
+ return generateKeyWithPrefix(prefix);
7
+ }
8
+ export function generateAgentBridgeServiceKey(prefix = "abs_live") {
9
+ return generateKeyWithPrefix(prefix);
10
+ }
11
+ function generateKeyWithPrefix(prefix) {
6
12
  const bytes = new Uint8Array(24);
7
13
  crypto.getRandomValues(bytes);
8
14
  const token = Array.from(bytes)
@@ -57,16 +63,16 @@ export function normalizeAgentBridgeConfig(config) {
57
63
  }
58
64
  export function registerRoutes(http, component, bridgeConfig, options) {
59
65
  const prefix = options?.pathPrefix ?? "/agent";
66
+ const configuredServiceKeys = resolveConfiguredServiceKeys({
67
+ serviceKeys: options?.serviceKeys,
68
+ serviceKeysEnvVar: options?.serviceKeysEnvVar ?? "AGENT_BRIDGE_SERVICE_KEYS_JSON",
69
+ });
60
70
  const normalizedConfig = normalizeAgentBridgeConfig(bridgeConfig);
61
71
  const availableFunctionKeys = Object.keys(normalizedConfig.functions);
62
72
  http.route({
63
73
  path: `${prefix}/execute`,
64
74
  method: "POST",
65
75
  handler: httpActionGeneric(async (ctx, request) => {
66
- const apiKey = request.headers.get("X-Agent-API-Key");
67
- if (!apiKey) {
68
- return jsonResponse({ success: false, error: "Missing API key" }, 401);
69
- }
70
76
  let body;
71
77
  try {
72
78
  body = await request.json();
@@ -82,8 +88,15 @@ export function registerRoutes(http, component, bridgeConfig, options) {
82
88
  if (!functionDef) {
83
89
  return jsonResponse({ success: false, error: `Function "${functionKey}" not found` }, 404);
84
90
  }
85
- const authResult = await ctx.runMutation(component.gateway.authorizeRequest, {
86
- apiKey,
91
+ const headerValidation = validateStrictServiceHeaders({
92
+ request,
93
+ configuredServiceKeys,
94
+ });
95
+ if (!headerValidation.valid) {
96
+ return jsonResponse({ success: false, error: headerValidation.error }, headerValidation.statusCode);
97
+ }
98
+ const authResult = await ctx.runMutation(component.gateway.authorizeByAppKey, {
99
+ appKey: headerValidation.appKey,
87
100
  functionKey,
88
101
  estimatedCost: body.estimatedCost,
89
102
  });
@@ -109,6 +122,7 @@ export function registerRoutes(http, component, bridgeConfig, options) {
109
122
  }
110
123
  await ctx.runMutation(component.gateway.logAccess, {
111
124
  agentId: authResult.agentId,
125
+ serviceId: headerValidation.serviceId,
112
126
  functionKey,
113
127
  args,
114
128
  result,
@@ -123,6 +137,7 @@ export function registerRoutes(http, component, bridgeConfig, options) {
123
137
  : "Unknown error";
124
138
  await ctx.runMutation(component.gateway.logAccess, {
125
139
  agentId: authResult.agentId,
140
+ serviceId: headerValidation.serviceId,
126
141
  functionKey,
127
142
  args: body.args ?? {},
128
143
  error: errorMessage,
@@ -175,4 +190,125 @@ function jsonResponse(data, status) {
175
190
  headers: { "Content-Type": "application/json" },
176
191
  });
177
192
  }
193
+ function validateStrictServiceHeaders(args) {
194
+ const serviceId = args.request.headers.get("X-Agent-Service-Id")?.trim();
195
+ const providedServiceKey = args.request.headers
196
+ .get("X-Agent-Service-Key")
197
+ ?.trim();
198
+ const appKey = args.request.headers.get("X-Agent-App")?.trim();
199
+ if (!serviceId) {
200
+ return {
201
+ valid: false,
202
+ error: "Missing required header: X-Agent-Service-Id",
203
+ statusCode: 400,
204
+ };
205
+ }
206
+ if (!providedServiceKey) {
207
+ return {
208
+ valid: false,
209
+ error: "Missing required header: X-Agent-Service-Key",
210
+ statusCode: 400,
211
+ };
212
+ }
213
+ if (!appKey) {
214
+ return {
215
+ valid: false,
216
+ error: "Missing required header: X-Agent-App",
217
+ statusCode: 400,
218
+ };
219
+ }
220
+ if (!args.configuredServiceKeys.ok) {
221
+ return {
222
+ valid: false,
223
+ error: args.configuredServiceKeys.error,
224
+ statusCode: 500,
225
+ };
226
+ }
227
+ const expectedServiceKey = args.configuredServiceKeys.keysByServiceId[serviceId];
228
+ if (!expectedServiceKey) {
229
+ return {
230
+ valid: false,
231
+ error: `Unknown service id: ${serviceId}`,
232
+ statusCode: 401,
233
+ };
234
+ }
235
+ if (providedServiceKey !== expectedServiceKey) {
236
+ return {
237
+ valid: false,
238
+ error: "Invalid service key",
239
+ statusCode: 401,
240
+ };
241
+ }
242
+ return {
243
+ valid: true,
244
+ serviceId,
245
+ appKey,
246
+ };
247
+ }
248
+ function readRuntimeEnv(name) {
249
+ const maybeProcess = globalThis
250
+ .process;
251
+ const value = maybeProcess?.env?.[name];
252
+ if (!value) {
253
+ return undefined;
254
+ }
255
+ const trimmed = value.trim();
256
+ return trimmed.length > 0 ? trimmed : undefined;
257
+ }
258
+ function resolveConfiguredServiceKeys(args) {
259
+ if (args.serviceKeys) {
260
+ return sanitizeServiceKeysMap(args.serviceKeys);
261
+ }
262
+ const json = readRuntimeEnv(args.serviceKeysEnvVar);
263
+ if (!json) {
264
+ return {
265
+ ok: false,
266
+ error: `Bridge service keys are not configured. Provide registerRoutes({ serviceKeys }) or set ${args.serviceKeysEnvVar}`,
267
+ };
268
+ }
269
+ let parsed;
270
+ try {
271
+ parsed = JSON.parse(json);
272
+ }
273
+ catch {
274
+ return {
275
+ ok: false,
276
+ error: `Invalid JSON in ${args.serviceKeysEnvVar}`,
277
+ };
278
+ }
279
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
280
+ return {
281
+ ok: false,
282
+ error: `${args.serviceKeysEnvVar} must be a JSON object mapping serviceId to serviceKey`,
283
+ };
284
+ }
285
+ return sanitizeServiceKeysMap(parsed);
286
+ }
287
+ function sanitizeServiceKeysMap(input) {
288
+ const keysByServiceId = {};
289
+ for (const [serviceIdRaw, serviceKeyRaw] of Object.entries(input)) {
290
+ if (typeof serviceKeyRaw !== "string") {
291
+ return {
292
+ ok: false,
293
+ error: `Invalid service key value for "${serviceIdRaw}"`,
294
+ };
295
+ }
296
+ const serviceId = serviceIdRaw.trim();
297
+ const serviceKey = serviceKeyRaw.trim();
298
+ if (!serviceId || !serviceKey) {
299
+ return {
300
+ ok: false,
301
+ error: "Service ids and service keys cannot be empty",
302
+ };
303
+ }
304
+ keysByServiceId[serviceId] = serviceKey;
305
+ }
306
+ if (Object.keys(keysByServiceId).length === 0) {
307
+ return {
308
+ ok: false,
309
+ error: "At least one service key must be configured",
310
+ };
311
+ }
312
+ return { ok: true, keysByServiceId };
313
+ }
178
314
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
22
22
  agents: {
23
23
  createAgent: FunctionReference<"mutation", "internal", {
24
24
  apiKey: string;
25
+ appKey?: string;
25
26
  enabled?: boolean;
26
27
  name: string;
27
28
  rateLimit?: number;
@@ -30,6 +31,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
30
31
  }, Name>;
31
32
  listAgents: FunctionReference<"query", "internal", {}, Array<{
32
33
  _id: string;
34
+ appKey?: string;
33
35
  createdAt: number;
34
36
  enabled: boolean;
35
37
  lastUsed?: number;
@@ -42,12 +44,27 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
42
44
  }, null, Name>;
43
45
  updateAgent: FunctionReference<"mutation", "internal", {
44
46
  agentId: string;
47
+ appKey?: string;
45
48
  enabled?: boolean;
46
49
  name?: string;
47
50
  rateLimit?: number;
48
51
  }, null, Name>;
49
52
  };
50
53
  gateway: {
54
+ authorizeByAppKey: FunctionReference<"mutation", "internal", {
55
+ appKey: string;
56
+ estimatedCost?: number;
57
+ functionKey: string;
58
+ }, {
59
+ agentId: string;
60
+ authorized: true;
61
+ } | {
62
+ agentId?: string;
63
+ authorized: false;
64
+ error: string;
65
+ retryAfterSeconds?: number;
66
+ statusCode: number;
67
+ }, Name>;
51
68
  authorizeRequest: FunctionReference<"mutation", "internal", {
52
69
  apiKey: string;
53
70
  estimatedCost?: number;
@@ -69,12 +86,14 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
69
86
  error?: string;
70
87
  functionKey: string;
71
88
  result?: any;
89
+ serviceId?: string;
72
90
  timestamp: number;
73
91
  }, null, Name>;
74
92
  queryAccessLog: FunctionReference<"query", "internal", {
75
93
  agentId?: string;
76
94
  functionKey?: string;
77
95
  limit?: number;
96
+ serviceId?: string;
78
97
  }, Array<{
79
98
  _id: string;
80
99
  agentId: string;
@@ -83,6 +102,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
83
102
  error?: string;
84
103
  functionKey: string;
85
104
  result?: any;
105
+ serviceId?: string;
86
106
  timestamp: number;
87
107
  }>, Name>;
88
108
  };
@@ -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":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,IAC3E;IACE,MAAM,EAAE;QACN,WAAW,EAAE,iBAAiB,CAC5B,UAAU,EACV,UAAU,EACV;YACE,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EACD;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EACnB,IAAI,CACL,CAAC;QACF,UAAU,EAAE,iBAAiB,CAC3B,OAAO,EACP,UAAU,EACV,EAAE,EACF,KAAK,CAAC;YACJ,GAAG,EAAE,MAAM,CAAC;YACZ,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,EACF,IAAI,CACL,CAAC;QACF,YAAY,EAAE,iBAAiB,CAC7B,UAAU,EACV,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,EACtC,IAAI,EACJ,IAAI,CACL,CAAC;QACF,WAAW,EAAE,iBAAiB,CAC5B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EACD,IAAI,EACJ,IAAI,CACL,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,iBAAiB,EAAE,iBAAiB,CAClC,UAAU,EACV,UAAU,EACV;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAC7D;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,IAAI,CAAA;SAAE,GACrC;YACE,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,KAAK,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC;SACpB,EACH,IAAI,CACL,CAAC;QACF,gBAAgB,EAAE,iBAAiB,CACjC,UAAU,EACV,UAAU,EACV;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAC7D;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,IAAI,CAAA;SAAE,GACrC;YACE,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,KAAK,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC;SACpB,EACH,IAAI,CACL,CAAC;QACF,SAAS,EAAE,iBAAiB,CAC1B,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC;YACV,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,CAAC,EAAE,GAAG,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,EACD,IAAI,EACJ,IAAI,CACL,CAAC;QACF,cAAc,EAAE,iBAAiB,CAC/B,OAAO,EACP,UAAU,EACV;YACE,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EACD,KAAK,CAAC;YACJ,GAAG,EAAE,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC;YACV,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,CAAC,EAAE,GAAG,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,EACF,IAAI,CACL,CAAC;KACH,CAAC;IACF,WAAW,EAAE;QACX,oBAAoB,EAAE,iBAAiB,CACrC,OAAO,EACP,UAAU,EACV;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,EACnB,KAAK,CAAC;YACJ,eAAe,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;YAC9C,eAAe,CAAC,EAAE;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YACpE,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,EACF,IAAI,CACL,CAAC;QACF,qBAAqB,EAAE,iBAAiB,CACtC,OAAO,EACP,UAAU,EACV,EAAE,EACF,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,eAAe,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,EAClE,IAAI,CACL,CAAC;QACF,mBAAmB,EAAE,iBAAiB,CACpC,UAAU,EACV,UAAU,EACV;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC;gBACX,OAAO,EAAE,MAAM,CAAC;gBAChB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;gBAC9C,eAAe,CAAC,EAAE;oBAAE,eAAe,EAAE,MAAM,CAAC;oBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAC;aACrE,CAAC,CAAC;SACJ,EACD,MAAM,EACN,IAAI,CACL,CAAC;QACF,oBAAoB,EAAE,iBAAiB,CACrC,UAAU,EACV,UAAU,EACV;YACE,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,SAAS,EAAE,KAAK,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC;gBACjB,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,GAAG,EAAE,MAAM,CAAC;aACb,CAAC,CAAC;SACJ,EACD,MAAM,EACN,IAAI,CACL,CAAC;KACH,CAAC;CACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Doc } from "./_generated/dataModel.js";
2
2
  export type PermissionType = "allow" | "deny" | "rate_limited";
3
3
  export declare function hashApiKey(apiKey: string): Promise<string>;
4
+ export declare function normalizeAppKey(appKey: string): string;
4
5
  export declare function matchesPattern(functionKey: string, pattern: string): boolean;
5
6
  export declare function patternSpecificity(pattern: string): number;
6
7
  export declare function findBestPermissionMatch(functionKey: string, permissions: Array<Doc<"agentPermissions">>): Doc<"agentPermissions"> | null;
@@ -1 +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"}
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,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;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"}
@@ -6,6 +6,9 @@ export async function hashApiKey(apiKey) {
6
6
  .map((byte) => byte.toString(16).padStart(2, "0"))
7
7
  .join("");
8
8
  }
9
+ export function normalizeAppKey(appKey) {
10
+ return appKey.trim().toLowerCase();
11
+ }
9
12
  export function matchesPattern(functionKey, pattern) {
10
13
  if (pattern === "*") {
11
14
  return true;
@@ -1 +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"}
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,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACrC,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"}
@@ -1,8 +1,9 @@
1
1
  export declare const createAgent: import("convex/server").RegisteredMutation<"public", {
2
+ appKey?: string | undefined;
2
3
  enabled?: boolean | undefined;
3
4
  rateLimit?: number | undefined;
4
- apiKey: string;
5
5
  name: string;
6
+ apiKey: string;
6
7
  }, Promise<{
7
8
  agentId: import("convex/values").GenericId<"agents">;
8
9
  }>>;
@@ -11,14 +12,16 @@ export declare const rotateApiKey: import("convex/server").RegisteredMutation<"p
11
12
  newApiKey: string;
12
13
  }, Promise<null>>;
13
14
  export declare const updateAgent: import("convex/server").RegisteredMutation<"public", {
14
- enabled?: boolean | undefined;
15
15
  name?: string | undefined;
16
+ appKey?: string | undefined;
17
+ enabled?: boolean | undefined;
16
18
  rateLimit?: number | undefined;
17
19
  agentId: import("convex/values").GenericId<"agents">;
18
20
  }, Promise<null>>;
19
21
  export declare const listAgents: import("convex/server").RegisteredQuery<"public", {}, Promise<{
20
22
  _id: import("convex/values").GenericId<"agents">;
21
23
  name: string;
24
+ appKey: string | undefined;
22
25
  enabled: boolean;
23
26
  rateLimit: number;
24
27
  lastUsed: number | undefined;
@@ -1 +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"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/component/agents.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;;GA8CtB,CAAC;AAEH,eAAO,MAAM,YAAY;;;iBAmBvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;iBAqCtB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;KAyBrB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { v } from "convex/values";
2
2
  import { mutation, query } from "./_generated/server.js";
3
- import { hashApiKey } from "./agentBridgeUtils.js";
3
+ import { hashApiKey, normalizeAppKey } from "./agentBridgeUtils.js";
4
4
  export const createAgent = mutation({
5
5
  args: {
6
6
  name: v.string(),
7
+ appKey: v.optional(v.string()),
7
8
  apiKey: v.string(),
8
9
  enabled: v.optional(v.boolean()),
9
10
  rateLimit: v.optional(v.number()),
@@ -12,6 +13,18 @@ export const createAgent = mutation({
12
13
  agentId: v.id("agents"),
13
14
  }),
14
15
  handler: async (ctx, args) => {
16
+ const normalizedAppKey = args.appKey
17
+ ? normalizeAppKey(args.appKey)
18
+ : undefined;
19
+ if (normalizedAppKey) {
20
+ const existingByAppKey = await ctx.db
21
+ .query("agents")
22
+ .withIndex("by_appKey", (q) => q.eq("appKey", normalizedAppKey))
23
+ .unique();
24
+ if (existingByAppKey) {
25
+ throw new Error("An agent with this app key already exists");
26
+ }
27
+ }
15
28
  const apiKeyHash = await hashApiKey(args.apiKey);
16
29
  const existing = await ctx.db
17
30
  .query("agents")
@@ -22,6 +35,7 @@ export const createAgent = mutation({
22
35
  }
23
36
  const agentId = await ctx.db.insert("agents", {
24
37
  name: args.name,
38
+ appKey: normalizedAppKey,
25
39
  apiKeyHash,
26
40
  enabled: args.enabled ?? true,
27
41
  rateLimit: args.rateLimit ?? 1000,
@@ -52,6 +66,7 @@ export const updateAgent = mutation({
52
66
  args: {
53
67
  agentId: v.id("agents"),
54
68
  name: v.optional(v.string()),
69
+ appKey: v.optional(v.string()),
55
70
  enabled: v.optional(v.boolean()),
56
71
  rateLimit: v.optional(v.number()),
57
72
  },
@@ -61,8 +76,21 @@ export const updateAgent = mutation({
61
76
  if (!agent) {
62
77
  throw new Error("Agent not found");
63
78
  }
79
+ const normalizedAppKey = args.appKey
80
+ ? normalizeAppKey(args.appKey)
81
+ : undefined;
82
+ if (normalizedAppKey) {
83
+ const existingByAppKey = await ctx.db
84
+ .query("agents")
85
+ .withIndex("by_appKey", (q) => q.eq("appKey", normalizedAppKey))
86
+ .unique();
87
+ if (existingByAppKey && existingByAppKey._id !== args.agentId) {
88
+ throw new Error("An agent with this app key already exists");
89
+ }
90
+ }
64
91
  await ctx.db.patch(args.agentId, {
65
92
  name: args.name ?? agent.name,
93
+ appKey: normalizedAppKey ?? agent.appKey,
66
94
  enabled: args.enabled ?? agent.enabled,
67
95
  rateLimit: args.rateLimit ?? agent.rateLimit,
68
96
  });
@@ -74,6 +102,7 @@ export const listAgents = query({
74
102
  returns: v.array(v.object({
75
103
  _id: v.id("agents"),
76
104
  name: v.string(),
105
+ appKey: v.optional(v.string()),
77
106
  enabled: v.boolean(),
78
107
  rateLimit: v.number(),
79
108
  lastUsed: v.optional(v.number()),
@@ -84,6 +113,7 @@ export const listAgents = query({
84
113
  return agents.map((agent) => ({
85
114
  _id: agent._id,
86
115
  name: agent.name,
116
+ appKey: agent.appKey,
87
117
  enabled: agent.enabled,
88
118
  rateLimit: agent.rateLimit,
89
119
  lastUsed: agent.lastUsed,
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/component/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/component/agents.ts"],"names":[],"mappings":"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"}