@trusty-squire/mcp 0.6.15-rc.8 → 0.7.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 (48) hide show
  1. package/dist/bin.js +8 -0
  2. package/dist/bin.js.map +1 -1
  3. package/dist/bot/agent.d.ts +39 -0
  4. package/dist/bot/agent.d.ts.map +1 -1
  5. package/dist/bot/agent.js +1341 -20
  6. package/dist/bot/agent.js.map +1 -1
  7. package/dist/bot/browser.d.ts +13 -0
  8. package/dist/bot/browser.d.ts.map +1 -1
  9. package/dist/bot/browser.js +573 -31
  10. package/dist/bot/browser.js.map +1 -1
  11. package/dist/bot/captcha-solver-2captcha.d.ts +42 -0
  12. package/dist/bot/captcha-solver-2captcha.d.ts.map +1 -0
  13. package/dist/bot/captcha-solver-2captcha.js +144 -0
  14. package/dist/bot/captcha-solver-2captcha.js.map +1 -0
  15. package/dist/bot/index.d.ts +2 -0
  16. package/dist/bot/index.d.ts.map +1 -1
  17. package/dist/bot/index.js +2 -0
  18. package/dist/bot/index.js.map +1 -1
  19. package/dist/bot/llm-client.d.ts +2 -1
  20. package/dist/bot/llm-client.d.ts.map +1 -1
  21. package/dist/bot/llm-client.js +19 -2
  22. package/dist/bot/llm-client.js.map +1 -1
  23. package/dist/bot/notify-api.d.ts +2 -0
  24. package/dist/bot/notify-api.d.ts.map +1 -1
  25. package/dist/bot/notify-api.js +13 -5
  26. package/dist/bot/notify-api.js.map +1 -1
  27. package/dist/bot/promote-to-skill.d.ts +9 -0
  28. package/dist/bot/promote-to-skill.d.ts.map +1 -1
  29. package/dist/bot/promote-to-skill.js +231 -25
  30. package/dist/bot/promote-to-skill.js.map +1 -1
  31. package/dist/bot/read-otp.d.ts +14 -0
  32. package/dist/bot/read-otp.d.ts.map +1 -0
  33. package/dist/bot/read-otp.js +96 -0
  34. package/dist/bot/read-otp.js.map +1 -0
  35. package/dist/bot/redact.d.ts +2 -0
  36. package/dist/bot/redact.d.ts.map +1 -0
  37. package/dist/bot/redact.js +61 -0
  38. package/dist/bot/redact.js.map +1 -0
  39. package/dist/bot/telegram-notify.d.ts +8 -0
  40. package/dist/bot/telegram-notify.d.ts.map +1 -0
  41. package/dist/bot/telegram-notify.js +134 -0
  42. package/dist/bot/telegram-notify.js.map +1 -0
  43. package/dist/skill-cli/cli.js +14 -3
  44. package/dist/skill-cli/cli.js.map +1 -1
  45. package/dist/tools/provision-any.d.ts.map +1 -1
  46. package/dist/tools/provision-any.js +26 -1
  47. package/dist/tools/provision-any.js.map +1 -1
  48. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bot/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,qBAAqB,GACtB,CAAC;AACF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAG3B,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAK/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAO/B,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAOtC,aAAa,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAI5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAGjC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAGtD,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAO7C,sBAAsB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAM5D,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAWlB,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;YAWtD,UAAU;CA8DzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bot/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,qBAAqB,GACtB,CAAC;AACF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EACL,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAG3B,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAK/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAO/B,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAOtC,aAAa,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAI5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAGjC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAGtD,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAO7C,sBAAsB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAM5D,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAM1C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAWlB,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;YAWtD,UAAU;CAgEzB"}
package/dist/bot/index.js CHANGED
@@ -82,6 +82,8 @@ export class UniversalSignupBot {
82
82
  stepsSink: request.stepsSink,
83
83
  allowExtraOAuthScopes: request.allowExtraOAuthScopes,
84
84
  allowBlindOAuthConsent: request.allowBlindOAuthConsent,
85
+ machineToken: request.machineToken,
86
+ apiBase: request.apiBase,
85
87
  });
86
88
  console.error(`[UniversalBot] Result: ${result.success ? "SUCCESS" : "FAILED"}`);
87
89
  if (result.success && result.credentials) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bot/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bot/index.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ export declare class OpenRouterClient implements LLMClient {
53
53
  export interface ProxyLLMClientOpts {
54
54
  apiBaseUrl: string;
55
55
  machineToken: string;
56
- tier: "cheap" | "premium";
56
+ tier: "cheap" | "premium" | "free";
57
57
  }
58
58
  export declare class ProxyLLMClient implements LLMClient {
59
59
  readonly name: string;
@@ -65,6 +65,7 @@ export declare class ProxyLLMClient implements LLMClient {
65
65
  }
66
66
  export interface PickLLMClientOpts {
67
67
  preferCheap?: boolean;
68
+ tier?: "cheap" | "premium" | "free";
68
69
  }
69
70
  export interface LLMPair {
70
71
  primary: LLMClient;
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/bot/llm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/bot/llm-client.ts"],"names":[],"mappings":"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"}
@@ -208,13 +208,30 @@ export function pickLLMClient(opts = {}) {
208
208
  //
209
209
  // The Sonnet-via-OR premium routes through the same OpenRouter account
210
210
  // the user already pays for, so they get one bill, not two.
211
+ // Resolve the effective primary tier from explicit opts → env →
212
+ // "cheap" default. The env knob (UNIVERSAL_BOT_LLM_TIER=free) is
213
+ // how the verifier worker flips behavior without threading the
214
+ // option through every signup call site.
215
+ function resolvePrimaryTier(opts) {
216
+ if (opts.tier !== undefined)
217
+ return opts.tier;
218
+ const envTier = process.env.UNIVERSAL_BOT_LLM_TIER;
219
+ if (envTier === "free" || envTier === "premium" || envTier === "cheap") {
220
+ return envTier;
221
+ }
222
+ return "cheap";
223
+ }
211
224
  export function pickLLMPair(opts = {}) {
212
225
  // 1. Trusty Squire proxy (default for MCP installs).
213
226
  const machineToken = process.env.TRUSTY_SQUIRE_MACHINE_TOKEN;
214
227
  if (machineToken !== undefined && machineToken.length > 0) {
215
228
  const apiBaseUrl = process.env.TRUSTY_SQUIRE_API_BASE ?? "https://trusty-squire-api.fly.dev";
216
- const primary = new ProxyLLMClient({ apiBaseUrl, machineToken, tier: "cheap" });
217
- const premium = opts.preferCheap === true
229
+ const primaryTier = resolvePrimaryTier(opts);
230
+ const primary = new ProxyLLMClient({ apiBaseUrl, machineToken, tier: primaryTier });
231
+ // Parse-failure premium retry: paid GPT-4o regardless of primary
232
+ // tier. A free→free run that fails to parse JSON is exactly the
233
+ // case where premium is worth the spend.
234
+ const premium = opts.preferCheap === true || primaryTier === "free"
218
235
  ? new ProxyLLMClient({ apiBaseUrl, machineToken, tier: "premium" })
219
236
  : null;
220
237
  return { primary, premium };
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/bot/llm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/bot/llm-client.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export interface HeightenedAuthNotification {
2
2
  service: string;
3
3
  digit: string | null;
4
4
  windowSeconds: number;
5
+ machineToken?: string | undefined;
6
+ apiBase?: string | undefined;
5
7
  }
6
8
  export declare function notifyHeightenedAuth(input: HeightenedAuthNotification): Promise<boolean>;
7
9
  //# sourceMappingURL=notify-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-api.d.ts","sourceRoot":"","sources":["../../src/bot/notify-api.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAIhB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,OAAO,CAAC,CAqBlB"}
1
+ {"version":3,"file":"notify-api.d.ts","sourceRoot":"","sources":["../../src/bot/notify-api.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAIhB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IAKtB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAKD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,OAAO,CAAC,CA2BlB"}
@@ -7,18 +7,26 @@
7
7
  // (service, digit) pair and forgets — failures are silent because
8
8
  // the stderr banner already covers the local-operator case.
9
9
  //
10
- // Configuration:
11
- // TRUSTY_SQUIRE_MACHINE_TOKEN required; no-op without it.
12
- // TRUSTY_SQUIRE_API_BASE — defaults to the production API.
10
+ // Auth: caller passes the machine token + apiBase explicitly. The
11
+ // MCP install path mints the token to session.json (read once at
12
+ // server boot in tools/provision-any.ts) and does NOT export it as
13
+ // an env var. rc.12 and earlier read process.env directly here and
14
+ // silently no-op'd in every install — that's the bug rc.13 fixes.
15
+ // Env fallback retained for the dev/probe harnesses (oauth-thin-slice,
16
+ // CLI direct invocations) that do set the env var.
13
17
  const DEFAULT_API_BASE = "https://trusty-squire-api.fly.dev";
14
18
  // Fire-and-forget. Returns true if the POST returned 2xx, false
15
19
  // otherwise (including no-token, no-network, route 4xx/5xx). Never
16
20
  // throws — caller never has to wrap in try/catch.
17
21
  export async function notifyHeightenedAuth(input) {
18
- const token = process.env.TRUSTY_SQUIRE_MACHINE_TOKEN;
22
+ const token = input.machineToken !== undefined && input.machineToken.length > 0
23
+ ? input.machineToken
24
+ : process.env.TRUSTY_SQUIRE_MACHINE_TOKEN;
19
25
  if (token === undefined || token.length === 0)
20
26
  return false;
21
- const base = process.env.TRUSTY_SQUIRE_API_BASE ?? DEFAULT_API_BASE;
27
+ const base = input.apiBase !== undefined && input.apiBase.length > 0
28
+ ? input.apiBase
29
+ : (process.env.TRUSTY_SQUIRE_API_BASE ?? DEFAULT_API_BASE);
22
30
  try {
23
31
  const res = await fetch(`${base}/v1/notify/heightened-auth`, {
24
32
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"notify-api.js","sourceRoot":"","sources":["../../src/bot/notify-api.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,oEAAoE;AACpE,iEAAiE;AACjE,kEAAkE;AAClE,4DAA4D;AAC5D,EAAE;AACF,iBAAiB;AACjB,8DAA8D;AAC9D,kEAAkE;AAElE,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAW7D,gEAAgE;AAChE,mEAAmE;AACnE,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAiC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACtD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gBAAgB,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,4BAA4B,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,cAAc,EAAE,KAAK,CAAC,aAAa;aACpC,CAAC;SACH,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"notify-api.js","sourceRoot":"","sources":["../../src/bot/notify-api.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,oEAAoE;AACpE,iEAAiE;AACjE,kEAAkE;AAClE,4DAA4D;AAC5D,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,mEAAmE;AACnE,mEAAmE;AACnE,kEAAkE;AAClE,uEAAuE;AACvE,mDAAmD;AAEnD,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAiB7D,gEAAgE;AAChE,mEAAmE;AACnE,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAiC;IAEjC,MAAM,KAAK,GACT,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAC/D,CAAC,CAAC,KAAK,CAAC,YAAY;QACpB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gBAAgB,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,4BAA4B,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,cAAc,EAAE,KAAK,CAAC,aAAa;aACpC,CAAC;SACH,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -11,6 +11,15 @@ export interface PromoteInput {
11
11
  * synthesizer derives `${SERVICE}_API_KEY` (e.g. RAILWAY_API_KEY).
12
12
  */
13
13
  env_var_suggestion?: string;
14
+ /**
15
+ * Starting status for the synthesized skill. Defaults to
16
+ * `pending-review` (the two-tier registry's staging slot): the
17
+ * verifier worker flips it to `active` after N=2 fresh signups
18
+ * pass against the captured selectors. Callers pass `active`
19
+ * only when explicitly bypassing the verifier — `mcp skill
20
+ * promote --skip-verifier`.
21
+ */
22
+ status?: "pending-review" | "active";
14
23
  }
15
24
  export type PromoteResult = {
16
25
  kind: "ok";
@@ -1 +1 @@
1
- {"version":3,"file":"promote-to-skill.d.ts","sourceRoot":"","sources":["../../src/bot/promote-to-skill.ts"],"names":[],"mappings":"AAqCA,OAAO,EAGL,KAAK,KAAK,EAIX,MAAM,4BAA4B,CAAC;AAUpC,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC5B,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,oBAAoB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAChE,UAAU,EACN,iBAAiB,GACjB,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,kCAAkC,GAClC,gBAAgB,GAQhB,+BAA+B,GAC/B,8BAA8B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,CAAU,CAAC;AAI9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA6IjE;AAu1BD,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,CAexE"}
1
+ {"version":3,"file":"promote-to-skill.d.ts","sourceRoot":"","sources":["../../src/bot/promote-to-skill.ts"],"names":[],"mappings":"AAqCA,OAAO,EAGL,KAAK,KAAK,EAIX,MAAM,4BAA4B,CAAC;AAUpC,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,gBAAgB,GAAG,QAAQ,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC5B,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,oBAAoB,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAChE,UAAU,EACN,iBAAiB,GACjB,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,kCAAkC,GAClC,gBAAgB,GAQhB,+BAA+B,GAC/B,8BAA8B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,CAAU,CAAC;AAI9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA6IjE;AA4iCD,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,CAexE"}
@@ -139,7 +139,7 @@ export function promoteToSkill(input) {
139
139
  steps,
140
140
  credentials,
141
141
  source_run_ids: [input.run_id],
142
- status: "active",
142
+ status: input.status ?? "pending-review",
143
143
  replays_succeeded: 0,
144
144
  replays_failed: 0,
145
145
  consecutive_failures: 0,
@@ -180,7 +180,7 @@ function synthesizeSteps(rounds, runId) {
180
180
  run_id: runId,
181
181
  round_index: i,
182
182
  };
183
- const translated = translateStep(round.observed, round.inventory, provenance, i);
183
+ const translated = translateStep(round.observed, round.inventory, provenance, i, round.state.html);
184
184
  if (translated.kind !== "ok")
185
185
  return translated;
186
186
  if (translated.step !== null)
@@ -218,7 +218,7 @@ function synthesizeSteps(rounds, runId) {
218
218
  }
219
219
  // Returns { step: null } for kinds the synthesizer intentionally drops
220
220
  // (done, wait, login). Returns a rejection for kinds we can't translate.
221
- function translateStep(observed, inventory, provenance, roundIndex) {
221
+ function translateStep(observed, inventory, provenance, roundIndex, roundHtml) {
222
222
  switch (observed.kind) {
223
223
  case "done":
224
224
  case "wait":
@@ -344,7 +344,7 @@ function translateStep(observed, inventory, provenance, roundIndex) {
344
344
  // when a subsequent click can't reach its target.
345
345
  return { kind: "ok", step: null };
346
346
  case "extract":
347
- return synthesizeExtractStep(observed, inventory, provenance, roundIndex);
347
+ return synthesizeExtractStep(observed, inventory, provenance, roundIndex, roundHtml);
348
348
  default: {
349
349
  // Exhaustiveness check. TypeScript narrows `observed` to `never`
350
350
  // here when every PostVerifyStep variant is covered above. If
@@ -417,9 +417,16 @@ function resolveClickHint(selector, inventory, roundIndex) {
417
417
  return result;
418
418
  }
419
419
  function pickClickText(el) {
420
- // Prefer visibleText (what humans read); fall back to ariaLabel for
421
- // icon-only buttons. Trim and drop empty strings.
422
- const text = (el.visibleText ?? el.ariaLabel ?? "").trim();
420
+ // Prefer visibleText (what humans read); fall back through ariaLabel,
421
+ // title, and iconLabel for icon-only buttons. iconLabel is the most
422
+ // common surface for modern dashboards that ship "Sign in with X"
423
+ // OAuth buttons as an SVG with no text — the iconLabel folds in
424
+ // alt/aria-label from descendant <img>/<svg>. Trim and drop empties.
425
+ const text = (el.visibleText ??
426
+ el.ariaLabel ??
427
+ el.title ??
428
+ el.iconLabel ??
429
+ "").trim();
423
430
  if (text.length === 0)
424
431
  return null;
425
432
  // Truncate exceptionally long text — a 500-char button label is
@@ -469,8 +476,14 @@ function resolveLabelHint(selector, inventory, roundIndex) {
469
476
  synthesizer_version: SYNTHESIZER_VERSION,
470
477
  };
471
478
  }
472
- // Ambiguity check — same as click resolver.
479
+ // Ambiguity check — same as click resolver. Mirror the replay
480
+ // engine's rc.8 isFillable filter: only input/textarea/select can
481
+ // genuinely host a fill, so don't count a labelText collision from a
482
+ // sibling help-button as an ambiguity (OpenRouter ships a "Name"
483
+ // tooltip button next to its #name input — both report labelText
484
+ // "Name", but the button is not a fill target).
473
485
  const duplicates = inventory.filter((e) => e.selector !== selector &&
486
+ (e.tag === "input" || e.tag === "textarea" || e.tag === "select") &&
474
487
  (e.labelText?.trim() === hint ||
475
488
  e.placeholder?.trim() === hint ||
476
489
  e.ariaLabel?.trim() === hint));
@@ -488,7 +501,7 @@ function resolveLabelHint(selector, inventory, roundIndex) {
488
501
  return { kind: "ok", hint };
489
502
  }
490
503
  // ── Extract step + credential spec inference ─────────────────────────
491
- function synthesizeExtractStep(observed, inventory, provenance, roundIndex) {
504
+ function synthesizeExtractStep(observed, inventory, provenance, roundIndex, roundHtml) {
492
505
  // Strategy: prefer extract_via_copy_button when a Copy button is
493
506
  // visibly available on the same page. The clipboard path is regex-
494
507
  // free and survives the Railway-class bug (bare UUIDs the regex
@@ -506,20 +519,68 @@ function synthesizeExtractStep(observed, inventory, provenance, roundIndex) {
506
519
  },
507
520
  };
508
521
  }
509
- // No Copy button. Use a regex extraction with the uuid_token pattern
510
- // as the default most novel services that hit this path use
511
- // UUID-shaped tokens (Railway, smaller dev SaaS). Operators can
512
- // hand-edit the skill to pick a more specific pattern.
522
+ // No Copy button. Use a regex extraction. The pattern_name picked
523
+ // here decides which regex the replay engine fires at extract time;
524
+ // if it's wrong (e.g. uuid_token for IPInfo's 14-char opaque key),
525
+ // the replay can never find the value. detectKnownCredentialPattern
526
+ // scans the captured page text for the actual credential and picks
527
+ // the matching named pattern. Falls back to uuid_token only when no
528
+ // recognized prefix or UUID is on the page — the historical default,
529
+ // preserved for sites whose key has no distinguishing prefix that
530
+ // happens to also not be a UUID (rare; operator hand-edits).
531
+ const detected = detectKnownCredentialPattern(roundHtml);
513
532
  return {
514
533
  kind: "ok",
515
534
  step: {
516
535
  kind: "extract_via_regex",
517
- pattern_name: "uuid_token",
536
+ pattern_name: detected,
518
537
  provenance,
519
538
  },
520
539
  };
521
540
  void roundIndex;
522
541
  }
542
+ // Scan the captured HTML for a credential value matching any of the
543
+ // patterns the replay engine's extractApiKeyFromText knows about.
544
+ // Returns the matching pattern_name; falls back to "uuid_token"
545
+ // when nothing recognizable is on the page (the historical default).
546
+ //
547
+ // Order matters — sk-or-v1- before sk- because both could match the
548
+ // same string and we want the more-specific one to win, matching
549
+ // agent.ts's extractApiKeyFromText order.
550
+ function detectKnownCredentialPattern(html) {
551
+ if (/\bre_[a-zA-Z0-9_]{20,}\b/.test(html))
552
+ return "resend";
553
+ if (/\bsk_(?:live|test)_[a-zA-Z0-9]{20,}\b/.test(html))
554
+ return "stripe_secret";
555
+ if (/\bsk-or-v1-[a-f0-9]{40,80}/i.test(html))
556
+ return "openrouter";
557
+ if (/\bsk-ant-[a-zA-Z0-9_-]{40,120}/.test(html))
558
+ return "anthropic";
559
+ if (/\bsk-proj-[a-zA-Z0-9_-]{40,200}/.test(html))
560
+ return "openai_project";
561
+ if (/\bsk-[a-zA-Z0-9]{40,60}/.test(html))
562
+ return "openai_legacy";
563
+ if (/\bkey-[a-f0-9]{32}\b/.test(html))
564
+ return "mailgun";
565
+ if (/\bSG\.[a-zA-Z0-9_\-]{20,}\.[a-zA-Z0-9_\-]{20,}\b/.test(html))
566
+ return "sendgrid";
567
+ if (/\brnd_[a-zA-Z0-9]{20,}\b/.test(html))
568
+ return "render";
569
+ if (/\bsntry[su]_[A-Za-z0-9_=\-]{20,}/.test(html))
570
+ return "sentry_token";
571
+ // UUID — Railway-class flows. Last among prefixed checks because a
572
+ // UUID can co-appear with prefixed keys on the same page (e.g. a
573
+ // dashboard showing a key plus a request-id).
574
+ if (/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/.test(html)) {
575
+ return "uuid_token";
576
+ }
577
+ // No known prefix and no UUID. Default to uuid_token so the schema
578
+ // accepts the skill — replay engine's rc.8 fallback path will pick
579
+ // the value up via extractCredentialCandidates if the validator is
580
+ // set tightly enough (and the synthesizer DOES set it tightly when
581
+ // it observed a short alphanumeric below).
582
+ return "uuid_token";
583
+ }
523
584
  function findCopyButton(inventory) {
524
585
  for (const el of inventory) {
525
586
  // rc.19 — also include title (icon-only buttons like Railway's
@@ -598,22 +659,150 @@ function inferCredentialSpec(rounds, steps, service, envVarOverride) {
598
659
  // tighten it.
599
660
  const shapeHint = inferShapeHint(extractStep, rounds);
600
661
  const envVar = envVarOverride ?? deriveEnvVar(service);
601
- // Validator defaults are coarse but safe. The min/max length range
602
- // is wide because we don't know the exact length distribution for
603
- // this service. A sentinel_http_check is NOT auto-populated that
604
- // would require knowing the service's /whoami URL, which the
605
- // synthesizer can't infer. Operators set it via skill:edit (C5).
662
+ // Validator ranges per shape_hint. Tight ranges keep the replay
663
+ // engine's rc.8 candidate-fallback path from accepting wrong-shaped
664
+ // strings as credentials. For shapes where the value's length is
665
+ // service-defined, we use the typical-observed range; the operator
666
+ // can hand-edit if a service's keys turn out to be wider than the
667
+ // default. A sentinel_http_check is NOT auto-populated — that would
668
+ // require knowing the service's /whoami URL, which the synthesizer
669
+ // can't infer. Operators set it via skill:edit (C5).
670
+ const validator = validatorForShape(shapeHint, rounds);
671
+ // Detect "shown once at creation" phrasing in the extract step's
672
+ // captured reason + the surrounding round texts. Cloudinary,
673
+ // Twilio auth_token-once-shown, Stripe rotation flows all surface
674
+ // explicit warnings like "the secret will not be shown again",
675
+ // "make sure to copy it now", "this is the only time you'll see
676
+ // this token". When present, the router skips replay and routes
677
+ // to fresh-signup-each-time. False positives are bounded — the
678
+ // worst case is the router does extra signups, never the wrong
679
+ // credentials.
680
+ const visibility = inferVisibility(extractStep, rounds);
606
681
  const spec = {
607
682
  type: "api_key",
608
683
  shape_hint: shapeHint,
609
684
  env_var_suggestion: envVar,
610
- post_extract_validator: {
611
- min_length: shapeHint === "uuid" ? 36 : 16,
612
- max_length: shapeHint === "uuid" ? 36 : 512,
613
- },
685
+ // Only emit visibility when show-once — keeps canonical bytes
686
+ // identical for the 95% of skills that are always_visible
687
+ // (existing signed skills remain valid). Absent → treated as
688
+ // always_visible by the replay router.
689
+ ...(visibility === "show_once_at_creation" ? { visibility } : {}),
690
+ post_extract_validator: validator,
614
691
  };
615
692
  return { kind: "ok", spec };
616
693
  }
694
+ // Show-once vocabulary. The synthesizer scans the planner's prose
695
+ // for these markers. Captured from real-world dashboard copy across
696
+ // Cloudinary, Twilio, Stripe, AWS, GitHub PATs, etc.
697
+ const SHOW_ONCE_PHRASES = [
698
+ /\b(?:will not be|won'?t be|cannot be|can'?t be|never)\s+(?:shown|displayed|visible|retrievable|recovered)\s+again\b/i,
699
+ /\b(?:only|sole|one[- ]?time)\s+(?:time|chance|opportunity)\s+(?:you'?ll|you will|to)\s+(?:see|view|copy)\b/i,
700
+ /\bshow(?:n|ing)?\s+(?:only\s+)?once\b/i,
701
+ /\bdisplay(?:ed|ing)?\s+only\s+once\b/i,
702
+ /\bmake\s+sure\s+(?:to\s+)?(?:copy|save)\s+(?:it|this|now)\b/i,
703
+ /\bcopy\s+(?:it|this|now)\s+(?:before|now)\b/i,
704
+ /\b(?:save|copy)\s+(?:the\s+)?(?:secret|token|key|credential)\s+now\b/i,
705
+ /\b(?:this\s+is\s+the\s+)?(?:only|sole)\s+time\b.*\b(?:see|view|copy|displayed)\b/i,
706
+ /\bafter\s+(?:closing|leaving|navigating|refreshing).*(?:cannot|won'?t|will not).*(?:retrieve|see|recover)\b/i,
707
+ ];
708
+ function inferVisibility(extractStep, rounds) {
709
+ // Source 1: the extract step's planner-quoted reason (from the
710
+ // round's `observed.reason` — we preserve this in step provenance).
711
+ // We don't have direct access to the original reason from the
712
+ // SkillStep alone, so scan the rounds' planner reasons up to the
713
+ // round that produced the extract.
714
+ const roundIndex = extractStep.provenance?.round_index;
715
+ if (typeof roundIndex !== "number")
716
+ return "always_visible";
717
+ const haystack = [];
718
+ for (const r of rounds) {
719
+ const observed = r.observed;
720
+ if (observed?.reason !== undefined && typeof observed.reason === "string") {
721
+ haystack.push(observed.reason);
722
+ }
723
+ // Source 2: page html — strip tags for a coarse text view. The
724
+ // warning banner ("the secret will not be shown again") is part
725
+ // of the dashboard's rendered DOM at the credential-creation
726
+ // moment, so it surfaces here even when the planner didn't quote
727
+ // the warning explicitly in its reason.
728
+ if (typeof r.state?.html === "string") {
729
+ const text = r.state.html
730
+ .replace(/<script[^>]*>[\s\S]*?<\/script>/gi, " ")
731
+ .replace(/<style[^>]*>[\s\S]*?<\/style>/gi, " ")
732
+ .replace(/<[^>]+>/g, " ")
733
+ .replace(/\s+/g, " ");
734
+ haystack.push(text.slice(0, 8000));
735
+ }
736
+ }
737
+ const joined = haystack.join(" \n ");
738
+ for (const re of SHOW_ONCE_PHRASES) {
739
+ if (re.test(joined))
740
+ return "show_once_at_creation";
741
+ }
742
+ return "always_visible";
743
+ }
744
+ function validatorForShape(shape, rounds) {
745
+ switch (shape) {
746
+ case "uuid":
747
+ return { min_length: 36, max_length: 36 };
748
+ case "prefix:re_":
749
+ return { min_length: 24, max_length: 64 };
750
+ case "prefix:sk_live":
751
+ case "prefix:sk_test":
752
+ return { min_length: 28, max_length: 128 };
753
+ case "prefix:sk-or-v1-":
754
+ return { min_length: 30, max_length: 120 };
755
+ case "prefix:sk-ant-":
756
+ return { min_length: 60, max_length: 200 };
757
+ case "prefix:sk-":
758
+ return { min_length: 40, max_length: 80 };
759
+ case "prefix:key-":
760
+ return { min_length: 36, max_length: 40 };
761
+ case "prefix:SG.":
762
+ return { min_length: 50, max_length: 100 };
763
+ case "prefix:rnd_":
764
+ return { min_length: 28, max_length: 64 };
765
+ case "prefix:sntry":
766
+ return { min_length: 30, max_length: 200 };
767
+ case "opaque":
768
+ // Opaque means: no recognized prefix or UUID, but we still
769
+ // landed on a credential page. Use the last-round HTML to find
770
+ // the most-likely value's length. IPInfo's 14-char API token
771
+ // is the canonical case. Fall back to a wide range if no
772
+ // value can be inferred (rare).
773
+ return inferOpaqueValidatorFromHtml(rounds) ?? { min_length: 8, max_length: 64 };
774
+ case "username_password":
775
+ return { min_length: 8, max_length: 256 };
776
+ }
777
+ }
778
+ // Scan the last round's HTML for short alphanumeric tokens that look
779
+ // like credentials (digits + letters, no surrounding label glue
780
+ // detectable). Pick the longest plausible candidate's length to
781
+ // anchor the validator's range. Returns null when nothing plausibly
782
+ // credential-shaped is found.
783
+ function inferOpaqueValidatorFromHtml(rounds) {
784
+ const rawHtml = rounds[rounds.length - 1]?.state.html ?? "";
785
+ // Strip HTML tags + collapse whitespace so the label and value
786
+ // appear adjacent — they're typically rendered as
787
+ // `<div>API Token</div><span>f9a062…</span>` (IPInfo case). The
788
+ // strip mirrors what extractText() returns at replay time, which
789
+ // is what the labeled regex was designed against.
790
+ const text = rawHtml
791
+ .replace(/<[^>]+>/g, " ")
792
+ .replace(/&nbsp;/g, " ")
793
+ .replace(/\s+/g, " ");
794
+ // Look for "API Token" / "Token" / "API Key" label followed by an
795
+ // alphanumeric run of 8-64 chars. The replay engine's
796
+ // extractCredentialCandidates fallback uses validator length to
797
+ // filter, so we want a tight ±2-char range around the observed
798
+ // length to keep nav strings ("Dashboard", "Downloads") out.
799
+ const labeled = /(?:API[\s_-]?Token|API[\s_-]?Key|Token|Secret)\s*[:=]?\s*([a-zA-Z0-9_-]{8,64})/i.exec(text);
800
+ if (labeled !== null && labeled[1] !== undefined) {
801
+ const len = labeled[1].length;
802
+ return { min_length: Math.max(8, len - 2), max_length: len + 2 };
803
+ }
804
+ return null;
805
+ }
617
806
  function inferShapeHint(extractStep, rounds) {
618
807
  if (extractStep.kind === "extract_via_regex") {
619
808
  // Map pattern name → shape hint. Closed enum so we cover every
@@ -641,8 +830,21 @@ function inferShapeHint(extractStep, rounds) {
641
830
  return "prefix:sk-";
642
831
  case "openai_project":
643
832
  return "prefix:sk-";
644
- case "uuid_token":
645
- return "uuid";
833
+ case "uuid_token": {
834
+ // uuid_token is the synthesizer's fallback when no recognized
835
+ // prefix was found in the HTML. Two sub-cases:
836
+ // 1. UUID actually present (Railway-class) → shape "uuid"
837
+ // 2. No UUID present (IPInfo-class opaque short token) →
838
+ // shape "opaque" so the validator isn't forced to 36/36
839
+ // and inferOpaqueValidatorFromHtml picks the observed
840
+ // length range. The replay engine's rc.8 candidate
841
+ // fallback then uses that validator to find the value.
842
+ const html = rounds[rounds.length - 1]?.state.html ?? "";
843
+ if (/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/.test(html)) {
844
+ return "uuid";
845
+ }
846
+ return "opaque";
847
+ }
646
848
  }
647
849
  }
648
850
  // extract_via_copy_button: scan the latest round's HTML for a known
@@ -841,6 +1043,10 @@ function buildCredentialSpecForMulti(name, shape, service) {
841
1043
  type: "api_key",
842
1044
  shape_hint: shape,
843
1045
  env_var_suggestion: envVar,
1046
+ // Default to absent (== always_visible). Multi-cred skills get
1047
+ // a per-credential visibility flag added by the visibility-
1048
+ // inference pass only when show-once phrasing was detected for
1049
+ // that specific credential.
844
1050
  post_extract_validator: {
845
1051
  min_length: shape === "uuid" ? 36 : 16,
846
1052
  max_length: shape === "uuid" ? 36 : 512,