usertrust 1.0.0 → 1.0.1

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 (80) hide show
  1. package/dist/cli/init.d.ts +2 -0
  2. package/dist/cli/init.d.ts.map +1 -1
  3. package/dist/cli/init.js +231 -37
  4. package/dist/cli/init.js.map +1 -1
  5. package/dist/cli/main.d.ts +1 -1
  6. package/dist/cli/main.d.ts.map +1 -1
  7. package/dist/cli/main.js +18 -3
  8. package/dist/cli/main.js.map +1 -1
  9. package/dist/cli/pricing.d.ts +5 -0
  10. package/dist/cli/pricing.d.ts.map +1 -0
  11. package/dist/cli/pricing.js +61 -0
  12. package/dist/cli/pricing.js.map +1 -0
  13. package/dist/cli/validate-key.d.ts +17 -0
  14. package/dist/cli/validate-key.d.ts.map +1 -0
  15. package/dist/cli/validate-key.js +58 -0
  16. package/dist/cli/validate-key.js.map +1 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +31 -0
  19. package/dist/config.js.map +1 -1
  20. package/dist/govern.d.ts +3 -1
  21. package/dist/govern.d.ts.map +1 -1
  22. package/dist/govern.js +415 -47
  23. package/dist/govern.js.map +1 -1
  24. package/dist/headless.d.ts +77 -0
  25. package/dist/headless.d.ts.map +1 -0
  26. package/dist/headless.js +566 -0
  27. package/dist/headless.js.map +1 -0
  28. package/dist/index.d.ts +12 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +13 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/ledger/pricing.d.ts +6 -2
  33. package/dist/ledger/pricing.d.ts.map +1 -1
  34. package/dist/ledger/pricing.js +31 -3
  35. package/dist/ledger/pricing.js.map +1 -1
  36. package/dist/policy/canary.d.ts +17 -0
  37. package/dist/policy/canary.d.ts.map +1 -0
  38. package/dist/policy/canary.js +44 -0
  39. package/dist/policy/canary.js.map +1 -0
  40. package/dist/policy/injection.d.ts +24 -0
  41. package/dist/policy/injection.d.ts.map +1 -0
  42. package/dist/policy/injection.js +178 -0
  43. package/dist/policy/injection.js.map +1 -0
  44. package/dist/policy/pii.d.ts +13 -1
  45. package/dist/policy/pii.d.ts.map +1 -1
  46. package/dist/policy/pii.js +88 -0
  47. package/dist/policy/pii.js.map +1 -1
  48. package/dist/shared/errors.d.ts +20 -0
  49. package/dist/shared/errors.d.ts.map +1 -1
  50. package/dist/shared/errors.js +46 -0
  51. package/dist/shared/errors.js.map +1 -1
  52. package/dist/shared/types.d.ts +264 -0
  53. package/dist/shared/types.d.ts.map +1 -1
  54. package/dist/shared/types.js +67 -0
  55. package/dist/shared/types.js.map +1 -1
  56. package/dist/supply-chain/manifest.d.ts +22 -0
  57. package/dist/supply-chain/manifest.d.ts.map +1 -0
  58. package/dist/supply-chain/manifest.js +46 -0
  59. package/dist/supply-chain/manifest.js.map +1 -0
  60. package/dist/supply-chain/permissions.d.ts +12 -0
  61. package/dist/supply-chain/permissions.d.ts.map +1 -0
  62. package/dist/supply-chain/permissions.js +89 -0
  63. package/dist/supply-chain/permissions.js.map +1 -0
  64. package/dist/supply-chain/sign.d.ts +17 -0
  65. package/dist/supply-chain/sign.d.ts.map +1 -0
  66. package/dist/supply-chain/sign.js +95 -0
  67. package/dist/supply-chain/sign.js.map +1 -0
  68. package/dist/vault/derive.d.ts +13 -0
  69. package/dist/vault/derive.d.ts.map +1 -0
  70. package/dist/vault/derive.js +32 -0
  71. package/dist/vault/derive.js.map +1 -0
  72. package/dist/vault/scope.d.ts +20 -0
  73. package/dist/vault/scope.d.ts.map +1 -0
  74. package/dist/vault/scope.js +35 -0
  75. package/dist/vault/scope.js.map +1 -0
  76. package/dist/vault/store.d.ts +31 -0
  77. package/dist/vault/store.d.ts.map +1 -0
  78. package/dist/vault/store.js +204 -0
  79. package/dist/vault/store.js.map +1 -0
  80. package/package.json +13 -2
@@ -88,6 +88,22 @@ export class AuditDegradedError extends Error {
88
88
  this.docsUrl = docsUrl;
89
89
  }
90
90
  }
91
+ export class CredentialAccessDeniedError extends Error {
92
+ credentialName;
93
+ reason;
94
+ hint;
95
+ docsUrl;
96
+ constructor(credentialName, reason) {
97
+ const hint = "Check the credential scope in .usertrust/credentials.enc or update the scope with `usertrust secret add --scope`.";
98
+ const docsUrl = "https://usertrust.ai/docs/errors/credential-access-denied";
99
+ super(`Credential access denied for ${credentialName}: ${reason}\n\n Hint: ${hint}\n Docs: ${docsUrl}`);
100
+ this.name = "CredentialAccessDeniedError";
101
+ this.credentialName = credentialName;
102
+ this.reason = reason;
103
+ this.hint = hint;
104
+ this.docsUrl = docsUrl;
105
+ }
106
+ }
91
107
  export class VaultNotInitializedError extends Error {
92
108
  path;
93
109
  hint;
@@ -102,4 +118,34 @@ export class VaultNotInitializedError extends Error {
102
118
  this.docsUrl = docsUrl;
103
119
  }
104
120
  }
121
+ export class SkillVerificationError extends Error {
122
+ skillId;
123
+ reason;
124
+ hint;
125
+ docsUrl;
126
+ constructor(skillId, reason) {
127
+ const hint = "Verify the skill manifest is signed by a trusted publisher, or add the publisher to supplyChain.trustedPublishers.";
128
+ const docsUrl = "https://usertrust.ai/docs/errors/skill-verification";
129
+ super(`Skill verification failed for ${skillId}: ${reason}\n\n Hint: ${hint}\n Docs: ${docsUrl}`);
130
+ this.name = "SkillVerificationError";
131
+ this.skillId = skillId;
132
+ this.reason = reason;
133
+ this.hint = hint;
134
+ this.docsUrl = docsUrl;
135
+ }
136
+ }
137
+ export class VaultKeyMissingError extends Error {
138
+ envVar;
139
+ hint;
140
+ docsUrl;
141
+ constructor(envVar) {
142
+ const hint = `Set the ${envVar} environment variable to the vault master key.`;
143
+ const docsUrl = "https://usertrust.ai/docs/errors/vault-key-missing";
144
+ super(`Vault master key not set: ${envVar} is not defined\n\n Hint: ${hint}\n Docs: ${docsUrl}`);
145
+ this.name = "VaultKeyMissingError";
146
+ this.envVar = envVar;
147
+ this.hint = hint;
148
+ this.docsUrl = docsUrl;
149
+ }
150
+ }
105
151
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export interface TrustReceipt {
16
16
  usageSource?: "provider" | "estimated";
17
17
  /** Number of chunks delivered to the consumer (streaming calls only). */
18
18
  chunksDelivered?: number;
19
+ /** Action kind for governed non-LLM actions. Absent for LLM calls (backward compat). */
20
+ actionKind?: ActionKind;
19
21
  }
20
22
  export interface TrustedResponse<T> {
21
23
  response: T;
@@ -28,6 +30,7 @@ export declare const TrustConfigSchema: z.ZodObject<{
28
30
  key: z.ZodOptional<z.ZodString>;
29
31
  policies: z.ZodDefault<z.ZodString>;
30
32
  pii: z.ZodDefault<z.ZodEnum<["redact", "warn", "block", "off"]>>;
33
+ injection: z.ZodDefault<z.ZodEnum<["block", "warn", "off"]>>;
31
34
  board: z.ZodDefault<z.ZodObject<{
32
35
  enabled: z.ZodDefault<z.ZodBoolean>;
33
36
  vetoThreshold: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "critical"]>>;
@@ -78,6 +81,79 @@ export declare const TrustConfigSchema: z.ZodObject<{
78
81
  addresses?: string[] | undefined;
79
82
  clusterId?: number | undefined;
80
83
  }>>;
84
+ providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
85
+ name: z.ZodString;
86
+ models: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ name: string;
89
+ models: string[];
90
+ }, {
91
+ name: string;
92
+ models?: string[] | undefined;
93
+ }>, "many">>;
94
+ pricing: z.ZodDefault<z.ZodEnum<["recommended", "custom"]>>;
95
+ customRates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
96
+ inputPer1k: z.ZodNumber;
97
+ outputPer1k: z.ZodNumber;
98
+ }, "strip", z.ZodTypeAny, {
99
+ inputPer1k: number;
100
+ outputPer1k: number;
101
+ }, {
102
+ inputPer1k: number;
103
+ outputPer1k: number;
104
+ }>>>;
105
+ supplyChain: z.ZodDefault<z.ZodObject<{
106
+ enabled: z.ZodDefault<z.ZodBoolean>;
107
+ trustedPublishers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
108
+ allowedPermissions: z.ZodDefault<z.ZodArray<z.ZodEnum<["llm_call", "tool_use", "file_read", "file_write", "shell_command", "network_access", "credential_access"]>, "many">>;
109
+ requireSignature: z.ZodDefault<z.ZodBoolean>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ enabled: boolean;
112
+ trustedPublishers: string[];
113
+ allowedPermissions: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[];
114
+ requireSignature: boolean;
115
+ }, {
116
+ enabled?: boolean | undefined;
117
+ trustedPublishers?: string[] | undefined;
118
+ allowedPermissions?: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[] | undefined;
119
+ requireSignature?: boolean | undefined;
120
+ }>>;
121
+ vault: z.ZodDefault<z.ZodObject<{
122
+ enabled: z.ZodDefault<z.ZodBoolean>;
123
+ masterKeyEnv: z.ZodDefault<z.ZodString>;
124
+ auditAccess: z.ZodDefault<z.ZodBoolean>;
125
+ defaultScope: z.ZodDefault<z.ZodObject<{
126
+ agents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
127
+ actions: z.ZodDefault<z.ZodArray<z.ZodEnum<["llm_call", "tool_use", "file_access", "shell_command", "api_request"]>, "many">>;
128
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
129
+ }, "strip", z.ZodTypeAny, {
130
+ agents: string[];
131
+ actions: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[];
132
+ expiresAt: string | null;
133
+ }, {
134
+ agents?: string[] | undefined;
135
+ actions?: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[] | undefined;
136
+ expiresAt?: string | null | undefined;
137
+ }>>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ enabled: boolean;
140
+ masterKeyEnv: string;
141
+ auditAccess: boolean;
142
+ defaultScope: {
143
+ agents: string[];
144
+ actions: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[];
145
+ expiresAt: string | null;
146
+ };
147
+ }, {
148
+ enabled?: boolean | undefined;
149
+ masterKeyEnv?: string | undefined;
150
+ auditAccess?: boolean | undefined;
151
+ defaultScope?: {
152
+ agents?: string[] | undefined;
153
+ actions?: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[] | undefined;
154
+ expiresAt?: string | null | undefined;
155
+ } | undefined;
156
+ }>>;
81
157
  }, "strip", z.ZodTypeAny, {
82
158
  audit: {
83
159
  rotation: "daily" | "weekly" | "none";
@@ -87,6 +163,7 @@ export declare const TrustConfigSchema: z.ZodObject<{
87
163
  tier: "free" | "mini" | "pro" | "mega" | "ultra";
88
164
  policies: string;
89
165
  pii: "redact" | "warn" | "block" | "off";
166
+ injection: "warn" | "block" | "off";
90
167
  board: {
91
168
  enabled: boolean;
92
169
  vetoThreshold: "low" | "medium" | "high" | "critical";
@@ -103,8 +180,33 @@ export declare const TrustConfigSchema: z.ZodObject<{
103
180
  addresses: string[];
104
181
  clusterId: number;
105
182
  };
183
+ providers: {
184
+ name: string;
185
+ models: string[];
186
+ }[];
187
+ pricing: "custom" | "recommended";
188
+ supplyChain: {
189
+ enabled: boolean;
190
+ trustedPublishers: string[];
191
+ allowedPermissions: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[];
192
+ requireSignature: boolean;
193
+ };
194
+ vault: {
195
+ enabled: boolean;
196
+ masterKeyEnv: string;
197
+ auditAccess: boolean;
198
+ defaultScope: {
199
+ agents: string[];
200
+ actions: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[];
201
+ expiresAt: string | null;
202
+ };
203
+ };
106
204
  proxy?: string | undefined;
107
205
  key?: string | undefined;
206
+ customRates?: Record<string, {
207
+ inputPer1k: number;
208
+ outputPer1k: number;
209
+ }> | undefined;
108
210
  }, {
109
211
  budget: number;
110
212
  audit?: {
@@ -116,6 +218,7 @@ export declare const TrustConfigSchema: z.ZodObject<{
116
218
  key?: string | undefined;
117
219
  policies?: string | undefined;
118
220
  pii?: "redact" | "warn" | "block" | "off" | undefined;
221
+ injection?: "warn" | "block" | "off" | undefined;
119
222
  board?: {
120
223
  enabled?: boolean | undefined;
121
224
  vetoThreshold?: "low" | "medium" | "high" | "critical" | undefined;
@@ -132,6 +235,31 @@ export declare const TrustConfigSchema: z.ZodObject<{
132
235
  addresses?: string[] | undefined;
133
236
  clusterId?: number | undefined;
134
237
  } | undefined;
238
+ providers?: {
239
+ name: string;
240
+ models?: string[] | undefined;
241
+ }[] | undefined;
242
+ pricing?: "custom" | "recommended" | undefined;
243
+ customRates?: Record<string, {
244
+ inputPer1k: number;
245
+ outputPer1k: number;
246
+ }> | undefined;
247
+ supplyChain?: {
248
+ enabled?: boolean | undefined;
249
+ trustedPublishers?: string[] | undefined;
250
+ allowedPermissions?: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[] | undefined;
251
+ requireSignature?: boolean | undefined;
252
+ } | undefined;
253
+ vault?: {
254
+ enabled?: boolean | undefined;
255
+ masterKeyEnv?: string | undefined;
256
+ auditAccess?: boolean | undefined;
257
+ defaultScope?: {
258
+ agents?: string[] | undefined;
259
+ actions?: ("llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request")[] | undefined;
260
+ expiresAt?: string | null | undefined;
261
+ } | undefined;
262
+ } | undefined;
135
263
  }>;
136
264
  export type TrustConfig = z.infer<typeof TrustConfigSchema>;
137
265
  export type PolicyEffect = "deny" | "warn";
@@ -163,4 +291,140 @@ export type BoardDecision = "approved" | "blocked" | "escalated";
163
291
  export type ConcernType = "hallucination" | "bias" | "safety" | "scope_creep" | "resource_abuse" | "policy_violation";
164
292
  export type DirectorVote = "approve" | "veto" | "abstain";
165
293
  export type LLMClientKind = "anthropic" | "openai" | "google";
294
+ /** Extensible union for governed action types. */
295
+ export type ActionKind = "llm_call" | "tool_use" | "file_access" | "shell_command" | "api_request";
296
+ /** Descriptor for a governed action. */
297
+ export interface ActionDescriptor {
298
+ /** The kind of action being governed. */
299
+ kind: ActionKind;
300
+ /** Human-readable name (e.g., "file_read", "curl", tool name). */
301
+ name: string;
302
+ /** Estimated cost in usertokens. Required for budget enforcement. */
303
+ cost: number;
304
+ /** Arbitrary parameters for policy evaluation and audit logging. */
305
+ params?: Record<string, unknown>;
306
+ /** Actor identity (defaults to "local"). */
307
+ actor?: string;
308
+ }
309
+ /** Result wrapper for governed actions. */
310
+ export interface GovernedActionResult<T> {
311
+ result: T;
312
+ receipt: TrustReceipt;
313
+ }
314
+ /** Result of prompt injection detection scan. */
315
+ export interface InjectionDetection {
316
+ /** Whether a prompt injection attempt was detected. */
317
+ detected: boolean;
318
+ /** Confidence score from 0.0 (clean) to 1.0 (certain injection). */
319
+ score: number;
320
+ /** Names of matched detection patterns (e.g., ["keyword_combo", "role_boundary"]). */
321
+ patterns: string[];
322
+ /** Dot-paths where injections were found (e.g., ["messages[0].content(keyword_combo)"]). */
323
+ paths: string[];
324
+ }
325
+ /** Canary token for prompt leak detection. */
326
+ export interface CanaryToken {
327
+ /** Random hex token (32 chars). */
328
+ token: string;
329
+ /** HTML comment marker embedding the token. */
330
+ marker: string;
331
+ }
332
+ /** Permission an agent skill can request. */
333
+ export type SkillPermission = "llm_call" | "tool_use" | "file_read" | "file_write" | "shell_command" | "network_access" | "credential_access";
334
+ /** A signed skill manifest declaring identity, permissions, and integrity. */
335
+ export interface SkillManifest {
336
+ /** Schema version for forward compatibility. */
337
+ version: 1;
338
+ /** Unique skill identifier (e.g., "acme/summarizer"). */
339
+ id: string;
340
+ /** Human-readable skill name. */
341
+ name: string;
342
+ /** Skill author or publisher. */
343
+ publisher: string;
344
+ /** Permissions the skill requires at runtime. */
345
+ permissions: SkillPermission[];
346
+ /** SHA-256 hash of the skill's entry point source code. */
347
+ entryHash: string;
348
+ /** ISO 8601 timestamp of when the manifest was signed. */
349
+ signedAt: string;
350
+ /** Ed25519 signature of the canonical manifest (hex-encoded). */
351
+ signature: string;
352
+ /** Ed25519 public key of the signer (hex-encoded). */
353
+ publicKey: string;
354
+ }
355
+ /** Result of verifying a skill manifest. */
356
+ export interface SkillVerification {
357
+ /** Whether the manifest signature is valid. */
358
+ valid: boolean;
359
+ /** Whether all declared permissions are allowed by policy. */
360
+ permissionsAllowed: boolean;
361
+ /** Permissions that were denied by policy. */
362
+ deniedPermissions: SkillPermission[];
363
+ /** SHA-256 hash of the manifest for audit inclusion. */
364
+ manifestHash: string;
365
+ /** Error message if verification failed. */
366
+ error?: string;
367
+ }
368
+ export declare const SkillManifestSchema: z.ZodObject<{
369
+ version: z.ZodLiteral<1>;
370
+ id: z.ZodString;
371
+ name: z.ZodString;
372
+ publisher: z.ZodString;
373
+ permissions: z.ZodArray<z.ZodEnum<["llm_call", "tool_use", "file_read", "file_write", "shell_command", "network_access", "credential_access"]>, "many">;
374
+ entryHash: z.ZodString;
375
+ signedAt: z.ZodString;
376
+ signature: z.ZodString;
377
+ publicKey: z.ZodString;
378
+ }, "strip", z.ZodTypeAny, {
379
+ name: string;
380
+ version: 1;
381
+ id: string;
382
+ publisher: string;
383
+ permissions: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[];
384
+ entryHash: string;
385
+ signedAt: string;
386
+ signature: string;
387
+ publicKey: string;
388
+ }, {
389
+ name: string;
390
+ version: 1;
391
+ id: string;
392
+ publisher: string;
393
+ permissions: ("llm_call" | "tool_use" | "shell_command" | "file_read" | "file_write" | "network_access" | "credential_access")[];
394
+ entryHash: string;
395
+ signedAt: string;
396
+ signature: string;
397
+ publicKey: string;
398
+ }>;
399
+ /** Scope constraining when/how a credential can be accessed. */
400
+ export interface CredentialScope {
401
+ /** Agents allowed to access this credential (empty = all). */
402
+ agents: string[];
403
+ /** Action kinds allowed to use this credential (empty = all). */
404
+ actions: ActionKind[];
405
+ /** Expiration timestamp (ISO 8601). Null = no expiry. */
406
+ expiresAt: string | null;
407
+ }
408
+ /** A stored credential entry (decrypted form). */
409
+ export interface CredentialEntry {
410
+ /** Unique credential name (e.g., "OPENAI_API_KEY"). */
411
+ name: string;
412
+ /** The secret value. */
413
+ value: string;
414
+ /** Access scope constraints. */
415
+ scope: CredentialScope;
416
+ /** ISO 8601 timestamp when the credential was stored. */
417
+ createdAt: string;
418
+ /** ISO 8601 timestamp when the credential was last rotated. */
419
+ rotatedAt: string;
420
+ }
421
+ /** Result of a credential access attempt. */
422
+ export interface CredentialAccessResult {
423
+ /** Whether access was granted. */
424
+ granted: boolean;
425
+ /** The credential value (only present if granted). */
426
+ value?: string;
427
+ /** Reason for denial (only present if denied). */
428
+ reason?: string;
429
+ }
166
430
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACvC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;CACtB;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqC5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,GACtB,QAAQ,GACR,YAAY,GACZ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,OAAO,CAAC;AAEX,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAGD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AACjE,MAAM,MAAM,WAAW,GACpB,eAAe,GACf,MAAM,GACN,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,kBAAkB,CAAC;AACtB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export const TrustConfigSchema = z.object({
9
9
  key: z.string().optional(),
10
10
  policies: z.string().default("./policies/default.yml"),
11
11
  pii: z.enum(["redact", "warn", "block", "off"]).default("warn"),
12
+ injection: z.enum(["block", "warn", "off"]).default("warn"),
12
13
  board: z
13
14
  .object({
14
15
  enabled: z.boolean().default(false),
@@ -39,5 +40,71 @@ export const TrustConfigSchema = z.object({
39
40
  clusterId: z.number().int().nonnegative().default(0),
40
41
  })
41
42
  .default({}),
43
+ providers: z
44
+ .array(z.object({
45
+ name: z.string(),
46
+ models: z.array(z.string()).default([]),
47
+ }))
48
+ .default([]),
49
+ pricing: z.enum(["recommended", "custom"]).default("recommended"),
50
+ customRates: z
51
+ .record(z.string(), z.object({
52
+ inputPer1k: z.number().finite().nonnegative(),
53
+ outputPer1k: z.number().finite().nonnegative(),
54
+ }))
55
+ .optional(),
56
+ supplyChain: z
57
+ .object({
58
+ enabled: z.boolean().default(false),
59
+ trustedPublishers: z.array(z.string()).default([]),
60
+ allowedPermissions: z
61
+ .array(z.enum([
62
+ "llm_call",
63
+ "tool_use",
64
+ "file_read",
65
+ "file_write",
66
+ "shell_command",
67
+ "network_access",
68
+ "credential_access",
69
+ ]))
70
+ .default(["llm_call", "tool_use", "file_read"]),
71
+ requireSignature: z.boolean().default(true),
72
+ })
73
+ .default({}),
74
+ vault: z
75
+ .object({
76
+ enabled: z.boolean().default(false),
77
+ masterKeyEnv: z.string().default("USERTRUST_VAULT_KEY"),
78
+ auditAccess: z.boolean().default(true),
79
+ defaultScope: z
80
+ .object({
81
+ agents: z.array(z.string()).default([]),
82
+ actions: z
83
+ .array(z.enum(["llm_call", "tool_use", "file_access", "shell_command", "api_request"]))
84
+ .default([]),
85
+ expiresAt: z.string().datetime().nullable().default(null),
86
+ })
87
+ .default({}),
88
+ })
89
+ .default({}),
90
+ });
91
+ export const SkillManifestSchema = z.object({
92
+ version: z.literal(1),
93
+ id: z.string().regex(/^[a-z0-9_-]+\/[a-z0-9_-]+$/, "Skill ID must be publisher/name format"),
94
+ name: z.string().min(1).max(128),
95
+ publisher: z.string().min(1).max(64),
96
+ permissions: z.array(z.enum([
97
+ "llm_call",
98
+ "tool_use",
99
+ "file_read",
100
+ "file_write",
101
+ "shell_command",
102
+ "network_access",
103
+ "credential_access",
104
+ ])),
105
+ entryHash: z.string().regex(/^[a-f0-9]{64}$/, "Must be a SHA-256 hex hash"),
106
+ signedAt: z.string().datetime(),
107
+ signature: z.string().regex(/^[a-f0-9]{128}$/, "Must be a hex-encoded 64-byte Ed25519 signature"),
108
+ publicKey: z.string().regex(/^[a-f0-9]{64}$/, "Must be hex-encoded Ed25519 public key"),
42
109
  });
43
110
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4BxB,sBAAsB;AACtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,CAAC;SACN,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5E,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;SACf,MAAM,CAAC;QACP,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;KAC9C,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;SACT,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACrC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;SACN,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5C,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;SACZ,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;KACpD,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;CACb,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SkillManifest, SkillPermission } from "../shared/types.js";
2
+ /**
3
+ * Validates a raw manifest object against the SkillManifest Zod schema.
4
+ * Returns the typed manifest or throws a ZodError.
5
+ */
6
+ export declare function validateManifest(raw: unknown): SkillManifest;
7
+ /**
8
+ * Creates an unsigned manifest with the entryHash computed from the source code.
9
+ */
10
+ export declare function createUnsignedManifest(opts: {
11
+ id: string;
12
+ name: string;
13
+ publisher: string;
14
+ permissions: SkillPermission[];
15
+ entrySource: string;
16
+ }): Omit<SkillManifest, "signature" | "publicKey" | "signedAt">;
17
+ /**
18
+ * Computes a deterministic SHA-256 hash of the manifest fields (excluding signature),
19
+ * using canonical JSON serialization.
20
+ */
21
+ export declare function hashManifest(manifest: Omit<SkillManifest, "signature">): string;
22
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/supply-chain/manifest.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAE5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,CAU9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,CAc/E"}
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright 2026 Usertools, Inc.
3
+ import { createHash } from "node:crypto";
4
+ import { canonicalize } from "../audit/canonical.js";
5
+ import { SkillManifestSchema } from "../shared/types.js";
6
+ /**
7
+ * Validates a raw manifest object against the SkillManifest Zod schema.
8
+ * Returns the typed manifest or throws a ZodError.
9
+ */
10
+ export function validateManifest(raw) {
11
+ return SkillManifestSchema.parse(raw);
12
+ }
13
+ /**
14
+ * Creates an unsigned manifest with the entryHash computed from the source code.
15
+ */
16
+ export function createUnsignedManifest(opts) {
17
+ const entryHash = createHash("sha256").update(opts.entrySource).digest("hex");
18
+ return {
19
+ version: 1,
20
+ id: opts.id,
21
+ name: opts.name,
22
+ publisher: opts.publisher,
23
+ permissions: opts.permissions,
24
+ entryHash,
25
+ };
26
+ }
27
+ /**
28
+ * Computes a deterministic SHA-256 hash of the manifest fields (excluding signature),
29
+ * using canonical JSON serialization.
30
+ */
31
+ export function hashManifest(manifest) {
32
+ // Extract only the fields that contribute to the hash (everything except signature)
33
+ const hashable = {
34
+ version: manifest.version,
35
+ id: manifest.id,
36
+ name: manifest.name,
37
+ publisher: manifest.publisher,
38
+ permissions: manifest.permissions,
39
+ entryHash: manifest.entryHash,
40
+ signedAt: manifest.signedAt,
41
+ publicKey: manifest.publicKey,
42
+ };
43
+ const canonical = canonicalize(hashable);
44
+ return createHash("sha256").update(canonical).digest("hex");
45
+ }
46
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/supply-chain/manifest.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC5C,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAMtC;IACA,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO;QACN,OAAO,EAAE,CAAC;QACV,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS;KACT,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAA0C;IACtE,oFAAoF;IACpF,MAAM,QAAQ,GAAG;QAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,QAAQ,EAAG,QAA0B,CAAC,QAAQ;QAC9C,SAAS,EAAG,QAA0B,CAAC,SAAS;KAChD,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SkillManifest, SkillVerification, TrustConfig } from "../shared/types.js";
2
+ /**
3
+ * Checks whether a manifest's permissions are allowed by the config policy.
4
+ * Trusted publishers bypass permission restrictions.
5
+ */
6
+ export declare function checkPermissions(manifest: SkillManifest, config: TrustConfig): SkillVerification;
7
+ /**
8
+ * Full verification pipeline: validate schema, verify signature, check permissions, check trusted publishers.
9
+ * Returns a SkillVerification result. Throws SkillVerificationError on hard failures.
10
+ */
11
+ export declare function enforceSkillLoad(manifest: SkillManifest, config: TrustConfig): SkillVerification;
12
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/supply-chain/permissions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,aAAa,EAEb,iBAAiB,EACjB,WAAW,EACX,MAAM,oBAAoB,CAAC;AAY5B;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAuBhG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAqDhG"}