@zivis/mcp 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (126) hide show
  1. package/dist/api-client.d.ts +11 -11
  2. package/dist/api-client.js +41 -36
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/auth/index.d.ts +9 -5
  5. package/dist/auth/index.js +33 -17
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/keychain.d.ts +6 -5
  8. package/dist/auth/keychain.js +82 -69
  9. package/dist/auth/keychain.js.map +1 -1
  10. package/dist/auth/oauth.d.ts +18 -0
  11. package/dist/auth/oauth.js +55 -6
  12. package/dist/auth/oauth.js.map +1 -1
  13. package/dist/auth/sessions.d.ts +5 -4
  14. package/dist/auth/sessions.js +20 -14
  15. package/dist/auth/sessions.js.map +1 -1
  16. package/dist/auth/token-refresh.d.ts +2 -2
  17. package/dist/auth/token-refresh.js +42 -9
  18. package/dist/auth/token-refresh.js.map +1 -1
  19. package/dist/cli.d.ts +7 -15
  20. package/dist/cli.js +36 -904
  21. package/dist/cli.js.map +1 -1
  22. package/dist/lib/next-steps.d.ts +57 -0
  23. package/dist/lib/next-steps.js +45 -0
  24. package/dist/lib/next-steps.js.map +1 -0
  25. package/dist/project-binding.d.ts +19 -2
  26. package/dist/project-binding.js +57 -3
  27. package/dist/project-binding.js.map +1 -1
  28. package/dist/prompts/audit-dependencies.d.ts +10 -0
  29. package/dist/prompts/audit-dependencies.js +56 -0
  30. package/dist/prompts/audit-dependencies.js.map +1 -0
  31. package/dist/prompts/getting-started.d.ts +12 -0
  32. package/dist/prompts/getting-started.js +48 -0
  33. package/dist/prompts/getting-started.js.map +1 -0
  34. package/dist/prompts/index.d.ts +14 -0
  35. package/dist/prompts/index.js +25 -0
  36. package/dist/prompts/index.js.map +1 -0
  37. package/dist/prompts/prep-for-launch.d.ts +9 -0
  38. package/dist/prompts/prep-for-launch.js +62 -0
  39. package/dist/prompts/prep-for-launch.js.map +1 -0
  40. package/dist/prompts/secure-my-app.d.ts +9 -0
  41. package/dist/prompts/secure-my-app.js +70 -0
  42. package/dist/prompts/secure-my-app.js.map +1 -0
  43. package/dist/prompts/weekly-check.d.ts +9 -0
  44. package/dist/prompts/weekly-check.js +48 -0
  45. package/dist/prompts/weekly-check.js.map +1 -0
  46. package/dist/server.d.ts +1 -1
  47. package/dist/server.js +119 -43
  48. package/dist/server.js.map +1 -1
  49. package/dist/tools/check-project.d.ts +7 -7
  50. package/dist/tools/check-project.js +127 -95
  51. package/dist/tools/check-project.js.map +1 -1
  52. package/dist/tools/check-repo-trust.d.ts +4 -10
  53. package/dist/tools/check-repo-trust.js +56 -27
  54. package/dist/tools/check-repo-trust.js.map +1 -1
  55. package/dist/tools/enterprise/get-campaign.d.ts +27 -0
  56. package/dist/tools/enterprise/get-campaign.js +31 -0
  57. package/dist/tools/enterprise/get-campaign.js.map +1 -0
  58. package/dist/tools/enterprise/list-agents.d.ts +1 -1
  59. package/dist/tools/enterprise/list-attack-scenarios.d.ts +29 -0
  60. package/dist/tools/enterprise/list-attack-scenarios.js +69 -0
  61. package/dist/tools/enterprise/list-attack-scenarios.js.map +1 -0
  62. package/dist/tools/enterprise/list-attack-step-library-tests.d.ts +29 -0
  63. package/dist/tools/enterprise/list-attack-step-library-tests.js +61 -0
  64. package/dist/tools/enterprise/list-attack-step-library-tests.js.map +1 -0
  65. package/dist/tools/enterprise/list-campaigns.d.ts +37 -0
  66. package/dist/tools/enterprise/list-campaigns.js +60 -0
  67. package/dist/tools/enterprise/list-campaigns.js.map +1 -0
  68. package/dist/tools/enterprise/list-threat-model-review-items.d.ts +35 -0
  69. package/dist/tools/enterprise/list-threat-model-review-items.js +60 -0
  70. package/dist/tools/enterprise/list-threat-model-review-items.js.map +1 -0
  71. package/dist/tools/enterprise/list-threat-model-versions.d.ts +29 -0
  72. package/dist/tools/enterprise/list-threat-model-versions.js +60 -0
  73. package/dist/tools/enterprise/list-threat-model-versions.js.map +1 -0
  74. package/dist/tools/enterprise/manage-campaign-agent-instance.d.ts +42 -0
  75. package/dist/tools/enterprise/manage-campaign-agent-instance.js +68 -0
  76. package/dist/tools/enterprise/manage-campaign-agent-instance.js.map +1 -0
  77. package/dist/tools/enterprise/manage-campaign-target.d.ts +44 -0
  78. package/dist/tools/enterprise/manage-campaign-target.js +70 -0
  79. package/dist/tools/enterprise/manage-campaign-target.js.map +1 -0
  80. package/dist/tools/enterprise/manage-campaign.d.ts +62 -0
  81. package/dist/tools/enterprise/manage-campaign.js +114 -0
  82. package/dist/tools/enterprise/manage-campaign.js.map +1 -0
  83. package/dist/tools/enterprise/manage-finding.d.ts +1 -1
  84. package/dist/tools/enterprise/manage-threat-model-analysis.d.ts +52 -0
  85. package/dist/tools/enterprise/manage-threat-model-analysis.js +92 -0
  86. package/dist/tools/enterprise/manage-threat-model-analysis.js.map +1 -0
  87. package/dist/tools/enterprise/manage-threat-model-review.d.ts +47 -0
  88. package/dist/tools/enterprise/manage-threat-model-review.js +82 -0
  89. package/dist/tools/enterprise/manage-threat-model-review.js.map +1 -0
  90. package/dist/tools/get-application-auth-config.d.ts +27 -0
  91. package/dist/tools/get-application-auth-config.js +44 -0
  92. package/dist/tools/get-application-auth-config.js.map +1 -0
  93. package/dist/tools/get-finding-details.d.ts +4 -10
  94. package/dist/tools/get-finding-details.js +28 -10
  95. package/dist/tools/get-finding-details.js.map +1 -1
  96. package/dist/tools/get-findings.d.ts +4 -10
  97. package/dist/tools/get-findings.js +44 -23
  98. package/dist/tools/get-findings.js.map +1 -1
  99. package/dist/tools/get-started.d.ts +28 -0
  100. package/dist/tools/get-started.js +364 -0
  101. package/dist/tools/get-started.js.map +1 -0
  102. package/dist/tools/list-applications.d.ts +1 -1
  103. package/dist/tools/list-scans.d.ts +4 -10
  104. package/dist/tools/list-scans.js +55 -21
  105. package/dist/tools/list-scans.js.map +1 -1
  106. package/dist/tools/list-test-scenarios.d.ts +4 -10
  107. package/dist/tools/list-test-scenarios.js +41 -13
  108. package/dist/tools/list-test-scenarios.js.map +1 -1
  109. package/dist/tools/local-scan.d.ts +1 -1
  110. package/dist/tools/manage-application.d.ts +72 -0
  111. package/dist/tools/manage-application.js +138 -0
  112. package/dist/tools/manage-application.js.map +1 -0
  113. package/dist/tools/manage-endpoint-lifecycle.d.ts +90 -0
  114. package/dist/tools/manage-endpoint-lifecycle.js +191 -0
  115. package/dist/tools/manage-endpoint-lifecycle.js.map +1 -0
  116. package/dist/tools/open-in-ide.d.ts +1 -1
  117. package/dist/tools/setup-red-team-target.d.ts +6 -12
  118. package/dist/tools/setup-red-team-target.js +51 -20
  119. package/dist/tools/setup-red-team-target.js.map +1 -1
  120. package/dist/tools/triage-finding.d.ts +4 -10
  121. package/dist/tools/triage-finding.js +30 -21
  122. package/dist/tools/triage-finding.js.map +1 -1
  123. package/dist/types.d.ts +42 -2
  124. package/dist/types.js +29 -23
  125. package/dist/types.js.map +1 -1
  126. package/package.json +1 -1
@@ -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":"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"}
@@ -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 = "Set up a target application for AI red team and security testing in one step.\n\nTakes a deployed URL, repo URL, or both and creates a fully configured red team target. Handles:\n- Creating or updating the application (idempotent by name)\n- Configuring AI chat endpoints with request/response templates\n- Importing API endpoints from OpenAPI specs\n- Optionally triggering an immediate security scan\n\nMinimal usage: just provide a target_url and optionally target_type.\nFull usage: provide URL, chat endpoint config, OpenAPI spec, and trigger auto-scan.\n\nExamples:\n- Set up red team testing for https://api.example.com/v1/chat (auto-detects ai_chat)\n- Configure https://api.example.com as an API target with openapi_spec_url\n- Set up and scan https://myapp.com as a web app with auto_scan=true\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.";
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?: undefined;
71
+ }>;
72
+ isError?: boolean;
79
73
  }>;
@@ -14,23 +14,23 @@
14
14
  */
15
15
  import { z } from "zod";
16
16
  import { sanitizeResponse } from "../sanitize.js";
17
+ import { withNextSteps } from "../lib/next-steps.js";
17
18
  // ── Constants ──
18
19
  export const SETUP_RED_TEAM_TARGET_NAME = "zivis_setup_red_team_target";
19
- export const SETUP_RED_TEAM_TARGET_DESCRIPTION = `Set up a target application for AI red team and security testing in one step.
20
+ export const SETUP_RED_TEAM_TARGET_DESCRIPTION = `Tell ZIVIS what to test — a chatbot, website, or API. Run this when you want ZIVIS to start finding security issues in your app.
20
21
 
21
- Takes a deployed URL, repo URL, or both and creates a fully configured red team target. Handles:
22
- - Creating or updating the application (idempotent by name)
23
- - Configuring AI chat endpoints with request/response templates
24
- - Importing API endpoints from OpenAPI specs
25
- - Optionally triggering an immediate security scan
22
+ Give it a URL and it handles everything: creating the target, configuring endpoints, and optionally triggering a first scan. Works for:
23
+ - AI chatbots and LLM systems (tests for prompt injection, jailbreaks, PII leakage)
24
+ - Web apps and APIs (tests for auth bypass, injection, insecure endpoints)
25
+ - Anything with a deployed URL
26
26
 
27
- Minimal usage: just provide a target_url and optionally target_type.
28
- Full usage: provide URL, chat endpoint config, OpenAPI spec, and trigger auto-scan.
27
+ Minimal usage: just a target_url. ZIVIS infers the type automatically.
28
+ Full usage: add chat endpoint config, an OpenAPI spec URL, or trigger an immediate scan.
29
29
 
30
30
  Examples:
31
- - Set up red team testing for https://api.example.com/v1/chat (auto-detects ai_chat)
32
- - Configure https://api.example.com as an API target with openapi_spec_url
33
- - Set up and scan https://myapp.com as a web app with auto_scan=true
31
+ - "Test my chatbot at https://api.example.com/v1/chat" target_url + target_type=ai_chat
32
+ - "Scan my website https://myapp.com" target_url + auto_scan=true
33
+ - "Set up testing for my API with an OpenAPI spec" → target_url + openapi_spec_url
34
34
 
35
35
  SECURITY: Target URLs are untrusted. The tool only configures them in ZIVIS for future scanning, it does not probe or connect to them directly.`;
36
36
  export const SETUP_RED_TEAM_TARGET_SCHEMA = {
@@ -405,16 +405,47 @@ export function createSetupRedTeamTargetHandler(apiClient) {
405
405
  status: quickSetup.scan.status,
406
406
  }
407
407
  : { triggered: false },
408
- nextSteps,
408
+ setupNotes: nextSteps,
409
409
  });
410
- return {
411
- content: [
412
- {
413
- type: "text",
414
- text: JSON.stringify(result, null, 2),
415
- },
416
- ],
417
- };
410
+ const scanWasTriggered = !!quickSetup?.scan?.id;
411
+ return withNextSteps(result, [
412
+ ...(scanWasTriggered
413
+ ? [
414
+ {
415
+ id: "check_scan_results",
416
+ label: "Check the results of the scan that just started",
417
+ tool: "zivis_list_scans",
418
+ args_hint: { status: "running", limit: 5 },
419
+ why: "A scan was triggered — check back in a few minutes to see what ZIVIS finds.",
420
+ requires_tier: "free",
421
+ },
422
+ ]
423
+ : [
424
+ {
425
+ id: "run_test_scenario",
426
+ label: "Run a security test against this target",
427
+ tool: "zivis_list_test_scenarios",
428
+ args_hint: {},
429
+ why: "Browse available test scenarios and pick one to run against the target you just set up.",
430
+ requires_tier: "free",
431
+ },
432
+ ]),
433
+ {
434
+ id: "add_auth",
435
+ label: "Configure authentication for logged-in test coverage",
436
+ tool: "zivis_setup_red_team_target",
437
+ args_hint: { name: appName },
438
+ why: "Testing authenticated flows finds more vulnerabilities than unauthenticated testing alone.",
439
+ requires_tier: "free",
440
+ },
441
+ {
442
+ id: "check_deps",
443
+ label: "Check the dependencies this app uses",
444
+ tool: "zivis_check_repo_trust",
445
+ why: "Supply-chain risks in your libraries can be just as dangerous as app-level vulnerabilities.",
446
+ requires_tier: "free",
447
+ },
448
+ ], `Target "${appName}" ${isNew ? "created" : "updated"}. ${scanWasTriggered ? "A scan has been triggered." : "Ready to run security tests."}`);
418
449
  }
419
450
  catch (err) {
420
451
  const message = err instanceof Error
@@ -1 +1 @@
1
- {"version":3,"file":"setup-red-team-target.js","sourceRoot":"","sources":["../../src/tools/setup-red-team-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-red-team-target.js","sourceRoot":"","sources":["../../src/tools/setup-red-team-target.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { z } from "zod";
12
12
  import type { ApiClient } from "../api-client.js";
13
13
  export declare const TRIAGE_FINDING_NAME = "zivis_triage_finding";
14
- export declare const TRIAGE_FINDING_DESCRIPTION = "Submit a triage decision for a security finding back to ZIVIS.\n\nUse this after investigating a finding to record the outcome:\n- \"resolve\" \u2014 the vulnerability has been fixed\n- \"dismiss\" \u2014 the finding is a false positive or not applicable\n- \"accept_risk\" \u2014 the risk is known and accepted\n\nA reasoning field is REQUIRED. Explain why this action is appropriate \u2014 this creates an audit trail and helps ZIVIS learn from your decisions.\n\nThis action is logged with your identity and timestamp. Bulk operations are not supported \u2014 triage one finding at a time.\n\nIMPORTANT: After resolving a finding (action=\"resolve\"), you MUST document the fix:\n1. Create .zivis/ directory if it doesn't exist\n2. Append to .zivis/remediations.md using the markdown template in the response\n3. This creates a security audit trail that stays with the project\n\nThe response includes a \"documentation\" field with pre-formatted markdown to append.";
14
+ export declare const TRIAGE_FINDING_DESCRIPTION = "Mark a security issue as fixed, dismissed, or accepted. Use this after the user reviews a finding and decides what to do with it.\n\nThree outcomes:\n- \"resolve\" \u2014 the bug is fixed. ZIVIS logs the fix and generates remediation documentation.\n- \"dismiss\" \u2014 the finding is wrong (false positive) or doesn't apply to this project.\n- \"accept_risk\" \u2014 the team knows about the issue and has decided to live with it.\n\nA reasoning field is REQUIRED \u2014 this creates an audit trail. Explain briefly why the action is appropriate (e.g. \"Fixed by adding input validation in auth.ts\" or \"Not applicable \u2014 we don't accept user HTML input\").\n\nAfter resolving a finding, ZIVIS will provide markdown to append to .zivis/remediations.md as an audit trail.\n\nTriage one finding at a time. Use finding_id from zivis_get_findings or zivis_get_finding_details.";
15
15
  export declare const TRIAGE_FINDING_SCHEMA: {
16
16
  finding_id: z.ZodString;
17
17
  action: z.ZodEnum<{
@@ -33,15 +33,9 @@ export declare function createTriageFindingHandler(apiClient: ApiClient): (param
33
33
  reasoning: string;
34
34
  dismiss_reason?: string;
35
35
  }) => Promise<{
36
- content: {
36
+ content: Array<{
37
37
  type: "text";
38
38
  text: string;
39
- }[];
40
- isError: boolean;
41
- } | {
42
- content: {
43
- type: "text";
44
- text: string;
45
- }[];
46
- isError?: undefined;
39
+ }>;
40
+ isError?: boolean;
47
41
  }>;
@@ -9,24 +9,20 @@
9
9
  * in the dashboard.
10
10
  */
11
11
  import { z } from "zod";
12
+ import { withNextSteps } from "../lib/next-steps.js";
12
13
  export const TRIAGE_FINDING_NAME = "zivis_triage_finding";
13
- export const TRIAGE_FINDING_DESCRIPTION = `Submit a triage decision for a security finding back to ZIVIS.
14
+ export const TRIAGE_FINDING_DESCRIPTION = `Mark a security issue as fixed, dismissed, or accepted. Use this after the user reviews a finding and decides what to do with it.
14
15
 
15
- Use this after investigating a finding to record the outcome:
16
- - "resolve" — the vulnerability has been fixed
17
- - "dismiss" — the finding is a false positive or not applicable
18
- - "accept_risk" — the risk is known and accepted
16
+ Three outcomes:
17
+ - "resolve" — the bug is fixed. ZIVIS logs the fix and generates remediation documentation.
18
+ - "dismiss" — the finding is wrong (false positive) or doesn't apply to this project.
19
+ - "accept_risk" — the team knows about the issue and has decided to live with it.
19
20
 
20
- A reasoning field is REQUIRED. Explain why this action is appropriate this creates an audit trail and helps ZIVIS learn from your decisions.
21
+ A reasoning field is REQUIRED — this creates an audit trail. Explain briefly why the action is appropriate (e.g. "Fixed by adding input validation in auth.ts" or "Not applicable we don't accept user HTML input").
21
22
 
22
- This action is logged with your identity and timestamp. Bulk operations are not supported triage one finding at a time.
23
+ After resolving a finding, ZIVIS will provide markdown to append to .zivis/remediations.md as an audit trail.
23
24
 
24
- IMPORTANT: After resolving a finding (action="resolve"), you MUST document the fix:
25
- 1. Create .zivis/ directory if it doesn't exist
26
- 2. Append to .zivis/remediations.md using the markdown template in the response
27
- 3. This creates a security audit trail that stays with the project
28
-
29
- The response includes a "documentation" field with pre-formatted markdown to append.`;
25
+ Triage one finding at a time. Use finding_id from zivis_get_findings or zivis_get_finding_details.`;
30
26
  export const TRIAGE_FINDING_SCHEMA = {
31
27
  finding_id: z.string().describe("The finding ID to triage"),
32
28
  action: z
@@ -95,14 +91,27 @@ export function createTriageFindingHandler(apiClient) {
95
91
  instructions: "Append the markdownToAppend to .zivis/remediations.md (create directory and file if needed). Add finding title, severity, vulnerable code description, and files changed above the reasoning.",
96
92
  }
97
93
  : { shouldDocument: false };
98
- return {
99
- content: [
100
- {
101
- type: "text",
102
- text: JSON.stringify({ ...response, documentation }, null, 2),
103
- },
104
- ],
105
- };
94
+ return withNextSteps({ ...response, documentation }, [
95
+ {
96
+ id: "view_remaining_findings",
97
+ label: "Review the remaining open findings",
98
+ tool: "zivis_get_findings",
99
+ args_hint: { status: "open" },
100
+ why: "See what's left to triage — keep working through the queue to clear the backlog.",
101
+ requires_tier: "free",
102
+ },
103
+ ...(params.action === "resolve"
104
+ ? [
105
+ {
106
+ id: "run_new_scan",
107
+ label: "Run a new scan to verify the fix held",
108
+ tool: "zivis_list_test_scenarios",
109
+ why: "Confirm the vulnerability is gone by re-testing after your code change.",
110
+ requires_tier: "free",
111
+ },
112
+ ]
113
+ : []),
114
+ ], `Finding ${params.finding_id} marked as ${statusMap[params.action]}.`);
106
115
  }
107
116
  catch (err) {
108
117
  const message = err instanceof Error ? err.message : "Failed to triage finding";
@@ -1 +1 @@
1
- {"version":3,"file":"triage-finding.js","sourceRoot":"","sources":["../../src/tools/triage-finding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triage-finding.js","sourceRoot":"","sources":["../../src/tools/triage-finding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;mGAWyD,CAAC;AAEpG,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC3D,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;SAC3C,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CACP,iHAAiH,CAClH;IACH,cAAc,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;SACnE,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,SAAoB;IAC7D,OAAO,KAAK,EAAE,MAKb,EAAE,EAAE;QACH,sDAAsD;QACtD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4DAA4D;qBACnE;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,SAAS,GAA2B;gBACxC,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,UAAU;aACxB,CAAC;YAEF,kDAAkD;YAClD,oFAAoF;YACpF,MAAM,SAAS,GAA4B;gBACzC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAChC,IAAI,EAAE,mBAAmB,MAAM,CAAC,SAAS,EAAE;aAC5C,CAAC;YACF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;YAClD,CAAC;YAED,MAAM,SAAS,CAAC,KAAK,CACnB,yBAAyB,MAAM,CAAC,UAAU,EAAE,EAC5C,SAAS,CACV,CAAC;YAEF,MAAM,QAAQ,GAAmB;gBAC/B,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,OAAO,EAAE,WAAW,MAAM,CAAC,UAAU,cAAc,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,mCAAmC;aAC/G,CAAC;YAEF,wDAAwD;YACxD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,aAAa,GACjB,MAAM,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC;oBACE,cAAc,EAAE,IAAI;oBACpB,QAAQ,EAAE,wBAAwB;oBAClC,gBAAgB,EAAE;KAC3B,KAAK,MAAM,MAAM,CAAC,UAAU;;;iBAGhB,MAAM,CAAC,SAAS;;;CAGhC;oBACa,YAAY,EACV,+LAA+L;iBAClM;gBACH,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YAEhC,OAAO,aAAa,CAClB,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,EAC9B;gBACE;oBACE,EAAE,EAAE,yBAAyB;oBAC7B,KAAK,EAAE,oCAAoC;oBAC3C,IAAI,EAAE,oBAAoB;oBAC1B,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;oBAC7B,GAAG,EAAE,kFAAkF;oBACvF,aAAa,EAAE,MAAe;iBAC/B;gBACD,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;oBAC7B,CAAC,CAAC;wBACE;4BACE,EAAE,EAAE,cAAc;4BAClB,KAAK,EAAE,uCAAuC;4BAC9C,IAAI,EAAE,2BAA2B;4BACjC,GAAG,EAAE,yEAAyE;4BAC9E,aAAa,EAAE,MAAe;yBAC/B;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,EACD,WAAW,MAAM,CAAC,UAAU,cAAc,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CACtE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;YAClE,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"}
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export interface OAuthTokens {
5
5
  access_token: string;
6
- refresh_token: string;
6
+ refresh_token?: string;
7
7
  expires_at: number;
8
8
  id_token?: string;
9
9
  }
@@ -198,6 +198,25 @@ export interface ProjectBinding {
198
198
  applicationId?: string;
199
199
  /** Display name for that application (optional) */
200
200
  applicationName?: string;
201
+ /**
202
+ * Environment overrides — stored here so `zivis` CLI commands run from
203
+ * this directory automatically hit the right environment without requiring
204
+ * env vars to be set in the shell. Takes precedence over env vars.
205
+ */
206
+ /** ZIVIS API base URL (e.g. "https://staging.zivis.ai") */
207
+ apiBaseUrl?: string;
208
+ /** OAuth / AuthKit API URL */
209
+ oauthApiUrl?: string;
210
+ /** OAuth client ID */
211
+ oauthClientId?: string;
212
+ /** Keychain/credential storage prefix */
213
+ keychainPrefix?: string;
214
+ /** Config directory name under ~/.config/ */
215
+ configDir?: string;
216
+ }
217
+ export interface CredentialStorage {
218
+ keychainPrefix: string;
219
+ configDir: string;
201
220
  }
202
221
  export interface ZivisConfig {
203
222
  apiBaseUrl: string;
@@ -206,6 +225,23 @@ export interface ZivisConfig {
206
225
  callbackPort: number;
207
226
  /** Named session for multi-tenant isolation (from ZIVIS_SESSION env var) */
208
227
  session?: string;
228
+ /**
229
+ * Override OS keychain / encrypted-file credential namespace (default: ENV_CONFIG).
230
+ * MUST match MCP's ZIVIS_KEYCHAIN_PREFIX or CLI auth and MCP will read different buckets.
231
+ */
232
+ keychainPrefix?: string;
233
+ /**
234
+ * Override ~/.config subdirectory for sessions.json etc. (default: ENV_CONFIG).
235
+ * MUST match MCP's ZIVIS_CONFIG_DIR.
236
+ */
237
+ configDir?: string;
238
+ /**
239
+ * Absolute path to the workspace root passed via `zivis mcp serve --workspace`.
240
+ * When set, project binding is detected from this path instead of process.cwd().
241
+ * This is the primary tenant-isolation mechanism: each IDE workspace gets its own
242
+ * MCP process with a fixed, immutable workspace path → no runtime session switching.
243
+ */
244
+ workspacePath?: string;
209
245
  }
210
246
  interface EnvConfig {
211
247
  apiBaseUrl: string;
@@ -214,7 +250,11 @@ interface EnvConfig {
214
250
  keychainPrefix: string;
215
251
  configDir: string;
216
252
  }
217
- export declare const BUILD_ENV: "staging" | "production";
218
253
  export declare const ENV_CONFIG: EnvConfig;
219
254
  export declare const DEFAULT_CONFIG: ZivisConfig;
255
+ /**
256
+ * Resolved credential storage bucket for keychain + ~/.config/<dir>.
257
+ * Prefer explicit ZivisConfig fields, then ENV (set by MCP IDE config).
258
+ */
259
+ export declare function credentialStorageFromConfig(config?: ZivisConfig): CredentialStorage;
220
260
  export {};