@adonis-agora/agent-dashboard 0.3.2 → 0.5.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/CHANGELOG.md +98 -0
- package/dist/providers/agent_dashboard_provider.d.ts +4 -0
- package/dist/providers/agent_dashboard_provider.d.ts.map +1 -1
- package/dist/providers/agent_dashboard_provider.js +13 -2
- package/dist/providers/agent_dashboard_provider.js.map +1 -1
- package/dist/spa/assets/index-CkOAJYbh.js +9 -0
- package/dist/spa/index.html +1 -1
- package/dist/src/client/agent-client.d.ts +9 -1
- package/dist/src/client/agent-client.d.ts.map +1 -1
- package/dist/src/client/agent-client.js +13 -0
- package/dist/src/client/agent-client.js.map +1 -1
- package/dist/src/client/types.d.ts +55 -1
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/server/define_config.d.ts +39 -3
- package/dist/src/server/define_config.d.ts.map +1 -1
- package/dist/src/server/define_config.js +46 -0
- package/dist/src/server/define_config.js.map +1 -1
- package/dist/src/server/gate.d.ts +17 -5
- package/dist/src/server/gate.d.ts.map +1 -1
- package/dist/src/server/gate.js +17 -5
- package/dist/src/server/gate.js.map +1 -1
- package/package.json +11 -9
- package/dist/spa/assets/index-DR5D-Xzw.js +0 -9
package/dist/spa/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>agent · governance console</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-CkOAJYbh.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="./assets/index-BYLm0nq8.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActorSpendRow, GovernanceRange, ListRunsFilter, ListRunsResult, ModelSpendRow, PendingApprovalRow, PendingApprovalsFilter, PerToolStatRow, QuotaToday, RunDetail, RunReliability, ThreadActivityRow, ToolCallActivityRow, ToolStatsRange, UsageTrendPoint } from './types.js';
|
|
1
|
+
import type { ActorSpendRow, CurrentModelPrice, GovernanceRange, GovernanceThreadDetail, ListRunsFilter, ListRunsResult, ModelPriceInput, ModelSpendRow, PendingApprovalRow, PendingApprovalsFilter, PerToolStatRow, QuotaToday, RunDetail, RunReliability, ThreadActivityRow, ToolCallActivityRow, ToolStatsRange, UsageTrendPoint } from './types.js';
|
|
2
2
|
/** Thrown on a non-2xx governance response, carrying the HTTP status for the UI to branch on. */
|
|
3
3
|
export declare class AgentApiError extends Error {
|
|
4
4
|
readonly status: number;
|
|
@@ -31,6 +31,8 @@ export declare class AgentClient {
|
|
|
31
31
|
usageTrend(range: GovernanceRange): Promise<UsageTrendPoint[]>;
|
|
32
32
|
recentToolCalls(limit?: number): Promise<ToolCallActivityRow[]>;
|
|
33
33
|
recentThreads(limit?: number): Promise<ThreadActivityRow[]>;
|
|
34
|
+
/** `GET /agent/governance/threads/:id` — one thread's governance drill-down, or `null` if unknown. */
|
|
35
|
+
threadDetail(threadId: string): Promise<GovernanceThreadDetail | null>;
|
|
34
36
|
quotaToday(): Promise<QuotaToday>;
|
|
35
37
|
/** `GET /agent/governance/runs` — filterable, cursor-paginated run list, newest-first. */
|
|
36
38
|
listRuns(filter?: ListRunsFilter): Promise<ListRunsResult>;
|
|
@@ -50,6 +52,12 @@ export declare class AgentClient {
|
|
|
50
52
|
rejectToolCall(runId: string, toolCallId: string, reason?: string): Promise<{
|
|
51
53
|
ok: boolean;
|
|
52
54
|
}>;
|
|
55
|
+
/** `GET /agent/governance/pricing` — every model's current per-1M rates. */
|
|
56
|
+
pricing(): Promise<CurrentModelPrice[]>;
|
|
57
|
+
/** `POST /agent/governance/pricing` — upsert one model's rate (atomic supersede). */
|
|
58
|
+
upsertPrice(input: ModelPriceInput): Promise<{
|
|
59
|
+
ok: boolean;
|
|
60
|
+
}>;
|
|
53
61
|
}
|
|
54
62
|
export {};
|
|
55
63
|
//# sourceMappingURL=agent-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,iGAAiG;AACjG,qBAAa,aAAc,SAAQ,KAAK;IAGpC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM;CAK1B;AAED,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,OAAO,GAAE,kBAAuB;YAM9B,GAAG;YAcH,IAAI;IAalB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO9D,eAAe,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAMnE,aAAa,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI/D,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAMjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAW9D,qFAAqF;IACrF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAInD,yFAAyF;IACzF,gBAAgB,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAMpF,4FAA4F;IAC5F,YAAY,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOnE,kGAAkG;IAClG,cAAc,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IASnE,gFAAgF;IAChF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5E,qGAAqG;IACrG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,iGAAiG;AACjG,qBAAa,aAAc,SAAQ,KAAK;IAGpC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM;CAK1B;AAED,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,OAAO,GAAE,kBAAuB;YAM9B,GAAG;YAcH,IAAI;IAalB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO9D,eAAe,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAMnE,aAAa,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI/D,sGAAsG;IACtG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAMtE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAMjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAW9D,qFAAqF;IACrF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAInD,yFAAyF;IACzF,gBAAgB,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAMpF,4FAA4F;IAC5F,YAAY,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOnE,kGAAkG;IAClG,cAAc,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IASnE,gFAAgF;IAChF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5E,qGAAqG;IACrG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAU5F,4EAA4E;IAC5E,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIvC,qFAAqF;IACrF,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;CAG9D"}
|
|
@@ -74,6 +74,10 @@ export class AgentClient {
|
|
|
74
74
|
recentThreads(limit = this.limit) {
|
|
75
75
|
return this.get('/governance/threads/recent', { limit: String(limit) });
|
|
76
76
|
}
|
|
77
|
+
/** `GET /agent/governance/threads/:id` — one thread's governance drill-down, or `null` if unknown. */
|
|
78
|
+
threadDetail(threadId) {
|
|
79
|
+
return this.get(`/governance/threads/${encodeURIComponent(threadId)}`);
|
|
80
|
+
}
|
|
77
81
|
quotaToday() {
|
|
78
82
|
return this.get('/quota/today');
|
|
79
83
|
}
|
|
@@ -137,5 +141,14 @@ export class AgentClient {
|
|
|
137
141
|
...(reason ? { reason } : {}),
|
|
138
142
|
});
|
|
139
143
|
}
|
|
144
|
+
// ── Model pricing — mounted only when the server binds a pricing store alongside governance. ──
|
|
145
|
+
/** `GET /agent/governance/pricing` — every model's current per-1M rates. */
|
|
146
|
+
pricing() {
|
|
147
|
+
return this.get('/governance/pricing');
|
|
148
|
+
}
|
|
149
|
+
/** `POST /agent/governance/pricing` — upsert one model's rate (atomic supersede). */
|
|
150
|
+
upsertPrice(input) {
|
|
151
|
+
return this.post('/governance/pricing', input);
|
|
152
|
+
}
|
|
140
153
|
}
|
|
141
154
|
//# sourceMappingURL=agent-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -180,9 +180,24 @@ export interface PerToolStatRow {
|
|
|
180
180
|
/** Mean `executionMs` across calls that recorded one; `null` when none did. */
|
|
181
181
|
avgDurationMs: number | null;
|
|
182
182
|
}
|
|
183
|
+
/** Run count + failure count for one agent, part of {@link RunReliability.byAgent}. */
|
|
184
|
+
export interface RunAgentBreakdownRow {
|
|
185
|
+
agentName: string | null;
|
|
186
|
+
runs: number;
|
|
187
|
+
failed: number;
|
|
188
|
+
/** completed / runs for this agent, 0 when runs = 0. */
|
|
189
|
+
successRate: number;
|
|
190
|
+
}
|
|
191
|
+
/** One day's run volume + failure count, part of {@link RunReliability.trend}. */
|
|
192
|
+
export interface RunTrendPoint {
|
|
193
|
+
day: string;
|
|
194
|
+
runs: number;
|
|
195
|
+
failed: number;
|
|
196
|
+
}
|
|
183
197
|
/**
|
|
184
198
|
* `GET /agent/governance/reliability` — aggregated run reliability over a range (success / failure /
|
|
185
|
-
* cancel rates + mean settled duration)
|
|
199
|
+
* cancel rates + mean settled duration), plus an optional per-agent breakdown and daily trend (an
|
|
200
|
+
* older server may omit both).
|
|
186
201
|
*/
|
|
187
202
|
export interface RunReliability {
|
|
188
203
|
runs: number;
|
|
@@ -198,5 +213,44 @@ export interface RunReliability {
|
|
|
198
213
|
cancelRate: number;
|
|
199
214
|
/** Mean duration of settled (completed/failed/cancelled) runs in ms; `null` when none settled. */
|
|
200
215
|
avgDurationMs: number | null;
|
|
216
|
+
/** Run/failure counts grouped by agent, highest call count first. */
|
|
217
|
+
byAgent?: RunAgentBreakdownRow[];
|
|
218
|
+
/** Daily run/failure counts over the same range, oldest first. */
|
|
219
|
+
trend?: RunTrendPoint[];
|
|
220
|
+
}
|
|
221
|
+
/** Thread metadata + LIFETIME usage rollup (not range-scoped) for the thread governance drill-down. */
|
|
222
|
+
export interface GovernanceThreadDetail {
|
|
223
|
+
threadId: string;
|
|
224
|
+
title: string;
|
|
225
|
+
actorRef: string;
|
|
226
|
+
createdAt: string;
|
|
227
|
+
updatedAt: string;
|
|
228
|
+
/** `true` when the thread has been soft-deleted (the record is still readable here). */
|
|
229
|
+
deleted: boolean;
|
|
230
|
+
usage: {
|
|
231
|
+
totalTokens: number;
|
|
232
|
+
/** `null` when the thread has no priced usage at all (not the same as a $0 total). */
|
|
233
|
+
costUsd: number | null;
|
|
234
|
+
runCount: number;
|
|
235
|
+
messageCount: number;
|
|
236
|
+
};
|
|
237
|
+
/** Newest-first, capped by the server. */
|
|
238
|
+
runs: RunSummaryRow[];
|
|
239
|
+
/** Newest-first, capped by the server. */
|
|
240
|
+
messages: RunMessageRow[];
|
|
241
|
+
}
|
|
242
|
+
/** A per-1M-token price for one model, for `POST /agent/governance/pricing`. */
|
|
243
|
+
export interface ModelPriceInput {
|
|
244
|
+
modelId: string;
|
|
245
|
+
inputPricePer1m: number;
|
|
246
|
+
outputPricePer1m: number;
|
|
247
|
+
/** Per-1M price for cache-write (prompt-cache) input tokens. Omit → priced at the input rate. */
|
|
248
|
+
cacheWritePricePer1m?: number;
|
|
249
|
+
/** Per-1M price for cache-read (prompt-cache) input tokens. Omit → priced at the input rate. */
|
|
250
|
+
cacheReadPricePer1m?: number;
|
|
251
|
+
}
|
|
252
|
+
/** A current price row as read back from `GET /agent/governance/pricing`. */
|
|
253
|
+
export interface CurrentModelPrice extends ModelPriceInput {
|
|
254
|
+
effectiveFrom: string;
|
|
201
255
|
}
|
|
202
256
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Actor } from '@adonis-agora/agent';
|
|
1
|
+
import type { Actor, AgentGovernanceAuthorize } from '@adonis-agora/agent';
|
|
2
2
|
import type { HttpContext } from '@adonisjs/core/http';
|
|
3
3
|
/**
|
|
4
4
|
* An extra authorization gate for the dashboard, run AFTER the agent config's `actorResolver` has
|
|
@@ -13,13 +13,19 @@ export type AgentDashboardAuthorize = (actor: Actor, ctx: HttpContext) => boolea
|
|
|
13
13
|
* toggles it on/off, optionally overrides the mount path, and optionally adds an `authorize` gate.
|
|
14
14
|
*/
|
|
15
15
|
export interface AgentDashboardConfig {
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Mount the SPA. Default `true` — set `false` to keep the routes off entirely. Note `true` is
|
|
18
|
+
* necessary but not sufficient: the console also needs the agent's `governanceAuthorize` gate, see
|
|
19
|
+
* {@link decideDashboardMount}.
|
|
20
|
+
*/
|
|
17
21
|
enabled?: boolean;
|
|
18
22
|
/** Override the mount path. Default `<agentPath>/dashboard`. */
|
|
19
23
|
path?: string;
|
|
20
24
|
/**
|
|
21
25
|
* Extra authorization run after the actor resolves. Return `false` to deny (`403`). Omit to allow
|
|
22
|
-
* any resolved actor (the default)
|
|
26
|
+
* any resolved actor (the default) — note this is only an EXTRA gate on the SPA shell; whether the
|
|
27
|
+
* console mounts at all, and whether its data is readable, is decided by the agent config's
|
|
28
|
+
* `governanceAuthorize`.
|
|
23
29
|
*/
|
|
24
30
|
authorize?: AgentDashboardAuthorize;
|
|
25
31
|
}
|
|
@@ -30,4 +36,34 @@ export interface ResolvedAgentDashboardConfig {
|
|
|
30
36
|
}
|
|
31
37
|
/** Fill defaults for the optional dashboard config block. */
|
|
32
38
|
export declare function resolveDashboardConfig(config: AgentDashboardConfig | undefined): ResolvedAgentDashboardConfig;
|
|
39
|
+
/** Whether the provider registers the console's routes, and (when it refuses) what to say about it. */
|
|
40
|
+
export type DashboardMountDecision = {
|
|
41
|
+
mount: true;
|
|
42
|
+
} | {
|
|
43
|
+
mount: false;
|
|
44
|
+
reason: 'disabled';
|
|
45
|
+
} | {
|
|
46
|
+
mount: false;
|
|
47
|
+
reason: 'no-governance-gate';
|
|
48
|
+
warning: string;
|
|
49
|
+
} | {
|
|
50
|
+
mount: false;
|
|
51
|
+
reason: 'no-governance-queries';
|
|
52
|
+
warning: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Decide whether to register the console's routes at all — the router-free core of the provider's
|
|
56
|
+
* mount check, extracted so it can be unit tested without booting an app.
|
|
57
|
+
*
|
|
58
|
+
* The console is a pure consumer of the agent's cross-actor `/agent/governance/*` read routes, and
|
|
59
|
+
* those routes are not mounted unless the agent config carries a `governanceAuthorize` gate. Serving
|
|
60
|
+
* a shell that can only 404 its own data is worse than not serving it: the failure shows up as seven
|
|
61
|
+
* dead panels at click time with nothing anywhere explaining why. So the console follows the same
|
|
62
|
+
* fail-closed-by-omission rule one layer down — no gate, no routes — and says so at boot.
|
|
63
|
+
*
|
|
64
|
+
* This costs nothing that still works: every app affected is an app whose console is ALREADY dead in
|
|
65
|
+
* every view but Quota. `dashboard.authorize` is deliberately NOT the trigger; it gates the shell,
|
|
66
|
+
* not the data, and an app can set it and still have a console with nothing to render.
|
|
67
|
+
*/
|
|
68
|
+
export declare function decideDashboardMount(enabled: boolean, governanceAuthorize: AgentGovernanceAuthorize | undefined, governanceQueries?: unknown): DashboardMountDecision;
|
|
33
69
|
//# sourceMappingURL=define_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/server/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/server/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,CACpC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,WAAW,KACb,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,GAAG,SAAS,GACvC,4BAA4B,CAK9B;AAED,uGAAuG;AACvG,MAAM,MAAM,sBAAsB,GAC9B;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoBvE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,EACzD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,sBAAsB,CAgBxB"}
|
|
@@ -7,4 +7,50 @@ export function resolveDashboardConfig(config) {
|
|
|
7
7
|
resolved.authorize = config.authorize;
|
|
8
8
|
return resolved;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* The exact wording the provider logs when it declines to mount. Mirrors the agent provider's own
|
|
12
|
+
* governance boot warning — same three facts, same vocabulary — so a reader who sees one recognises
|
|
13
|
+
* the other.
|
|
14
|
+
*/
|
|
15
|
+
const NO_GOVERNANCE_GATE_WARNING = '[@adonis-agora/agent-dashboard] the governance console was NOT mounted: every panel but Quota reads the cross-actor `/agent/governance/*` routes, and those are themselves not mounted because no `governanceAuthorize` gate is configured — so the console would load and then fail on every panel. Set `governanceAuthorize` in config/agent.ts (e.g. an ADMIN check) to mount the routes and this console gated, or `governanceAuthorize: () => true` to deliberately restore the old behaviour of letting ANY authenticated actor read them. `GET /agent/approvals/mine` is unaffected — it stays mounted and scoped to the calling actor. To keep the console off on purpose and silence this, set `dashboard: { enabled: false }`.';
|
|
16
|
+
/**
|
|
17
|
+
* The wording logged when the read-model itself was turned off. Deliberately distinct from
|
|
18
|
+
* {@link NO_GOVERNANCE_GATE_WARNING}: both produce the same dead console, and an operator staring at
|
|
19
|
+
* a 404 must be able to tell from the log ALONE which of the two knobs is responsible. A shared
|
|
20
|
+
* "governance is not configured" message would recreate exactly the diagnosability problem this
|
|
21
|
+
* check exists to remove.
|
|
22
|
+
*/
|
|
23
|
+
const NO_GOVERNANCE_QUERIES_WARNING = '[@adonis-agora/agent-dashboard] the governance console was NOT mounted: `governanceQueries` is set to `false` in config/agent.ts, so the cross-actor read-model was never built and the `/agent/governance/*` routes it serves do not exist — the console would load and then fail on every panel but Quota. A `governanceAuthorize` gate is NOT the missing piece here; it is already configured. Remove `governanceQueries: false` (omit it to get the Lucid read-model when the main store is Lucid, or pass a store/factory explicitly) to mount the read-model and this console. To keep the console off on purpose and silence this, set `dashboard: { enabled: false }`.';
|
|
24
|
+
/**
|
|
25
|
+
* Decide whether to register the console's routes at all — the router-free core of the provider's
|
|
26
|
+
* mount check, extracted so it can be unit tested without booting an app.
|
|
27
|
+
*
|
|
28
|
+
* The console is a pure consumer of the agent's cross-actor `/agent/governance/*` read routes, and
|
|
29
|
+
* those routes are not mounted unless the agent config carries a `governanceAuthorize` gate. Serving
|
|
30
|
+
* a shell that can only 404 its own data is worse than not serving it: the failure shows up as seven
|
|
31
|
+
* dead panels at click time with nothing anywhere explaining why. So the console follows the same
|
|
32
|
+
* fail-closed-by-omission rule one layer down — no gate, no routes — and says so at boot.
|
|
33
|
+
*
|
|
34
|
+
* This costs nothing that still works: every app affected is an app whose console is ALREADY dead in
|
|
35
|
+
* every view but Quota. `dashboard.authorize` is deliberately NOT the trigger; it gates the shell,
|
|
36
|
+
* not the data, and an app can set it and still have a console with nothing to render.
|
|
37
|
+
*/
|
|
38
|
+
export function decideDashboardMount(enabled, governanceAuthorize, governanceQueries) {
|
|
39
|
+
if (!enabled)
|
|
40
|
+
return { mount: false, reason: 'disabled' };
|
|
41
|
+
if (governanceAuthorize === undefined) {
|
|
42
|
+
return { mount: false, reason: 'no-governance-gate', warning: NO_GOVERNANCE_GATE_WARNING };
|
|
43
|
+
}
|
|
44
|
+
// ONLY an explicit `false` is decidable here. `undefined` does NOT mean "no read-model": the agent
|
|
45
|
+
// provider's `#resolveGovernance` defaults it to the Lucid read-model whenever the main store is
|
|
46
|
+
// Lucid, and reproducing that resolution would duplicate provider logic in the dashboard.
|
|
47
|
+
if (governanceQueries === false) {
|
|
48
|
+
return {
|
|
49
|
+
mount: false,
|
|
50
|
+
reason: 'no-governance-queries',
|
|
51
|
+
warning: NO_GOVERNANCE_QUERIES_WARNING,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return { mount: true };
|
|
55
|
+
}
|
|
10
56
|
//# sourceMappingURL=define_config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/server/define_config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/server/define_config.ts"],"names":[],"mappings":"AA2CA,6DAA6D;AAC7D,MAAM,UAAU,sBAAsB,CACpC,MAAwC;IAExC,MAAM,QAAQ,GAAiC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;IACpF,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;QAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5D,IAAI,MAAM,EAAE,SAAS,KAAK,SAAS;QAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AASD;;;;GAIG;AACH,MAAM,0BAA0B,GAC9B,0sBAA0sB,CAAC;AAE7sB;;;;;;GAMG;AACH,MAAM,6BAA6B,GACjC,ipBAAipB,CAAC;AAEppB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,mBAAyD,EACzD,iBAA2B;IAE3B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1D,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAC7F,CAAC;IACD,mGAAmG;IACnG,iGAAiG;IACjG,0FAA0F;IAC1F,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,6BAA6B;SACvC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -11,11 +11,23 @@ export type DashboardGateVerdict = {
|
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Decide whether a request may reach the dashboard, WITHOUT touching the response — so it is unit
|
|
14
|
-
* testable free of the AdonisJS router/app
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* testable free of the AdonisJS router/app: resolve the actor through the agent config's resolver
|
|
15
|
+
* (missing/failed → `401`), then run the optional `authorize` gate over the resolved actor
|
|
16
|
+
* (denied/threw → `403`).
|
|
17
|
+
*
|
|
18
|
+
* This gates the SPA **shell**, and only the shell. It is NOT what decides whether the console's data
|
|
19
|
+
* is readable, and it is no longer the last line of defence it once had to be:
|
|
20
|
+
*
|
|
21
|
+
* - Whether the console mounts at all is decided earlier, by {@link decideDashboardMount} — the
|
|
22
|
+
* routes are not registered unless the agent config carries a `governanceAuthorize` gate AND its
|
|
23
|
+
* `governanceQueries` read-model exists. So this function never runs for a console that could only
|
|
24
|
+
* 404 its own panels.
|
|
25
|
+
* - Whether the DATA is readable is decided by the agent's own `governanceAuthorize` on the
|
|
26
|
+
* `/agent/governance/*` routes, not here. Omitting `authorize` while a gate is configured leaves
|
|
27
|
+
* the shell open to any resolved actor but exposes no cross-actor data.
|
|
28
|
+
*
|
|
29
|
+
* Omitting BOTH the resolver and `authorize` would expose the shell to any request; the provider is
|
|
30
|
+
* expected to short-circuit on a missing resolver via the `401` here.
|
|
19
31
|
*/
|
|
20
32
|
export declare function evaluateDashboardGate(ctx: HttpContext, actorResolver: ActorResolver | undefined, authorize?: AgentDashboardAuthorize): Promise<DashboardGateVerdict>;
|
|
21
33
|
//# sourceMappingURL=gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/server/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/server/gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,gGAAgG;AAChG,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,SAAS,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,oBAAoB,CAAC,CA4B/B"}
|
package/dist/src/server/gate.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Decide whether a request may reach the dashboard, WITHOUT touching the response — so it is unit
|
|
3
|
-
* testable free of the AdonisJS router/app
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* testable free of the AdonisJS router/app: resolve the actor through the agent config's resolver
|
|
4
|
+
* (missing/failed → `401`), then run the optional `authorize` gate over the resolved actor
|
|
5
|
+
* (denied/threw → `403`).
|
|
6
|
+
*
|
|
7
|
+
* This gates the SPA **shell**, and only the shell. It is NOT what decides whether the console's data
|
|
8
|
+
* is readable, and it is no longer the last line of defence it once had to be:
|
|
9
|
+
*
|
|
10
|
+
* - Whether the console mounts at all is decided earlier, by {@link decideDashboardMount} — the
|
|
11
|
+
* routes are not registered unless the agent config carries a `governanceAuthorize` gate AND its
|
|
12
|
+
* `governanceQueries` read-model exists. So this function never runs for a console that could only
|
|
13
|
+
* 404 its own panels.
|
|
14
|
+
* - Whether the DATA is readable is decided by the agent's own `governanceAuthorize` on the
|
|
15
|
+
* `/agent/governance/*` routes, not here. Omitting `authorize` while a gate is configured leaves
|
|
16
|
+
* the shell open to any resolved actor but exposes no cross-actor data.
|
|
17
|
+
*
|
|
18
|
+
* Omitting BOTH the resolver and `authorize` would expose the shell to any request; the provider is
|
|
19
|
+
* expected to short-circuit on a missing resolver via the `401` here.
|
|
8
20
|
*/
|
|
9
21
|
export async function evaluateDashboardGate(ctx, actorResolver, authorize) {
|
|
10
22
|
if (actorResolver === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/server/gate.ts"],"names":[],"mappings":"AAOA
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/server/gate.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAgB,EAChB,aAAwC,EACxC,SAAmC;IAEnC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,KAAoD,CAAC;IACzD,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;SAC/D,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;aAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/agent-dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Read-only governance console (spend by model/actor, usage trend, recent threads & tool calls, quota) for @adonis-agora/agent — a dependency-light React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -45,19 +45,19 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@adonisjs/core": "
|
|
48
|
+
"@adonisjs/core": "7.4.0",
|
|
49
49
|
"@testing-library/react": "^16.1.0",
|
|
50
50
|
"@types/node": "^22.0.0",
|
|
51
|
-
"@types/react": "
|
|
52
|
-
"@types/react-dom": "
|
|
51
|
+
"@types/react": "19.2.18",
|
|
52
|
+
"@types/react-dom": "19.2.4",
|
|
53
53
|
"@vitejs/plugin-react": "^4.3.4",
|
|
54
54
|
"jsdom": "^25.0.1",
|
|
55
|
-
"react": "
|
|
56
|
-
"react-dom": "
|
|
55
|
+
"react": "19.2.8",
|
|
56
|
+
"react-dom": "19.2.8",
|
|
57
57
|
"typescript": "^5.4.0",
|
|
58
58
|
"vite": "^7.0.0",
|
|
59
59
|
"vitest": "^3.0.0",
|
|
60
|
-
"@adonis-agora/agent": "0.
|
|
60
|
+
"@adonis-agora/agent": "0.20.0"
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|
|
63
63
|
"node": ">=22.0.0"
|
|
@@ -76,9 +76,11 @@
|
|
|
76
76
|
"agora"
|
|
77
77
|
],
|
|
78
78
|
"scripts": {
|
|
79
|
-
"build": "vite build && tsc -p tsconfig.json",
|
|
79
|
+
"build": "pnpm run clean && vite build && tsc -p tsconfig.build.json && pnpm run check:dist",
|
|
80
|
+
"check:dist": "node ../../scripts/assert-build-output.mjs dist providers/agent_dashboard_provider.js",
|
|
81
|
+
"clean": "rm -rf dist",
|
|
80
82
|
"test": "vitest run --passWithNoTests",
|
|
81
83
|
"test:watch": "vitest",
|
|
82
|
-
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.app.json --noEmit"
|
|
84
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.app.json --noEmit && tsc -p tsconfig.tests.json"
|
|
83
85
|
}
|
|
84
86
|
}
|