@kya-os/consent 0.1.38 → 0.1.39

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 (179) hide show
  1. package/dist/bundle/index.d.ts +12 -0
  2. package/dist/bundle/index.d.ts.map +1 -1
  3. package/dist/bundle/index.js +12 -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/bundle/shell.d.ts +23 -0
  9. package/dist/bundle/shell.d.ts.map +1 -1
  10. package/dist/bundle/shell.js +25 -1
  11. package/dist/bundle/shell.js.map +1 -1
  12. package/dist/capabilities/index.d.ts +7 -0
  13. package/dist/capabilities/index.d.ts.map +1 -0
  14. package/dist/capabilities/index.js +7 -0
  15. package/dist/capabilities/index.js.map +1 -0
  16. package/dist/capabilities/registry.d.ts +29 -0
  17. package/dist/capabilities/registry.d.ts.map +1 -0
  18. package/dist/capabilities/registry.js +178 -0
  19. package/dist/capabilities/registry.js.map +1 -0
  20. package/dist/cedar/compile.d.ts +30 -0
  21. package/dist/cedar/compile.d.ts.map +1 -0
  22. package/dist/cedar/compile.js +55 -0
  23. package/dist/cedar/compile.js.map +1 -0
  24. package/dist/cedar/explain.d.ts +22 -0
  25. package/dist/cedar/explain.d.ts.map +1 -0
  26. package/dist/cedar/explain.js +72 -0
  27. package/dist/cedar/explain.js.map +1 -0
  28. package/dist/cedar/index.d.ts +8 -0
  29. package/dist/cedar/index.d.ts.map +1 -0
  30. package/dist/cedar/index.js +8 -0
  31. package/dist/cedar/index.js.map +1 -0
  32. package/dist/cjs/bundle/index.js +19 -1
  33. package/dist/cjs/bundle/index.js.map +1 -1
  34. package/dist/cjs/bundle/inline.js +2 -2
  35. package/dist/cjs/bundle/inline.js.map +1 -1
  36. package/dist/cjs/bundle/shell.js +25 -1
  37. package/dist/cjs/bundle/shell.js.map +1 -1
  38. package/dist/cjs/capabilities/index.js +12 -0
  39. package/dist/cjs/capabilities/index.js.map +1 -0
  40. package/dist/cjs/capabilities/registry.js +182 -0
  41. package/dist/cjs/capabilities/registry.js.map +1 -0
  42. package/dist/cjs/cedar/compile.js +59 -0
  43. package/dist/cjs/cedar/compile.js.map +1 -0
  44. package/dist/cjs/cedar/explain.js +75 -0
  45. package/dist/cjs/cedar/explain.js.map +1 -0
  46. package/dist/cjs/cedar/index.js +14 -0
  47. package/dist/cjs/cedar/index.js.map +1 -0
  48. package/dist/cjs/components/consent-action-bar.js +138 -0
  49. package/dist/cjs/components/consent-action-bar.js.map +1 -0
  50. package/dist/cjs/components/consent-agent-header.js +205 -0
  51. package/dist/cjs/components/consent-agent-header.js.map +1 -0
  52. package/dist/cjs/components/consent-capabilities-screen.js +309 -0
  53. package/dist/cjs/components/consent-capabilities-screen.js.map +1 -0
  54. package/dist/cjs/components/consent-capability-card.js +340 -0
  55. package/dist/cjs/components/consent-capability-card.js.map +1 -0
  56. package/dist/cjs/components/consent-footer.js +99 -0
  57. package/dist/cjs/components/consent-footer.js.map +1 -0
  58. package/dist/cjs/components/consent-revocation-notice.js +101 -0
  59. package/dist/cjs/components/consent-revocation-notice.js.map +1 -0
  60. package/dist/cjs/components/index.js +14 -1
  61. package/dist/cjs/components/index.js.map +1 -1
  62. package/dist/cjs/components/mcp-consent.js +176 -7
  63. package/dist/cjs/components/mcp-consent.js.map +1 -1
  64. package/dist/cjs/copy/index.js +12 -0
  65. package/dist/cjs/copy/index.js.map +1 -0
  66. package/dist/cjs/copy/tokens.js +101 -0
  67. package/dist/cjs/copy/tokens.js.map +1 -0
  68. package/dist/cjs/index.js +8 -0
  69. package/dist/cjs/index.js.map +1 -1
  70. package/dist/cjs/mcp-app/inline.js +2 -2
  71. package/dist/cjs/mcp-app/inline.js.map +1 -1
  72. package/dist/cjs/popup/index.js +15 -0
  73. package/dist/cjs/popup/index.js.map +1 -0
  74. package/dist/cjs/popup/launcher.js +77 -0
  75. package/dist/cjs/popup/launcher.js.map +1 -0
  76. package/dist/cjs/schemas/capabilities.schemas.js +129 -0
  77. package/dist/cjs/schemas/capabilities.schemas.js.map +1 -0
  78. package/dist/cjs/schemas/config.schemas.js +18 -0
  79. package/dist/cjs/schemas/config.schemas.js.map +1 -1
  80. package/dist/cjs/schemas/index.js +1 -0
  81. package/dist/cjs/schemas/index.js.map +1 -1
  82. package/dist/cjs/styles/index.js +1 -0
  83. package/dist/cjs/styles/index.js.map +1 -1
  84. package/dist/cjs/styles/theme.js +86 -0
  85. package/dist/cjs/styles/theme.js.map +1 -0
  86. package/dist/cjs/types/capabilities.types.js +12 -0
  87. package/dist/cjs/types/capabilities.types.js.map +1 -0
  88. package/dist/cjs/types/index.js +1 -0
  89. package/dist/cjs/types/index.js.map +1 -1
  90. package/dist/components/consent-action-bar.d.ts +30 -0
  91. package/dist/components/consent-action-bar.d.ts.map +1 -0
  92. package/dist/components/consent-action-bar.js +135 -0
  93. package/dist/components/consent-action-bar.js.map +1 -0
  94. package/dist/components/consent-agent-header.d.ts +31 -0
  95. package/dist/components/consent-agent-header.d.ts.map +1 -0
  96. package/dist/components/consent-agent-header.js +202 -0
  97. package/dist/components/consent-agent-header.js.map +1 -0
  98. package/dist/components/consent-capabilities-screen.d.ts +62 -0
  99. package/dist/components/consent-capabilities-screen.d.ts.map +1 -0
  100. package/dist/components/consent-capabilities-screen.js +306 -0
  101. package/dist/components/consent-capabilities-screen.js.map +1 -0
  102. package/dist/components/consent-capability-card.d.ts +44 -0
  103. package/dist/components/consent-capability-card.d.ts.map +1 -0
  104. package/dist/components/consent-capability-card.js +337 -0
  105. package/dist/components/consent-capability-card.js.map +1 -0
  106. package/dist/components/consent-footer.d.ts +22 -0
  107. package/dist/components/consent-footer.d.ts.map +1 -0
  108. package/dist/components/consent-footer.js +96 -0
  109. package/dist/components/consent-footer.js.map +1 -0
  110. package/dist/components/consent-revocation-notice.d.ts +22 -0
  111. package/dist/components/consent-revocation-notice.d.ts.map +1 -0
  112. package/dist/components/consent-revocation-notice.js +98 -0
  113. package/dist/components/consent-revocation-notice.js.map +1 -0
  114. package/dist/components/index.d.ts +6 -0
  115. package/dist/components/index.d.ts.map +1 -1
  116. package/dist/components/index.js +7 -0
  117. package/dist/components/index.js.map +1 -1
  118. package/dist/components/mcp-consent.d.ts +41 -0
  119. package/dist/components/mcp-consent.d.ts.map +1 -1
  120. package/dist/components/mcp-consent.js +176 -7
  121. package/dist/components/mcp-consent.js.map +1 -1
  122. package/dist/consent.js +1374 -7
  123. package/dist/consent.min.js +727 -96
  124. package/dist/copy/index.d.ts +8 -0
  125. package/dist/copy/index.d.ts.map +1 -0
  126. package/dist/copy/index.js +7 -0
  127. package/dist/copy/index.js.map +1 -0
  128. package/dist/copy/tokens.d.ts +93 -0
  129. package/dist/copy/tokens.d.ts.map +1 -0
  130. package/dist/copy/tokens.js +97 -0
  131. package/dist/copy/tokens.js.map +1 -0
  132. package/dist/index.d.ts +4 -0
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +8 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/mcp-app/inline.d.ts.map +1 -1
  137. package/dist/mcp-app/inline.js +2 -2
  138. package/dist/mcp-app/inline.js.map +1 -1
  139. package/dist/popup/index.d.ts +8 -0
  140. package/dist/popup/index.d.ts.map +1 -0
  141. package/dist/popup/index.js +7 -0
  142. package/dist/popup/index.js.map +1 -0
  143. package/dist/popup/launcher.d.ts +81 -0
  144. package/dist/popup/launcher.d.ts.map +1 -0
  145. package/dist/popup/launcher.js +71 -0
  146. package/dist/popup/launcher.js.map +1 -0
  147. package/dist/schemas/api.schemas.d.ts +354 -150
  148. package/dist/schemas/api.schemas.d.ts.map +1 -1
  149. package/dist/schemas/capabilities.schemas.d.ts +186 -0
  150. package/dist/schemas/capabilities.schemas.d.ts.map +1 -0
  151. package/dist/schemas/capabilities.schemas.js +123 -0
  152. package/dist/schemas/capabilities.schemas.js.map +1 -0
  153. package/dist/schemas/config.schemas.d.ts +452 -156
  154. package/dist/schemas/config.schemas.d.ts.map +1 -1
  155. package/dist/schemas/config.schemas.js +18 -0
  156. package/dist/schemas/config.schemas.js.map +1 -1
  157. package/dist/schemas/index.d.ts +1 -0
  158. package/dist/schemas/index.d.ts.map +1 -1
  159. package/dist/schemas/index.js +1 -0
  160. package/dist/schemas/index.js.map +1 -1
  161. package/dist/styles/index.d.ts +1 -0
  162. package/dist/styles/index.d.ts.map +1 -1
  163. package/dist/styles/index.js +1 -0
  164. package/dist/styles/index.js.map +1 -1
  165. package/dist/styles/theme.d.ts +72 -0
  166. package/dist/styles/theme.d.ts.map +1 -0
  167. package/dist/styles/theme.js +81 -0
  168. package/dist/styles/theme.js.map +1 -0
  169. package/dist/types/capabilities.types.d.ts +126 -0
  170. package/dist/types/capabilities.types.d.ts.map +1 -0
  171. package/dist/types/capabilities.types.js +11 -0
  172. package/dist/types/capabilities.types.js.map +1 -0
  173. package/dist/types/config.types.d.ts +33 -0
  174. package/dist/types/config.types.d.ts.map +1 -1
  175. package/dist/types/index.d.ts +1 -0
  176. package/dist/types/index.d.ts.map +1 -1
  177. package/dist/types/index.js +1 -0
  178. package/dist/types/index.js.map +1 -1
  179. 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,q08NAAq08N,CAAC;AAE528N;;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,u68PAAu68P,CAAC;AAE988P;;GAEG;AACU,QAAA,mBAAmB,GAAW,MAAM,CAAC"}
@@ -45,18 +45,32 @@ const escape_js_1 = require("../security/escape.js");
45
45
  * ```
46
46
  */
47
47
  function generateConsentShell(options) {
48
- const { config, tool, scopes, agentDid, sessionId, projectId, serverUrl, oauthIdentity, bundlePath = '/consent.js', pageTitle = 'Permission Request', nonce, authMode, provider, csrfToken, credentialProviderType, credentialProvider, userDid, // CRITICAL: Bypasses KV consistency issues
48
+ const { config, tool, scopes, agentDid, sessionId, projectId, serverUrl, oauthIdentity, bundlePath = '/consent.js', pageTitle = 'Permission Request', nonce, authMode, agentName, provider, csrfToken, credentialProviderType, credentialProvider, userDid, // CRITICAL: Bypasses KV consistency issues
49
49
  credentialUserEmail, // User email from credential provider
50
50
  credentialProviderUserId, // Provider's user ID (e.g., customer ID)
51
51
  oauthUrl, // Pre-built OAuth authorization URL
52
52
  authorizationType, // Dynamic authorization type from tool protection
53
53
  oauthProviderType, // OAuth provider type from prior OAuth auth step
54
54
  oauthProviderName, // OAuth provider name (e.g., 'custom', 'github')
55
+ capabilities, // Operator-authored capability groups (humanized layout)
56
+ agentMetadata, // Resolved agent identity tile
57
+ consentTheme, // Theme override (`light`/`dark`)
58
+ orgName, // Org name for headline + footer
59
+ headlineVerb, // Operator-set headline verb
60
+ revocationPath, // Path the user can visit to revoke
61
+ inactivityDays, // Days of inactivity before auto-revocation
62
+ howItWorksUrl, // URL backing "How does this work?"
63
+ cedarContext, // Cedar template context for "View policy" disclosures
55
64
  } = options;
56
65
  // Safely serialize config as JSON for attribute
57
66
  const configJson = JSON.stringify(config);
58
67
  const scopesJson = JSON.stringify(scopes);
59
68
  const oauthJson = oauthIdentity ? JSON.stringify(oauthIdentity) : null;
69
+ const capabilitiesJson = capabilities && capabilities.length > 0 ? JSON.stringify(capabilities) : null;
70
+ const agentMetadataJson = agentMetadata
71
+ ? JSON.stringify(agentMetadata)
72
+ : null;
73
+ const cedarContextJson = cedarContext ? JSON.stringify(cedarContext) : null;
60
74
  // Build nonce attribute if provided
61
75
  const nonceAttr = nonce ? ` nonce="${(0, escape_js_1.escapeAttr)(nonce)}"` : '';
62
76
  return `<!DOCTYPE html>
@@ -196,6 +210,7 @@ function generateConsentShell(options) {
196
210
  server-url="${(0, escape_js_1.escapeAttr)(serverUrl)}"
197
211
  ${oauthJson ? `oauth-identity='${(0, escape_js_1.escapeAttr)(oauthJson)}'` : ''}
198
212
  ${authMode ? `auth-mode="${(0, escape_js_1.escapeAttr)(authMode)}"` : ''}
213
+ ${agentName ? `agent-name="${(0, escape_js_1.escapeAttr)(agentName)}"` : ''}
199
214
  ${provider ? `provider="${(0, escape_js_1.escapeAttr)(provider)}"` : ''}
200
215
  ${csrfToken ? `csrf-token="${(0, escape_js_1.escapeAttr)(csrfToken)}"` : ''}
201
216
  ${credentialProviderType ? `credential-provider-type="${(0, escape_js_1.escapeAttr)(credentialProviderType)}"` : ''}
@@ -207,6 +222,15 @@ function generateConsentShell(options) {
207
222
  ${authorizationType ? `authorization-type="${(0, escape_js_1.escapeAttr)(authorizationType)}"` : ''}
208
223
  ${oauthProviderType ? `oauth-provider-type="${(0, escape_js_1.escapeAttr)(oauthProviderType)}"` : ''}
209
224
  ${oauthProviderName ? `oauth-provider="${(0, escape_js_1.escapeAttr)(oauthProviderName)}"` : ''}
225
+ ${capabilitiesJson ? `capabilities='${(0, escape_js_1.escapeAttr)(capabilitiesJson)}'` : ''}
226
+ ${agentMetadataJson ? `agent-metadata='${(0, escape_js_1.escapeAttr)(agentMetadataJson)}'` : ''}
227
+ ${cedarContextJson ? `cedar-context='${(0, escape_js_1.escapeAttr)(cedarContextJson)}'` : ''}
228
+ ${consentTheme ? `consent-theme="${(0, escape_js_1.escapeAttr)(consentTheme)}"` : ''}
229
+ ${orgName ? `org-name="${(0, escape_js_1.escapeAttr)(orgName)}"` : ''}
230
+ ${headlineVerb ? `headline-verb="${(0, escape_js_1.escapeAttr)(headlineVerb)}"` : ''}
231
+ ${revocationPath ? `revocation-path="${(0, escape_js_1.escapeAttr)(revocationPath)}"` : ''}
232
+ ${typeof inactivityDays === 'number' ? `inactivity-days="${(0, escape_js_1.escapeAttr)(String(inactivityDays))}"` : ''}
233
+ ${howItWorksUrl ? `how-it-works-url="${(0, escape_js_1.escapeAttr)(howItWorksUrl)}"` : ''}
210
234
  ></mcp-consent>
211
235
 
212
236
  <!-- Loading skeleton (hidden once component is defined) -->
@@ -1 +1 @@
1
- {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/bundle/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/bundle/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Capability registry exports.
4
+ *
5
+ * @module @kya-os/consent/capabilities
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.resolveCapabilitiesForScopes = exports.DEFAULT_CAPABILITIES = void 0;
9
+ var registry_js_1 = require("./registry.js");
10
+ Object.defineProperty(exports, "DEFAULT_CAPABILITIES", { enumerable: true, get: function () { return registry_js_1.DEFAULT_CAPABILITIES; } });
11
+ Object.defineProperty(exports, "resolveCapabilitiesForScopes", { enumerable: true, get: function () { return registry_js_1.resolveCapabilitiesForScopes; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAAmF;AAA1E,mHAAA,oBAAoB,OAAA;AAAE,2HAAA,4BAA4B,OAAA"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ /**
3
+ * Default Capability Registry
4
+ *
5
+ * Built-in capability definitions for common scopes. Operators override these
6
+ * via the WYSIWYG editor; the registry is the seed and the fallback when no
7
+ * override is present.
8
+ *
9
+ * Each default capability ships with an operator-authored Cedar fragment that
10
+ * uses templated placeholders ({{agent_did}}, {{user_did}}, {{org}},
11
+ * {{deployment}}). Placeholders are bound at compile time via
12
+ * `compileSingleCapability` / `compileCapabilitiesToCedar`.
13
+ *
14
+ * @module @kya-os/consent/capabilities/registry
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.DEFAULT_CAPABILITIES = void 0;
18
+ exports.resolveCapabilitiesForScopes = resolveCapabilitiesForScopes;
19
+ /**
20
+ * Default capabilities keyed by capability id. Each entry is a complete
21
+ * `Capability` record, ready to render or to use as a template the operator
22
+ * customizes in the WYSIWYG.
23
+ */
24
+ exports.DEFAULT_CAPABILITIES = {
25
+ "cart.browse": {
26
+ id: "cart.browse",
27
+ label: "Browse products and check prices",
28
+ description: "Look at what's for sale, see what's in stock, and compare options.",
29
+ icon: "search",
30
+ riskLevel: "low",
31
+ defaultOn: true,
32
+ cedar: [
33
+ "permit (",
34
+ ' principal == Agent::"{{agent_did}}",',
35
+ " action in [",
36
+ ' Action::"get-products:execute",',
37
+ ' Action::"get-cart:execute",',
38
+ ' Action::"get-brands:execute",',
39
+ ' Action::"get-brand:execute"',
40
+ " ],",
41
+ ' resource in Org::"{{org}}"::Catalog::"*"',
42
+ ");",
43
+ ].join("\n"),
44
+ scopes: [
45
+ "get-products:execute",
46
+ "get-cart:execute",
47
+ "get-brands:execute",
48
+ "get-brand:execute",
49
+ ],
50
+ category: "Browse",
51
+ },
52
+ "cart.add": {
53
+ id: "cart.add",
54
+ label: "Add items to your cart",
55
+ description: "Put things in your shopping cart so you can review before buying.",
56
+ icon: "cart",
57
+ riskLevel: "medium",
58
+ defaultOn: true,
59
+ cedar: [
60
+ "permit (",
61
+ ' principal == Agent::"{{agent_did}}",',
62
+ ' action == Action::"add-to-cart:execute",',
63
+ ' resource in Org::"{{org}}"::Cart::"*"',
64
+ ");",
65
+ ].join("\n"),
66
+ scopes: ["add-to-cart:execute"],
67
+ category: "Cart",
68
+ },
69
+ "payment.use-saved": {
70
+ id: "payment.use-saved",
71
+ label: "Use your saved payment methods",
72
+ description: "Pay with cards already on your account. The agent never sees the card numbers.",
73
+ icon: "card",
74
+ riskLevel: "high",
75
+ defaultOn: true,
76
+ cedar: [
77
+ "permit (",
78
+ ' principal == Agent::"{{agent_did}}",',
79
+ ' action == Action::"payment:use-saved",',
80
+ ' resource in User::"{{user_did}}"::PaymentMethod::"saved"',
81
+ ");",
82
+ ].join("\n"),
83
+ scopes: ["payment:use-saved"],
84
+ category: "Checkout",
85
+ },
86
+ "shipping.use-saved": {
87
+ id: "shipping.use-saved",
88
+ label: "Ship to your saved addresses",
89
+ description: "Send orders only to addresses already on file — your home, your office, etc.",
90
+ icon: "pin",
91
+ riskLevel: "medium",
92
+ defaultOn: true,
93
+ cedar: [
94
+ "permit (",
95
+ ' principal == Agent::"{{agent_did}}",',
96
+ ' action == Action::"shipping:use-saved",',
97
+ ' resource in User::"{{user_did}}"::Address::"saved"',
98
+ ");",
99
+ ].join("\n"),
100
+ scopes: ["shipping:use-saved"],
101
+ category: "Checkout",
102
+ },
103
+ "shipping.new": {
104
+ id: "shipping.new",
105
+ label: "Ship to new addresses",
106
+ description: "Send orders to places you've never shipped to before. Off by default — turn on only if you want the agent to ship gifts or deliver to new locations.",
107
+ icon: "pin-new",
108
+ riskLevel: "high",
109
+ defaultOn: false,
110
+ cedar: [
111
+ "permit (",
112
+ ' principal == Agent::"{{agent_did}}",',
113
+ ' action == Action::"shipping:ship-new",',
114
+ ' resource in User::"{{user_did}}"::Address::"new"',
115
+ ");",
116
+ ].join("\n"),
117
+ scopes: ["shipping:ship-new"],
118
+ category: "Checkout",
119
+ },
120
+ };
121
+ /**
122
+ * Resolve a list of scopes to capability records. Operator overrides win over
123
+ * the default registry; scopes that match no capability fall through as
124
+ * "unknown" capabilities so the consent screen can still render them as raw
125
+ * permission rows.
126
+ */
127
+ function resolveCapabilitiesForScopes(scopes, overrides = []) {
128
+ const indexedOverrides = new Map();
129
+ for (const override of overrides) {
130
+ indexedOverrides.set(override.id, override);
131
+ for (const scope of override.scopes) {
132
+ indexedOverrides.set(`scope:${scope}`, override);
133
+ }
134
+ }
135
+ const matched = new Map();
136
+ const unmatchedScopes = [];
137
+ for (const scope of scopes) {
138
+ const overrideMatch = indexedOverrides.get(`scope:${scope}`);
139
+ if (overrideMatch) {
140
+ matched.set(overrideMatch.id, overrideMatch);
141
+ continue;
142
+ }
143
+ const defaultMatch = Object.values(exports.DEFAULT_CAPABILITIES).find((c) => c.scopes.includes(scope));
144
+ if (defaultMatch) {
145
+ const override = indexedOverrides.get(defaultMatch.id);
146
+ matched.set(defaultMatch.id, override ?? defaultMatch);
147
+ continue;
148
+ }
149
+ unmatchedScopes.push(scope);
150
+ }
151
+ const resolved = Array.from(matched.values());
152
+ for (const scope of unmatchedScopes) {
153
+ resolved.push(buildUnknownCapability(scope));
154
+ }
155
+ return resolved;
156
+ }
157
+ /**
158
+ * Build a placeholder capability for a scope we don't recognize. Keeps the
159
+ * consent screen renderable for never-before-seen scopes without crashing.
160
+ */
161
+ function buildUnknownCapability(scope) {
162
+ const label = scope
163
+ .replace(/[_:.-]/g, " ")
164
+ .replace(/\b\w/g, (c) => c.toUpperCase());
165
+ return {
166
+ id: `unknown.${scope.replace(/[^a-z0-9]/gi, "-").toLowerCase()}`,
167
+ label,
168
+ description: `Permission required by the ${scope} scope.`,
169
+ icon: "neutral",
170
+ riskLevel: "medium",
171
+ defaultOn: false,
172
+ cedar: [
173
+ "permit (",
174
+ ' principal == Agent::"{{agent_did}}",',
175
+ ` action == Action::"${scope}",`,
176
+ ' resource in Org::"{{org}}"::Resource::"*"',
177
+ ");",
178
+ ].join("\n"),
179
+ scopes: [scope],
180
+ };
181
+ }
182
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/capabilities/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Cedar Policy Compilation
4
+ *
5
+ * Pure-string composition of Cedar policy fragments. We compile the granted
6
+ * `Capability[]` into one Cedar policy (a) attached as `cedarPolicy` claim on
7
+ * the delegation VC, (b) shown in the success-screen "View policy" disclosure.
8
+ *
9
+ * No `@cedar-policy/cedar-wasm` dependency — this module only emits Cedar
10
+ * source text. Runtime evaluation, if ever added, lives elsewhere.
11
+ *
12
+ * @module @kya-os/consent/cedar/compile
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.compileSingleCapability = compileSingleCapability;
16
+ exports.compileCapabilitiesToCedar = compileCapabilitiesToCedar;
17
+ const PLACEHOLDER_PATTERN = /\{\{\s*(agent_did|user_did|org|deployment)\s*\}\}/g;
18
+ /**
19
+ * Compile a single capability's Cedar fragment by binding placeholders to the
20
+ * given template context. Used by the per-row "View policy" disclosure so the
21
+ * end user sees the same exact Cedar source that lands on the VC.
22
+ *
23
+ * Throws when the fragment references an unknown placeholder or when the
24
+ * compiled output is empty.
25
+ */
26
+ function compileSingleCapability(capability, context) {
27
+ const compiled = capability.cedar.replace(PLACEHOLDER_PATTERN, (_, key) => {
28
+ const value = context[key];
29
+ if (typeof value !== "string" || value.length === 0) {
30
+ throw new Error(`Cedar template context missing required value for placeholder \`${key}\``);
31
+ }
32
+ return value;
33
+ });
34
+ if (compiled.trim().length === 0) {
35
+ throw new Error(`Cedar fragment for capability \`${capability.id}\` is empty after compilation`);
36
+ }
37
+ return compiled;
38
+ }
39
+ /**
40
+ * Compile the granted capability set into one Cedar policy ready to attach to
41
+ * a delegation VC. Each capability's fragment is bound and concatenated with
42
+ * a comment header that records the capability id and label, so reviewers can
43
+ * map a `permit (...)` block back to the row the user clicked.
44
+ */
45
+ function compileCapabilitiesToCedar(grants, context) {
46
+ if (grants.length === 0) {
47
+ return "";
48
+ }
49
+ const blocks = grants.map((grant) => {
50
+ const compiled = compileSingleCapability(grant, context);
51
+ return [
52
+ `// capability: ${grant.id} — ${grant.label}`,
53
+ `// risk: ${grant.riskLevel}; default-on: ${String(grant.defaultOn)}`,
54
+ compiled.trim(),
55
+ ].join("\n");
56
+ });
57
+ return blocks.join("\n\n");
58
+ }
59
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/cedar/compile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAiBH,0DAqBC;AAQD,gEAkBC;AAzDD,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AAEjF;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACrC,UAAsB,EACtB,OAA6B;IAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAiC,CAAC,CAAC;QACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,mEAAmE,GAAG,IAAI,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,CAAC,EAAE,+BAA+B,CAChF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CACxC,MAAoB,EACpB,OAA6B;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO;YACL,kBAAkB,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE;YAC7C,YAAY,KAAK,CAAC,SAAS,iBAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrE,QAAQ,CAAC,IAAI,EAAE;SAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Cedar Policy Plain-Language Gloss
4
+ *
5
+ * Extracts a human-readable summary from a Cedar fragment so the per-row
6
+ * "View policy" disclosure can display both the raw Cedar and a sentence the
7
+ * end user can parse without knowing Cedar.
8
+ *
9
+ * The implementation is intentionally regex-based and tolerant. We never
10
+ * promise to gloss every Cedar feature — we promise the gloss is *useful*
11
+ * for the fragments we ship and authors typically write, and that the
12
+ * function never throws on novel input (it returns best-effort fields).
13
+ *
14
+ * @module @kya-os/consent/cedar/explain
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.explainCedarFragment = explainCedarFragment;
18
+ const ACTION_SINGLE = /action\s*==\s*Action::"([^"]+)"/g;
19
+ const ACTION_LIST = /action\s+in\s*\[([^\]]+)\]/g;
20
+ const ACTION_STRING_IN_LIST = /Action::"([^"]+)"/g;
21
+ const RESOURCE_IN = /resource\s+in\s+([^,)\n]+)/i;
22
+ const RESOURCE_EQ = /resource\s*==\s*([^,)\n]+)/i;
23
+ const CONDITION_BLOCK = /(when|unless)\s*\{([^}]+)\}/g;
24
+ /**
25
+ * Extract actions, resource expression, and condition clauses from a Cedar
26
+ * fragment. Returns best-effort fields; missing elements come back empty
27
+ * rather than throwing.
28
+ */
29
+ function explainCedarFragment(cedar) {
30
+ return {
31
+ actions: extractActions(cedar),
32
+ resource: extractResource(cedar),
33
+ conditions: extractConditions(cedar),
34
+ };
35
+ }
36
+ function extractActions(cedar) {
37
+ const actions = new Set();
38
+ for (const match of cedar.matchAll(ACTION_SINGLE)) {
39
+ if (match[1])
40
+ actions.add(match[1]);
41
+ }
42
+ for (const listMatch of cedar.matchAll(ACTION_LIST)) {
43
+ const inner = listMatch[1];
44
+ if (!inner)
45
+ continue;
46
+ for (const stringMatch of inner.matchAll(ACTION_STRING_IN_LIST)) {
47
+ if (stringMatch[1])
48
+ actions.add(stringMatch[1]);
49
+ }
50
+ }
51
+ return Array.from(actions);
52
+ }
53
+ function extractResource(cedar) {
54
+ const inMatch = RESOURCE_IN.exec(cedar);
55
+ if (inMatch && inMatch[1]) {
56
+ return inMatch[1].trim();
57
+ }
58
+ const eqMatch = RESOURCE_EQ.exec(cedar);
59
+ if (eqMatch && eqMatch[1]) {
60
+ return eqMatch[1].trim();
61
+ }
62
+ return "";
63
+ }
64
+ function extractConditions(cedar) {
65
+ const conditions = [];
66
+ for (const match of cedar.matchAll(CONDITION_BLOCK)) {
67
+ const keyword = match[1];
68
+ const body = match[2];
69
+ if (!keyword || !body)
70
+ continue;
71
+ conditions.push(`${keyword} ${body.trim().replace(/\s+/g, " ")}`);
72
+ }
73
+ return conditions;
74
+ }
75
+ //# sourceMappingURL=explain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cedar/explain.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAgBH,oDAMC;AAlBD,MAAM,aAAa,GAAG,kCAAkC,CAAC;AACzD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AACnD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAClD,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;QAChC,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAChE,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,SAAS;QAChC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Cedar policy compilation + plain-language gloss exports.
4
+ *
5
+ * @module @kya-os/consent/cedar
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.explainCedarFragment = exports.compileCapabilitiesToCedar = exports.compileSingleCapability = void 0;
9
+ var compile_js_1 = require("./compile.js");
10
+ Object.defineProperty(exports, "compileSingleCapability", { enumerable: true, get: function () { return compile_js_1.compileSingleCapability; } });
11
+ Object.defineProperty(exports, "compileCapabilitiesToCedar", { enumerable: true, get: function () { return compile_js_1.compileCapabilitiesToCedar; } });
12
+ var explain_js_1 = require("./explain.js");
13
+ Object.defineProperty(exports, "explainCedarFragment", { enumerable: true, get: function () { return explain_js_1.explainCedarFragment; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cedar/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAGsB;AAFpB,qHAAA,uBAAuB,OAAA;AACvB,wHAAA,0BAA0B,OAAA;AAE5B,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * Consent Action Bar
4
+ *
5
+ * Primary `Allow {Agent} →` (light theme) / `Allow access` (dark theme) +
6
+ * secondary `Not now` (light) / `Deny` (dark). Shared between the consent
7
+ * screen and the (future-migrated) gateway consent.
8
+ *
9
+ * Emits `consent-allow` and `consent-deny` events; the parent decides what to
10
+ * do (typically: submit the form on allow, close window on deny).
11
+ *
12
+ * @module components/consent-action-bar
13
+ */
14
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ 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;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.ConsentActionBar = void 0;
22
+ const lit_1 = require("lit");
23
+ const decorators_js_1 = require("lit/decorators.js");
24
+ const tokens_js_1 = require("../copy/tokens.js");
25
+ let ConsentActionBar = class ConsentActionBar extends lit_1.LitElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.agentName = "";
29
+ this.theme = "light";
30
+ this.disabled = false;
31
+ this.loading = false;
32
+ }
33
+ emitAllow() {
34
+ if (this.disabled || this.loading)
35
+ return;
36
+ this.dispatchEvent(new CustomEvent("consent-allow", { bubbles: true, composed: true }));
37
+ }
38
+ emitDeny() {
39
+ if (this.loading)
40
+ return;
41
+ this.dispatchEvent(new CustomEvent("consent-deny", { bubbles: true, composed: true }));
42
+ }
43
+ render() {
44
+ const allowLabel = this.theme === "dark"
45
+ ? tokens_js_1.CONSENT_COPY_TOKENS.actions.allowAccess
46
+ : `${(0, tokens_js_1.formatToken)(tokens_js_1.CONSENT_COPY_TOKENS.actions.allowAgentTemplate, {
47
+ Agent: this.agentName || "this agent",
48
+ })} →`;
49
+ const denyLabel = this.theme === "dark"
50
+ ? tokens_js_1.CONSENT_COPY_TOKENS.actions.deny
51
+ : tokens_js_1.CONSENT_COPY_TOKENS.actions.notNow;
52
+ return (0, lit_1.html) `
53
+ <button
54
+ class="primary"
55
+ type="button"
56
+ ?disabled=${this.disabled || this.loading}
57
+ @click=${this.emitAllow}
58
+ >
59
+ ${allowLabel}
60
+ </button>
61
+ <button
62
+ class="secondary"
63
+ type="button"
64
+ ?disabled=${this.loading}
65
+ @click=${this.emitDeny}
66
+ >
67
+ ${denyLabel}
68
+ </button>
69
+ `;
70
+ }
71
+ };
72
+ exports.ConsentActionBar = ConsentActionBar;
73
+ ConsentActionBar.styles = (0, lit_1.css) `
74
+ :host {
75
+ display: flex;
76
+ flex-direction: column;
77
+ gap: 4px;
78
+ width: 100%;
79
+ }
80
+
81
+ button {
82
+ width: 100%;
83
+ padding: 14px 18px;
84
+ border-radius: 999px;
85
+ font-size: 15px;
86
+ font-weight: 500;
87
+ font-family: inherit;
88
+ cursor: pointer;
89
+ transition: opacity 0.15s ease, transform 0.05s ease;
90
+ border: none;
91
+ }
92
+
93
+ button:disabled {
94
+ opacity: 0.5;
95
+ cursor: not-allowed;
96
+ }
97
+
98
+ button:focus-visible {
99
+ outline: 2px solid var(--cs-focus-ring, #0F172A);
100
+ outline-offset: 3px;
101
+ }
102
+
103
+ .primary {
104
+ background: var(--cs-surface-accent, #0F172A);
105
+ color: var(--cs-surface-accent-text, #FFFFFF);
106
+ }
107
+
108
+ .primary:hover:not(:disabled) {
109
+ opacity: 0.92;
110
+ }
111
+
112
+ .secondary {
113
+ background: transparent;
114
+ color: var(--cs-text-secondary, #334155);
115
+ padding: 10px 18px;
116
+ font-weight: 500;
117
+ }
118
+
119
+ .secondary:hover:not(:disabled) {
120
+ color: var(--cs-text-primary, #0F172A);
121
+ }
122
+ `;
123
+ __decorate([
124
+ (0, decorators_js_1.property)({ type: String })
125
+ ], ConsentActionBar.prototype, "agentName", void 0);
126
+ __decorate([
127
+ (0, decorators_js_1.property)({ type: String })
128
+ ], ConsentActionBar.prototype, "theme", void 0);
129
+ __decorate([
130
+ (0, decorators_js_1.property)({ type: Boolean })
131
+ ], ConsentActionBar.prototype, "disabled", void 0);
132
+ __decorate([
133
+ (0, decorators_js_1.property)({ type: Boolean })
134
+ ], ConsentActionBar.prototype, "loading", void 0);
135
+ exports.ConsentActionBar = ConsentActionBar = __decorate([
136
+ (0, decorators_js_1.customElement)("consent-action-bar")
137
+ ], ConsentActionBar);
138
+ //# sourceMappingURL=consent-action-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-action-bar.js","sourceRoot":"","sources":["../../../src/components/consent-action-bar.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;AAEH,6BAA4C;AAC5C,qDAA4D;AAE5D,iDAAqE;AAI9D,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gBAAU;IAAzC;;QACuB,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAiB,OAAO,CAAC;QAC7B,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,KAAK,CAAC;IAkG/C,CAAC;IA7CS,SAAS;QACf,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1C,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACpE,CAAC;IACJ,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,WAAW;YACzC,CAAC,CAAC,GAAG,IAAA,uBAAW,EAAC,+BAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBAC7D,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;aACtC,CAAC,IAAI,CAAC;QACb,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,KAAK,MAAM;YACnB,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,IAAI;YAClC,CAAC,CAAC,+BAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;QAEzC,OAAO,IAAA,UAAI,EAAA;;;;oBAIK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;iBAChC,IAAI,CAAC,SAAS;;UAErB,UAAU;;;;;oBAKA,IAAI,CAAC,OAAO;iBACf,IAAI,CAAC,QAAQ;;UAEpB,SAAS;;KAEd,CAAC;IACJ,CAAC;;AArGU,4CAAgB;AAMX,uBAAM,GAAG,IAAA,SAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiD3B,AAjDqB,CAiDpB;AAtD0B;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAgB;AACf;IAA3B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAA+B;AAC7B;IAA5B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAAkB;AACjB;IAA5B,IAAA,wBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAAiB;2BAJlC,gBAAgB;IAD5B,IAAA,6BAAa,EAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAsG5B"}