@debugg-ai/debugg-ai-mcp 2.8.1 → 2.9.1

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.
@@ -29,23 +29,8 @@ export const createWorkflowsService = (tx) => {
29
29
  return match;
30
30
  },
31
31
  async findEvaluationTemplate() {
32
- // Try keywords in priority order — allows prod ('app evaluation') and
33
- // dev backends with different naming ('Browser Use Evaluation Workflow Template')
34
- // to both resolve without config changes. 'evaluation workflow' is specific
35
- // enough to exclude 'Browser Use Evaluation Brain'.
36
- const envOverride = process.env.DEBUGGAI_EVAL_TEMPLATE;
37
- const keywords = envOverride
38
- ? [envOverride]
39
- : ['app evaluation', 'evaluation workflow'];
40
- for (const keyword of keywords) {
41
- try {
42
- return await service.findTemplateByName(keyword);
43
- }
44
- catch {
45
- // keyword not matched on this backend, try next
46
- }
47
- }
48
- return null;
32
+ const keyword = process.env.DEBUGGAI_EVAL_TEMPLATE || 'app evaluation';
33
+ return service.findTemplateByName(keyword);
49
34
  },
50
35
  async executeWorkflow(workflowUuid, contextData, env) {
51
36
  const body = { contextData };
@@ -1,6 +1,18 @@
1
1
  import { UpdateEnvironmentInputSchema } from '../types/index.js';
2
2
  import { updateEnvironmentHandler } from '../handlers/updateEnvironmentHandler.js';
3
- const DESCRIPTION = `Patch an environment by UUID. Only specified fields (name, url, description) change — other fields are left intact. Returns {updated: true, environment: {...}} with the updated resource. Defaults to the project resolved from the current git repo; pass projectUuid to target a different project. Returns isError:true with NotFound when the uuid doesn't exist.`;
3
+ const DESCRIPTION = `Patch an environment by UUID. Updates fields and/or manages credentials in a single call.
4
+
5
+ ENVIRONMENT FIELDS (all optional — only specified fields change):
6
+ - name, url, description
7
+
8
+ CREDENTIAL MANAGEMENT:
9
+ - addCredentials: [{label, username, password, role?}] — add one or more login credentials to this environment
10
+ - updateCredentials: [{uuid, label?, username?, password?, role?}] — patch existing credentials by UUID
11
+ - removeCredentialIds: ["<uuid>", ...] — delete credentials by UUID
12
+
13
+ Operations run in order: remove → update → add. All credential ops are best-effort — failures go to credentialWarnings without blocking the rest. Passwords are write-only and NEVER returned in responses.
14
+
15
+ Returns {updated, environment, addedCredentials?, updatedCredentials?, removedCredentialIds?, credentialWarnings?}. Returns isError:true with NotFound when the env uuid doesn't exist.`;
4
16
  export function buildUpdateEnvironmentTool() {
5
17
  return {
6
18
  name: 'update_environment',
@@ -14,6 +26,42 @@ export function buildUpdateEnvironmentTool() {
14
26
  url: { type: 'string', description: 'Optional: new base URL.' },
15
27
  description: { type: 'string', description: 'Optional: new description.' },
16
28
  projectUuid: { type: 'string', description: 'Optional: UUID of the target project. Defaults to git-auto-detect.' },
29
+ addCredentials: {
30
+ type: 'array',
31
+ description: 'Add new login credentials to the environment. Each entry requires label, username, password. role is optional.',
32
+ items: {
33
+ type: 'object',
34
+ properties: {
35
+ label: { type: 'string', description: 'Human-readable name (e.g. "admin user", "test account").' },
36
+ username: { type: 'string', description: 'Login email or username.' },
37
+ password: { type: 'string', description: 'Password. Write-only — never returned.' },
38
+ role: { type: 'string', description: 'Optional role tag (e.g. "admin", "guest").' },
39
+ },
40
+ required: ['label', 'username', 'password'],
41
+ additionalProperties: false,
42
+ },
43
+ },
44
+ updateCredentials: {
45
+ type: 'array',
46
+ description: 'Patch existing credentials by UUID. Only specified fields change.',
47
+ items: {
48
+ type: 'object',
49
+ properties: {
50
+ uuid: { type: 'string', description: 'UUID of the credential to update.' },
51
+ label: { type: 'string' },
52
+ username: { type: 'string' },
53
+ password: { type: 'string', description: 'Write-only — never returned.' },
54
+ role: { type: 'string' },
55
+ },
56
+ required: ['uuid'],
57
+ additionalProperties: false,
58
+ },
59
+ },
60
+ removeCredentialIds: {
61
+ type: 'array',
62
+ description: 'UUIDs of credentials to delete.',
63
+ items: { type: 'string' },
64
+ },
17
65
  },
18
66
  required: ['uuid'],
19
67
  additionalProperties: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@debugg-ai/debugg-ai-mcp",
3
- "version": "2.8.1",
3
+ "version": "2.9.1",
4
4
  "description": "Zero-Config, Fully AI-Managed End-to-End Testing for all code gen platforms.",
5
5
  "type": "module",
6
6
  "bin": {