@bevel-software/platform-core-backend 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-guide/access-control.md +49 -4
- package/agent-guide/html-views.md +76 -2
- package/dist/core/catalog-revision.js +3 -3
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +2 -1
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +7 -0
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +16 -3
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +1 -5
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access-model/index.d.ts +14 -0
- package/dist/modules/access-model/index.d.ts.map +1 -0
- package/dist/modules/access-model/index.js +13 -0
- package/dist/modules/access-model/index.js.map +1 -0
- package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
- package/dist/modules/audit/agent-audit.service.js +66 -6
- package/dist/modules/audit/agent-audit.service.js.map +1 -1
- package/dist/modules/audit/audit.contract.d.ts +52 -8
- package/dist/modules/audit/audit.contract.d.ts.map +1 -1
- package/dist/modules/audit/audit.contract.js +37 -1
- package/dist/modules/audit/audit.contract.js.map +1 -1
- package/dist/modules/audit/audit.routes.d.ts +1 -1
- package/dist/modules/audit/audit.routes.d.ts.map +1 -1
- package/dist/modules/audit/audit.routes.js +15 -13
- package/dist/modules/audit/audit.routes.js.map +1 -1
- package/dist/modules/audit/request-audit.d.ts +21 -10
- package/dist/modules/audit/request-audit.d.ts.map +1 -1
- package/dist/modules/audit/request-audit.js +26 -10
- package/dist/modules/audit/request-audit.js.map +1 -1
- package/dist/modules/auth/account-hooks.d.ts +4 -6
- package/dist/modules/auth/account-hooks.d.ts.map +1 -1
- package/dist/modules/auth/account-hooks.js +7 -17
- package/dist/modules/auth/account-hooks.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +9 -8
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +19 -18
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/database/core-schema.d.ts +43 -4
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +31 -7
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/kb-fs/index.d.ts +1 -0
- package/dist/modules/kb-fs/index.d.ts.map +1 -1
- package/dist/modules/kb-fs/index.js +1 -0
- package/dist/modules/kb-fs/index.js.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +3 -12
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/mutex.d.ts +11 -0
- package/dist/modules/kb-fs/mutex.d.ts.map +1 -1
- package/dist/modules/kb-fs/mutex.js +14 -0
- package/dist/modules/kb-fs/mutex.js.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.d.ts +14 -0
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +4 -0
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +5 -0
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +67 -0
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +107 -27
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +257 -50
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +28 -0
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +166 -39
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/mcp/request-context.d.ts +25 -0
- package/dist/modules/mcp/request-context.d.ts.map +1 -0
- package/dist/modules/mcp/request-context.js +11 -0
- package/dist/modules/mcp/request-context.js.map +1 -0
- package/dist/modules/mcp/shared-definitions.d.ts +56 -0
- package/dist/modules/mcp/shared-definitions.d.ts.map +1 -0
- package/dist/modules/mcp/shared-definitions.js +117 -0
- package/dist/modules/mcp/shared-definitions.js.map +1 -0
- package/dist/modules/mcp/surface-cache.d.ts +70 -0
- package/dist/modules/mcp/surface-cache.d.ts.map +1 -0
- package/dist/modules/mcp/surface-cache.js +104 -0
- package/dist/modules/mcp/surface-cache.js.map +1 -0
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +33 -12
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +8 -0
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.js +3 -14
- package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +10 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js +2 -0
- package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +18 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +458 -2
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/change-request-hooks.d.ts +78 -0
- package/dist/modules/workflow/change-request-hooks.d.ts.map +1 -0
- package/dist/modules/workflow/change-request-hooks.js +15 -0
- package/dist/modules/workflow/change-request-hooks.js.map +1 -0
- package/dist/modules/workflow/git/git.service.d.ts +113 -4
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +470 -106
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.d.ts +10 -0
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +9 -0
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/read-on-branch.d.ts +35 -0
- package/dist/modules/workflow/read-on-branch.d.ts.map +1 -0
- package/dist/modules/workflow/read-on-branch.js +58 -0
- package/dist/modules/workflow/read-on-branch.js.map +1 -0
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +22 -41
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +124 -24
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +326 -48
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/index.d.ts +2 -0
- package/dist/modules/workspace/index.d.ts.map +1 -1
- package/dist/modules/workspace/index.js +4 -0
- package/dist/modules/workspace/index.js.map +1 -1
- package/dist/shared/git.contract.d.ts +7 -0
- package/dist/shared/git.contract.d.ts.map +1 -1
- package/dist/shared/git.contract.js +9 -0
- package/dist/shared/git.contract.js.map +1 -1
- package/dist/shared/listener-seam.d.ts +34 -0
- package/dist/shared/listener-seam.d.ts.map +1 -0
- package/dist/shared/listener-seam.js +42 -0
- package/dist/shared/listener-seam.js.map +1 -0
- package/dist/shared/no-link-below.d.ts +10 -0
- package/dist/shared/no-link-below.d.ts.map +1 -0
- package/dist/shared/no-link-below.js +30 -0
- package/dist/shared/no-link-below.js.map +1 -0
- package/migrations/0018_agent_events_page.sql +11 -0
- package/migrations/0019_oauth_token_rotated_at.sql +7 -0
- package/migrations/meta/0018_snapshot.json +2429 -0
- package/migrations/meta/0019_snapshot.json +2435 -0
- package/migrations/meta/_journal.json +15 -1
- package/package.json +3 -3
- package/src/core/catalog-revision.ts +3 -3
- package/src/core/create-core-server.ts +2 -1
- package/src/core/create-core-services.ts +21 -2
- package/src/index.ts +7 -0
- package/src/modules/access/access-control.service.ts +1 -6
- package/src/modules/access-model/index.ts +13 -0
- package/src/modules/agent-guide/__tests__/agent-guide.test.ts +22 -1
- package/src/modules/audit/__tests__/agent-audit.service.test.ts +78 -1
- package/src/modules/audit/__tests__/audit.routes.test.ts +43 -5
- package/src/modules/audit/agent-audit.service.ts +66 -6
- package/src/modules/audit/audit.contract.ts +62 -10
- package/src/modules/audit/audit.routes.ts +14 -12
- package/src/modules/audit/request-audit.ts +28 -13
- package/src/modules/auth/__tests__/account-deactivation.test.ts +38 -2
- package/src/modules/auth/account-hooks.ts +13 -21
- package/src/modules/auth/auth.service.ts +19 -18
- package/src/modules/database/core-schema.ts +31 -7
- package/src/modules/kb-fs/__tests__/mutex.canonical.test.ts +57 -0
- package/src/modules/kb-fs/index.ts +1 -0
- package/src/modules/kb-fs/locking-filesystem.ts +3 -12
- package/src/modules/kb-fs/mutex.ts +16 -0
- package/src/modules/mcp/__tests__/bevel-oauth-provider.pg.test.ts +279 -0
- package/src/modules/mcp/__tests__/bevel-oauth-provider.test.ts +190 -15
- package/src/modules/mcp/__tests__/mcp-routes-harness.ts +7 -1
- package/src/modules/mcp/__tests__/mcp.routes.page.test.ts +115 -0
- package/src/modules/mcp/__tests__/mcp.surface-cache.test.ts +521 -0
- package/src/modules/mcp/__tests__/shared-definitions.test.ts +28 -0
- package/src/modules/mcp/__tests__/surface-cache.test.ts +127 -0
- package/src/modules/mcp/mcp-auth.middleware.ts +21 -0
- package/src/modules/mcp/mcp.routes.ts +68 -0
- package/src/modules/mcp/mcp.service.ts +315 -51
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +214 -48
- package/src/modules/mcp/request-context.ts +34 -0
- package/src/modules/mcp/shared-definitions.ts +121 -0
- package/src/modules/mcp/surface-cache.ts +154 -0
- package/src/modules/tool-helpers/tool-context.ts +37 -18
- package/src/modules/tool-helpers/tool.contract.ts +8 -0
- package/src/modules/tool-registry/__tests__/own-tool-schemas.test.ts +1 -1
- package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +1 -1
- package/src/modules/workflow/__tests__/change-request-hooks.test.ts +62 -0
- package/src/modules/workflow/__tests__/workflow.routes.history-read-gate.test.ts +23 -12
- package/src/modules/workflow/__tests__/workflow.routes.open-change-request.test.ts +79 -0
- package/src/modules/workflow/__tests__/workflow.service.delete-branch.test.ts +9 -1
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +508 -5
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +474 -4
- package/src/modules/workflow/agent-tools/change-request-read.tools.ts +4 -22
- package/src/modules/workflow/agent-tools/change-request-summary.ts +10 -1
- package/src/modules/workflow/agent-tools/workflow.tools.ts +468 -1
- package/src/modules/workflow/change-request-hooks.ts +96 -0
- package/src/modules/workflow/git/__tests__/git.service.diffFileBetweenBranches.test.ts +76 -11
- package/src/modules/workflow/git/__tests__/git.service.mergeIntoBranch.test.ts +721 -0
- package/src/modules/workflow/git/git.service.ts +537 -106
- package/src/modules/workflow/git/pull-request.service.ts +10 -0
- package/src/modules/workflow/read-on-branch.ts +79 -0
- package/src/modules/workflow/workflow.routes.ts +21 -39
- package/src/modules/workflow/workflow.service.ts +390 -55
- package/src/modules/workspace/index.ts +11 -0
- package/src/shared/__tests__/no-link-below.test.ts +45 -0
- package/src/shared/git.contract.ts +10 -0
- package/src/shared/listener-seam.ts +52 -0
- package/src/shared/no-link-below.ts +29 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { and, count, desc, eq, isNotNull, isNull, lt, or } from 'drizzle-orm';
|
|
1
|
+
import { and, count, desc, eq, isNotNull, isNull, lt, max, min, or } from 'drizzle-orm';
|
|
2
2
|
import { logger } from '../../shared/logging.js';
|
|
3
3
|
import { agentConnections, agentEvents, externalApiKeys, oauthTokens, users } from '../database/schema.js';
|
|
4
|
-
import { AuditPrincipalNotFoundError, InvalidCursorError, isUuid, parseRetentionWindow, } from './audit.contract.js';
|
|
4
|
+
import { AuditPrincipalNotFoundError, InvalidCursorError, isUuid, pagePrincipalId, parsePagePrincipalId, parseRetentionWindow, } from './audit.contract.js';
|
|
5
5
|
const log = logger('audit');
|
|
6
6
|
/** The most events one page may carry; the routes clamp to it. */
|
|
7
7
|
export const MAX_EVENT_PAGE = 200;
|
|
@@ -41,6 +41,7 @@ export class AgentAuditService {
|
|
|
41
41
|
userId: event.userId,
|
|
42
42
|
keyId: event.principal.kind === 'key' ? event.principal.id : null,
|
|
43
43
|
connectionId: event.principal.kind === 'agent' ? event.principal.id : null,
|
|
44
|
+
pagePath: event.principal.kind === 'page' ? event.principal.path : null,
|
|
44
45
|
kind: event.kind,
|
|
45
46
|
manual: event.manual,
|
|
46
47
|
name: event.name,
|
|
@@ -73,7 +74,7 @@ export class AgentAuditService {
|
|
|
73
74
|
}
|
|
74
75
|
async listPrincipals(scope) {
|
|
75
76
|
const mine = scope === 'all' ? null : scope.userId;
|
|
76
|
-
const [keyRows, connectionRows, countRows] = await Promise.all([
|
|
77
|
+
const [keyRows, connectionRows, countRows, pageRows] = await Promise.all([
|
|
77
78
|
mine === null ? this.keys.listForDeployment() : this.keysForUser(mine),
|
|
78
79
|
this.db
|
|
79
80
|
.select({
|
|
@@ -91,6 +92,22 @@ export class AgentAuditService {
|
|
|
91
92
|
.from(agentEvents)
|
|
92
93
|
.where(mine === null ? undefined : eq(agentEvents.userId, mine))
|
|
93
94
|
.groupBy(agentEvents.keyId, agentEvents.connectionId),
|
|
95
|
+
// A page has no row of its own: it is every event recorded under one
|
|
96
|
+
// person and one path, so its "created" is its first call and its
|
|
97
|
+
// "last used" its latest.
|
|
98
|
+
this.db
|
|
99
|
+
.select({
|
|
100
|
+
userId: agentEvents.userId,
|
|
101
|
+
pagePath: agentEvents.pagePath,
|
|
102
|
+
n: count(),
|
|
103
|
+
first: min(agentEvents.at),
|
|
104
|
+
last: max(agentEvents.at),
|
|
105
|
+
user: { id: users.id, email: users.email, name: users.name },
|
|
106
|
+
})
|
|
107
|
+
.from(agentEvents)
|
|
108
|
+
.innerJoin(users, eq(agentEvents.userId, users.id))
|
|
109
|
+
.where(and(isNotNull(agentEvents.pagePath), mine === null ? undefined : eq(agentEvents.userId, mine)))
|
|
110
|
+
.groupBy(agentEvents.userId, agentEvents.pagePath, users.id, users.email, users.name),
|
|
94
111
|
]);
|
|
95
112
|
const counts = new Map();
|
|
96
113
|
for (const row of countRows) {
|
|
@@ -123,6 +140,22 @@ export class AgentAuditService {
|
|
|
123
140
|
eventCount: counts.get(c.id) ?? 0,
|
|
124
141
|
user,
|
|
125
142
|
})),
|
|
143
|
+
...pageRows.flatMap((r) => r.pagePath
|
|
144
|
+
? [
|
|
145
|
+
{
|
|
146
|
+
kind: 'page',
|
|
147
|
+
id: pagePrincipalId(r.userId, r.pagePath),
|
|
148
|
+
label: r.pagePath,
|
|
149
|
+
createdAt: toMs(r.first),
|
|
150
|
+
lastUsedAt: r.last ? toMs(r.last) : null,
|
|
151
|
+
// A page cannot be revoked: it acts only while its viewer has it open.
|
|
152
|
+
revokedAt: null,
|
|
153
|
+
revokedBy: null,
|
|
154
|
+
eventCount: Number(r.n),
|
|
155
|
+
user: r.user,
|
|
156
|
+
},
|
|
157
|
+
]
|
|
158
|
+
: []),
|
|
126
159
|
];
|
|
127
160
|
// Per account (by email), live before revoked, most recently used first,
|
|
128
161
|
// newest first among the never-used — the order the page shows without
|
|
@@ -155,6 +188,18 @@ export class AgentAuditService {
|
|
|
155
188
|
return keys.map((k) => ({ ...k, user }));
|
|
156
189
|
}
|
|
157
190
|
async ownerOf(principal) {
|
|
191
|
+
if (principal.kind === 'page') {
|
|
192
|
+
// The person is in the id; the page exists for them once it has called something.
|
|
193
|
+
const page = parsePagePrincipalId(principal.id);
|
|
194
|
+
if (!page)
|
|
195
|
+
return null;
|
|
196
|
+
const [row] = await this.db
|
|
197
|
+
.select({ id: agentEvents.id })
|
|
198
|
+
.from(agentEvents)
|
|
199
|
+
.where(and(eq(agentEvents.userId, page.userId), eq(agentEvents.pagePath, page.path)))
|
|
200
|
+
.limit(1);
|
|
201
|
+
return row ? page.userId : null;
|
|
202
|
+
}
|
|
158
203
|
if (principal.kind === 'agent') {
|
|
159
204
|
const [row] = await this.db
|
|
160
205
|
.select({ userId: agentConnections.userId })
|
|
@@ -168,9 +213,7 @@ export class AgentAuditService {
|
|
|
168
213
|
}
|
|
169
214
|
async listEvents(principal, page) {
|
|
170
215
|
const limit = Math.max(1, Math.min(MAX_EVENT_PAGE, Math.floor(page.limit)));
|
|
171
|
-
const byPrincipal = principal
|
|
172
|
-
? eq(agentEvents.keyId, principal.id)
|
|
173
|
-
: eq(agentEvents.connectionId, principal.id);
|
|
216
|
+
const byPrincipal = principalFilter(principal);
|
|
174
217
|
// Keyset on (at, id): a page boundary between two events at the same
|
|
175
218
|
// instant is still a boundary, and a row inserted while the reader pages
|
|
176
219
|
// never shifts what the next page returns.
|
|
@@ -299,6 +342,23 @@ function formatCursor(at, id) {
|
|
|
299
342
|
* compare it with anything else) and the instant a whole number of epoch
|
|
300
343
|
* milliseconds a `timestamp` can hold.
|
|
301
344
|
*/
|
|
345
|
+
/** The events of one principal. A page id that names no page matches nothing. */
|
|
346
|
+
function principalFilter(principal) {
|
|
347
|
+
if (principal.kind === 'key')
|
|
348
|
+
return eq(agentEvents.keyId, principal.id);
|
|
349
|
+
if (principal.kind === 'agent')
|
|
350
|
+
return eq(agentEvents.connectionId, principal.id);
|
|
351
|
+
const page = parsePagePrincipalId(principal.id);
|
|
352
|
+
if (!page)
|
|
353
|
+
return isNull(agentEvents.id);
|
|
354
|
+
return and(eq(agentEvents.userId, page.userId), eq(agentEvents.pagePath, page.path));
|
|
355
|
+
}
|
|
356
|
+
/** An aggregate's timestamp, which a driver may hand back as a Date or as the text Postgres sent. */
|
|
357
|
+
function toMs(value) {
|
|
358
|
+
if (value === null)
|
|
359
|
+
return 0;
|
|
360
|
+
return value instanceof Date ? value.getTime() : new Date(value).getTime();
|
|
361
|
+
}
|
|
302
362
|
function parseCursor(raw) {
|
|
303
363
|
const dot = raw.indexOf('.');
|
|
304
364
|
if (dot < 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-audit.service.js","sourceRoot":"","sources":["../../../src/modules/audit/agent-audit.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-audit.service.js","sourceRoot":"","sources":["../../../src/modules/audit/agent-audit.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,21 @@ declare global {
|
|
|
20
20
|
}
|
|
21
21
|
/** What was called: the platform's own tool, a manual's tool, or a skill read. */
|
|
22
22
|
export type AgentEventKind = 'capability' | 'tool' | 'skill';
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* How the call ended. `denied`: the caller's sign-in for the tool was
|
|
25
|
+
* missing, so nothing ran. `refused`: a page made a call that needs the
|
|
26
|
+
* viewer's approval (a writing tool, a tool the manual does not list, or a
|
|
27
|
+
* chain) and the person viewing it answered Deny, so nothing ran.
|
|
28
|
+
*/
|
|
29
|
+
export type AgentEventOutcome = 'ok' | 'error' | 'denied' | 'refused';
|
|
25
30
|
/**
|
|
26
31
|
* Who a call is attributed to: the connection key it was authenticated with,
|
|
27
|
-
*
|
|
32
|
+
* the agent connection behind its OAuth grant, or the knowledge-base page
|
|
33
|
+
* whose script made it as the person viewing it. Exactly one.
|
|
34
|
+
*
|
|
35
|
+
* A page has no row of its own: it is a person and a path, and its `id` is
|
|
36
|
+
* both, encoded by {@link pagePrincipalId} so the Audit log's routes can name
|
|
37
|
+
* it like the other two.
|
|
28
38
|
*/
|
|
29
39
|
export type AuditPrincipalRef = {
|
|
30
40
|
kind: 'key';
|
|
@@ -32,11 +42,45 @@ export type AuditPrincipalRef = {
|
|
|
32
42
|
} | {
|
|
33
43
|
kind: 'agent';
|
|
34
44
|
id: string;
|
|
45
|
+
} | {
|
|
46
|
+
kind: 'page';
|
|
47
|
+
id: string;
|
|
48
|
+
};
|
|
49
|
+
/** Who a call is attributed to, as the recorder takes it: a page by its path, the recorder knows the person. */
|
|
50
|
+
export type RecordedPrincipal = {
|
|
51
|
+
kind: 'key';
|
|
52
|
+
id: string;
|
|
53
|
+
} | {
|
|
54
|
+
kind: 'agent';
|
|
55
|
+
id: string;
|
|
56
|
+
} | {
|
|
57
|
+
kind: 'page';
|
|
58
|
+
path: string;
|
|
35
59
|
};
|
|
60
|
+
/** The longest page path a page principal may carry. A path is a file in the knowledge base, never longer. */
|
|
61
|
+
export declare const MAX_PAGE_PATH_LENGTH = 1024;
|
|
62
|
+
/**
|
|
63
|
+
* A page principal's id: the person and the page's path, encoded so it is one
|
|
64
|
+
* URL segment. Opaque to the client, which only ever echoes it back.
|
|
65
|
+
*/
|
|
66
|
+
export declare function pagePrincipalId(userId: string, path: string): string;
|
|
67
|
+
/** The person and the path a page principal's id names, or null when it names none. */
|
|
68
|
+
export declare function parsePagePrincipalId(id: string): {
|
|
69
|
+
userId: string;
|
|
70
|
+
path: string;
|
|
71
|
+
} | null;
|
|
72
|
+
/**
|
|
73
|
+
* Whether `path` can be a page principal: a non-empty knowledge-base path of
|
|
74
|
+
* printable characters, bounded. A page names itself through a request
|
|
75
|
+
* header, so this is the check that keeps a line break or a control character
|
|
76
|
+
* out of the log and its listing — the C1 controls (NEL among them) and the
|
|
77
|
+
* Unicode line and paragraph separators included.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isPagePath(path: string): boolean;
|
|
36
80
|
/** One recorded call, as the recorder takes it. */
|
|
37
81
|
export interface AgentEventInput {
|
|
38
82
|
userId: string;
|
|
39
|
-
principal:
|
|
83
|
+
principal: RecordedPrincipal;
|
|
40
84
|
kind: AgentEventKind;
|
|
41
85
|
/** The MCP server / `.tool` manual for a tool, the skill folder for a skill; null for a capability. */
|
|
42
86
|
manual: string | null;
|
|
@@ -52,18 +96,18 @@ export interface AgentEventInput {
|
|
|
52
96
|
export interface IAgentEventRecorder {
|
|
53
97
|
record(event: AgentEventInput): void;
|
|
54
98
|
}
|
|
55
|
-
/** One row of the Audit log: an agent connection
|
|
99
|
+
/** One row of the Audit log: an agent connection, a connection key or a page, with its owner. */
|
|
56
100
|
export interface AuditPrincipal {
|
|
57
|
-
kind: 'key' | 'agent';
|
|
101
|
+
kind: 'key' | 'agent' | 'page';
|
|
58
102
|
id: string;
|
|
59
|
-
/** The key's label,
|
|
103
|
+
/** The key's label, the agent's registered client name, or the page's knowledge-base path. */
|
|
60
104
|
label: string;
|
|
61
105
|
/**
|
|
62
106
|
* For a key: what it was minted as (`key` by hand, `github-link` for a
|
|
63
107
|
* Claude link). Absent for an agent.
|
|
64
108
|
*/
|
|
65
109
|
keyKind?: string;
|
|
66
|
-
/** When the key was created / the agent connected. Epoch ms. */
|
|
110
|
+
/** When the key was created / the agent connected / the page first called a tool. Epoch ms. */
|
|
67
111
|
createdAt: number;
|
|
68
112
|
lastUsedAt: number | null;
|
|
69
113
|
revokedAt: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.contract.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/audit.contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf;;;;;;eAMG;YACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B;KACF;CACF;AAED,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"audit.contract.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/audit.contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,45 @@
|
|
|
4
4
|
* them — the recorder the MCP proxy writes through, and the read/revoke
|
|
5
5
|
* service the Audit log page is built on.
|
|
6
6
|
*/
|
|
7
|
+
/** The longest page path a page principal may carry. A path is a file in the knowledge base, never longer. */
|
|
8
|
+
export const MAX_PAGE_PATH_LENGTH = 1024;
|
|
9
|
+
/**
|
|
10
|
+
* A page principal's id: the person and the page's path, encoded so it is one
|
|
11
|
+
* URL segment. Opaque to the client, which only ever echoes it back.
|
|
12
|
+
*/
|
|
13
|
+
export function pagePrincipalId(userId, path) {
|
|
14
|
+
return Buffer.from(`${userId}\n${path}`, 'utf8').toString('base64url');
|
|
15
|
+
}
|
|
16
|
+
/** The person and the path a page principal's id names, or null when it names none. */
|
|
17
|
+
export function parsePagePrincipalId(id) {
|
|
18
|
+
if (!/^[A-Za-z0-9_-]+$/.test(id))
|
|
19
|
+
return null;
|
|
20
|
+
const decoded = Buffer.from(id, 'base64url').toString('utf8');
|
|
21
|
+
const cut = decoded.indexOf('\n');
|
|
22
|
+
if (cut < 0)
|
|
23
|
+
return null;
|
|
24
|
+
const userId = decoded.slice(0, cut);
|
|
25
|
+
const path = decoded.slice(cut + 1);
|
|
26
|
+
if (!isUuid(userId) || !isPagePath(path))
|
|
27
|
+
return null;
|
|
28
|
+
return { userId, path };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether `path` can be a page principal: a non-empty knowledge-base path of
|
|
32
|
+
* printable characters, bounded. A page names itself through a request
|
|
33
|
+
* header, so this is the check that keeps a line break or a control character
|
|
34
|
+
* out of the log and its listing — the C1 controls (NEL among them) and the
|
|
35
|
+
* Unicode line and paragraph separators included.
|
|
36
|
+
*/
|
|
37
|
+
export function isPagePath(path) {
|
|
38
|
+
return (path.length > 0 &&
|
|
39
|
+
path.length <= MAX_PAGE_PATH_LENGTH &&
|
|
40
|
+
// eslint-disable-next-line no-control-regex -- the point is to refuse control characters
|
|
41
|
+
!/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/.test(path));
|
|
42
|
+
}
|
|
7
43
|
export class AuditPrincipalNotFoundError extends Error {
|
|
8
44
|
constructor() {
|
|
9
|
-
super('No such agent
|
|
45
|
+
super('No such agent');
|
|
10
46
|
this.name = 'AuditPrincipalNotFoundError';
|
|
11
47
|
}
|
|
12
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.contract.js","sourceRoot":"","sources":["../../../src/modules/audit/audit.contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"audit.contract.js","sourceRoot":"","sources":["../../../src/modules/audit/audit.contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,8GAA8G;AAC9G,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,CACL,IAAI,CAAC,MAAM,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,IAAI,oBAAoB;QACnC,yFAAyF;QACzF,CAAC,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CACvD,CAAC;AACJ,CAAC;AAoHD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,sGAAsG;AACtG,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,OAAO,GAAG,iEAAiE,CAAC;AAElF,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAaD,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC"}
|
|
@@ -6,7 +6,7 @@ import '../auth/auth.middleware.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* The Audit log's routes, JWT-only (mounted behind the session middleware):
|
|
8
8
|
*
|
|
9
|
-
* GET /api/audit/principals?scope=me|all — agents
|
|
9
|
+
* GET /api/audit/principals?scope=me|all — agents, keys and pages, with owners and event counts
|
|
10
10
|
* GET /api/audit/principals/:kind/:id/events — one principal's events, newest first, cursor-paged
|
|
11
11
|
* DELETE /api/audit/agents/:id — revoke an agent (owner or admin)
|
|
12
12
|
* DELETE /api/audit/keys/:id — revoke a key (owner or admin)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/audit.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,
|
|
1
|
+
{"version":3,"file":"audit.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/audit.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,4BAA4B,CAAC;AAMpC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,WAAW,CAAC,EAC1D,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,MAAM,CAmIhB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { logger } from '../../shared/logging.js';
|
|
3
3
|
import { TokenNotFoundError } from '../tool-auth/external-api-key.errors.js';
|
|
4
|
-
import { AuditPrincipalNotFoundError, InvalidCursorError, isUuid, } from './audit.contract.js';
|
|
4
|
+
import { AuditPrincipalNotFoundError, InvalidCursorError, isUuid, parsePagePrincipalId, } from './audit.contract.js';
|
|
5
5
|
import { MAX_EVENT_PAGE } from './agent-audit.service.js';
|
|
6
6
|
import '../auth/auth.middleware.js'; // Express Request augmentation (req.userId / req.userEmail)
|
|
7
7
|
const log = logger('audit');
|
|
@@ -9,7 +9,7 @@ const DEFAULT_EVENT_PAGE = 50;
|
|
|
9
9
|
/**
|
|
10
10
|
* The Audit log's routes, JWT-only (mounted behind the session middleware):
|
|
11
11
|
*
|
|
12
|
-
* GET /api/audit/principals?scope=me|all — agents
|
|
12
|
+
* GET /api/audit/principals?scope=me|all — agents, keys and pages, with owners and event counts
|
|
13
13
|
* GET /api/audit/principals/:kind/:id/events — one principal's events, newest first, cursor-paged
|
|
14
14
|
* DELETE /api/audit/agents/:id — revoke an agent (owner or admin)
|
|
15
15
|
* DELETE /api/audit/keys/:id — revoke a key (owner or admin)
|
|
@@ -27,15 +27,22 @@ export function createAuditRoutes(audit, keys, adminAccess) {
|
|
|
27
27
|
const principalOf = (req) => {
|
|
28
28
|
const kind = String(req.params.kind);
|
|
29
29
|
const id = String(req.params.id);
|
|
30
|
+
if (kind === 'page')
|
|
31
|
+
return parsePagePrincipalId(id) ? { kind, id } : null;
|
|
30
32
|
if ((kind !== 'key' && kind !== 'agent') || !isUuid(id))
|
|
31
33
|
return null;
|
|
32
34
|
return { kind, id };
|
|
33
35
|
};
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Whether the caller may read `principal`'s events: its owner, or an admin.
|
|
38
|
+
* False both when there is no such principal and when it is someone else's,
|
|
39
|
+
* so the refusal does not tell a member which of another person's pages,
|
|
40
|
+
* agents or keys exist.
|
|
41
|
+
*/
|
|
42
|
+
const mayRead = async (req, principal) => {
|
|
36
43
|
const owner = await audit.ownerOf(principal);
|
|
37
44
|
if (owner === null)
|
|
38
|
-
return
|
|
45
|
+
return false;
|
|
39
46
|
if (owner === req.userId)
|
|
40
47
|
return true;
|
|
41
48
|
return isAdmin(req);
|
|
@@ -58,17 +65,12 @@ export function createAuditRoutes(audit, keys, adminAccess) {
|
|
|
58
65
|
router.get('/audit/principals/:kind/:id/events', async (req, res) => {
|
|
59
66
|
const principal = principalOf(req);
|
|
60
67
|
if (!principal) {
|
|
61
|
-
res.status(404).json({ error: 'No such agent or
|
|
68
|
+
res.status(404).json({ error: 'No such agent, key or page' });
|
|
62
69
|
return;
|
|
63
70
|
}
|
|
64
71
|
try {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
res.status(404).json({ error: 'No such agent or key' });
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (!allowed) {
|
|
71
|
-
res.status(403).json({ error: 'Not yours' });
|
|
72
|
+
if (!(await mayRead(req, principal))) {
|
|
73
|
+
res.status(404).json({ error: 'No such agent, key or page' });
|
|
72
74
|
return;
|
|
73
75
|
}
|
|
74
76
|
const rawLimit = Number(req.query.limit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.routes.js","sourceRoot":"","sources":["../../../src/modules/audit/audit.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"audit.routes.js","sourceRoot":"","sources":["../../../src/modules/audit/audit.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { CodeModeUtcpClient } from '@utcp/code-mode';
|
|
2
|
-
import type { AgentEventOutcome,
|
|
2
|
+
import type { AgentEventOutcome, IAgentEventRecorder, RecordedPrincipal } from './audit.contract.js';
|
|
3
3
|
import { type ClassifiedCall, type SkillFolder } from './event-classifier.js';
|
|
4
4
|
/**
|
|
5
5
|
* The Audit log's view of ONE MCP request: who is calling (the user and the
|
|
6
|
-
* key
|
|
7
|
-
* they call. The MCP proxy creates one per request that has a principal
|
|
8
|
-
* routes every call through it; a request with none (a browser JWT
|
|
9
|
-
* internal token minted before connections existed) gets no
|
|
10
|
-
* records nothing.
|
|
6
|
+
* key, agent connection or page the request arrived through), and how to name
|
|
7
|
+
* what they call. The MCP proxy creates one per request that has a principal
|
|
8
|
+
* and routes every call through it; a request with none (a browser JWT that
|
|
9
|
+
* names no page, an internal token minted before connections existed) gets no
|
|
10
|
+
* instance and records nothing.
|
|
11
11
|
*
|
|
12
12
|
* Holds nothing that outlives the request. The skill catalog it may need to
|
|
13
13
|
* tell a skill read from a file read is fetched at most once, and only when
|
|
@@ -19,7 +19,7 @@ export declare class RequestAudit {
|
|
|
19
19
|
private readonly principal;
|
|
20
20
|
private readonly ctx;
|
|
21
21
|
private skills;
|
|
22
|
-
constructor(recorder: IAgentEventRecorder, userId: string, principal:
|
|
22
|
+
constructor(recorder: IAgentEventRecorder, userId: string, principal: RecordedPrincipal, ctx: {
|
|
23
23
|
kbManualName: string;
|
|
24
24
|
/** Read at classification time — the surface (and its catalog names) is built lazily. */
|
|
25
25
|
catalogNames: () => ReadonlyMap<string, string>;
|
|
@@ -40,8 +40,12 @@ export declare class RequestAudit {
|
|
|
40
40
|
* not the tool's — a tool result never waits on its own bookkeeping.
|
|
41
41
|
*/
|
|
42
42
|
call<T>(utcpName: string, args: Record<string, unknown>, run: () => Promise<T>, isError: (result: T) => boolean): Promise<T>;
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* A call refused before it ran: `denied` when the caller's sign-in for its
|
|
45
|
+
* manual is missing, `refused` when the person viewing a page answered its
|
|
46
|
+
* request to write with Deny.
|
|
47
|
+
*/
|
|
48
|
+
denied(utcpName: string, args: Record<string, unknown>, outcome?: 'denied' | 'refused'): Promise<void>;
|
|
45
49
|
/**
|
|
46
50
|
* Record every tool call made from INSIDE `call_tool_chain`: the chain
|
|
47
51
|
* bridges each in-isolate tool function to `client.callTool`, so wrapping
|
|
@@ -50,8 +54,15 @@ export declare class RequestAudit {
|
|
|
50
54
|
* The direct MCP path (`callToolStreaming`) is deliberately NOT wrapped —
|
|
51
55
|
* the proxy's tool handler records those itself, with the result's
|
|
52
56
|
* `isError` in hand.
|
|
57
|
+
*
|
|
58
|
+
* Installed ONCE, when the client is built, because the client is shared by
|
|
59
|
+
* every request of its person: `current` names the request a call belongs
|
|
60
|
+
* to, at call time, and a call outside any request (or in one attributed to
|
|
61
|
+
* nothing) is recorded nowhere. Rebinding the client per request instead
|
|
62
|
+
* would hand one request's calls to another's audit, and stack a wrapper
|
|
63
|
+
* per request.
|
|
53
64
|
*/
|
|
54
|
-
instrumentChainCalls(client: CodeModeUtcpClient): void;
|
|
65
|
+
static instrumentChainCalls(client: CodeModeUtcpClient, current: () => RequestAudit | null | undefined): void;
|
|
55
66
|
private skillCatalog;
|
|
56
67
|
}
|
|
57
68
|
//# sourceMappingURL=request-audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-audit.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/request-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"request-audit.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/request-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,MAAM,CAAqD;gBAGhD,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,yFAAyF;QACzF,YAAY,EAAE,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,6EAA6E;QAC7E,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;KACnD;IAGH,wDAAwD;IACxD,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBvF,4GAA4G;IACtG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAOxF;;;;;;;;OAQG;IACG,IAAI,CAAC,CAAC,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAC9B,OAAO,CAAC,CAAC,CAAC;IAeb;;;;OAIG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,QAAQ,GAAG,SAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItH;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAU7G,OAAO,CAAC,YAAY;CAUrB"}
|
|
@@ -3,11 +3,11 @@ import { classifyToolCall, skillReadPath, } from './event-classifier.js';
|
|
|
3
3
|
const log = logger('audit');
|
|
4
4
|
/**
|
|
5
5
|
* The Audit log's view of ONE MCP request: who is calling (the user and the
|
|
6
|
-
* key
|
|
7
|
-
* they call. The MCP proxy creates one per request that has a principal
|
|
8
|
-
* routes every call through it; a request with none (a browser JWT
|
|
9
|
-
* internal token minted before connections existed) gets no
|
|
10
|
-
* records nothing.
|
|
6
|
+
* key, agent connection or page the request arrived through), and how to name
|
|
7
|
+
* what they call. The MCP proxy creates one per request that has a principal
|
|
8
|
+
* and routes every call through it; a request with none (a browser JWT that
|
|
9
|
+
* names no page, an internal token minted before connections existed) gets no
|
|
10
|
+
* instance and records nothing.
|
|
11
11
|
*
|
|
12
12
|
* Holds nothing that outlives the request. The skill catalog it may need to
|
|
13
13
|
* tell a skill read from a file read is fetched at most once, and only when
|
|
@@ -73,9 +73,13 @@ export class RequestAudit {
|
|
|
73
73
|
throw err;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
/**
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
/**
|
|
77
|
+
* A call refused before it ran: `denied` when the caller's sign-in for its
|
|
78
|
+
* manual is missing, `refused` when the person viewing a page answered its
|
|
79
|
+
* request to write with Deny.
|
|
80
|
+
*/
|
|
81
|
+
async denied(utcpName, args, outcome = 'denied') {
|
|
82
|
+
this.emit(await this.classify(utcpName, args), outcome, null);
|
|
79
83
|
}
|
|
80
84
|
/**
|
|
81
85
|
* Record every tool call made from INSIDE `call_tool_chain`: the chain
|
|
@@ -85,10 +89,22 @@ export class RequestAudit {
|
|
|
85
89
|
* The direct MCP path (`callToolStreaming`) is deliberately NOT wrapped —
|
|
86
90
|
* the proxy's tool handler records those itself, with the result's
|
|
87
91
|
* `isError` in hand.
|
|
92
|
+
*
|
|
93
|
+
* Installed ONCE, when the client is built, because the client is shared by
|
|
94
|
+
* every request of its person: `current` names the request a call belongs
|
|
95
|
+
* to, at call time, and a call outside any request (or in one attributed to
|
|
96
|
+
* nothing) is recorded nowhere. Rebinding the client per request instead
|
|
97
|
+
* would hand one request's calls to another's audit, and stack a wrapper
|
|
98
|
+
* per request.
|
|
88
99
|
*/
|
|
89
|
-
instrumentChainCalls(client) {
|
|
100
|
+
static instrumentChainCalls(client, current) {
|
|
90
101
|
const callTool = client.callTool.bind(client);
|
|
91
|
-
client.callTool = (toolName, toolArgs) =>
|
|
102
|
+
client.callTool = (toolName, toolArgs) => {
|
|
103
|
+
const audit = current();
|
|
104
|
+
return audit
|
|
105
|
+
? audit.call(toolName, toolArgs, () => callTool(toolName, toolArgs), isErrorShaped)
|
|
106
|
+
: callTool(toolName, toolArgs);
|
|
107
|
+
};
|
|
92
108
|
}
|
|
93
109
|
skillCatalog() {
|
|
94
110
|
// A failed fetch is remembered as "no catalog" for the rest of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-audit.js","sourceRoot":"","sources":["../../../src/modules/audit/request-audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EACL,gBAAgB,EAChB,aAAa,GAId,MAAM,uBAAuB,CAAC;AAE/B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE5B;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAY;IAIJ;IACA;IACA;IACA;IANX,MAAM,CAAqD;IAEnE,YACmB,QAA6B,EAC7B,MAAc,EACd,SAA4B,EAC5B,GAMhB;QATgB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAmB;QAC5B,QAAG,GAAH,GAAG,CAMnB;IACA,CAAC;IAEJ,wDAAwD;IACxD,IAAI,CAAC,IAAoB,EAAE,OAA0B,EAAE,UAAyB;QAC9E,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO;gBACP,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,4GAA4G;IAC5G,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAA6B;QAC5D,MAAM,GAAG,GAAsB,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC;QAC9G,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;QAC7E,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACR,QAAgB,EAChB,IAA6B,EAC7B,GAAqB,EACrB,OAA+B;QAE/B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"request-audit.js","sourceRoot":"","sources":["../../../src/modules/audit/request-audit.ts"],"names":[],"mappings":"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"}
|