@adonis-agora/agent 0.4.1 → 0.6.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/CHANGELOG.md +64 -0
  2. package/dist/providers/agent_provider.d.ts +10 -3
  3. package/dist/providers/agent_provider.d.ts.map +1 -1
  4. package/dist/providers/agent_provider.js +188 -36
  5. package/dist/providers/agent_provider.js.map +1 -1
  6. package/dist/src/agent-service.d.ts +4 -0
  7. package/dist/src/agent-service.d.ts.map +1 -1
  8. package/dist/src/agent-service.js +8 -0
  9. package/dist/src/agent-service.js.map +1 -1
  10. package/dist/src/define_config.d.ts +16 -0
  11. package/dist/src/define_config.d.ts.map +1 -1
  12. package/dist/src/define_config.js.map +1 -1
  13. package/dist/src/governance-gate.d.ts +31 -0
  14. package/dist/src/governance-gate.d.ts.map +1 -0
  15. package/dist/src/governance-gate.js +25 -0
  16. package/dist/src/governance-gate.js.map +1 -0
  17. package/dist/src/index.d.ts +5 -1
  18. package/dist/src/index.d.ts.map +1 -1
  19. package/dist/src/index.js +3 -1
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/ownership.d.ts +21 -0
  22. package/dist/src/ownership.d.ts.map +1 -0
  23. package/dist/src/ownership.js +22 -0
  24. package/dist/src/ownership.js.map +1 -0
  25. package/dist/src/spi/agent-store.d.ts +13 -0
  26. package/dist/src/spi/agent-store.d.ts.map +1 -1
  27. package/dist/src/stores/lucid.d.ts +2 -0
  28. package/dist/src/stores/lucid.d.ts.map +1 -1
  29. package/dist/src/stores/lucid.js +18 -0
  30. package/dist/src/stores/lucid.js.map +1 -1
  31. package/dist/src/testing/in-memory-store.d.ts +2 -0
  32. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  33. package/dist/src/testing/in-memory-store.js +6 -0
  34. package/dist/src/testing/in-memory-store.js.map +1 -1
  35. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # @adonis-agora/agent
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#17](https://github.com/DavideCarvalho/adonis-agent/pull/17) [`ea6122f`](https://github.com/DavideCarvalho/adonis-agent/commit/ea6122f468f5308d3506461fb2bd2d7fc3159ef5) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Owner-scope the per-actor run/thread routes (object-level authorization)
8
+
9
+ Follows up `0.5.0` (which authenticated these routes) by adding the ownership check: authentication
10
+ alone let any authenticated caller act on ANOTHER actor's run/thread by id. Now a caller may act only
11
+ on runs/threads it OWNS, unless it is governance-privileged.
12
+
13
+ - **Run routes** — `GET /agent/chat/:runId/stream`, `POST /agent/chat/:runId/cancel`,
14
+ `POST /agent/tool-call/approve`, `POST /agent/tool-call/reject` — now assert the resolved actor owns
15
+ the run (the run's `actor_ref`, recorded as the loop's first step). A non-owner gets `403`; an
16
+ unknown run gets `404` (so an id the caller doesn't own is never confirmed).
17
+ - **Thread routes** — `GET /agent/threads/:id`, `DELETE /agent/threads/:id`,
18
+ `POST /agent/threads/:id/fork-from/:messageId`, and `POST /agent/chat` when it continues an existing
19
+ thread (`body.threadId`) — now assert the actor owns the thread. The chat case is the important one:
20
+ without it an authenticated caller could pass another actor's `threadId` to load that thread's full
21
+ history into the model (and read it back over SSE) and append its own turn into the victim's thread.
22
+ - **Cross-actor override.** A caller that passes `governanceAuthorize` (the app's "may act across
23
+ actors" seam, typically an ADMIN check) may act on any run/thread. With no `governanceAuthorize`
24
+ configured, ownership is strict — no cross-actor access.
25
+
26
+ New `AgentStore` SPI methods back the checks: **`getRunActorRef(runId)`** and
27
+ **`getThreadActorRef(threadId)`** (both return the owning `actor_ref` or `null`), implemented on the
28
+ Lucid and in-memory stores. A custom `AgentStore` implementation must add them. Also exposes the
29
+ router-free `evaluateOwnership` helper and the `OwnershipVerdict` type, and `AgentService.runOwner` /
30
+ `AgentService.threadOwner` passthroughs.
31
+
32
+ ## 0.5.0
33
+
34
+ ### Minor Changes
35
+
36
+ - [#14](https://github.com/DavideCarvalho/adonis-agent/pull/14) [`5de6247`](https://github.com/DavideCarvalho/adonis-agent/commit/5de6247c95a1f92fc92ba89bd1eaa2e89d0ba4ba) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Authenticate the mutation/lifecycle routes and gate the cross-actor governance read-model
37
+
38
+ Closes a privilege gap surfaced the first time the routes were mounted behind a real app's
39
+ auth. Previously several `/agent/*` routes were reachable without resolving an actor, and the
40
+ `/agent/governance/*` read-model was readable by any authenticated caller regardless of role.
41
+
42
+ - **Every `/agent/*` route now resolves the actor (401 on failure).** `chat/:runId/stream`,
43
+ `chat/:runId/cancel`, `tool-call/approve`, `tool-call/reject`, `threads/personas/catalog`,
44
+ `threads/:id` (GET/DELETE), and `threads/:id/fork-from/:messageId` previously ran with no
45
+ actor resolution — an anonymous same-origin request could re-attach a run's token stream,
46
+ cancel a run, or deliver a HITL approve/reject decision. They now go through the same resolver
47
+ (and 401) as `chat`/`threads`/`quota`. The stream route authenticates via the request's
48
+ session/cookies, so an `EventSource` re-attach still works. Apps that configured an
49
+ `actorResolver` (the norm) are unaffected on legitimate calls; an app with no resolver now
50
+ correctly 401s these routes instead of serving them anonymously.
51
+
52
+ - **New `governanceAuthorize?: (actor, ctx) => boolean | Promise<boolean>` config option.** When
53
+ set, each `/agent/governance/*` route runs it after resolving the actor and replies `403` on
54
+ deny (fail-closed if it throws) — so the platform-wide spend/usage/threads/approvals read-model
55
+ can be restricted (typically ADMIN-only). Omitted, governance stays readable by any resolved
56
+ actor (the historical behavior). Mirrors `@adonis-agora/agent-dashboard`'s `authorize` hook so
57
+ the JSON routes and the console SPA can be gated with the same predicate. Exposed as
58
+ `evaluateGovernanceGate` (a router-free, unit-tested helper) and the `AgentGovernanceAuthorize`
59
+ / `GovernanceGateVerdict` types.
60
+
61
+ - **New `GET /agent/approvals/mine` route.** Returns the calling actor's OWN pending HITL
62
+ approvals (`pendingApprovals({ actor })`, filtered by the owning run's `actor_ref`). It is
63
+ mounted with the governance read-model but is NOT behind `governanceAuthorize`, so a non-admin
64
+ surface (e.g. a coordinator's chat) can poll its own suspended tool calls even while the
65
+ cross-actor `governance/approvals/pending` inbox is ADMIN-only.
66
+
3
67
  ## 0.4.1
4
68
 
5
69
  ### Patch Changes
@@ -6,9 +6,16 @@ import type { ApplicationService } from '@adonisjs/core/types';
6
6
  * - `boot()` discovers tools (the generated `hooks/tools` barrel first, then an `app/agent_tools`
7
7
  * readdir fallback), registers config-level functional tools and synthesizes `agent`-kind delegate
8
8
  * tools for `delegatesTo` edges, builds the runtime graph (store/sink/quota/authorizer/actor-resolver
9
- * → deps factory → the inline runner → the `AgentService` facade), and mounts the eleven `/agent`
10
- * routes under `config.path` — plus an optional twelfth `POST /agent/attachments` upload route when
11
- * `attachmentStaging` is configured.
9
+ * → deps factory → the inline runner → the `AgentService` facade), and mounts the `/agent` routes
10
+ * under `config.path` — plus optional routes (`POST /agent/attachments` when `attachmentStaging` is
11
+ * configured; the `/agent/governance/*` read-model and `/agent/approvals/mine` when `governanceQueries`
12
+ * is configured).
13
+ *
14
+ * Every route resolves the acting actor (401 if it can't). Run/thread routes (stream re-attach,
15
+ * cancel, tool-call approve/reject, `threads/:id` read/delete/fork) are additionally owner-scoped:
16
+ * a caller may act only on runs/threads it owns, unless it is governance-privileged (`governanceAuthorize`).
17
+ * The cross-actor `/agent/governance/*` read-model is gated by `governanceAuthorize`; `approvals/mine`
18
+ * is always scoped to the caller's own pending approvals.
12
19
  *
13
20
  * The selected store (`lucid`/`memory`) is built lazily from the config so its peer (`@adonisjs/lucid`)
14
21
  * loads only when chosen. Agent lifecycle events are emitted structurally by core onto the
@@ -1 +1 @@
1
- {"version":3,"file":"agent_provider.d.ts","sourceRoot":"","sources":["../../providers/agent_provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA2D/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;;IAKpB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAgBF,IAAI;IAoEJ,QAAQ;CAqdf"}
1
+ {"version":3,"file":"agent_provider.d.ts","sourceRoot":"","sources":["../../providers/agent_provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA+D/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;;IAKpB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAgBF,IAAI;IA2EJ,QAAQ;CAqmBf"}
@@ -1,5 +1,5 @@
1
1
  import { pathToFileURL } from 'node:url';
2
- import { AgentDepsFactory, AgentRegistry, AgentService, DefaultToolAuthorizer, InProcessTokenStreamSink, InlineAgentRunner, ToolRegistry, UnconfiguredActorResolver, discoverTools, governanceQueries as governanceQueriesFactories, lucidStoreConnection, pricingStores, registerDelegateTools, registerFunctionalTool, registerToolsFromBarrel, } from '../src/index.js';
2
+ import { AgentDepsFactory, AgentRegistry, AgentService, DefaultToolAuthorizer, InProcessTokenStreamSink, InlineAgentRunner, ToolRegistry, UnconfiguredActorResolver, discoverTools, evaluateGovernanceGate, evaluateOwnership, governanceQueries as governanceQueriesFactories, lucidStoreConnection, pricingStores, registerDelegateTools, registerFunctionalTool, registerToolsFromBarrel, } from '../src/index.js';
3
3
  /** Default per-file size cap when `attachmentMaxBytes` is omitted (20 MiB). */
4
4
  const DEFAULT_MAX_ATTACHMENT_BYTES = 20 * 1024 * 1024;
5
5
  /** Default allowlist: what multimodal model providers commonly accept as native image/file parts. */
@@ -19,9 +19,16 @@ const DEFAULT_ALLOWED_ATTACHMENT_CONTENT_TYPES = [
19
19
  * - `boot()` discovers tools (the generated `hooks/tools` barrel first, then an `app/agent_tools`
20
20
  * readdir fallback), registers config-level functional tools and synthesizes `agent`-kind delegate
21
21
  * tools for `delegatesTo` edges, builds the runtime graph (store/sink/quota/authorizer/actor-resolver
22
- * → deps factory → the inline runner → the `AgentService` facade), and mounts the eleven `/agent`
23
- * routes under `config.path` — plus an optional twelfth `POST /agent/attachments` upload route when
24
- * `attachmentStaging` is configured.
22
+ * → deps factory → the inline runner → the `AgentService` facade), and mounts the `/agent` routes
23
+ * under `config.path` — plus optional routes (`POST /agent/attachments` when `attachmentStaging` is
24
+ * configured; the `/agent/governance/*` read-model and `/agent/approvals/mine` when `governanceQueries`
25
+ * is configured).
26
+ *
27
+ * Every route resolves the acting actor (401 if it can't). Run/thread routes (stream re-attach,
28
+ * cancel, tool-call approve/reject, `threads/:id` read/delete/fork) are additionally owner-scoped:
29
+ * a caller may act only on runs/threads it owns, unless it is governance-privileged (`governanceAuthorize`).
30
+ * The cross-actor `/agent/governance/*` read-model is gated by `governanceAuthorize`; `approvals/mine`
31
+ * is always scoped to the caller's own pending approvals.
25
32
  *
26
33
  * The selected store (`lucid`/`memory`) is built lazily from the config so its peer (`@adonisjs/lucid`)
27
34
  * loads only when chosen. Agent lifecycle events are emitted structurally by core onto the
@@ -111,7 +118,7 @@ export default class AgentProvider {
111
118
  : new InlineAgentRunner(factory, store);
112
119
  const service = new AgentService(runner, store, factory);
113
120
  this.app.container.bindValue(AgentService, service);
114
- await this.#registerRoutes(config, service, actorResolver, attachmentStaging, governance);
121
+ await this.#registerRoutes(config, service, actorResolver, attachmentStaging, governance, config.governanceAuthorize);
115
122
  }
116
123
  async shutdown() {
117
124
  // The Lucid store shares the app's `db` (it owns no connection to close); the in-process sink
@@ -261,16 +268,25 @@ export default class AgentProvider {
261
268
  }
262
269
  }
263
270
  // ── routes ────────────────────────────────────────────────────────────────
264
- async #registerRoutes(config, service, actorResolver, attachmentStaging, governance) {
271
+ async #registerRoutes(config, service, actorResolver, attachmentStaging, governance, governanceAuthorize) {
265
272
  const router = await this.app.container.make('router');
266
273
  const path = (config.path ?? 'agent').replace(/^\/+|\/+$/g, '');
267
274
  const p = (suffix) => `${path}/${suffix}`;
268
- // 1. POST /agent/chat — resolve actor, start the run, SSE-pipe the token stream.
275
+ // 1. POST /agent/chat — resolve actor, start the run, SSE-pipe the token stream. When the caller
276
+ // continues an EXISTING thread (`body.threadId`), it must own it: otherwise an authenticated caller
277
+ // could pass another actor's threadId to load that thread's full history into the model (read it
278
+ // back over SSE) and append its own turn into the victim's thread. A new-thread chat (no threadId)
279
+ // has no owner to check. Owner-scoped exactly like the `threads/:id` routes.
269
280
  router.post(p('chat'), async (ctx) => {
270
281
  const actor = await this.#resolveActor(ctx, actorResolver);
271
282
  if (actor === null)
272
283
  return;
273
284
  const body = (ctx.request.body() ?? {});
285
+ if (body.threadId !== undefined) {
286
+ const owner = await service.threadOwner(body.threadId);
287
+ if (!(await this.#assertOwner(ctx, actor, owner, 'thread', governanceAuthorize)))
288
+ return;
289
+ }
274
290
  const { runId, threadId } = await service.chat({
275
291
  actor,
276
292
  message: body.message,
@@ -282,24 +298,55 @@ export default class AgentProvider {
282
298
  });
283
299
  await this.#pipe(ctx, service, runId, threadId);
284
300
  });
285
- // 2. GET /agent/chat/:runId/stream — re-attach SSE.
301
+ // 2. GET /agent/chat/:runId/stream — re-attach SSE. Authenticated: the actor resolver reads the
302
+ // request's session/cookies (an EventSource can't set headers), 401 on failure — so an anonymous
303
+ // caller can never re-attach to a run's live token stream.
286
304
  router.get(p('chat/:runId/stream'), async (ctx) => {
287
- await this.#pipe(ctx, service, String(ctx.params.runId));
305
+ const actor = await this.#resolveActor(ctx, actorResolver);
306
+ if (actor === null)
307
+ return;
308
+ const runId = String(ctx.params.runId);
309
+ const owner = await service.runOwner(runId);
310
+ if (!(await this.#assertOwner(ctx, actor, owner, 'run', governanceAuthorize)))
311
+ return;
312
+ await this.#pipe(ctx, service, runId);
288
313
  });
289
- // 3. POST /agent/chat/:runId/cancel.
314
+ // 3. POST /agent/chat/:runId/cancel — authenticated + owner-scoped (a caller cancels only its own
315
+ // runs, unless governance-privileged).
290
316
  router.post(p('chat/:runId/cancel'), async (ctx) => {
291
- await service.cancel(String(ctx.params.runId));
317
+ const actor = await this.#resolveActor(ctx, actorResolver);
318
+ if (actor === null)
319
+ return;
320
+ const runId = String(ctx.params.runId);
321
+ const owner = await service.runOwner(runId);
322
+ if (!(await this.#assertOwner(ctx, actor, owner, 'run', governanceAuthorize)))
323
+ return;
324
+ await service.cancel(runId);
292
325
  return ctx.response.json({ aborted: true });
293
326
  });
294
- // 4. POST /agent/tool-call/approve.
327
+ // 4. POST /agent/tool-call/approve — authenticated + owner-scoped. Delivering a HITL decision is a
328
+ // privileged control: only the actor that OWNS the run (or a governance-privileged actor) may
329
+ // approve its pending tool call — an authenticated non-owner who learns a runId/toolCallId cannot.
295
330
  router.post(p('tool-call/approve'), async (ctx) => {
331
+ const actor = await this.#resolveActor(ctx, actorResolver);
332
+ if (actor === null)
333
+ return;
296
334
  const body = (ctx.request.body() ?? {});
335
+ const owner = await service.runOwner(body.runId);
336
+ if (!(await this.#assertOwner(ctx, actor, owner, 'run', governanceAuthorize)))
337
+ return;
297
338
  await service.approve(body.runId, body.toolCallId);
298
339
  return ctx.response.json({ ok: true });
299
340
  });
300
- // 5. POST /agent/tool-call/reject.
341
+ // 5. POST /agent/tool-call/reject — authenticated + owner-scoped (mirrors approve).
301
342
  router.post(p('tool-call/reject'), async (ctx) => {
343
+ const actor = await this.#resolveActor(ctx, actorResolver);
344
+ if (actor === null)
345
+ return;
302
346
  const body = (ctx.request.body() ?? {});
347
+ const owner = await service.runOwner(body.runId);
348
+ if (!(await this.#assertOwner(ctx, actor, owner, 'run', governanceAuthorize)))
349
+ return;
303
350
  await service.reject(body.runId, body.toolCallId, body.reason);
304
351
  return ctx.response.json({ ok: true });
305
352
  });
@@ -311,21 +358,47 @@ export default class AgentProvider {
311
358
  return ctx.response.json(await service.listThreads(actor.id));
312
359
  });
313
360
  // 7. GET /agent/threads/personas/catalog (before :id so it isn't captured by the param).
361
+ // Authenticated — an anonymous caller reads nothing from the agent surface.
314
362
  router.get(p('threads/personas/catalog'), async (ctx) => {
363
+ const actor = await this.#resolveActor(ctx, actorResolver);
364
+ if (actor === null)
365
+ return;
315
366
  return ctx.response.json(service.personaCatalog());
316
367
  });
317
- // 8. GET /agent/threads/:id — detail or null.
368
+ // 8. GET /agent/threads/:id — detail or null. Authenticated + owner-scoped (a caller reads only its
369
+ // own threads, unless governance-privileged).
318
370
  router.get(p('threads/:id'), async (ctx) => {
319
- return ctx.response.json(await service.getThread(String(ctx.params.id)));
371
+ const actor = await this.#resolveActor(ctx, actorResolver);
372
+ if (actor === null)
373
+ return;
374
+ const threadId = String(ctx.params.id);
375
+ const owner = await service.threadOwner(threadId);
376
+ if (!(await this.#assertOwner(ctx, actor, owner, 'thread', governanceAuthorize)))
377
+ return;
378
+ return ctx.response.json(await service.getThread(threadId));
320
379
  });
321
- // 9. DELETE /agent/threads/:id.
380
+ // 9. DELETE /agent/threads/:id. Authenticated + owner-scoped.
322
381
  router.delete(p('threads/:id'), async (ctx) => {
323
- await service.deleteThread(String(ctx.params.id));
382
+ const actor = await this.#resolveActor(ctx, actorResolver);
383
+ if (actor === null)
384
+ return;
385
+ const threadId = String(ctx.params.id);
386
+ const owner = await service.threadOwner(threadId);
387
+ if (!(await this.#assertOwner(ctx, actor, owner, 'thread', governanceAuthorize)))
388
+ return;
389
+ await service.deleteThread(threadId);
324
390
  return ctx.response.json({ ok: true });
325
391
  });
326
- // 10. POST /agent/threads/:id/fork-from/:messageId.
392
+ // 10. POST /agent/threads/:id/fork-from/:messageId. Authenticated + owner-scoped.
327
393
  router.post(p('threads/:id/fork-from/:messageId'), async (ctx) => {
328
- return ctx.response.json(await service.forkThread(String(ctx.params.id), String(ctx.params.messageId)));
394
+ const actor = await this.#resolveActor(ctx, actorResolver);
395
+ if (actor === null)
396
+ return;
397
+ const threadId = String(ctx.params.id);
398
+ const owner = await service.threadOwner(threadId);
399
+ if (!(await this.#assertOwner(ctx, actor, owner, 'thread', governanceAuthorize)))
400
+ return;
401
+ return ctx.response.json(await service.forkThread(threadId, String(ctx.params.messageId)));
329
402
  });
330
403
  // 11. GET /agent/quota/today.
331
404
  router.get(p('quota/today'), async (ctx) => {
@@ -375,9 +448,37 @@ export default class AgentProvider {
375
448
  return ctx.response.json(attachment);
376
449
  });
377
450
  }
451
+ // The cross-actor governance read-model is mounted (often by default, when the main store is
452
+ // Lucid) but no authorization gate was configured — so every authenticated actor can read the
453
+ // platform-wide spend/usage/threads/approvals. Nudge the app to gate it (typically ADMIN-only).
454
+ if (governance !== undefined && governanceAuthorize === undefined) {
455
+ console.warn('[@adonis-agora/agent] `/agent/governance/*` is mounted without a `governanceAuthorize` gate — the cross-actor spend/usage/approvals read-model is readable by ANY authenticated actor. Set `governanceAuthorize` in config/agent.ts (e.g. an ADMIN check) to restrict it.');
456
+ }
457
+ // ── Per-actor approvals inbox. Mounted with the governance read-model (it reads the same store),
458
+ // but NOT behind `governanceAuthorize`: it is ALWAYS scoped to the calling actor's OWN pending
459
+ // approvals (`pendingApprovals({ actor })` filters by the owning run's `actor_ref`). This is the
460
+ // route a non-admin surface (e.g. a coordinator's chat) polls to discover its own suspended
461
+ // tool calls, even when the cross-actor governance read-model below is ADMIN-only.
462
+ if (governance !== undefined) {
463
+ const gov = governance;
464
+ const limitFor = (ctx) => {
465
+ const raw = Number.parseInt(String(ctx.request.input('limit', '50')), 10);
466
+ const value = Number.isFinite(raw) && raw > 0 ? raw : 50;
467
+ return Math.min(value, 200);
468
+ };
469
+ // GET /agent/approvals/mine — the authenticated actor's own pending HITL approvals, oldest first.
470
+ router.get(p('approvals/mine'), async (ctx) => {
471
+ const actor = await this.#resolveActor(ctx, actorResolver);
472
+ if (actor === null)
473
+ return;
474
+ return ctx.response.json(await gov.pendingApprovals({ limit: limitFor(ctx), actor: actor.id }));
475
+ });
476
+ }
378
477
  // ── OPTIONAL governance read routes. Mounted only when `governanceQueries` is configured, so an
379
- // app without it never exposes the cost/usage read-model. All read-only (GET) and authenticated
380
- // (actor resolved via the shared resolver — governance is cross-actor data). `from`/`to` are
478
+ // app without it never exposes the cost/usage read-model. All read-only (GET). Each route resolves
479
+ // the actor (401 on failure) and then runs the optional `governanceAuthorize` gate (403 on deny)
480
+ // via `#resolveGovernanceActor` — governance is cross-actor data, so an app can restrict it (e.g.
481
+ // ADMIN-only) without also locking the per-actor `approvals/mine` route above. `from`/`to` are
381
482
  // inclusive UTC days (`YYYY-MM-DD`), defaulting to today; `limit` defaults to 50, clamped to 200
382
483
  // (mirroring the dashboard's own clamp).
383
484
  if (governance !== undefined) {
@@ -396,41 +497,41 @@ export default class AgentProvider {
396
497
  };
397
498
  // GET /agent/governance/spend/model — per-model token + cost rollup over the range.
398
499
  router.get(g('spend/model'), async (ctx) => {
399
- const actor = await this.#resolveActor(ctx, actorResolver);
500
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
400
501
  if (actor === null)
401
502
  return;
402
503
  return ctx.response.json(await gov.spendByModel(range(ctx)));
403
504
  });
404
505
  // GET /agent/governance/spend/actor — per-actor token + cost rollup over the range.
405
506
  router.get(g('spend/actor'), async (ctx) => {
406
- const actor = await this.#resolveActor(ctx, actorResolver);
507
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
407
508
  if (actor === null)
408
509
  return;
409
510
  return ctx.response.json(await gov.spendByActor(range(ctx)));
410
511
  });
411
512
  // GET /agent/governance/usage/trend — the daily token + cost trend over the range.
412
513
  router.get(g('usage/trend'), async (ctx) => {
413
- const actor = await this.#resolveActor(ctx, actorResolver);
514
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
414
515
  if (actor === null)
415
516
  return;
416
517
  return ctx.response.json(await gov.usageTrend(range(ctx)));
417
518
  });
418
519
  // GET /agent/governance/tool-calls/recent — newest-first recent tool-call activity feed.
419
520
  router.get(g('tool-calls/recent'), async (ctx) => {
420
- const actor = await this.#resolveActor(ctx, actorResolver);
521
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
421
522
  if (actor === null)
422
523
  return;
423
524
  return ctx.response.json(await gov.recentToolCalls(limitOf(ctx)));
424
525
  });
425
526
  // GET /agent/governance/threads/recent — newest-first recent thread activity feed.
426
527
  router.get(g('threads/recent'), async (ctx) => {
427
- const actor = await this.#resolveActor(ctx, actorResolver);
528
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
428
529
  if (actor === null)
429
530
  return;
430
531
  return ctx.response.json(await gov.recentThreads(limitOf(ctx)));
431
532
  });
432
- // ── Run lifecycle governance (the run tracking read-model). Same read-only + authenticated
433
- // envelope; the runs are cross-actor governance data.
533
+ // ── Run lifecycle governance (the run tracking read-model). Same read-only + authenticated +
534
+ // authorized envelope; the runs are cross-actor governance data.
434
535
  const optionalRange = (ctx) => {
435
536
  const from = ctx.request.input('from');
436
537
  const to = ctx.request.input('to');
@@ -442,7 +543,7 @@ export default class AgentProvider {
442
543
  // GET /agent/governance/runs — filterable, cursor-paginated run list, newest-first.
443
544
  // Query: actor?, agent?, status?, from?, to?, cursor?, limit?
444
545
  router.get(g('runs'), async (ctx) => {
445
- const actor = await this.#resolveActor(ctx, actorResolver);
546
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
446
547
  if (actor === null)
447
548
  return;
448
549
  const filterActor = ctx.request.input('actor');
@@ -463,14 +564,16 @@ export default class AgentProvider {
463
564
  // GET /agent/governance/runs/:id — one run's full trace (run + messages + tool calls +
464
565
  // approvals + usage), or null.
465
566
  router.get(g('runs/:id'), async (ctx) => {
466
- const actor = await this.#resolveActor(ctx, actorResolver);
567
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
467
568
  if (actor === null)
468
569
  return;
469
570
  return ctx.response.json(await gov.runDetail(String(ctx.params.id)));
470
571
  });
471
- // GET /agent/governance/approvals/pending — cross-thread HITL approvals inbox, oldest first.
572
+ // GET /agent/governance/approvals/pending — cross-actor HITL approvals inbox, oldest first. This
573
+ // is the platform-wide inbox (every actor's pending calls); it is governance-gated. A caller that
574
+ // only needs its OWN pending approvals uses `GET /agent/approvals/mine` instead.
472
575
  router.get(g('approvals/pending'), async (ctx) => {
473
- const actor = await this.#resolveActor(ctx, actorResolver);
576
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
474
577
  if (actor === null)
475
578
  return;
476
579
  const filterActor = ctx.request.input('actor');
@@ -481,24 +584,34 @@ export default class AgentProvider {
481
584
  });
482
585
  // GET /agent/governance/tools/stats — per-tool call/failure/rejection/latency rollup.
483
586
  router.get(g('tools/stats'), async (ctx) => {
484
- const actor = await this.#resolveActor(ctx, actorResolver);
587
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
485
588
  if (actor === null)
486
589
  return;
487
590
  return ctx.response.json(await gov.perToolStats(optionalRange(ctx)));
488
591
  });
489
592
  // GET /agent/governance/reliability — success/failure/cancel rates + mean settled duration.
490
593
  router.get(g('reliability'), async (ctx) => {
491
- const actor = await this.#resolveActor(ctx, actorResolver);
594
+ const actor = await this.#resolveGovernanceActor(ctx, actorResolver, governanceAuthorize);
492
595
  if (actor === null)
493
596
  return;
494
597
  return ctx.response.json(await gov.runReliability(optionalRange(ctx)));
495
598
  });
496
599
  }
497
600
  }
498
- /** Resolve the actor; on failure reply 401 and return `null` so the handler short-circuits. */
601
+ /**
602
+ * Resolve the actor; on failure reply 401 and return `null` so the handler short-circuits. A
603
+ * resolver is contracted to THROW when it can't establish an identity, but a misbehaving custom
604
+ * resolver that returns a nullish value instead is also treated as unauthorized (401) rather than
605
+ * letting `undefined`/`null` reach the service as a fabricated actor.
606
+ */
499
607
  async #resolveActor(ctx, actorResolver) {
500
608
  try {
501
- return await actorResolver.resolve(ctx);
609
+ const actor = await actorResolver.resolve(ctx);
610
+ if (actor === null || actor === undefined) {
611
+ ctx.response.status(401).json({ error: 'unauthorized' });
612
+ return null;
613
+ }
614
+ return actor;
502
615
  }
503
616
  catch (error) {
504
617
  ctx.response
@@ -507,6 +620,45 @@ export default class AgentProvider {
507
620
  return null;
508
621
  }
509
622
  }
623
+ /**
624
+ * Resolve the actor for a cross-actor governance route, then apply the optional `governanceAuthorize`
625
+ * gate. Replies `401` (unresolved actor) or `403` (gate denied/threw) and returns `null` so the
626
+ * handler short-circuits; otherwise returns the resolved actor. The gate decision itself lives in the
627
+ * router-free {@link evaluateGovernanceGate} so it can be unit tested.
628
+ */
629
+ async #resolveGovernanceActor(ctx, actorResolver, governanceAuthorize) {
630
+ const actor = await this.#resolveActor(ctx, actorResolver);
631
+ if (actor === null)
632
+ return null;
633
+ const verdict = await evaluateGovernanceGate(actor, ctx, governanceAuthorize);
634
+ if (!verdict.ok) {
635
+ ctx.response.status(verdict.status).json({ error: verdict.error });
636
+ return null;
637
+ }
638
+ return actor;
639
+ }
640
+ /**
641
+ * Object-level authorization: assert the already-resolved `actor` may act on a per-actor resource
642
+ * (a run or thread) whose owning ref is `ownerRef`. A caller may act on a resource it OWNS; a
643
+ * cross-actor caller is allowed only when it is governance-privileged (passes `governanceAuthorize`,
644
+ * the app's "may act across actors" seam — so with no gate configured, ownership is strict). Replies
645
+ * `404` (unknown resource — never confirms an id the caller doesn't own) or `403` (not owner, not
646
+ * privileged) and returns `false`; returns `true` to proceed. Decision core is the router-free
647
+ * {@link evaluateOwnership}.
648
+ */
649
+ async #assertOwner(ctx, actor, ownerRef, kind, governanceAuthorize) {
650
+ let privileged = false;
651
+ if (governanceAuthorize !== undefined) {
652
+ privileged = (await evaluateGovernanceGate(actor, ctx, governanceAuthorize)).ok;
653
+ }
654
+ const verdict = evaluateOwnership(actor.id, ownerRef, privileged);
655
+ if (!verdict.ok) {
656
+ const error = verdict.status === 404 ? `${kind} not found` : 'forbidden';
657
+ ctx.response.status(verdict.status).json({ error });
658
+ return false;
659
+ }
660
+ return true;
661
+ }
510
662
  /**
511
663
  * Pipe the run's live token stream to the client as SSE, reproducing the envelope byte-for-byte:
512
664
  * `event: meta` (runId/threadId) → `data: {"delta":...}` per chunk → `event: done`. Sets the
@@ -1 +1 @@
1
- {"version":3,"file":"agent_provider.js","sourceRoot":"","sources":["../../providers/agent_provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent_provider.js","sourceRoot":"","sources":["../../providers/agent_provider.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,10 @@ export declare class AgentService {
31
31
  threadId: string;
32
32
  }>;
33
33
  subscribe(runId: string): AsyncIterable<Uint8Array>;
34
+ /** The owning actor ref of a run (turn), or `null` if unknown — for per-actor route ownership checks. */
35
+ runOwner(runId: string): Promise<string | null>;
36
+ /** The owning actor ref of a thread, or `null` if unknown — for per-actor route ownership checks. */
37
+ threadOwner(threadId: string): Promise<string | null>;
34
38
  approve(runId: string, toolCallId: string): Promise<void>;
35
39
  reject(runId: string, toolCallId: string, reason?: string): Promise<void>;
36
40
  cancel(runId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../src/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,KAAK,EAEL,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,gBAAgB;IAGnC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B5E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IAInD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKpE,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAOnE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIvD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAGpE"}
1
+ {"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../src/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACV,KAAK,EAEL,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,gBAAgB;IAGnC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B5E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IAInD,yGAAyG;IACzG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI/C,qGAAqG;IACrG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIrD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAKpE,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAOnE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIvD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAGpE"}