@zivis/mcp 0.1.0-alpha.13 → 0.1.0-alpha.15
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/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/lib/next-steps.d.ts +57 -0
- package/dist/lib/next-steps.js +45 -0
- package/dist/lib/next-steps.js.map +1 -0
- package/dist/prompts/audit-dependencies.d.ts +10 -0
- package/dist/prompts/audit-dependencies.js +56 -0
- package/dist/prompts/audit-dependencies.js.map +1 -0
- package/dist/prompts/getting-started.d.ts +12 -0
- package/dist/prompts/getting-started.js +48 -0
- package/dist/prompts/getting-started.js.map +1 -0
- package/dist/prompts/index.d.ts +14 -0
- package/dist/prompts/index.js +25 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/prep-for-launch.d.ts +9 -0
- package/dist/prompts/prep-for-launch.js +62 -0
- package/dist/prompts/prep-for-launch.js.map +1 -0
- package/dist/prompts/secure-my-app.d.ts +9 -0
- package/dist/prompts/secure-my-app.js +70 -0
- package/dist/prompts/secure-my-app.js.map +1 -0
- package/dist/prompts/weekly-check.d.ts +9 -0
- package/dist/prompts/weekly-check.js +48 -0
- package/dist/prompts/weekly-check.js.map +1 -0
- package/dist/server.js +54 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/check-project.d.ts +4 -4
- package/dist/tools/check-project.js +91 -61
- package/dist/tools/check-project.js.map +1 -1
- package/dist/tools/check-repo-trust.d.ts +4 -10
- package/dist/tools/check-repo-trust.js +56 -27
- package/dist/tools/check-repo-trust.js.map +1 -1
- package/dist/tools/enterprise/get-campaign.d.ts +27 -0
- package/dist/tools/enterprise/get-campaign.js +31 -0
- package/dist/tools/enterprise/get-campaign.js.map +1 -0
- package/dist/tools/enterprise/list-agents.d.ts +1 -1
- package/dist/tools/enterprise/list-attack-scenarios.d.ts +29 -0
- package/dist/tools/enterprise/list-attack-scenarios.js +69 -0
- package/dist/tools/enterprise/list-attack-scenarios.js.map +1 -0
- package/dist/tools/enterprise/list-attack-step-library-tests.d.ts +29 -0
- package/dist/tools/enterprise/list-attack-step-library-tests.js +61 -0
- package/dist/tools/enterprise/list-attack-step-library-tests.js.map +1 -0
- package/dist/tools/enterprise/list-campaigns.d.ts +37 -0
- package/dist/tools/enterprise/list-campaigns.js +60 -0
- package/dist/tools/enterprise/list-campaigns.js.map +1 -0
- package/dist/tools/enterprise/list-threat-model-review-items.d.ts +35 -0
- package/dist/tools/enterprise/list-threat-model-review-items.js +60 -0
- package/dist/tools/enterprise/list-threat-model-review-items.js.map +1 -0
- package/dist/tools/enterprise/list-threat-model-versions.d.ts +29 -0
- package/dist/tools/enterprise/list-threat-model-versions.js +60 -0
- package/dist/tools/enterprise/list-threat-model-versions.js.map +1 -0
- package/dist/tools/enterprise/manage-campaign-agent-instance.d.ts +42 -0
- package/dist/tools/enterprise/manage-campaign-agent-instance.js +68 -0
- package/dist/tools/enterprise/manage-campaign-agent-instance.js.map +1 -0
- package/dist/tools/enterprise/manage-campaign-target.d.ts +44 -0
- package/dist/tools/enterprise/manage-campaign-target.js +70 -0
- package/dist/tools/enterprise/manage-campaign-target.js.map +1 -0
- package/dist/tools/enterprise/manage-campaign.d.ts +62 -0
- package/dist/tools/enterprise/manage-campaign.js +114 -0
- package/dist/tools/enterprise/manage-campaign.js.map +1 -0
- package/dist/tools/enterprise/manage-finding.d.ts +1 -1
- package/dist/tools/enterprise/manage-threat-model-analysis.d.ts +52 -0
- package/dist/tools/enterprise/manage-threat-model-analysis.js +92 -0
- package/dist/tools/enterprise/manage-threat-model-analysis.js.map +1 -0
- package/dist/tools/enterprise/manage-threat-model-review.d.ts +47 -0
- package/dist/tools/enterprise/manage-threat-model-review.js +82 -0
- package/dist/tools/enterprise/manage-threat-model-review.js.map +1 -0
- package/dist/tools/get-application-auth-config.d.ts +27 -0
- package/dist/tools/get-application-auth-config.js +44 -0
- package/dist/tools/get-application-auth-config.js.map +1 -0
- package/dist/tools/get-finding-details.d.ts +4 -10
- package/dist/tools/get-finding-details.js +28 -10
- package/dist/tools/get-finding-details.js.map +1 -1
- package/dist/tools/get-findings.d.ts +4 -10
- package/dist/tools/get-findings.js +44 -23
- package/dist/tools/get-findings.js.map +1 -1
- package/dist/tools/get-started.d.ts +28 -0
- package/dist/tools/get-started.js +364 -0
- package/dist/tools/get-started.js.map +1 -0
- package/dist/tools/list-applications.d.ts +1 -1
- package/dist/tools/list-scans.d.ts +4 -10
- package/dist/tools/list-scans.js +55 -21
- package/dist/tools/list-scans.js.map +1 -1
- package/dist/tools/list-test-scenarios.d.ts +4 -10
- package/dist/tools/list-test-scenarios.js +41 -13
- package/dist/tools/list-test-scenarios.js.map +1 -1
- package/dist/tools/local-scan.d.ts +1 -1
- package/dist/tools/manage-application.d.ts +72 -0
- package/dist/tools/manage-application.js +138 -0
- package/dist/tools/manage-application.js.map +1 -0
- package/dist/tools/manage-endpoint-lifecycle.d.ts +90 -0
- package/dist/tools/manage-endpoint-lifecycle.js +191 -0
- package/dist/tools/manage-endpoint-lifecycle.js.map +1 -0
- package/dist/tools/open-in-ide.d.ts +1 -1
- package/dist/tools/setup-red-team-target.d.ts +6 -12
- package/dist/tools/setup-red-team-target.js +51 -20
- package/dist/tools/setup-red-team-target.js.map +1 -1
- package/dist/tools/triage-finding.d.ts +4 -10
- package/dist/tools/triage-finding.js +30 -21
- package/dist/tools/triage-finding.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +19 -23
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-test-scenarios.js","sourceRoot":"","sources":["../../src/tools/list-test-scenarios.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-test-scenarios.js","sourceRoot":"","sources":["../../src/tools/list-test-scenarios.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,9 @@ export declare const LOCAL_SCAN_DESCRIPTION = "Run AI red team security tests ag
|
|
|
17
17
|
export declare const LOCAL_SCAN_SCHEMA: {
|
|
18
18
|
target_url: z.ZodString;
|
|
19
19
|
target_type: z.ZodOptional<z.ZodEnum<{
|
|
20
|
-
ai_chat: "ai_chat";
|
|
21
20
|
web_app: "web_app";
|
|
22
21
|
api: "api";
|
|
22
|
+
ai_chat: "ai_chat";
|
|
23
23
|
}>>;
|
|
24
24
|
chat_endpoint: z.ZodOptional<z.ZodString>;
|
|
25
25
|
request_template: z.ZodOptional<z.ZodString>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_manage_application — Create/update/delete application
|
|
3
|
+
*
|
|
4
|
+
* Maps to:
|
|
5
|
+
* - POST /api/rt/applications
|
|
6
|
+
* - PATCH /api/rt/applications/:id
|
|
7
|
+
* - DELETE /api/rt/applications/:id
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import type { ApiClient } from "../api-client.js";
|
|
11
|
+
export declare const MANAGE_APPLICATION_NAME = "zivis_manage_application";
|
|
12
|
+
export declare const MANAGE_APPLICATION_DESCRIPTION = "Create, update, or delete a target application.\n\nActions:\n- create: requires at least name, base_url, auth_type\n- update: patch an existing application (requires application_id)\n- delete: remove an application (requires application_id)";
|
|
13
|
+
export declare const MANAGE_APPLICATION_SCHEMA: {
|
|
14
|
+
action: z.ZodEnum<{
|
|
15
|
+
create: "create";
|
|
16
|
+
update: "update";
|
|
17
|
+
delete: "delete";
|
|
18
|
+
}>;
|
|
19
|
+
application_id: z.ZodOptional<z.ZodString>;
|
|
20
|
+
name: z.ZodOptional<z.ZodString>;
|
|
21
|
+
description: z.ZodOptional<z.ZodString>;
|
|
22
|
+
base_url: z.ZodOptional<z.ZodString>;
|
|
23
|
+
api_url: z.ZodOptional<z.ZodString>;
|
|
24
|
+
auth_type: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
none: "none";
|
|
26
|
+
static_token: "static_token";
|
|
27
|
+
oauth_pkce: "oauth_pkce";
|
|
28
|
+
client_credentials: "client_credentials";
|
|
29
|
+
bearer_refresh: "bearer_refresh";
|
|
30
|
+
}>>;
|
|
31
|
+
has_rag: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
has_tools: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
has_memory: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
is_multi_turn: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
system_context: z.ZodOptional<z.ZodString>;
|
|
36
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
37
|
+
api: "api";
|
|
38
|
+
chat: "chat";
|
|
39
|
+
sse: "sse";
|
|
40
|
+
validation: "validation";
|
|
41
|
+
web: "web";
|
|
42
|
+
}>>;
|
|
43
|
+
use_ephemeral_creds: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
};
|
|
45
|
+
export declare function createManageApplicationHandler(apiClient: ApiClient): (params: {
|
|
46
|
+
action: "create" | "update" | "delete";
|
|
47
|
+
application_id?: string;
|
|
48
|
+
name?: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
base_url?: string;
|
|
51
|
+
api_url?: string;
|
|
52
|
+
auth_type?: "none" | "oauth_pkce" | "static_token" | "client_credentials" | "bearer_refresh";
|
|
53
|
+
has_rag?: boolean;
|
|
54
|
+
has_tools?: boolean;
|
|
55
|
+
has_memory?: boolean;
|
|
56
|
+
is_multi_turn?: boolean;
|
|
57
|
+
system_context?: string;
|
|
58
|
+
type?: "api" | "chat" | "sse" | "validation" | "web";
|
|
59
|
+
use_ephemeral_creds?: boolean;
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
content: {
|
|
62
|
+
type: "text";
|
|
63
|
+
text: string;
|
|
64
|
+
}[];
|
|
65
|
+
isError: boolean;
|
|
66
|
+
} | {
|
|
67
|
+
content: {
|
|
68
|
+
type: "text";
|
|
69
|
+
text: string;
|
|
70
|
+
}[];
|
|
71
|
+
isError?: undefined;
|
|
72
|
+
}>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_manage_application — Create/update/delete application
|
|
3
|
+
*
|
|
4
|
+
* Maps to:
|
|
5
|
+
* - POST /api/rt/applications
|
|
6
|
+
* - PATCH /api/rt/applications/:id
|
|
7
|
+
* - DELETE /api/rt/applications/:id
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { requireApplicationId } from "../resolve-application-id.js";
|
|
11
|
+
import { sanitizeResponse } from "../sanitize.js";
|
|
12
|
+
export const MANAGE_APPLICATION_NAME = "zivis_manage_application";
|
|
13
|
+
export const MANAGE_APPLICATION_DESCRIPTION = `Create, update, or delete a target application.
|
|
14
|
+
|
|
15
|
+
Actions:
|
|
16
|
+
- create: requires at least name, base_url, auth_type
|
|
17
|
+
- update: patch an existing application (requires application_id)
|
|
18
|
+
- delete: remove an application (requires application_id)`;
|
|
19
|
+
export const MANAGE_APPLICATION_SCHEMA = {
|
|
20
|
+
action: z.enum(["create", "update", "delete"]).describe("CRUD action"),
|
|
21
|
+
application_id: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Required for update/delete. Optional for create."),
|
|
25
|
+
name: z.string().optional().describe("Application name"),
|
|
26
|
+
description: z.string().optional().describe("Application description"),
|
|
27
|
+
base_url: z.string().optional().describe("Base URL, e.g. https://api.example.com"),
|
|
28
|
+
api_url: z.string().optional().describe("Explicit API URL"),
|
|
29
|
+
auth_type: z
|
|
30
|
+
.enum(["none", "oauth_pkce", "static_token", "client_credentials", "bearer_refresh"])
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Application auth type (required for create)"),
|
|
33
|
+
has_rag: z.boolean().optional().describe("LLM capability flag"),
|
|
34
|
+
has_tools: z.boolean().optional().describe("LLM capability flag"),
|
|
35
|
+
has_memory: z.boolean().optional().describe("LLM capability flag"),
|
|
36
|
+
is_multi_turn: z.boolean().optional().describe("LLM capability flag"),
|
|
37
|
+
system_context: z.string().optional().describe("System context/prompt context"),
|
|
38
|
+
type: z
|
|
39
|
+
.enum(["api", "chat", "sse", "validation", "web"])
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Application type"),
|
|
42
|
+
use_ephemeral_creds: z
|
|
43
|
+
.boolean()
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Whether ephemeral credentials are enabled"),
|
|
46
|
+
};
|
|
47
|
+
export function createManageApplicationHandler(apiClient) {
|
|
48
|
+
return async (params) => {
|
|
49
|
+
try {
|
|
50
|
+
const { action } = params;
|
|
51
|
+
let data;
|
|
52
|
+
if (action === "create") {
|
|
53
|
+
if (!params.name || !params.base_url || !params.auth_type) {
|
|
54
|
+
return {
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: "text",
|
|
58
|
+
text: "Error: create requires name, base_url, and auth_type",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
isError: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
data = await apiClient.post("/api/rt/applications", {
|
|
65
|
+
name: params.name,
|
|
66
|
+
description: params.description,
|
|
67
|
+
baseUrl: params.base_url,
|
|
68
|
+
apiUrl: params.api_url,
|
|
69
|
+
authType: params.auth_type,
|
|
70
|
+
hasRag: params.has_rag,
|
|
71
|
+
hasTools: params.has_tools,
|
|
72
|
+
hasMemory: params.has_memory,
|
|
73
|
+
isMultiTurn: params.is_multi_turn,
|
|
74
|
+
systemContext: params.system_context,
|
|
75
|
+
type: params.type,
|
|
76
|
+
useEphemeralCreds: params.use_ephemeral_creds,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const req = requireApplicationId(params.application_id);
|
|
81
|
+
if (!req.ok) {
|
|
82
|
+
return {
|
|
83
|
+
content: [{ type: "text", text: `Error: ${req.message}` }],
|
|
84
|
+
isError: true,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (action === "delete") {
|
|
88
|
+
data = await apiClient.del(`/api/rt/applications/${req.id}`);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const body = {};
|
|
92
|
+
if (params.name !== undefined)
|
|
93
|
+
body.name = params.name;
|
|
94
|
+
if (params.description !== undefined)
|
|
95
|
+
body.description = params.description;
|
|
96
|
+
if (params.base_url !== undefined)
|
|
97
|
+
body.baseUrl = params.base_url;
|
|
98
|
+
if (params.api_url !== undefined)
|
|
99
|
+
body.apiUrl = params.api_url;
|
|
100
|
+
if (params.auth_type !== undefined)
|
|
101
|
+
body.authType = params.auth_type;
|
|
102
|
+
if (params.has_rag !== undefined)
|
|
103
|
+
body.hasRag = params.has_rag;
|
|
104
|
+
if (params.has_tools !== undefined)
|
|
105
|
+
body.hasTools = params.has_tools;
|
|
106
|
+
if (params.has_memory !== undefined)
|
|
107
|
+
body.hasMemory = params.has_memory;
|
|
108
|
+
if (params.is_multi_turn !== undefined)
|
|
109
|
+
body.isMultiTurn = params.is_multi_turn;
|
|
110
|
+
if (params.system_context !== undefined)
|
|
111
|
+
body.systemContext = params.system_context;
|
|
112
|
+
if (params.type !== undefined)
|
|
113
|
+
body.type = params.type;
|
|
114
|
+
if (params.use_ephemeral_creds !== undefined) {
|
|
115
|
+
body.useEphemeralCreds = params.use_ephemeral_creds;
|
|
116
|
+
}
|
|
117
|
+
data = await apiClient.patch(`/api/rt/applications/${req.id}`, body);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const sanitized = sanitizeResponse({
|
|
121
|
+
action,
|
|
122
|
+
application_id: params.application_id,
|
|
123
|
+
result: data,
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
content: [{ type: "text", text: JSON.stringify(sanitized, null, 2) }],
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
const message = err instanceof Error ? err.message : "Failed to manage application";
|
|
131
|
+
return {
|
|
132
|
+
content: [{ type: "text", text: `Error: ${message}` }],
|
|
133
|
+
isError: true,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=manage-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage-application.js","sourceRoot":"","sources":["../../src/tools/manage-application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_manage_endpoint_lifecycle — Create/update/delete/import endpoints
|
|
3
|
+
*
|
|
4
|
+
* Maps to:
|
|
5
|
+
* - POST /api/rt/applications/:id/endpoints
|
|
6
|
+
* - PATCH /api/rt/applications/:id/endpoints/:endpointId
|
|
7
|
+
* - DELETE /api/rt/applications/:id/endpoints/:endpointId
|
|
8
|
+
* - DELETE /api/rt/applications/:id/endpoints?source=<source>
|
|
9
|
+
* - POST /api/rt/applications/:id/endpoints/import-openapi
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import type { ApiClient } from "../api-client.js";
|
|
13
|
+
export declare const MANAGE_ENDPOINT_LIFECYCLE_NAME = "zivis_manage_endpoint_lifecycle";
|
|
14
|
+
export declare const MANAGE_ENDPOINT_LIFECYCLE_DESCRIPTION = "Manage endpoint lifecycle for an application.\n\nActions:\n- create: create a single endpoint\n- update: patch an endpoint\n- delete: delete a single endpoint\n- bulk_delete: delete endpoints by source (e.g., openapi)\n- import_openapi: import endpoints from an OpenAPI spec";
|
|
15
|
+
export declare const MANAGE_ENDPOINT_LIFECYCLE_SCHEMA: {
|
|
16
|
+
application_id: z.ZodOptional<z.ZodString>;
|
|
17
|
+
action: z.ZodEnum<{
|
|
18
|
+
create: "create";
|
|
19
|
+
update: "update";
|
|
20
|
+
delete: "delete";
|
|
21
|
+
bulk_delete: "bulk_delete";
|
|
22
|
+
import_openapi: "import_openapi";
|
|
23
|
+
}>;
|
|
24
|
+
endpoint_id: z.ZodOptional<z.ZodString>;
|
|
25
|
+
path: z.ZodOptional<z.ZodString>;
|
|
26
|
+
method: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
POST: "POST";
|
|
28
|
+
GET: "GET";
|
|
29
|
+
PATCH: "PATCH";
|
|
30
|
+
DELETE: "DELETE";
|
|
31
|
+
PUT: "PUT";
|
|
32
|
+
HEAD: "HEAD";
|
|
33
|
+
OPTIONS: "OPTIONS";
|
|
34
|
+
}>>;
|
|
35
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
36
|
+
description: z.ZodOptional<z.ZodString>;
|
|
37
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
38
|
+
auth_required: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
deprecated: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
endpoint_type: z.ZodOptional<z.ZodEnum<{
|
|
41
|
+
api: "api";
|
|
42
|
+
chat: "chat";
|
|
43
|
+
sse: "sse";
|
|
44
|
+
validation: "validation";
|
|
45
|
+
web: "web";
|
|
46
|
+
}>>;
|
|
47
|
+
request_template: z.ZodOptional<z.ZodString>;
|
|
48
|
+
response_path: z.ZodOptional<z.ZodString>;
|
|
49
|
+
streaming_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
51
|
+
openapi: "openapi";
|
|
52
|
+
manual: "manual";
|
|
53
|
+
discovery: "discovery";
|
|
54
|
+
}>>;
|
|
55
|
+
spec_url: z.ZodOptional<z.ZodString>;
|
|
56
|
+
spec_content: z.ZodOptional<z.ZodString>;
|
|
57
|
+
replace_existing: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
+
};
|
|
59
|
+
export declare function createManageEndpointLifecycleHandler(apiClient: ApiClient): (params: {
|
|
60
|
+
application_id?: string;
|
|
61
|
+
action: "create" | "update" | "delete" | "bulk_delete" | "import_openapi";
|
|
62
|
+
endpoint_id?: string;
|
|
63
|
+
path?: string;
|
|
64
|
+
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
|
|
65
|
+
summary?: string;
|
|
66
|
+
description?: string;
|
|
67
|
+
tags?: string[];
|
|
68
|
+
auth_required?: boolean;
|
|
69
|
+
deprecated?: boolean;
|
|
70
|
+
endpoint_type?: "api" | "chat" | "sse" | "validation" | "web";
|
|
71
|
+
request_template?: string;
|
|
72
|
+
response_path?: string;
|
|
73
|
+
streaming_enabled?: boolean;
|
|
74
|
+
source?: "openapi" | "manual" | "discovery";
|
|
75
|
+
spec_url?: string;
|
|
76
|
+
spec_content?: string;
|
|
77
|
+
replace_existing?: boolean;
|
|
78
|
+
}) => Promise<{
|
|
79
|
+
content: {
|
|
80
|
+
type: "text";
|
|
81
|
+
text: string;
|
|
82
|
+
}[];
|
|
83
|
+
isError: boolean;
|
|
84
|
+
} | {
|
|
85
|
+
content: {
|
|
86
|
+
type: "text";
|
|
87
|
+
text: string;
|
|
88
|
+
}[];
|
|
89
|
+
isError?: undefined;
|
|
90
|
+
}>;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_manage_endpoint_lifecycle — Create/update/delete/import endpoints
|
|
3
|
+
*
|
|
4
|
+
* Maps to:
|
|
5
|
+
* - POST /api/rt/applications/:id/endpoints
|
|
6
|
+
* - PATCH /api/rt/applications/:id/endpoints/:endpointId
|
|
7
|
+
* - DELETE /api/rt/applications/:id/endpoints/:endpointId
|
|
8
|
+
* - DELETE /api/rt/applications/:id/endpoints?source=<source>
|
|
9
|
+
* - POST /api/rt/applications/:id/endpoints/import-openapi
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { requireApplicationId } from "../resolve-application-id.js";
|
|
13
|
+
import { sanitizeResponse } from "../sanitize.js";
|
|
14
|
+
export const MANAGE_ENDPOINT_LIFECYCLE_NAME = "zivis_manage_endpoint_lifecycle";
|
|
15
|
+
export const MANAGE_ENDPOINT_LIFECYCLE_DESCRIPTION = `Manage endpoint lifecycle for an application.
|
|
16
|
+
|
|
17
|
+
Actions:
|
|
18
|
+
- create: create a single endpoint
|
|
19
|
+
- update: patch an endpoint
|
|
20
|
+
- delete: delete a single endpoint
|
|
21
|
+
- bulk_delete: delete endpoints by source (e.g., openapi)
|
|
22
|
+
- import_openapi: import endpoints from an OpenAPI spec`;
|
|
23
|
+
export const MANAGE_ENDPOINT_LIFECYCLE_SCHEMA = {
|
|
24
|
+
application_id: z
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Application UUID. If omitted, uses applicationId from .zivis/project.json when set."),
|
|
28
|
+
action: z
|
|
29
|
+
.enum(["create", "update", "delete", "bulk_delete", "import_openapi"])
|
|
30
|
+
.describe("Endpoint lifecycle action"),
|
|
31
|
+
endpoint_id: z.string().optional().describe("Required for update/delete actions"),
|
|
32
|
+
path: z.string().optional().describe("Endpoint path, e.g. /api/chat"),
|
|
33
|
+
method: z
|
|
34
|
+
.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"])
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("HTTP method"),
|
|
37
|
+
summary: z.string().optional().describe("Endpoint summary"),
|
|
38
|
+
description: z.string().optional().describe("Endpoint description"),
|
|
39
|
+
tags: z.array(z.string()).optional().describe("Endpoint tags"),
|
|
40
|
+
auth_required: z.boolean().optional().describe("Whether auth is required"),
|
|
41
|
+
deprecated: z.boolean().optional().describe("Whether endpoint is deprecated"),
|
|
42
|
+
endpoint_type: z
|
|
43
|
+
.enum(["api", "chat", "sse", "validation", "web"])
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Endpoint type"),
|
|
46
|
+
request_template: z
|
|
47
|
+
.string()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("AI request template, usually includes {{message}}"),
|
|
50
|
+
response_path: z
|
|
51
|
+
.string()
|
|
52
|
+
.optional()
|
|
53
|
+
.describe("JSON path to pull response text"),
|
|
54
|
+
streaming_enabled: z.boolean().optional().describe("Whether streaming is enabled"),
|
|
55
|
+
source: z
|
|
56
|
+
.enum(["openapi", "manual", "discovery"])
|
|
57
|
+
.optional()
|
|
58
|
+
.describe("Source filter for bulk_delete"),
|
|
59
|
+
spec_url: z.string().optional().describe("OpenAPI spec URL for import_openapi"),
|
|
60
|
+
spec_content: z.string().optional().describe("Raw OpenAPI spec content"),
|
|
61
|
+
replace_existing: z
|
|
62
|
+
.boolean()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("When import_openapi, remove previous openapi endpoints first"),
|
|
65
|
+
};
|
|
66
|
+
export function createManageEndpointLifecycleHandler(apiClient) {
|
|
67
|
+
return async (params) => {
|
|
68
|
+
const req = requireApplicationId(params.application_id);
|
|
69
|
+
if (!req.ok) {
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: "text", text: `Error: ${req.message}` }],
|
|
72
|
+
isError: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const applicationId = req.id;
|
|
76
|
+
const action = params.action;
|
|
77
|
+
try {
|
|
78
|
+
let data;
|
|
79
|
+
if (action === "create") {
|
|
80
|
+
if (!params.path || !params.method) {
|
|
81
|
+
return {
|
|
82
|
+
content: [
|
|
83
|
+
{
|
|
84
|
+
type: "text",
|
|
85
|
+
text: "Error: create requires path and method",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
isError: true,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
data = await apiClient.post(`/api/rt/applications/${applicationId}/endpoints`, {
|
|
92
|
+
path: params.path,
|
|
93
|
+
method: params.method,
|
|
94
|
+
summary: params.summary,
|
|
95
|
+
description: params.description,
|
|
96
|
+
tags: params.tags,
|
|
97
|
+
authRequired: params.auth_required,
|
|
98
|
+
deprecated: params.deprecated,
|
|
99
|
+
endpointType: params.endpoint_type,
|
|
100
|
+
requestTemplate: params.request_template,
|
|
101
|
+
responsePath: params.response_path,
|
|
102
|
+
streamingEnabled: params.streaming_enabled,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else if (action === "update") {
|
|
106
|
+
if (!params.endpoint_id) {
|
|
107
|
+
return {
|
|
108
|
+
content: [
|
|
109
|
+
{ type: "text", text: "Error: endpoint_id is required for update" },
|
|
110
|
+
],
|
|
111
|
+
isError: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const body = {};
|
|
115
|
+
if (params.path !== undefined)
|
|
116
|
+
body.path = params.path;
|
|
117
|
+
if (params.method !== undefined)
|
|
118
|
+
body.method = params.method;
|
|
119
|
+
if (params.summary !== undefined)
|
|
120
|
+
body.summary = params.summary;
|
|
121
|
+
if (params.description !== undefined)
|
|
122
|
+
body.description = params.description;
|
|
123
|
+
if (params.tags !== undefined)
|
|
124
|
+
body.tags = params.tags;
|
|
125
|
+
if (params.auth_required !== undefined)
|
|
126
|
+
body.authRequired = params.auth_required;
|
|
127
|
+
if (params.deprecated !== undefined)
|
|
128
|
+
body.deprecated = params.deprecated;
|
|
129
|
+
if (params.endpoint_type !== undefined)
|
|
130
|
+
body.endpointType = params.endpoint_type;
|
|
131
|
+
if (params.request_template !== undefined)
|
|
132
|
+
body.requestTemplate = params.request_template;
|
|
133
|
+
if (params.response_path !== undefined)
|
|
134
|
+
body.responsePath = params.response_path;
|
|
135
|
+
if (params.streaming_enabled !== undefined) {
|
|
136
|
+
body.streamingEnabled = params.streaming_enabled;
|
|
137
|
+
}
|
|
138
|
+
data = await apiClient.patch(`/api/rt/applications/${applicationId}/endpoints/${params.endpoint_id}`, body);
|
|
139
|
+
}
|
|
140
|
+
else if (action === "delete") {
|
|
141
|
+
if (!params.endpoint_id) {
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{ type: "text", text: "Error: endpoint_id is required for delete" },
|
|
145
|
+
],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
data = await apiClient.del(`/api/rt/applications/${applicationId}/endpoints/${params.endpoint_id}`);
|
|
150
|
+
}
|
|
151
|
+
else if (action === "bulk_delete") {
|
|
152
|
+
if (!params.source) {
|
|
153
|
+
return {
|
|
154
|
+
content: [
|
|
155
|
+
{
|
|
156
|
+
type: "text",
|
|
157
|
+
text: "Error: source is required for bulk_delete (openapi/manual/discovery)",
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
isError: true,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
data = await apiClient.del(`/api/rt/applications/${applicationId}/endpoints?source=${encodeURIComponent(params.source)}`);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
data = await apiClient.post(`/api/rt/applications/${applicationId}/endpoints/import-openapi`, {
|
|
167
|
+
specUrl: params.spec_url,
|
|
168
|
+
specContent: params.spec_content,
|
|
169
|
+
replaceExisting: params.replace_existing ?? false,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
const sanitized = sanitizeResponse({
|
|
173
|
+
action,
|
|
174
|
+
application_id: applicationId,
|
|
175
|
+
endpoint_id: params.endpoint_id,
|
|
176
|
+
result: data,
|
|
177
|
+
});
|
|
178
|
+
return {
|
|
179
|
+
content: [{ type: "text", text: JSON.stringify(sanitized, null, 2) }],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
const message = err instanceof Error ? err.message : "Failed to manage endpoint lifecycle";
|
|
184
|
+
return {
|
|
185
|
+
content: [{ type: "text", text: `Error: ${message}` }],
|
|
186
|
+
isError: true,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=manage-endpoint-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage-endpoint-lifecycle.js","sourceRoot":"","sources":["../../src/tools/manage-endpoint-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAAG,iCAAiC,CAAC;AAEhF,MAAM,CAAC,MAAM,qCAAqC,GAAG;;;;;;;wDAOG,CAAC;AAEzD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;SACrE,QAAQ,CAAC,2BAA2B,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACjF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SAClE,QAAQ,EAAE;SACV,QAAQ,CAAC,aAAa,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACnE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC9D,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC1E,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7E,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;SACjD,QAAQ,EAAE;SACV,QAAQ,CAAC,eAAe,CAAC;IAC5B,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAClF,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC/E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACxE,gBAAgB,EAAE,CAAC;SAChB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,SAAoB;IACvE,OAAO,KAAK,EAAE,MAmBb,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,IAA6B,CAAC;YAElC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,wCAAwC;6BAC/C;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CACzB,wBAAwB,aAAa,YAAY,EACjD;oBACE,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,YAAY,EAAE,MAAM,CAAC,aAAa;oBAClC,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,MAAM,CAAC,aAAa;oBAClC,eAAe,EAAE,MAAM,CAAC,gBAAgB;oBACxC,YAAY,EAAE,MAAM,CAAC,aAAa;oBAClC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;iBAC3C,CACF,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2CAA2C,EAAE;yBAC7E;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;oBAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC5E,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;oBAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;gBACjF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACzE,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;oBAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;gBACjF,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;oBAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;gBAC1F,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;oBAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;gBACjF,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBAC3C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACnD,CAAC;gBAED,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAC1B,wBAAwB,aAAa,cAAc,MAAM,CAAC,WAAW,EAAE,EACvE,IAAI,CACL,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2CAA2C,EAAE;yBAC7E;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CACxB,wBAAwB,aAAa,cAAc,MAAM,CAAC,WAAW,EAAE,CACxE,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,sEAAsE;6BAC7E;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CACxB,wBAAwB,aAAa,qBAAqB,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC9F,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CACzB,wBAAwB,aAAa,2BAA2B,EAChE;oBACE,OAAO,EAAE,MAAM,CAAC,QAAQ;oBACxB,WAAW,EAAE,MAAM,CAAC,YAAY;oBAChC,eAAe,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;iBAClD,CACF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,gBAAgB,CAAC;gBACjC,MAAM;gBACN,cAAc,EAAE,aAAa;gBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC;YAC7E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -22,8 +22,8 @@ export declare const OPEN_IN_IDE_SCHEMA: {
|
|
|
22
22
|
id: z.ZodString;
|
|
23
23
|
label: z.ZodOptional<z.ZodString>;
|
|
24
24
|
ide_client: z.ZodOptional<z.ZodEnum<{
|
|
25
|
-
vscode: "vscode";
|
|
26
25
|
cursor: "cursor";
|
|
26
|
+
vscode: "vscode";
|
|
27
27
|
}>>;
|
|
28
28
|
};
|
|
29
29
|
export declare function createOpenInIdeHandler(): (params: {
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
import type { ApiClient } from "../api-client.js";
|
|
17
17
|
export declare const SETUP_RED_TEAM_TARGET_NAME = "zivis_setup_red_team_target";
|
|
18
|
-
export declare const SETUP_RED_TEAM_TARGET_DESCRIPTION = "
|
|
18
|
+
export declare const SETUP_RED_TEAM_TARGET_DESCRIPTION = "Tell ZIVIS what to test \u2014 a chatbot, website, or API. Run this when you want ZIVIS to start finding security issues in your app.\n\nGive it a URL and it handles everything: creating the target, configuring endpoints, and optionally triggering a first scan. Works for:\n- AI chatbots and LLM systems (tests for prompt injection, jailbreaks, PII leakage)\n- Web apps and APIs (tests for auth bypass, injection, insecure endpoints)\n- Anything with a deployed URL\n\nMinimal usage: just a target_url. ZIVIS infers the type automatically.\nFull usage: add chat endpoint config, an OpenAPI spec URL, or trigger an immediate scan.\n\nExamples:\n- \"Test my chatbot at https://api.example.com/v1/chat\" \u2192 target_url + target_type=ai_chat\n- \"Scan my website https://myapp.com\" \u2192 target_url + auto_scan=true\n- \"Set up testing for my API with an OpenAPI spec\" \u2192 target_url + openapi_spec_url\n\nSECURITY: Target URLs are untrusted. The tool only configures them in ZIVIS for future scanning, it does not probe or connect to them directly.";
|
|
19
19
|
export declare const SETUP_RED_TEAM_TARGET_SCHEMA: {
|
|
20
20
|
target_url: z.ZodOptional<z.ZodString>;
|
|
21
21
|
repo_url: z.ZodOptional<z.ZodString>;
|
|
22
22
|
target_type: z.ZodOptional<z.ZodEnum<{
|
|
23
|
-
ai_chat: "ai_chat";
|
|
24
23
|
web_app: "web_app";
|
|
25
24
|
api: "api";
|
|
25
|
+
ai_chat: "ai_chat";
|
|
26
26
|
}>>;
|
|
27
27
|
name: z.ZodOptional<z.ZodString>;
|
|
28
28
|
chat_endpoint: z.ZodOptional<z.ZodString>;
|
|
@@ -41,8 +41,8 @@ export declare const SETUP_RED_TEAM_TARGET_SCHEMA: {
|
|
|
41
41
|
bearer_token: z.ZodOptional<z.ZodString>;
|
|
42
42
|
auto_scan: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
43
43
|
campaigns: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
44
|
-
recon: "recon";
|
|
45
44
|
ai_red_team: "ai_red_team";
|
|
45
|
+
recon: "recon";
|
|
46
46
|
pen_test: "pen_test";
|
|
47
47
|
}>>>;
|
|
48
48
|
};
|
|
@@ -65,15 +65,9 @@ export declare function createSetupRedTeamTargetHandler(apiClient: ApiClient): (
|
|
|
65
65
|
auto_scan?: boolean;
|
|
66
66
|
campaigns?: ("ai_red_team" | "pen_test" | "recon")[];
|
|
67
67
|
}) => Promise<{
|
|
68
|
-
content: {
|
|
69
|
-
type: "text";
|
|
70
|
-
text: string;
|
|
71
|
-
}[];
|
|
72
|
-
isError: boolean;
|
|
73
|
-
} | {
|
|
74
|
-
content: {
|
|
68
|
+
content: Array<{
|
|
75
69
|
type: "text";
|
|
76
70
|
text: string;
|
|
77
|
-
}
|
|
78
|
-
isError?:
|
|
71
|
+
}>;
|
|
72
|
+
isError?: boolean;
|
|
79
73
|
}>;
|