@kya-os/consent 0.1.37 → 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.
- package/dist/bundle/index.d.ts +12 -0
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +12 -0
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/inline.d.ts.map +1 -1
- package/dist/bundle/inline.js +2 -2
- package/dist/bundle/inline.js.map +1 -1
- package/dist/bundle/shell.d.ts +23 -0
- package/dist/bundle/shell.d.ts.map +1 -1
- package/dist/bundle/shell.js +25 -1
- package/dist/bundle/shell.js.map +1 -1
- package/dist/capabilities/index.d.ts +7 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +7 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +29 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +178 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/cedar/compile.d.ts +30 -0
- package/dist/cedar/compile.d.ts.map +1 -0
- package/dist/cedar/compile.js +55 -0
- package/dist/cedar/compile.js.map +1 -0
- package/dist/cedar/explain.d.ts +22 -0
- package/dist/cedar/explain.d.ts.map +1 -0
- package/dist/cedar/explain.js +72 -0
- package/dist/cedar/explain.js.map +1 -0
- package/dist/cedar/index.d.ts +8 -0
- package/dist/cedar/index.d.ts.map +1 -0
- package/dist/cedar/index.js +8 -0
- package/dist/cedar/index.js.map +1 -0
- package/dist/cjs/bundle/index.js +19 -1
- package/dist/cjs/bundle/index.js.map +1 -1
- package/dist/cjs/bundle/inline.js +2 -2
- package/dist/cjs/bundle/inline.js.map +1 -1
- package/dist/cjs/bundle/shell.js +25 -1
- package/dist/cjs/bundle/shell.js.map +1 -1
- package/dist/cjs/capabilities/index.js +12 -0
- package/dist/cjs/capabilities/index.js.map +1 -0
- package/dist/cjs/capabilities/registry.js +182 -0
- package/dist/cjs/capabilities/registry.js.map +1 -0
- package/dist/cjs/cedar/compile.js +59 -0
- package/dist/cjs/cedar/compile.js.map +1 -0
- package/dist/cjs/cedar/explain.js +75 -0
- package/dist/cjs/cedar/explain.js.map +1 -0
- package/dist/cjs/cedar/index.js +14 -0
- package/dist/cjs/cedar/index.js.map +1 -0
- package/dist/cjs/components/consent-action-bar.js +138 -0
- package/dist/cjs/components/consent-action-bar.js.map +1 -0
- package/dist/cjs/components/consent-agent-header.js +205 -0
- package/dist/cjs/components/consent-agent-header.js.map +1 -0
- package/dist/cjs/components/consent-capabilities-screen.js +309 -0
- package/dist/cjs/components/consent-capabilities-screen.js.map +1 -0
- package/dist/cjs/components/consent-capability-card.js +340 -0
- package/dist/cjs/components/consent-capability-card.js.map +1 -0
- package/dist/cjs/components/consent-footer.js +99 -0
- package/dist/cjs/components/consent-footer.js.map +1 -0
- package/dist/cjs/components/consent-revocation-notice.js +101 -0
- package/dist/cjs/components/consent-revocation-notice.js.map +1 -0
- package/dist/cjs/components/index.js +14 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/mcp-consent.js +176 -7
- package/dist/cjs/components/mcp-consent.js.map +1 -1
- package/dist/cjs/copy/index.js +12 -0
- package/dist/cjs/copy/index.js.map +1 -0
- package/dist/cjs/copy/tokens.js +101 -0
- package/dist/cjs/copy/tokens.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp-app/index.js +15 -0
- package/dist/cjs/mcp-app/index.js.map +1 -0
- package/dist/cjs/mcp-app/inline.js +20 -0
- package/dist/cjs/mcp-app/inline.js.map +1 -0
- package/dist/cjs/mcp-app/types.js +10 -0
- package/dist/cjs/mcp-app/types.js.map +1 -0
- package/dist/cjs/popup/index.js +15 -0
- package/dist/cjs/popup/index.js.map +1 -0
- package/dist/cjs/popup/launcher.js +77 -0
- package/dist/cjs/popup/launcher.js.map +1 -0
- package/dist/cjs/schemas/capabilities.schemas.js +129 -0
- package/dist/cjs/schemas/capabilities.schemas.js.map +1 -0
- package/dist/cjs/schemas/config.schemas.js +18 -0
- package/dist/cjs/schemas/config.schemas.js.map +1 -1
- package/dist/cjs/schemas/index.js +1 -0
- package/dist/cjs/schemas/index.js.map +1 -1
- package/dist/cjs/styles/index.js +1 -0
- package/dist/cjs/styles/index.js.map +1 -1
- package/dist/cjs/styles/theme.js +86 -0
- package/dist/cjs/styles/theme.js.map +1 -0
- package/dist/cjs/types/capabilities.types.js +12 -0
- package/dist/cjs/types/capabilities.types.js.map +1 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/components/consent-action-bar.d.ts +30 -0
- package/dist/components/consent-action-bar.d.ts.map +1 -0
- package/dist/components/consent-action-bar.js +135 -0
- package/dist/components/consent-action-bar.js.map +1 -0
- package/dist/components/consent-agent-header.d.ts +31 -0
- package/dist/components/consent-agent-header.d.ts.map +1 -0
- package/dist/components/consent-agent-header.js +202 -0
- package/dist/components/consent-agent-header.js.map +1 -0
- package/dist/components/consent-capabilities-screen.d.ts +62 -0
- package/dist/components/consent-capabilities-screen.d.ts.map +1 -0
- package/dist/components/consent-capabilities-screen.js +306 -0
- package/dist/components/consent-capabilities-screen.js.map +1 -0
- package/dist/components/consent-capability-card.d.ts +44 -0
- package/dist/components/consent-capability-card.d.ts.map +1 -0
- package/dist/components/consent-capability-card.js +337 -0
- package/dist/components/consent-capability-card.js.map +1 -0
- package/dist/components/consent-footer.d.ts +22 -0
- package/dist/components/consent-footer.d.ts.map +1 -0
- package/dist/components/consent-footer.js +96 -0
- package/dist/components/consent-footer.js.map +1 -0
- package/dist/components/consent-revocation-notice.d.ts +22 -0
- package/dist/components/consent-revocation-notice.d.ts.map +1 -0
- package/dist/components/consent-revocation-notice.js +98 -0
- package/dist/components/consent-revocation-notice.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/mcp-consent.d.ts +41 -0
- package/dist/components/mcp-consent.d.ts.map +1 -1
- package/dist/components/mcp-consent.js +176 -7
- package/dist/components/mcp-consent.js.map +1 -1
- package/dist/consent.js +1578 -210
- package/dist/consent.min.js +727 -96
- package/dist/copy/index.d.ts +8 -0
- package/dist/copy/index.d.ts.map +1 -0
- package/dist/copy/index.js +7 -0
- package/dist/copy/index.js.map +1 -0
- package/dist/copy/tokens.d.ts +93 -0
- package/dist/copy/tokens.d.ts.map +1 -0
- package/dist/copy/tokens.js +97 -0
- package/dist/copy/tokens.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-app/index.d.ts +10 -0
- package/dist/mcp-app/index.d.ts.map +1 -0
- package/dist/mcp-app/index.js +9 -0
- package/dist/mcp-app/index.js.map +1 -0
- package/dist/mcp-app/inline.d.ts +16 -0
- package/dist/mcp-app/inline.d.ts.map +1 -0
- package/dist/mcp-app/inline.js +16 -0
- package/dist/mcp-app/inline.js.map +1 -0
- package/dist/mcp-app/types.d.ts +33 -0
- package/dist/mcp-app/types.d.ts.map +1 -0
- package/dist/mcp-app/types.js +8 -0
- package/dist/mcp-app/types.js.map +1 -0
- package/dist/popup/index.d.ts +8 -0
- package/dist/popup/index.d.ts.map +1 -0
- package/dist/popup/index.js +7 -0
- package/dist/popup/index.js.map +1 -0
- package/dist/popup/launcher.d.ts +81 -0
- package/dist/popup/launcher.d.ts.map +1 -0
- package/dist/popup/launcher.js +71 -0
- package/dist/popup/launcher.js.map +1 -0
- package/dist/schemas/api.schemas.d.ts +234 -30
- package/dist/schemas/api.schemas.d.ts.map +1 -1
- package/dist/schemas/capabilities.schemas.d.ts +186 -0
- package/dist/schemas/capabilities.schemas.d.ts.map +1 -0
- package/dist/schemas/capabilities.schemas.js +123 -0
- package/dist/schemas/capabilities.schemas.js.map +1 -0
- package/dist/schemas/config.schemas.d.ts +332 -36
- package/dist/schemas/config.schemas.d.ts.map +1 -1
- package/dist/schemas/config.schemas.js +18 -0
- package/dist/schemas/config.schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +1 -0
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/theme.d.ts +72 -0
- package/dist/styles/theme.d.ts.map +1 -0
- package/dist/styles/theme.js +81 -0
- package/dist/styles/theme.js.map +1 -0
- package/dist/types/capabilities.types.d.ts +126 -0
- package/dist/types/capabilities.types.d.ts.map +1 -0
- package/dist/types/capabilities.types.js +11 -0
- package/dist/types/capabilities.types.js.map +1 -0
- package/dist/types/config.types.d.ts +33 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +15 -8
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability + Agent Metadata + Cedar Schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation for capability metadata, the agent identity tile, and
|
|
5
|
+
* Cedar policy fragments. Cedar fragments are validated only for shape here;
|
|
6
|
+
* full grammar validation is performed by the dashboard's existing
|
|
7
|
+
* `compile-policy.ts` before persistence.
|
|
8
|
+
*
|
|
9
|
+
* @module @kya-os/consent/schemas/capabilities
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
/**
|
|
13
|
+
* Risk classification.
|
|
14
|
+
*/
|
|
15
|
+
export declare const RiskLevelSchema: z.ZodEnum<["low", "medium", "high", "critical"]>;
|
|
16
|
+
/**
|
|
17
|
+
* Allowlist of icon tokens recognized by `<consent-capability-card>`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CapabilityIconSchema: z.ZodEnum<["search", "cart", "card", "pin", "pin-new", "shield", "key", "tools", "user", "calendar", "lock", "eye", "send", "package", "neutral"]>;
|
|
20
|
+
/**
|
|
21
|
+
* Cedar policy fragment shape check. Full grammar validation runs in the
|
|
22
|
+
* dashboard's compile-policy.ts; here we only enforce a length cap and confirm
|
|
23
|
+
* the fragment opens with the `permit` or `forbid` keyword (the only two valid
|
|
24
|
+
* Cedar effects).
|
|
25
|
+
*/
|
|
26
|
+
export declare const CedarPolicySchema: z.ZodEffects<z.ZodString, string, string>;
|
|
27
|
+
/**
|
|
28
|
+
* A single capability row.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CapabilitySchema: z.ZodObject<{
|
|
31
|
+
id: z.ZodString;
|
|
32
|
+
label: z.ZodString;
|
|
33
|
+
description: z.ZodString;
|
|
34
|
+
icon: z.ZodEnum<["search", "cart", "card", "pin", "pin-new", "shield", "key", "tools", "user", "calendar", "lock", "eye", "send", "package", "neutral"]>;
|
|
35
|
+
riskLevel: z.ZodEnum<["low", "medium", "high", "critical"]>;
|
|
36
|
+
defaultOn: z.ZodBoolean;
|
|
37
|
+
cedar: z.ZodEffects<z.ZodString, string, string>;
|
|
38
|
+
scopes: z.ZodArray<z.ZodString, "many">;
|
|
39
|
+
category: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
id: string;
|
|
42
|
+
label: string;
|
|
43
|
+
description: string;
|
|
44
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
45
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
46
|
+
defaultOn: boolean;
|
|
47
|
+
cedar: string;
|
|
48
|
+
scopes: string[];
|
|
49
|
+
category?: string | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
id: string;
|
|
52
|
+
label: string;
|
|
53
|
+
description: string;
|
|
54
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
55
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
56
|
+
defaultOn: boolean;
|
|
57
|
+
cedar: string;
|
|
58
|
+
scopes: string[];
|
|
59
|
+
category?: string | undefined;
|
|
60
|
+
}>;
|
|
61
|
+
export type CapabilitySchemaType = z.infer<typeof CapabilitySchema>;
|
|
62
|
+
/**
|
|
63
|
+
* Capability group (optional clustering).
|
|
64
|
+
*/
|
|
65
|
+
export declare const CapabilityGroupSchema: z.ZodObject<{
|
|
66
|
+
id: z.ZodString;
|
|
67
|
+
label: z.ZodString;
|
|
68
|
+
capabilities: z.ZodArray<z.ZodObject<{
|
|
69
|
+
id: z.ZodString;
|
|
70
|
+
label: z.ZodString;
|
|
71
|
+
description: z.ZodString;
|
|
72
|
+
icon: z.ZodEnum<["search", "cart", "card", "pin", "pin-new", "shield", "key", "tools", "user", "calendar", "lock", "eye", "send", "package", "neutral"]>;
|
|
73
|
+
riskLevel: z.ZodEnum<["low", "medium", "high", "critical"]>;
|
|
74
|
+
defaultOn: z.ZodBoolean;
|
|
75
|
+
cedar: z.ZodEffects<z.ZodString, string, string>;
|
|
76
|
+
scopes: z.ZodArray<z.ZodString, "many">;
|
|
77
|
+
category: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
id: string;
|
|
80
|
+
label: string;
|
|
81
|
+
description: string;
|
|
82
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
83
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
84
|
+
defaultOn: boolean;
|
|
85
|
+
cedar: string;
|
|
86
|
+
scopes: string[];
|
|
87
|
+
category?: string | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
id: string;
|
|
90
|
+
label: string;
|
|
91
|
+
description: string;
|
|
92
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
93
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
94
|
+
defaultOn: boolean;
|
|
95
|
+
cedar: string;
|
|
96
|
+
scopes: string[];
|
|
97
|
+
category?: string | undefined;
|
|
98
|
+
}>, "many">;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
id: string;
|
|
101
|
+
label: string;
|
|
102
|
+
capabilities: {
|
|
103
|
+
id: string;
|
|
104
|
+
label: string;
|
|
105
|
+
description: string;
|
|
106
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
107
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
108
|
+
defaultOn: boolean;
|
|
109
|
+
cedar: string;
|
|
110
|
+
scopes: string[];
|
|
111
|
+
category?: string | undefined;
|
|
112
|
+
}[];
|
|
113
|
+
}, {
|
|
114
|
+
id: string;
|
|
115
|
+
label: string;
|
|
116
|
+
capabilities: {
|
|
117
|
+
id: string;
|
|
118
|
+
label: string;
|
|
119
|
+
description: string;
|
|
120
|
+
icon: "search" | "cart" | "card" | "pin" | "pin-new" | "shield" | "key" | "tools" | "user" | "calendar" | "lock" | "eye" | "send" | "package" | "neutral";
|
|
121
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
122
|
+
defaultOn: boolean;
|
|
123
|
+
cedar: string;
|
|
124
|
+
scopes: string[];
|
|
125
|
+
category?: string | undefined;
|
|
126
|
+
}[];
|
|
127
|
+
}>;
|
|
128
|
+
export type CapabilityGroupSchemaType = z.infer<typeof CapabilityGroupSchema>;
|
|
129
|
+
/**
|
|
130
|
+
* Agent identity tile data.
|
|
131
|
+
*/
|
|
132
|
+
export declare const AgentMetadataSchema: z.ZodObject<{
|
|
133
|
+
name: z.ZodString;
|
|
134
|
+
did: z.ZodString;
|
|
135
|
+
vendor: z.ZodOptional<z.ZodString>;
|
|
136
|
+
surfaceLabel: z.ZodOptional<z.ZodString>;
|
|
137
|
+
verified: z.ZodBoolean;
|
|
138
|
+
logoUrl: z.ZodOptional<z.ZodString>;
|
|
139
|
+
connectedAt: z.ZodOptional<z.ZodString>;
|
|
140
|
+
}, "strip", z.ZodTypeAny, {
|
|
141
|
+
name: string;
|
|
142
|
+
did: string;
|
|
143
|
+
verified: boolean;
|
|
144
|
+
logoUrl?: string | undefined;
|
|
145
|
+
vendor?: string | undefined;
|
|
146
|
+
surfaceLabel?: string | undefined;
|
|
147
|
+
connectedAt?: string | undefined;
|
|
148
|
+
}, {
|
|
149
|
+
name: string;
|
|
150
|
+
did: string;
|
|
151
|
+
verified: boolean;
|
|
152
|
+
logoUrl?: string | undefined;
|
|
153
|
+
vendor?: string | undefined;
|
|
154
|
+
surfaceLabel?: string | undefined;
|
|
155
|
+
connectedAt?: string | undefined;
|
|
156
|
+
}>;
|
|
157
|
+
export type AgentMetadataSchemaType = z.infer<typeof AgentMetadataSchema>;
|
|
158
|
+
/**
|
|
159
|
+
* Theme selection.
|
|
160
|
+
*/
|
|
161
|
+
export declare const ConsentThemeSchema: z.ZodEnum<["light", "dark"]>;
|
|
162
|
+
export type ConsentThemeSchemaType = z.infer<typeof ConsentThemeSchema>;
|
|
163
|
+
/**
|
|
164
|
+
* Cedar template context bound at compile time.
|
|
165
|
+
*/
|
|
166
|
+
export declare const CedarTemplateContextSchema: z.ZodObject<{
|
|
167
|
+
agent_did: z.ZodString;
|
|
168
|
+
user_did: z.ZodString;
|
|
169
|
+
org: z.ZodString;
|
|
170
|
+
deployment: z.ZodString;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
agent_did: string;
|
|
173
|
+
user_did: string;
|
|
174
|
+
org: string;
|
|
175
|
+
deployment: string;
|
|
176
|
+
}, {
|
|
177
|
+
agent_did: string;
|
|
178
|
+
user_did: string;
|
|
179
|
+
org: string;
|
|
180
|
+
deployment: string;
|
|
181
|
+
}>;
|
|
182
|
+
export type CedarTemplateContextSchemaType = z.infer<typeof CedarTemplateContextSchema>;
|
|
183
|
+
export declare function validateCapability(value: unknown): z.SafeParseReturnType<unknown, CapabilitySchemaType>;
|
|
184
|
+
export declare function validateCapabilityGroup(value: unknown): z.SafeParseReturnType<unknown, CapabilityGroupSchemaType>;
|
|
185
|
+
export declare function validateAgentMetadata(value: unknown): z.SafeParseReturnType<unknown, AgentMetadataSchemaType>;
|
|
186
|
+
//# sourceMappingURL=capabilities.schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/capabilities.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,eAAe,kDAAgD,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,oBAAoB,oJAgB/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,2CAO3B,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B3B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,kBAAkB,8BAA4B,CAAC;AAE5D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,0BAA0B,CAClC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAEtD;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAE3D;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAEzD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability + Agent Metadata + Cedar Schemas
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation for capability metadata, the agent identity tile, and
|
|
5
|
+
* Cedar policy fragments. Cedar fragments are validated only for shape here;
|
|
6
|
+
* full grammar validation is performed by the dashboard's existing
|
|
7
|
+
* `compile-policy.ts` before persistence.
|
|
8
|
+
*
|
|
9
|
+
* @module @kya-os/consent/schemas/capabilities
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
/**
|
|
13
|
+
* Risk classification.
|
|
14
|
+
*/
|
|
15
|
+
export const RiskLevelSchema = z.enum(["low", "medium", "high", "critical"]);
|
|
16
|
+
/**
|
|
17
|
+
* Allowlist of icon tokens recognized by `<consent-capability-card>`.
|
|
18
|
+
*/
|
|
19
|
+
export const CapabilityIconSchema = z.enum([
|
|
20
|
+
"search",
|
|
21
|
+
"cart",
|
|
22
|
+
"card",
|
|
23
|
+
"pin",
|
|
24
|
+
"pin-new",
|
|
25
|
+
"shield",
|
|
26
|
+
"key",
|
|
27
|
+
"tools",
|
|
28
|
+
"user",
|
|
29
|
+
"calendar",
|
|
30
|
+
"lock",
|
|
31
|
+
"eye",
|
|
32
|
+
"send",
|
|
33
|
+
"package",
|
|
34
|
+
"neutral",
|
|
35
|
+
]);
|
|
36
|
+
/**
|
|
37
|
+
* Cedar policy fragment shape check. Full grammar validation runs in the
|
|
38
|
+
* dashboard's compile-policy.ts; here we only enforce a length cap and confirm
|
|
39
|
+
* the fragment opens with the `permit` or `forbid` keyword (the only two valid
|
|
40
|
+
* Cedar effects).
|
|
41
|
+
*/
|
|
42
|
+
export const CedarPolicySchema = z
|
|
43
|
+
.string()
|
|
44
|
+
.min(1, "Cedar fragment cannot be empty")
|
|
45
|
+
.max(8000, "Cedar fragment must be 8000 characters or less")
|
|
46
|
+
.refine((value) => /^\s*(permit|forbid)\s*\(/.test(value), "Cedar fragment must begin with `permit (` or `forbid (`");
|
|
47
|
+
/**
|
|
48
|
+
* A single capability row.
|
|
49
|
+
*/
|
|
50
|
+
export const CapabilitySchema = z.object({
|
|
51
|
+
id: z
|
|
52
|
+
.string()
|
|
53
|
+
.min(1, "Capability id is required")
|
|
54
|
+
.max(64, "Capability id must be 64 characters or less")
|
|
55
|
+
.regex(/^[a-z][a-z0-9._-]*$/, "Capability id must be lowercase alphanumeric with `.`, `_`, or `-`"),
|
|
56
|
+
label: z
|
|
57
|
+
.string()
|
|
58
|
+
.min(1, "Capability label is required")
|
|
59
|
+
.max(80, "Capability label must be 80 characters or less"),
|
|
60
|
+
description: z
|
|
61
|
+
.string()
|
|
62
|
+
.min(1, "Capability description is required")
|
|
63
|
+
.max(280, "Capability description must be 280 characters or less"),
|
|
64
|
+
icon: CapabilityIconSchema,
|
|
65
|
+
riskLevel: RiskLevelSchema,
|
|
66
|
+
defaultOn: z.boolean(),
|
|
67
|
+
cedar: CedarPolicySchema,
|
|
68
|
+
scopes: z
|
|
69
|
+
.array(z.string().min(1).max(120))
|
|
70
|
+
.min(1, "At least one scope is required")
|
|
71
|
+
.max(20, "At most 20 scopes per capability"),
|
|
72
|
+
category: z.string().max(80).optional(),
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* Capability group (optional clustering).
|
|
76
|
+
*/
|
|
77
|
+
export const CapabilityGroupSchema = z.object({
|
|
78
|
+
id: z
|
|
79
|
+
.string()
|
|
80
|
+
.min(1)
|
|
81
|
+
.max(64)
|
|
82
|
+
.regex(/^[a-z][a-z0-9._-]*$/, "Group id must be lowercase alphanumeric"),
|
|
83
|
+
label: z.string().min(1).max(80),
|
|
84
|
+
capabilities: z
|
|
85
|
+
.array(CapabilitySchema)
|
|
86
|
+
.min(1, "Group must contain at least one capability")
|
|
87
|
+
.max(20, "At most 20 capabilities per group"),
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* Agent identity tile data.
|
|
91
|
+
*/
|
|
92
|
+
export const AgentMetadataSchema = z.object({
|
|
93
|
+
name: z.string().min(1).max(80),
|
|
94
|
+
did: z.string().min(1).max(500),
|
|
95
|
+
vendor: z.string().max(80).optional(),
|
|
96
|
+
surfaceLabel: z.string().max(40).optional(),
|
|
97
|
+
verified: z.boolean(),
|
|
98
|
+
logoUrl: z.string().url().optional(),
|
|
99
|
+
connectedAt: z.string().datetime().optional(),
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Theme selection.
|
|
103
|
+
*/
|
|
104
|
+
export const ConsentThemeSchema = z.enum(["light", "dark"]);
|
|
105
|
+
/**
|
|
106
|
+
* Cedar template context bound at compile time.
|
|
107
|
+
*/
|
|
108
|
+
export const CedarTemplateContextSchema = z.object({
|
|
109
|
+
agent_did: z.string().min(1).max(500),
|
|
110
|
+
user_did: z.string().min(1).max(500),
|
|
111
|
+
org: z.string().min(1).max(120),
|
|
112
|
+
deployment: z.string().min(1).max(120),
|
|
113
|
+
});
|
|
114
|
+
export function validateCapability(value) {
|
|
115
|
+
return CapabilitySchema.safeParse(value);
|
|
116
|
+
}
|
|
117
|
+
export function validateCapabilityGroup(value) {
|
|
118
|
+
return CapabilityGroupSchema.safeParse(value);
|
|
119
|
+
}
|
|
120
|
+
export function validateAgentMetadata(value) {
|
|
121
|
+
return AgentMetadataSchema.safeParse(value);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=capabilities.schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.schemas.js","sourceRoot":"","sources":["../../src/schemas/capabilities.schemas.ts"],"names":[],"mappings":"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"}
|