edgegate-mcp 0.4.0 → 0.7.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/README.md +22 -3
- package/dist/client.d.ts +27 -1
- package/dist/client.js +55 -0
- package/dist/client.js.map +1 -1
- package/dist/server.js +135 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/change_member_role.d.ts +18 -0
- package/dist/tools/change_member_role.js +61 -0
- package/dist/tools/change_member_role.js.map +1 -0
- package/dist/tools/connect_huggingface.d.ts +15 -0
- package/dist/tools/connect_huggingface.js +83 -0
- package/dist/tools/connect_huggingface.js.map +1 -0
- package/dist/tools/connect_qaihub.d.ts +15 -0
- package/dist/tools/connect_qaihub.js +62 -0
- package/dist/tools/connect_qaihub.js.map +1 -0
- package/dist/tools/create_api_key.d.ts +18 -0
- package/dist/tools/create_api_key.js +73 -0
- package/dist/tools/create_api_key.js.map +1 -0
- package/dist/tools/create_pipeline.d.ts +30 -0
- package/dist/tools/create_pipeline.js +31 -0
- package/dist/tools/create_pipeline.js.map +1 -1
- package/dist/tools/create_workspace.d.ts +12 -0
- package/dist/tools/create_workspace.js +51 -0
- package/dist/tools/create_workspace.js.map +1 -0
- package/dist/tools/disconnect_huggingface.d.ts +12 -0
- package/dist/tools/disconnect_huggingface.js +44 -0
- package/dist/tools/disconnect_huggingface.js.map +1 -0
- package/dist/tools/disconnect_qaihub.d.ts +12 -0
- package/dist/tools/disconnect_qaihub.js +42 -0
- package/dist/tools/disconnect_qaihub.js.map +1 -0
- package/dist/tools/get_huggingface_integration.d.ts +12 -0
- package/dist/tools/get_huggingface_integration.js +52 -0
- package/dist/tools/get_huggingface_integration.js.map +1 -0
- package/dist/tools/get_qaihub_integration.d.ts +12 -0
- package/dist/tools/get_qaihub_integration.js +52 -0
- package/dist/tools/get_qaihub_integration.js.map +1 -0
- package/dist/tools/invite_member.d.ts +18 -0
- package/dist/tools/invite_member.js +85 -0
- package/dist/tools/invite_member.js.map +1 -0
- package/dist/tools/list_api_keys.d.ts +12 -0
- package/dist/tools/list_api_keys.js +51 -0
- package/dist/tools/list_api_keys.js.map +1 -0
- package/dist/tools/list_members.d.ts +12 -0
- package/dist/tools/list_members.js +43 -0
- package/dist/tools/list_members.js.map +1 -0
- package/dist/tools/publish_promptpack.d.ts +18 -0
- package/dist/tools/publish_promptpack.js +108 -0
- package/dist/tools/publish_promptpack.js.map +1 -0
- package/dist/tools/remove_member.d.ts +15 -0
- package/dist/tools/remove_member.js +64 -0
- package/dist/tools/remove_member.js.map +1 -0
- package/dist/tools/revoke_api_key.d.ts +15 -0
- package/dist/tools/revoke_api_key.js +49 -0
- package/dist/tools/revoke_api_key.js.map +1 -0
- package/dist/types.d.ts +84 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/plugin.json +6 -2
- package/skills/edgegate-connect-huggingface.md +64 -0
- package/skills/edgegate-connect-qaihub.md +56 -0
- package/skills/edgegate-import.md +2 -2
- package/skills/edgegate-init.md +17 -0
- package/skills/edgegate-members.md +51 -0
- package/skills/edgegate-promptpacks.md +22 -5
- package/skills/edgegate-workspace-setup.md +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect_qaihub.js","sourceRoot":"","sources":["../../src/tools/connect_qaihub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,6CAA6C;QAC3C,yEAAyE;QACzE,wDAAwD,CAC3D;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,KAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAClD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,KAAK,CACZ,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,mEAAmE;gBACnE,kEAAkE;gBAClE,0BAA0B;gBAC1B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAClD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,KAAK,CACZ,CAAC;oBACF,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,IAAI,SAAS,YAAY,aAAa,EAAE,CAAC;wBACvC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,SAAS,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,MAA+C,EAC/C,IAA8B;IAE9B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;oBACJ,GAAG,IAAI,kDAAkD;oBACzD,EAAE;oBACF,kBAAkB,MAAM,CAAC,WAAW,sCAAsC;oBAC1E,aAAa,MAAM,CAAC,MAAM,EAAE;oBAC5B,EAAE;oBACF,qIAAqI;iBACtI,CAAC,IAAI,CAAC,IAAI,CAAC;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAkB;IACrC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;KACpF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateClient } from "../client.js";
|
|
3
|
+
import type { ToolResult } from "./setup_workspace.js";
|
|
4
|
+
export declare const createApiKeyInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
expires_at: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
expires_at?: string | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
workspace_id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
expires_at?: string | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
export type CreateApiKeyInput = z.infer<typeof createApiKeyInputSchema>;
|
|
18
|
+
export declare function createApiKeyHandler(client: EdgeGateClient, input: CreateApiKeyInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const createApiKeyInputSchema = z.object({
|
|
4
|
+
workspace_id: z.string().uuid(),
|
|
5
|
+
name: z
|
|
6
|
+
.string()
|
|
7
|
+
.min(1)
|
|
8
|
+
.max(255)
|
|
9
|
+
.describe("Human-readable label for the key, e.g. \"GitHub Actions production\" — " +
|
|
10
|
+
"you'll need this later to identify which key to rotate or revoke."),
|
|
11
|
+
expires_at: z
|
|
12
|
+
.string()
|
|
13
|
+
.datetime()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe("Optional ISO-8601 expiry timestamp. Omit for a non-expiring key " +
|
|
16
|
+
"(you can always revoke it manually)."),
|
|
17
|
+
});
|
|
18
|
+
export async function createApiKeyHandler(client, input) {
|
|
19
|
+
try {
|
|
20
|
+
const key = await client.createApiKey(input.workspace_id, {
|
|
21
|
+
name: input.name,
|
|
22
|
+
expires_at: input.expires_at ?? null,
|
|
23
|
+
});
|
|
24
|
+
// Plaintext is shown ONCE and never again. Flag that explicitly so the
|
|
25
|
+
// user knows to copy it now — and so the LLM client can be careful with
|
|
26
|
+
// how/where it persists this in chat scrollback.
|
|
27
|
+
return {
|
|
28
|
+
content: [
|
|
29
|
+
{
|
|
30
|
+
type: "text",
|
|
31
|
+
text: [
|
|
32
|
+
`Created API key **${key.name}**.`,
|
|
33
|
+
``,
|
|
34
|
+
`**Copy this plaintext now — it cannot be recovered later:**`,
|
|
35
|
+
``,
|
|
36
|
+
"```",
|
|
37
|
+
key.plaintext,
|
|
38
|
+
"```",
|
|
39
|
+
``,
|
|
40
|
+
`Details:`,
|
|
41
|
+
`- key_id: \`${key.id}\``,
|
|
42
|
+
`- prefix...suffix: \`${key.prefix}...${key.suffix}\``,
|
|
43
|
+
`- expires: ${key.expires_at ?? "never"}`,
|
|
44
|
+
``,
|
|
45
|
+
`Use it as the \`EDGEGATE_API_KEY\` env var for the MCP server, or as the bearer token for direct REST calls. Revoke it any time with \`edgegate_revoke_api_key({ workspace_id, key_id: "${key.id}" })\`.`,
|
|
46
|
+
].join("\n"),
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
if (err instanceof EdgeGateError) {
|
|
53
|
+
if (err.status === 402) {
|
|
54
|
+
return {
|
|
55
|
+
isError: true,
|
|
56
|
+
content: [
|
|
57
|
+
{
|
|
58
|
+
type: "text",
|
|
59
|
+
text: `API key creation requires a Pro tier or above: ${err.detail}\n\n` +
|
|
60
|
+
`Upgrade at https://edgegate.frozo.ai/pricing.`,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
isError: true,
|
|
67
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=create_api_key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_api_key.js","sourceRoot":"","sources":["../../src/tools/create_api_key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,yEAAyE;QACvE,mEAAmE,CACtE;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACP,kEAAkE;QAChE,sCAAsC,CACzC;CACJ,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,KAAwB;IAExB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE;YACxD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;SACrC,CAAC,CAAC;QAEH,uEAAuE;QACvE,wEAAwE;QACxE,iDAAiD;QACjD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,qBAAqB,GAAG,CAAC,IAAI,KAAK;wBAClC,EAAE;wBACF,6DAA6D;wBAC7D,EAAE;wBACF,KAAK;wBACL,GAAG,CAAC,SAAS;wBACb,KAAK;wBACL,EAAE;wBACF,UAAU;wBACV,eAAe,GAAG,CAAC,EAAE,IAAI;wBACzB,wBAAwB,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI;wBACtD,cAAc,GAAG,CAAC,UAAU,IAAI,OAAO,EAAE;wBACzC,EAAE;wBACF,2LAA2L,GAAG,CAAC,EAAE,SAAS;qBAC3M,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,kDAAkD,GAAG,CAAC,MAAM,MAAM;gCAClE,+CAA+C;yBAClD;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -42,6 +42,28 @@ export declare const createPipelineInputSchema: z.ZodObject<{
|
|
|
42
42
|
}>, "many">>;
|
|
43
43
|
/** Measurement repeats per cell (1–5). Defaults to API default (3). */
|
|
44
44
|
repeats: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
/**
|
|
46
|
+
* Optional. Override AI Hub input shapes per named input.
|
|
47
|
+
*
|
|
48
|
+
* For text models like MiniLM / BERT-family, try:
|
|
49
|
+
* `{ input_ids: { shape: [1, 128], dtype: "int64" }, attention_mask: { shape: [1, 128], dtype: "int64" } }`
|
|
50
|
+
*
|
|
51
|
+
* For image models (e.g. MobileNet) the backend auto-detects static shapes
|
|
52
|
+
* from the ONNX file — omit this field.
|
|
53
|
+
*
|
|
54
|
+
* Omit entirely to let EdgeGate auto-detect from the ONNX file (works for most
|
|
55
|
+
* models including image classification, BERT-family, MiniLM).
|
|
56
|
+
*/
|
|
57
|
+
input_specs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
58
|
+
shape: z.ZodArray<z.ZodNumber, "many">;
|
|
59
|
+
dtype: z.ZodDefault<z.ZodEnum<["float32", "float16", "int64", "int32", "bool"]>>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
shape: number[];
|
|
62
|
+
dtype: "float32" | "float16" | "int64" | "int32" | "bool";
|
|
63
|
+
}, {
|
|
64
|
+
shape: number[];
|
|
65
|
+
dtype?: "float32" | "float16" | "int64" | "int32" | "bool" | undefined;
|
|
66
|
+
}>>>;
|
|
45
67
|
}, "strip", z.ZodTypeAny, {
|
|
46
68
|
workspace_id: string;
|
|
47
69
|
name: string;
|
|
@@ -59,6 +81,10 @@ export declare const createPipelineInputSchema: z.ZodObject<{
|
|
|
59
81
|
artifact_id: string;
|
|
60
82
|
}[] | undefined;
|
|
61
83
|
repeats?: number | undefined;
|
|
84
|
+
input_specs?: Record<string, {
|
|
85
|
+
shape: number[];
|
|
86
|
+
dtype: "float32" | "float16" | "int64" | "int32" | "bool";
|
|
87
|
+
}> | undefined;
|
|
62
88
|
}, {
|
|
63
89
|
workspace_id: string;
|
|
64
90
|
name: string;
|
|
@@ -76,6 +102,10 @@ export declare const createPipelineInputSchema: z.ZodObject<{
|
|
|
76
102
|
artifact_id: string;
|
|
77
103
|
}[] | undefined;
|
|
78
104
|
repeats?: number | undefined;
|
|
105
|
+
input_specs?: Record<string, {
|
|
106
|
+
shape: number[];
|
|
107
|
+
dtype?: "float32" | "float16" | "int64" | "int32" | "bool" | undefined;
|
|
108
|
+
}> | undefined;
|
|
79
109
|
}>;
|
|
80
110
|
export type CreatePipelineInput = z.infer<typeof createPipelineInputSchema>;
|
|
81
111
|
export declare function createPipelineHandler(client: EdgeGateClient, input: CreatePipelineInput): Promise<ToolResult>;
|
|
@@ -37,6 +37,36 @@ export const createPipelineInputSchema = z.object({
|
|
|
37
37
|
.optional(),
|
|
38
38
|
/** Measurement repeats per cell (1–5). Defaults to API default (3). */
|
|
39
39
|
repeats: z.number().int().min(1).max(5).optional(),
|
|
40
|
+
/**
|
|
41
|
+
* Optional. Override AI Hub input shapes per named input.
|
|
42
|
+
*
|
|
43
|
+
* For text models like MiniLM / BERT-family, try:
|
|
44
|
+
* `{ input_ids: { shape: [1, 128], dtype: "int64" }, attention_mask: { shape: [1, 128], dtype: "int64" } }`
|
|
45
|
+
*
|
|
46
|
+
* For image models (e.g. MobileNet) the backend auto-detects static shapes
|
|
47
|
+
* from the ONNX file — omit this field.
|
|
48
|
+
*
|
|
49
|
+
* Omit entirely to let EdgeGate auto-detect from the ONNX file (works for most
|
|
50
|
+
* models including image classification, BERT-family, MiniLM).
|
|
51
|
+
*/
|
|
52
|
+
input_specs: z
|
|
53
|
+
.record(z.string(), z.object({
|
|
54
|
+
shape: z
|
|
55
|
+
.array(z.number().int().positive())
|
|
56
|
+
.min(1)
|
|
57
|
+
.max(8)
|
|
58
|
+
.describe("Tensor shape (1–8 positive integers)"),
|
|
59
|
+
dtype: z
|
|
60
|
+
.enum(["float32", "float16", "int64", "int32", "bool"])
|
|
61
|
+
.default("float32")
|
|
62
|
+
.describe("Element dtype"),
|
|
63
|
+
}))
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Optional. Override AI Hub input shapes per named input. " +
|
|
66
|
+
'For text models like MiniLM, try `{input_ids: {shape: [1, 128], dtype: "int64"}, ' +
|
|
67
|
+
'attention_mask: {shape: [1, 128], dtype: "int64"}}`. ' +
|
|
68
|
+
"Omit to let EdgeGate auto-detect from the ONNX file (works for most models " +
|
|
69
|
+
"including image classification, BERT-family, MiniLM)."),
|
|
40
70
|
});
|
|
41
71
|
export async function createPipelineHandler(client, input) {
|
|
42
72
|
// Guard: cell count limit applies when model_matrix is provided
|
|
@@ -77,6 +107,7 @@ export async function createPipelineHandler(client, input) {
|
|
|
77
107
|
gates,
|
|
78
108
|
...(model_matrix !== undefined ? { model_matrix } : {}),
|
|
79
109
|
...(run_policy !== undefined ? { run_policy } : {}),
|
|
110
|
+
...(input.input_specs !== undefined ? { input_specs: input.input_specs } : {}),
|
|
80
111
|
});
|
|
81
112
|
return {
|
|
82
113
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_pipeline.js","sourceRoot":"","sources":["../../src/tools/create_pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,4DAA4D;AAC5D,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,0GAA0G;IAC1G,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,8CAA8C;IAC9C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACtD,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACzE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;IACT;;;OAGG;IACH,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;IACb,uEAAuE;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"create_pipeline.js","sourceRoot":"","sources":["../../src/tools/create_pipeline.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 createWorkspaceInputSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
name: string;
|
|
8
|
+
}, {
|
|
9
|
+
name: string;
|
|
10
|
+
}>;
|
|
11
|
+
export type CreateWorkspaceInput = z.infer<typeof createWorkspaceInputSchema>;
|
|
12
|
+
export declare function createWorkspaceHandler(client: EdgeGateClient, input: CreateWorkspaceInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const createWorkspaceInputSchema = z.object({
|
|
4
|
+
name: z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.max(255)
|
|
8
|
+
.describe("Display name for the new workspace, e.g. \"MobileNet Production\"."),
|
|
9
|
+
});
|
|
10
|
+
export async function createWorkspaceHandler(client, input) {
|
|
11
|
+
try {
|
|
12
|
+
const ws = await client.createWorkspace(input.name);
|
|
13
|
+
return {
|
|
14
|
+
content: [
|
|
15
|
+
{
|
|
16
|
+
type: "text",
|
|
17
|
+
text: [
|
|
18
|
+
`Created workspace **${ws.name}** — you are the owner.`,
|
|
19
|
+
``,
|
|
20
|
+
`- workspace_id: \`${ws.id}\``,
|
|
21
|
+
`- plan: ${ws.plan ?? "(unknown)"}`,
|
|
22
|
+
``,
|
|
23
|
+
`Next: connect Qualcomm AI Hub via \`edgegate_connect_qaihub\`, then start defining pipelines with \`edgegate_create_pipeline\`. Pass \`workspace_id\` to every subsequent tool call so they operate on this workspace.`,
|
|
24
|
+
].join("\n"),
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
if (err instanceof EdgeGateError) {
|
|
31
|
+
if (err.status === 403) {
|
|
32
|
+
return {
|
|
33
|
+
isError: true,
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: "text",
|
|
37
|
+
text: `Workspace creation blocked: ${err.detail}\n\n` +
|
|
38
|
+
`If you've hit your plan's workspace limit, upgrade at https://edgegate.frozo.ai/pricing.`,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
isError: true,
|
|
45
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=create_workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_workspace.js","sourceRoot":"","sources":["../../src/tools/create_workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,oEAAoE,CAAC;CAClF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAsB,EACtB,KAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,uBAAuB,EAAE,CAAC,IAAI,yBAAyB;wBACvD,EAAE;wBACF,qBAAqB,EAAE,CAAC,EAAE,IAAI;wBAC9B,WAAW,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE;wBACnC,EAAE;wBACF,wNAAwN;qBACzN,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,+BAA+B,GAAG,CAAC,MAAM,MAAM;gCAC/C,0FAA0F;yBAC7F;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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 disconnectHuggingfaceInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
workspace_id: string;
|
|
8
|
+
}, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
}>;
|
|
11
|
+
export type DisconnectHuggingfaceInput = z.infer<typeof disconnectHuggingfaceInputSchema>;
|
|
12
|
+
export declare function disconnectHuggingfaceHandler(client: EdgeGateClient, input: DisconnectHuggingfaceInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const disconnectHuggingfaceInputSchema = z.object({
|
|
4
|
+
workspace_id: z.string().uuid(),
|
|
5
|
+
});
|
|
6
|
+
export async function disconnectHuggingfaceHandler(client, input) {
|
|
7
|
+
try {
|
|
8
|
+
await client.deleteHuggingFaceIntegration(input.workspace_id);
|
|
9
|
+
return {
|
|
10
|
+
content: [
|
|
11
|
+
{
|
|
12
|
+
type: "text",
|
|
13
|
+
text: [
|
|
14
|
+
`Removed the HuggingFace integration for this workspace.`,
|
|
15
|
+
``,
|
|
16
|
+
`The encrypted token has been deleted. Future \`edgegate_import_huggingface_model\` calls will use anonymous access — only repos with truly public ONNX files will work.`,
|
|
17
|
+
``,
|
|
18
|
+
`Reconnect any time with \`edgegate_connect_huggingface\`.`,
|
|
19
|
+
].join("\n"),
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
if (err instanceof EdgeGateError) {
|
|
26
|
+
if (err.status === 404) {
|
|
27
|
+
return {
|
|
28
|
+
content: [
|
|
29
|
+
{
|
|
30
|
+
type: "text",
|
|
31
|
+
text: "No HuggingFace integration is currently connected to this workspace — nothing to remove.",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
isError: true,
|
|
38
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=disconnect_huggingface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disconnect_huggingface.js","sourceRoot":"","sources":["../../src/tools/disconnect_huggingface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAsB,EACtB,KAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,4BAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,yDAAyD;wBACzD,EAAE;wBACF,yKAAyK;wBACzK,EAAE;wBACF,2DAA2D;qBAC5D,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;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,0FAA0F;yBAC7F;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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 disconnectQaihubInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
workspace_id: string;
|
|
8
|
+
}, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
}>;
|
|
11
|
+
export type DisconnectQaihubInput = z.infer<typeof disconnectQaihubInputSchema>;
|
|
12
|
+
export declare function disconnectQaihubHandler(client: EdgeGateClient, input: DisconnectQaihubInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const disconnectQaihubInputSchema = z.object({
|
|
4
|
+
workspace_id: z.string().uuid(),
|
|
5
|
+
});
|
|
6
|
+
export async function disconnectQaihubHandler(client, input) {
|
|
7
|
+
try {
|
|
8
|
+
await client.deleteQaihubIntegration(input.workspace_id);
|
|
9
|
+
return {
|
|
10
|
+
content: [
|
|
11
|
+
{
|
|
12
|
+
type: "text",
|
|
13
|
+
text: [
|
|
14
|
+
`Removed the Qualcomm AI Hub integration for this workspace.`,
|
|
15
|
+
``,
|
|
16
|
+
`The encrypted token has been deleted. Any new EdgeGate runs in this workspace will fail with \`NO_AIHUB_TOKEN\` until a fresh token is connected via \`edgegate_connect_qaihub\`.`,
|
|
17
|
+
].join("\n"),
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
if (err instanceof EdgeGateError) {
|
|
24
|
+
if (err.status === 404) {
|
|
25
|
+
return {
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
text: "No Qualcomm AI Hub integration is currently connected to this workspace — nothing to remove.",
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
isError: true,
|
|
36
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=disconnect_qaihub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disconnect_qaihub.js","sourceRoot":"","sources":["../../src/tools/disconnect_qaihub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAsB,EACtB,KAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,6DAA6D;wBAC7D,EAAE;wBACF,mLAAmL;qBACpL,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;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,8FAA8F;yBACrG;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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 getHuggingfaceIntegrationInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
workspace_id: string;
|
|
8
|
+
}, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
}>;
|
|
11
|
+
export type GetHuggingfaceIntegrationInput = z.infer<typeof getHuggingfaceIntegrationInputSchema>;
|
|
12
|
+
export declare function getHuggingfaceIntegrationHandler(client: EdgeGateClient, input: GetHuggingfaceIntegrationInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const getHuggingfaceIntegrationInputSchema = z.object({
|
|
4
|
+
workspace_id: z.string().uuid(),
|
|
5
|
+
});
|
|
6
|
+
export async function getHuggingfaceIntegrationHandler(client, input) {
|
|
7
|
+
try {
|
|
8
|
+
const status = await client.getHuggingFaceIntegration(input.workspace_id);
|
|
9
|
+
return {
|
|
10
|
+
content: [
|
|
11
|
+
{
|
|
12
|
+
type: "text",
|
|
13
|
+
text: [
|
|
14
|
+
`HuggingFace integration: **${status.status}**`,
|
|
15
|
+
``,
|
|
16
|
+
`- token: \`****${status.token_last4}\` (encrypted at rest)`,
|
|
17
|
+
`- connected: ${status.created_at}`,
|
|
18
|
+
`- last updated: ${status.updated_at}`,
|
|
19
|
+
``,
|
|
20
|
+
status.status === "disabled"
|
|
21
|
+
? `The integration is paused. Re-enable via the dashboard or rotate to refresh.`
|
|
22
|
+
: `The token is being used for HuggingFace import calls in this workspace.`,
|
|
23
|
+
].join("\n"),
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
if (err instanceof EdgeGateError) {
|
|
30
|
+
if (err.status === 404) {
|
|
31
|
+
return {
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: "text",
|
|
35
|
+
text: [
|
|
36
|
+
`No HuggingFace integration connected to this workspace.`,
|
|
37
|
+
``,
|
|
38
|
+
`Imports currently use anonymous access — only repos with truly public ONNX files work. To unlock private / gated / Qualcomm-org repos, call \`edgegate_connect_huggingface\` with a personal token from https://huggingface.co/settings/tokens.`,
|
|
39
|
+
].join("\n"),
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
isError: true,
|
|
46
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=get_huggingface_integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_huggingface_integration.js","sourceRoot":"","sources":["../../src/tools/get_huggingface_integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC,CAAC;AAMH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAsB,EACtB,KAAqC;IAErC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,8BAA8B,MAAM,CAAC,MAAM,IAAI;wBAC/C,EAAE;wBACF,kBAAkB,MAAM,CAAC,WAAW,wBAAwB;wBAC5D,gBAAgB,MAAM,CAAC,UAAU,EAAE;wBACnC,mBAAmB,MAAM,CAAC,UAAU,EAAE;wBACtC,EAAE;wBACF,MAAM,CAAC,MAAM,KAAK,UAAU;4BAC1B,CAAC,CAAC,8EAA8E;4BAChF,CAAC,CAAC,yEAAyE;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;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;gCACJ,yDAAyD;gCACzD,EAAE;gCACF,iPAAiP;6BAClP,CAAC,IAAI,CAAC,IAAI,CAAC;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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 getQaihubIntegrationInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
workspace_id: string;
|
|
8
|
+
}, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
}>;
|
|
11
|
+
export type GetQaihubIntegrationInput = z.infer<typeof getQaihubIntegrationInputSchema>;
|
|
12
|
+
export declare function getQaihubIntegrationHandler(client: EdgeGateClient, input: GetQaihubIntegrationInput): Promise<ToolResult>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateError } from "../client.js";
|
|
3
|
+
export const getQaihubIntegrationInputSchema = z.object({
|
|
4
|
+
workspace_id: z.string().uuid(),
|
|
5
|
+
});
|
|
6
|
+
export async function getQaihubIntegrationHandler(client, input) {
|
|
7
|
+
try {
|
|
8
|
+
const status = await client.getQaihubIntegration(input.workspace_id);
|
|
9
|
+
return {
|
|
10
|
+
content: [
|
|
11
|
+
{
|
|
12
|
+
type: "text",
|
|
13
|
+
text: [
|
|
14
|
+
`Qualcomm AI Hub integration: **${status.status}**`,
|
|
15
|
+
``,
|
|
16
|
+
`- token: \`****${status.token_last4}\` (encrypted at rest)`,
|
|
17
|
+
`- connected: ${status.created_at}`,
|
|
18
|
+
`- last updated: ${status.updated_at}`,
|
|
19
|
+
``,
|
|
20
|
+
status.status === "disabled"
|
|
21
|
+
? `The integration is paused — runs in this workspace will error with NO_AIHUB_TOKEN until it's re-enabled or rotated with a fresh token.`
|
|
22
|
+
: `The token is being used for all compile + profile jobs against Qualcomm AI Hub.`,
|
|
23
|
+
].join("\n"),
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
if (err instanceof EdgeGateError) {
|
|
30
|
+
if (err.status === 404) {
|
|
31
|
+
return {
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: "text",
|
|
35
|
+
text: [
|
|
36
|
+
`No Qualcomm AI Hub integration connected to this workspace.`,
|
|
37
|
+
``,
|
|
38
|
+
`EdgeGate runs will error with \`NO_AIHUB_TOKEN\` until you connect a token. Get one at https://app.aihub.qualcomm.com/account/api-token and connect it via \`edgegate_connect_qaihub\`.`,
|
|
39
|
+
].join("\n"),
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
isError: true,
|
|
46
|
+
content: [{ type: "text", text: `EdgeGate returned ${err.status}: ${err.detail}` }],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=get_qaihub_integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_qaihub_integration.js","sourceRoot":"","sources":["../../src/tools/get_qaihub_integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAChC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAsB,EACtB,KAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,kCAAkC,MAAM,CAAC,MAAM,IAAI;wBACnD,EAAE;wBACF,kBAAkB,MAAM,CAAC,WAAW,wBAAwB;wBAC5D,gBAAgB,MAAM,CAAC,UAAU,EAAE;wBACnC,mBAAmB,MAAM,CAAC,UAAU,EAAE;wBACtC,EAAE;wBACF,MAAM,CAAC,MAAM,KAAK,UAAU;4BAC1B,CAAC,CAAC,wIAAwI;4BAC1I,CAAC,CAAC,iFAAiF;qBACtF,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;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;gCACJ,6DAA6D;gCAC7D,EAAE;gCACF,yLAAyL;6BAC1L,CAAC,IAAI,CAAC,IAAI,CAAC;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { EdgeGateClient } from "../client.js";
|
|
3
|
+
import type { ToolResult } from "./setup_workspace.js";
|
|
4
|
+
export declare const inviteMemberInputSchema: z.ZodObject<{
|
|
5
|
+
workspace_id: z.ZodString;
|
|
6
|
+
user_email: z.ZodString;
|
|
7
|
+
role: z.ZodEnum<["owner", "admin", "viewer"]>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
user_email: string;
|
|
11
|
+
role: "owner" | "admin" | "viewer";
|
|
12
|
+
}, {
|
|
13
|
+
workspace_id: string;
|
|
14
|
+
user_email: string;
|
|
15
|
+
role: "owner" | "admin" | "viewer";
|
|
16
|
+
}>;
|
|
17
|
+
export type InviteMemberInput = z.infer<typeof inviteMemberInputSchema>;
|
|
18
|
+
export declare function inviteMemberHandler(client: EdgeGateClient, input: InviteMemberInput): Promise<ToolResult>;
|