@qase/mcp-server 2.3.0 → 2.4.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 (88) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/build/index.d.ts +1 -1
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +2 -161
  5. package/build/index.js.map +1 -1
  6. package/build/operations-v2/composites/ci-report.js +9 -3
  7. package/build/operations-v2/composites/ci-report.js.map +1 -1
  8. package/build/operations-v2/composites/regression-run.js +8 -3
  9. package/build/operations-v2/composites/regression-run.js.map +1 -1
  10. package/build/operations-v2/composites/triage-defect.js +15 -5
  11. package/build/operations-v2/composites/triage-defect.js.map +1 -1
  12. package/build/operations-v2/escape/api.js +27 -5
  13. package/build/operations-v2/escape/api.js.map +1 -1
  14. package/build/operations-v2/index.d.ts +2 -0
  15. package/build/operations-v2/index.d.ts.map +1 -1
  16. package/build/operations-v2/index.js +2 -0
  17. package/build/operations-v2/index.js.map +1 -1
  18. package/build/operations-v2/meta/discover.js +8 -3
  19. package/build/operations-v2/meta/discover.js.map +1 -1
  20. package/build/operations-v2/qql/index.js +19 -6
  21. package/build/operations-v2/qql/index.js.map +1 -1
  22. package/build/operations-v2/read/get.js +10 -4
  23. package/build/operations-v2/read/get.js.map +1 -1
  24. package/build/operations-v2/read/project-context.js +11 -7
  25. package/build/operations-v2/read/project-context.js.map +1 -1
  26. package/build/operations-v2/write/attachments.js +17 -8
  27. package/build/operations-v2/write/attachments.js.map +1 -1
  28. package/build/operations-v2/write/cases-bulk.js +9 -5
  29. package/build/operations-v2/write/cases-bulk.js.map +1 -1
  30. package/build/operations-v2/write/cases.js +16 -6
  31. package/build/operations-v2/write/cases.js.map +1 -1
  32. package/build/operations-v2/write/custom-fields.d.ts +2 -0
  33. package/build/operations-v2/write/custom-fields.d.ts.map +1 -0
  34. package/build/operations-v2/write/custom-fields.js +226 -0
  35. package/build/operations-v2/write/custom-fields.js.map +1 -0
  36. package/build/operations-v2/write/defects.js +26 -4
  37. package/build/operations-v2/write/defects.js.map +1 -1
  38. package/build/operations-v2/write/environments.js +11 -3
  39. package/build/operations-v2/write/environments.js.map +1 -1
  40. package/build/operations-v2/write/external-issues.js +7 -5
  41. package/build/operations-v2/write/external-issues.js.map +1 -1
  42. package/build/operations-v2/write/milestones.js +10 -3
  43. package/build/operations-v2/write/milestones.js.map +1 -1
  44. package/build/operations-v2/write/plans.js +11 -3
  45. package/build/operations-v2/write/plans.js.map +1 -1
  46. package/build/operations-v2/write/projects.d.ts +2 -0
  47. package/build/operations-v2/write/projects.d.ts.map +1 -0
  48. package/build/operations-v2/write/projects.js +77 -0
  49. package/build/operations-v2/write/projects.js.map +1 -0
  50. package/build/operations-v2/write/results.js +15 -4
  51. package/build/operations-v2/write/results.js.map +1 -1
  52. package/build/operations-v2/write/reviews.js +28 -13
  53. package/build/operations-v2/write/reviews.js.map +1 -1
  54. package/build/operations-v2/write/runs.js +20 -3
  55. package/build/operations-v2/write/runs.js.map +1 -1
  56. package/build/operations-v2/write/shared-steps.js +11 -3
  57. package/build/operations-v2/write/shared-steps.js.map +1 -1
  58. package/build/operations-v2/write/suites.js +17 -5
  59. package/build/operations-v2/write/suites.js.map +1 -1
  60. package/build/server-instructions.d.ts +9 -0
  61. package/build/server-instructions.d.ts.map +1 -0
  62. package/build/server-instructions.js +21 -0
  63. package/build/server-instructions.js.map +1 -0
  64. package/build/server.d.ts +18 -0
  65. package/build/server.d.ts.map +1 -0
  66. package/build/server.js +181 -0
  67. package/build/server.js.map +1 -0
  68. package/build/transports/sse.d.ts.map +1 -1
  69. package/build/transports/sse.js +7 -2
  70. package/build/transports/sse.js.map +1 -1
  71. package/build/transports/streamableHttp.d.ts.map +1 -1
  72. package/build/transports/streamableHttp.js +3 -1
  73. package/build/transports/streamableHttp.js.map +1 -1
  74. package/build/utils/case-enums.d.ts +6 -0
  75. package/build/utils/case-enums.d.ts.map +1 -1
  76. package/build/utils/case-enums.js +11 -3
  77. package/build/utils/case-enums.js.map +1 -1
  78. package/build/utils/registry.d.ts.map +1 -1
  79. package/build/utils/registry.js +11 -3
  80. package/build/utils/registry.js.map +1 -1
  81. package/build/utils/server-context.d.ts +26 -6
  82. package/build/utils/server-context.d.ts.map +1 -1
  83. package/build/utils/server-context.js +37 -26
  84. package/build/utils/server-context.js.map +1 -1
  85. package/build/version.d.ts +1 -1
  86. package/build/version.js +1 -1
  87. package/package.json +2 -2
  88. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { AsyncLocalStorage } from 'async_hooks';
11
11
  import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
12
+ import type { RequestId } from '@modelcontextprotocol/sdk/types.js';
12
13
  /**
13
14
  * Per-request server storage.
14
15
  * Holds the Server instance for the current request context.
@@ -52,14 +53,33 @@ export declare const serverStorage: AsyncLocalStorage<Server<{
52
53
  * Returns undefined if called outside of a serverStorage.run() scope.
53
54
  */
54
55
  export declare function getServer(): Server | undefined;
56
+ /** Why a destructive action was refused. */
57
+ export type RefusalReason =
58
+ /** The client cannot show a confirmation prompt at all. */
59
+ 'unsupported'
60
+ /** The prompt was sent but no answer came back (dropped, timed out). */
61
+ | 'undeliverable'
62
+ /** The human saw the prompt and said no. */
63
+ | 'declined';
64
+ /** Outcome of the destructive-action gate. */
65
+ export type DestructiveConfirmation = {
66
+ allowed: true;
67
+ } | {
68
+ allowed: false;
69
+ reason: RefusalReason;
70
+ };
55
71
  /**
56
72
  * Ask the user to confirm a destructive action via MCP elicitation.
57
73
  *
58
- * Graceful degradation:
59
- * - No server in context proceed (return true)
60
- * - Client doesn't support elicitation proceed
61
- * - elicitInput() throws → proceed (log error)
62
- * - User declines or cancels return false
74
+ * Fail-closed: the action proceeds only on an explicit yes. Anything else —
75
+ * no server, no elicitation capability, an undelivered prompt, a decline —
76
+ * refuses and names the reason, so the caller can say what happened.
77
+ *
78
+ * `relatedRequestId` is what makes the prompt arrive: without it the SDK sends
79
+ * the request on the standalone SSE stream (opened by `GET /mcp`), which MCP
80
+ * clients do not open, and the prompt is silently dropped.
63
81
  */
64
- export declare function confirmDestructiveAction(toolName: string, args: Record<string, unknown>): Promise<boolean>;
82
+ export declare function confirmDestructiveAction(toolName: string, args: Record<string, unknown>, relatedRequestId?: RequestId): Promise<DestructiveConfirmation>;
83
+ /** Human-readable explanation for a refused destructive action. */
84
+ export declare function describeRefusal(toolName: string, reason: RefusalReason): string;
65
85
  //# sourceMappingURL=server-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../src/utils/server-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkC,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmClB"}
1
+ {"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../src/utils/server-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkC,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,4CAA4C;AAC5C,MAAM,MAAM,aAAa;AACvB,2DAA2D;AACzD,aAAa;AACf,wEAAwE;GACtE,eAAe;AACjB,4CAA4C;GAC1C,UAAU,CAAC;AAEf,8CAA8C;AAC9C,MAAM,MAAM,uBAAuB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAIpG;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,uBAAuB,CAAC,CAiClC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAgB/E"}
@@ -20,48 +20,59 @@ export const serverStorage = new AsyncLocalStorage();
20
20
  export function getServer() {
21
21
  return serverStorage.getStore();
22
22
  }
23
+ const REFUSED_UNSUPPORTED = { allowed: false, reason: 'unsupported' };
23
24
  /**
24
25
  * Ask the user to confirm a destructive action via MCP elicitation.
25
26
  *
26
- * Graceful degradation:
27
- * - No server in context proceed (return true)
28
- * - Client doesn't support elicitation proceed
29
- * - elicitInput() throws → proceed (log error)
30
- * - User declines or cancels return false
27
+ * Fail-closed: the action proceeds only on an explicit yes. Anything else —
28
+ * no server, no elicitation capability, an undelivered prompt, a decline —
29
+ * refuses and names the reason, so the caller can say what happened.
30
+ *
31
+ * `relatedRequestId` is what makes the prompt arrive: without it the SDK sends
32
+ * the request on the standalone SSE stream (opened by `GET /mcp`), which MCP
33
+ * clients do not open, and the prompt is silently dropped.
31
34
  */
32
- export async function confirmDestructiveAction(toolName, args) {
35
+ export async function confirmDestructiveAction(toolName, args, relatedRequestId) {
33
36
  const server = getServer();
34
37
  if (!server)
35
- return true;
38
+ return REFUSED_UNSUPPORTED;
36
39
  // Check if the client supports elicitation
37
40
  const caps = server.getClientCapabilities();
38
41
  if (!caps?.elicitation)
39
- return true;
42
+ return REFUSED_UNSUPPORTED;
40
43
  try {
41
44
  const argsPreview = Object.entries(args)
42
45
  .map(([k, v]) => ` ${k}: ${JSON.stringify(v)}`)
43
46
  .join('\n');
44
47
  const result = await server.elicitInput({
45
- message: `Confirm destructive action: ${toolName}\n\n${argsPreview}`,
46
- requestedSchema: {
47
- type: 'object',
48
- properties: {
49
- confirm: {
50
- type: 'boolean',
51
- title: 'Confirm deletion',
52
- description: 'This will permanently delete the resource. Proceed?',
53
- default: false,
54
- },
55
- },
56
- required: ['confirm'],
57
- },
58
- });
59
- return result.action === 'accept' && result.content?.confirm === true;
48
+ message: `Confirm destructive action: ${toolName}\n\n${argsPreview}\n\n` +
49
+ 'This permanently deletes the resource and cannot be undone.',
50
+ // No fields to fill in: accepting the prompt is the confirmation, and
51
+ // the client's own decline button is the refusal. A checkbox on top of
52
+ // that only produced false refusals — people accepted the dialog and
53
+ // left the box at its default.
54
+ requestedSchema: { type: 'object', properties: {} },
55
+ }, relatedRequestId === undefined ? undefined : { relatedRequestId });
56
+ return result.action === 'accept' ? { allowed: true } : { allowed: false, reason: 'declined' };
60
57
  }
61
58
  catch (error) {
62
- // Elicitation failedgraceful degradation: proceed without confirmation
63
- console.error('[Server] Elicitation failed, proceeding without confirmation:', error);
64
- return true;
59
+ // The prompt never came back refuse rather than delete unconfirmed.
60
+ console.error('[Server] Elicitation failed, refusing destructive action:', error);
61
+ return { allowed: false, reason: 'undeliverable' };
62
+ }
63
+ }
64
+ /** Human-readable explanation for a refused destructive action. */
65
+ export function describeRefusal(toolName, reason) {
66
+ switch (reason) {
67
+ case 'unsupported':
68
+ return (`Refused "${toolName}": destructive actions need confirmation, and this client ` +
69
+ `does not support MCP elicitation, so it cannot be asked for. Use a client that ` +
70
+ `declares the elicitation capability, or perform the deletion in the Qase UI.`);
71
+ case 'undeliverable':
72
+ return (`Refused "${toolName}": the confirmation prompt was not answered, so the action ` +
73
+ `was not confirmed. Nothing was deleted. Retry and answer the prompt.`);
74
+ case 'declined':
75
+ return `Action "${toolName}" declined by the user. Nothing was deleted.`;
65
76
  }
66
77
  }
67
78
  //# sourceMappingURL=server-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-context.js","sourceRoot":"","sources":["../../src/utils/server-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,IAA6B;IAE7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,2CAA2C;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,WAAW;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACtC,OAAO,EAAE,+BAA+B,QAAQ,OAAO,WAAW,EAAE;YACpE,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,kBAAkB;wBACzB,WAAW,EAAE,qDAAqD;wBAClE,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,+DAA+D,EAAE,KAAK,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"server-context.js","sourceRoot":"","sources":["../../src/utils/server-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;AAClC,CAAC;AAcD,MAAM,mBAAmB,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAW,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,IAA6B,EAC7B,gBAA4B;IAE5B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAC;IAExC,2CAA2C;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,WAAW;QAAE,OAAO,mBAAmB,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CACrC;YACE,OAAO,EACL,+BAA+B,QAAQ,OAAO,WAAW,MAAM;gBAC/D,6DAA6D;YAC/D,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,+BAA+B;YAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SACpD,EACD,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAClE,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACjG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sEAAsE;QACtE,OAAO,CAAC,KAAK,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;QAClF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAqB;IACrE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,CACL,YAAY,QAAQ,4DAA4D;gBAChF,iFAAiF;gBACjF,8EAA8E,CAC/E,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,CACL,YAAY,QAAQ,6DAA6D;gBACjF,sEAAsE,CACvE,CAAC;QACJ,KAAK,UAAU;YACb,OAAO,WAAW,QAAQ,8CAA8C,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.3.0";
1
+ export declare const VERSION = "2.4.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/build/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild script — do not edit manually
2
- export const VERSION = '2.3.0';
2
+ export const VERSION = '2.4.0';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qase/mcp-server",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "mcpName": "io.qase/mcp-server",
5
5
  "description": "Official MCP server for Qase Test Management Platform",
6
6
  "type": "module",
@@ -69,7 +69,7 @@
69
69
  "dependencies": {
70
70
  "@modelcontextprotocol/sdk": "^1.26.0",
71
71
  "axios": "^1.13.5",
72
- "express": "^4.18.2",
72
+ "express": "^5.2.1",
73
73
  "form-data": "^4.0.5",
74
74
  "jose": "^6.1.3",
75
75
  "lru-cache": "^11.3.5",
package/server.json CHANGED
@@ -8,12 +8,12 @@
8
8
  "url": "https://github.com/qase-tms/qase-mcp-server",
9
9
  "source": "github"
10
10
  },
11
- "version": "2.3.0",
11
+ "version": "2.4.0",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "@qase/mcp-server",
16
- "version": "2.3.0",
16
+ "version": "2.4.0",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  },