@stackwright-pro/mcp 0.2.0-alpha.117 → 0.2.0-alpha.118

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/server.js CHANGED
@@ -4350,6 +4350,12 @@ function handleWritePhaseQuestions(input) {
4350
4350
  isError: true
4351
4351
  };
4352
4352
  }
4353
+ if (AUTO_EXECUTE_PHASES.has(phase)) {
4354
+ return {
4355
+ text: JSON.stringify({ success: true, phase, questionCount: 0, autoExecute: true }),
4356
+ isError: false
4357
+ };
4358
+ }
4353
4359
  try {
4354
4360
  const questions = parseLLMQuestionsResponse(responseText);
4355
4361
  let requiredPackages = {
@@ -7132,7 +7138,7 @@ var _checksums = /* @__PURE__ */ new Map([
7132
7138
  ],
7133
7139
  [
7134
7140
  "stackwright-pro-form-wizard-otter.json",
7135
- "941bb11b767530460f96fdd08af638b3ede9f7a1ae6f19de04b7d81c95cc62ad"
7141
+ "7d958f2873cb80955ba5453837b67bee427f8399868979f59fecebe380a35ab9"
7136
7142
  ],
7137
7143
  [
7138
7144
  "stackwright-pro-geo-otter.json",
@@ -8362,10 +8368,20 @@ var WriteWorkflowContainerPageInputSchema = import_zod21.z.object({
8362
8368
  * Union of required roles across all steps in the workflow YAML.
8363
8369
  * Consumed by auth-reconcile to build protectedRoutes.
8364
8370
  * Must be non-empty — workflow pages are always auth-protected.
8371
+ *
8372
+ * ⚠️ MUST be a JSON array of strings: ["ROLE_A", "ROLE_B"].
8373
+ * Do NOT pass a YAML bracket string "[ROLE_A, ROLE_B]",
8374
+ * a JSON-encoded string "[\"ROLE_A\", \"ROLE_B\"]",
8375
+ * or a comma-separated string "ROLE_A,ROLE_B" — all are rejected.
8376
+ *
8377
+ * Regression guard (swp-zfa9): 3-of-4 workflow-otter fan-outs crashed on
8378
+ * runs 12-15 because the LLM passed a JSON-encoded string instead of an array.
8365
8379
  */
8366
8380
  requiredRoles: import_zod21.z.array(import_zod21.z.string().min(1)).min(1, {
8367
- message: "requiredRoles must have at least one role \u2014 workflow pages are always auth-protected"
8368
- }),
8381
+ message: 'requiredRoles must have at least one role \u2014 workflow pages are always auth-protected. Pass a JSON array: ["ROLE_A", "ROLE_B"] \u2014 NOT a string or CSV.'
8382
+ }).describe(
8383
+ 'JSON array of role strings. Example: ["ESF8_COORDINATOR", "HOSPITAL_EM"]. Must be a real JSON array \u2014 NOT a stringified array, YAML bracket sequence, or CSV string.'
8384
+ ),
8369
8385
  /**
8370
8386
  * Persistence key for workflow state (localStorage slot).
8371
8387
  * Defaults to `workflow-<workflowId>` when omitted.
@@ -8459,7 +8475,11 @@ function registerWriteWorkflowContainerPageTool(server2) {
8459
8475
  " - meta.authRequired: true, meta.requiredRoles: <your input>",
8460
8476
  " - One workflow_wizard content item binding workflowFile + workflowId",
8461
8477
  "",
8462
- "requiredRoles: supply the UNION of required roles from all steps in your workflow YAML.",
8478
+ "requiredRoles: MUST be a JSON array of strings (the union of all step auth.required_roles).",
8479
+ ' CORRECT: ["ESF8_COORDINATOR", "HOSPITAL_EM", "EMS_DISPATCHER"]',
8480
+ ' WRONG: "[\\"ESF8_COORDINATOR\\", \\"HOSPITAL_EM\\"]" (string containing JSON)',
8481
+ ' WRONG: "ESF8_COORDINATOR,HOSPITAL_EM" (comma-separated string)',
8482
+ ' WRONG: "[ESF8_COORDINATOR, HOSPITAL_EM]" (YAML bracket notation)',
8463
8483
  'pageSlug: convention is "workflows/<workflowId>" \u2014 must start with "workflows/".'
8464
8484
  ].join("\n"),
8465
8485
  WriteWorkflowContainerPageInputSchema.shape,
@@ -9629,7 +9649,7 @@ var package_default = {
9629
9649
  "test:coverage": "vitest run --coverage"
9630
9650
  },
9631
9651
  name: "@stackwright-pro/mcp",
9632
- version: "0.2.0-alpha.117",
9652
+ version: "0.2.0-alpha.118",
9633
9653
  description: "MCP tools for Stackwright Pro - Data Explorer, Security, ISR, and Dashboard generation",
9634
9654
  license: "SEE LICENSE IN LICENSE",
9635
9655
  main: "./dist/server.js",