callman-mcp 0.3.0 → 0.5.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 (89) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +29 -7
  3. package/dist/client/api.d.ts +83 -1
  4. package/dist/client/api.d.ts.map +1 -1
  5. package/dist/client/api.js +105 -0
  6. package/dist/client/api.js.map +1 -1
  7. package/dist/client/errors.d.ts.map +1 -1
  8. package/dist/client/errors.js +46 -11
  9. package/dist/client/errors.js.map +1 -1
  10. package/dist/client/types.d.ts +231 -0
  11. package/dist/client/types.d.ts.map +1 -1
  12. package/dist/domain/diagram/patch.d.ts +2 -2
  13. package/dist/domain/uiTest/compose.d.ts +55 -0
  14. package/dist/domain/uiTest/compose.d.ts.map +1 -0
  15. package/dist/domain/uiTest/compose.js +228 -0
  16. package/dist/domain/uiTest/compose.js.map +1 -0
  17. package/dist/domain/uiTest/summarize.d.ts +273 -0
  18. package/dist/domain/uiTest/summarize.d.ts.map +1 -0
  19. package/dist/domain/uiTest/summarize.js +145 -0
  20. package/dist/domain/uiTest/summarize.js.map +1 -0
  21. package/dist/lib/truncate.d.ts +1 -1
  22. package/dist/lib/truncate.d.ts.map +1 -1
  23. package/dist/lib/truncate.js.map +1 -1
  24. package/dist/resources/docs/overview.d.ts +1 -1
  25. package/dist/resources/docs/overview.d.ts.map +1 -1
  26. package/dist/resources/docs/overview.js +12 -3
  27. package/dist/resources/docs/overview.js.map +1 -1
  28. package/dist/resources/docs/uiTests.d.ts +2 -0
  29. package/dist/resources/docs/uiTests.d.ts.map +1 -0
  30. package/dist/resources/docs/uiTests.js +101 -0
  31. package/dist/resources/docs/uiTests.js.map +1 -0
  32. package/dist/resources/generated/aiPacks.d.ts +1 -1
  33. package/dist/resources/generated/aiPacks.js +2 -2
  34. package/dist/resources/index.d.ts.map +1 -1
  35. package/dist/resources/index.js +13 -2
  36. package/dist/resources/index.js.map +1 -1
  37. package/dist/server.d.ts +1 -1
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +2 -2
  40. package/dist/server.js.map +1 -1
  41. package/dist/tools/catalog.d.ts +1 -1
  42. package/dist/tools/catalog.d.ts.map +1 -1
  43. package/dist/tools/catalog.js +31 -0
  44. package/dist/tools/catalog.js.map +1 -1
  45. package/dist/tools/index.d.ts.map +1 -1
  46. package/dist/tools/index.js +6 -0
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/lookups.d.ts +19 -1
  49. package/dist/tools/lookups.d.ts.map +1 -1
  50. package/dist/tools/lookups.js +77 -0
  51. package/dist/tools/lookups.js.map +1 -1
  52. package/dist/tools/shared.d.ts +5 -0
  53. package/dist/tools/shared.d.ts.map +1 -1
  54. package/dist/tools/shared.js +10 -0
  55. package/dist/tools/shared.js.map +1 -1
  56. package/dist/tools/uiTestAdmin.d.ts +4 -0
  57. package/dist/tools/uiTestAdmin.d.ts.map +1 -0
  58. package/dist/tools/uiTestAdmin.js +509 -0
  59. package/dist/tools/uiTestAdmin.js.map +1 -0
  60. package/dist/tools/uiTestRuns.d.ts +24 -0
  61. package/dist/tools/uiTestRuns.d.ts.map +1 -0
  62. package/dist/tools/uiTestRuns.js +367 -0
  63. package/dist/tools/uiTestRuns.js.map +1 -0
  64. package/dist/tools/uiTestShared.d.ts +236 -0
  65. package/dist/tools/uiTestShared.d.ts.map +1 -0
  66. package/dist/tools/uiTestShared.js +187 -0
  67. package/dist/tools/uiTestShared.js.map +1 -0
  68. package/dist/tools/uiTests.d.ts +4 -0
  69. package/dist/tools/uiTests.d.ts.map +1 -0
  70. package/dist/tools/uiTests.js +572 -0
  71. package/dist/tools/uiTests.js.map +1 -0
  72. package/dist-cjs/client/api.js +105 -0
  73. package/dist-cjs/client/errors.js +46 -11
  74. package/dist-cjs/domain/uiTest/compose.js +242 -0
  75. package/dist-cjs/domain/uiTest/summarize.js +155 -0
  76. package/dist-cjs/resources/docs/overview.js +12 -3
  77. package/dist-cjs/resources/docs/uiTests.js +103 -0
  78. package/dist-cjs/resources/generated/aiPacks.js +2 -2
  79. package/dist-cjs/resources/index.js +11 -0
  80. package/dist-cjs/server.js +2 -2
  81. package/dist-cjs/tools/catalog.js +31 -0
  82. package/dist-cjs/tools/index.js +6 -0
  83. package/dist-cjs/tools/lookups.js +83 -1
  84. package/dist-cjs/tools/shared.js +12 -1
  85. package/dist-cjs/tools/uiTestAdmin.js +512 -0
  86. package/dist-cjs/tools/uiTestRuns.js +372 -0
  87. package/dist-cjs/tools/uiTestShared.js +202 -0
  88. package/dist-cjs/tools/uiTests.js +575 -0
  89. package/package.json +3 -3
@@ -0,0 +1,101 @@
1
+ export const UI_TESTS_DOC = `# UI tests in Callman
2
+
3
+ UI tests drive a real web browser or a mobile app step by step — the same flows QA builds in
4
+ the desktop app's UI Testing area. Every step (\`tapOn\`, \`inputText\`, \`assertVisible\`,
5
+ \`dbQuery\` …) with its arguments is in \`callman://docs/ui-test-steps\`.
6
+
7
+ ## A flow
8
+ A flow is YAML text: an optional **header**, a \`---\` line, then a **list of steps**.
9
+
10
+ \`\`\`yaml
11
+ url: https://shop.example.com # web: where the browser starts (mobile: appId: com.shop.app)
12
+ ---
13
+ - runFlow: "Login" # precondition: another flow, by EXACT name
14
+ - tapOn: "Catalog"
15
+ - inputText:
16
+ id: "search"
17
+ text: "{{product}}" # dataset placeholder
18
+ - assertVisible:
19
+ text: "{{product}}"
20
+ label: "Search shows the product"
21
+ - dbQuery: # hybrid data step (runs between UI steps)
22
+ connection: orders-db # a workspace connection, by name or id
23
+ query: "select status from orders where id = '{{orderId}}'"
24
+ expect:
25
+ - field: "rows[0].status"
26
+ op: equals
27
+ value: "PAID"
28
+ \`\`\`
29
+
30
+ - **Platforms**: \`web\` (Playwright), \`android\` and \`ios\` (the mobile engine in the desktop app).
31
+ A flow has one platform; steps the platform cannot run are lint warnings.
32
+ - **Header**: \`url\` (web) or \`appId\` (android/ios) is what matters; \`env\`, \`tags\`, \`appActivity\`,
33
+ \`deviceName\`, \`onFlowStart\`/\`onFlowComplete\` are optional.
34
+ - **Preconditions / sub-flows**: \`- runFlow: "Name"\` inlines another flow of the library by its
35
+ exact name (recursively). The leading runFlow lines are the flow's *preconditions*
36
+ (create_ui_test / update_ui_test \`preconditions: ["Login"]\`). Renaming a flow breaks callers —
37
+ update_ui_test lists them. Names are unique per workspace.
38
+ - **Labels**: any mapping step may carry \`label:\` — its name in reports (patch op \`setLabel\`).
39
+
40
+ ## Data
41
+ - **dataset**: key → value, used as \`{{key}}\` anywhere (header included). Values whose key looks
42
+ secret (password, token, apiKey, pin, otp …) come back masked (\`••••ab\`) unless the token holds
43
+ \`environments:reveal\` and you pass \`reveal: true\`. Editing a flow without reveal is fine:
44
+ stored secrets are kept as they are. Never type a masked value yourself — pass the real value
45
+ to change a secret, or leave the key out.
46
+ - **datasetSources**: \`{ key: { connection, query, column? } }\` — the value comes from a database
47
+ query at run time (a database connection of the workspace).
48
+ - **Extracted values**: \`extract\` / \`copyTextFrom\` / data steps save \`{{vars}}\` for later steps.
49
+ - **Hybrid steps**: \`dbQuery\`, \`apiCall\`, \`kafkaPublish\`, \`kafkaCheck\`, \`redisCheck\`, \`runScript\`
50
+ run outside the UI engine, in order. Connections are the workspace's (\`list_connections\`),
51
+ referenced by name or id.
52
+
53
+ ## Settings
54
+ Per flow: \`browserKind\` (chrome / firefox / webkit) and \`headless\` for web desktop runs;
55
+ \`dismissPopups\` (texts auto-dismissed) for mobile; \`runSettings\` { screenshotOnSuccess,
56
+ screenshotOnFailure, autoRetryTransient, captureNetwork } — null = the shared default.
57
+
58
+ ## Where runs happen
59
+ - **Server runner** (\`target: "server"\`): web flows only, when the installation runs one.
60
+ Schedules always use it.
61
+ - **Your desktop app** (\`target: "desktop"\`): the Callman desktop app on the user's computer runs
62
+ the job — Android devices/emulators, iOS simulators/devices, local browsers. It must be open,
63
+ signed in, with **Settings → AI tools → "Let AI tools run UI tests on this computer"** on.
64
+ Desktop runs queue one at a time. \`device\`, \`browserKind\`, \`headless\` and a one-off
65
+ \`dataset\` override apply here.
66
+ - \`target: "auto"\` (default): web → server runner when available, otherwise the desktop.
67
+ - \`list_ui_test_devices\` shows the server runner, the online desktop apps and their devices.
68
+ \`UI_TEST_DESKTOP_OFFLINE\` means no desktop app of the user is online.
69
+
70
+ ## Reports
71
+ \`run_ui_test\` / \`get_ui_test_run\` return per-step rows (command, status, duration, error, the
72
+ sub-flow it came from), failing steps expanded with the data they returned (DB rows, API
73
+ responses, extracted vars), dataset issues and warnings. \`includeScreenshots: true\` adds the
74
+ failure / final screenshots as images; \`includeNetwork: true\` the captured API calls.
75
+ \`list_ui_test_runs\` merges server reports with the history the desktop app recorded itself.
76
+
77
+ ## Schedules
78
+ Web flows only, on the server runner: daily / weekly / monthly at times (HH:mm) or a cron
79
+ expression, with retries and notifications. One call can schedule many flows. On-prem,
80
+ schedules run the flow's APPROVED version.
81
+
82
+ ## Review (on-prem)
83
+ Editing a flow makes it a draft. \`submit_ui_test\` sends it for review; an approver
84
+ \`review_ui_test\` (approve / reject with a note). Each approval is a version
85
+ (\`list_ui_test_versions\`, with a diff against the current content); \`restore_ui_test_version\`
86
+ re-activates an older one. Cloud has no review workflow — flows run as saved.
87
+
88
+ ## Recommended workflow
89
+ 1. \`list_ui_test_devices\` — where can it run (server runner? desktop app + devices?).
90
+ 2. \`list_ui_tests\` — reuse existing flows (Login …) as preconditions instead of copying steps.
91
+ 3. Read \`callman://docs/ui-test-steps\`, draft the steps, then \`validate_ui_test\` (content +
92
+ platform) — or \`create_ui_test\` with \`dryRun: true\`.
93
+ 4. \`create_ui_test\` (lint errors refuse the save; warnings are reported).
94
+ 5. \`run_ui_test\` → read the failing steps; \`get_ui_test_run includeScreenshots: true\` when a
95
+ picture helps.
96
+ 6. Fix with \`patch_ui_test_steps\` (insert / replace / remove / move / setLabel by step number
97
+ from \`get_ui_test\`) and run again.
98
+ 7. Organise with folders (\`create_ui_test_folder\`, \`move_ui_tests\`), schedule web flows
99
+ (\`create_ui_test_schedule\`), submit for approval on-prem.
100
+ `;
101
+ //# sourceMappingURL=uiTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiTests.js","sourceRoot":"","sources":["../../../src/resources/docs/uiTests.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmG3B,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const AI_PACKS_CORE_VERSION = "1.29.0";
1
+ export declare const AI_PACKS_CORE_VERSION = "1.31.0";
2
2
  export declare const AI_PACKS: Record<string, string>;
3
3
  //# sourceMappingURL=aiPacks.d.ts.map
@@ -1,5 +1,5 @@
1
- // GENERATED by scripts/build-static-resources.mjs from callman-core@1.29.0 ai-packs — do not edit.
2
- export const AI_PACKS_CORE_VERSION = "1.29.0";
1
+ // GENERATED by scripts/build-static-resources.mjs from callman-core@1.31.0 ai-packs — do not edit.
2
+ export const AI_PACKS_CORE_VERSION = "1.31.0";
3
3
  export const AI_PACKS = {
4
4
  "db-queries": "<!-- GENERATED FILE — do not edit by hand. Source: callman_core (npm run ai:packs). -->\n\n# Callman data access from scripts (`pm.db.query` / `pm.redis.command`)\n\n`pm.db.query({ connectionId, query })` — ALWAYS `await`. `query` is coerced to a string, `{{tokens}}` are resolved, then dispatched by the connection's type. `connectionId` may be omitted to use the request's configured DB connection. IMPORTANT: `pm.db.query` does NOT accept a `params`/bind array — inline values (quote strings) or use `{{env.X}}` tokens; SQL placeholders like `$1` or `?` are NOT bound.\n\n## MongoDB\n`query` MUST be a JSON STRING of a command object (use `JSON.stringify`), NOT a `db.coll.find(...)` shell string. The match key is `filter` (a top-level `query` key is rejected).\n\n```js\nconst body = pm.response.json();\nconst res = await pm.db.query({\n connectionId: \"…\",\n query: JSON.stringify({\n collection: \"users\",\n operation: \"findOne\", // find | findOne | aggregate | countDocuments | insertOne | insertMany | updateOne | updateMany | deleteOne | deleteMany | findOneAndUpdate | findOneAndReplace | findOneAndDelete\n filter: { email: body.data.user.email },\n }),\n});\npm.expect(res.rowCount).to.be.above(0); // existence check\n```\n\nPer-operation fields: `find`/`findOne` use `filter` (+ optional `projection`,`sort`,`limit`,`skip`); `aggregate` uses `pipeline` (array); `insertOne` uses `document`, `insertMany` uses `documents`; `updateOne`/`updateMany`/`findOneAndUpdate` use `filter`+`update` (Mongo update operators, e.g. `{ $set: { … } }`); `deleteOne`/`deleteMany` use `filter`; `findOneAndUpdate`/`findOneAndReplace` accept `returnDocument: \"before\"|\"after\"`. A 24-hex string in a filter is auto-coerced to ObjectId (or use `{ \"$oid\": \"…\" }`). Rows are in `res.rows`; write ops surface counts in `res.rowCount`.\n\n## PostgreSQL / MySQL / Oracle (SQL)\n`query` is plain SQL text. Because `pm.db.query` binds no params, inline the value and quote strings yourself (or use a `{{token}}`):\n\n```js\nconst email = pm.response.json().data.user.email;\nconst res = await pm.db.query({\n connectionId: \"…\",\n query: `SELECT id FROM users WHERE email = '${email}'`,\n});\npm.expect(res.rowCount).to.be.above(0);\n```\n\nNotes: a trailing `;` is stripped (except Oracle PL/SQL blocks, which keep it). **Oracle** returns column names UPPERCASE — read `res.rows[0].EMAIL`, not `.email`. `res.rowCount` is the row count for SELECT and the affected-row count for INSERT/UPDATE/DELETE.\n\n## SQL Server (mssql)\nSingle statement per query; a trailing `;` is stripped; `GO` batch separators are REJECTED (client-tool syntax, not T-SQL). Positional params bind as named inputs: `params[0]` → `@p1`, `params[1]` → `@p2`… (scenario db node only — `pm.db.query` has no params).\n\n```sql\nSELECT TOP 1 id, amount FROM dbo.orders WHERE customer_id = @p1 ORDER BY created_at DESC\n```\n\n## Redis (`pm.redis.command`)\n`command` is a single string. Supported commands: **GET, SET, DEL, EXISTS, TTL, HGET, HSET, HGETALL, HDEL, LPUSH, RPUSH, LRANGE, LLEN, SADD, SMEMBERS, SISMEMBER, INCR, DECR, INCRBY, EXPIRE, PERSIST, TYPE, ZADD, ZRANGE, ZSCORE, SCAN**. Quote a value that contains spaces.\n\nStructured replies land in `res.result` as real values: `HGETALL` → object, `LRANGE`/`SMEMBERS`/`ZRANGE` → array, `EXISTS`/`SISMEMBER`/`EXPIRE`/`PERSIST` → boolean; `res.resultText` is the stringified form. `SCAN pattern [count]` is Callman-managed: the cursor loop runs internally (capped at 1000 keys / 100 iterations) and returns `{ keys, count, truncated }` — no raw cursors.\n\n```js\nconst res = await pm.redis.command({ connectionId: \"…\", command: `GET session:${id}` });\npm.expect(res.success).to.be.true;\n// res.result / res.resultText hold the value; res.commandName, res.key are set.\n```\n",
5
5
  "diagram-components": "<!-- GENERATED FILE — do not edit by hand. Source: callman_core (npm run ai:packs). -->\n\n# Diagram components and edge notation\n\nA diagram node's `type` MUST be one of the keys below (`callman-core` `DIAGRAM_COMPONENT_CATALOG`). Sizes are the defaults the studio uses; `container` types hold children via `parentId`.\n\n## Edge notation\n\n| Semantic | Meaning | Style tuple |\n| --- | --- | --- |\n| `sync` | Request / response call | dashed=false, strokeWidth=1.5 |\n| `async` | Fire-and-forget, event or callback | dashed=true, dashPattern=\"6 4\", strokeWidth=1.5 |\n| `fallback` | Retry, fallback or optional path | dashed=true, dashPattern=\"1 3\", strokeWidth=1.25 |\n| `bus` | Message bus or stream | dashed=false, strokeWidth=3 |\n\n## Generic (`generic`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `line` | Line | 160×0 | connector, edge, link |\n| `arrow` | Arrow | 160×0 | connector, directed, link |\n| `line.dashed` | Dashed Line | 160×0 | dotted, connector |\n| `rect` | Rectangle | 140×64 | box, card |\n| `square` | Square | 90×90 | |\n| `ellipse` | Ellipse | 140×64 | oval |\n| `circle` | Circle | 90×90 | |\n| `diamond` | Diamond | 140×64 | rhombus |\n| `triangle` | Triangle | 140×64 | |\n| `hexagon` | Hexagon | 140×64 | |\n| `pentagon` | Pentagon | 140×64 | |\n| `octagon` | Octagon | 140×64 | |\n| `parallelogram` | Parallelogram | 140×64 | |\n| `trapezoid` | Trapezoid | 140×64 | |\n| `cylinder` | Cylinder | 140×64 | can, tube |\n| `cloud-shape` | Cloud | 140×64 | |\n| `callout` | Callout | 140×64 | speech, bubble |\n| `text` | Text | 120×36 | |\n| `sticky` | Sticky note | 140×100 | postit, comment |\n| `card` | Card | 140×64 | |\n| `frame` | Frame / Container (container) | 220×160 | group, container, boundary |\n| `pool.horizontal` | Pool (horizontal) (swimlane) | 360×220 | swimlane, lane, container, subsystem |\n| `pool.vertical` | Pool (vertical) (swimlane) | 220×360 | swimlane, lane, container, subsystem |\n| `image` | Image | 140×64 | picture |\n\n## Flowchart (`flowchart`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `flow.process` | Process | 140×64 | step, action |\n| `flow.alt-process` | Alternate Process | 140×64 | |\n| `flow.decision` | Decision | 140×100 | if, branch |\n| `flow.terminator` | Start / End | 130×56 | terminator, begin, stop |\n| `flow.data` | Data (I/O) | 140×64 | input, output, io |\n| `flow.document` | Document | 140×64 | |\n| `flow.multi-document` | Multi-Document | 140×64 | |\n| `flow.predefined` | Predefined Process | 140×64 | subroutine |\n| `flow.manual-input` | Manual Input | 140×64 | |\n| `flow.manual-op` | Manual Operation | 140×64 | |\n| `flow.preparation` | Preparation | 140×64 | |\n| `flow.stored-data` | Stored Data | 140×64 | |\n| `flow.database` | Database | 140×64 | db, store |\n| `flow.display` | Display | 140×64 | |\n| `flow.delay` | Delay | 140×64 | |\n| `flow.merge` | Merge | 140×64 | |\n| `flow.or` | Or | 140×64 | |\n| `flow.connector` | On-page Connector | 48×48 | |\n| `flow.off-page` | Off-page Connector | 140×64 | |\n| `flow.annotation` | Annotation | 140×64 | |\n\n## UML (`uml`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `uml.class` | Class | 140×64 | entity |\n| `uml.abstract` | Abstract Class | 140×64 | |\n| `uml.interface` | Interface | 140×64 | |\n| `uml.enum` | Enum | 140×64 | |\n| `uml.object` | Object | 140×64 | |\n| `uml.package` | Package | 140×64 | |\n| `uml.component` | Component | 140×64 | |\n| `uml.node` | Node / Deployment | 140×64 | |\n| `uml.actor` | Actor | 60×100 | user, role |\n| `uml.usecase` | Use Case | 140×64 | |\n| `uml.boundary` | Boundary | 140×64 | |\n| `uml.control` | Control | 140×64 | |\n| `uml.entity` | Entity | 140×64 | |\n| `uml.state` | State | 140×64 | |\n| `uml.initial` | Initial State | 36×36 | |\n| `uml.final` | Final State | 40×40 | |\n| `uml.decision` | Decision | 60×60 | |\n| `uml.note` | Note / Comment | 140×64 | comment |\n\n## ERD (`erd`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `erd.entity` | Entity | 140×64 | table |\n| `erd.weak-entity` | Weak Entity | 140×64 | |\n| `erd.attribute` | Attribute | 140×64 | |\n| `erd.key-attribute` | Key Attribute | 140×64 | pk, primary key |\n| `erd.multivalued` | Multivalued Attribute | 140×64 | |\n| `erd.derived` | Derived Attribute | 140×64 | |\n| `erd.relationship` | Relationship | 140×64 | |\n| `erd.identifying` | Identifying Relationship | 140×64 | |\n\n## Architecture (`networking`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `net.user` | User / Client | 60×100 | client, person |\n| `net.admin` | Admin | 60×100 | |\n| `net.browser` | Browser | 140×64 | |\n| `net.mobile` | Mobile Device | 90×130 | phone |\n| `net.desktop` | Desktop | 140×64 | |\n| `net.iot` | IoT Device | 140×64 | |\n| `net.server` | Server | 140×64 | |\n| `net.service` | Service | 140×64 | microservice |\n| `net.monolith` | Monolith | 140×64 | |\n| `net.api-gateway` | API Gateway | 140×64 | api, gateway |\n| `net.load-balancer` | Load Balancer | 140×64 | lb |\n| `net.reverse-proxy` | Reverse Proxy | 140×64 | proxy |\n| `net.firewall` | Firewall | 140×64 | waf |\n| `net.router` | Router | 140×64 | |\n| `net.switch` | Switch | 140×64 | |\n| `net.dns` | DNS | 140×64 | |\n| `net.cdn` | CDN | 140×64 | edge |\n| `net.cache` | Cache | 140×64 | |\n| `net.queue` | Queue | 140×64 | mq |\n| `net.websocket` | Web Socket | 140×64 | ws |\n| `net.rest` | REST endpoint | 140×64 | http, api |\n| `net.internet` | Internet / Cloud | 140×64 | wan |\n| `net.datacenter` | Datacenter | 140×64 | |\n| `net.container` | Container | 140×64 | |\n| `net.pod` | Pod | 140×64 | |\n| `net.vm` | Virtual Machine | 140×64 | vm |\n\n## Databases (`database`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `db.postgres` | PostgreSQL | 176×56 | postgres, pg |\n| `db.mysql` | MySQL | 176×56 | |\n| `db.mariadb` | MariaDB | 176×56 | |\n| `db.mongodb` | MongoDB | 176×56 | mongo |\n| `db.redis` | Redis | 176×56 | |\n| `db.sqlite` | SQLite | 176×56 | |\n| `db.mssql` | MS SQL Server | 176×56 | sqlserver, mssql |\n| `db.oracle` | Oracle | 176×56 | |\n| `db.cassandra` | Cassandra | 176×56 | |\n| `db.elasticsearch` | Elasticsearch | 176×56 | elastic, es |\n| `db.neo4j` | Neo4j | 176×56 | graph |\n| `db.couchdb` | CouchDB | 176×56 | couch |\n| `db.couchbase` | Couchbase | 176×56 | |\n| `db.clickhouse` | ClickHouse | 176×56 | |\n| `db.cockroachdb` | CockroachDB | 176×56 | cockroach |\n| `db.influxdb` | InfluxDB | 176×56 | influx, tsdb |\n| `db.snowflake` | Snowflake | 176×56 | |\n| `db.supabase` | Supabase | 176×56 | |\n\n## Messaging (`messaging`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `mq.kafka` | Apache Kafka | 176×56 | kafka |\n| `mq.rabbitmq` | RabbitMQ | 176×56 | rabbit, amqp |\n| `mq.nats` | NATS | 176×56 | |\n| `mq.pulsar` | Apache Pulsar | 176×56 | pulsar |\n| `mq.mqtt` | MQTT | 176×56 | |\n| `mq.pubsub` | Pub/Sub | 176×56 | pubsub |\n| `mq.activemq` | ActiveMQ | 176×56 | jms |\n\n## Languages (`language`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `lang.node` | Node.js | 176×56 | node, js runtime |\n| `lang.python` | Python | 176×56 | py |\n| `lang.java` | Java | 176×56 | jvm |\n| `lang.go` | Go | 176×56 | golang |\n| `lang.rust` | Rust | 176×56 | |\n| `lang.dotnet` | C# / .NET | 176×56 | csharp, c# |\n| `lang.typescript` | TypeScript | 176×56 | ts |\n| `lang.javascript` | JavaScript | 176×56 | js |\n| `lang.ruby` | Ruby | 176×56 | |\n| `lang.php` | PHP | 176×56 | |\n| `lang.kotlin` | Kotlin | 176×56 | |\n| `lang.swift` | Swift | 176×56 | |\n| `lang.scala` | Scala | 176×56 | |\n| `lang.elixir` | Elixir | 176×56 | |\n| `lang.cpp` | C++ | 176×56 | cpp |\n\n## Frameworks (`framework`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `fw.express` | Express | 176×56 | |\n| `fw.nestjs` | NestJS | 176×56 | nest |\n| `fw.spring` | Spring Boot | 176×56 | spring |\n| `fw.django` | Django | 176×56 | |\n| `fw.flask` | Flask | 176×56 | |\n| `fw.fastapi` | FastAPI | 176×56 | |\n| `fw.rails` | Rails | 176×56 | ruby on rails |\n| `fw.laravel` | Laravel | 176×56 | |\n| `fw.dotnet` | .NET | 176×56 | |\n| `fw.react` | React | 176×56 | |\n| `fw.vue` | Vue | 176×56 | vuejs |\n| `fw.angular` | Angular | 176×56 | |\n| `fw.next` | Next.js | 176×56 | nextjs |\n| `fw.nuxt` | Nuxt | 176×56 | nuxtjs |\n| `fw.svelte` | Svelte | 176×56 | sveltekit |\n| `fw.electron` | Electron | 176×56 | |\n| `fw.tailwind` | Tailwind | 176×56 | tailwindcss |\n| `fw.graphql` | GraphQL | 176×56 | |\n\n## DevOps / CI-CD (`devops`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `ops.docker` | Docker | 176×56 | |\n| `ops.k8s` | Kubernetes | 176×56 | k8s |\n| `ops.nginx` | Nginx | 176×56 | |\n| `ops.haproxy` | HAProxy | 176×56 | lb |\n| `ops.traefik` | Traefik | 176×56 | traefik |\n| `ops.terraform` | Terraform | 176×56 | iac |\n| `ops.ansible` | Ansible | 176×56 | |\n| `ops.jenkins` | Jenkins | 176×56 | ci |\n| `ops.gha` | GitHub Actions | 176×56 | ci, actions |\n| `ops.gitlab` | GitLab CI | 176×56 | ci |\n| `ops.argocd` | ArgoCD | 176×56 | gitops |\n| `ops.helm` | Helm | 176×56 | |\n| `ops.istio` | Istio | 176×56 | service mesh |\n| `ops.envoy` | Envoy | 176×56 | proxy |\n| `ops.consul` | Consul | 176×56 | |\n| `ops.vault` | Vault | 176×56 | secrets |\n| `ops.pm2` | PM2 | 176×56 | |\n| `ops.maven` | Maven | 176×56 | build |\n\n## Auth / Identity (`auth`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `auth.oidc` | OpenID Connect | 176×56 | oidc |\n| `auth.jwt` | JWT | 176×56 | token |\n| `auth.keycloak` | Keycloak | 176×56 | |\n| `auth.auth0` | Auth0 | 176×56 | |\n| `auth.okta` | Okta | 176×56 | |\n| `auth.firebase` | Firebase Auth | 176×56 | firebase |\n| `auth.oauth` | OAuth 2.0 | 176×56 | oauth |\n| `auth.saml` | SAML | 176×56 | |\n| `auth.ldap` | LDAP | 176×56 | |\n\n## Observability (`observability`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `obs.prometheus` | Prometheus | 176×56 | metrics |\n| `obs.grafana` | Grafana | 176×56 | dashboard |\n| `obs.datadog` | Datadog | 176×56 | |\n| `obs.sentry` | Sentry | 176×56 | errors |\n| `obs.elasticsearch` | Elasticsearch | 176×56 | elk |\n| `obs.logstash` | Logstash | 176×56 | elk |\n| `obs.kibana` | Kibana | 176×56 | elk |\n| `obs.jaeger` | Jaeger | 176×56 | tracing |\n| `obs.otel` | OpenTelemetry | 176×56 | otel, tracing |\n| `obs.newrelic` | New Relic | 176×56 | |\n\n## AWS (`aws`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `aws.ec2` | EC2 | 176×56 | aws |\n| `aws.lambda` | Lambda | 176×56 | aws |\n| `aws.s3` | S3 | 176×56 | aws |\n| `aws.ebs` | EBS | 176×56 | aws |\n| `aws.efs` | EFS | 176×56 | aws |\n| `aws.rds` | RDS | 176×56 | aws |\n| `aws.aurora` | Aurora | 176×56 | aws |\n| `aws.dynamodb` | DynamoDB | 176×56 | aws |\n| `aws.elasticache` | ElastiCache | 176×56 | aws |\n| `aws.redshift` | Redshift | 176×56 | aws |\n| `aws.vpc` | VPC | 176×56 | aws |\n| `aws.subnet` | Subnet | 176×56 | aws |\n| `aws.internet-gateway` | Internet Gateway | 176×56 | aws |\n| `aws.nat-gateway` | NAT Gateway | 176×56 | aws |\n| `aws.elb` | ELB | 176×56 | aws |\n| `aws.alb` | ALB | 176×56 | aws |\n| `aws.nlb` | NLB | 176×56 | aws |\n| `aws.api-gateway` | API Gateway | 176×56 | aws |\n| `aws.cloudfront` | CloudFront | 176×56 | aws |\n| `aws.route-53` | Route 53 | 176×56 | aws |\n| `aws.sqs` | SQS | 176×56 | aws |\n| `aws.sns` | SNS | 176×56 | aws |\n| `aws.eventbridge` | EventBridge | 176×56 | aws |\n| `aws.kinesis` | Kinesis | 176×56 | aws |\n| `aws.step-functions` | Step Functions | 176×56 | aws |\n| `aws.ecs` | ECS | 176×56 | aws |\n| `aws.eks` | EKS | 176×56 | aws |\n| `aws.fargate` | Fargate | 176×56 | aws |\n| `aws.ecr` | ECR | 176×56 | aws |\n| `aws.iam` | IAM | 176×56 | aws |\n| `aws.cognito` | Cognito | 176×56 | aws |\n| `aws.secrets-manager` | Secrets Manager | 176×56 | aws |\n| `aws.kms` | KMS | 176×56 | aws |\n| `aws.cloudwatch` | CloudWatch | 176×56 | aws |\n| `aws.cloudtrail` | CloudTrail | 176×56 | aws |\n| `aws.glue` | Glue | 176×56 | aws |\n| `aws.athena` | Athena | 176×56 | aws |\n| `aws.sagemaker` | SageMaker | 176×56 | aws |\n| `aws.appsync` | AppSync | 176×56 | aws |\n| `aws.amplify` | Amplify | 176×56 | aws |\n\n## Azure (`azure`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `azure.virtual-machine` | Virtual Machine | 176×56 | azure |\n| `azure.vm-scale-set` | VM Scale Set | 176×56 | azure |\n| `azure.app-service` | App Service | 176×56 | azure |\n| `azure.functions` | Functions | 176×56 | azure |\n| `azure.container-instances` | Container Instances | 176×56 | azure |\n| `azure.aks` | AKS | 176×56 | azure |\n| `azure.container-registry` | Container Registry | 176×56 | azure |\n| `azure.blob-storage` | Blob Storage | 176×56 | azure |\n| `azure.files` | Files | 176×56 | azure |\n| `azure.disk` | Disk | 176×56 | azure |\n| `azure.sql-database` | SQL Database | 176×56 | azure |\n| `azure.cosmos-db` | Cosmos DB | 176×56 | azure |\n| `azure.cache-for-redis` | Cache for Redis | 176×56 | azure |\n| `azure.synapse` | Synapse | 176×56 | azure |\n| `azure.virtual-network` | Virtual Network | 176×56 | azure |\n| `azure.load-balancer` | Load Balancer | 176×56 | azure |\n| `azure.application-gateway` | Application Gateway | 176×56 | azure |\n| `azure.front-door` | Front Door | 176×56 | azure |\n| `azure.service-bus` | Service Bus | 176×56 | azure |\n| `azure.event-hub` | Event Hub | 176×56 | azure |\n| `azure.event-grid` | Event Grid | 176×56 | azure |\n| `azure.key-vault` | Key Vault | 176×56 | azure |\n| `azure.entra-id` | Entra ID | 176×56 | azure |\n| `azure.monitor` | Monitor | 176×56 | azure |\n| `azure.application-insights` | Application Insights | 176×56 | azure |\n| `azure.logic-apps` | Logic Apps | 176×56 | azure |\n| `azure.api-management` | API Management | 176×56 | azure |\n\n## GCP (`gcp`)\n\n| Type | Label | Default size | Aliases |\n| --- | --- | --- | --- |\n| `gcp.compute-engine` | Compute Engine | 176×56 | gcp, google |\n| `gcp.app-engine` | App Engine | 176×56 | gcp, google |\n| `gcp.cloud-functions` | Cloud Functions | 176×56 | gcp, google |\n| `gcp.cloud-run` | Cloud Run | 176×56 | gcp, google |\n| `gcp.gke` | GKE | 176×56 | gcp, google |\n| `gcp.artifact-registry` | Artifact Registry | 176×56 | gcp, google |\n| `gcp.cloud-storage` | Cloud Storage | 176×56 | gcp, google |\n| `gcp.persistent-disk` | Persistent Disk | 176×56 | gcp, google |\n| `gcp.cloud-sql` | Cloud SQL | 176×56 | gcp, google |\n| `gcp.cloud-spanner` | Cloud Spanner | 176×56 | gcp, google |\n| `gcp.firestore` | Firestore | 176×56 | gcp, google |\n| `gcp.bigtable` | Bigtable | 176×56 | gcp, google |\n| `gcp.bigquery` | BigQuery | 176×56 | gcp, google |\n| `gcp.memorystore` | Memorystore | 176×56 | gcp, google |\n| `gcp.vpc` | VPC | 176×56 | gcp, google |\n| `gcp.cloud-load-balancing` | Cloud Load Balancing | 176×56 | gcp, google |\n| `gcp.cloud-cdn` | Cloud CDN | 176×56 | gcp, google |\n| `gcp.cloud-dns` | Cloud DNS | 176×56 | gcp, google |\n| `gcp.pub-sub` | Pub/Sub | 176×56 | gcp, google |\n| `gcp.dataflow` | Dataflow | 176×56 | gcp, google |\n| `gcp.cloud-tasks` | Cloud Tasks | 176×56 | gcp, google |\n| `gcp.iam` | IAM | 176×56 | gcp, google |\n| `gcp.secret-manager` | Secret Manager | 176×56 | gcp, google |\n| `gcp.cloud-kms` | Cloud KMS | 176×56 | gcp, google |\n| `gcp.cloud-monitoring` | Cloud Monitoring | 176×56 | gcp, google |\n| `gcp.vertex-ai` | Vertex AI | 176×56 | gcp, google |\n",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAa3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkCjD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,EAAE,KAAK,WAAW,KAAG,IA2IvE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAc3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAoCjD,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,EAAE,KAAK,WAAW,KAAG,IA0JvE,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { renderScenarioNodeReference, DIAGRAM_CATEGORY_LABELS, DIAGRAM_CATEGORY_ORDER, diagramComponentsByCategory, renderDbQueryReference, renderPmApiReference, safeParseDiagramDocument, } from "callman-core";
2
+ import { renderScenarioNodeReference, DIAGRAM_CATEGORY_LABELS, DIAGRAM_CATEGORY_ORDER, diagramComponentsByCategory, renderDbQueryReference, renderPmApiReference, renderUiTestCommandReference, safeParseDiagramDocument, } from "callman-core";
3
3
  import { diagramGraphView } from "../domain/diagram/summarize.js";
4
4
  import { compactRequestView, requestSummaryView } from "../domain/requestShape.js";
5
5
  import { scenarioFullView } from "../domain/scenario/summarize.js";
6
6
  import { safeStringify } from "../lib/truncate.js";
7
- import { findCollection, findEnvironment, findRequest, loadTree, resolveDiagram, resolveScenario, workspaceTag } from "../tools/lookups.js";
7
+ import { findCollection, findEnvironment, findRequest, loadTree, resolveDiagram, resolveScenario, resolveUiTest, workspaceTag } from "../tools/lookups.js";
8
+ import { flowDetailView, lintContext, lintFlow } from "../tools/uiTestShared.js";
8
9
  import { CONTRACTS_DOC } from "./docs/contracts.js";
9
10
  import { DIAGRAM_SCHEMA_DOC } from "./docs/diagramSchema.js";
10
11
  import { OVERVIEW_DOC } from "./docs/overview.js";
11
12
  import { REQUEST_SCHEMA_DOC } from "./docs/requestSchema.js";
13
+ import { UI_TESTS_DOC } from "./docs/uiTests.js";
12
14
  import { AI_PACKS } from "./generated/aiPacks.js";
13
15
  // Resources: reference material a model reads on demand (schemas, the
14
16
  // scripting API, the scenario node reference, the diagram component catalog
@@ -40,6 +42,8 @@ export const registerResources = (server, ctx) => {
40
42
  { name: "docs-scripting-db-queries", uri: "callman://docs/scripting/db-queries", title: "Scripting: database queries", description: "How pm.db.* queries work per database provider.", body: () => renderDbQueryReference() },
41
43
  { name: "docs-scripting-templating", uri: "callman://docs/scripting/templating", title: "Templating: {{variables}} and generators", description: "Variable resolution order and dynamic generators ({{$uuid}}, {{$randomInt}} …).", body: () => AI_PACKS.templating ?? "" },
42
44
  { name: "docs-scripting-sandbox", uri: "callman://docs/scripting/sandbox", title: "Scripting: sandbox and feature policy", description: "Globals available in the script sandbox and the feature policy for DB/Kafka capabilities.", body: () => `${AI_PACKS["sandbox-globals"] ?? ""}\n\n${AI_PACKS["feature-policy"] ?? ""}` },
45
+ { name: "docs-ui-tests", uri: "callman://docs/ui-tests", title: "UI tests", description: "UI-test concepts: platforms, header, preconditions and sub-flows, datasets and DB sources, hybrid data steps, settings, where runs happen (server runner vs your desktop app), reports and screenshots, schedules, review, masked secrets, and the recommended workflow.", body: () => UI_TESTS_DOC },
46
+ { name: "docs-ui-test-steps", uri: "callman://docs/ui-test-steps", title: "UI-test step reference", description: "Every UI-test step (web / Android / iOS / hybrid data steps): aliases, platforms, forms, arguments and an example — generated from callman-core, the same catalog the linter uses.", body: () => renderUiTestCommandReference() },
43
47
  { name: "docs-diagram-schema", uri: "callman://docs/diagram-schema", title: "Diagram schema", description: "Every node and edge field, styling (colors, borders, fonts), containers, edge semantics and colors, patch operations and merge rules, and the stored DiagramDocument.", body: () => DIAGRAM_SCHEMA_DOC },
44
48
  ];
45
49
  for (const doc of staticDocs) {
@@ -102,6 +106,13 @@ export const registerResources = (server, ctx) => {
102
106
  const resolved = await resolveScenario(ctx, ws?.id ?? null, variable(variables.scenario));
103
107
  return json(uri, { scenario: scenarioFullView(resolved.item) });
104
108
  });
109
+ server.registerResource("ui-test", new ResourceTemplate("callman://ui-test/{flow}", { list: undefined }), { title: "A UI test", description: "One UI test (id or name): header, settings, dataset (masked), preconditions, numbered steps, lint result and YAML.", mimeType: "application/json" }, async (uri, variables) => {
110
+ const resolved = await resolveUiTest(ctx, null, variable(variables.flow));
111
+ const fresh = await ctx.api.getUiTest(resolved.item.clientId);
112
+ const context = await lintContext(ctx, fresh.workspaceId);
113
+ const lint = lintFlow(fresh.content ?? "", fresh.platform, context, [...Object.keys(fresh.dataset ?? {}), ...Object.keys(fresh.datasetSources ?? {})]);
114
+ return json(uri, { uiTest: await flowDetailView(ctx, fresh, lint, context, { workspaces: await ctx.listWorkspaces() }) });
115
+ });
105
116
  server.registerResource("diagram", new ResourceTemplate("callman://diagram/{diagram}", { list: undefined }), { title: "A diagram", description: "One diagram (id or name) as nodes/edges with edge semantics.", mimeType: "application/json" }, async (uri, variables) => {
106
117
  const ref = variable(variables.diagram);
107
118
  const resolved = await resolveDiagram(ctx, ref);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -18,6 +18,6 @@ export interface CallmanMcpInstance {
18
18
  context: ToolContext;
19
19
  }
20
20
  export declare const SERVER_NAME = "callman";
21
- export declare const SERVER_INSTRUCTIONS = "Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step test scenarios, and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.\nStart with whoami. The token works in every workspace the user belongs to: lists and searches cover all of them unless you pass `workspace`, names are looked up in the default workspace first and then everywhere, and results say which workspace they come from; creating something needs a target (`workspace`, the collection it goes into, or the session default \u2014 use_workspace). Names work as references (collection, folder, request, environment, scenario, diagram, workspace); ambiguous names return candidates. List before creating \u2014 duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Arguments are strict \u2014 an unknown key is an error listing the valid ones. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating or editing requests, callman://docs/contracts before contract checks, callman://docs/scenario-nodes before scenarios, and callman://docs/diagram-schema + callman://diagram/components before diagrams.";
21
+ export declare const SERVER_INSTRUCTIONS = "Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step API test scenarios, UI tests (web / Android / iOS flows), and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.\nStart with whoami. The token works in every workspace the user belongs to: lists and searches cover all of them unless you pass `workspace`, names are looked up in the default workspace first and then everywhere, and results say which workspace they come from; creating something needs a target (`workspace`, the collection it goes into, or the session default \u2014 use_workspace). Names work as references (collection, folder, request, environment, scenario, UI test, diagram, workspace); ambiguous names return candidates. List before creating \u2014 duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Arguments are strict \u2014 an unknown key is an error listing the valid ones. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating or editing requests, callman://docs/contracts before contract checks, callman://docs/scenario-nodes before scenarios, callman://docs/ui-tests (+ callman://docs/ui-test-steps) before UI tests \u2014 they run on the server runner (web) or the user's own desktop app (list_ui_test_devices), and callman://docs/diagram-schema + callman://diagram/components before diagrams.";
22
22
  export declare const createCallmanMcpServer: (options: CreateServerOptions) => CallmanMcpInstance;
23
23
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,mBAAmB,s7CAC0nC,CAAC;AAE3pC,eAAO,MAAM,sBAAsB,GAAI,SAAS,mBAAmB,KAAG,kBAkBrE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,mBAAmB,mpDACwyC,CAAC;AAEz0C,eAAO,MAAM,sBAAsB,GAAI,SAAS,mBAAmB,KAAG,kBAkBrE,CAAC"}
package/dist/server.js CHANGED
@@ -4,8 +4,8 @@ import { registerPrompts } from "./prompts/index.js";
4
4
  import { registerResources } from "./resources/index.js";
5
5
  import { registerAllTools } from "./tools/index.js";
6
6
  export const SERVER_NAME = "callman";
7
- export const SERVER_INSTRUCTIONS = `Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step test scenarios, and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.
8
- Start with whoami. The token works in every workspace the user belongs to: lists and searches cover all of them unless you pass \`workspace\`, names are looked up in the default workspace first and then everywhere, and results say which workspace they come from; creating something needs a target (\`workspace\`, the collection it goes into, or the session default — use_workspace). Names work as references (collection, folder, request, environment, scenario, diagram, workspace); ambiguous names return candidates. List before creating — duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Arguments are strict — an unknown key is an error listing the valid ones. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating or editing requests, callman://docs/contracts before contract checks, callman://docs/scenario-nodes before scenarios, and callman://docs/diagram-schema + callman://diagram/components before diagrams.`;
7
+ export const SERVER_INSTRUCTIONS = `Callman is an API client and test platform: collections of HTTP requests, environments with variables, multi-step API test scenarios, UI tests (web / Android / iOS flows), and system-design diagrams. You act as the user whose token is configured, within that token's permissions and the user's workspace role.
8
+ Start with whoami. The token works in every workspace the user belongs to: lists and searches cover all of them unless you pass \`workspace\`, names are looked up in the default workspace first and then everywhere, and results say which workspace they come from; creating something needs a target (\`workspace\`, the collection it goes into, or the session default — use_workspace). Names work as references (collection, folder, request, environment, scenario, UI test, diagram, workspace); ambiguous names return candidates. List before creating — duplicate collection names are refused. Preview large writes with dryRun: true; deletions need confirm: true and the user's agreement. Environment values are masked unless the token holds environments:reveal and you pass reveal: true; never write a masked value back. Arguments are strict — an unknown key is an error listing the valid ones. Read callman://docs/overview for the conventions, callman://docs/request-schema before creating or editing requests, callman://docs/contracts before contract checks, callman://docs/scenario-nodes before scenarios, callman://docs/ui-tests (+ callman://docs/ui-test-steps) before UI tests — they run on the server runner (web) or the user's own desktop app (list_ui_test_devices), and callman://docs/diagram-schema + callman://diagram/components before diagrams.`;
9
9
  export const createCallmanMcpServer = (options) => {
10
10
  const version = options.version ?? "0.0.0";
11
11
  const context = createToolContext({
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;0pCACunC,CAAC;AAE3pC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA4B,EAAsB,EAAE;IACzF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAChD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAC/F,CAAC;IACF,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsBpD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;w0CACqyC,CAAC;AAEz0C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA4B,EAAsB,EAAE;IACzF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAChD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAC/F,CAAC;IACF,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- export type ToolGroup = "meta" | "workspaces" | "collections" | "requests" | "contracts" | "connections" | "import" | "environments" | "scenarios" | "diagrams" | "run";
1
+ export type ToolGroup = "meta" | "workspaces" | "collections" | "requests" | "contracts" | "connections" | "import" | "environments" | "scenarios" | "uiTests" | "diagrams" | "run";
2
2
  export interface ToolCatalogEntry {
3
3
  name: string;
4
4
  group: ToolGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC;AAExK,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,gBAAgB,EA4E1C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,EAAE,eAAe,OAAO,KAAG,gBAAgB,EAUhG,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAEpL,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,gBAAgB,EA4G1C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,EAAE,eAAe,OAAO,KAAG,gBAAgB,EAUhG,CAAC"}
@@ -62,6 +62,37 @@ export const TOOL_CATALOG = [
62
62
  { name: "submit_scenario", group: "scenarios", scopes: ["scenarios:write"] },
63
63
  { name: "delete_scenario", group: "scenarios", scopes: ["scenarios:delete"], destructive: true },
64
64
  { name: "run_scenario", group: "scenarios", scopes: ["scenarios:run"] },
65
+ // UI tests (web / Android / iOS flows): ui_tests:* scopes. Runs start on the
66
+ // server runner (web) or the user's desktop app (desktop relay).
67
+ { name: "list_ui_tests", group: "uiTests", scopes: ["ui_tests:read"] },
68
+ { name: "get_ui_test", group: "uiTests", scopes: ["ui_tests:read"] },
69
+ { name: "validate_ui_test", group: "uiTests", scopes: ["ui_tests:read"] },
70
+ { name: "create_ui_test", group: "uiTests", scopes: ["ui_tests:write"] },
71
+ { name: "update_ui_test", group: "uiTests", scopes: ["ui_tests:write"] },
72
+ { name: "patch_ui_test_steps", group: "uiTests", scopes: ["ui_tests:write"] },
73
+ { name: "delete_ui_test", group: "uiTests", scopes: ["ui_tests:delete"], destructive: true },
74
+ { name: "list_ui_test_folders", group: "uiTests", scopes: ["ui_tests:read"] },
75
+ { name: "create_ui_test_folder", group: "uiTests", scopes: ["ui_tests:write"] },
76
+ { name: "update_ui_test_folder", group: "uiTests", scopes: ["ui_tests:write"] },
77
+ { name: "delete_ui_test_folder", group: "uiTests", scopes: ["ui_tests:delete"], destructive: true },
78
+ { name: "move_ui_tests", group: "uiTests", scopes: ["ui_tests:write"] },
79
+ { name: "list_ui_test_devices", group: "uiTests", scopes: ["ui_tests:read"] },
80
+ { name: "run_ui_test", group: "uiTests", scopes: ["ui_tests:run"] },
81
+ { name: "run_ui_tests", group: "uiTests", scopes: ["ui_tests:run"] },
82
+ { name: "get_ui_test_run", group: "uiTests", scopes: ["ui_tests:read"] },
83
+ { name: "list_ui_test_runs", group: "uiTests", scopes: ["ui_tests:read"] },
84
+ { name: "cancel_ui_test_run", group: "uiTests", scopes: ["ui_tests:run"] },
85
+ { name: "list_ui_test_schedules", group: "uiTests", scopes: ["ui_tests:read"] },
86
+ { name: "create_ui_test_schedule", group: "uiTests", scopes: ["ui_tests:write"] },
87
+ { name: "update_ui_test_schedule", group: "uiTests", scopes: ["ui_tests:write"] },
88
+ { name: "delete_ui_test_schedule", group: "uiTests", scopes: ["ui_tests:delete"], destructive: true },
89
+ { name: "run_ui_test_schedule_now", group: "uiTests", scopes: ["ui_tests:run"] },
90
+ { name: "submit_ui_test", group: "uiTests", scopes: ["ui_tests:write"] },
91
+ { name: "review_ui_test", group: "uiTests", scopes: ["ui_tests:write"] },
92
+ { name: "list_ui_test_versions", group: "uiTests", scopes: ["ui_tests:read"] },
93
+ { name: "restore_ui_test_version", group: "uiTests", scopes: ["ui_tests:write"] },
94
+ { name: "export_ui_tests", group: "uiTests", scopes: ["ui_tests:read"] },
95
+ { name: "import_ui_tests", group: "uiTests", scopes: ["ui_tests:write"] },
65
96
  { name: "list_diagrams", group: "diagrams", scopes: ["diagrams:read"] },
66
97
  { name: "get_diagram", group: "diagrams", scopes: ["diagrams:read"] },
67
98
  { name: "create_diagram", group: "diagrams", scopes: ["diagrams:write"] },
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6EAA6E;AAC7E,uEAAuE;AACvE,iDAAiD;AAcjD,MAAM,CAAC,MAAM,YAAY,GAAuB;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAE7C,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC3E,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IACpF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACpF,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAEvG,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,EAAE;IACpG,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAClF,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IACtG,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAElG,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACzE,8EAA8E;IAC9E,yEAAyE;IACzE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IAC5G,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACxE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAC9F,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/E,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;IAElF,0EAA0E;IAC1E,0EAA0E;IAC1E,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAChF,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IACrG,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAC7E,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAEpG,6EAA6E;IAC7E,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IAE5G,4EAA4E;IAC5E,+BAA+B;IAC/B,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACpG,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE;IAEtE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IACnF,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE;IACrF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE;IACrF,4EAA4E;IAC5E,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE;IAC5F,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE;IACvF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAEzG,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAC1E,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACxE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC5E,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC5E,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC3E,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE;IAC5E,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAChG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IAEvE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IACvE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;IACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACzE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACxE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;IAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;CACzE,CAAC;AASF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAqB,EAAE,aAAsB,EAAsB,EAAE;IACpG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAClC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;QAC5H,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAC5F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/tools/catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAajD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,SAYpD,CAAC;AAKL,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,EAAE,KAAK,WAAW,KAAG,IAYpE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgBjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,SAYpD,CAAC;AAKL,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,EAAE,KAAK,WAAW,KAAG,IAepE,CAAC"}
@@ -8,6 +8,9 @@ import { registerMetaTools } from "./meta.js";
8
8
  import { registerRequestTools } from "./requests.js";
9
9
  import { registerRunTools } from "./run.js";
10
10
  import { registerScenarioTools } from "./scenarios.js";
11
+ import { registerUiTestAdminTools } from "./uiTestAdmin.js";
12
+ import { registerUiTestRunTools } from "./uiTestRuns.js";
13
+ import { registerUiTestTools } from "./uiTests.js";
11
14
  import { registerWorkspaceTools } from "./workspaces.js";
12
15
  export { TOOL_CATALOG, toolAvailability } from "./catalog.js";
13
16
  // Every tool's arguments are strict: the SDK would otherwise build a
@@ -37,6 +40,9 @@ export const registerAllTools = (host, ctx) => {
37
40
  registerImportTools(server, ctx);
38
41
  registerEnvironmentTools(server, ctx);
39
42
  registerScenarioTools(server, ctx);
43
+ registerUiTestTools(server, ctx);
44
+ registerUiTestRunTools(server, ctx);
45
+ registerUiTestAdminTools(server, ctx);
40
46
  registerDiagramTools(server, ctx);
41
47
  if (ctx.config.allowLocalRun)
42
48
  registerRunTools(server, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AAErF,qEAAqE;AACrE,kEAAkE;AAClE,+EAA+E;AAC/E,8EAA8E;AAC9E,wCAAwC;AACxC,MAAM,UAAU,GAAG,CAAC,MAAe,EAA2B,EAAE,CAC9D,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiB,EAAa,EAAE,CAClE,IAAI,KAAK,CAAC,MAAM,EAAE;IAChB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;QAC5B,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,MAAiC,EAAE,QAAiB,EAAE,EAAE,CACrF,MAAM,CAAC,YAAgD,CACtD,IAAI,EACJ,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EACpI,QAAQ,CACT,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC,CAAC;AAEL,2EAA2E;AAC3E,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,GAAgB,EAAQ,EAAE;IAC1E,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa;QAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ApiRequest, Collection, ConnectionRecord, Diagram, Environment, RequestTreeItem, Scenario, ScenarioFolder, Workspace } from "../client/types.js";
1
+ import type { ApiRequest, Collection, ConnectionRecord, Diagram, Environment, RequestTreeItem, Scenario, ScenarioFolder, UiTestFlow, Workspace } from "../client/types.js";
2
2
  import type { ToolContext } from "../context.js";
3
3
  import { type ConnectionResolver } from "../domain/requestIntegrations.js";
4
4
  import { type FlatFolder, type Resolved } from "../domain/resolve.js";
@@ -57,6 +57,24 @@ export declare const resolveScenario: (ctx: ToolContext, ws: string | null, ref:
57
57
  export declare const resolveScenarioFolder: (ctx: ToolContext, ws: string | null, ref: string) => Promise<Resolved<ScenarioFolder>>;
58
58
  export declare const loadDiagrams: (ctx: ToolContext) => Promise<Diagram[]>;
59
59
  export declare const resolveDiagram: (ctx: ToolContext, ref: string, options?: LookupOptions) => Promise<Resolved<Diagram>>;
60
+ export type UiTestRef = UiTestFlow & {
61
+ id: string;
62
+ };
63
+ export declare const loadUiTests: (ctx: ToolContext) => Promise<UiTestFlow[]>;
64
+ export interface FlatUiTestFolder {
65
+ id: string;
66
+ name: string;
67
+ parentId: string | null;
68
+ path: string;
69
+ depth: number;
70
+ workspaceId: string;
71
+ groupId: string | null;
72
+ sortOrder: number;
73
+ }
74
+ export declare const loadUiTestFolders: (ctx: ToolContext) => Promise<FlatUiTestFolder[]>;
75
+ export declare const uiTestFolderSubtree: (folders: FlatUiTestFolder[], folderId: string) => Set<string>;
76
+ export declare const resolveUiTestFolder: (ctx: ToolContext, workspace: string | null | undefined, ref: string, options?: LookupOptions) => Promise<Resolved<FlatUiTestFolder>>;
77
+ export declare const resolveUiTest: (ctx: ToolContext, workspace: string | null | undefined, ref: string, options?: LookupOptions) => Promise<Resolved<UiTestRef>>;
60
78
  export declare const loadConnections: (ctx: ToolContext, ws: string) => Promise<ConnectionRecord[]>;
61
79
  export declare const connectionResolverFor: (ctx: ToolContext, ws: string, needed: boolean) => Promise<ConnectionResolver | undefined>;
62
80
  export declare const sameName: (a: string, b: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"lookups.d.ts","sourceRoot":"","sources":["../../src/tools/lookups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookups.d.ts","sourceRoot":"","sources":["../../src/tools/lookups.ts"],"names":[],"mappings":"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"}
@@ -227,6 +227,83 @@ export const resolveDiagram = async (ctx, ref, options = {}) => {
227
227
  // The list carries the document too, but fetch by id for the freshest copy.
228
228
  return { ...resolved, item: await ctx.api.getDiagram(resolved.item.id) };
229
229
  };
230
+ export const loadUiTests = (ctx) => ctx.cache.getOrSet("uitests:list", () => ctx.api.listUiTests(true));
231
+ export const loadUiTestFolders = (ctx) => ctx.cache.getOrSet("uitests:folders", async () => {
232
+ const raw = await ctx.api.listUiTestFolders();
233
+ const byId = new Map(raw.map((folder) => [folder.clientId, folder]));
234
+ const pathOf = (folder) => {
235
+ const names = [folder.name];
236
+ const seen = new Set([folder.clientId]);
237
+ let parent = folder.parentId ? byId.get(folder.parentId) : undefined;
238
+ while (parent && !seen.has(parent.clientId)) {
239
+ names.unshift(parent.name);
240
+ seen.add(parent.clientId);
241
+ parent = parent.parentId ? byId.get(parent.parentId) : undefined;
242
+ }
243
+ return { path: names.join("/"), depth: names.length - 1 };
244
+ };
245
+ return raw.map((folder) => ({
246
+ id: folder.clientId,
247
+ name: folder.name,
248
+ parentId: folder.parentId ?? null,
249
+ ...pathOf(folder),
250
+ workspaceId: folder.workspaceId,
251
+ groupId: folder.groupId ?? null,
252
+ sortOrder: folder.sortOrder ?? 0,
253
+ }));
254
+ });
255
+ // Folder ids of `folderId` and every folder below it.
256
+ export const uiTestFolderSubtree = (folders, folderId) => {
257
+ const out = new Set([folderId]);
258
+ let grew = true;
259
+ while (grew) {
260
+ grew = false;
261
+ for (const folder of folders) {
262
+ if (folder.parentId && out.has(folder.parentId) && !out.has(folder.id)) {
263
+ out.add(folder.id);
264
+ grew = true;
265
+ }
266
+ }
267
+ }
268
+ return out;
269
+ };
270
+ const workspaceFilter = async (ctx, workspace) => workspace && workspace.trim() && !isAllWorkspaces(workspace) ? ctx.resolveWorkspace(workspace) : null;
271
+ export const resolveUiTestFolder = async (ctx, workspace, ref, options = {}) => {
272
+ const ws = await workspaceFilter(ctx, workspace);
273
+ const folders = (await loadUiTestFolders(ctx)).filter((folder) => !ws || folder.workspaceId === ws.id);
274
+ return resolveRef("UI-test folder", ref, folders, { describe: (folder) => ({ path: folder.path }), aliases: (folder) => [folder.path], exact: options.exact });
275
+ };
276
+ // A flow by clientId or name (unique across the workspaces in scope). The
277
+ // cached list may miss a flow created a moment ago — an unknown ref is tried
278
+ // as a clientId before giving up.
279
+ export const resolveUiTest = async (ctx, workspace, ref, options = {}) => {
280
+ const ws = await workspaceFilter(ctx, workspace);
281
+ const [flows, workspaces, folders] = await Promise.all([loadUiTests(ctx), ctx.listWorkspaces(), loadUiTestFolders(ctx).catch(() => [])]);
282
+ const workspaceName = new Map(workspaces.map((entry) => [entry.id, entry.name]));
283
+ const folderPath = new Map(folders.map((folder) => [folder.id, folder.path]));
284
+ const items = flows.filter((flow) => !ws || flow.workspaceId === ws.id).map((flow) => ({ ...flow, id: flow.clientId }));
285
+ try {
286
+ return resolveRef("UI test", ref, items, {
287
+ describe: (flow) => ({ platform: flow.platform, folder: flow.folderId ? (folderPath.get(flow.folderId) ?? null) : null, ...(workspaces.length > 1 ? { workspace: workspaceName.get(flow.workspaceId) ?? flow.workspaceId } : {}) }),
288
+ exact: options.exact,
289
+ });
290
+ }
291
+ catch (error) {
292
+ if (!(error instanceof ToolInputError) || error.code !== "REF_NOT_FOUND" || /\s/.test(ref.trim()))
293
+ throw error;
294
+ try {
295
+ const fresh = await ctx.api.getUiTest(ref.trim());
296
+ if (ws && fresh.workspaceId !== ws.id)
297
+ throw error;
298
+ return { item: { ...fresh, id: fresh.clientId }, matched: "id" };
299
+ }
300
+ catch (lookup) {
301
+ if (lookup instanceof CallmanApiError && (lookup.status === 404 || lookup.status === 400))
302
+ throw error;
303
+ throw lookup;
304
+ }
305
+ }
306
+ };
230
307
  export const loadConnections = (ctx, ws) => ctx.cache.getOrSet(`connections:${ws}`, () => ctx.api.listConnections(ws));
231
308
  // Connection resolver for request integration steps — loaded only when a
232
309
  // request actually names a connection.