@meltstudio/meltctl 4.168.0 → 4.170.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +20 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var CLI_VERSION;
14
14
  var init_version = __esm({
15
15
  "src/utils/version.ts"() {
16
16
  "use strict";
17
- CLI_VERSION = "4.168.0";
17
+ CLI_VERSION = "4.170.0";
18
18
  }
19
19
  });
20
20
 
@@ -727,6 +727,8 @@ function createFindingsResource(config) {
727
727
  params.set("status", filters.status);
728
728
  if (filters?.severity)
729
729
  params.set("severity", filters.severity);
730
+ if (filters?.effort)
731
+ params.set("effort", filters.effort);
730
732
  if (filters?.auditType)
731
733
  params.set("auditType", filters.auditType);
732
734
  if (filters?.projectId)
@@ -1426,6 +1428,10 @@ var auditFindingSchema = z.object({
1426
1428
  title: z.string(),
1427
1429
  currentStatus: z.enum(["pass", "warning", "missing", "na"]),
1428
1430
  severity: z.enum(["critical", "high", "medium", "low"]).nullable(),
1431
+ // Remediation effort, independent of severity (#455). 'unknown' for pass/na,
1432
+ // historical rows, and anything the extractor couldn't judge — an explicit
1433
+ // value, never null, so consumers branch on "unknown" deliberately.
1434
+ effort: z.enum(["low", "medium", "high", "unknown"]),
1429
1435
  evidence: z.string().nullable(),
1430
1436
  remediation: z.string().nullable(),
1431
1437
  firstSeenAt: z.string(),
@@ -1468,6 +1474,7 @@ var findingsListFiltersSchema = z.object({
1468
1474
  repository: z.string().optional(),
1469
1475
  status: z.string().optional(),
1470
1476
  severity: z.string().optional(),
1477
+ effort: z.string().optional(),
1471
1478
  auditType: z.string().optional(),
1472
1479
  projectId: z.number().optional(),
1473
1480
  limit: z.number().optional()
@@ -3726,6 +3733,8 @@ function createFindingsResource2(config) {
3726
3733
  params.set("status", filters.status);
3727
3734
  if (filters?.severity)
3728
3735
  params.set("severity", filters.severity);
3736
+ if (filters?.effort)
3737
+ params.set("effort", filters.effort);
3729
3738
  if (filters?.auditType)
3730
3739
  params.set("auditType", filters.auditType);
3731
3740
  if (filters?.projectId)
@@ -4408,6 +4417,10 @@ var auditFindingSchema2 = z2.object({
4408
4417
  title: z2.string(),
4409
4418
  currentStatus: z2.enum(["pass", "warning", "missing", "na"]),
4410
4419
  severity: z2.enum(["critical", "high", "medium", "low"]).nullable(),
4420
+ // Remediation effort, independent of severity (#455). 'unknown' for pass/na,
4421
+ // historical rows, and anything the extractor couldn't judge — an explicit
4422
+ // value, never null, so consumers branch on "unknown" deliberately.
4423
+ effort: z2.enum(["low", "medium", "high", "unknown"]),
4411
4424
  evidence: z2.string().nullable(),
4412
4425
  remediation: z2.string().nullable(),
4413
4426
  firstSeenAt: z2.string(),
@@ -4450,6 +4463,7 @@ var findingsListFiltersSchema2 = z2.object({
4450
4463
  repository: z2.string().optional(),
4451
4464
  status: z2.string().optional(),
4452
4465
  severity: z2.string().optional(),
4466
+ effort: z2.string().optional(),
4453
4467
  auditType: z2.string().optional(),
4454
4468
  projectId: z2.number().optional(),
4455
4469
  limit: z2.number().optional()
@@ -5409,6 +5423,7 @@ var listFindingsInputSchema = z10.object({
5409
5423
  repository: z10.string().optional(),
5410
5424
  status: z10.enum(["pass", "warning", "missing", "na"]).optional(),
5411
5425
  severity: z10.enum(["critical", "high", "medium", "low"]).optional(),
5426
+ effort: z10.enum(["low", "medium", "high", "unknown"]).optional(),
5412
5427
  auditType: z10.enum(["audit", "ux-audit", "security-audit"]).optional(),
5413
5428
  limit: z10.number().int().positive().max(500).optional()
5414
5429
  });
@@ -5417,12 +5432,15 @@ function registerFindingsTools(server, getClient2) {
5417
5432
  "list_findings",
5418
5433
  {
5419
5434
  title: "List audit findings",
5420
- description: "Lists code/security/UX audit findings. Each finding carries its check code, category, status (pass/warning/missing/na), severity (critical/high/medium/low), repository, and evidence (file/symbol) so you can see exactly what to fix. Filter by projectId, repository, status, severity, or auditType. Results are ordered worst-first (missing > warning, then critical > high > \u2026). Use this to answer 'what's open on the app I'm working on?' \u2014 pass status='missing' or severity='critical' to focus on what matters. Read-only and open to any @meltstudio.co user.",
5435
+ description: "Lists code/security/UX audit findings. Each finding carries its check code, category, status (pass/warning/missing/na), severity (critical/high/medium/low), effort (low/medium/high \u2014 how much work the fix is, independent of severity), repository, and evidence (file/symbol) so you can see exactly what to fix. Filter by projectId, repository, status, severity, effort, or auditType. Results are ordered worst-first (missing > warning, then critical > high > \u2026). Use this to answer 'what's open on the app I'm working on?' \u2014 pass status='missing' or severity='critical' to focus on what matters, or effort='low' with severity='high'/'critical' to find cheap high-leverage wins. Read-only and open to any @meltstudio.co user.",
5421
5436
  inputSchema: {
5422
5437
  projectId: z10.number().int().positive().optional().describe("Strapi project id \u2014 scopes findings to that project\u2019s repos."),
5423
5438
  repository: z10.string().optional().describe("Full repo slug, e.g. 'MeltStudio/atlas-api'. Scopes to a single repo."),
5424
5439
  status: z10.enum(["pass", "warning", "missing", "na"]).optional().describe("Filter by check status. 'missing' = the check failed outright."),
5425
5440
  severity: z10.enum(["critical", "high", "medium", "low"]).optional(),
5441
+ effort: z10.enum(["low", "medium", "high", "unknown"]).optional().describe(
5442
+ "Remediation effort. Combine effort=low with a high severity to find quick wins. 'unknown' = pass/na or not yet rated."
5443
+ ),
5426
5444
  auditType: z10.enum(["audit", "ux-audit", "security-audit"]).optional(),
5427
5445
  limit: z10.number().int().positive().max(500).optional()
5428
5446
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meltstudio/meltctl",
3
- "version": "4.168.0",
3
+ "version": "4.170.0",
4
4
  "description": "AI-first development tools for teams - set up AGENTS.md, Claude Code, Cursor, and OpenCode standards",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",