@kya-os/consent 0.1.39 → 0.1.41

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 (52) hide show
  1. package/dist/bundle/index.d.ts +2 -0
  2. package/dist/bundle/index.d.ts.map +1 -1
  3. package/dist/bundle/index.js +2 -0
  4. package/dist/bundle/index.js.map +1 -1
  5. package/dist/bundle/inline.d.ts.map +1 -1
  6. package/dist/bundle/inline.js +2 -2
  7. package/dist/bundle/inline.js.map +1 -1
  8. package/dist/cjs/bundle/index.js +4 -1
  9. package/dist/cjs/bundle/index.js.map +1 -1
  10. package/dist/cjs/bundle/inline.js +2 -2
  11. package/dist/cjs/bundle/inline.js.map +1 -1
  12. package/dist/cjs/components/consent-capabilities-screen.js +39 -2
  13. package/dist/cjs/components/consent-capabilities-screen.js.map +1 -1
  14. package/dist/cjs/components/consent-capability-card.js +62 -3
  15. package/dist/cjs/components/consent-capability-card.js.map +1 -1
  16. package/dist/cjs/components/consent-connector-header.js +247 -0
  17. package/dist/cjs/components/consent-connector-header.js.map +1 -0
  18. package/dist/cjs/components/index.js +3 -1
  19. package/dist/cjs/components/index.js.map +1 -1
  20. package/dist/cjs/components/mcp-consent.js +18 -1
  21. package/dist/cjs/components/mcp-consent.js.map +1 -1
  22. package/dist/cjs/mcp-app/inline.js +2 -2
  23. package/dist/cjs/mcp-app/inline.js.map +1 -1
  24. package/dist/components/consent-capabilities-screen.d.ts +13 -0
  25. package/dist/components/consent-capabilities-screen.d.ts.map +1 -1
  26. package/dist/components/consent-capabilities-screen.js +39 -2
  27. package/dist/components/consent-capabilities-screen.js.map +1 -1
  28. package/dist/components/consent-capability-card.d.ts +8 -0
  29. package/dist/components/consent-capability-card.d.ts.map +1 -1
  30. package/dist/components/consent-capability-card.js +62 -3
  31. package/dist/components/consent-capability-card.js.map +1 -1
  32. package/dist/components/consent-connector-header.d.ts +64 -0
  33. package/dist/components/consent-connector-header.d.ts.map +1 -0
  34. package/dist/components/consent-connector-header.js +244 -0
  35. package/dist/components/consent-connector-header.js.map +1 -0
  36. package/dist/components/index.d.ts +1 -0
  37. package/dist/components/index.d.ts.map +1 -1
  38. package/dist/components/index.js +1 -0
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/components/mcp-consent.d.ts.map +1 -1
  41. package/dist/components/mcp-consent.js +18 -1
  42. package/dist/components/mcp-consent.js.map +1 -1
  43. package/dist/consent.js +273 -5
  44. package/dist/consent.min.js +246 -108
  45. package/dist/mcp-app/inline.d.ts.map +1 -1
  46. package/dist/mcp-app/inline.js +2 -2
  47. package/dist/mcp-app/inline.js.map +1 -1
  48. package/dist/schemas/api.schemas.d.ts +30 -30
  49. package/dist/schemas/capabilities.schemas.d.ts +8 -8
  50. package/dist/schemas/config.schemas.d.ts +52 -52
  51. package/dist/schemas/modes.schemas.d.ts +6 -6
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../src/bundle/inline.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;GAGG;AACU,QAAA,cAAc,GAAW,u68PAAu68P,CAAC;AAE988P;;GAEG;AACU,QAAA,mBAAmB,GAAW,MAAM,CAAC"}
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../src/bundle/inline.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH;;;GAGG;AACU,QAAA,cAAc,GAAW,ohpQAAohpQ,CAAC;AAE3jpQ;;GAEG;AACU,QAAA,mBAAmB,GAAW,MAAM,CAAC"}
@@ -34,6 +34,7 @@ require("./consent-capability-card.js");
34
34
  require("./consent-action-bar.js");
35
35
  require("./consent-footer.js");
36
36
  require("./consent-revocation-notice.js");
37
+ require("./consent-connector-header.js");
37
38
  let ConsentCapabilitiesScreen = class ConsentCapabilitiesScreen extends lit_1.LitElement {
38
39
  constructor() {
39
40
  super(...arguments);
@@ -45,6 +46,18 @@ let ConsentCapabilitiesScreen = class ConsentCapabilitiesScreen extends lit_1.Li
45
46
  this.theme = "light";
46
47
  this.howItWorksUrl = "";
47
48
  this.loading = false;
49
+ /**
50
+ * Domain used to fetch the server brand logo when one isn't explicitly
51
+ * configured via `agentMetadata.logoUrl` / branding. Passed to the
52
+ * connector header for logo.dev resolution.
53
+ */
54
+ this.serverDomain = "";
55
+ /**
56
+ * Optional logo.dev publishable token. Lets the connector header resolve
57
+ * brand logos by domain when the operator hasn't supplied an explicit
58
+ * one. Falls back to monogram tile when missing or on 404.
59
+ */
60
+ this.logoDevToken = "";
48
61
  this.selected = new Set();
49
62
  this.onCapabilityToggle = (event) => {
50
63
  const detail = event.detail;
@@ -117,8 +130,8 @@ let ConsentCapabilitiesScreen = class ConsentCapabilitiesScreen extends lit_1.Li
117
130
  });
118
131
  const escaped = escapeHtml(raw);
119
132
  const withSerifEntities = escaped
120
- .replace("@@AGENT@@", `<em>${escapeHtml(agentName)}</em>`)
121
- .replace("@@ORG@@", `<em>${escapeHtml(this.orgName || "this site")}</em>`);
133
+ .replace("@@AGENT@@", `<em>${nbspEscape(agentName)}</em>`)
134
+ .replace("@@ORG@@", `<em>${nbspEscape(this.orgName || "this site")}</em>`);
122
135
  return (0, lit_1.html) `<h1
123
136
  class="headline"
124
137
  .innerHTML=${withSerifEntities}
@@ -135,6 +148,14 @@ let ConsentCapabilitiesScreen = class ConsentCapabilitiesScreen extends lit_1.Li
135
148
  <style>
136
149
  ${this.hostStyle()}
137
150
  </style>
151
+ <consent-connector-header
152
+ clientName="${this.agentMetadata?.name || ""}"
153
+ clientDid="${this.agentMetadata?.did || ""}"
154
+ client-logo-url="${this.agentMetadata?.logoUrl || ""}"
155
+ serverName="${this.orgName || ""}"
156
+ server-domain="${this.serverDomain}"
157
+ logo-dev-token="${this.logoDevToken}"
158
+ ></consent-connector-header>
138
159
  <div class="card" part="card">
139
160
  <span class="eyebrow">${tokens.eyebrow.permissionRequest}</span>
140
161
  ${this.renderHeadline()}
@@ -292,6 +313,12 @@ __decorate([
292
313
  __decorate([
293
314
  (0, decorators_js_1.property)({ type: Boolean })
294
315
  ], ConsentCapabilitiesScreen.prototype, "loading", void 0);
316
+ __decorate([
317
+ (0, decorators_js_1.property)({ type: String, attribute: "server-domain" })
318
+ ], ConsentCapabilitiesScreen.prototype, "serverDomain", void 0);
319
+ __decorate([
320
+ (0, decorators_js_1.property)({ type: String, attribute: "logo-dev-token" })
321
+ ], ConsentCapabilitiesScreen.prototype, "logoDevToken", void 0);
295
322
  __decorate([
296
323
  (0, decorators_js_1.state)()
297
324
  ], ConsentCapabilitiesScreen.prototype, "selected", void 0);
@@ -306,4 +333,14 @@ function escapeHtml(value) {
306
333
  .replace(/"/g, "&quot;")
307
334
  .replace(/'/g, "&#39;");
308
335
  }
336
+ /**
337
+ * Escape an entity name for HTML AND replace any internal whitespace with
338
+ * non-breaking spaces. Used inside the serif italic spans of the headline so
339
+ * multi-word brand names ("Hardware World", "Bank of Acme") wrap as a single
340
+ * unit instead of splitting across lines. Applied to any operator-set entity
341
+ * name, so the rule scales to any deployment without per-brand tweaking.
342
+ */
343
+ function nbspEscape(value) {
344
+ return escapeHtml(value).replace(/\s+/g, " ");
345
+ }
309
346
  //# sourceMappingURL=consent-capabilities-screen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-capabilities-screen.js","sourceRoot":"","sources":["../../../src/components/consent-capabilities-screen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent-capabilities-screen.js","sourceRoot":"","sources":["../../../src/components/consent-capabilities-screen.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;AAEH,6BAAqD;AACrD,qDAAmE;AAEnE,iDAAqE;AACrE,iDAG4B;AAO5B,oDAA8D;AAC9D,qCAAmC;AACnC,wCAAsC;AACtC,mCAAiC;AACjC,+BAA6B;AAC7B,0CAAwC;AACxC,yCAAuC;AAahC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,gBAAU;IAAlD;;QACsB,iBAAY,GAAiB,EAAE,CAAC;QAG/B,YAAO,GAAG,EAAE,CAAC;QACb,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAG,4BAA4B,CAAC;QAC9C,mBAAc,GAAG,EAAE,CAAC;QACpB,UAAK,GAAiB,OAAO,CAAC;QACC,kBAAa,GAAG,EAAE,CAAC;QACjD,YAAO,GAAG,KAAK,CAAC;QAE7C;;;;WAIG;QACqD,iBAAY,GAAG,EAAE,CAAC;QAE1E;;;;WAIG;QACsD,iBAAY,GAAG,EAAE,CAAC;QAE1D,aAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAkGtC,uBAAkB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAClD,MAAM,MAAM,GAAI,KAA6C,CAAC,MAAM,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;;gBACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC;QAEM,YAAO,GAAG,GAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY;iBACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACtC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,MAAM,GAA8B;gBACxC,qBAAqB,EAAE,WAAW;gBAClC,cAAc;aACf,CAAC;YACF,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAA4B,oBAAoB,EAAE;gBAC/D,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEM,WAAM,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;QACJ,CAAC,CAAC;IA0GJ,CAAC;IAzOU,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEQ,UAAU,CAAC,OAA6B;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,UAAU,CAAC,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IA2EO,SAAS;QACf,OAAO,WAAW,IAAA,8BAAmB,EAAC,IAAA,0BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;IAmCO,sBAAsB,CAAC,UAAsB;QACnD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAA,oCAAuB,EAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,YAAY,CAAC;QAC3D,MAAM,MAAM,GAAG,+BAAmB,CAAC;QACnC,MAAM,GAAG,GAAG,IAAA,uBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAChD,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;YAChC,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,iBAAiB,GAAG,OAAO;aAC9B,OAAO,CAAC,WAAW,EAAE,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;aACzD,OAAO,CAAC,SAAS,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7E,OAAO,IAAA,UAAI,EAAA;;mBAEI,iBAAiB;WACzB,CAAC;IACV,CAAC;IAEQ,MAAM;QACb,MAAM,MAAM,GAAG,+BAAmB,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,YAAY,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAA,uBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,IAAA,uBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE;SAC/B,CAAC,CAAC;QAEH,OAAO,IAAA,UAAI,EAAA;;UAEL,IAAI,CAAC,SAAS,EAAE;;;sBAGJ,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE;qBAC/B,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,EAAE;2BACvB,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;sBACtC,IAAI,CAAC,OAAO,IAAI,EAAE;yBACf,IAAI,CAAC,YAAY;0BAChB,IAAI,CAAC,YAAY;;;gCAGX,MAAM,CAAC,OAAO,CAAC,iBAAiB;UACtD,IAAI,CAAC,cAAc,EAAE;6BACF,OAAO;UAC1B,IAAI,CAAC,aAAa;YAClB,CAAC,CAAC,IAAA,UAAI,EAAA;2BACW,IAAI,CAAC,aAAa,CAAC,IAAI;wBAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE;8BACzB,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE;0BACzC,IAAI,CAAC,aAAa,CAAC,QAAQ;yBAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE;6BAC5B,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE;qCAC5B;YAC3B,CAAC,CAAC,aAAO;;;oBAGC,aAAa;iCACA,MAAM,CAAC,OAAO,CAAC,WAAW;;iDAEV,IAAI,CAAC,kBAAkB;cAC1D,IAAI,CAAC,YAAY,CAAC,GAAG,CACrB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,UAAI,EAAA;;kCAEA,UAAU,CAAC,EAAE;2BACpB,UAAU,CAAC,KAAK;iCACV,UAAU,CAAC,WAAW;0BAC7B,UAAU,CAAC,IAAI;+BACV,UAAU,CAAC,SAAS;6BACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oCACzB,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;;eAE5D,CACF;;;;4BAIe,IAAI,CAAC,cAAc;qBAC1B,IAAI,CAAC,OAAO,IAAI,WAAW;2BACrB,IAAI,CAAC,cAAc;;;uBAGvB,SAAS;mBACb,IAAI,CAAC,KAAK;qBACR,IAAI,CAAC,OAAO;sBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;2BACnB,IAAI,CAAC,OAAO;0BACb,IAAI,CAAC,MAAM;;;mBAGlB,IAAI,CAAC,KAAK;2BACF,IAAI,CAAC,aAAa;;;KAGxC,CAAC;IACJ,CAAC;;AApQU,8DAAyB;AA+CpB,gCAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuE3B,AAvEqB,CAuEpB;AArHyB;IAA1B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;+DAAiC;AAC/B;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gEAA0C;AACzC;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DAAgD;AAC/C;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAc;AACb;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DAAsB;AACrB;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEAA+C;AAC9C;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEAAqB;AACpB;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAA+B;AACC;IAA1D,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gEAAoB;AACjD;IAA5B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DAAiB;AAOW;IAAvD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;+DAAmB;AAOjB;IAAxD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+DAAmB;AAE1D;IAAhB,IAAA,qBAAK,GAAE;2DAAsC;oCA1BnC,yBAAyB;IADrC,IAAA,6BAAa,EAAC,6BAA6B,CAAC;GAChC,yBAAyB,CAqQrC;AAQD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC"}
@@ -47,7 +47,40 @@ let ConsentCapabilityCard = class ConsentCapabilityCard extends lit_1.LitElement
47
47
  composed: true,
48
48
  }));
49
49
  }
50
- togglePolicy() {
50
+ /**
51
+ * Row-level click handler. Makes the entire row a click target for
52
+ * toggling the checkbox — a UX nicety that matches Plaid/Apple-style
53
+ * consent rows. Skips when the user clicks the per-row "View policy"
54
+ * button, the policy disclosure, or any link inside the description, so
55
+ * those interactive children retain their own behavior.
56
+ */
57
+ onRowClick(event) {
58
+ const target = event.target;
59
+ if (!target)
60
+ return;
61
+ // Walk the composed path to detect interactive children we shouldn't
62
+ // hijack — the policy toggle/disclosure or any anchor.
63
+ const path = event.composedPath?.() || [];
64
+ for (const node of path) {
65
+ if (!(node instanceof HTMLElement))
66
+ continue;
67
+ if (node === this)
68
+ break;
69
+ if (node.classList?.contains("policy-toggle") ||
70
+ node.classList?.contains("policy-disclosure") ||
71
+ node.tagName === "A" ||
72
+ node.tagName === "BUTTON") {
73
+ // Already-handled child (incl. our own checkbox button — its own
74
+ // @click toggles, no double-fire from row click).
75
+ return;
76
+ }
77
+ }
78
+ this.toggleChecked();
79
+ }
80
+ togglePolicy(event) {
81
+ // Stop the row click from also toggling the checkbox when the user
82
+ // clicked specifically on "View policy".
83
+ event?.stopPropagation();
51
84
  this.policyOpen = !this.policyOpen;
52
85
  }
53
86
  isHigherRisk() {
@@ -84,15 +117,31 @@ let ConsentCapabilityCard = class ConsentCapabilityCard extends lit_1.LitElement
84
117
  render() {
85
118
  const tokens = tokens_js_1.CONSENT_COPY_TOKENS.capabilityRow;
86
119
  return (0, lit_1.html) `
87
- <div class="row" part="row">
120
+ <div
121
+ class="row"
122
+ part="row"
123
+ role="button"
124
+ tabindex="0"
125
+ @click=${this.onRowClick}
126
+ @keydown=${(e) => {
127
+ if (e.key === " " || e.key === "Enter") {
128
+ e.preventDefault();
129
+ this.toggleChecked();
130
+ }
131
+ }}
132
+ >
88
133
  <button
89
134
  class="checkbox"
90
135
  part="checkbox"
91
136
  role="checkbox"
92
137
  aria-checked="${String(this.checked)}"
93
138
  aria-label="${this.label}"
94
- @click=${this.toggleChecked}
139
+ @click=${(e) => {
140
+ e.stopPropagation();
141
+ this.toggleChecked();
142
+ }}
95
143
  type="button"
144
+ tabindex="-1"
96
145
  >
97
146
  ${this.checked ? (0, lit_1.html) `<span class="check-mark">✓</span>` : lit_1.nothing}
98
147
  </button>
@@ -135,6 +184,16 @@ ConsentCapabilityCard.styles = (0, lit_1.css) `
135
184
  gap: 14px;
136
185
  padding: 16px 0;
137
186
  align-items: flex-start;
187
+ cursor: pointer;
188
+ transition: background 0.12s ease;
189
+ margin: 0 -10px;
190
+ padding-left: 10px;
191
+ padding-right: 10px;
192
+ border-radius: 8px;
193
+ }
194
+
195
+ .row:hover {
196
+ background: var(--cs-row-hover-bg, rgba(15, 23, 42, 0.025));
138
197
  }
139
198
 
140
199
  .checkbox {
@@ -1 +1 @@
1
- {"version":3,"file":"consent-capability-card.js","sourceRoot":"","sources":["../../../src/components/consent-capability-card.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;AAEH,6BAAqD;AACrD,qDAAmE;AAEnE,iDAAwD;AACxD,oDAA2D;AAYpD,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,gBAAU;IAA9C;;QACuB,iBAAY,GAAG,EAAE,CAAC;QAClB,UAAK,GAAG,EAAE,CAAC;QACX,gBAAW,GAAG,EAAE,CAAC;QACjB,SAAI,GAAmB,SAAS,CAAC;QACjC,cAAS,GAAc,KAAK,CAAC;QACb,YAAO,GAAG,KAAK,CAAC;QACH,kBAAa,GAAG,EAAE,CAAC;QAE3D,eAAU,GAAG,KAAK,CAAC;IAuPtC,CAAC;IA3FS,aAAa;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,MAAM,GAA2B;YACrC,EAAE,EAAE,IAAI,CAAC,YAAY;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAyB,mBAAmB,EAAE;YAC3D,MAAM;YACN,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACrC,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;IACpE,CAAC;IAEO,UAAU;QAChB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,aAAO,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,aAAO,CAAC;QAExC,MAAM,WAAW,GAAG,IAAA,iCAAoB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,+BAAmB,CAAC,aAAa,CAAC;QAEjD,OAAO,IAAA,UAAI,EAAA;;cAED,MAAM,CAAC,UAAU;;YAEnB,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,IAAA,UAAI,EAAA,YAAY;YAClB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CACrB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,UAAI,EAAA,aAAa,MAAM,cAAc,CAClD;;UAEL,WAAW,CAAC,QAAQ;YACpB,CAAC,CAAC,IAAA,UAAI,EAAA;yBACS,WAAW,CAAC,QAAQ;iBAC5B;YACP,CAAC,CAAC,IAAA,UAAI,EAAA,SAAS,MAAM,CAAC,oBAAoB,MAAM;cAC5C,MAAM,CAAC,cAAc;qBACd,IAAI,CAAC,aAAa;;KAElC,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,MAAM,MAAM,GAAG,+BAAmB,CAAC,aAAa,CAAC;QACjD,OAAO,IAAA,UAAI,EAAA;;;;;;0BAMW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;wBACtB,IAAI,CAAC,KAAK;mBACf,IAAI,CAAC,aAAa;;;YAGzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,UAAI,EAAA,mCAAmC,CAAC,CAAC,CAAC,aAAO;;oDAExB,IAAI,CAAC,UAAU,EAAE;;;4BAGzC,IAAI,CAAC,KAAK,uCAAuC,IAAI,CAAC,WAAW;cAC/E,IAAI,CAAC,YAAY,EAAE;YACnB,CAAC,CAAC,IAAA,UAAI,EAAA,2BAA2B,MAAM,CAAC,cAAc,SAAS;YAC/D,CAAC,CAAC,aAAO;;;;;qBAKF,IAAI,CAAC,YAAY;6BACT,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;cAEtC,MAAM,CAAC,cAAc;;YAEvB,IAAI,CAAC,YAAY,EAAE;;;KAG1B,CAAC;IACJ,CAAC;;AA/PU,sDAAqB;AAWhB,4BAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwJ3B,AAxJqB,CAwJpB;AAlK0B;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DAAmB;AAClB;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAY;AACX;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAkB;AACjB;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAkC;AACjC;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAA8B;AACb;IAA3C,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sDAAiB;AACH;IAAxD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;4DAAoB;AAE3D;IAAhB,IAAA,qBAAK,GAAE;yDAA4B;gCATzB,qBAAqB;IADjC,IAAA,6BAAa,EAAC,yBAAyB,CAAC;GAC5B,qBAAqB,CAgQjC;AAQD;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAoB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,IAAA,UAAI,EAAA,qMAAqM,CAAC;QACnN,KAAK,MAAM;YACT,OAAO,IAAA,UAAI,EAAA,uRAAuR,CAAC;QACrS,KAAK,MAAM;YACT,OAAO,IAAA,UAAI,EAAA,oOAAoO,CAAC;QAClP,KAAK,KAAK;YACR,OAAO,IAAA,UAAI,EAAA,sOAAsO,CAAC;QACpP,KAAK,SAAS;YACZ,OAAO,IAAA,UAAI,EAAA,6OAA6O,CAAC;QAC3P,KAAK,QAAQ;YACX,OAAO,IAAA,UAAI,EAAA,yMAAyM,CAAC;QACvN,KAAK,KAAK;YACR,OAAO,IAAA,UAAI,EAAA,wNAAwN,CAAC;QACtO,KAAK,OAAO;YACV,OAAO,IAAA,UAAI,EAAA,qMAAqM,CAAC;QACnN,KAAK,MAAM;YACT,OAAO,IAAA,UAAI,EAAA,mMAAmM,CAAC;QACjN,KAAK,UAAU;YACb,OAAO,IAAA,UAAI,EAAA,kOAAkO,CAAC;QAChP,KAAK,MAAM;YACT,OAAO,IAAA,UAAI,EAAA,uNAAuN,CAAC;QACrO,KAAK,KAAK;YACR,OAAO,IAAA,UAAI,EAAA,yNAAyN,CAAC;QACvO,KAAK,MAAM;YACT,OAAO,IAAA,UAAI,EAAA,mKAAmK,CAAC;QACjL,KAAK,SAAS;YACZ,OAAO,IAAA,UAAI,EAAA,qNAAqN,CAAC;QACnO;YACE,OAAO,IAAA,UAAI,EAAA,oKAAoK,CAAC;IACpL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"consent-capability-card.js","sourceRoot":"","sources":["../../../src/components/consent-capability-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ /**
3
+ * Consent Connector Header
4
+ *
5
+ * Top-of-page visual matching Peter's mockup: client logo on the left, an
6
+ * animated dotted bridge with the Checkpoint shield in the middle, and the
7
+ * server brand logo on the right. Communicates "{client} is connecting to
8
+ * {server} via Checkpoint" before the user reads any copy.
9
+ *
10
+ * Logo resolution priority:
11
+ * 1. explicit `clientLogoUrl` / `serverLogoUrl` attributes (operator override)
12
+ * 2. derived from `clientDid` (e.g. did:web:knowthat.ai:agents:claude →
13
+ * `https://knowthat.ai/img/agents/claude.png`)
14
+ * 3. logo.dev fallback when `logoDevToken` is set + a domain is derivable
15
+ * 4. monogram tile (first letter of name) as the last-resort placeholder
16
+ *
17
+ * Designed to be brand-agnostic: every client/server pair gets the same
18
+ * shape, with only the artwork swapped per deployment.
19
+ *
20
+ * @module components/consent-connector-header
21
+ */
22
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
23
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ConsentConnectorHeader = void 0;
30
+ const lit_1 = require("lit");
31
+ const decorators_js_1 = require("lit/decorators.js");
32
+ let ConsentConnectorHeader = class ConsentConnectorHeader extends lit_1.LitElement {
33
+ constructor() {
34
+ super(...arguments);
35
+ /** Display name of the agent / client (e.g. "Claude"). */
36
+ this.clientName = "";
37
+ /** Agent DID — used for KTA-derived logo lookup when no explicit URL. */
38
+ this.clientDid = "";
39
+ /** Explicit override for the client logo. */
40
+ this.clientLogoUrl = "";
41
+ /** Display name of the server / org (e.g. "Hardware World"). */
42
+ this.serverName = "";
43
+ /** Server brand domain — used for logo.dev lookup when no explicit URL. */
44
+ this.serverDomain = "";
45
+ /** Explicit override for the server brand logo. */
46
+ this.serverLogoUrl = "";
47
+ /**
48
+ * Optional logo.dev publishable token. When supplied, used to fetch
49
+ * brand logos by domain. Falls back to monogram tile if missing or if
50
+ * logo.dev returns 404.
51
+ */
52
+ this.logoDevToken = "";
53
+ this.clientImageOk = true;
54
+ this.serverImageOk = true;
55
+ }
56
+ /**
57
+ * Derive a logo URL for an agent DID via KTA hosting convention.
58
+ * `did:web:knowthat.ai:agents:claude` → `https://knowthat.ai/img/agents/claude.png`
59
+ */
60
+ ktaLogoFromDid(did) {
61
+ if (!did)
62
+ return undefined;
63
+ const match = did.match(/^did:web:knowthat\.ai:agents:([a-z0-9-]+)$/i);
64
+ if (!match)
65
+ return undefined;
66
+ return `https://knowthat.ai/img/agents/${match[1]}.png`;
67
+ }
68
+ /**
69
+ * Derive a brand logo URL via logo.dev given a domain. Returns undefined
70
+ * when no token is configured or the domain is unparseable.
71
+ */
72
+ logoDevLogo(domain) {
73
+ if (!domain || !this.logoDevToken)
74
+ return undefined;
75
+ const cleaned = domain.replace(/^https?:\/\//, "").replace(/\/.*$/, "");
76
+ if (!cleaned)
77
+ return undefined;
78
+ return `https://img.logo.dev/${cleaned}?token=${encodeURIComponent(this.logoDevToken)}&size=120&format=png`;
79
+ }
80
+ resolveClientLogo() {
81
+ if (this.clientLogoUrl)
82
+ return this.clientLogoUrl;
83
+ return this.ktaLogoFromDid(this.clientDid);
84
+ }
85
+ resolveServerLogo() {
86
+ if (this.serverLogoUrl)
87
+ return this.serverLogoUrl;
88
+ return this.logoDevLogo(this.serverDomain);
89
+ }
90
+ monogram(name) {
91
+ return (name || "?").trim().charAt(0).toUpperCase();
92
+ }
93
+ render() {
94
+ const clientLogo = this.resolveClientLogo();
95
+ const serverLogo = this.resolveServerLogo();
96
+ return (0, lit_1.html) `
97
+ <div class="tile client" aria-hidden="true">
98
+ ${clientLogo && this.clientImageOk
99
+ ? (0, lit_1.html) `<img
100
+ src="${clientLogo}"
101
+ alt=""
102
+ @error=${() => (this.clientImageOk = false)}
103
+ />`
104
+ : (0, lit_1.html) `<span class="monogram">${this.monogram(this.clientName)}</span>`}
105
+ </div>
106
+ <div class="bridge" aria-hidden="true">
107
+ <span class="dots"><span></span><span></span><span></span></span>
108
+ <span class="shield" title="Protected by Checkpoint">
109
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
110
+ <path d="M12 3l8 3v5c0 4.5-3.5 8.5-8 10-4.5-1.5-8-5.5-8-10V6l8-3z" />
111
+ <path d="m9 12 2 2 4-4" />
112
+ </svg>
113
+ </span>
114
+ <span class="dots"><span></span><span></span><span></span></span>
115
+ </div>
116
+ <div class="tile server" aria-hidden="true">
117
+ ${serverLogo && this.serverImageOk
118
+ ? (0, lit_1.html) `<img
119
+ src="${serverLogo}"
120
+ alt=""
121
+ @error=${() => (this.serverImageOk = false)}
122
+ />`
123
+ : (0, lit_1.html) `<span class="monogram">${this.monogram(this.serverName)}</span>`}
124
+ </div>
125
+ <span style="position:absolute;left:-9999px">${this.clientName || ""} connecting to ${this.serverName || ""} via Checkpoint</span>
126
+ `;
127
+ }
128
+ };
129
+ exports.ConsentConnectorHeader = ConsentConnectorHeader;
130
+ ConsentConnectorHeader.styles = (0, lit_1.css) `
131
+ :host {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ gap: 18px;
136
+ padding: 22px 0 4px;
137
+ }
138
+
139
+ .tile {
140
+ width: 56px;
141
+ height: 56px;
142
+ border-radius: 14px;
143
+ overflow: hidden;
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ flex-shrink: 0;
148
+ background: var(--cs-surface-card, #fff);
149
+ border: 1px solid var(--cs-surface-border, rgba(15, 23, 42, 0.08));
150
+ }
151
+
152
+ .tile.client {
153
+ background: var(--cs-surface-accent, #0F172A);
154
+ border-color: transparent;
155
+ }
156
+
157
+ .tile img {
158
+ width: 100%;
159
+ height: 100%;
160
+ object-fit: cover;
161
+ }
162
+
163
+ .tile .monogram {
164
+ width: 100%;
165
+ height: 100%;
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ font-weight: 600;
170
+ font-size: 22px;
171
+ }
172
+
173
+ .tile.client .monogram {
174
+ color: var(--cs-surface-accent-text, #fff);
175
+ }
176
+
177
+ .tile.server .monogram {
178
+ color: var(--cs-text-primary, #0F172A);
179
+ }
180
+
181
+ .bridge {
182
+ display: inline-flex;
183
+ align-items: center;
184
+ gap: 8px;
185
+ }
186
+
187
+ .dots {
188
+ display: inline-flex;
189
+ gap: 4px;
190
+ }
191
+
192
+ .dots span {
193
+ width: 4px;
194
+ height: 4px;
195
+ border-radius: 50%;
196
+ background: var(--cs-text-tertiary, #94A3B8);
197
+ opacity: 0.55;
198
+ }
199
+
200
+ .shield {
201
+ width: 30px;
202
+ height: 30px;
203
+ border-radius: 50%;
204
+ background: rgba(34, 197, 94, 0.14);
205
+ display: inline-flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ color: #15803D;
209
+ flex-shrink: 0;
210
+ }
211
+
212
+ .shield svg {
213
+ width: 16px;
214
+ height: 16px;
215
+ }
216
+ `;
217
+ __decorate([
218
+ (0, decorators_js_1.property)({ type: String })
219
+ ], ConsentConnectorHeader.prototype, "clientName", void 0);
220
+ __decorate([
221
+ (0, decorators_js_1.property)({ type: String })
222
+ ], ConsentConnectorHeader.prototype, "clientDid", void 0);
223
+ __decorate([
224
+ (0, decorators_js_1.property)({ type: String, attribute: "client-logo-url" })
225
+ ], ConsentConnectorHeader.prototype, "clientLogoUrl", void 0);
226
+ __decorate([
227
+ (0, decorators_js_1.property)({ type: String })
228
+ ], ConsentConnectorHeader.prototype, "serverName", void 0);
229
+ __decorate([
230
+ (0, decorators_js_1.property)({ type: String, attribute: "server-domain" })
231
+ ], ConsentConnectorHeader.prototype, "serverDomain", void 0);
232
+ __decorate([
233
+ (0, decorators_js_1.property)({ type: String, attribute: "server-logo-url" })
234
+ ], ConsentConnectorHeader.prototype, "serverLogoUrl", void 0);
235
+ __decorate([
236
+ (0, decorators_js_1.property)({ type: String, attribute: "logo-dev-token" })
237
+ ], ConsentConnectorHeader.prototype, "logoDevToken", void 0);
238
+ __decorate([
239
+ (0, decorators_js_1.state)()
240
+ ], ConsentConnectorHeader.prototype, "clientImageOk", void 0);
241
+ __decorate([
242
+ (0, decorators_js_1.state)()
243
+ ], ConsentConnectorHeader.prototype, "serverImageOk", void 0);
244
+ exports.ConsentConnectorHeader = ConsentConnectorHeader = __decorate([
245
+ (0, decorators_js_1.customElement)("consent-connector-header")
246
+ ], ConsentConnectorHeader);
247
+ //# sourceMappingURL=consent-connector-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-connector-header.js","sourceRoot":"","sources":["../../../src/components/consent-connector-header.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;AAEH,6BAA4C;AAC5C,qDAAmE;AAG5D,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,gBAAU;IAA/C;;QACL,0DAA0D;QAC9B,eAAU,GAAG,EAAE,CAAC;QAE5C,yEAAyE;QAC7C,cAAS,GAAG,EAAE,CAAC;QAE3C,6CAA6C;QACa,kBAAa,GAAG,EAAE,CAAC;QAE7E,gEAAgE;QACpC,eAAU,GAAG,EAAE,CAAC;QAE5C,2EAA2E;QACnB,iBAAY,GAAG,EAAE,CAAC;QAE1E,mDAAmD;QACO,kBAAa,GAAG,EAAE,CAAC;QAE7E;;;;WAIG;QACsD,iBAAY,GAAG,EAAE,CAAC;QAE1D,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAG,IAAI,CAAC;IAsKxC,CAAC;IA5EC;;;OAGG;IACK,cAAc,CAAC,GAAuB;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,kCAAkC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,MAA0B;QAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,OAAO,wBAAwB,OAAO,UAAU,kBAAkB,CAChE,IAAI,CAAC,YAAY,CAClB,sBAAsB,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,CAAC;IAEQ,MAAM;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE5C,OAAO,IAAA,UAAI,EAAA;;UAEL,UAAU,IAAI,IAAI,CAAC,aAAa;YAChC,CAAC,CAAC,IAAA,UAAI,EAAA;qBACK,UAAU;;uBAER,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;eAC1C;YACL,CAAC,CAAC,IAAA,UAAI,EAAA,0BAA0B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;;;;;;;;;;;;;UAavE,UAAU,IAAI,IAAI,CAAC,aAAa;YAChC,CAAC,CAAC,IAAA,UAAI,EAAA;qBACK,UAAU;;uBAER,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;eAC1C;YACL,CAAC,CAAC,IAAA,UAAI,EAAA,0BAA0B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;;qDAGzE,IAAI,CAAC,UAAU,IAAI,EACrB,kBAAkB,IAAI,CAAC,UAAU,IAAI,EAAE;KACxC,CAAC;IACJ,CAAC;;AAhMU,wDAAsB;AA6BjB,6BAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsF3B,AAtFqB,CAsFpB;AAjH0B;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAiB;AAGhB;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDAAgB;AAGe;IAAzD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;6DAAoB;AAGjD;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAiB;AAGY;IAAvD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;4DAAmB;AAGhB;IAAzD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;6DAAoB;AAOpB;IAAxD,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;4DAAmB;AAE1D;IAAhB,IAAA,qBAAK,GAAE;6DAA8B;AACrB;IAAhB,IAAA,qBAAK,GAAE;6DAA8B;iCA3B3B,sBAAsB;IADlC,IAAA,6BAAa,EAAC,0BAA0B,CAAC;GAC7B,sBAAsB,CAiMlC"}
@@ -8,7 +8,7 @@
8
8
  * @module components
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.css = exports.html = exports.ConsentCapabilitiesScreen = exports.ConsentRevocationNotice = exports.ConsentFooter = exports.ConsentActionBar = exports.ConsentCapabilityCard = exports.ConsentAgentHeader = exports.McpConsent = exports.ConsentOTPInput = exports.ConsentOAuthButton = exports.ConsentTerms = exports.ConsentPermissions = exports.ConsentShell = exports.ConsentInput = exports.ConsentCheckbox = exports.ConsentButton = void 0;
11
+ exports.css = exports.html = exports.ConsentCapabilitiesScreen = exports.ConsentConnectorHeader = exports.ConsentRevocationNotice = exports.ConsentFooter = exports.ConsentActionBar = exports.ConsentCapabilityCard = exports.ConsentAgentHeader = exports.McpConsent = exports.ConsentOTPInput = exports.ConsentOAuthButton = exports.ConsentTerms = exports.ConsentPermissions = exports.ConsentShell = exports.ConsentInput = exports.ConsentCheckbox = exports.ConsentButton = void 0;
12
12
  // Core Components (use .js extension for ESM browser compatibility)
13
13
  var consent_button_js_1 = require("./consent-button.js");
14
14
  Object.defineProperty(exports, "ConsentButton", { enumerable: true, get: function () { return consent_button_js_1.ConsentButton; } });
@@ -41,6 +41,8 @@ var consent_footer_js_1 = require("./consent-footer.js");
41
41
  Object.defineProperty(exports, "ConsentFooter", { enumerable: true, get: function () { return consent_footer_js_1.ConsentFooter; } });
42
42
  var consent_revocation_notice_js_1 = require("./consent-revocation-notice.js");
43
43
  Object.defineProperty(exports, "ConsentRevocationNotice", { enumerable: true, get: function () { return consent_revocation_notice_js_1.ConsentRevocationNotice; } });
44
+ var consent_connector_header_js_1 = require("./consent-connector-header.js");
45
+ Object.defineProperty(exports, "ConsentConnectorHeader", { enumerable: true, get: function () { return consent_connector_header_js_1.ConsentConnectorHeader; } });
44
46
  var consent_capabilities_screen_js_1 = require("./consent-capabilities-screen.js");
45
47
  Object.defineProperty(exports, "ConsentCapabilitiesScreen", { enumerable: true, get: function () { return consent_capabilities_screen_js_1.ConsentCapabilitiesScreen; } });
46
48
  // Re-export Lit utilities that consumers might need
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oEAAoE;AACpE,yDAAwE;AAA/D,kHAAA,aAAa,OAAA;AACtB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AACxB,uDAAkE;AAAzD,gHAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AAErB,sBAAsB;AACtB,mEAGkC;AAFhC,4HAAA,kBAAkB,OAAA;AAGpB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,qEAGmC;AAFjC,6HAAA,kBAAkB,OAAA;AAGpB,+DAAyD;AAAhD,uHAAA,eAAe,OAAA;AAExB,0CAA0C;AAC1C,mDAK0B;AAJxB,4GAAA,UAAU,OAAA;AAMZ,qEAAqE;AACrE,qEAA+D;AAAtD,6HAAA,kBAAkB,OAAA;AAC3B,2EAGsC;AAFpC,mIAAA,qBAAqB,OAAA;AAGvB,iEAA2D;AAAlD,yHAAA,gBAAgB,OAAA;AACzB,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AACtB,+EAAyE;AAAhE,uIAAA,uBAAuB,OAAA;AAChC,mFAG0C;AAFxC,2IAAA,yBAAyB,OAAA;AAI3B,oDAAoD;AACpD,2BAAgC;AAAvB,2FAAA,IAAI,OAAA;AAAE,0FAAA,GAAG,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oEAAoE;AACpE,yDAAwE;AAA/D,kHAAA,aAAa,OAAA;AACtB,6DAAwD;AAA/C,sHAAA,eAAe,OAAA;AACxB,uDAAkE;AAAzD,gHAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AAErB,sBAAsB;AACtB,mEAGkC;AAFhC,4HAAA,kBAAkB,OAAA;AAGpB,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AACrB,qEAGmC;AAFjC,6HAAA,kBAAkB,OAAA;AAGpB,+DAAyD;AAAhD,uHAAA,eAAe,OAAA;AAExB,0CAA0C;AAC1C,mDAK0B;AAJxB,4GAAA,UAAU,OAAA;AAMZ,qEAAqE;AACrE,qEAA+D;AAAtD,6HAAA,kBAAkB,OAAA;AAC3B,2EAGsC;AAFpC,mIAAA,qBAAqB,OAAA;AAGvB,iEAA2D;AAAlD,yHAAA,gBAAgB,OAAA;AACzB,yDAAoD;AAA3C,kHAAA,aAAa,OAAA;AACtB,+EAAyE;AAAhE,uIAAA,uBAAuB,OAAA;AAChC,6EAAuE;AAA9D,qIAAA,sBAAsB,OAAA;AAC/B,mFAG0C;AAFxC,2IAAA,yBAAyB,OAAA;AAI3B,oDAAoD;AACpD,2BAAgC;AAAvB,2FAAA,IAAI,OAAA;AAAE,0FAAA,GAAG,OAAA"}
@@ -176,7 +176,24 @@ let McpConsent = class McpConsent extends lit_1.LitElement {
176
176
  this.closeFailed = false;
177
177
  this.onCapabilitiesAllow = (event) => {
178
178
  const detail = event.detail;
179
- this.selectedScopes = Array.from(new Set(detail.selectedScopes));
179
+ // The form's `scopes` field becomes the storage key for the credential
180
+ // session token (idp-token-storage hashes the scopes array into the KV
181
+ // key). Tool execution looks up the same key using the tool protection's
182
+ // requiredScopes. If the capability registry's scope strings diverge
183
+ // from the tool protection's requiredScopes — even by spelling — the
184
+ // lookup misses, the api-client gets no Cookie, and the upstream call
185
+ // hits an unauthenticated session (e.g. Hardware World silently spawns
186
+ // a fresh CIX → cart writes vanish). Submit the URL-supplied scopes
187
+ // (which come from `protection.requiredScopes`) so storage and retrieval
188
+ // hash the same set. The capability list is still consulted for which
189
+ // permissions the user wants — denying the only capability still denies
190
+ // the grant (size === 0 path) — but the *stored* scope set tracks the
191
+ // tool's canonical required set.
192
+ if (detail.selectedCapabilityIds.length === 0) {
193
+ this.handleDeny();
194
+ return;
195
+ }
196
+ this.selectedScopes = [...this.scopes];
180
197
  // Capability layout has no terms checkbox — the WYSIWYG renders T&Cs in
181
198
  // the revocation notice text. Auto-accept so the legacy require-terms
182
199
  // guard in handleApprove doesn't fire.