@nexural/schema 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,555 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/primitives.ts
4
+ var Iso8601 = z.string().datetime({ offset: true });
5
+ var IsoDate = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "must be YYYY-MM-DD");
6
+ var Ulid = z.string().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, "must be a valid ULID (26 chars, Crockford base32)");
7
+ var KebabSlug = z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "must be kebab-case (lowercase, hyphens)");
8
+ var TrustTier = z.enum(["public", "internal", "private-encrypted"]);
9
+ var WarehouseStatus = z.enum(["active", "seeded", "archived", "deprecated", "merged"]);
10
+ var SchemaVersion = z.literal(1);
11
+ var SemverString = z.string().regex(
12
+ /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,
13
+ "must be valid semver (MAJOR.MINOR.PATCH[-pre][+build])"
14
+ );
15
+ var RepoUrl = z.string().url().regex(/^https:\/\/github\.com\//, "must be https://github.com/...");
16
+ var Email = z.string().email();
17
+ var DecayDays = z.number().int().positive().max(3650, "decay > 10 years not allowed");
18
+ var Federation = z.enum(["factory", "lifeops"]);
19
+ var GitSha = z.string().regex(/^[a-f0-9]{7,64}$/, "must be a 7-64 char lowercase hex git SHA");
20
+ var Sha256Hex = z.string().regex(/^[a-f0-9]{64}$/, "must be 64-char lowercase hex sha256");
21
+ var OpUri = z.string().regex(/^op:\/\//, "must start with op:// (1Password CLI URI)");
22
+ var EnvVarName = z.string().regex(/^[A-Z_][A-Z0-9_]*$/, "must be SCREAMING_SNAKE_CASE");
23
+ var UsdAmount = z.number().nonnegative();
24
+ var PositiveUsdAmount = z.number().positive();
25
+ var NexuralErrorCode = z.enum([
26
+ // Schema
27
+ "schema_validation_failed",
28
+ "schema_version_mismatch",
29
+ // MCP
30
+ "mcp_timeout",
31
+ "mcp_unavailable",
32
+ "mcp_invalid_response",
33
+ // Decay
34
+ "decay_quarantined",
35
+ "decay_stale",
36
+ // Recipe / forge
37
+ "recipe_signature_invalid",
38
+ "recipe_revoked",
39
+ "recipe_input_invalid",
40
+ "recipe_sbom_gate_failed",
41
+ "recipe_license_gate_failed",
42
+ "recipe_typosquat_detected",
43
+ // Cost
44
+ "cost_cap_exceeded",
45
+ "cost_cap_streaming_exceeded",
46
+ "cost_circuit_break",
47
+ // Tier / federation
48
+ "tier_confinement_violation",
49
+ "federation_mismatch",
50
+ // Auth / secrets
51
+ "secret_resolution_failed",
52
+ "op_signin_required"
53
+ ]);
54
+ var NexuralError = z.object({
55
+ code: NexuralErrorCode,
56
+ message: z.string().min(1),
57
+ retryable: z.boolean(),
58
+ details: z.record(z.string(), z.unknown()).optional()
59
+ }).strict();
60
+ var TrustNone = z.object({
61
+ encryption: z.literal("none")
62
+ }).strict();
63
+ var TrustAgeSops = z.object({
64
+ encryption: z.literal("age+sops"),
65
+ key_source: z.enum(["yubikey-primary", "yubikey-backup", "1password-emergency"]),
66
+ recovery: z.string().min(1),
67
+ filename_strategy: z.enum(["plaintext", "ulid"])
68
+ }).strict();
69
+ var Trust = z.discriminatedUnion("encryption", [TrustNone, TrustAgeSops]);
70
+ var Backup = z.object({
71
+ destination: z.string().url(),
72
+ cadence: z.enum(["realtime", "hourly", "nightly", "weekly"]),
73
+ retention_days: z.number().int().positive()
74
+ }).strict();
75
+ var Mcp = z.object({
76
+ tool_prefix: KebabSlug,
77
+ exposes: z.array(KebabSlug).min(1)
78
+ }).strict();
79
+ var CrossRefs = z.object({
80
+ consumes_from: z.array(KebabSlug).default([]),
81
+ exposed_to: z.object({
82
+ public: z.boolean(),
83
+ agents: z.boolean(),
84
+ human: z.boolean()
85
+ }).strict()
86
+ }).strict();
87
+ var Metrics = z.object({
88
+ target_entries: z.number().int().nonnegative().optional(),
89
+ target_scorecard: z.number().int().min(0).max(100).optional()
90
+ }).strict();
91
+ var Links = z.object({
92
+ repo: RepoUrl,
93
+ docs: z.string().url().optional()
94
+ }).strict();
95
+ var WarehouseMeta = z.object({
96
+ schema_version: SchemaVersion,
97
+ name: KebabSlug,
98
+ tier: TrustTier,
99
+ description: z.string().min(20).max(500),
100
+ owner: z.string().min(1),
101
+ created: IsoDate,
102
+ last_reviewed: IsoDate,
103
+ decay_rate_days: DecayDays,
104
+ status: WarehouseStatus,
105
+ merged_into: KebabSlug.optional(),
106
+ /** Which federation this warehouse belongs to (per ADR-0003). */
107
+ federation: Federation,
108
+ trust: Trust,
109
+ backup: Backup,
110
+ mcp: Mcp,
111
+ cross_refs: CrossRefs,
112
+ metrics: Metrics.optional(),
113
+ links: Links
114
+ }).strict().refine((m) => m.status !== "merged" || !!m.merged_into, {
115
+ message: "merged status requires merged_into target"
116
+ }).refine((m) => m.tier !== "private-encrypted" || m.trust.encryption === "age+sops", {
117
+ message: "private-encrypted tier requires age+sops encryption"
118
+ }).refine((m) => m.tier === "public" || !m.cross_refs.exposed_to.public, {
119
+ message: "non-public tier cannot have exposed_to.public = true"
120
+ });
121
+ var SourceType = z.enum([
122
+ "principle",
123
+ "playbook",
124
+ "framework",
125
+ "template",
126
+ "case-study",
127
+ "decision",
128
+ "reference",
129
+ "snippet",
130
+ "checklist",
131
+ "rubric",
132
+ "post-mortem"
133
+ ]);
134
+ var RelatedRelation = z.enum(["extends", "supersedes", "informs", "contradicts", "cites"]);
135
+ var Related = z.object({
136
+ warehouse: KebabSlug,
137
+ id: z.union([Ulid, KebabSlug]),
138
+ relation: RelatedRelation
139
+ }).strict();
140
+ var Visibility = z.object({
141
+ public_via_mcp: z.boolean(),
142
+ embedding_eligible: z.boolean()
143
+ }).strict();
144
+ var ContentFrontmatter = z.object({
145
+ schema_version: SchemaVersion,
146
+ id: z.union([Ulid, KebabSlug]),
147
+ title: z.string().min(3).max(200),
148
+ summary: z.string().min(20).max(500),
149
+ tags: z.array(KebabSlug).max(20),
150
+ created: IsoDate,
151
+ updated: IsoDate,
152
+ last_reviewed: IsoDate,
153
+ decay_rate_days: DecayDays.optional(),
154
+ status: z.enum(["draft", "active", "archived", "deprecated"]),
155
+ authors: z.array(z.string()).min(1),
156
+ source_type: SourceType,
157
+ related: z.array(Related).default([]),
158
+ visibility: Visibility
159
+ }).strict();
160
+ var IndexEntry = z.object({
161
+ id: z.union([Ulid, KebabSlug]),
162
+ path: z.string(),
163
+ title: z.string(),
164
+ tags: z.array(KebabSlug),
165
+ updated: IsoDate,
166
+ last_reviewed: IsoDate,
167
+ source_type: SourceType
168
+ }).strict();
169
+ var IndexHealth = z.object({
170
+ decayed_entries: z.number().int().nonnegative(),
171
+ draft_entries: z.number().int().nonnegative(),
172
+ scorecard: z.number().int().min(0).max(100).optional()
173
+ }).strict();
174
+ var WarehouseIndex = z.object({
175
+ schema_version: SchemaVersion,
176
+ warehouse: KebabSlug,
177
+ generated_at: Iso8601,
178
+ generator_version: SemverString,
179
+ count: z.number().int().nonnegative(),
180
+ entries: z.array(IndexEntry),
181
+ health: IndexHealth
182
+ }).strict();
183
+ var Caller = z.object({
184
+ kind: z.enum(["nx-cli", "agent", "dashboard", "test"]),
185
+ session_id: Ulid.optional(),
186
+ user: z.string().optional()
187
+ }).strict();
188
+ var McpToolRequest = z.object({
189
+ schema_version: SchemaVersion,
190
+ request_id: Ulid,
191
+ caller: Caller,
192
+ tool: KebabSlug,
193
+ args: z.record(z.string(), z.unknown()),
194
+ timeout_ms: z.number().int().positive().max(3e4).default(5e3)
195
+ }).strict();
196
+ var McpWarning = z.object({
197
+ code: z.enum([
198
+ "stale",
199
+ "draft-content",
200
+ "low-confidence",
201
+ "tier-mismatch",
202
+ "deprecated",
203
+ "tier_confinement_violation",
204
+ "citation_stripped",
205
+ "token_budget_trimmed"
206
+ ]),
207
+ message: z.string()
208
+ }).strict();
209
+ var McpCitation = z.object({
210
+ warehouse: KebabSlug,
211
+ id: z.union([Ulid, KebabSlug]),
212
+ title: z.string().optional(),
213
+ url: z.string().url().optional()
214
+ }).strict();
215
+ var McpErrorShape = z.object({
216
+ code: z.string(),
217
+ message: z.string(),
218
+ retryable: z.boolean()
219
+ }).strict();
220
+ var McpToolResponse = z.object({
221
+ schema_version: SchemaVersion,
222
+ request_id: Ulid,
223
+ warehouse: KebabSlug,
224
+ tool: KebabSlug,
225
+ ok: z.boolean(),
226
+ latency_ms: z.number().int().nonnegative(),
227
+ data: z.unknown().optional(),
228
+ error: McpErrorShape.optional(),
229
+ warnings: z.array(McpWarning).default([]),
230
+ citations: z.array(McpCitation).default([])
231
+ }).strict().refine((r) => r.ok || !!r.error, {
232
+ message: "non-ok response must include error"
233
+ });
234
+ var BaseEvent = z.object({
235
+ schema_version: SchemaVersion,
236
+ event_id: Ulid,
237
+ ts: Iso8601,
238
+ host: z.string(),
239
+ process: z.enum(["nx", "router", "warehouse-mcp", "ci", "cron"]),
240
+ session_id: Ulid.optional()
241
+ });
242
+ var ToolCallEvent = BaseEvent.extend({
243
+ kind: z.literal("tool_call"),
244
+ warehouse: KebabSlug,
245
+ tool: KebabSlug,
246
+ latency_ms: z.number().int().nonnegative(),
247
+ ok: z.boolean(),
248
+ error_code: z.string().optional()
249
+ }).strict();
250
+ var NxCommandEvent = BaseEvent.extend({
251
+ kind: z.literal("nx_command"),
252
+ command: KebabSlug,
253
+ args_hash: z.string().regex(/^[a-f0-9]{64}$/, "must be sha256 hex"),
254
+ latency_ms: z.number().int().nonnegative(),
255
+ exit_code: z.number().int()
256
+ }).strict();
257
+ var DecayWarnEvent = BaseEvent.extend({
258
+ kind: z.literal("decay_warn"),
259
+ warehouse: KebabSlug,
260
+ days_since_review: z.number().int().nonnegative(),
261
+ decay_rate_days: DecayDays,
262
+ severity: z.enum(["warn", "quarantine"])
263
+ }).strict();
264
+ var AuditEvent = BaseEvent.extend({
265
+ kind: z.literal("audit"),
266
+ op: z.enum(["decrypt", "encrypt", "key_rotate", "key_lost", "key_added"]),
267
+ warehouse: KebabSlug.optional(),
268
+ file_ulid: Ulid.optional(),
269
+ key_id: z.string(),
270
+ exit: z.number().int()
271
+ }).strict();
272
+ var CostEvent = BaseEvent.extend({
273
+ kind: z.literal("cost_event"),
274
+ app: KebabSlug,
275
+ recipe: KebabSlug,
276
+ severity: z.enum(["warn", "exceeded", "circuit_break"]),
277
+ scope: z.enum(["per_request", "per_user_day", "per_app_day"]),
278
+ projected_usd: z.number().nonnegative(),
279
+ cap_usd: z.number().positive(),
280
+ user_hash: z.string().regex(/^[a-f0-9]{64}$/, "must be sha256 hex (never raw user id)").optional()
281
+ }).strict();
282
+ var TelemetryEvent = z.discriminatedUnion("kind", [
283
+ ToolCallEvent,
284
+ NxCommandEvent,
285
+ DecayWarnEvent,
286
+ AuditEvent,
287
+ CostEvent
288
+ ]);
289
+ var Finding = z.object({
290
+ category: KebabSlug,
291
+ severity: z.enum(["info", "warn", "error", "critical"]),
292
+ message: z.string(),
293
+ file: z.string().optional()
294
+ }).strict();
295
+ var Grade = z.enum(["S", "A", "B", "C", "D", "F"]);
296
+ var WarehouseScore = z.object({
297
+ name: KebabSlug,
298
+ federation: Federation,
299
+ score: z.number().int().min(0).max(100),
300
+ grade: Grade,
301
+ findings: z.array(Finding)
302
+ }).strict();
303
+ var Aggregate = z.object({
304
+ mean_score: z.number(),
305
+ median_score: z.number(),
306
+ below_80_count: z.number().int().nonnegative(),
307
+ below_90_count: z.number().int().nonnegative()
308
+ }).strict();
309
+ var ScorecardReport = z.object({
310
+ schema_version: SchemaVersion,
311
+ generated_at: Iso8601,
312
+ warehouses: z.array(WarehouseScore),
313
+ aggregate: Aggregate
314
+ }).strict();
315
+ var RegistryEntry = z.object({
316
+ name: KebabSlug,
317
+ tier: TrustTier,
318
+ status: WarehouseStatus,
319
+ repo: RepoUrl,
320
+ last_reviewed: IsoDate,
321
+ decay_rate_days: DecayDays,
322
+ discovered_via: z.enum(["github-topic", "explicit-list", "manual-add"])
323
+ }).strict();
324
+ var Registry = z.object({
325
+ schema_version: SchemaVersion,
326
+ federation: Federation,
327
+ generated_at: Iso8601,
328
+ warehouses: z.array(RegistryEntry)
329
+ }).strict();
330
+ var Link = z.object({
331
+ from_warehouse: KebabSlug,
332
+ from_id: z.union([Ulid, KebabSlug]),
333
+ to_warehouse: KebabSlug,
334
+ to_id: z.union([Ulid, KebabSlug]),
335
+ relation: z.string(),
336
+ valid: z.boolean(),
337
+ reason: z.string().optional()
338
+ }).strict();
339
+ var Summary = z.object({
340
+ total: z.number().int().nonnegative(),
341
+ broken: z.number().int().nonnegative(),
342
+ orphan_warehouses: z.array(KebabSlug)
343
+ }).strict();
344
+ var CrossRefReport = z.object({
345
+ schema_version: SchemaVersion,
346
+ generated_at: Iso8601,
347
+ links: z.array(Link),
348
+ summary: Summary
349
+ }).strict();
350
+ var Override = z.object({
351
+ match: z.object({
352
+ tag: KebabSlug.optional(),
353
+ source_type: SourceType.optional(),
354
+ path_glob: z.string().optional()
355
+ }).strict(),
356
+ decay_days: DecayDays
357
+ }).strict();
358
+ var DecayConfig = z.object({
359
+ schema_version: SchemaVersion,
360
+ default_days: DecayDays.optional(),
361
+ overrides: z.array(Override).default([])
362
+ }).strict();
363
+ var AdrFrontmatter = z.object({
364
+ number: z.number().int().positive(),
365
+ title: z.string().min(5).max(120),
366
+ status: z.enum(["proposed", "accepted", "superseded", "deprecated"]),
367
+ supersedes: z.number().int().positive().optional(),
368
+ superseded_by: z.number().int().positive().optional(),
369
+ date: IsoDate,
370
+ deciders: z.array(z.string()).min(1),
371
+ soak_until: IsoDate
372
+ }).strict();
373
+ var NextjsService = z.object({
374
+ id: KebabSlug,
375
+ runtime: z.literal("nextjs"),
376
+ language: z.literal("typescript"),
377
+ host: z.enum(["vercel", "cloudflare-pages"])
378
+ }).strict();
379
+ var ModalService = z.object({
380
+ id: KebabSlug,
381
+ runtime: z.literal("modal"),
382
+ language: z.literal("python"),
383
+ python_version: z.enum(["3.11", "3.12"]),
384
+ deps: z.string(),
385
+ host: z.literal("modal"),
386
+ contract: z.string(),
387
+ gpu: z.enum(["none", "t4", "a10g", "a100"]).default("none")
388
+ }).strict();
389
+ var RailwayService = z.object({
390
+ id: KebabSlug,
391
+ runtime: z.literal("railway"),
392
+ language: z.enum(["python", "node"]),
393
+ deps: z.string(),
394
+ host: z.literal("railway"),
395
+ contract: z.string()
396
+ }).strict();
397
+ var CloudflareWorkerService = z.object({
398
+ id: KebabSlug,
399
+ runtime: z.literal("cloudflare-worker"),
400
+ language: z.literal("typescript"),
401
+ host: z.literal("cloudflare"),
402
+ contract: z.string().optional()
403
+ }).strict();
404
+ var ServiceDeclaration = z.discriminatedUnion("runtime", [
405
+ NextjsService,
406
+ ModalService,
407
+ RailwayService,
408
+ CloudflareWorkerService
409
+ ]);
410
+ var CostEnvelope = z.object({
411
+ per_request_p50_usd: UsdAmount,
412
+ per_request_p99_usd: UsdAmount,
413
+ monthly_baseline_usd: UsdAmount,
414
+ hard_caps: z.object({
415
+ per_request_usd: PositiveUsdAmount,
416
+ per_user_per_day_usd: PositiveUsdAmount,
417
+ per_app_per_day_usd: PositiveUsdAmount
418
+ }).strict()
419
+ }).strict();
420
+ var SecretDeclaration = z.object({
421
+ logical_name: KebabSlug,
422
+ op_path: OpUri,
423
+ target_file: z.string(),
424
+ target_var: EnvVarName
425
+ }).strict();
426
+ var ForgeSandbox = z.object({
427
+ ignore_scripts: z.boolean().default(true),
428
+ allowed_postinstalls: z.array(z.string()).default([])
429
+ }).strict().default({ ignore_scripts: true, allowed_postinstalls: [] });
430
+ var EmitConfig = z.object({
431
+ template_path: z.string(),
432
+ pre_emit_hooks: z.array(z.string()).default([]),
433
+ post_emit_hooks: z.array(z.string()).default([])
434
+ }).strict();
435
+ var RecipeManifest = z.object({
436
+ schema_version: SchemaVersion,
437
+ name: KebabSlug,
438
+ version: SemverString,
439
+ description: z.string().min(20).max(500),
440
+ // Inheritance / composition
441
+ extends: KebabSlug.optional(),
442
+ composes: z.array(KebabSlug).default([]),
443
+ // Inputs
444
+ inputs_schema: z.string(),
445
+ // References
446
+ warehouses: z.array(KebabSlug).min(1),
447
+ services: z.array(ServiceDeclaration).default([]),
448
+ // QA
449
+ qa_profile: z.enum(["fast", "standard", "thorough", "deep"]).default("standard"),
450
+ // Cost discipline
451
+ cost_envelope: CostEnvelope,
452
+ model_families: z.array(z.string().regex(/^[a-z0-9-]+:[a-z0-9-]+$/)).default([]),
453
+ // License composition (ADR-0006)
454
+ output_license: z.enum(["MIT", "Apache-2.0", "ISC"]),
455
+ commercial_restricted_ok: z.boolean().default(false),
456
+ // Secrets
457
+ secrets_required: z.array(SecretDeclaration).default([]),
458
+ // Emit configuration
459
+ emit: EmitConfig,
460
+ // Per-recipe required docs (ADR-0008)
461
+ threat_model_path: z.string(),
462
+ decisions_path: z.string(),
463
+ // Forge hygiene (ADR-0009)
464
+ forge_sandbox: ForgeSandbox
465
+ }).strict().refine((r) => r.services.length > 0 || r.warehouses.length > 0, {
466
+ message: "recipe must declare at least one service or one warehouse"
467
+ });
468
+ var WarehouseConsumption = z.object({
469
+ name: KebabSlug,
470
+ sha: GitSha,
471
+ version: SemverString.optional()
472
+ }).strict();
473
+ var RecipeReference = z.object({
474
+ name: KebabSlug,
475
+ version: SemverString,
476
+ sha: GitSha,
477
+ signature: z.string().min(1),
478
+ provenance: z.string().url()
479
+ }).strict();
480
+ var ForgedLockfile = z.object({
481
+ schema_version: SchemaVersion,
482
+ forged_at: Iso8601,
483
+ forged_by_nx_version: SemverString,
484
+ recipe: RecipeReference,
485
+ warehouses_consumed: z.array(WarehouseConsumption).min(1),
486
+ inputs: z.record(z.string(), z.unknown()),
487
+ model_families_used: z.array(z.string()).default([]),
488
+ sbom_hash: Sha256Hex
489
+ }).strict();
490
+ var QualityAttestation = z.object({
491
+ source: z.string(),
492
+ score: z.number().int().min(0).max(100),
493
+ verified_at: IsoDate,
494
+ next_review: IsoDate
495
+ }).strict();
496
+ var ExternalMcpEndpoint = z.object({
497
+ schema_version: SchemaVersion,
498
+ name: KebabSlug,
499
+ type: z.literal("external"),
500
+ transport: z.enum(["stdio", "http", "websocket"]),
501
+ command: z.array(z.string()).optional(),
502
+ url: z.string().url().optional(),
503
+ tool_prefix: KebabSlug,
504
+ schema_compatibility: z.enum(["nexural-1", "external"]),
505
+ federations: z.array(Federation).min(1),
506
+ quality_attestation: QualityAttestation
507
+ }).strict().refine(
508
+ (e) => e.transport === "stdio" && !!e.command && e.command.length > 0 || e.transport !== "stdio" && !!e.url,
509
+ { message: "stdio transport requires command; http/ws requires url" }
510
+ );
511
+ var ExternalMcpRegistry = z.object({
512
+ schema_version: SchemaVersion,
513
+ endpoints: z.array(ExternalMcpEndpoint)
514
+ }).strict();
515
+ var FamilyId = z.string().regex(/^[a-z0-9-]+:[a-z0-9-]+$/, "family must be `provider:tier` e.g. `anthropic:opus`");
516
+ var ModelTier = z.enum(["flagship", "premium", "balanced", "fast", "small"]);
517
+ var ModelStatus = z.enum(["current", "deprecating", "deprecated", "preview"]);
518
+ var Pricing = z.object({
519
+ input_per_million_tokens_usd: z.number().nonnegative(),
520
+ output_per_million_tokens_usd: z.number().nonnegative(),
521
+ cached_input_per_million_tokens_usd: z.number().nonnegative().optional()
522
+ }).strict();
523
+ var ModelFamilyResolution = z.object({
524
+ family: FamilyId,
525
+ id: z.string().min(1),
526
+ tier: ModelTier,
527
+ context_window: z.number().int().positive(),
528
+ pricing: Pricing,
529
+ /** Per ADR-0010 §2.8 — if current pricing exceeds this ceiling, router substitutes next family. */
530
+ price_ceiling_usd_per_million_tokens: z.number().positive().optional(),
531
+ deprecates_at: IsoDate.nullable(),
532
+ status: ModelStatus
533
+ }).strict();
534
+ var ModelFamilyRegistry = z.object({
535
+ schema_version: SchemaVersion,
536
+ generated_at: Iso8601,
537
+ resolutions: z.array(ModelFamilyResolution)
538
+ }).strict();
539
+ var RevokedRecipeEntry = z.object({
540
+ recipe_name: KebabSlug,
541
+ recipe_version: SemverString,
542
+ revoked_at: Iso8601,
543
+ reason: z.string().min(10, "must explain why (>= 10 chars)"),
544
+ ticket: z.string().url().optional(),
545
+ signature: z.string().min(1)
546
+ }).strict();
547
+ var RevokedRecipesList = z.object({
548
+ schema_version: SchemaVersion,
549
+ generated_at: Iso8601,
550
+ entries: z.array(RevokedRecipeEntry)
551
+ }).strict();
552
+
553
+ export { AdrFrontmatter, AuditEvent, ContentFrontmatter, CostEnvelope, CostEvent, CrossRefReport, DecayConfig, DecayDays, DecayWarnEvent, Email, EnvVarName, ExternalMcpEndpoint, ExternalMcpRegistry, Federation, ForgedLockfile, GitSha, Iso8601, IsoDate, KebabSlug, McpToolRequest, McpToolResponse, ModelFamilyRegistry, ModelFamilyResolution, NexuralError, NexuralErrorCode, NxCommandEvent, OpUri, PositiveUsdAmount, RecipeManifest, Registry, RelatedRelation, RepoUrl, RevokedRecipeEntry, RevokedRecipesList, SchemaVersion, ScorecardReport, SemverString, ServiceDeclaration, Sha256Hex, SourceType, TelemetryEvent, ToolCallEvent, TrustTier, Ulid, UsdAmount, WarehouseIndex, WarehouseMeta, WarehouseStatus };
554
+ //# sourceMappingURL=index.js.map
555
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/primitives.ts","../src/errors.ts","../src/meta.ts","../src/frontmatter.ts","../src/index-file.ts","../src/mcp.ts","../src/telemetry.ts","../src/scorecard.ts","../src/registry.ts","../src/cross-refs.ts","../src/decay.ts","../src/adr.ts","../src/recipe.ts","../src/external-mcp.ts","../src/model-router.ts","../src/revocation.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Primitive atoms imported by every other schema in @nexural/schema.\n *\n * Changing a primitive is a major version bump per SCHEMA_CHARTER §5.\n */\n\nimport { z } from \"zod\";\n\n/** ISO 8601 timestamp with timezone offset. */\nexport const Iso8601 = z.string().datetime({ offset: true });\n\n/** ISO 8601 date (YYYY-MM-DD). */\nexport const IsoDate = z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"must be YYYY-MM-DD\");\n\n/** ULID — Crockford base32, 26 chars. */\nexport const Ulid = z\n .string()\n .regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, \"must be a valid ULID (26 chars, Crockford base32)\");\n\n/** Kebab-case slug — lowercase alphanumeric with single-hyphen separators. */\nexport const KebabSlug = z\n .string()\n .regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, \"must be kebab-case (lowercase, hyphens)\");\n\n/** Warehouse trust tiers (per ARCHITECTURE.md §6, THREAT_MODEL §1). */\nexport const TrustTier = z.enum([\"public\", \"internal\", \"private-encrypted\"]);\nexport type TrustTier = z.infer<typeof TrustTier>;\n\n/** Warehouse lifecycle status (per RETIREMENT.md §1). */\nexport const WarehouseStatus = z.enum([\"active\", \"seeded\", \"archived\", \"deprecated\", \"merged\"]);\nexport type WarehouseStatus = z.infer<typeof WarehouseStatus>;\n\n/** Schema version — currently a single integer literal. Bumps require migration codemod (SCHEMA_CHARTER §6). */\nexport const SchemaVersion = z.literal(1);\nexport type SchemaVersion = z.infer<typeof SchemaVersion>;\n\n/** Strict semver string per https://semver.org */\nexport const SemverString = z\n .string()\n .regex(\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/,\n \"must be valid semver (MAJOR.MINOR.PATCH[-pre][+build])\",\n );\n\n/** GitHub repo URL — pinned to github.com (per NAMING.md). */\nexport const RepoUrl = z\n .string()\n .url()\n .regex(/^https:\\/\\/github\\.com\\//, \"must be https://github.com/...\");\n\n/** RFC 5322 email. */\nexport const Email = z.string().email();\n\n/** Decay rate in days (1 = daily, 7 = weekly, 90 = quarterly, 365 = yearly, 3650 = decadal). */\nexport const DecayDays = z.number().int().positive().max(3650, \"decay > 10 years not allowed\");\n\n/** Federation identifier (per ADR-0003). */\nexport const Federation = z.enum([\"factory\", \"lifeops\"]);\nexport type Federation = z.infer<typeof Federation>;\n\n/** Git SHA — short (7+) or full (40 or 64 for sha256). */\nexport const GitSha = z\n .string()\n .regex(/^[a-f0-9]{7,64}$/, \"must be a 7-64 char lowercase hex git SHA\");\n\n/** SHA-256 hex string (64 chars). */\nexport const Sha256Hex = z.string().regex(/^[a-f0-9]{64}$/, \"must be 64-char lowercase hex sha256\");\n\n/** 1Password CLI URI (`op://VaultName/ItemName/field`). */\nexport const OpUri = z.string().regex(/^op:\\/\\//, \"must start with op:// (1Password CLI URI)\");\n\n/** Environment variable identifier (SCREAMING_SNAKE_CASE, valid POSIX). */\nexport const EnvVarName = z.string().regex(/^[A-Z_][A-Z0-9_]*$/, \"must be SCREAMING_SNAKE_CASE\");\n\n/** USD amount (non-negative for projections, positive for caps). */\nexport const UsdAmount = z.number().nonnegative();\nexport const PositiveUsdAmount = z.number().positive();\n","/**\n * Typed error shapes used by @nexural/sdk, @nexural/mcp-base, @nexural/factory.\n *\n * All errors include a stable `code` string for telemetry filtering.\n */\n\nimport { z } from \"zod\";\n\nexport const NexuralErrorCode = z.enum([\n // Schema\n \"schema_validation_failed\",\n \"schema_version_mismatch\",\n\n // MCP\n \"mcp_timeout\",\n \"mcp_unavailable\",\n \"mcp_invalid_response\",\n\n // Decay\n \"decay_quarantined\",\n \"decay_stale\",\n\n // Recipe / forge\n \"recipe_signature_invalid\",\n \"recipe_revoked\",\n \"recipe_input_invalid\",\n \"recipe_sbom_gate_failed\",\n \"recipe_license_gate_failed\",\n \"recipe_typosquat_detected\",\n\n // Cost\n \"cost_cap_exceeded\",\n \"cost_cap_streaming_exceeded\",\n \"cost_circuit_break\",\n\n // Tier / federation\n \"tier_confinement_violation\",\n \"federation_mismatch\",\n\n // Auth / secrets\n \"secret_resolution_failed\",\n \"op_signin_required\",\n]);\nexport type NexuralErrorCode = z.infer<typeof NexuralErrorCode>;\n\nexport const NexuralError = z\n .object({\n code: NexuralErrorCode,\n message: z.string().min(1),\n retryable: z.boolean(),\n details: z.record(z.string(), z.unknown()).optional(),\n })\n .strict();\nexport type NexuralError = z.infer<typeof NexuralError>;\n","/**\n * WarehouseMeta — the `meta.yaml` file at the root of every warehouse.\n *\n * Validated:\n * - pre-commit via husky (warehouse-local `scripts/validate.mjs`)\n * - CI on every warehouse PR\n * - nightly via nexural-meta `scripts/verify-all.mjs`\n *\n * Per ARCHITECTURE.md §4.4 + ADR-0003 (federation field).\n */\n\nimport { z } from \"zod\";\nimport {\n DecayDays,\n Federation,\n IsoDate,\n KebabSlug,\n RepoUrl,\n SchemaVersion,\n TrustTier,\n WarehouseStatus,\n} from \"./primitives.js\";\n\nconst TrustNone = z\n .object({\n encryption: z.literal(\"none\"),\n })\n .strict();\n\nconst TrustAgeSops = z\n .object({\n encryption: z.literal(\"age+sops\"),\n key_source: z.enum([\"yubikey-primary\", \"yubikey-backup\", \"1password-emergency\"]),\n recovery: z.string().min(1),\n filename_strategy: z.enum([\"plaintext\", \"ulid\"]),\n })\n .strict();\n\nconst Trust = z.discriminatedUnion(\"encryption\", [TrustNone, TrustAgeSops]);\n\nconst Backup = z\n .object({\n destination: z.string().url(),\n cadence: z.enum([\"realtime\", \"hourly\", \"nightly\", \"weekly\"]),\n retention_days: z.number().int().positive(),\n })\n .strict();\n\nconst Mcp = z\n .object({\n tool_prefix: KebabSlug,\n exposes: z.array(KebabSlug).min(1),\n })\n .strict();\n\nconst CrossRefs = z\n .object({\n consumes_from: z.array(KebabSlug).default([]),\n exposed_to: z\n .object({\n public: z.boolean(),\n agents: z.boolean(),\n human: z.boolean(),\n })\n .strict(),\n })\n .strict();\n\nconst Metrics = z\n .object({\n target_entries: z.number().int().nonnegative().optional(),\n target_scorecard: z.number().int().min(0).max(100).optional(),\n })\n .strict();\n\nconst Links = z\n .object({\n repo: RepoUrl,\n docs: z.string().url().optional(),\n })\n .strict();\n\nexport const WarehouseMeta = z\n .object({\n schema_version: SchemaVersion,\n name: KebabSlug,\n tier: TrustTier,\n description: z.string().min(20).max(500),\n owner: z.string().min(1),\n created: IsoDate,\n last_reviewed: IsoDate,\n decay_rate_days: DecayDays,\n status: WarehouseStatus,\n merged_into: KebabSlug.optional(),\n\n /** Which federation this warehouse belongs to (per ADR-0003). */\n federation: Federation,\n\n trust: Trust,\n backup: Backup,\n mcp: Mcp,\n cross_refs: CrossRefs,\n metrics: Metrics.optional(),\n links: Links,\n })\n .strict()\n .refine((m) => m.status !== \"merged\" || !!m.merged_into, {\n message: \"merged status requires merged_into target\",\n })\n .refine((m) => m.tier !== \"private-encrypted\" || m.trust.encryption === \"age+sops\", {\n message: \"private-encrypted tier requires age+sops encryption\",\n })\n .refine((m) => m.tier === \"public\" || !m.cross_refs.exposed_to.public, {\n message: \"non-public tier cannot have exposed_to.public = true\",\n });\n\nexport type WarehouseMeta = z.infer<typeof WarehouseMeta>;\n","/**\n * ContentFrontmatter — per-entry `frontmatter.yaml` inside a warehouse.\n *\n * Validated at warehouse pre-commit + CI.\n */\n\nimport { z } from \"zod\";\nimport { DecayDays, IsoDate, KebabSlug, SchemaVersion, Ulid } from \"./primitives.js\";\n\nexport const SourceType = z.enum([\n \"principle\",\n \"playbook\",\n \"framework\",\n \"template\",\n \"case-study\",\n \"decision\",\n \"reference\",\n \"snippet\",\n \"checklist\",\n \"rubric\",\n \"post-mortem\",\n]);\nexport type SourceType = z.infer<typeof SourceType>;\n\nexport const RelatedRelation = z.enum([\"extends\", \"supersedes\", \"informs\", \"contradicts\", \"cites\"]);\nexport type RelatedRelation = z.infer<typeof RelatedRelation>;\n\nconst Related = z\n .object({\n warehouse: KebabSlug,\n id: z.union([Ulid, KebabSlug]),\n relation: RelatedRelation,\n })\n .strict();\n\nconst Visibility = z\n .object({\n public_via_mcp: z.boolean(),\n embedding_eligible: z.boolean(),\n })\n .strict();\n\nexport const ContentFrontmatter = z\n .object({\n schema_version: SchemaVersion,\n id: z.union([Ulid, KebabSlug]),\n title: z.string().min(3).max(200),\n summary: z.string().min(20).max(500),\n tags: z.array(KebabSlug).max(20),\n created: IsoDate,\n updated: IsoDate,\n last_reviewed: IsoDate,\n decay_rate_days: DecayDays.optional(),\n status: z.enum([\"draft\", \"active\", \"archived\", \"deprecated\"]),\n authors: z.array(z.string()).min(1),\n source_type: SourceType,\n related: z.array(Related).default([]),\n visibility: Visibility,\n })\n .strict();\n\nexport type ContentFrontmatter = z.infer<typeof ContentFrontmatter>;\n","/**\n * WarehouseIndex — generated `index.json` per warehouse.\n *\n * NEVER hand-edited. Pre-commit hook fails if hash diverges from\n * `scripts/build-index.mjs` output.\n */\n\nimport { z } from \"zod\";\nimport { SourceType } from \"./frontmatter.js\";\nimport { IsoDate, Iso8601, KebabSlug, SchemaVersion, SemverString, Ulid } from \"./primitives.js\";\n\nconst IndexEntry = z\n .object({\n id: z.union([Ulid, KebabSlug]),\n path: z.string(),\n title: z.string(),\n tags: z.array(KebabSlug),\n updated: IsoDate,\n last_reviewed: IsoDate,\n source_type: SourceType,\n })\n .strict();\n\nconst IndexHealth = z\n .object({\n decayed_entries: z.number().int().nonnegative(),\n draft_entries: z.number().int().nonnegative(),\n scorecard: z.number().int().min(0).max(100).optional(),\n })\n .strict();\n\nexport const WarehouseIndex = z\n .object({\n schema_version: SchemaVersion,\n warehouse: KebabSlug,\n generated_at: Iso8601,\n generator_version: SemverString,\n count: z.number().int().nonnegative(),\n entries: z.array(IndexEntry),\n health: IndexHealth,\n })\n .strict();\n\nexport type WarehouseIndex = z.infer<typeof WarehouseIndex>;\n","/**\n * MCP tool envelopes — used by every MCP tool exposed by every warehouse.\n *\n * Enforced by @nexural/mcp-base at runtime (Zod parse on every req/resp).\n *\n * Per SCHEMA_CHARTER §4.4 + ADR-0008 (prompt-injection warning codes).\n */\n\nimport { z } from \"zod\";\nimport { KebabSlug, SchemaVersion, Ulid } from \"./primitives.js\";\n\nconst Caller = z\n .object({\n kind: z.enum([\"nx-cli\", \"agent\", \"dashboard\", \"test\"]),\n session_id: Ulid.optional(),\n user: z.string().optional(),\n })\n .strict();\n\nexport const McpToolRequest = z\n .object({\n schema_version: SchemaVersion,\n request_id: Ulid,\n caller: Caller,\n tool: KebabSlug,\n args: z.record(z.string(), z.unknown()),\n timeout_ms: z.number().int().positive().max(30_000).default(5_000),\n })\n .strict();\nexport type McpToolRequest = z.infer<typeof McpToolRequest>;\n\nconst McpWarning = z\n .object({\n code: z.enum([\n \"stale\",\n \"draft-content\",\n \"low-confidence\",\n \"tier-mismatch\",\n \"deprecated\",\n \"tier_confinement_violation\",\n \"citation_stripped\",\n \"token_budget_trimmed\",\n ]),\n message: z.string(),\n })\n .strict();\n\nconst McpCitation = z\n .object({\n warehouse: KebabSlug,\n id: z.union([Ulid, KebabSlug]),\n title: z.string().optional(),\n url: z.string().url().optional(),\n })\n .strict();\n\nconst McpErrorShape = z\n .object({\n code: z.string(),\n message: z.string(),\n retryable: z.boolean(),\n })\n .strict();\n\nexport const McpToolResponse = z\n .object({\n schema_version: SchemaVersion,\n request_id: Ulid,\n warehouse: KebabSlug,\n tool: KebabSlug,\n ok: z.boolean(),\n latency_ms: z.number().int().nonnegative(),\n data: z.unknown().optional(),\n error: McpErrorShape.optional(),\n warnings: z.array(McpWarning).default([]),\n citations: z.array(McpCitation).default([]),\n })\n .strict()\n .refine((r) => r.ok || !!r.error, {\n message: \"non-ok response must include error\",\n });\n\nexport type McpToolResponse = z.infer<typeof McpToolResponse>;\n","/**\n * Telemetry events — written by every component (nx, router, warehouse-mcp, ci, cron).\n *\n * **Privacy:** raw query strings and tool args are NEVER stored. Only hashes.\n *\n * Per SCHEMA_CHARTER §4.5 + ADR-0007 (CostEvent).\n */\n\nimport { z } from \"zod\";\nimport { DecayDays, Iso8601, KebabSlug, SchemaVersion, Ulid } from \"./primitives.js\";\n\nconst BaseEvent = z.object({\n schema_version: SchemaVersion,\n event_id: Ulid,\n ts: Iso8601,\n host: z.string(),\n process: z.enum([\"nx\", \"router\", \"warehouse-mcp\", \"ci\", \"cron\"]),\n session_id: Ulid.optional(),\n});\n\nexport const ToolCallEvent = BaseEvent.extend({\n kind: z.literal(\"tool_call\"),\n warehouse: KebabSlug,\n tool: KebabSlug,\n latency_ms: z.number().int().nonnegative(),\n ok: z.boolean(),\n error_code: z.string().optional(),\n}).strict();\n\nexport const NxCommandEvent = BaseEvent.extend({\n kind: z.literal(\"nx_command\"),\n command: KebabSlug,\n args_hash: z.string().regex(/^[a-f0-9]{64}$/, \"must be sha256 hex\"),\n latency_ms: z.number().int().nonnegative(),\n exit_code: z.number().int(),\n}).strict();\n\nexport const DecayWarnEvent = BaseEvent.extend({\n kind: z.literal(\"decay_warn\"),\n warehouse: KebabSlug,\n days_since_review: z.number().int().nonnegative(),\n decay_rate_days: DecayDays,\n severity: z.enum([\"warn\", \"quarantine\"]),\n}).strict();\n\nexport const AuditEvent = BaseEvent.extend({\n kind: z.literal(\"audit\"),\n op: z.enum([\"decrypt\", \"encrypt\", \"key_rotate\", \"key_lost\", \"key_added\"]),\n warehouse: KebabSlug.optional(),\n file_ulid: Ulid.optional(),\n key_id: z.string(),\n exit: z.number().int(),\n}).strict();\n\n/** Per ADR-0007 §7 — emitted by @nexural/sdk.llmClient() cost wrapper. */\nexport const CostEvent = BaseEvent.extend({\n kind: z.literal(\"cost_event\"),\n app: KebabSlug,\n recipe: KebabSlug,\n severity: z.enum([\"warn\", \"exceeded\", \"circuit_break\"]),\n scope: z.enum([\"per_request\", \"per_user_day\", \"per_app_day\"]),\n projected_usd: z.number().nonnegative(),\n cap_usd: z.number().positive(),\n user_hash: z\n .string()\n .regex(/^[a-f0-9]{64}$/, \"must be sha256 hex (never raw user id)\")\n .optional(),\n}).strict();\n\nexport const TelemetryEvent = z.discriminatedUnion(\"kind\", [\n ToolCallEvent,\n NxCommandEvent,\n DecayWarnEvent,\n AuditEvent,\n CostEvent,\n]);\n\nexport type ToolCallEvent = z.infer<typeof ToolCallEvent>;\nexport type NxCommandEvent = z.infer<typeof NxCommandEvent>;\nexport type DecayWarnEvent = z.infer<typeof DecayWarnEvent>;\nexport type AuditEvent = z.infer<typeof AuditEvent>;\nexport type CostEvent = z.infer<typeof CostEvent>;\nexport type TelemetryEvent = z.infer<typeof TelemetryEvent>;\n","/**\n * ScorecardReport — generated artifact produced by nexural-qa-os\n * verify-all run. Lives at `nexural-meta/scorecard.json`.\n */\n\nimport { z } from \"zod\";\nimport { Federation, Iso8601, KebabSlug, SchemaVersion } from \"./primitives.js\";\n\nconst Finding = z\n .object({\n category: KebabSlug,\n severity: z.enum([\"info\", \"warn\", \"error\", \"critical\"]),\n message: z.string(),\n file: z.string().optional(),\n })\n .strict();\n\nconst Grade = z.enum([\"S\", \"A\", \"B\", \"C\", \"D\", \"F\"]);\n\nconst WarehouseScore = z\n .object({\n name: KebabSlug,\n federation: Federation,\n score: z.number().int().min(0).max(100),\n grade: Grade,\n findings: z.array(Finding),\n })\n .strict();\n\nconst Aggregate = z\n .object({\n mean_score: z.number(),\n median_score: z.number(),\n below_80_count: z.number().int().nonnegative(),\n below_90_count: z.number().int().nonnegative(),\n })\n .strict();\n\nexport const ScorecardReport = z\n .object({\n schema_version: SchemaVersion,\n generated_at: Iso8601,\n warehouses: z.array(WarehouseScore),\n aggregate: Aggregate,\n })\n .strict();\n\nexport type ScorecardReport = z.infer<typeof ScorecardReport>;\n","/**\n * Registry — generated per-federation artifact. Two files exist per ADR-0003:\n * - registry-factory.yaml\n * - registry-lifeops.yaml\n *\n * Generated nightly by `scripts/discover.mjs`. NEVER hand-edited.\n */\n\nimport { z } from \"zod\";\nimport {\n DecayDays,\n Federation,\n IsoDate,\n Iso8601,\n KebabSlug,\n RepoUrl,\n SchemaVersion,\n TrustTier,\n WarehouseStatus,\n} from \"./primitives.js\";\n\nconst RegistryEntry = z\n .object({\n name: KebabSlug,\n tier: TrustTier,\n status: WarehouseStatus,\n repo: RepoUrl,\n last_reviewed: IsoDate,\n decay_rate_days: DecayDays,\n discovered_via: z.enum([\"github-topic\", \"explicit-list\", \"manual-add\"]),\n })\n .strict();\n\nexport const Registry = z\n .object({\n schema_version: SchemaVersion,\n federation: Federation,\n generated_at: Iso8601,\n warehouses: z.array(RegistryEntry),\n })\n .strict();\n\nexport type Registry = z.infer<typeof Registry>;\n","/**\n * CrossRefReport — generated artifact validating `related` links across the federation.\n *\n * Produced nightly by `scripts/cross-refs.mjs`.\n */\n\nimport { z } from \"zod\";\nimport { Iso8601, KebabSlug, SchemaVersion, Ulid } from \"./primitives.js\";\n\nconst Link = z\n .object({\n from_warehouse: KebabSlug,\n from_id: z.union([Ulid, KebabSlug]),\n to_warehouse: KebabSlug,\n to_id: z.union([Ulid, KebabSlug]),\n relation: z.string(),\n valid: z.boolean(),\n reason: z.string().optional(),\n })\n .strict();\n\nconst Summary = z\n .object({\n total: z.number().int().nonnegative(),\n broken: z.number().int().nonnegative(),\n orphan_warehouses: z.array(KebabSlug),\n })\n .strict();\n\nexport const CrossRefReport = z\n .object({\n schema_version: SchemaVersion,\n generated_at: Iso8601,\n links: z.array(Link),\n summary: Summary,\n })\n .strict();\n\nexport type CrossRefReport = z.infer<typeof CrossRefReport>;\n","/**\n * DecayConfig — `.nexural/decay.yaml` inside any warehouse.\n *\n * Allows per-warehouse override of decay rate plus targeted overrides\n * for specific tags / source_types / path globs.\n */\n\nimport { z } from \"zod\";\nimport { SourceType } from \"./frontmatter.js\";\nimport { DecayDays, KebabSlug, SchemaVersion } from \"./primitives.js\";\n\nconst Override = z\n .object({\n match: z\n .object({\n tag: KebabSlug.optional(),\n source_type: SourceType.optional(),\n path_glob: z.string().optional(),\n })\n .strict(),\n decay_days: DecayDays,\n })\n .strict();\n\nexport const DecayConfig = z\n .object({\n schema_version: SchemaVersion,\n default_days: DecayDays.optional(),\n overrides: z.array(Override).default([]),\n })\n .strict();\n\nexport type DecayConfig = z.infer<typeof DecayConfig>;\n","/**\n * ADR frontmatter — for ADRs in `nexural-meta/docs/adr/NNNN-*.md`.\n *\n * Pre-commit + CI enforces this on ADR creation per ARCHITECTURE §12.\n */\n\nimport { z } from \"zod\";\nimport { IsoDate } from \"./primitives.js\";\n\nexport const AdrFrontmatter = z\n .object({\n number: z.number().int().positive(),\n title: z.string().min(5).max(120),\n status: z.enum([\"proposed\", \"accepted\", \"superseded\", \"deprecated\"]),\n supersedes: z.number().int().positive().optional(),\n superseded_by: z.number().int().positive().optional(),\n date: IsoDate,\n deciders: z.array(z.string()).min(1),\n soak_until: IsoDate,\n })\n .strict();\n\nexport type AdrFrontmatter = z.infer<typeof AdrFrontmatter>;\n","/**\n * Recipe family — RecipeManifest, ForgedLockfile, CostEnvelope, ServiceDeclaration.\n *\n * Canonical reference: docs/SCHEMA_AMENDMENTS.md.\n * Source ADRs: 0002 (factory), 0004 (polyglot), 0006 (lockfile/signing/license),\n * 0007 (cost envelope), 0008 (per-recipe docs), 0009 (forge sandbox).\n */\n\nimport { z } from \"zod\";\nimport {\n EnvVarName,\n GitSha,\n Iso8601,\n KebabSlug,\n OpUri,\n PositiveUsdAmount,\n SchemaVersion,\n SemverString,\n Sha256Hex,\n UsdAmount,\n} from \"./primitives.js\";\n\n// ── ServiceDeclaration (per ADR-0004) ────────────────────────────────────────\n\nconst NextjsService = z\n .object({\n id: KebabSlug,\n runtime: z.literal(\"nextjs\"),\n language: z.literal(\"typescript\"),\n host: z.enum([\"vercel\", \"cloudflare-pages\"]),\n })\n .strict();\n\nconst ModalService = z\n .object({\n id: KebabSlug,\n runtime: z.literal(\"modal\"),\n language: z.literal(\"python\"),\n python_version: z.enum([\"3.11\", \"3.12\"]),\n deps: z.string(),\n host: z.literal(\"modal\"),\n contract: z.string(),\n gpu: z.enum([\"none\", \"t4\", \"a10g\", \"a100\"]).default(\"none\"),\n })\n .strict();\n\nconst RailwayService = z\n .object({\n id: KebabSlug,\n runtime: z.literal(\"railway\"),\n language: z.enum([\"python\", \"node\"]),\n deps: z.string(),\n host: z.literal(\"railway\"),\n contract: z.string(),\n })\n .strict();\n\nconst CloudflareWorkerService = z\n .object({\n id: KebabSlug,\n runtime: z.literal(\"cloudflare-worker\"),\n language: z.literal(\"typescript\"),\n host: z.literal(\"cloudflare\"),\n contract: z.string().optional(),\n })\n .strict();\n\nexport const ServiceDeclaration = z.discriminatedUnion(\"runtime\", [\n NextjsService,\n ModalService,\n RailwayService,\n CloudflareWorkerService,\n]);\nexport type ServiceDeclaration = z.infer<typeof ServiceDeclaration>;\n\n// ── CostEnvelope (per ADR-0007) ──────────────────────────────────────────────\n\nexport const CostEnvelope = z\n .object({\n per_request_p50_usd: UsdAmount,\n per_request_p99_usd: UsdAmount,\n monthly_baseline_usd: UsdAmount,\n hard_caps: z\n .object({\n per_request_usd: PositiveUsdAmount,\n per_user_per_day_usd: PositiveUsdAmount,\n per_app_per_day_usd: PositiveUsdAmount,\n })\n .strict(),\n })\n .strict();\nexport type CostEnvelope = z.infer<typeof CostEnvelope>;\n\n// ── Secret declaration (per ADR-0006) ────────────────────────────────────────\n\nconst SecretDeclaration = z\n .object({\n logical_name: KebabSlug,\n op_path: OpUri,\n target_file: z.string(),\n target_var: EnvVarName,\n })\n .strict();\n\n// ── Forge sandbox (per ADR-0009) ─────────────────────────────────────────────\n\nconst ForgeSandbox = z\n .object({\n ignore_scripts: z.boolean().default(true),\n allowed_postinstalls: z.array(z.string()).default([]),\n })\n .strict()\n .default({ ignore_scripts: true, allowed_postinstalls: [] });\n\n// ── RecipeManifest ───────────────────────────────────────────────────────────\n\nconst EmitConfig = z\n .object({\n template_path: z.string(),\n pre_emit_hooks: z.array(z.string()).default([]),\n post_emit_hooks: z.array(z.string()).default([]),\n })\n .strict();\n\nexport const RecipeManifest = z\n .object({\n schema_version: SchemaVersion,\n name: KebabSlug,\n version: SemverString,\n description: z.string().min(20).max(500),\n\n // Inheritance / composition\n extends: KebabSlug.optional(),\n composes: z.array(KebabSlug).default([]),\n\n // Inputs\n inputs_schema: z.string(),\n\n // References\n warehouses: z.array(KebabSlug).min(1),\n services: z.array(ServiceDeclaration).default([]),\n\n // QA\n qa_profile: z.enum([\"fast\", \"standard\", \"thorough\", \"deep\"]).default(\"standard\"),\n\n // Cost discipline\n cost_envelope: CostEnvelope,\n model_families: z.array(z.string().regex(/^[a-z0-9-]+:[a-z0-9-]+$/)).default([]),\n\n // License composition (ADR-0006)\n output_license: z.enum([\"MIT\", \"Apache-2.0\", \"ISC\"]),\n commercial_restricted_ok: z.boolean().default(false),\n\n // Secrets\n secrets_required: z.array(SecretDeclaration).default([]),\n\n // Emit configuration\n emit: EmitConfig,\n\n // Per-recipe required docs (ADR-0008)\n threat_model_path: z.string(),\n decisions_path: z.string(),\n\n // Forge hygiene (ADR-0009)\n forge_sandbox: ForgeSandbox,\n })\n .strict()\n .refine((r) => r.services.length > 0 || r.warehouses.length > 0, {\n message: \"recipe must declare at least one service or one warehouse\",\n });\nexport type RecipeManifest = z.infer<typeof RecipeManifest>;\n\n// ── ForgedLockfile (per ADR-0006) ────────────────────────────────────────────\n\nconst WarehouseConsumption = z\n .object({\n name: KebabSlug,\n sha: GitSha,\n version: SemverString.optional(),\n })\n .strict();\n\nconst RecipeReference = z\n .object({\n name: KebabSlug,\n version: SemverString,\n sha: GitSha,\n signature: z.string().min(1),\n provenance: z.string().url(),\n })\n .strict();\n\nexport const ForgedLockfile = z\n .object({\n schema_version: SchemaVersion,\n forged_at: Iso8601,\n forged_by_nx_version: SemverString,\n recipe: RecipeReference,\n warehouses_consumed: z.array(WarehouseConsumption).min(1),\n inputs: z.record(z.string(), z.unknown()),\n model_families_used: z.array(z.string()).default([]),\n sbom_hash: Sha256Hex,\n })\n .strict();\nexport type ForgedLockfile = z.infer<typeof ForgedLockfile>;\n","/**\n * ExternalMcpEndpoint + ExternalMcpRegistry — per ADR-0005.\n *\n * Registers third-party MCP servers (e.g. ai-warehouse) that are federated\n * via the router but NOT subject to factory governance.\n *\n * Manual file: nexural-meta/registry-external-mcp.yaml.\n */\n\nimport { z } from \"zod\";\nimport { Federation, IsoDate, KebabSlug, SchemaVersion } from \"./primitives.js\";\n\nconst QualityAttestation = z\n .object({\n source: z.string(),\n score: z.number().int().min(0).max(100),\n verified_at: IsoDate,\n next_review: IsoDate,\n })\n .strict();\n\nexport const ExternalMcpEndpoint = z\n .object({\n schema_version: SchemaVersion,\n name: KebabSlug,\n type: z.literal(\"external\"),\n transport: z.enum([\"stdio\", \"http\", \"websocket\"]),\n command: z.array(z.string()).optional(),\n url: z.string().url().optional(),\n tool_prefix: KebabSlug,\n schema_compatibility: z.enum([\"nexural-1\", \"external\"]),\n federations: z.array(Federation).min(1),\n quality_attestation: QualityAttestation,\n })\n .strict()\n .refine(\n (e) =>\n (e.transport === \"stdio\" && !!e.command && e.command.length > 0) ||\n (e.transport !== \"stdio\" && !!e.url),\n { message: \"stdio transport requires command; http/ws requires url\" },\n );\nexport type ExternalMcpEndpoint = z.infer<typeof ExternalMcpEndpoint>;\n\nexport const ExternalMcpRegistry = z\n .object({\n schema_version: SchemaVersion,\n endpoints: z.array(ExternalMcpEndpoint),\n })\n .strict();\nexport type ExternalMcpRegistry = z.infer<typeof ExternalMcpRegistry>;\n","/**\n * ModelFamilyResolution + ModelFamilyRegistry — per ADR-0007 + ADR-0010 §2.8.\n *\n * NOTE: this file contains only the SCHEMA. The runtime resolver lives in\n * the separate `@nexural/model-router` package.\n */\n\nimport { z } from \"zod\";\nimport { IsoDate, Iso8601, SchemaVersion } from \"./primitives.js\";\n\nconst FamilyId = z\n .string()\n .regex(/^[a-z0-9-]+:[a-z0-9-]+$/, \"family must be `provider:tier` e.g. `anthropic:opus`\");\n\nconst ModelTier = z.enum([\"flagship\", \"premium\", \"balanced\", \"fast\", \"small\"]);\nconst ModelStatus = z.enum([\"current\", \"deprecating\", \"deprecated\", \"preview\"]);\n\nconst Pricing = z\n .object({\n input_per_million_tokens_usd: z.number().nonnegative(),\n output_per_million_tokens_usd: z.number().nonnegative(),\n cached_input_per_million_tokens_usd: z.number().nonnegative().optional(),\n })\n .strict();\n\nexport const ModelFamilyResolution = z\n .object({\n family: FamilyId,\n id: z.string().min(1),\n tier: ModelTier,\n context_window: z.number().int().positive(),\n pricing: Pricing,\n /** Per ADR-0010 §2.8 — if current pricing exceeds this ceiling, router substitutes next family. */\n price_ceiling_usd_per_million_tokens: z.number().positive().optional(),\n deprecates_at: IsoDate.nullable(),\n status: ModelStatus,\n })\n .strict();\nexport type ModelFamilyResolution = z.infer<typeof ModelFamilyResolution>;\n\nexport const ModelFamilyRegistry = z\n .object({\n schema_version: SchemaVersion,\n generated_at: Iso8601,\n resolutions: z.array(ModelFamilyResolution),\n })\n .strict();\nexport type ModelFamilyRegistry = z.infer<typeof ModelFamilyRegistry>;\n","/**\n * RevokedRecipesList — `nexural-meta/security/revoked-recipes.yaml`.\n *\n * APPEND-ONLY. Per ADR-0009 §1.6.\n * Every entry is signed via cosign.\n * `nx forge` consults this list before emitting; revoked recipe → forge fails.\n */\n\nimport { z } from \"zod\";\nimport { Iso8601, KebabSlug, SchemaVersion, SemverString } from \"./primitives.js\";\n\nexport const RevokedRecipeEntry = z\n .object({\n recipe_name: KebabSlug,\n recipe_version: SemverString,\n revoked_at: Iso8601,\n reason: z.string().min(10, \"must explain why (>= 10 chars)\"),\n ticket: z.string().url().optional(),\n signature: z.string().min(1),\n })\n .strict();\nexport type RevokedRecipeEntry = z.infer<typeof RevokedRecipeEntry>;\n\nexport const RevokedRecipesList = z\n .object({\n schema_version: SchemaVersion,\n generated_at: Iso8601,\n entries: z.array(RevokedRecipeEntry),\n })\n .strict();\nexport type RevokedRecipesList = z.infer<typeof RevokedRecipesList>;\n"]}