common-qa-mcp 0.2.0 → 0.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 (110) hide show
  1. package/README.md +6 -0
  2. package/dist/adapters/factory.d.ts +17 -7
  3. package/dist/adapters/factory.d.ts.map +1 -1
  4. package/dist/adapters/factory.js +44 -7
  5. package/dist/adapters/factory.js.map +1 -1
  6. package/dist/adapters/http.d.ts +50 -0
  7. package/dist/adapters/http.d.ts.map +1 -0
  8. package/dist/adapters/http.js +108 -0
  9. package/dist/adapters/http.js.map +1 -0
  10. package/dist/adapters/remoteMcp/adapter.d.ts +16 -2
  11. package/dist/adapters/remoteMcp/adapter.d.ts.map +1 -1
  12. package/dist/adapters/remoteMcp/adapter.js +34 -5
  13. package/dist/adapters/remoteMcp/adapter.js.map +1 -1
  14. package/dist/adapters/simplifyqa/adapter.d.ts +437 -0
  15. package/dist/adapters/simplifyqa/adapter.d.ts.map +1 -0
  16. package/dist/adapters/simplifyqa/adapter.js +3097 -0
  17. package/dist/adapters/simplifyqa/adapter.js.map +1 -0
  18. package/dist/adapters/simplifyqa/mapper.d.ts +95 -0
  19. package/dist/adapters/simplifyqa/mapper.d.ts.map +1 -0
  20. package/dist/adapters/simplifyqa/mapper.js +858 -0
  21. package/dist/adapters/simplifyqa/mapper.js.map +1 -0
  22. package/dist/adapters/types.d.ts +168 -5
  23. package/dist/adapters/types.d.ts.map +1 -1
  24. package/dist/adapters/walnut/adapter.d.ts +235 -0
  25. package/dist/adapters/walnut/adapter.d.ts.map +1 -0
  26. package/dist/adapters/walnut/adapter.js +1114 -0
  27. package/dist/adapters/walnut/adapter.js.map +1 -0
  28. package/dist/adapters/walnut/mapper.d.ts +30 -9
  29. package/dist/adapters/walnut/mapper.d.ts.map +1 -1
  30. package/dist/adapters/walnut/mapper.js +149 -24
  31. package/dist/adapters/walnut/mapper.js.map +1 -1
  32. package/dist/config.d.ts +38 -14
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +73 -19
  35. package/dist/config.js.map +1 -1
  36. package/dist/connection.d.ts +3 -2
  37. package/dist/connection.d.ts.map +1 -1
  38. package/dist/connection.js +44 -15
  39. package/dist/connection.js.map +1 -1
  40. package/dist/domain/types.d.ts +680 -5
  41. package/dist/domain/types.d.ts.map +1 -1
  42. package/dist/drafts/store.d.ts +4 -1
  43. package/dist/drafts/store.d.ts.map +1 -1
  44. package/dist/drafts/store.js +7 -2
  45. package/dist/drafts/store.js.map +1 -1
  46. package/dist/initAgents.d.ts.map +1 -1
  47. package/dist/initAgents.js +48 -18
  48. package/dist/initAgents.js.map +1 -1
  49. package/dist/requestConnection.d.ts +5 -3
  50. package/dist/requestConnection.d.ts.map +1 -1
  51. package/dist/requestConnection.js +11 -5
  52. package/dist/requestConnection.js.map +1 -1
  53. package/dist/server.d.ts.map +1 -1
  54. package/dist/server.js +47 -1
  55. package/dist/server.js.map +1 -1
  56. package/dist/tools/backlog.tools.d.ts +13 -0
  57. package/dist/tools/backlog.tools.d.ts.map +1 -0
  58. package/dist/tools/backlog.tools.js +399 -0
  59. package/dist/tools/backlog.tools.js.map +1 -0
  60. package/dist/tools/connection.tools.js +5 -5
  61. package/dist/tools/connection.tools.js.map +1 -1
  62. package/dist/tools/defects.tools.d.ts +7 -0
  63. package/dist/tools/defects.tools.d.ts.map +1 -0
  64. package/dist/tools/defects.tools.js +82 -0
  65. package/dist/tools/defects.tools.js.map +1 -0
  66. package/dist/tools/discovery.tools.d.ts.map +1 -1
  67. package/dist/tools/discovery.tools.js +951 -43
  68. package/dist/tools/discovery.tools.js.map +1 -1
  69. package/dist/tools/formulas.tools.d.ts +7 -0
  70. package/dist/tools/formulas.tools.d.ts.map +1 -0
  71. package/dist/tools/formulas.tools.js +56 -0
  72. package/dist/tools/formulas.tools.js.map +1 -0
  73. package/dist/tools/heal.tools.d.ts +17 -0
  74. package/dist/tools/heal.tools.d.ts.map +1 -0
  75. package/dist/tools/heal.tools.js +76 -0
  76. package/dist/tools/heal.tools.js.map +1 -0
  77. package/dist/tools/markdown.d.ts +3 -3
  78. package/dist/tools/markdown.d.ts.map +1 -1
  79. package/dist/tools/markdown.js +89 -18
  80. package/dist/tools/markdown.js.map +1 -1
  81. package/dist/tools/objects.tools.d.ts +7 -0
  82. package/dist/tools/objects.tools.d.ts.map +1 -0
  83. package/dist/tools/objects.tools.js +201 -0
  84. package/dist/tools/objects.tools.js.map +1 -0
  85. package/dist/tools/recording.tools.d.ts.map +1 -1
  86. package/dist/tools/recording.tools.js +92 -12
  87. package/dist/tools/recording.tools.js.map +1 -1
  88. package/dist/tools/run.tools.d.ts.map +1 -1
  89. package/dist/tools/run.tools.js +464 -39
  90. package/dist/tools/run.tools.js.map +1 -1
  91. package/dist/tools/schemas.d.ts +21 -4
  92. package/dist/tools/schemas.d.ts.map +1 -1
  93. package/dist/tools/schemas.js +14 -1
  94. package/dist/tools/schemas.js.map +1 -1
  95. package/dist/tools/storySync.tools.d.ts +66 -0
  96. package/dist/tools/storySync.tools.d.ts.map +1 -0
  97. package/dist/tools/storySync.tools.js +213 -0
  98. package/dist/tools/storySync.tools.js.map +1 -0
  99. package/dist/tools/tasks.tools.d.ts +7 -0
  100. package/dist/tools/tasks.tools.d.ts.map +1 -0
  101. package/dist/tools/tasks.tools.js +75 -0
  102. package/dist/tools/tasks.tools.js.map +1 -0
  103. package/dist/tools/testcase.tools.d.ts.map +1 -1
  104. package/dist/tools/testcase.tools.js +162 -101
  105. package/dist/tools/testcase.tools.js.map +1 -1
  106. package/dist/tools/testdata.tools.d.ts +7 -0
  107. package/dist/tools/testdata.tools.d.ts.map +1 -0
  108. package/dist/tools/testdata.tools.js +249 -0
  109. package/dist/tools/testdata.tools.js.map +1 -0
  110. package/package.json +3 -3
package/dist/config.js CHANGED
@@ -64,6 +64,9 @@ function normalizeLayer(raw) {
64
64
  const baseUrl = asString(raw['baseUrl']);
65
65
  if (baseUrl)
66
66
  layer.baseUrl = baseUrl;
67
+ const userId = asString(raw['userId']);
68
+ if (userId)
69
+ layer.userId = userId;
67
70
  return layer;
68
71
  }
69
72
  function parseEnvLayer(env) {
@@ -80,6 +83,7 @@ function parseEnvLayer(env) {
80
83
  walnutUiOrigin: env['QA_MCP_WALNUT_UI'],
81
84
  agentUrl: env['QA_MCP_AGENT_URL'],
82
85
  baseUrl: env['QA_BASE_URL'],
86
+ userId: env['QA_MCP_USER_ID'],
83
87
  });
84
88
  }
85
89
  // Reads the named connection out of ~/.common-qa-mcp/config.json. An absent
@@ -107,45 +111,95 @@ function applyLayer(target, layer) {
107
111
  target[key] = value;
108
112
  }
109
113
  }
110
- // Only url + token are required to be CONNECTED. projectId is intentionally NOT here: a session may
111
- // connect with no project selected, then the user picks one at runtime (list_projects ->
112
- // qa_switch_project). Hardcoding a project in config defeats the "any project, any client" model.
113
- const REQUIRED_FIELDS = [
114
- ['url', 'QA_MCP_URL'],
115
- ['token', 'QA_MCP_TOKEN'],
116
- ];
114
+ /**
115
+ * A token "looks like a JWT" when it is exactly three non-empty base64url segments separated by dots
116
+ * (header.payload.signature). Used to AUTO-DETECT the auth mode: a Walnut user JWT → 'jwt' (Bearer +
117
+ * x-project-id + x-user-id), anything else (an MCP API key) → 'key' (Bearer only). No decode/verify —
118
+ * shape alone is enough to pick the header set; the backend re-verifies the token itself.
119
+ */
120
+ export function looksLikeJwt(token) {
121
+ const parts = token.split('.');
122
+ return parts.length === 3 && parts.every((p) => p.length > 0 && /^[A-Za-z0-9_-]+$/.test(p));
123
+ }
124
+ /** Decode a string claim from a JWT payload WITHOUT verifying the signature. Verification is the
125
+ * backend's job; this only extracts embedded metadata (e.g. SQA tokens carry a `url` claim naming
126
+ * the SimplifyQA backend). Returns undefined on any parse failure — never throws. */
127
+ export function jwtStringClaim(token, name) {
128
+ if (!token)
129
+ return undefined;
130
+ try {
131
+ const t = token.startsWith('Bearer ') ? token.slice(7).trim() : token.trim();
132
+ const seg = t.split('.')[1];
133
+ if (!seg)
134
+ return undefined;
135
+ let b64 = seg.replace(/-/g, '+').replace(/_/g, '/');
136
+ b64 += '='.repeat((4 - (b64.length % 4)) % 4);
137
+ const claims = JSON.parse(Buffer.from(b64, 'base64').toString('utf8'));
138
+ const v = claims[name];
139
+ return typeof v === 'string' && v.length > 0 ? v : undefined;
140
+ }
141
+ catch {
142
+ return undefined;
143
+ }
144
+ }
117
145
  /**
118
146
  * Resolution order (spec §12): defaults -> ~/.common-qa-mcp/config.json
119
147
  * (named connections; cliFlags.connection selects) -> QA_MCP_* env -> CLI flags.
120
148
  * Each layer only overrides keys it actually sets.
121
149
  *
122
- * Credentials (url/token) are optional overall:
123
- * - BOTH url+token ABSENT -> OfflineQaConfig, no throw. The normal, supported way
124
- * to run with no backend at all (author drafts, hand off to the editor).
125
- * - ONE of url/token present but not the other -> misconfiguration, throws naming
126
- * the missing var.
127
- * - url+token present -> ConnectedQaConfig. projectId is OPTIONAL: absent means
128
- * "connected, no project selected yet" and the user chooses one at runtime.
129
- * Never logs `token` -- callers must go through `mask()` from log.ts if they log
130
- * config at all.
150
+ * Credentials are optional overall (design note §3):
151
+ * - token AND baseUrl AND url ALL ABSENT -> OfflineQaConfig, no throw. The normal, supported way to
152
+ * run with no backend at all (author drafts, hand off to the editor).
153
+ * - a PARTIAL set (a baseUrl/url but no token, or a token but neither baseUrl nor url) ->
154
+ * misconfiguration, throws naming what is missing.
155
+ * - token + at least one of (baseUrl | url) -> ConnectedQaConfig. `baseUrl` (QA_BASE_URL) is the
156
+ * Walnut backend for direct data ops; `url` (QA_MCP_URL) is the agent /mcp endpoint (recording +
157
+ * the legacy/SimplifyQA forwarder). projectId is OPTIONAL: absent means "connected, no project
158
+ * selected yet" and the user chooses one at runtime.
159
+ *
160
+ * Auth mode is AUTO-DETECTED from the token shape (jwt vs key) unless QA_MCP_WALNUT_AUTH is set
161
+ * explicitly (env/config-file/CLI), which always wins. Never logs `token` -- callers must go through
162
+ * `mask()` from log.ts if they log config at all.
131
163
  */
132
164
  export function resolveConfig(env, cliFlags = {}) {
133
165
  const merged = {
134
- walnutAuth: 'key',
135
166
  caps: new Set(DEFAULT_CAPS),
136
167
  };
137
168
  applyLayer(merged, readConfigFileLayer(cliFlags.connection));
138
169
  applyLayer(merged, parseEnvLayer(env));
139
170
  applyLayer(merged, cliFlags);
140
- const missing = REQUIRED_FIELDS.filter(([key]) => !merged[key]).map(([, envVar]) => envVar);
141
- if (missing.length === REQUIRED_FIELDS.length) {
171
+ // Auth mode: an explicit QA_MCP_WALNUT_AUTH (env/config-file/CLI) always wins; otherwise auto-detect
172
+ // from the token — a JWT-shaped token → 'jwt', anything else → 'key'. Offline (no token) keeps the
173
+ // harmless 'key' default. Computed AFTER the token is known (below the layer merge).
174
+ merged.walnutAuth = merged.walnutAuth ?? (merged.token && looksLikeJwt(merged.token) ? 'jwt' : 'key');
175
+ const hasToken = !!merged.token;
176
+ const hasUrl = !!merged.url;
177
+ const hasBaseUrl = !!merged.baseUrl;
178
+ if (!hasToken && !hasUrl && !hasBaseUrl) {
142
179
  // No credentials supplied at all -- offline is the intended, error-free outcome.
143
180
  return { ...merged, mode: 'offline' };
144
181
  }
182
+ // A partial set is a misconfiguration -- name exactly what is missing.
183
+ const missing = [];
184
+ if (!hasToken)
185
+ missing.push('QA_MCP_TOKEN');
186
+ if (!hasUrl && !hasBaseUrl)
187
+ missing.push('QA_BASE_URL or QA_MCP_URL');
145
188
  if (missing.length) {
146
189
  throw new Error(`Missing required configuration: set ${missing.join(', ')} (via environment variables, ` +
147
190
  `~/.common-qa-mcp/config.json, or CLI flags).`);
148
191
  }
192
+ // SimplifyQA specifically needs a resolvable base URL — either QA_BASE_URL, or a JWT whose
193
+ // payload carries the `url` claim. Without one, the factory would silently fall back to the
194
+ // agent-forwarder (RemoteMcpAdapter), and every common tool (list_projects, tc_list, …) would
195
+ // require the local agent to be running just to make what are really direct REST calls. Fail loud
196
+ // at boot instead so the user fixes the config.
197
+ if (merged.provider === 'simplifyqa' && !hasBaseUrl && !jwtStringClaim(merged.token, 'url')) {
198
+ throw new Error('SimplifyQA needs a base URL for direct REST calls. Set QA_BASE_URL in mcp.json (or ' +
199
+ '~/.common-qa-mcp/config.json), or use a token JWT that embeds the "url" claim. ' +
200
+ 'QA_MCP_URL (the local agent) alone is not enough — read-only tools (list_projects, ' +
201
+ 'tc_list, story_list, …) call the SimplifyQA backend directly and do not need the agent.');
202
+ }
149
203
  return { ...merged, mode: 'connected' };
150
204
  }
151
205
  // A probe that throws (DNS failure, TLS failure, timeout, connection refused) is not a
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,9 @@
30
30
  import type { ProviderAdapter } from './adapters/types.js';
31
31
  import type { QaConfig } from './config.js';
32
32
  export interface ConnectRequest {
33
- /** Walnut app URL, e.g. `https://app.walnut.ai` or a self-hosted origin. */
34
- url: string;
33
+ /** The MCP endpoint to hop to: the local agent `/mcp` (walnut recording) or the SimplifyQA `/mcp`.
34
+ * OPTIONAL for a walnut DIRECT connection — pass `baseUrl` (the backend) instead/as well. */
35
+ url?: string;
35
36
  /** Bearer token: a Walnut session JWT, or an MCP API key. */
36
37
  token: string;
37
38
  /** Required for a JWT (the token alone carries no project context); optional for an API key,
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM/D,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd;uDACmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;2CACuC;IACvC,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB;qGACiG;IACjG,OAAO,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAClC;qFACiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sBACkB;IAClB,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;CACvD;AAED,qBAAa,YAAY;IAOX,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAyB;IACvC,kGAAkG;IAClG,OAAO,CAAC,SAAS,CAAyB;gBAEb,OAAO,EAAE,QAAQ;IAoB9C,uFAAuF;IACvF,OAAO,IAAI,eAAe,GAAG,IAAI;IAOjC,MAAM,IAAI,QAAQ;IAIlB,QAAQ,IAAI,qBAAqB;IAajC;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA0DvG;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2B3G;+DAC2D;IAC3D,UAAU,IAAI,IAAI;CAOnB"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAqB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO/D,MAAM,WAAW,cAAc;IAC7B;kGAC8F;IAC9F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd;uDACmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;2CACuC;IACvC,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB;qGACiG;IACjG,OAAO,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAClC;qFACiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sBACkB;IAClB,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;CACvD;AAED,qBAAa,YAAY;IAOX,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAyB;IACvC,kGAAkG;IAClG,OAAO,CAAC,SAAS,CAAyB;gBAEb,OAAO,EAAE,QAAQ;IAuB9C,uFAAuF;IACvF,OAAO,IAAI,eAAe,GAAG,IAAI;IAOjC,MAAM,IAAI,QAAQ;IAIlB,QAAQ,IAAI,qBAAqB;IAgBjC;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAmFvG;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA2B3G;+DAC2D;IAC3D,UAAU,IAAI,IAAI;CAOnB"}
@@ -28,6 +28,7 @@
28
28
  * different orgs through the same agent would share it. Documented rather than pretended away.
29
29
  */
30
30
  import { createAdapter } from './adapters/factory.js';
31
+ import { jwtStringClaim, looksLikeJwt } from './config.js';
31
32
  import { readLastProject, writeLastProject } from './projectStore.js';
32
33
  import { createLogger } from './vendor/logger.js';
33
34
  const logger = createLogger('QaConnection');
@@ -47,10 +48,13 @@ export class QaConnection {
47
48
  // is since stale, project-scoped calls fail cleanly and the user can switch — the connection
48
49
  // itself is fine.
49
50
  if (startup.mode === 'connected' && !startup.projectId) {
50
- const remembered = readLastProject(startup.url);
51
+ // Key the remembered project by the effective backend base: `url` (agent /mcp) for the
52
+ // legacy/SQA forwarder, else `baseUrl` (QA_BASE_URL) for the direct walnut path.
53
+ const key = startup.url ?? startup.baseUrl ?? '';
54
+ const remembered = readLastProject(key);
51
55
  if (remembered) {
52
56
  this.current = { ...startup, projectId: remembered };
53
- logger.info(`Restored last-selected project ${remembered} for ${startup.url}`);
57
+ logger.info(`Restored last-selected project ${remembered} for ${key}`);
54
58
  }
55
59
  }
56
60
  }
@@ -69,9 +73,12 @@ export class QaConnection {
69
73
  const c = this.current;
70
74
  if (c.mode !== 'connected')
71
75
  return { mode: 'offline', source: this.source };
76
+ // The effective backend base: `url` (agent /mcp) for the legacy/SQA forwarder, else `baseUrl`
77
+ // (QA_BASE_URL) for the direct walnut path. Omitted entirely if somehow neither is set.
78
+ const effectiveUrl = c.url ?? c.baseUrl;
72
79
  return {
73
80
  mode: 'connected',
74
- url: c.url,
81
+ ...(effectiveUrl ? { url: effectiveUrl } : {}),
75
82
  projectId: c.projectId ?? '', // '' = connected but no project selected yet
76
83
  auth: c.walnutAuth === 'key' ? 'key' : 'jwt',
77
84
  token: `present (${c.token.length} chars)`,
@@ -86,18 +93,41 @@ export class QaConnection {
86
93
  * and is visible to that token. On failure NOTHING changes.
87
94
  */
88
95
  async connect(req) {
89
- const url = req.url?.trim();
90
96
  // Tolerate a pasted/`headers.Authorization`-style "Bearer <token>": the field is labelled
91
97
  // "Bearer token" and MCP-client header values carry the scheme, but we add `Bearer ` ourselves
92
98
  // downstream -- so keep only the raw credential and never send "Bearer Bearer ...".
93
99
  const token = (req.token ?? '').trim().replace(/^Bearer\s+/i, '').trim();
94
- if (!url || !token)
95
- return { ok: false, error: 'url and token are both required.' };
96
- if (!/^https?:\/\//i.test(url)) {
97
- return { ok: false, error: `url must be absolute and start with http:// or https:// -- got "${url}".` };
98
- }
100
+ const url = req.url?.trim();
101
+ const baseUrl = req.baseUrl?.trim().replace(/\/+$/, '');
99
102
  const product = req.product === 'simplifyqa' ? 'simplifyqa' : 'walnut';
100
- const auth = req.auth === 'key' ? 'key' : 'jwt';
103
+ if (!token)
104
+ return { ok: false, error: 'token is required.' };
105
+ // A connection needs an endpoint. `baseUrl` (QA_BASE_URL) is the product BACKEND REST base for
106
+ // direct data ops; `url` (QA_MCP_URL) is an MCP endpoint to hop to — the local agent (recording,
107
+ // not-yet-ported writes). SimplifyQA specifically must have baseUrl (or a JWT embedding `url`)
108
+ // so common tools (list_projects, tc_list, …) speak SQA REST directly and don't require the
109
+ // agent to be running.
110
+ if (product === 'simplifyqa' && !baseUrl && !jwtStringClaim(token, 'url')) {
111
+ return {
112
+ ok: false,
113
+ error: 'SimplifyQA needs a base URL: pass baseUrl=<your SimplifyQA URL>, or use a JWT that ' +
114
+ 'embeds the "url" claim. The agent url alone is not enough — read-only tools ' +
115
+ '(list_projects, tc_list, story_list, …) call the SimplifyQA backend directly and should ' +
116
+ 'keep working even when the local agent is off.',
117
+ };
118
+ }
119
+ if (!url && !baseUrl) {
120
+ return { ok: false, error: 'Provide baseUrl (the product backend) and/or url (the agent /mcp) — at least one is required.' };
121
+ }
122
+ if (url && !/^https?:\/\//i.test(url)) {
123
+ return { ok: false, error: `url must be absolute and start with http:// or https:// — got "${url}".` };
124
+ }
125
+ if (baseUrl && !/^https?:\/\//i.test(baseUrl)) {
126
+ return { ok: false, error: `baseUrl must be absolute and start with http:// or https:// — got "${baseUrl}".` };
127
+ }
128
+ // Auth mode: explicit wins; else auto-detect from the token shape (JWT vs key) — same rule as the
129
+ // startup config (config.ts looksLikeJwt). A JWT sends x-project-id; a key sends Authorization only.
130
+ const auth = req.auth === 'key' ? 'key' : req.auth === 'jwt' ? 'jwt' : (looksLikeJwt(token) ? 'jwt' : 'key');
101
131
  const projectId = req.projectId?.trim() ?? '';
102
132
  // The JWT-needs-projectId rule is Walnut-specific (it sends x-project-id). SQA forwards the token
103
133
  // to its own MCP, which resolves tenant context however it likes, so we don't force it there.
@@ -108,17 +138,16 @@ export class QaConnection {
108
138
  + 'Pass projectId, or auth:"key" if this is an MCP API key.',
109
139
  };
110
140
  }
111
- const baseUrl = req.baseUrl?.trim().replace(/\/+$/, '');
112
141
  const candidate = {
113
142
  ...this.startup,
114
143
  mode: 'connected',
115
144
  provider: product,
116
- url: url.replace(/\/+$/, ''),
117
145
  token,
118
146
  // An API key is project-scoped server-side; keep whatever the startup config had so
119
147
  // project-scoped helpers still have something to name, but never require it.
120
148
  projectId: projectId || (this.startup.projectId ?? ''),
121
149
  walnutAuth: auth,
150
+ ...(url ? { url: url.replace(/\/+$/, '') } : {}),
122
151
  ...(baseUrl ? { baseUrl } : {}),
123
152
  };
124
153
  const probe = createAdapter(candidate);
@@ -133,9 +162,9 @@ export class QaConnection {
133
162
  // Remember the project so a later restart reboots into it (see projectStore). Only when one
134
163
  // was actually chosen — a key-scoped connect may carry none.
135
164
  if (candidate.projectId)
136
- writeLastProject(candidate.url, candidate.projectId);
165
+ writeLastProject(candidate.url ?? candidate.baseUrl ?? '', candidate.projectId);
137
166
  // URL and project only -- never the token, not even truncated.
138
- logger.info(`Connected to ${candidate.url} (project ${candidate.projectId || '(key-scoped)'}, auth ${auth})`);
167
+ logger.info(`Connected to ${candidate.url ?? candidate.baseUrl} (project ${candidate.projectId || '(key-scoped)'}, auth ${auth})`);
139
168
  return { ok: true, info };
140
169
  }
141
170
  catch (err) {
@@ -169,7 +198,7 @@ export class QaConnection {
169
198
  this.cachedFor = candidate;
170
199
  this.source = 'runtime-connect';
171
200
  // Remember it so a restart reboots into this project instead of project-less (projectStore).
172
- writeLastProject(candidate.url, pid);
201
+ writeLastProject(candidate.url ?? candidate.baseUrl ?? '', pid);
173
202
  logger.info(`Switched to project ${pid}`);
174
203
  return { ok: true, info };
175
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAkC5C,MAAM,OAAO,YAAY;IAOvB,YAA6B,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;QAH9C,kGAAkG;QAC1F,cAAS,GAAoB,IAAI,CAAC;QAGxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,4FAA4F;QAC5F,sFAAsF;QACtF,8FAA8F;QAC9F,2FAA2F;QAC3F,gGAAgG;QAChG,6FAA6F;QAC7F,kBAAkB;QAClB,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvD,uFAAuF;YACvF,iFAAiF;YACjF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,kCAAkC,UAAU,QAAQ,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5E,8FAA8F;QAC9F,wFAAwF;QACxF,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,6CAA6C;YAC3E,IAAI,EAAE,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YAC5C,KAAK,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,GAAmB;QAC/B,0FAA0F;QAC1F,+FAA+F;QAC/F,oFAAoF;QACpF,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAA4B,GAAG,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhG,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;QAC9D,+FAA+F;QAC/F,iGAAiG;QACjG,+FAA+F;QAC/F,4FAA4F;QAC5F,uBAAuB;QACvB,IAAI,OAAO,KAAK,YAAY,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EACH,qFAAqF;oBACrF,8EAA8E;oBAC9E,0FAA0F;oBAC1F,gDAAgD;aACnD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+FAA+F,EAAE,CAAC;QAC/H,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kEAAkE,GAAG,IAAI,EAAE,CAAC;QACzG,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sEAAsE,OAAO,IAAI,EAAE,CAAC;QACjH,CAAC;QAED,kGAAkG;QAClG,qGAAqG;QACrG,MAAM,IAAI,GAAkB,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5H,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9C,kGAAkG;QAClG,8FAA8F;QAC9F,IAAI,OAAO,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,iFAAiF;sBACpF,0DAA0D;aAC/D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAsB;YACnC,GAAI,IAAI,CAAC,OAA6B;YACtC,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,oFAAoF;YACpF,6EAA6E;YAC7E,SAAS,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YACtD,UAAU,EAAE,IAAI;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC;QAEF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2CAA2C,OAAO,IAAI,EAAE,CAAC;QAChG,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;YAChC,4FAA4F;YAC5F,6DAA6D;YAC7D,IAAI,SAAS,CAAC,SAAS;gBAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACzG,+DAA+D;YAC/D,MAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,aAAa,SAAS,CAAC,SAAS,IAAI,cAAc,UAAU,IAAI,GAAG,CAAC,CAAC;YACnI,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAChE,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAC;QAC5F,CAAC;QACD,MAAM,SAAS,GAAsB,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2CAA2C,GAAG,IAAI,EAAE,CAAC;QAC5F,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;YAChC,6FAA6F;YAC7F,gBAAgB,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;+DAC2D;IAC3D,UAAU;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;CACF"}