edgegate-mcp 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +7 -1
  2. package/dist/client.d.ts +19 -1
  3. package/dist/client.js +34 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/server.js +64 -0
  6. package/dist/server.js.map +1 -1
  7. package/dist/tools/check_byo_bucket.d.ts +12 -0
  8. package/dist/tools/check_byo_bucket.js +89 -0
  9. package/dist/tools/check_byo_bucket.js.map +1 -0
  10. package/dist/tools/check_status.d.ts +2 -2
  11. package/dist/tools/check_status.js +6 -1
  12. package/dist/tools/check_status.js.map +1 -1
  13. package/dist/tools/compare_runs.d.ts +2 -2
  14. package/dist/tools/create_pipeline.d.ts +4 -4
  15. package/dist/tools/disconnect_byo_bucket.d.ts +12 -0
  16. package/dist/tools/disconnect_byo_bucket.js +90 -0
  17. package/dist/tools/disconnect_byo_bucket.js.map +1 -0
  18. package/dist/tools/export_run_report.d.ts +2 -2
  19. package/dist/tools/export_run_report.js +4 -1
  20. package/dist/tools/export_run_report.js.map +1 -1
  21. package/dist/tools/get_audit_report.d.ts +2 -2
  22. package/dist/tools/get_audit_report.js +5 -1
  23. package/dist/tools/get_audit_report.js.map +1 -1
  24. package/dist/tools/get_byo_audit.d.ts +27 -0
  25. package/dist/tools/get_byo_audit.js +125 -0
  26. package/dist/tools/get_byo_audit.js.map +1 -0
  27. package/dist/tools/get_report.d.ts +1 -1
  28. package/dist/tools/list_devices.d.ts +25 -0
  29. package/dist/tools/list_devices.js +81 -0
  30. package/dist/tools/list_devices.js.map +1 -0
  31. package/dist/tools/register_byo_artifact.d.ts +27 -0
  32. package/dist/tools/register_byo_artifact.js +122 -0
  33. package/dist/tools/register_byo_artifact.js.map +1 -0
  34. package/dist/tools/register_byo_bucket.d.ts +24 -0
  35. package/dist/tools/register_byo_bucket.js +143 -0
  36. package/dist/tools/register_byo_bucket.js.map +1 -0
  37. package/dist/types.d.ts +98 -0
  38. package/dist/version.d.ts +2 -2
  39. package/dist/version.js +1 -1
  40. package/package.json +1 -1
  41. package/plugin.json +3 -2
  42. package/skills/edgegate-byo-storage.md +148 -0
package/README.md CHANGED
@@ -4,7 +4,7 @@ MCP server for [EdgeGate](https://edgegate.frozo.ai) — set up edge-AI regressi
4
4
 
5
5
  ## What does it do?
6
6
 
7
- EdgeGate runs AI model regression tests on real Snapdragon hardware via Qualcomm AI Hub, then produces signed evidence bundles you can attach to CI gates. This npm package exposes EdgeGate's REST API as 13 MCP tools, plus bundled skills, so you can drive the whole flow from a prompt:
7
+ EdgeGate runs AI model regression tests on real Snapdragon hardware via Qualcomm AI Hub, then produces signed evidence bundles you can attach to CI gates. This npm package exposes EdgeGate's REST API as 30+ MCP tools, plus bundled skills, so you can drive the whole flow from a prompt:
8
8
 
9
9
  ```
10
10
  > Use the edgegate MCP to set up a CI gate for my MobileNet ONNX model.
@@ -87,6 +87,11 @@ See [docs/tools.md](./docs/tools.md) for the full tool reference. Quick list:
87
87
  | `edgegate_list_promptpacks` | List all promptpacks in a workspace (id, version, case count, published status) |
88
88
  | `edgegate_create_promptpack` | Create a new promptpack with test cases (prompts, expected outputs, per-case overrides) |
89
89
  | `edgegate_publish_promptpack` | Publish a promptpack version so it is usable in pipelines (completes the create → publish → use lifecycle) |
90
+ | `edgegate_register_byo_bucket` | **Enterprise.** Register the workspace's own S3 bucket + IAM role as a BYO storage grant. Returns the External ID to paste into the role's trust policy |
91
+ | `edgegate_check_byo_bucket` | **Enterprise.** Re-run the AssumeRole + HeadObject readiness probe; renders the typed `BYO_*` error code with a fix checklist |
92
+ | `edgegate_register_byo_artifact` | **Enterprise.** Register an existing `s3://<bucket>/<key>` URI as an EdgeGate Artifact (no bytes uploaded — HeadObject only). Returns an `artifact_id` ready for `edgegate_create_pipeline` |
93
+ | `edgegate_disconnect_byo_bucket` | **Enterprise.** Delete the BYO grant. Refuses (409) if artifacts still reference it |
94
+ | `edgegate_get_byo_audit` | **Enterprise.** Paginated append-only audit log of every AssumeRole / HeadObject / GetObject / KMS Decrypt call. `aws_request_id` joins to your own CloudTrail |
90
95
 
91
96
  ## Skills
92
97
 
@@ -104,6 +109,7 @@ Slash commands you can invoke directly:
104
109
  - `/edgegate-workspace-setup` — bootstrap a brand-new workspace end-to-end (create → connect AI Hub → API key → invite teammates)
105
110
  - `/edgegate-members` — list / invite / change role / remove workspace members
106
111
  - `/edgegate-promptpacks` — list existing promptpacks or create a new one with generated test cases
112
+ - `/edgegate-byo-storage` — Enterprise BYO storage onboarding (register grant → paste External ID → verify probe → first artifact → first run → audit log)
107
113
 
108
114
  ## License
109
115
 
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { APIKeyCreateResponse, APIKeyCreatedResponse, APIKeyListItem, HFImportJob, HuggingFaceConnectResponse, HuggingFaceIntegrationStatus, InputSpec, Member, Pipeline, PromptPackCreateBody, PromptPackSummary, QaihubIntegration, RunBundle, RunComparison, RunDetail, RunSummary, Workspace, WorkflowTemplate, WorkspaceRole } from "./types.js";
1
+ import type { APIKeyCreateResponse, APIKeyCreatedResponse, APIKeyListItem, ArtifactResponse, ByoArtifactRegisterRequest, ByoAuditPage, ByoGrant, DeviceListResponse, HFImportJob, HuggingFaceConnectResponse, HuggingFaceIntegrationStatus, InputSpec, Member, Pipeline, PromptPackCreateBody, PromptPackSummary, QaihubIntegration, RunBundle, RunComparison, RunDetail, RunSummary, Workspace, WorkflowTemplate, WorkspaceRole } from "./types.js";
2
2
  export interface EdgeGateClientOptions {
3
3
  apiUrl: string;
4
4
  apiKey: string;
@@ -21,6 +21,7 @@ export declare class EdgeGateClient {
21
21
  constructor(opts: EdgeGateClientOptions);
22
22
  getWorkspace(workspaceId: string): Promise<Workspace>;
23
23
  listWorkspaces(): Promise<Workspace[]>;
24
+ listDevices(): Promise<DeviceListResponse>;
24
25
  createAPIKey(workspaceId: string, body: {
25
26
  name: string;
26
27
  expires_at?: string;
@@ -98,5 +99,22 @@ export declare class EdgeGateClient {
98
99
  listPromptPacks(workspaceId: string): Promise<PromptPackSummary[]>;
99
100
  createPromptPack(workspaceId: string, body: PromptPackCreateBody): Promise<PromptPackSummary>;
100
101
  publishPromptPack(workspaceId: string, promptpackId: string, version: string): Promise<PromptPackSummary>;
102
+ registerByoGrant(workspaceId: string, body: {
103
+ role_arn: string;
104
+ bucket: string;
105
+ region: string;
106
+ kms_key_id?: string;
107
+ }): Promise<ByoGrant>;
108
+ getByoGrant(workspaceId: string): Promise<ByoGrant>;
109
+ verifyByoGrant(workspaceId: string): Promise<ByoGrant>;
110
+ deleteByoGrant(workspaceId: string): Promise<void>;
111
+ registerByoArtifact(workspaceId: string, body: ByoArtifactRegisterRequest): Promise<ArtifactResponse>;
112
+ getByoAudit(workspaceId: string, params?: {
113
+ artifact_id?: string;
114
+ run_id?: string;
115
+ since?: string;
116
+ cursor?: number;
117
+ limit?: number;
118
+ }): Promise<ByoAuditPage>;
101
119
  private request;
102
120
  }
package/dist/client.js CHANGED
@@ -30,6 +30,9 @@ export class EdgeGateClient {
30
30
  async listWorkspaces() {
31
31
  return this.request("GET", `/v1/workspaces`);
32
32
  }
33
+ async listDevices() {
34
+ return this.request("GET", `/v1/aihub/devices`);
35
+ }
33
36
  async createAPIKey(workspaceId, body) {
34
37
  return this.request("POST", `/v1/workspaces/${workspaceId}/api-keys`, body);
35
38
  }
@@ -127,6 +130,37 @@ export class EdgeGateClient {
127
130
  async publishPromptPack(workspaceId, promptpackId, version) {
128
131
  return this.request("PUT", `/v1/workspaces/${workspaceId}/promptpacks/${promptpackId}/${version}/publish`);
129
132
  }
133
+ // BYO storage (Enterprise) ────────────────────────────────────────────
134
+ async registerByoGrant(workspaceId, body) {
135
+ return this.request("POST", `/v1/workspaces/${workspaceId}/byo-storage/grants`, body);
136
+ }
137
+ async getByoGrant(workspaceId) {
138
+ return this.request("GET", `/v1/workspaces/${workspaceId}/byo-storage/grants`);
139
+ }
140
+ async verifyByoGrant(workspaceId) {
141
+ return this.request("POST", `/v1/workspaces/${workspaceId}/byo-storage/grants/verify`);
142
+ }
143
+ async deleteByoGrant(workspaceId) {
144
+ await this.request("DELETE", `/v1/workspaces/${workspaceId}/byo-storage/grants`);
145
+ }
146
+ async registerByoArtifact(workspaceId, body) {
147
+ return this.request("POST", `/v1/workspaces/${workspaceId}/artifacts/byo`, body);
148
+ }
149
+ async getByoAudit(workspaceId, params = {}) {
150
+ const qs = new URLSearchParams();
151
+ if (params.artifact_id)
152
+ qs.set("artifact_id", params.artifact_id);
153
+ if (params.run_id)
154
+ qs.set("run_id", params.run_id);
155
+ if (params.since)
156
+ qs.set("since", params.since);
157
+ if (typeof params.cursor === "number")
158
+ qs.set("cursor", String(params.cursor));
159
+ if (typeof params.limit === "number")
160
+ qs.set("limit", String(params.limit));
161
+ const suffix = qs.toString() ? `?${qs.toString()}` : "";
162
+ return this.request("GET", `/v1/workspaces/${workspaceId}/byo-storage/audit${suffix}`);
163
+ }
130
164
  async request(method, path, body) {
131
165
  const url = `${this.apiUrl}${path}`;
132
166
  const isIdempotent = method === "GET";
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -28,9 +28,15 @@ import { listApiKeysHandler, listApiKeysInputSchema, } from "./tools/list_api_ke
28
28
  import { createApiKeyHandler, createApiKeyInputSchema, } from "./tools/create_api_key.js";
29
29
  import { revokeApiKeyHandler, revokeApiKeyInputSchema, } from "./tools/revoke_api_key.js";
30
30
  import { listMembersHandler, listMembersInputSchema, } from "./tools/list_members.js";
31
+ import { listDevicesHandler, listDevicesInputSchema, } from "./tools/list_devices.js";
31
32
  import { inviteMemberHandler, inviteMemberInputSchema, } from "./tools/invite_member.js";
32
33
  import { changeMemberRoleHandler, changeMemberRoleInputSchema, } from "./tools/change_member_role.js";
33
34
  import { removeMemberHandler, removeMemberInputSchema, } from "./tools/remove_member.js";
35
+ import { registerByoBucketHandler, registerByoBucketInputSchema, } from "./tools/register_byo_bucket.js";
36
+ import { checkByoBucketHandler, checkByoBucketInputSchema, } from "./tools/check_byo_bucket.js";
37
+ import { registerByoArtifactHandler, registerByoArtifactInputSchema, } from "./tools/register_byo_artifact.js";
38
+ import { disconnectByoBucketHandler, disconnectByoBucketInputSchema, } from "./tools/disconnect_byo_bucket.js";
39
+ import { getByoAuditHandler, getByoAuditInputSchema, } from "./tools/get_byo_audit.js";
34
40
  const TOOLS = [
35
41
  {
36
42
  name: "edgegate_setup_workspace",
@@ -219,6 +225,16 @@ const TOOLS = [
219
225
  schema: listMembersInputSchema,
220
226
  handler: listMembersHandler,
221
227
  },
228
+ {
229
+ name: "edgegate_list_devices",
230
+ description: "List every Qualcomm AI Hub device EdgeGate can target (Snapdragon phones, " +
231
+ "QRD/CRD reference platforms, IoT Dragonwing, automotive, XR). Returns a " +
232
+ "markdown table grouped by category. Use the `id` column verbatim when " +
233
+ "building a `create_pipeline` device matrix. No workspace_id needed — the " +
234
+ "catalog is global.",
235
+ schema: listDevicesInputSchema,
236
+ handler: listDevicesHandler,
237
+ },
222
238
  {
223
239
  name: "edgegate_invite_member",
224
240
  description: "Add an existing EdgeGate user to this workspace by email at the given role " +
@@ -243,6 +259,54 @@ const TOOLS = [
243
259
  schema: removeMemberInputSchema,
244
260
  handler: removeMemberHandler,
245
261
  },
262
+ {
263
+ name: "edgegate_register_byo_bucket",
264
+ description: "Enterprise only. Register the workspace's customer-owned S3 bucket + IAM role " +
265
+ "as a BYO storage grant. EdgeGate's workers will AssumeRole into your AWS " +
266
+ "account to read model bytes — they never leave your account. Returns the " +
267
+ "External ID you must add to your role's trust policy. Requires owner role. " +
268
+ "402 from non-Enterprise workspaces; 409 if a grant already exists (does NOT " +
269
+ "auto-rotate — disconnect + re-register or rotate via dashboard).",
270
+ schema: registerByoBucketInputSchema,
271
+ handler: registerByoBucketHandler,
272
+ },
273
+ {
274
+ name: "edgegate_check_byo_bucket",
275
+ description: "Re-run the AssumeRole + HeadObject readiness probe against the workspace's " +
276
+ "BYO grant. Returns the updated grant status with the typed BYO_* error code " +
277
+ "if it failed, plus a checklist of common IAM / bucket / KMS misconfigurations " +
278
+ "to inspect. Requires admin role.",
279
+ schema: checkByoBucketInputSchema,
280
+ handler: checkByoBucketHandler,
281
+ },
282
+ {
283
+ name: "edgegate_register_byo_artifact",
284
+ description: "Register an existing S3 URI in your registered bucket as an EdgeGate Artifact. " +
285
+ "EdgeGate HeadObjects the URI to confirm the key exists + capture size/etag — " +
286
+ "bytes are NOT uploaded through EdgeGate. Returns an artifact_id you can pass " +
287
+ "directly to edgegate_create_pipeline / edgegate_run_gate. Requires admin role. " +
288
+ "Pre-conditions: Enterprise plan + active BYO grant + bucket matches the grant.",
289
+ schema: registerByoArtifactInputSchema,
290
+ handler: registerByoArtifactHandler,
291
+ },
292
+ {
293
+ name: "edgegate_disconnect_byo_bucket",
294
+ description: "Delete the workspace's BYO storage grant. EdgeGate stops attempting to read " +
295
+ "from your bucket. Refuses (409) if artifacts still reference it — surface " +
296
+ "lists the safe paths forward (rotate External ID via dashboard, or drop the " +
297
+ "artifacts first). Destructive. Requires owner role.",
298
+ schema: disconnectByoBucketInputSchema,
299
+ handler: disconnectByoBucketHandler,
300
+ },
301
+ {
302
+ name: "edgegate_get_byo_audit",
303
+ description: "Fetch the workspace's append-only BYO storage audit log (every AssumeRole, " +
304
+ "HeadObject, GetObject, KMS Decrypt). Supports filters by artifact_id, run_id, " +
305
+ "since timestamp, plus cursor pagination. Each row's aws_request_id is the " +
306
+ "join key for cross-referencing against your own CloudTrail. Requires admin role.",
307
+ schema: getByoAuditInputSchema,
308
+ handler: getByoAuditHandler,
309
+ },
246
310
  ];
247
311
  function getClient() {
248
312
  const apiUrl = process.env.EDGEGATE_API_URL ?? "https://edgegateapi.frozo.ai";
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { EdgeGateClient } from "../client.js";
3
+ import type { ToolResult } from "./setup_workspace.js";
4
+ export declare const checkByoBucketInputSchema: z.ZodObject<{
5
+ workspace_id: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ workspace_id: string;
8
+ }, {
9
+ workspace_id: string;
10
+ }>;
11
+ export type CheckByoBucketInput = z.infer<typeof checkByoBucketInputSchema>;
12
+ export declare function checkByoBucketHandler(client: EdgeGateClient, input: CheckByoBucketInput): Promise<ToolResult>;
@@ -0,0 +1,89 @@
1
+ import { z } from "zod";
2
+ import { EdgeGateError } from "../client.js";
3
+ export const checkByoBucketInputSchema = z.object({
4
+ workspace_id: z.string().uuid(),
5
+ });
6
+ export async function checkByoBucketHandler(client, input) {
7
+ try {
8
+ const grant = await client.verifyByoGrant(input.workspace_id);
9
+ return renderGrantStatus(grant);
10
+ }
11
+ catch (err) {
12
+ if (err instanceof EdgeGateError) {
13
+ if (err.status === 402) {
14
+ return {
15
+ isError: true,
16
+ content: [
17
+ {
18
+ type: "text",
19
+ text: `BYO storage requires the Enterprise plan. ` +
20
+ `Contact sales: https://edgegate.frozo.ai/enterprise.`,
21
+ },
22
+ ],
23
+ };
24
+ }
25
+ if (err.status === 404) {
26
+ return {
27
+ content: [
28
+ {
29
+ type: "text",
30
+ text: [
31
+ `No BYO storage grant is registered for this workspace.`,
32
+ ``,
33
+ `Register one with \`edgegate_register_byo_bucket\` first. ` +
34
+ `Until then, this workspace uses EdgeGate-managed storage.`,
35
+ ].join("\n"),
36
+ },
37
+ ],
38
+ };
39
+ }
40
+ return {
41
+ isError: true,
42
+ content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
43
+ };
44
+ }
45
+ throw err;
46
+ }
47
+ }
48
+ function renderGrantStatus(grant) {
49
+ const lines = [
50
+ `BYO storage probe result: **${grant.status}**`,
51
+ ``,
52
+ `- bucket: \`${grant.bucket}\` (${grant.region})`,
53
+ `- role: \`${grant.role_arn}\``,
54
+ grant.kms_key_id
55
+ ? `- kms key: \`${grant.kms_key_id}\``
56
+ : `- kms key: (none)`,
57
+ `- last_verified_at: ${grant.last_verified_at ?? "(never)"}`,
58
+ ];
59
+ if (grant.status === "active") {
60
+ lines.push(``);
61
+ lines.push(`Probe passed — AssumeRole + HeadObject succeeded. You can register ` +
62
+ `artifacts with \`edgegate_register_byo_artifact\` and trigger runs as usual.`);
63
+ }
64
+ else if (grant.status === "failed" && grant.last_verify_error) {
65
+ lines.push(``);
66
+ lines.push(`Last error: \`${grant.last_verify_error}\``);
67
+ lines.push(``);
68
+ lines.push(`Common causes:`);
69
+ lines.push(`- **BYO_ASSUME_ROLE_FAILED** — the External ID in your role's trust policy ` +
70
+ `doesn't match. Copy the \`external_id\` from \`edgegate_register_byo_bucket\` ` +
71
+ `or the dashboard into your trust policy's \`sts:ExternalId\` condition.`);
72
+ lines.push(`- **BYO_OBJECT_ACCESS_DENIED** / **BYO_BUCKET_GONE** — the IAM role lacks ` +
73
+ `s3:GetObject/ListBucket on the registered bucket, or the bucket name was ` +
74
+ `mistyped.`);
75
+ lines.push(`- **BYO_KMS_ACCESS_DENIED** — bucket uses SSE-KMS but the role lacks ` +
76
+ `kms:Decrypt on the key.`);
77
+ lines.push(`- **BYO_REGION_MISMATCH** — the bucket isn't in the region you registered.`);
78
+ lines.push(``);
79
+ lines.push(`Fix the IAM/bucket config in your AWS account, then re-run ` +
80
+ `\`edgegate_check_byo_bucket\` to re-probe.`);
81
+ }
82
+ else if (grant.status === "revoked") {
83
+ lines.push(``);
84
+ lines.push(`The grant is revoked — no further reads will be attempted. Register a fresh ` +
85
+ `grant via \`edgegate_register_byo_bucket\` if you want to re-enable BYO storage.`);
86
+ }
87
+ return { content: [{ type: "text", text: lines.join("\n") }] };
88
+ }
89
+ //# sourceMappingURL=check_byo_bucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_byo_bucket.js","sourceRoot":"","sources":["../../src/tools/check_byo_bucket.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ export declare const checkStatusInputSchema: z.ZodObject<{
5
5
  workspace_id: z.ZodString;
6
6
  run_id: z.ZodString;
7
7
  }, "strip", z.ZodTypeAny, {
8
- workspace_id: string;
9
8
  run_id: string;
10
- }, {
11
9
  workspace_id: string;
10
+ }, {
12
11
  run_id: string;
12
+ workspace_id: string;
13
13
  }>;
14
14
  export type CheckStatusInput = z.infer<typeof checkStatusInputSchema>;
15
15
  export declare function checkStatusHandler(client: EdgeGateClient, input: CheckStatusInput): Promise<ToolResult>;
@@ -36,7 +36,12 @@ function format(run) {
36
36
  }
37
37
  lines.push(``);
38
38
  }
39
- if (run.gates_eval) {
39
+ // Runs that errored before gate evaluation have gates_eval = null OR
40
+ // gates_eval = {} without a `gates` array (e.g. CELL_EXECUTION_ERROR on
41
+ // the first cell, orphaned matrix runs). Guard against `gates` being
42
+ // missing — the prior code did `for (const gate of run.gates_eval.gates)`
43
+ // and crashed with "run.gates_eval.gates is not iterable".
44
+ if (run.gates_eval && Array.isArray(run.gates_eval.gates) && run.gates_eval.gates.length > 0) {
40
45
  lines.push(`### Gate Results`);
41
46
  for (const gate of run.gates_eval.gates) {
42
47
  const sym = gate.passed ? "✓" : "✗";
@@ -1 +1 @@
1
- {"version":3,"file":"check_status.js","sourceRoot":"","sources":["../../src/tools/check_status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check_status.js","sourceRoot":"","sources":["../../src/tools/check_status.ts"],"names":[],"mappings":"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"}
@@ -23,12 +23,12 @@ export declare const compareRunsInputSchema: z.ZodObject<{
23
23
  run_id: z.ZodString;
24
24
  baseline_run_id: z.ZodOptional<z.ZodString>;
25
25
  }, "strip", z.ZodTypeAny, {
26
- workspace_id: string;
27
26
  run_id: string;
27
+ workspace_id: string;
28
28
  baseline_run_id?: string | undefined;
29
29
  }, {
30
- workspace_id: string;
31
30
  run_id: string;
31
+ workspace_id: string;
32
32
  baseline_run_id?: string | undefined;
33
33
  }>;
34
34
  export type CompareRunsInput = z.infer<typeof compareRunsInputSchema>;
@@ -34,11 +34,11 @@ export declare const createPipelineInputSchema: z.ZodObject<{
34
34
  name: z.ZodString;
35
35
  artifact_id: z.ZodString;
36
36
  }, "strip", z.ZodTypeAny, {
37
- name: string;
38
37
  artifact_id: string;
39
- }, {
40
38
  name: string;
39
+ }, {
41
40
  artifact_id: string;
41
+ name: string;
42
42
  }>, "many">>;
43
43
  /** Measurement repeats per cell (1–5). Defaults to API default (3). */
44
44
  repeats: z.ZodOptional<z.ZodNumber>;
@@ -77,8 +77,8 @@ export declare const createPipelineInputSchema: z.ZodObject<{
77
77
  description?: string | undefined;
78
78
  }[];
79
79
  models?: {
80
- name: string;
81
80
  artifact_id: string;
81
+ name: string;
82
82
  }[] | undefined;
83
83
  repeats?: number | undefined;
84
84
  input_specs?: Record<string, {
@@ -98,8 +98,8 @@ export declare const createPipelineInputSchema: z.ZodObject<{
98
98
  }[];
99
99
  promptpack_version?: string | undefined;
100
100
  models?: {
101
- name: string;
102
101
  artifact_id: string;
102
+ name: string;
103
103
  }[] | undefined;
104
104
  repeats?: number | undefined;
105
105
  input_specs?: Record<string, {
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ import { EdgeGateClient } from "../client.js";
3
+ import type { ToolResult } from "./setup_workspace.js";
4
+ export declare const disconnectByoBucketInputSchema: z.ZodObject<{
5
+ workspace_id: z.ZodString;
6
+ }, "strip", z.ZodTypeAny, {
7
+ workspace_id: string;
8
+ }, {
9
+ workspace_id: string;
10
+ }>;
11
+ export type DisconnectByoBucketInput = z.infer<typeof disconnectByoBucketInputSchema>;
12
+ export declare function disconnectByoBucketHandler(client: EdgeGateClient, input: DisconnectByoBucketInput): Promise<ToolResult>;
@@ -0,0 +1,90 @@
1
+ import { z } from "zod";
2
+ import { EdgeGateError } from "../client.js";
3
+ export const disconnectByoBucketInputSchema = z.object({
4
+ workspace_id: z.string().uuid(),
5
+ });
6
+ export async function disconnectByoBucketHandler(client, input) {
7
+ try {
8
+ await client.deleteByoGrant(input.workspace_id);
9
+ return {
10
+ content: [
11
+ {
12
+ type: "text",
13
+ text: [
14
+ `Removed the BYO storage grant for this workspace.`,
15
+ ``,
16
+ `EdgeGate will no longer attempt to AssumeRole into your AWS account. ` +
17
+ `New artifact registrations via \`edgegate_register_byo_artifact\` will ` +
18
+ `fail until a fresh grant is registered.`,
19
+ ``,
20
+ `Existing artifacts that pointed at the bucket are also invalidated — any ` +
21
+ `attempt to read them during a run will surface BYO_NO_GRANT. If you want ` +
22
+ `to keep using the same bucket, re-register with ` +
23
+ `\`edgegate_register_byo_bucket\` and the artifacts will be re-resolvable.`,
24
+ ].join("\n"),
25
+ },
26
+ ],
27
+ };
28
+ }
29
+ catch (err) {
30
+ if (err instanceof EdgeGateError) {
31
+ if (err.status === 402) {
32
+ return {
33
+ isError: true,
34
+ content: [
35
+ {
36
+ type: "text",
37
+ text: `BYO storage requires the Enterprise plan. ` +
38
+ `Contact sales: https://edgegate.frozo.ai/enterprise.`,
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ if (err.status === 404) {
44
+ return {
45
+ content: [
46
+ {
47
+ type: "text",
48
+ text: `No BYO storage grant is registered for this workspace — nothing to disconnect.`,
49
+ },
50
+ ],
51
+ };
52
+ }
53
+ if (err.status === 409) {
54
+ return {
55
+ isError: true,
56
+ content: [
57
+ {
58
+ type: "text",
59
+ text: [
60
+ `Cannot disconnect — artifacts still reference this BYO grant.`,
61
+ ``,
62
+ `EdgeGate refuses to orphan artifact rows whose \`storage_url\` ` +
63
+ `points at your bucket. Two safe paths forward:`,
64
+ ``,
65
+ `1. **Keep the artifacts.** Leave the grant in place. If you only ` +
66
+ `wanted to rotate the External ID, use the dashboard ` +
67
+ `(\`https://edgegate.frozo.ai/workspace/${input.workspace_id}/settings#byo-storage\`) ` +
68
+ `to rotate without deleting.`,
69
+ `2. **Drop the artifacts first.** Use the dashboard's artifact list to ` +
70
+ `delete each BYO artifact, then re-run ` +
71
+ `\`edgegate_disconnect_byo_bucket\`. Runs that referenced the deleted ` +
72
+ `artifacts will keep their evidence bundles — only the pointer is gone.`,
73
+ ``,
74
+ `Detail from EdgeGate: \`${err.detail}\``,
75
+ ].join("\n"),
76
+ },
77
+ ],
78
+ };
79
+ }
80
+ return {
81
+ isError: true,
82
+ content: [
83
+ { type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` },
84
+ ],
85
+ };
86
+ }
87
+ throw err;
88
+ }
89
+ }
90
+ //# sourceMappingURL=disconnect_byo_bucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disconnect_byo_bucket.js","sourceRoot":"","sources":["../../src/tools/disconnect_byo_bucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAsB,EACtB,KAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,mDAAmD;wBACnD,EAAE;wBACF,uEAAuE;4BACrE,yEAAyE;4BACzE,yCAAyC;wBAC3C,EAAE;wBACF,2EAA2E;4BACzE,2EAA2E;4BAC3E,kDAAkD;4BAClD,2EAA2E;qBAC9E,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,4CAA4C;gCAC5C,sDAAsD;yBACzD;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,gFAAgF;yBACvF;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;gCACJ,+DAA+D;gCAC/D,EAAE;gCACF,iEAAiE;oCAC/D,gDAAgD;gCAClD,EAAE;gCACF,mEAAmE;oCACjE,sDAAsD;oCACtD,0CAA0C,KAAK,CAAC,YAAY,2BAA2B;oCACvF,6BAA6B;gCAC/B,wEAAwE;oCACtE,wCAAwC;oCACxC,uEAAuE;oCACvE,wEAAwE;gCAC1E,EAAE;gCACF,2BAA2B,GAAG,CAAC,MAAM,IAAI;6BAC1C,CAAC,IAAI,CAAC,IAAI,CAAC;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE;iBACzE;aACF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -20,13 +20,13 @@ export declare const exportRunReportInputSchema: z.ZodObject<{
20
20
  output_path: z.ZodOptional<z.ZodString>;
21
21
  include_diff: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
22
22
  }, "strip", z.ZodTypeAny, {
23
- workspace_id: string;
24
23
  run_id: string;
24
+ workspace_id: string;
25
25
  include_diff: boolean;
26
26
  output_path?: string | undefined;
27
27
  }, {
28
- workspace_id: string;
29
28
  run_id: string;
29
+ workspace_id: string;
30
30
  output_path?: string | undefined;
31
31
  include_diff?: boolean | undefined;
32
32
  }>;
@@ -227,8 +227,11 @@ function renderReport(run, bundle, comparison, workspaceId) {
227
227
  lines.push(``);
228
228
  }
229
229
  // ── Gate Results ──
230
+ // gates_eval can be {} without a `gates` array on runs that errored
231
+ // before evaluation. `.gates.length` on undefined would crash the export
232
+ // for any failed run. Guard before reading.
230
233
  const gatesEval = bundle?.gates_eval ?? run.gates_eval;
231
- if (gatesEval && gatesEval.gates.length > 0) {
234
+ if (gatesEval && Array.isArray(gatesEval.gates) && gatesEval.gates.length > 0) {
232
235
  lines.push(`## Gate Results`);
233
236
  lines.push(`| Metric | Operator | Threshold | Actual | Status |`);
234
237
  lines.push(`|---|---|---|---|---|`);