@beacon-build/sdk 1.49.2 → 1.49.4
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 +17 -0
- package/dist/clients/ops/agents-mint-ops.client.d.ts +21 -0
- package/dist/clients/ops/agents-mint-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-mint-ops.client.js +35 -0
- package/dist/clients/ops/agents-mint-ops.client.js.map +1 -0
- package/dist/clients/ops/agents-ops.client.d.ts +4 -11
- package/dist/clients/ops/agents-ops.client.d.ts.map +1 -1
- package/dist/clients/ops/agents-ops.client.js +8 -33
- package/dist/clients/ops/agents-ops.client.js.map +1 -1
- package/dist/clients/ops/agents-stats-ops.client.d.ts +19 -0
- package/dist/clients/ops/agents-stats-ops.client.d.ts.map +1 -0
- package/dist/clients/ops/agents-stats-ops.client.js +10 -0
- package/dist/clients/ops/agents-stats-ops.client.js.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @beacon-build/sdk Changelog
|
|
2
2
|
|
|
3
|
+
## 1.49.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a6bc86b: T266: add GET /api/v1/agents/:id/stats (Ops-Auth-gated agent stats — task stats + sessionCount + lastSeen) and the AgentsOpsClient.stats() SDK method, so a public consumer (beacon-web) can read agent stats via an Argus system-JWT without an admin-user credential.
|
|
8
|
+
- Updated dependencies [a6bc86b]
|
|
9
|
+
- @beacon-build/core@1.49.4
|
|
10
|
+
|
|
11
|
+
## 1.49.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [6664843]
|
|
16
|
+
- Updated dependencies [3a6d1e5]
|
|
17
|
+
- Updated dependencies [2a90285]
|
|
18
|
+
- @beacon-build/core@1.49.3
|
|
19
|
+
|
|
3
20
|
## 1.49.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { OpsApiClient } from '../../transport/ops-api-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Replaces the inline `resolveAgentAndGenerateJwt` duplicated in janitor and sidecar. THROWS
|
|
4
|
+
* if the agent is not found or the mint fails — callers surface the error.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately does NOT go through `byAlias()` — that method swallows every failure (network,
|
|
7
|
+
* 5xx, 404 alike) into `null`, which would make a transient resolve failure here
|
|
8
|
+
* indistinguishable from a genuine "no such agent" and misreport it as "not found". This does
|
|
9
|
+
* its own GET and only degrades a real `not_found` into the friendly not-found message; any
|
|
10
|
+
* other failure (network/5xx/etc.) propagates as-is so the caller can tell them apart.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveSystemAgentAndMintToken(api: OpsApiClient, issueSystemToken: (agentId: string, project: string) => Promise<{
|
|
13
|
+
token: string;
|
|
14
|
+
expiresAt: string;
|
|
15
|
+
seat?: string;
|
|
16
|
+
}>, alias: string, project: string): Promise<{
|
|
17
|
+
agentId: string;
|
|
18
|
+
token: string;
|
|
19
|
+
expiresAt: string;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=agents-mint-ops.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-mint-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-mint-ops.client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAGrE;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAChD,GAAG,EAAE,YAAY,EACjB,gBAAgB,EAAE,CACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,KACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACjE,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBhE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SdkError } from '../../transport/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Replaces the inline `resolveAgentAndGenerateJwt` duplicated in janitor and sidecar. THROWS
|
|
4
|
+
* if the agent is not found or the mint fails — callers surface the error.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately does NOT go through `byAlias()` — that method swallows every failure (network,
|
|
7
|
+
* 5xx, 404 alike) into `null`, which would make a transient resolve failure here
|
|
8
|
+
* indistinguishable from a genuine "no such agent" and misreport it as "not found". This does
|
|
9
|
+
* its own GET and only degrades a real `not_found` into the friendly not-found message; any
|
|
10
|
+
* other failure (network/5xx/etc.) propagates as-is so the caller can tell them apart.
|
|
11
|
+
*/
|
|
12
|
+
export async function resolveSystemAgentAndMintToken(api, issueSystemToken, alias, project) {
|
|
13
|
+
const params = new URLSearchParams({ alias, project });
|
|
14
|
+
let agent;
|
|
15
|
+
try {
|
|
16
|
+
// C606/CON-25: `{ data }` envelope (see `byAlias`). Argus mint boundary — a silent
|
|
17
|
+
// `undefined` here fails the process at boot, so keep the unwrap explicit.
|
|
18
|
+
const res = await api.get(`/api/v1/agents/by-alias?${params.toString()}`);
|
|
19
|
+
agent = res?.data ?? null;
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
if (err instanceof SdkError && err.code === 'not_found') {
|
|
23
|
+
agent = null;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
throw err;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (!agent?.id) {
|
|
30
|
+
throw new Error(`System agent ${project}/${alias} not found`);
|
|
31
|
+
}
|
|
32
|
+
const { token, expiresAt } = await issueSystemToken(agent.id, project);
|
|
33
|
+
return { agentId: agent.id, token, expiresAt };
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=agents-mint-ops.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-mint-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-mint-ops.client.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,GAAiB,EACjB,gBAGiE,EACjE,KAAa,EACb,OAAe;IAEf,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACtD,IAAI,KAA6B,CAAA;IACjC,IAAI,CAAC;QACD,mFAAmF;QACnF,2EAA2E;QAC3E,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CACrB,2BAA2B,MAAM,CAAC,QAAQ,EAAE,EAAE,CACjD,CAAA;QACD,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,CAAA;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtD,KAAK,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,IAAI,KAAK,YAAY,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACtE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAClD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AgentDto, AgentSummaryDto, ActiveAgentSessionDto } from '@beacon-build/core';
|
|
2
2
|
import type { OpsApiClient } from '../../transport/ops-api-client.js';
|
|
3
|
+
import * as statsOps from './agents-stats-ops.client.js';
|
|
3
4
|
export interface AffinityResult {
|
|
4
5
|
agentId: string;
|
|
5
6
|
alias: string;
|
|
@@ -100,17 +101,7 @@ export declare class AgentsOpsClient {
|
|
|
100
101
|
expiresAt: string;
|
|
101
102
|
seat?: string;
|
|
102
103
|
}>;
|
|
103
|
-
/**
|
|
104
|
-
* B452: DRY helper — resolves a system agent by alias+project and mints a system token.
|
|
105
|
-
* Replaces the inline `resolveAgentAndGenerateJwt` duplicated in janitor and sidecar.
|
|
106
|
-
* THROWS if the agent is not found or the mint fails — callers surface the error.
|
|
107
|
-
*
|
|
108
|
-
* Deliberately does NOT go through `byAlias()` above — that method swallows every failure
|
|
109
|
-
* (network, 5xx, 404 alike) into `null`, which would make a transient resolve failure here
|
|
110
|
-
* indistinguishable from a genuine "no such agent" and misreport it as "not found". This
|
|
111
|
-
* does its own GET and only degrades a real `not_found` into the friendly not-found message;
|
|
112
|
-
* any other failure (network/5xx/etc.) propagates as-is so the caller can tell them apart.
|
|
113
|
-
*/
|
|
104
|
+
/** B452: see `agents-mint-ops.client.ts` (loc-guard extraction) for the doc comment. */
|
|
114
105
|
resolveSystemAgentAndMintToken(alias: string, project: string): Promise<{
|
|
115
106
|
agentId: string;
|
|
116
107
|
token: string;
|
|
@@ -118,5 +109,7 @@ export declare class AgentsOpsClient {
|
|
|
118
109
|
}>;
|
|
119
110
|
/** @deprecated Use ops.projects.upsert() instead */
|
|
120
111
|
upsertProject(slug: string): Promise<void>;
|
|
112
|
+
/** T266: see `agents-stats-ops.client.ts` (loc-guard extraction) for the doc comment. */
|
|
113
|
+
stats(agentId: string): ReturnType<typeof statsOps.stats>;
|
|
121
114
|
}
|
|
122
115
|
//# sourceMappingURL=agents-ops.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"agents-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as statsOps from './agents-stats-ops.client.js';
|
|
2
|
+
import * as mintOps from './agents-mint-ops.client.js';
|
|
2
3
|
export class AgentsOpsClient {
|
|
3
4
|
api;
|
|
4
5
|
constructor(api) {
|
|
@@ -186,43 +187,17 @@ export class AgentsOpsClient {
|
|
|
186
187
|
throw new Error(`agent-token issuance failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
|
-
/**
|
|
190
|
-
* B452: DRY helper — resolves a system agent by alias+project and mints a system token.
|
|
191
|
-
* Replaces the inline `resolveAgentAndGenerateJwt` duplicated in janitor and sidecar.
|
|
192
|
-
* THROWS if the agent is not found or the mint fails — callers surface the error.
|
|
193
|
-
*
|
|
194
|
-
* Deliberately does NOT go through `byAlias()` above — that method swallows every failure
|
|
195
|
-
* (network, 5xx, 404 alike) into `null`, which would make a transient resolve failure here
|
|
196
|
-
* indistinguishable from a genuine "no such agent" and misreport it as "not found". This
|
|
197
|
-
* does its own GET and only degrades a real `not_found` into the friendly not-found message;
|
|
198
|
-
* any other failure (network/5xx/etc.) propagates as-is so the caller can tell them apart.
|
|
199
|
-
*/
|
|
190
|
+
/** B452: see `agents-mint-ops.client.ts` (loc-guard extraction) for the doc comment. */
|
|
200
191
|
async resolveSystemAgentAndMintToken(alias, project) {
|
|
201
|
-
|
|
202
|
-
let agent;
|
|
203
|
-
try {
|
|
204
|
-
// C606/CON-25: `{ data }` envelope (see `byAlias`). Argus mint boundary — a silent
|
|
205
|
-
// `undefined` here fails the process at boot, so keep the unwrap explicit.
|
|
206
|
-
const res = await this.api.get(`/api/v1/agents/by-alias?${params.toString()}`);
|
|
207
|
-
agent = res?.data ?? null;
|
|
208
|
-
}
|
|
209
|
-
catch (err) {
|
|
210
|
-
if (err instanceof SdkError && err.code === 'not_found') {
|
|
211
|
-
agent = null;
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
throw err;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (!agent?.id) {
|
|
218
|
-
throw new Error(`System agent ${project}/${alias} not found`);
|
|
219
|
-
}
|
|
220
|
-
const { token, expiresAt } = await this.issueSystemToken(agent.id, project);
|
|
221
|
-
return { agentId: agent.id, token, expiresAt };
|
|
192
|
+
return mintOps.resolveSystemAgentAndMintToken(this.api, (agentId, proj) => this.issueSystemToken(agentId, proj), alias, project);
|
|
222
193
|
}
|
|
223
194
|
/** @deprecated Use ops.projects.upsert() instead */
|
|
224
195
|
async upsertProject(slug) {
|
|
225
196
|
await this.api.post('/api/v1/projects/upsert', { slug }).catch(() => { });
|
|
226
197
|
}
|
|
198
|
+
/** T266: see `agents-stats-ops.client.ts` (loc-guard extraction) for the doc comment. */
|
|
199
|
+
async stats(agentId) {
|
|
200
|
+
return statsOps.stats(this.api, agentId);
|
|
201
|
+
}
|
|
227
202
|
}
|
|
228
203
|
//# sourceMappingURL=agents-ops.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"agents-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-ops.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T266: Ops-gated agent stats (GET /api/v1/agents/:id/stats) — extracted out of
|
|
3
|
+
* `agents-ops.client.ts` (loc-guard, that file was at the 300-line threshold). Same
|
|
4
|
+
* shape as `tasks-pr.client.ts`'s extraction: a plain function taking the `OpsApiClient`
|
|
5
|
+
* as its first param, delegated to from `AgentsOpsClient.stats()`.
|
|
6
|
+
*
|
|
7
|
+
* The Argus-system-JWT-reachable mirror of the admin-only `AdminAgentsClient.taskStats`/
|
|
8
|
+
* `.get().sessionCount` pair. Same server-computed data, no new aggregation logic (see
|
|
9
|
+
* `services/api/src/routes/agents-stats-ops.ts`).
|
|
10
|
+
*/
|
|
11
|
+
import type { AgentStatsWithSessionDto } from '@beacon-build/core';
|
|
12
|
+
import type { OpsApiClient } from '../../transport/ops-api-client.js';
|
|
13
|
+
/**
|
|
14
|
+
* THROWS on failure (not-found included) — mirrors `LeadsOpsClient.get`/`taskStats`, never
|
|
15
|
+
* silently swallowed, so a caller (e.g. beacon-web's public crew profile page) can tell
|
|
16
|
+
* "agent has no stats yet" apart from a real transport/auth failure.
|
|
17
|
+
*/
|
|
18
|
+
export declare function stats(api: OpsApiClient, agentId: string): Promise<AgentStatsWithSessionDto>;
|
|
19
|
+
//# sourceMappingURL=agents-stats-ops.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-stats-ops.client.d.ts","sourceRoot":"","sources":["../../../src/clients/ops/agents-stats-ops.client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAErE;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAKjG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THROWS on failure (not-found included) — mirrors `LeadsOpsClient.get`/`taskStats`, never
|
|
3
|
+
* silently swallowed, so a caller (e.g. beacon-web's public crew profile page) can tell
|
|
4
|
+
* "agent has no stats yet" apart from a real transport/auth failure.
|
|
5
|
+
*/
|
|
6
|
+
export async function stats(api, agentId) {
|
|
7
|
+
const res = await api.get(`/api/v1/agents/${encodeURIComponent(agentId)}/stats`);
|
|
8
|
+
return res.data;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=agents-stats-ops.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-stats-ops.client.js","sourceRoot":"","sources":["../../../src/clients/ops/agents-stats-ops.client.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAiB,EAAE,OAAe;IAC1D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CACrB,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CACxD,CAAA;IACD,OAAO,GAAG,CAAC,IAAI,CAAA;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beacon-build/sdk",
|
|
3
|
-
"version": "1.49.
|
|
3
|
+
"version": "1.49.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@types/react": "^19.2.0",
|
|
27
27
|
"@types/react-dom": "^19.2.0",
|
|
28
28
|
"event-source-polyfill": "^1.0.31",
|
|
29
|
-
"@beacon-build/core": "1.49.
|
|
29
|
+
"@beacon-build/core": "1.49.4"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@testing-library/react": "^16.3.2",
|