@contractspec/bundle.library 2.9.0 → 3.0.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.
Files changed (86) hide show
  1. package/.turbo/turbo-build.log +129 -115
  2. package/CHANGELOG.md +53 -0
  3. package/dist/components/docs/DocsIndexPage.js +1 -1
  4. package/dist/components/docs/architecture/ArchitectureControlPlanePage.d.ts +1 -0
  5. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +204 -0
  6. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +17 -1
  7. package/dist/components/docs/architecture/index.d.ts +1 -0
  8. package/dist/components/docs/architecture/index.js +507 -289
  9. package/dist/components/docs/ecosystem/IntegrationsPage.js +6 -3
  10. package/dist/components/docs/ecosystem/PluginsPage.js +98 -98
  11. package/dist/components/docs/ecosystem/RegistryPage.js +39 -42
  12. package/dist/components/docs/ecosystem/TemplatesPage.js +26 -21
  13. package/dist/components/docs/ecosystem/ecosystem.docblocks.js +10 -10
  14. package/dist/components/docs/ecosystem/index.js +179 -174
  15. package/dist/components/docs/index.js +6795 -5376
  16. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +2 -2
  17. package/dist/components/docs/integrations/IntegrationsGithubPage.d.ts +1 -0
  18. package/dist/components/docs/integrations/IntegrationsGithubPage.js +155 -0
  19. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts +1 -0
  20. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +168 -0
  21. package/dist/components/docs/integrations/IntegrationsMistralPage.d.ts +1 -0
  22. package/dist/components/docs/integrations/IntegrationsMistralPage.js +203 -0
  23. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  24. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +136 -9
  25. package/dist/components/docs/integrations/IntegrationsSlackPage.d.ts +1 -0
  26. package/dist/components/docs/integrations/IntegrationsSlackPage.js +161 -0
  27. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +72 -0
  28. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +2 -2
  29. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.d.ts +1 -0
  30. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +157 -0
  31. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.d.ts +1 -0
  32. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +165 -0
  33. package/dist/components/docs/integrations/index.d.ts +6 -0
  34. package/dist/components/docs/integrations/index.js +1688 -492
  35. package/dist/index.js +8016 -6597
  36. package/dist/node/components/docs/DocsIndexPage.js +1 -1
  37. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +203 -0
  38. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +17 -1
  39. package/dist/node/components/docs/architecture/index.js +507 -289
  40. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +6 -3
  41. package/dist/node/components/docs/ecosystem/PluginsPage.js +98 -98
  42. package/dist/node/components/docs/ecosystem/RegistryPage.js +39 -42
  43. package/dist/node/components/docs/ecosystem/TemplatesPage.js +26 -21
  44. package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +10 -10
  45. package/dist/node/components/docs/ecosystem/index.js +179 -174
  46. package/dist/node/components/docs/index.js +6795 -5376
  47. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +2 -2
  48. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +154 -0
  49. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +167 -0
  50. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +202 -0
  51. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  52. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +136 -9
  53. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +160 -0
  54. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +72 -0
  55. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +2 -2
  56. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +156 -0
  57. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +164 -0
  58. package/dist/node/components/docs/integrations/index.js +1688 -492
  59. package/dist/node/index.js +8016 -6597
  60. package/package.json +104 -20
  61. package/src/components/docs/DocsIndexPage.tsx +2 -1
  62. package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +136 -0
  63. package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +13 -1
  64. package/src/components/docs/architecture/index.ts +1 -0
  65. package/src/components/docs/ecosystem/IntegrationsPage.tsx +4 -3
  66. package/src/components/docs/ecosystem/PluginsPage.tsx +68 -87
  67. package/src/components/docs/ecosystem/RegistryPage.tsx +35 -43
  68. package/src/components/docs/ecosystem/TemplatesPage.tsx +28 -21
  69. package/src/components/docs/ecosystem/ecosystem.docblocks.ts +12 -10
  70. package/src/components/docs/generated/docs-index._common.json +240 -0
  71. package/src/components/docs/generated/docs-index.health.json +98 -0
  72. package/src/components/docs/generated/docs-index.manifest.json +14 -4
  73. package/src/components/docs/generated/docs-index.platform-integrations.json +81 -1
  74. package/src/components/docs/generated/docs-index.video-api-showcase.json +26 -0
  75. package/src/components/docs/integrations/IntegrationsElevenLabsPage.tsx +2 -2
  76. package/src/components/docs/integrations/IntegrationsGithubPage.tsx +90 -0
  77. package/src/components/docs/integrations/IntegrationsHealthRoutingPage.tsx +112 -0
  78. package/src/components/docs/integrations/IntegrationsMistralPage.tsx +133 -0
  79. package/src/components/docs/integrations/IntegrationsOpenAIPage.tsx +2 -2
  80. package/src/components/docs/integrations/IntegrationsOverviewPage.tsx +108 -9
  81. package/src/components/docs/integrations/IntegrationsSlackPage.tsx +98 -0
  82. package/src/components/docs/integrations/IntegrationsSpecModelPage.tsx +59 -0
  83. package/src/components/docs/integrations/IntegrationsTwilioPage.tsx +2 -2
  84. package/src/components/docs/integrations/IntegrationsWhatsappMetaPage.tsx +90 -0
  85. package/src/components/docs/integrations/IntegrationsWhatsappTwilioPage.tsx +92 -0
  86. package/src/components/docs/integrations/index.ts +6 -0
@@ -379,12 +379,12 @@ function ArchitectureAppConfigPage() {
379
379
  }, undefined, true, undefined, this);
380
380
  }
381
381
 
382
- // src/components/docs/architecture/ArchitectureIntegrationBindingPage.tsx
382
+ // src/components/docs/architecture/ArchitectureControlPlanePage.tsx
383
383
  import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
384
384
  import Link2 from "@contractspec/lib.ui-link";
385
385
  import { ChevronRight as ChevronRight2 } from "lucide-react";
386
386
  import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
387
- function ArchitectureIntegrationBindingPage() {
387
+ function ArchitectureControlPlanePage() {
388
388
  return /* @__PURE__ */ jsxDEV2("div", {
389
389
  className: "space-y-8",
390
390
  children: [
@@ -393,11 +393,11 @@ function ArchitectureIntegrationBindingPage() {
393
393
  children: [
394
394
  /* @__PURE__ */ jsxDEV2("h1", {
395
395
  className: "text-4xl font-bold",
396
- children: "Integration Binding"
396
+ children: "Control Plane Runtime"
397
397
  }, undefined, false, undefined, this),
398
398
  /* @__PURE__ */ jsxDEV2("p", {
399
399
  className: "text-muted-foreground",
400
- children: "Integration binding connects your app's capabilities to external service providers. Each tenant can configure their own integration connections while sharing the same app blueprint."
400
+ children: "The control plane is the governance layer for agentic execution. It turns incoming intent into deterministic plans, enforces risk policy before side effects, and records replayable traces for audits."
401
401
  }, undefined, false, undefined, this)
402
402
  ]
403
403
  }, undefined, true, undefined, this),
@@ -406,34 +406,235 @@ function ArchitectureIntegrationBindingPage() {
406
406
  children: [
407
407
  /* @__PURE__ */ jsxDEV2("h2", {
408
408
  className: "text-2xl font-bold",
409
- children: "How it works"
409
+ children: "Canonical execution loop"
410
+ }, undefined, false, undefined, this),
411
+ /* @__PURE__ */ jsxDEV2("ol", {
412
+ className: "text-muted-foreground list-inside list-decimal space-y-2",
413
+ children: [
414
+ /* @__PURE__ */ jsxDEV2("li", {
415
+ children: "Accept intent and create execution identity + trace context."
416
+ }, undefined, false, undefined, this),
417
+ /* @__PURE__ */ jsxDEV2("li", {
418
+ children: "Compile intent into a typed, deterministic plan DAG."
419
+ }, undefined, false, undefined, this),
420
+ /* @__PURE__ */ jsxDEV2("li", {
421
+ children: "Verify plan against policy and risk rules."
422
+ }, undefined, false, undefined, this),
423
+ /* @__PURE__ */ jsxDEV2("li", {
424
+ children: "Route into autonomous or assist mode based on verdict."
425
+ }, undefined, false, undefined, this),
426
+ /* @__PURE__ */ jsxDEV2("li", {
427
+ children: "Execute steps with idempotent keys and explicit stage events."
428
+ }, undefined, false, undefined, this),
429
+ /* @__PURE__ */ jsxDEV2("li", {
430
+ children: "Persist outcomes for replay, audits, and operator visibility."
431
+ }, undefined, false, undefined, this)
432
+ ]
433
+ }, undefined, true, undefined, this)
434
+ ]
435
+ }, undefined, true, undefined, this),
436
+ /* @__PURE__ */ jsxDEV2("div", {
437
+ className: "space-y-4",
438
+ children: [
439
+ /* @__PURE__ */ jsxDEV2("h2", {
440
+ className: "text-2xl font-bold",
441
+ children: "Contract surfaces (v1 baseline)"
442
+ }, undefined, false, undefined, this),
443
+ /* @__PURE__ */ jsxDEV2("p", {
444
+ className: "text-muted-foreground",
445
+ children: [
446
+ "The runtime is contract-first. Commands, queries, events, and capabilities are explicit and versioned under",
447
+ /* @__PURE__ */ jsxDEV2("code", {
448
+ children: " @contractspec/lib.contracts-spec"
449
+ }, undefined, false, undefined, this),
450
+ "."
451
+ ]
452
+ }, undefined, true, undefined, this),
453
+ /* @__PURE__ */ jsxDEV2(CodeBlock2, {
454
+ language: "text",
455
+ code: `Commands
456
+ - controlPlane.intent.submit
457
+ - controlPlane.plan.compile
458
+ - controlPlane.plan.verify
459
+ - controlPlane.execution.start
460
+ - controlPlane.execution.approve
461
+ - controlPlane.execution.reject
462
+ - controlPlane.execution.cancel
463
+ - controlPlane.skill.install
464
+ - controlPlane.skill.disable
465
+
466
+ Queries
467
+ - controlPlane.execution.get
468
+ - controlPlane.execution.list
469
+ - controlPlane.trace.get
470
+ - controlPlane.policy.explain
471
+ - controlPlane.skill.list
472
+ - controlPlane.skill.verify
473
+
474
+ Events
475
+ - controlPlane.intent.received
476
+ - controlPlane.plan.compiled
477
+ - controlPlane.plan.rejected
478
+ - controlPlane.execution.step.started
479
+ - controlPlane.execution.step.blocked
480
+ - controlPlane.execution.step.completed
481
+ - controlPlane.execution.completed
482
+ - controlPlane.execution.failed
483
+ - controlPlane.skill.installed
484
+ - controlPlane.skill.rejected
485
+
486
+ Capabilities
487
+ - control-plane.core
488
+ - control-plane.approval
489
+ - control-plane.audit
490
+ - control-plane.skill-registry
491
+ - control-plane.channel-runtime`
492
+ }, undefined, false, undefined, this)
493
+ ]
494
+ }, undefined, true, undefined, this),
495
+ /* @__PURE__ */ jsxDEV2("div", {
496
+ className: "space-y-4",
497
+ children: [
498
+ /* @__PURE__ */ jsxDEV2("h2", {
499
+ className: "text-2xl font-bold",
500
+ children: "Policy and safety posture"
501
+ }, undefined, false, undefined, this),
502
+ /* @__PURE__ */ jsxDEV2("ul", {
503
+ className: "text-muted-foreground list-inside list-disc space-y-2",
504
+ children: [
505
+ /* @__PURE__ */ jsxDEV2("li", {
506
+ children: "No side-effect action executes unless it comes from a compiled plan."
507
+ }, undefined, false, undefined, this),
508
+ /* @__PURE__ */ jsxDEV2("li", {
509
+ children: "High-risk actions are blocked from autonomous mode in v1."
510
+ }, undefined, false, undefined, this),
511
+ /* @__PURE__ */ jsxDEV2("li", {
512
+ children: "Approval commands provide explicit human-in-the-loop transitions."
513
+ }, undefined, false, undefined, this),
514
+ /* @__PURE__ */ jsxDEV2("li", {
515
+ children: "Skill installation is modeled as governance-controlled operations."
516
+ }, undefined, false, undefined, this),
517
+ /* @__PURE__ */ jsxDEV2("li", {
518
+ children: "Trace queries expose policy rationale and step outcomes for replay."
519
+ }, undefined, false, undefined, this)
520
+ ]
521
+ }, undefined, true, undefined, this)
522
+ ]
523
+ }, undefined, true, undefined, this),
524
+ /* @__PURE__ */ jsxDEV2("div", {
525
+ className: "space-y-4",
526
+ children: [
527
+ /* @__PURE__ */ jsxDEV2("h2", {
528
+ className: "text-2xl font-bold",
529
+ children: "Implementation map"
530
+ }, undefined, false, undefined, this),
531
+ /* @__PURE__ */ jsxDEV2(CodeBlock2, {
532
+ language: "text",
533
+ code: `packages/libs/contracts-spec/src/control-plane/
534
+ commands/
535
+ queries/
536
+ events/
537
+ capabilities/
538
+ contracts.ts
539
+ contracts.test.ts
540
+
541
+ packages/apps/web-landing/src/app/docs/architecture/control-plane/page.tsx
542
+ implementation_plan_controle_plane.md`
543
+ }, undefined, false, undefined, this)
544
+ ]
545
+ }, undefined, true, undefined, this),
546
+ /* @__PURE__ */ jsxDEV2("div", {
547
+ className: "space-y-4",
548
+ children: [
549
+ /* @__PURE__ */ jsxDEV2("h2", {
550
+ className: "text-2xl font-bold",
551
+ children: "What comes next"
410
552
  }, undefined, false, undefined, this),
411
553
  /* @__PURE__ */ jsxDEV2("p", {
554
+ className: "text-muted-foreground",
555
+ children: "WS1 delivers the contract fabric. Next increments add planner/executor split, policy escalation, capability-bound authorization, signed skill compatibility checks, and full replay tooling."
556
+ }, undefined, false, undefined, this)
557
+ ]
558
+ }, undefined, true, undefined, this),
559
+ /* @__PURE__ */ jsxDEV2("div", {
560
+ className: "flex items-center gap-4 pt-4",
561
+ children: [
562
+ /* @__PURE__ */ jsxDEV2(Link2, {
563
+ href: "/docs/architecture/integration-binding",
564
+ className: "btn-ghost",
565
+ children: "Previous: Integration Binding"
566
+ }, undefined, false, undefined, this),
567
+ /* @__PURE__ */ jsxDEV2(Link2, {
568
+ href: "/docs/safety/auditing",
569
+ className: "btn-primary",
570
+ children: [
571
+ "Audit Logs ",
572
+ /* @__PURE__ */ jsxDEV2(ChevronRight2, {
573
+ size: 16
574
+ }, undefined, false, undefined, this)
575
+ ]
576
+ }, undefined, true, undefined, this)
577
+ ]
578
+ }, undefined, true, undefined, this)
579
+ ]
580
+ }, undefined, true, undefined, this);
581
+ }
582
+
583
+ // src/components/docs/architecture/ArchitectureIntegrationBindingPage.tsx
584
+ import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
585
+ import Link3 from "@contractspec/lib.ui-link";
586
+ import { ChevronRight as ChevronRight3 } from "lucide-react";
587
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
588
+ function ArchitectureIntegrationBindingPage() {
589
+ return /* @__PURE__ */ jsxDEV3("div", {
590
+ className: "space-y-8",
591
+ children: [
592
+ /* @__PURE__ */ jsxDEV3("div", {
593
+ className: "space-y-4",
594
+ children: [
595
+ /* @__PURE__ */ jsxDEV3("h1", {
596
+ className: "text-4xl font-bold",
597
+ children: "Integration Binding"
598
+ }, undefined, false, undefined, this),
599
+ /* @__PURE__ */ jsxDEV3("p", {
600
+ className: "text-muted-foreground",
601
+ children: "Integration binding connects your app's capabilities to external service providers. Each tenant can configure their own integration connections while sharing the same app blueprint."
602
+ }, undefined, false, undefined, this)
603
+ ]
604
+ }, undefined, true, undefined, this),
605
+ /* @__PURE__ */ jsxDEV3("div", {
606
+ className: "space-y-4",
607
+ children: [
608
+ /* @__PURE__ */ jsxDEV3("h2", {
609
+ className: "text-2xl font-bold",
610
+ children: "How it works"
611
+ }, undefined, false, undefined, this),
612
+ /* @__PURE__ */ jsxDEV3("p", {
412
613
  className: "text-muted-foreground",
413
614
  children: "Integration binding follows a three-layer model:"
414
615
  }, undefined, false, undefined, this),
415
- /* @__PURE__ */ jsxDEV2("ol", {
616
+ /* @__PURE__ */ jsxDEV3("ol", {
416
617
  className: "text-muted-foreground list-inside list-decimal space-y-3",
417
618
  children: [
418
- /* @__PURE__ */ jsxDEV2("li", {
619
+ /* @__PURE__ */ jsxDEV3("li", {
419
620
  children: [
420
- /* @__PURE__ */ jsxDEV2("strong", {
621
+ /* @__PURE__ */ jsxDEV3("strong", {
421
622
  children: "IntegrationSpec"
422
623
  }, undefined, false, undefined, this),
423
624
  " (global) - Defines what an integration provides"
424
625
  ]
425
626
  }, undefined, true, undefined, this),
426
- /* @__PURE__ */ jsxDEV2("li", {
627
+ /* @__PURE__ */ jsxDEV3("li", {
427
628
  children: [
428
- /* @__PURE__ */ jsxDEV2("strong", {
629
+ /* @__PURE__ */ jsxDEV3("strong", {
429
630
  children: "IntegrationConnection"
430
631
  }, undefined, false, undefined, this),
431
632
  " (per-tenant) - A tenant's configured connection"
432
633
  ]
433
634
  }, undefined, true, undefined, this),
434
- /* @__PURE__ */ jsxDEV2("li", {
635
+ /* @__PURE__ */ jsxDEV3("li", {
435
636
  children: [
436
- /* @__PURE__ */ jsxDEV2("strong", {
637
+ /* @__PURE__ */ jsxDEV3("strong", {
437
638
  children: "AppIntegrationBinding"
438
639
  }, undefined, false, undefined, this),
439
640
  " (per-app) - Maps named slots to concrete tenant connections"
@@ -443,25 +644,25 @@ function ArchitectureIntegrationBindingPage() {
443
644
  }, undefined, true, undefined, this)
444
645
  ]
445
646
  }, undefined, true, undefined, this),
446
- /* @__PURE__ */ jsxDEV2("div", {
647
+ /* @__PURE__ */ jsxDEV3("div", {
447
648
  className: "space-y-4",
448
649
  children: [
449
- /* @__PURE__ */ jsxDEV2("h2", {
650
+ /* @__PURE__ */ jsxDEV3("h2", {
450
651
  className: "text-2xl font-bold",
451
652
  children: "Example: Payment processing"
452
653
  }, undefined, false, undefined, this),
453
- /* @__PURE__ */ jsxDEV2("p", {
654
+ /* @__PURE__ */ jsxDEV3("p", {
454
655
  className: "text-muted-foreground",
455
656
  children: "Let's walk through a complete example of binding Stripe for payments."
456
657
  }, undefined, false, undefined, this),
457
- /* @__PURE__ */ jsxDEV2("div", {
658
+ /* @__PURE__ */ jsxDEV3("div", {
458
659
  className: "space-y-3",
459
660
  children: [
460
- /* @__PURE__ */ jsxDEV2("h3", {
661
+ /* @__PURE__ */ jsxDEV3("h3", {
461
662
  className: "text-lg font-semibold",
462
663
  children: "Step 1: Blueprint declares requirement"
463
664
  }, undefined, false, undefined, this),
464
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
665
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
465
666
  language: "typescript",
466
667
  code: `// AppBlueprintSpec
467
668
  {
@@ -491,14 +692,14 @@ function ArchitectureIntegrationBindingPage() {
491
692
  }, undefined, false, undefined, this)
492
693
  ]
493
694
  }, undefined, true, undefined, this),
494
- /* @__PURE__ */ jsxDEV2("div", {
695
+ /* @__PURE__ */ jsxDEV3("div", {
495
696
  className: "space-y-3",
496
697
  children: [
497
- /* @__PURE__ */ jsxDEV2("h3", {
698
+ /* @__PURE__ */ jsxDEV3("h3", {
498
699
  className: "text-lg font-semibold",
499
700
  children: "Step 2: Tenant creates connection"
500
701
  }, undefined, false, undefined, this),
501
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
702
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
502
703
  language: "typescript",
503
704
  code: `// IntegrationConnection
504
705
  {
@@ -524,14 +725,14 @@ function ArchitectureIntegrationBindingPage() {
524
725
  }, undefined, false, undefined, this)
525
726
  ]
526
727
  }, undefined, true, undefined, this),
527
- /* @__PURE__ */ jsxDEV2("div", {
728
+ /* @__PURE__ */ jsxDEV3("div", {
528
729
  className: "space-y-3",
529
730
  children: [
530
- /* @__PURE__ */ jsxDEV2("h3", {
731
+ /* @__PURE__ */ jsxDEV3("h3", {
531
732
  className: "text-lg font-semibold",
532
733
  children: "Step 3: TenantAppConfig binds connection"
533
734
  }, undefined, false, undefined, this),
534
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
735
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
535
736
  language: "typescript",
536
737
  code: `// TenantAppConfig
537
738
  {
@@ -563,14 +764,14 @@ function ArchitectureIntegrationBindingPage() {
563
764
  }, undefined, false, undefined, this)
564
765
  ]
565
766
  }, undefined, true, undefined, this),
566
- /* @__PURE__ */ jsxDEV2("div", {
767
+ /* @__PURE__ */ jsxDEV3("div", {
567
768
  className: "space-y-3",
568
769
  children: [
569
- /* @__PURE__ */ jsxDEV2("h3", {
770
+ /* @__PURE__ */ jsxDEV3("h3", {
570
771
  className: "text-lg font-semibold",
571
772
  children: "Step 4: Runtime resolves and executes"
572
773
  }, undefined, false, undefined, this),
573
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
774
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
574
775
  language: "typescript",
575
776
  code: `// ResolvedAppConfig (runtime)
576
777
  {
@@ -595,18 +796,18 @@ const result = await executeCapability(
595
796
  }, undefined, true, undefined, this)
596
797
  ]
597
798
  }, undefined, true, undefined, this),
598
- /* @__PURE__ */ jsxDEV2("div", {
799
+ /* @__PURE__ */ jsxDEV3("div", {
599
800
  className: "space-y-4",
600
801
  children: [
601
- /* @__PURE__ */ jsxDEV2("h2", {
802
+ /* @__PURE__ */ jsxDEV3("h2", {
602
803
  className: "text-2xl font-bold",
603
804
  children: "Multi-integration scenarios"
604
805
  }, undefined, false, undefined, this),
605
- /* @__PURE__ */ jsxDEV2("p", {
806
+ /* @__PURE__ */ jsxDEV3("p", {
606
807
  className: "text-muted-foreground",
607
808
  children: "A single app can use multiple integrations across different categories:"
608
809
  }, undefined, false, undefined, this),
609
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
810
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
610
811
  language: "typescript",
611
812
  code: `integrations: [
612
813
  {
@@ -638,18 +839,18 @@ const result = await executeCapability(
638
839
  }, undefined, false, undefined, this)
639
840
  ]
640
841
  }, undefined, true, undefined, this),
641
- /* @__PURE__ */ jsxDEV2("div", {
842
+ /* @__PURE__ */ jsxDEV3("div", {
642
843
  className: "space-y-4",
643
844
  children: [
644
- /* @__PURE__ */ jsxDEV2("h2", {
845
+ /* @__PURE__ */ jsxDEV3("h2", {
645
846
  className: "text-2xl font-bold",
646
847
  children: "Sandbox vs Production"
647
848
  }, undefined, false, undefined, this),
648
- /* @__PURE__ */ jsxDEV2("p", {
849
+ /* @__PURE__ */ jsxDEV3("p", {
649
850
  className: "text-muted-foreground",
650
851
  children: "Tenants typically maintain separate connections for sandbox and production environments:"
651
852
  }, undefined, false, undefined, this),
652
- /* @__PURE__ */ jsxDEV2(CodeBlock2, {
853
+ /* @__PURE__ */ jsxDEV3(CodeBlock3, {
653
854
  language: "typescript",
654
855
  code: `// Sandbox environment
655
856
  {
@@ -675,84 +876,84 @@ const result = await executeCapability(
675
876
  }, undefined, false, undefined, this)
676
877
  ]
677
878
  }, undefined, true, undefined, this),
678
- /* @__PURE__ */ jsxDEV2("div", {
879
+ /* @__PURE__ */ jsxDEV3("div", {
679
880
  className: "space-y-4",
680
881
  children: [
681
- /* @__PURE__ */ jsxDEV2("h2", {
882
+ /* @__PURE__ */ jsxDEV3("h2", {
682
883
  className: "text-2xl font-bold",
683
884
  children: "Security & validation"
684
885
  }, undefined, false, undefined, this),
685
- /* @__PURE__ */ jsxDEV2("ul", {
886
+ /* @__PURE__ */ jsxDEV3("ul", {
686
887
  className: "text-muted-foreground list-inside list-disc space-y-2",
687
888
  children: [
688
- /* @__PURE__ */ jsxDEV2("li", {
889
+ /* @__PURE__ */ jsxDEV3("li", {
689
890
  children: "Integration connections are validated before binding - health checks ensure connectivity"
690
891
  }, undefined, false, undefined, this),
691
- /* @__PURE__ */ jsxDEV2("li", {
892
+ /* @__PURE__ */ jsxDEV3("li", {
692
893
  children: "Secrets are never stored in TenantAppConfig - only references to encrypted secrets"
693
894
  }, undefined, false, undefined, this),
694
- /* @__PURE__ */ jsxDEV2("li", {
895
+ /* @__PURE__ */ jsxDEV3("li", {
695
896
  children: "Policy Decision Point (PDP) enforces which workflows can use which integrations"
696
897
  }, undefined, false, undefined, this),
697
- /* @__PURE__ */ jsxDEV2("li", {
898
+ /* @__PURE__ */ jsxDEV3("li", {
698
899
  children: "All integration calls are audited with full request/response logging"
699
900
  }, undefined, false, undefined, this),
700
- /* @__PURE__ */ jsxDEV2("li", {
901
+ /* @__PURE__ */ jsxDEV3("li", {
701
902
  children: "Rate limiting and quotas are enforced per connection"
702
903
  }, undefined, false, undefined, this)
703
904
  ]
704
905
  }, undefined, true, undefined, this)
705
906
  ]
706
907
  }, undefined, true, undefined, this),
707
- /* @__PURE__ */ jsxDEV2("div", {
908
+ /* @__PURE__ */ jsxDEV3("div", {
708
909
  className: "space-y-4",
709
910
  children: [
710
- /* @__PURE__ */ jsxDEV2("h2", {
911
+ /* @__PURE__ */ jsxDEV3("h2", {
711
912
  className: "text-2xl font-bold",
712
913
  children: "Best practices"
713
914
  }, undefined, false, undefined, this),
714
- /* @__PURE__ */ jsxDEV2("ul", {
915
+ /* @__PURE__ */ jsxDEV3("ul", {
715
916
  className: "text-muted-foreground list-inside list-disc space-y-2",
716
917
  children: [
717
- /* @__PURE__ */ jsxDEV2("li", {
918
+ /* @__PURE__ */ jsxDEV3("li", {
718
919
  children: [
719
920
  "Use wildcard patterns sparingly in ",
720
- /* @__PURE__ */ jsxDEV2("code", {
921
+ /* @__PURE__ */ jsxDEV3("code", {
721
922
  children: "allowedWorkflows"
722
923
  }, undefined, false, undefined, this),
723
924
  " - be explicit about access"
724
925
  ]
725
926
  }, undefined, true, undefined, this),
726
- /* @__PURE__ */ jsxDEV2("li", {
927
+ /* @__PURE__ */ jsxDEV3("li", {
727
928
  children: "Always maintain separate sandbox and production connections"
728
929
  }, undefined, false, undefined, this),
729
- /* @__PURE__ */ jsxDEV2("li", {
930
+ /* @__PURE__ */ jsxDEV3("li", {
730
931
  children: "Monitor integration health checks and set up alerts for failures"
731
932
  }, undefined, false, undefined, this),
732
- /* @__PURE__ */ jsxDEV2("li", {
933
+ /* @__PURE__ */ jsxDEV3("li", {
733
934
  children: "Document the purpose of each integration binding for your team"
734
935
  }, undefined, false, undefined, this),
735
- /* @__PURE__ */ jsxDEV2("li", {
936
+ /* @__PURE__ */ jsxDEV3("li", {
736
937
  children: "Test integration changes in sandbox before promoting to production"
737
938
  }, undefined, false, undefined, this)
738
939
  ]
739
940
  }, undefined, true, undefined, this)
740
941
  ]
741
942
  }, undefined, true, undefined, this),
742
- /* @__PURE__ */ jsxDEV2("div", {
943
+ /* @__PURE__ */ jsxDEV3("div", {
743
944
  className: "flex items-center gap-4 pt-4",
744
945
  children: [
745
- /* @__PURE__ */ jsxDEV2(Link2, {
946
+ /* @__PURE__ */ jsxDEV3(Link3, {
746
947
  href: "/docs/architecture/app-config",
747
948
  className: "btn-ghost",
748
949
  children: "Previous: App Configuration"
749
950
  }, undefined, false, undefined, this),
750
- /* @__PURE__ */ jsxDEV2(Link2, {
951
+ /* @__PURE__ */ jsxDEV3(Link3, {
751
952
  href: "/docs/architecture/knowledge-binding",
752
953
  className: "btn-primary",
753
954
  children: [
754
955
  "Knowledge Binding ",
755
- /* @__PURE__ */ jsxDEV2(ChevronRight2, {
956
+ /* @__PURE__ */ jsxDEV3(ChevronRight3, {
756
957
  size: 16
757
958
  }, undefined, false, undefined, this)
758
959
  ]
@@ -764,60 +965,60 @@ const result = await executeCapability(
764
965
  }
765
966
 
766
967
  // src/components/docs/architecture/ArchitectureKnowledgeBindingPage.tsx
767
- import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
768
- import Link3 from "@contractspec/lib.ui-link";
769
- import { ChevronRight as ChevronRight3 } from "lucide-react";
770
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
968
+ import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
969
+ import Link4 from "@contractspec/lib.ui-link";
970
+ import { ChevronRight as ChevronRight4 } from "lucide-react";
971
+ import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
771
972
  function ArchitectureKnowledgeBindingPage() {
772
- return /* @__PURE__ */ jsxDEV3("div", {
973
+ return /* @__PURE__ */ jsxDEV4("div", {
773
974
  className: "space-y-8",
774
975
  children: [
775
- /* @__PURE__ */ jsxDEV3("div", {
976
+ /* @__PURE__ */ jsxDEV4("div", {
776
977
  className: "space-y-4",
777
978
  children: [
778
- /* @__PURE__ */ jsxDEV3("h1", {
979
+ /* @__PURE__ */ jsxDEV4("h1", {
779
980
  className: "text-4xl font-bold",
780
981
  children: "Knowledge Binding"
781
982
  }, undefined, false, undefined, this),
782
- /* @__PURE__ */ jsxDEV3("p", {
983
+ /* @__PURE__ */ jsxDEV4("p", {
783
984
  className: "text-muted-foreground",
784
985
  children: "Knowledge binding connects your app's workflows and agents to structured knowledge spaces. This enables semantic search, RAG (Retrieval-Augmented Generation), and context-aware decision-making."
785
986
  }, undefined, false, undefined, this)
786
987
  ]
787
988
  }, undefined, true, undefined, this),
788
- /* @__PURE__ */ jsxDEV3("div", {
989
+ /* @__PURE__ */ jsxDEV4("div", {
789
990
  className: "space-y-4",
790
991
  children: [
791
- /* @__PURE__ */ jsxDEV3("h2", {
992
+ /* @__PURE__ */ jsxDEV4("h2", {
792
993
  className: "text-2xl font-bold",
793
994
  children: "How it works"
794
995
  }, undefined, false, undefined, this),
795
- /* @__PURE__ */ jsxDEV3("p", {
996
+ /* @__PURE__ */ jsxDEV4("p", {
796
997
  className: "text-muted-foreground",
797
998
  children: "Knowledge binding follows a three-layer model:"
798
999
  }, undefined, false, undefined, this),
799
- /* @__PURE__ */ jsxDEV3("ol", {
1000
+ /* @__PURE__ */ jsxDEV4("ol", {
800
1001
  className: "text-muted-foreground list-inside list-decimal space-y-3",
801
1002
  children: [
802
- /* @__PURE__ */ jsxDEV3("li", {
1003
+ /* @__PURE__ */ jsxDEV4("li", {
803
1004
  children: [
804
- /* @__PURE__ */ jsxDEV3("strong", {
1005
+ /* @__PURE__ */ jsxDEV4("strong", {
805
1006
  children: "KnowledgeSpaceSpec"
806
1007
  }, undefined, false, undefined, this),
807
1008
  " (global) - Defines a logical knowledge domain"
808
1009
  ]
809
1010
  }, undefined, true, undefined, this),
810
- /* @__PURE__ */ jsxDEV3("li", {
1011
+ /* @__PURE__ */ jsxDEV4("li", {
811
1012
  children: [
812
- /* @__PURE__ */ jsxDEV3("strong", {
1013
+ /* @__PURE__ */ jsxDEV4("strong", {
813
1014
  children: "KnowledgeSourceConfig"
814
1015
  }, undefined, false, undefined, this),
815
1016
  " (per-tenant) - Tenant's data sources feeding spaces"
816
1017
  ]
817
1018
  }, undefined, true, undefined, this),
818
- /* @__PURE__ */ jsxDEV3("li", {
1019
+ /* @__PURE__ */ jsxDEV4("li", {
819
1020
  children: [
820
- /* @__PURE__ */ jsxDEV3("strong", {
1021
+ /* @__PURE__ */ jsxDEV4("strong", {
821
1022
  children: "AppKnowledgeBinding"
822
1023
  }, undefined, false, undefined, this),
823
1024
  " (per-app) - Maps spaces to workflows/agents"
@@ -827,25 +1028,25 @@ function ArchitectureKnowledgeBindingPage() {
827
1028
  }, undefined, true, undefined, this)
828
1029
  ]
829
1030
  }, undefined, true, undefined, this),
830
- /* @__PURE__ */ jsxDEV3("div", {
1031
+ /* @__PURE__ */ jsxDEV4("div", {
831
1032
  className: "space-y-4",
832
1033
  children: [
833
- /* @__PURE__ */ jsxDEV3("h2", {
1034
+ /* @__PURE__ */ jsxDEV4("h2", {
834
1035
  className: "text-2xl font-bold",
835
1036
  children: "Example: Support agent with RAG"
836
1037
  }, undefined, false, undefined, this),
837
- /* @__PURE__ */ jsxDEV3("p", {
1038
+ /* @__PURE__ */ jsxDEV4("p", {
838
1039
  className: "text-muted-foreground",
839
1040
  children: "Let's build a support agent that uses canonical product documentation and operational support history."
840
1041
  }, undefined, false, undefined, this),
841
- /* @__PURE__ */ jsxDEV3("div", {
1042
+ /* @__PURE__ */ jsxDEV4("div", {
842
1043
  className: "space-y-3",
843
1044
  children: [
844
- /* @__PURE__ */ jsxDEV3("h3", {
1045
+ /* @__PURE__ */ jsxDEV4("h3", {
845
1046
  className: "text-lg font-semibold",
846
1047
  children: "Step 1: Blueprint declares knowledge needs"
847
1048
  }, undefined, false, undefined, this),
848
- /* @__PURE__ */ jsxDEV3(CodeBlock3, {
1049
+ /* @__PURE__ */ jsxDEV4(CodeBlock4, {
849
1050
  language: "typescript",
850
1051
  code: `// AppBlueprintSpec
851
1052
  {
@@ -875,14 +1076,14 @@ function ArchitectureKnowledgeBindingPage() {
875
1076
  }, undefined, false, undefined, this)
876
1077
  ]
877
1078
  }, undefined, true, undefined, this),
878
- /* @__PURE__ */ jsxDEV3("div", {
1079
+ /* @__PURE__ */ jsxDEV4("div", {
879
1080
  className: "space-y-3",
880
1081
  children: [
881
- /* @__PURE__ */ jsxDEV3("h3", {
1082
+ /* @__PURE__ */ jsxDEV4("h3", {
882
1083
  className: "text-lg font-semibold",
883
1084
  children: "Step 2: Tenant configures sources"
884
1085
  }, undefined, false, undefined, this),
885
- /* @__PURE__ */ jsxDEV3(CodeBlock3, {
1086
+ /* @__PURE__ */ jsxDEV4(CodeBlock4, {
886
1087
  language: "typescript",
887
1088
  code: `// KnowledgeSourceConfig (per-tenant)
888
1089
  [
@@ -917,14 +1118,14 @@ function ArchitectureKnowledgeBindingPage() {
917
1118
  }, undefined, false, undefined, this)
918
1119
  ]
919
1120
  }, undefined, true, undefined, this),
920
- /* @__PURE__ */ jsxDEV3("div", {
1121
+ /* @__PURE__ */ jsxDEV4("div", {
921
1122
  className: "space-y-3",
922
1123
  children: [
923
- /* @__PURE__ */ jsxDEV3("h3", {
1124
+ /* @__PURE__ */ jsxDEV4("h3", {
924
1125
  className: "text-lg font-semibold",
925
1126
  children: "Step 3: TenantAppConfig binds spaces"
926
1127
  }, undefined, false, undefined, this),
927
- /* @__PURE__ */ jsxDEV3(CodeBlock3, {
1128
+ /* @__PURE__ */ jsxDEV4(CodeBlock4, {
928
1129
  language: "typescript",
929
1130
  code: `// TenantAppConfig
930
1131
  {
@@ -966,14 +1167,14 @@ function ArchitectureKnowledgeBindingPage() {
966
1167
  }, undefined, false, undefined, this)
967
1168
  ]
968
1169
  }, undefined, true, undefined, this),
969
- /* @__PURE__ */ jsxDEV3("div", {
1170
+ /* @__PURE__ */ jsxDEV4("div", {
970
1171
  className: "space-y-3",
971
1172
  children: [
972
- /* @__PURE__ */ jsxDEV3("h3", {
1173
+ /* @__PURE__ */ jsxDEV4("h3", {
973
1174
  className: "text-lg font-semibold",
974
1175
  children: "Step 4: Workflow uses knowledge"
975
1176
  }, undefined, false, undefined, this),
976
- /* @__PURE__ */ jsxDEV3(CodeBlock3, {
1177
+ /* @__PURE__ */ jsxDEV4(CodeBlock4, {
977
1178
  language: "yaml",
978
1179
  code: `// WorkflowSpec
979
1180
  workflowId: answer-question
@@ -1023,124 +1224,124 @@ steps:
1023
1224
  }, undefined, true, undefined, this)
1024
1225
  ]
1025
1226
  }, undefined, true, undefined, this),
1026
- /* @__PURE__ */ jsxDEV3("div", {
1227
+ /* @__PURE__ */ jsxDEV4("div", {
1027
1228
  className: "space-y-4",
1028
1229
  children: [
1029
- /* @__PURE__ */ jsxDEV3("h2", {
1230
+ /* @__PURE__ */ jsxDEV4("h2", {
1030
1231
  className: "text-2xl font-bold",
1031
1232
  children: "Category-based access control"
1032
1233
  }, undefined, false, undefined, this),
1033
- /* @__PURE__ */ jsxDEV3("p", {
1234
+ /* @__PURE__ */ jsxDEV4("p", {
1034
1235
  className: "text-muted-foreground",
1035
1236
  children: "Different knowledge categories have different trust levels and access patterns:"
1036
1237
  }, undefined, false, undefined, this),
1037
- /* @__PURE__ */ jsxDEV3("div", {
1238
+ /* @__PURE__ */ jsxDEV4("div", {
1038
1239
  className: "border-border/50 overflow-x-auto rounded-lg border",
1039
- children: /* @__PURE__ */ jsxDEV3("table", {
1240
+ children: /* @__PURE__ */ jsxDEV4("table", {
1040
1241
  className: "w-full text-left text-sm",
1041
1242
  children: [
1042
- /* @__PURE__ */ jsxDEV3("thead", {
1243
+ /* @__PURE__ */ jsxDEV4("thead", {
1043
1244
  className: "bg-card/50",
1044
- children: /* @__PURE__ */ jsxDEV3("tr", {
1245
+ children: /* @__PURE__ */ jsxDEV4("tr", {
1045
1246
  className: "border-border/50 border-b",
1046
1247
  children: [
1047
- /* @__PURE__ */ jsxDEV3("th", {
1248
+ /* @__PURE__ */ jsxDEV4("th", {
1048
1249
  className: "px-4 py-3 font-semibold",
1049
1250
  children: "Category"
1050
1251
  }, undefined, false, undefined, this),
1051
- /* @__PURE__ */ jsxDEV3("th", {
1252
+ /* @__PURE__ */ jsxDEV4("th", {
1052
1253
  className: "px-4 py-3 font-semibold",
1053
1254
  children: "Trust Level"
1054
1255
  }, undefined, false, undefined, this),
1055
- /* @__PURE__ */ jsxDEV3("th", {
1256
+ /* @__PURE__ */ jsxDEV4("th", {
1056
1257
  className: "px-4 py-3 font-semibold",
1057
1258
  children: "Use Cases"
1058
1259
  }, undefined, false, undefined, this),
1059
- /* @__PURE__ */ jsxDEV3("th", {
1260
+ /* @__PURE__ */ jsxDEV4("th", {
1060
1261
  className: "px-4 py-3 font-semibold",
1061
1262
  children: "Policy Impact"
1062
1263
  }, undefined, false, undefined, this)
1063
1264
  ]
1064
1265
  }, undefined, true, undefined, this)
1065
1266
  }, undefined, false, undefined, this),
1066
- /* @__PURE__ */ jsxDEV3("tbody", {
1267
+ /* @__PURE__ */ jsxDEV4("tbody", {
1067
1268
  className: "divide-border/50 divide-y",
1068
1269
  children: [
1069
- /* @__PURE__ */ jsxDEV3("tr", {
1270
+ /* @__PURE__ */ jsxDEV4("tr", {
1070
1271
  children: [
1071
- /* @__PURE__ */ jsxDEV3("td", {
1272
+ /* @__PURE__ */ jsxDEV4("td", {
1072
1273
  className: "px-4 py-3 font-mono text-xs",
1073
1274
  children: "canonical"
1074
1275
  }, undefined, false, undefined, this),
1075
- /* @__PURE__ */ jsxDEV3("td", {
1276
+ /* @__PURE__ */ jsxDEV4("td", {
1076
1277
  className: "px-4 py-3",
1077
1278
  children: "Highest"
1078
1279
  }, undefined, false, undefined, this),
1079
- /* @__PURE__ */ jsxDEV3("td", {
1280
+ /* @__PURE__ */ jsxDEV4("td", {
1080
1281
  className: "px-4 py-3",
1081
1282
  children: "Product specs, schemas, official policies"
1082
1283
  }, undefined, false, undefined, this),
1083
- /* @__PURE__ */ jsxDEV3("td", {
1284
+ /* @__PURE__ */ jsxDEV4("td", {
1084
1285
  className: "px-4 py-3",
1085
1286
  children: "Can drive policy decisions"
1086
1287
  }, undefined, false, undefined, this)
1087
1288
  ]
1088
1289
  }, undefined, true, undefined, this),
1089
- /* @__PURE__ */ jsxDEV3("tr", {
1290
+ /* @__PURE__ */ jsxDEV4("tr", {
1090
1291
  children: [
1091
- /* @__PURE__ */ jsxDEV3("td", {
1292
+ /* @__PURE__ */ jsxDEV4("td", {
1092
1293
  className: "px-4 py-3 font-mono text-xs",
1093
1294
  children: "operational"
1094
1295
  }, undefined, false, undefined, this),
1095
- /* @__PURE__ */ jsxDEV3("td", {
1296
+ /* @__PURE__ */ jsxDEV4("td", {
1096
1297
  className: "px-4 py-3",
1097
1298
  children: "High"
1098
1299
  }, undefined, false, undefined, this),
1099
- /* @__PURE__ */ jsxDEV3("td", {
1300
+ /* @__PURE__ */ jsxDEV4("td", {
1100
1301
  className: "px-4 py-3",
1101
1302
  children: "Support tickets, sales docs, internal runbooks"
1102
1303
  }, undefined, false, undefined, this),
1103
- /* @__PURE__ */ jsxDEV3("td", {
1304
+ /* @__PURE__ */ jsxDEV4("td", {
1104
1305
  className: "px-4 py-3",
1105
1306
  children: "Can inform decisions"
1106
1307
  }, undefined, false, undefined, this)
1107
1308
  ]
1108
1309
  }, undefined, true, undefined, this),
1109
- /* @__PURE__ */ jsxDEV3("tr", {
1310
+ /* @__PURE__ */ jsxDEV4("tr", {
1110
1311
  children: [
1111
- /* @__PURE__ */ jsxDEV3("td", {
1312
+ /* @__PURE__ */ jsxDEV4("td", {
1112
1313
  className: "px-4 py-3 font-mono text-xs",
1113
1314
  children: "external"
1114
1315
  }, undefined, false, undefined, this),
1115
- /* @__PURE__ */ jsxDEV3("td", {
1316
+ /* @__PURE__ */ jsxDEV4("td", {
1116
1317
  className: "px-4 py-3",
1117
1318
  children: "Medium"
1118
1319
  }, undefined, false, undefined, this),
1119
- /* @__PURE__ */ jsxDEV3("td", {
1320
+ /* @__PURE__ */ jsxDEV4("td", {
1120
1321
  className: "px-4 py-3",
1121
1322
  children: "Third-party docs, regulations, PSP guides"
1122
1323
  }, undefined, false, undefined, this),
1123
- /* @__PURE__ */ jsxDEV3("td", {
1324
+ /* @__PURE__ */ jsxDEV4("td", {
1124
1325
  className: "px-4 py-3",
1125
1326
  children: "Reference only, not authoritative"
1126
1327
  }, undefined, false, undefined, this)
1127
1328
  ]
1128
1329
  }, undefined, true, undefined, this),
1129
- /* @__PURE__ */ jsxDEV3("tr", {
1330
+ /* @__PURE__ */ jsxDEV4("tr", {
1130
1331
  children: [
1131
- /* @__PURE__ */ jsxDEV3("td", {
1332
+ /* @__PURE__ */ jsxDEV4("td", {
1132
1333
  className: "px-4 py-3 font-mono text-xs",
1133
1334
  children: "ephemeral"
1134
1335
  }, undefined, false, undefined, this),
1135
- /* @__PURE__ */ jsxDEV3("td", {
1336
+ /* @__PURE__ */ jsxDEV4("td", {
1136
1337
  className: "px-4 py-3",
1137
1338
  children: "Low"
1138
1339
  }, undefined, false, undefined, this),
1139
- /* @__PURE__ */ jsxDEV3("td", {
1340
+ /* @__PURE__ */ jsxDEV4("td", {
1140
1341
  className: "px-4 py-3",
1141
1342
  children: "Agent scratchpads, session context, drafts"
1142
1343
  }, undefined, false, undefined, this),
1143
- /* @__PURE__ */ jsxDEV3("td", {
1344
+ /* @__PURE__ */ jsxDEV4("td", {
1144
1345
  className: "px-4 py-3",
1145
1346
  children: "Never used for decisions"
1146
1347
  }, undefined, false, undefined, this)
@@ -1153,18 +1354,18 @@ steps:
1153
1354
  }, undefined, false, undefined, this)
1154
1355
  ]
1155
1356
  }, undefined, true, undefined, this),
1156
- /* @__PURE__ */ jsxDEV3("div", {
1357
+ /* @__PURE__ */ jsxDEV4("div", {
1157
1358
  className: "space-y-4",
1158
1359
  children: [
1159
- /* @__PURE__ */ jsxDEV3("h2", {
1360
+ /* @__PURE__ */ jsxDEV4("h2", {
1160
1361
  className: "text-2xl font-bold",
1161
1362
  children: "Multi-space workflows"
1162
1363
  }, undefined, false, undefined, this),
1163
- /* @__PURE__ */ jsxDEV3("p", {
1364
+ /* @__PURE__ */ jsxDEV4("p", {
1164
1365
  className: "text-muted-foreground",
1165
1366
  children: "Workflows can query multiple knowledge spaces and combine results:"
1166
1367
  }, undefined, false, undefined, this),
1167
- /* @__PURE__ */ jsxDEV3(CodeBlock3, {
1368
+ /* @__PURE__ */ jsxDEV4(CodeBlock4, {
1168
1369
  language: "typescript",
1169
1370
  code: `knowledgeBindings: [
1170
1371
  {
@@ -1198,64 +1399,64 @@ steps:
1198
1399
  }, undefined, false, undefined, this)
1199
1400
  ]
1200
1401
  }, undefined, true, undefined, this),
1201
- /* @__PURE__ */ jsxDEV3("div", {
1402
+ /* @__PURE__ */ jsxDEV4("div", {
1202
1403
  className: "space-y-4",
1203
1404
  children: [
1204
- /* @__PURE__ */ jsxDEV3("h2", {
1405
+ /* @__PURE__ */ jsxDEV4("h2", {
1205
1406
  className: "text-2xl font-bold",
1206
1407
  children: "Security & validation"
1207
1408
  }, undefined, false, undefined, this),
1208
- /* @__PURE__ */ jsxDEV3("ul", {
1409
+ /* @__PURE__ */ jsxDEV4("ul", {
1209
1410
  className: "text-muted-foreground list-inside list-disc space-y-2",
1210
1411
  children: [
1211
- /* @__PURE__ */ jsxDEV3("li", {
1412
+ /* @__PURE__ */ jsxDEV4("li", {
1212
1413
  children: "Knowledge sources are validated before sync - credentials and permissions checked"
1213
1414
  }, undefined, false, undefined, this),
1214
- /* @__PURE__ */ jsxDEV3("li", {
1415
+ /* @__PURE__ */ jsxDEV4("li", {
1215
1416
  children: "PDP enforces which workflows/agents can access which spaces"
1216
1417
  }, undefined, false, undefined, this),
1217
- /* @__PURE__ */ jsxDEV3("li", {
1418
+ /* @__PURE__ */ jsxDEV4("li", {
1218
1419
  children: "All knowledge queries are audited with search terms and results"
1219
1420
  }, undefined, false, undefined, this),
1220
- /* @__PURE__ */ jsxDEV3("li", {
1421
+ /* @__PURE__ */ jsxDEV4("li", {
1221
1422
  children: "Canonical knowledge is immutable once indexed - changes require re-sync"
1222
1423
  }, undefined, false, undefined, this),
1223
- /* @__PURE__ */ jsxDEV3("li", {
1424
+ /* @__PURE__ */ jsxDEV4("li", {
1224
1425
  children: "Ephemeral knowledge is automatically purged based on retention policies"
1225
1426
  }, undefined, false, undefined, this)
1226
1427
  ]
1227
1428
  }, undefined, true, undefined, this)
1228
1429
  ]
1229
1430
  }, undefined, true, undefined, this),
1230
- /* @__PURE__ */ jsxDEV3("div", {
1431
+ /* @__PURE__ */ jsxDEV4("div", {
1231
1432
  className: "space-y-4",
1232
1433
  children: [
1233
- /* @__PURE__ */ jsxDEV3("h2", {
1434
+ /* @__PURE__ */ jsxDEV4("h2", {
1234
1435
  className: "text-2xl font-bold",
1235
1436
  children: "Best practices"
1236
1437
  }, undefined, false, undefined, this),
1237
- /* @__PURE__ */ jsxDEV3("ul", {
1438
+ /* @__PURE__ */ jsxDEV4("ul", {
1238
1439
  className: "text-muted-foreground list-inside list-disc space-y-2",
1239
1440
  children: [
1240
- /* @__PURE__ */ jsxDEV3("li", {
1441
+ /* @__PURE__ */ jsxDEV4("li", {
1241
1442
  children: "Use canonical spaces for policy-critical decisions, operational for suggestions"
1242
1443
  }, undefined, false, undefined, this),
1243
- /* @__PURE__ */ jsxDEV3("li", {
1444
+ /* @__PURE__ */ jsxDEV4("li", {
1244
1445
  children: "Never allow workflows to write to canonical spaces - maintain read-only access"
1245
1446
  }, undefined, false, undefined, this),
1246
- /* @__PURE__ */ jsxDEV3("li", {
1447
+ /* @__PURE__ */ jsxDEV4("li", {
1247
1448
  children: "Set up monitoring for sync failures and stale knowledge sources"
1248
1449
  }, undefined, false, undefined, this),
1249
- /* @__PURE__ */ jsxDEV3("li", {
1450
+ /* @__PURE__ */ jsxDEV4("li", {
1250
1451
  children: "Document the purpose and trust level of each knowledge space"
1251
1452
  }, undefined, false, undefined, this),
1252
- /* @__PURE__ */ jsxDEV3("li", {
1453
+ /* @__PURE__ */ jsxDEV4("li", {
1253
1454
  children: "Test knowledge queries in sandbox before promoting to production"
1254
1455
  }, undefined, false, undefined, this),
1255
- /* @__PURE__ */ jsxDEV3("li", {
1456
+ /* @__PURE__ */ jsxDEV4("li", {
1256
1457
  children: [
1257
1458
  "Use explicit ",
1258
- /* @__PURE__ */ jsxDEV3("code", {
1459
+ /* @__PURE__ */ jsxDEV4("code", {
1259
1460
  children: "allowedConsumers"
1260
1461
  }, undefined, false, undefined, this),
1261
1462
  " - avoid wildcard access"
@@ -1265,20 +1466,20 @@ steps:
1265
1466
  }, undefined, true, undefined, this)
1266
1467
  ]
1267
1468
  }, undefined, true, undefined, this),
1268
- /* @__PURE__ */ jsxDEV3("div", {
1469
+ /* @__PURE__ */ jsxDEV4("div", {
1269
1470
  className: "flex items-center gap-4 pt-4",
1270
1471
  children: [
1271
- /* @__PURE__ */ jsxDEV3(Link3, {
1472
+ /* @__PURE__ */ jsxDEV4(Link4, {
1272
1473
  href: "/docs/architecture/integration-binding",
1273
1474
  className: "btn-ghost",
1274
1475
  children: "Previous: Integration Binding"
1275
1476
  }, undefined, false, undefined, this),
1276
- /* @__PURE__ */ jsxDEV3(Link3, {
1477
+ /* @__PURE__ */ jsxDEV4(Link4, {
1277
1478
  href: "/docs/knowledge",
1278
1479
  className: "btn-primary",
1279
1480
  children: [
1280
1481
  "Knowledge & Context ",
1281
- /* @__PURE__ */ jsxDEV3(ChevronRight3, {
1482
+ /* @__PURE__ */ jsxDEV4(ChevronRight4, {
1282
1483
  size: 16
1283
1484
  }, undefined, false, undefined, this)
1284
1485
  ]
@@ -1290,60 +1491,60 @@ steps:
1290
1491
  }
1291
1492
 
1292
1493
  // src/components/docs/architecture/ArchitectureMultiTenancyPage.tsx
1293
- import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
1294
- import Link4 from "@contractspec/lib.ui-link";
1295
- import { ChevronRight as ChevronRight4 } from "lucide-react";
1296
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
1494
+ import { CodeBlock as CodeBlock5 } from "@contractspec/lib.design-system";
1495
+ import Link5 from "@contractspec/lib.ui-link";
1496
+ import { ChevronRight as ChevronRight5 } from "lucide-react";
1497
+ import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
1297
1498
  function ArchitectureMultiTenancyPage() {
1298
- return /* @__PURE__ */ jsxDEV4("div", {
1499
+ return /* @__PURE__ */ jsxDEV5("div", {
1299
1500
  className: "space-y-8",
1300
1501
  children: [
1301
- /* @__PURE__ */ jsxDEV4("div", {
1502
+ /* @__PURE__ */ jsxDEV5("div", {
1302
1503
  className: "space-y-4",
1303
1504
  children: [
1304
- /* @__PURE__ */ jsxDEV4("h1", {
1505
+ /* @__PURE__ */ jsxDEV5("h1", {
1305
1506
  className: "text-4xl font-bold",
1306
1507
  children: "Multi-Tenancy"
1307
1508
  }, undefined, false, undefined, this),
1308
- /* @__PURE__ */ jsxDEV4("p", {
1509
+ /* @__PURE__ */ jsxDEV5("p", {
1309
1510
  className: "text-muted-foreground",
1310
1511
  children: "ContractSpec is designed from the ground up for multi-tenancy. Apps built with ContractSpec can serve multiple organizations (tenants) from a single deployment, while ensuring strict data isolation and configuration separation."
1311
1512
  }, undefined, false, undefined, this)
1312
1513
  ]
1313
1514
  }, undefined, true, undefined, this),
1314
- /* @__PURE__ */ jsxDEV4("div", {
1515
+ /* @__PURE__ */ jsxDEV5("div", {
1315
1516
  className: "space-y-4",
1316
1517
  children: [
1317
- /* @__PURE__ */ jsxDEV4("h2", {
1518
+ /* @__PURE__ */ jsxDEV5("h2", {
1318
1519
  className: "text-2xl font-bold",
1319
1520
  children: "Core Concepts"
1320
1521
  }, undefined, false, undefined, this),
1321
- /* @__PURE__ */ jsxDEV4("ul", {
1522
+ /* @__PURE__ */ jsxDEV5("ul", {
1322
1523
  className: "text-muted-foreground list-inside list-disc space-y-2",
1323
1524
  children: [
1324
- /* @__PURE__ */ jsxDEV4("li", {
1525
+ /* @__PURE__ */ jsxDEV5("li", {
1325
1526
  children: [
1326
- /* @__PURE__ */ jsxDEV4("strong", {
1527
+ /* @__PURE__ */ jsxDEV5("strong", {
1327
1528
  children: "Tenant"
1328
1529
  }, undefined, false, undefined, this),
1329
1530
  ": An organization or customer that uses your app. Each tenant has a unique ",
1330
- /* @__PURE__ */ jsxDEV4("code", {
1531
+ /* @__PURE__ */ jsxDEV5("code", {
1331
1532
  children: "tenantId"
1332
1533
  }, undefined, false, undefined, this),
1333
1534
  "."
1334
1535
  ]
1335
1536
  }, undefined, true, undefined, this),
1336
- /* @__PURE__ */ jsxDEV4("li", {
1537
+ /* @__PURE__ */ jsxDEV5("li", {
1337
1538
  children: [
1338
- /* @__PURE__ */ jsxDEV4("strong", {
1539
+ /* @__PURE__ */ jsxDEV5("strong", {
1339
1540
  children: "Tenant Isolation"
1340
1541
  }, undefined, false, undefined, this),
1341
1542
  ": Data and configuration for one tenant is never accessible to another tenant unless explicitly shared."
1342
1543
  ]
1343
1544
  }, undefined, true, undefined, this),
1344
- /* @__PURE__ */ jsxDEV4("li", {
1545
+ /* @__PURE__ */ jsxDEV5("li", {
1345
1546
  children: [
1346
- /* @__PURE__ */ jsxDEV4("strong", {
1547
+ /* @__PURE__ */ jsxDEV5("strong", {
1347
1548
  children: "Tenant Context"
1348
1549
  }, undefined, false, undefined, this),
1349
1550
  ": Every request and operation runs within the context of a specific tenant."
@@ -1353,72 +1554,72 @@ function ArchitectureMultiTenancyPage() {
1353
1554
  }, undefined, true, undefined, this)
1354
1555
  ]
1355
1556
  }, undefined, true, undefined, this),
1356
- /* @__PURE__ */ jsxDEV4("div", {
1557
+ /* @__PURE__ */ jsxDEV5("div", {
1357
1558
  className: "space-y-4",
1358
1559
  children: [
1359
- /* @__PURE__ */ jsxDEV4("h2", {
1560
+ /* @__PURE__ */ jsxDEV5("h2", {
1360
1561
  className: "text-2xl font-bold",
1361
1562
  children: "Tenant Resolution"
1362
1563
  }, undefined, false, undefined, this),
1363
- /* @__PURE__ */ jsxDEV4("p", {
1564
+ /* @__PURE__ */ jsxDEV5("p", {
1364
1565
  className: "text-muted-foreground",
1365
1566
  children: "The runtime automatically resolves the tenant context for every request based on:"
1366
1567
  }, undefined, false, undefined, this),
1367
- /* @__PURE__ */ jsxDEV4("ul", {
1568
+ /* @__PURE__ */ jsxDEV5("ul", {
1368
1569
  className: "text-muted-foreground list-inside list-disc space-y-2",
1369
1570
  children: [
1370
- /* @__PURE__ */ jsxDEV4("li", {
1571
+ /* @__PURE__ */ jsxDEV5("li", {
1371
1572
  children: [
1372
1573
  "Subdomain (e.g., ",
1373
- /* @__PURE__ */ jsxDEV4("code", {
1574
+ /* @__PURE__ */ jsxDEV5("code", {
1374
1575
  children: "acme.app.com"
1375
1576
  }, undefined, false, undefined, this),
1376
1577
  ")"
1377
1578
  ]
1378
1579
  }, undefined, true, undefined, this),
1379
- /* @__PURE__ */ jsxDEV4("li", {
1580
+ /* @__PURE__ */ jsxDEV5("li", {
1380
1581
  children: [
1381
1582
  "Custom Domain (e.g., ",
1382
- /* @__PURE__ */ jsxDEV4("code", {
1583
+ /* @__PURE__ */ jsxDEV5("code", {
1383
1584
  children: "portal.acme.com"
1384
1585
  }, undefined, false, undefined, this),
1385
1586
  ")"
1386
1587
  ]
1387
1588
  }, undefined, true, undefined, this),
1388
- /* @__PURE__ */ jsxDEV4("li", {
1589
+ /* @__PURE__ */ jsxDEV5("li", {
1389
1590
  children: [
1390
1591
  "Header (e.g., ",
1391
- /* @__PURE__ */ jsxDEV4("code", {
1592
+ /* @__PURE__ */ jsxDEV5("code", {
1392
1593
  children: "x-tenant-id: acme-corp"
1393
1594
  }, undefined, false, undefined, this),
1394
1595
  ")"
1395
1596
  ]
1396
1597
  }, undefined, true, undefined, this),
1397
- /* @__PURE__ */ jsxDEV4("li", {
1598
+ /* @__PURE__ */ jsxDEV5("li", {
1398
1599
  children: "Authentication Token (embedded tenant claim)"
1399
1600
  }, undefined, false, undefined, this)
1400
1601
  ]
1401
1602
  }, undefined, true, undefined, this)
1402
1603
  ]
1403
1604
  }, undefined, true, undefined, this),
1404
- /* @__PURE__ */ jsxDEV4("div", {
1605
+ /* @__PURE__ */ jsxDEV5("div", {
1405
1606
  className: "space-y-4",
1406
1607
  children: [
1407
- /* @__PURE__ */ jsxDEV4("h2", {
1608
+ /* @__PURE__ */ jsxDEV5("h2", {
1408
1609
  className: "text-2xl font-bold",
1409
1610
  children: "Configuration Isolation"
1410
1611
  }, undefined, false, undefined, this),
1411
- /* @__PURE__ */ jsxDEV4("p", {
1612
+ /* @__PURE__ */ jsxDEV5("p", {
1412
1613
  className: "text-muted-foreground",
1413
1614
  children: [
1414
1615
  "Each tenant has its own ",
1415
- /* @__PURE__ */ jsxDEV4("code", {
1616
+ /* @__PURE__ */ jsxDEV5("code", {
1416
1617
  children: "TenantAppConfig"
1417
1618
  }, undefined, false, undefined, this),
1418
1619
  " which defines:"
1419
1620
  ]
1420
1621
  }, undefined, true, undefined, this),
1421
- /* @__PURE__ */ jsxDEV4(CodeBlock4, {
1622
+ /* @__PURE__ */ jsxDEV5(CodeBlock5, {
1422
1623
  language: "typescript",
1423
1624
  code: `type TenantAppConfig = {
1424
1625
  tenantId: string;
@@ -1429,26 +1630,26 @@ function ArchitectureMultiTenancyPage() {
1429
1630
  featureFlags: Record<string, boolean>;
1430
1631
  };`
1431
1632
  }, undefined, false, undefined, this),
1432
- /* @__PURE__ */ jsxDEV4("p", {
1633
+ /* @__PURE__ */ jsxDEV5("p", {
1433
1634
  className: "text-muted-foreground mt-2",
1434
1635
  children: "This allows you to customize feature flags, integration connections, and knowledge sources per tenant without changing the application code."
1435
1636
  }, undefined, false, undefined, this)
1436
1637
  ]
1437
1638
  }, undefined, true, undefined, this),
1438
- /* @__PURE__ */ jsxDEV4("div", {
1639
+ /* @__PURE__ */ jsxDEV5("div", {
1439
1640
  className: "flex items-center gap-4 pt-4",
1440
1641
  children: [
1441
- /* @__PURE__ */ jsxDEV4(Link4, {
1642
+ /* @__PURE__ */ jsxDEV5(Link5, {
1442
1643
  href: "/docs/architecture",
1443
1644
  className: "btn-ghost",
1444
1645
  children: "Back to Architecture"
1445
1646
  }, undefined, false, undefined, this),
1446
- /* @__PURE__ */ jsxDEV4(Link4, {
1647
+ /* @__PURE__ */ jsxDEV5(Link5, {
1447
1648
  href: "/docs/libraries/multi-tenancy",
1448
1649
  className: "btn-primary",
1449
1650
  children: [
1450
1651
  "Multi-Tenancy Library ",
1451
- /* @__PURE__ */ jsxDEV4(ChevronRight4, {
1652
+ /* @__PURE__ */ jsxDEV5(ChevronRight5, {
1452
1653
  size: 16
1453
1654
  }, undefined, false, undefined, this)
1454
1655
  ]
@@ -1460,53 +1661,53 @@ function ArchitectureMultiTenancyPage() {
1460
1661
  }
1461
1662
 
1462
1663
  // src/components/docs/architecture/ArchitectureOverviewPage.tsx
1463
- import Link5 from "@contractspec/lib.ui-link";
1464
- import { ChevronRight as ChevronRight5 } from "lucide-react";
1465
- import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
1664
+ import Link6 from "@contractspec/lib.ui-link";
1665
+ import { ChevronRight as ChevronRight6 } from "lucide-react";
1666
+ import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
1466
1667
  function ArchitectureOverviewPage() {
1467
- return /* @__PURE__ */ jsxDEV5("div", {
1668
+ return /* @__PURE__ */ jsxDEV6("div", {
1468
1669
  className: "space-y-8",
1469
1670
  children: [
1470
- /* @__PURE__ */ jsxDEV5("div", {
1671
+ /* @__PURE__ */ jsxDEV6("div", {
1471
1672
  className: "space-y-4",
1472
1673
  children: [
1473
- /* @__PURE__ */ jsxDEV5("h1", {
1674
+ /* @__PURE__ */ jsxDEV6("h1", {
1474
1675
  className: "text-4xl font-bold",
1475
1676
  children: "Architecture"
1476
1677
  }, undefined, false, undefined, this),
1477
- /* @__PURE__ */ jsxDEV5("p", {
1678
+ /* @__PURE__ */ jsxDEV6("p", {
1478
1679
  className: "text-muted-foreground",
1479
- children: "ContractSpec's architecture is built on a foundation of typed specifications served by runtime adapters. This section covers the core architectural concepts: app configuration, integration binding, and knowledge management."
1680
+ children: "ContractSpec's architecture is built on a foundation of typed specifications served by runtime adapters. This section covers the core architectural concepts: app configuration, integration binding, control-plane governance, and knowledge management."
1480
1681
  }, undefined, false, undefined, this)
1481
1682
  ]
1482
1683
  }, undefined, true, undefined, this),
1483
- /* @__PURE__ */ jsxDEV5("div", {
1684
+ /* @__PURE__ */ jsxDEV6("div", {
1484
1685
  className: "space-y-4",
1485
1686
  children: [
1486
- /* @__PURE__ */ jsxDEV5("h2", {
1687
+ /* @__PURE__ */ jsxDEV6("h2", {
1487
1688
  className: "text-2xl font-bold",
1488
1689
  children: "Core layers"
1489
1690
  }, undefined, false, undefined, this),
1490
- /* @__PURE__ */ jsxDEV5("div", {
1691
+ /* @__PURE__ */ jsxDEV6("div", {
1491
1692
  className: "space-y-6",
1492
1693
  children: [
1493
- /* @__PURE__ */ jsxDEV5("div", {
1694
+ /* @__PURE__ */ jsxDEV6("div", {
1494
1695
  className: "space-y-3",
1495
1696
  children: [
1496
- /* @__PURE__ */ jsxDEV5("h3", {
1697
+ /* @__PURE__ */ jsxDEV6("h3", {
1497
1698
  className: "text-xl font-semibold",
1498
1699
  children: "1. Specification Layer"
1499
1700
  }, undefined, false, undefined, this),
1500
- /* @__PURE__ */ jsxDEV5("p", {
1701
+ /* @__PURE__ */ jsxDEV6("p", {
1501
1702
  className: "text-muted-foreground",
1502
1703
  children: "The foundation of ContractSpec. Typed specifications define what your application can do:"
1503
1704
  }, undefined, false, undefined, this),
1504
- /* @__PURE__ */ jsxDEV5("ul", {
1705
+ /* @__PURE__ */ jsxDEV6("ul", {
1505
1706
  className: "text-muted-foreground ml-4 list-inside list-disc space-y-2",
1506
1707
  children: [
1507
- /* @__PURE__ */ jsxDEV5("li", {
1708
+ /* @__PURE__ */ jsxDEV6("li", {
1508
1709
  children: [
1509
- /* @__PURE__ */ jsxDEV5(Link5, {
1710
+ /* @__PURE__ */ jsxDEV6(Link6, {
1510
1711
  href: "/docs/specs/capabilities",
1511
1712
  className: "text-violet-400 hover:text-violet-300",
1512
1713
  children: "CapabilitySpec"
@@ -1515,9 +1716,9 @@ function ArchitectureOverviewPage() {
1515
1716
  "- Operations and their inputs/outputs"
1516
1717
  ]
1517
1718
  }, undefined, true, undefined, this),
1518
- /* @__PURE__ */ jsxDEV5("li", {
1719
+ /* @__PURE__ */ jsxDEV6("li", {
1519
1720
  children: [
1520
- /* @__PURE__ */ jsxDEV5(Link5, {
1721
+ /* @__PURE__ */ jsxDEV6(Link6, {
1521
1722
  href: "/docs/specs/dataviews",
1522
1723
  className: "text-violet-400 hover:text-violet-300",
1523
1724
  children: "DataViewSpec"
@@ -1526,9 +1727,9 @@ function ArchitectureOverviewPage() {
1526
1727
  "- Data queries and presentation"
1527
1728
  ]
1528
1729
  }, undefined, true, undefined, this),
1529
- /* @__PURE__ */ jsxDEV5("li", {
1730
+ /* @__PURE__ */ jsxDEV6("li", {
1530
1731
  children: [
1531
- /* @__PURE__ */ jsxDEV5(Link5, {
1732
+ /* @__PURE__ */ jsxDEV6(Link6, {
1532
1733
  href: "/docs/specs/workflows",
1533
1734
  className: "text-violet-400 hover:text-violet-300",
1534
1735
  children: "WorkflowSpec"
@@ -1537,9 +1738,9 @@ function ArchitectureOverviewPage() {
1537
1738
  "- Multi-step processes"
1538
1739
  ]
1539
1740
  }, undefined, true, undefined, this),
1540
- /* @__PURE__ */ jsxDEV5("li", {
1741
+ /* @__PURE__ */ jsxDEV6("li", {
1541
1742
  children: [
1542
- /* @__PURE__ */ jsxDEV5(Link5, {
1743
+ /* @__PURE__ */ jsxDEV6(Link6, {
1543
1744
  href: "/docs/specs/policy",
1544
1745
  className: "text-violet-400 hover:text-violet-300",
1545
1746
  children: "PolicySpec"
@@ -1548,9 +1749,9 @@ function ArchitectureOverviewPage() {
1548
1749
  "- Access control and data protection"
1549
1750
  ]
1550
1751
  }, undefined, true, undefined, this),
1551
- /* @__PURE__ */ jsxDEV5("li", {
1752
+ /* @__PURE__ */ jsxDEV6("li", {
1552
1753
  children: [
1553
- /* @__PURE__ */ jsxDEV5(Link5, {
1754
+ /* @__PURE__ */ jsxDEV6(Link6, {
1554
1755
  href: "/docs/integrations/spec-model",
1555
1756
  className: "text-violet-400 hover:text-violet-300",
1556
1757
  children: "IntegrationSpec"
@@ -1559,9 +1760,9 @@ function ArchitectureOverviewPage() {
1559
1760
  "- External service providers"
1560
1761
  ]
1561
1762
  }, undefined, true, undefined, this),
1562
- /* @__PURE__ */ jsxDEV5("li", {
1763
+ /* @__PURE__ */ jsxDEV6("li", {
1563
1764
  children: [
1564
- /* @__PURE__ */ jsxDEV5(Link5, {
1765
+ /* @__PURE__ */ jsxDEV6(Link6, {
1565
1766
  href: "/docs/knowledge/spaces",
1566
1767
  className: "text-violet-400 hover:text-violet-300",
1567
1768
  children: "KnowledgeSpaceSpec"
@@ -1574,23 +1775,23 @@ function ArchitectureOverviewPage() {
1574
1775
  }, undefined, true, undefined, this)
1575
1776
  ]
1576
1777
  }, undefined, true, undefined, this),
1577
- /* @__PURE__ */ jsxDEV5("div", {
1778
+ /* @__PURE__ */ jsxDEV6("div", {
1578
1779
  className: "space-y-3",
1579
1780
  children: [
1580
- /* @__PURE__ */ jsxDEV5("h3", {
1781
+ /* @__PURE__ */ jsxDEV6("h3", {
1581
1782
  className: "text-xl font-semibold",
1582
1783
  children: "2. Configuration Layer"
1583
1784
  }, undefined, false, undefined, this),
1584
- /* @__PURE__ */ jsxDEV5("p", {
1785
+ /* @__PURE__ */ jsxDEV6("p", {
1585
1786
  className: "text-muted-foreground",
1586
1787
  children: "How applications are configured and customized:"
1587
1788
  }, undefined, false, undefined, this),
1588
- /* @__PURE__ */ jsxDEV5("ul", {
1789
+ /* @__PURE__ */ jsxDEV6("ul", {
1589
1790
  className: "text-muted-foreground ml-4 list-inside list-disc space-y-2",
1590
1791
  children: [
1591
- /* @__PURE__ */ jsxDEV5("li", {
1792
+ /* @__PURE__ */ jsxDEV6("li", {
1592
1793
  children: [
1593
- /* @__PURE__ */ jsxDEV5(Link5, {
1794
+ /* @__PURE__ */ jsxDEV6(Link6, {
1594
1795
  href: "/docs/architecture/app-config",
1595
1796
  className: "text-violet-400 hover:text-violet-300",
1596
1797
  children: "AppBlueprintSpec"
@@ -1599,9 +1800,9 @@ function ArchitectureOverviewPage() {
1599
1800
  "- Global, versioned app definition"
1600
1801
  ]
1601
1802
  }, undefined, true, undefined, this),
1602
- /* @__PURE__ */ jsxDEV5("li", {
1803
+ /* @__PURE__ */ jsxDEV6("li", {
1603
1804
  children: [
1604
- /* @__PURE__ */ jsxDEV5(Link5, {
1805
+ /* @__PURE__ */ jsxDEV6(Link6, {
1605
1806
  href: "/docs/architecture/app-config",
1606
1807
  className: "text-violet-400 hover:text-violet-300",
1607
1808
  children: "TenantAppConfig"
@@ -1610,9 +1811,9 @@ function ArchitectureOverviewPage() {
1610
1811
  "- Per-tenant, per-environment configuration"
1611
1812
  ]
1612
1813
  }, undefined, true, undefined, this),
1613
- /* @__PURE__ */ jsxDEV5("li", {
1814
+ /* @__PURE__ */ jsxDEV6("li", {
1614
1815
  children: [
1615
- /* @__PURE__ */ jsxDEV5(Link5, {
1816
+ /* @__PURE__ */ jsxDEV6(Link6, {
1616
1817
  href: "/docs/architecture/integration-binding",
1617
1818
  className: "text-violet-400 hover:text-violet-300",
1618
1819
  children: "AppIntegrationBinding"
@@ -1621,9 +1822,9 @@ function ArchitectureOverviewPage() {
1621
1822
  "- How apps use integrations"
1622
1823
  ]
1623
1824
  }, undefined, true, undefined, this),
1624
- /* @__PURE__ */ jsxDEV5("li", {
1825
+ /* @__PURE__ */ jsxDEV6("li", {
1625
1826
  children: [
1626
- /* @__PURE__ */ jsxDEV5(Link5, {
1827
+ /* @__PURE__ */ jsxDEV6(Link6, {
1627
1828
  href: "/docs/architecture/knowledge-binding",
1628
1829
  className: "text-violet-400 hover:text-violet-300",
1629
1830
  children: "AppKnowledgeBinding"
@@ -1636,55 +1837,66 @@ function ArchitectureOverviewPage() {
1636
1837
  }, undefined, true, undefined, this)
1637
1838
  ]
1638
1839
  }, undefined, true, undefined, this),
1639
- /* @__PURE__ */ jsxDEV5("div", {
1840
+ /* @__PURE__ */ jsxDEV6("div", {
1640
1841
  className: "space-y-3",
1641
1842
  children: [
1642
- /* @__PURE__ */ jsxDEV5("h3", {
1843
+ /* @__PURE__ */ jsxDEV6("h3", {
1643
1844
  className: "text-xl font-semibold",
1644
1845
  children: "3. Runtime Layer"
1645
1846
  }, undefined, false, undefined, this),
1646
- /* @__PURE__ */ jsxDEV5("p", {
1847
+ /* @__PURE__ */ jsxDEV6("p", {
1647
1848
  className: "text-muted-foreground",
1648
1849
  children: "How specifications are executed at runtime:"
1649
1850
  }, undefined, false, undefined, this),
1650
- /* @__PURE__ */ jsxDEV5("ul", {
1851
+ /* @__PURE__ */ jsxDEV6("ul", {
1651
1852
  className: "text-muted-foreground ml-4 list-inside list-disc space-y-2",
1652
1853
  children: [
1653
- /* @__PURE__ */ jsxDEV5("li", {
1854
+ /* @__PURE__ */ jsxDEV6("li", {
1654
1855
  children: [
1655
- /* @__PURE__ */ jsxDEV5("strong", {
1856
+ /* @__PURE__ */ jsxDEV6("strong", {
1656
1857
  children: "ResolvedAppConfig"
1657
1858
  }, undefined, false, undefined, this),
1658
1859
  " - Merged blueprint + tenant config"
1659
1860
  ]
1660
1861
  }, undefined, true, undefined, this),
1661
- /* @__PURE__ */ jsxDEV5("li", {
1862
+ /* @__PURE__ */ jsxDEV6("li", {
1662
1863
  children: [
1663
- /* @__PURE__ */ jsxDEV5("strong", {
1864
+ /* @__PURE__ */ jsxDEV6("strong", {
1664
1865
  children: "Policy Decision Point (PDP)"
1665
1866
  }, undefined, false, undefined, this),
1666
1867
  " - Enforces policies on every operation"
1667
1868
  ]
1668
1869
  }, undefined, true, undefined, this),
1669
- /* @__PURE__ */ jsxDEV5("li", {
1870
+ /* @__PURE__ */ jsxDEV6("li", {
1670
1871
  children: [
1671
- /* @__PURE__ */ jsxDEV5("strong", {
1872
+ /* @__PURE__ */ jsxDEV6(Link6, {
1873
+ href: "/docs/architecture/control-plane",
1874
+ className: "text-violet-400 hover:text-violet-300",
1875
+ children: "Control Plane Runtime"
1876
+ }, undefined, false, undefined, this),
1877
+ " ",
1878
+ "- Deterministic intent to plan to policy to execution loop"
1879
+ ]
1880
+ }, undefined, true, undefined, this),
1881
+ /* @__PURE__ */ jsxDEV6("li", {
1882
+ children: [
1883
+ /* @__PURE__ */ jsxDEV6("strong", {
1672
1884
  children: "Presentation Runtime"
1673
1885
  }, undefined, false, undefined, this),
1674
1886
  " - React and React Native renderers"
1675
1887
  ]
1676
1888
  }, undefined, true, undefined, this),
1677
- /* @__PURE__ */ jsxDEV5("li", {
1889
+ /* @__PURE__ */ jsxDEV6("li", {
1678
1890
  children: [
1679
- /* @__PURE__ */ jsxDEV5("strong", {
1891
+ /* @__PURE__ */ jsxDEV6("strong", {
1680
1892
  children: "Integration Connectors"
1681
1893
  }, undefined, false, undefined, this),
1682
1894
  " - Execute external API calls"
1683
1895
  ]
1684
1896
  }, undefined, true, undefined, this),
1685
- /* @__PURE__ */ jsxDEV5("li", {
1897
+ /* @__PURE__ */ jsxDEV6("li", {
1686
1898
  children: [
1687
- /* @__PURE__ */ jsxDEV5("strong", {
1899
+ /* @__PURE__ */ jsxDEV6("strong", {
1688
1900
  children: "Knowledge Retrieval"
1689
1901
  }, undefined, false, undefined, this),
1690
1902
  " - Query vector databases and knowledge sources"
@@ -1698,110 +1910,110 @@ function ArchitectureOverviewPage() {
1698
1910
  }, undefined, true, undefined, this)
1699
1911
  ]
1700
1912
  }, undefined, true, undefined, this),
1701
- /* @__PURE__ */ jsxDEV5("div", {
1913
+ /* @__PURE__ */ jsxDEV6("div", {
1702
1914
  className: "space-y-4",
1703
1915
  children: [
1704
- /* @__PURE__ */ jsxDEV5("h2", {
1916
+ /* @__PURE__ */ jsxDEV6("h2", {
1705
1917
  className: "text-2xl font-bold",
1706
1918
  children: "Configuration model"
1707
1919
  }, undefined, false, undefined, this),
1708
- /* @__PURE__ */ jsxDEV5("p", {
1920
+ /* @__PURE__ */ jsxDEV6("p", {
1709
1921
  className: "text-muted-foreground",
1710
1922
  children: "ContractSpec uses a three-tier configuration model:"
1711
1923
  }, undefined, false, undefined, this),
1712
- /* @__PURE__ */ jsxDEV5("div", {
1924
+ /* @__PURE__ */ jsxDEV6("div", {
1713
1925
  className: "border-border/50 overflow-x-auto rounded-lg border",
1714
- children: /* @__PURE__ */ jsxDEV5("table", {
1926
+ children: /* @__PURE__ */ jsxDEV6("table", {
1715
1927
  className: "w-full text-left text-sm",
1716
1928
  children: [
1717
- /* @__PURE__ */ jsxDEV5("thead", {
1929
+ /* @__PURE__ */ jsxDEV6("thead", {
1718
1930
  className: "bg-card/50",
1719
- children: /* @__PURE__ */ jsxDEV5("tr", {
1931
+ children: /* @__PURE__ */ jsxDEV6("tr", {
1720
1932
  className: "border-border/50 border-b",
1721
1933
  children: [
1722
- /* @__PURE__ */ jsxDEV5("th", {
1934
+ /* @__PURE__ */ jsxDEV6("th", {
1723
1935
  className: "px-4 py-3 font-semibold",
1724
1936
  children: "Layer"
1725
1937
  }, undefined, false, undefined, this),
1726
- /* @__PURE__ */ jsxDEV5("th", {
1938
+ /* @__PURE__ */ jsxDEV6("th", {
1727
1939
  className: "px-4 py-3 font-semibold",
1728
1940
  children: "Type"
1729
1941
  }, undefined, false, undefined, this),
1730
- /* @__PURE__ */ jsxDEV5("th", {
1942
+ /* @__PURE__ */ jsxDEV6("th", {
1731
1943
  className: "px-4 py-3 font-semibold",
1732
1944
  children: "Scope"
1733
1945
  }, undefined, false, undefined, this),
1734
- /* @__PURE__ */ jsxDEV5("th", {
1946
+ /* @__PURE__ */ jsxDEV6("th", {
1735
1947
  className: "px-4 py-3 font-semibold",
1736
1948
  children: "Storage"
1737
1949
  }, undefined, false, undefined, this)
1738
1950
  ]
1739
1951
  }, undefined, true, undefined, this)
1740
1952
  }, undefined, false, undefined, this),
1741
- /* @__PURE__ */ jsxDEV5("tbody", {
1953
+ /* @__PURE__ */ jsxDEV6("tbody", {
1742
1954
  className: "divide-border/50 divide-y",
1743
1955
  children: [
1744
- /* @__PURE__ */ jsxDEV5("tr", {
1956
+ /* @__PURE__ */ jsxDEV6("tr", {
1745
1957
  children: [
1746
- /* @__PURE__ */ jsxDEV5("td", {
1958
+ /* @__PURE__ */ jsxDEV6("td", {
1747
1959
  className: "px-4 py-3 align-top",
1748
- children: /* @__PURE__ */ jsxDEV5("strong", {
1960
+ children: /* @__PURE__ */ jsxDEV6("strong", {
1749
1961
  children: "Blueprint"
1750
1962
  }, undefined, false, undefined, this)
1751
1963
  }, undefined, false, undefined, this),
1752
- /* @__PURE__ */ jsxDEV5("td", {
1964
+ /* @__PURE__ */ jsxDEV6("td", {
1753
1965
  className: "px-4 py-3 align-top font-mono text-xs",
1754
1966
  children: "AppBlueprintSpec"
1755
1967
  }, undefined, false, undefined, this),
1756
- /* @__PURE__ */ jsxDEV5("td", {
1968
+ /* @__PURE__ */ jsxDEV6("td", {
1757
1969
  className: "px-4 py-3 align-top",
1758
1970
  children: "Global, versioned, no tenant info"
1759
1971
  }, undefined, false, undefined, this),
1760
- /* @__PURE__ */ jsxDEV5("td", {
1972
+ /* @__PURE__ */ jsxDEV6("td", {
1761
1973
  className: "px-4 py-3 align-top",
1762
1974
  children: "Version control, immutable"
1763
1975
  }, undefined, false, undefined, this)
1764
1976
  ]
1765
1977
  }, undefined, true, undefined, this),
1766
- /* @__PURE__ */ jsxDEV5("tr", {
1978
+ /* @__PURE__ */ jsxDEV6("tr", {
1767
1979
  children: [
1768
- /* @__PURE__ */ jsxDEV5("td", {
1980
+ /* @__PURE__ */ jsxDEV6("td", {
1769
1981
  className: "px-4 py-3 align-top",
1770
- children: /* @__PURE__ */ jsxDEV5("strong", {
1982
+ children: /* @__PURE__ */ jsxDEV6("strong", {
1771
1983
  children: "Tenant Config"
1772
1984
  }, undefined, false, undefined, this)
1773
1985
  }, undefined, false, undefined, this),
1774
- /* @__PURE__ */ jsxDEV5("td", {
1986
+ /* @__PURE__ */ jsxDEV6("td", {
1775
1987
  className: "px-4 py-3 align-top font-mono text-xs",
1776
1988
  children: "TenantAppConfig"
1777
1989
  }, undefined, false, undefined, this),
1778
- /* @__PURE__ */ jsxDEV5("td", {
1990
+ /* @__PURE__ */ jsxDEV6("td", {
1779
1991
  className: "px-4 py-3 align-top",
1780
1992
  children: "Per-tenant, per-environment"
1781
1993
  }, undefined, false, undefined, this),
1782
- /* @__PURE__ */ jsxDEV5("td", {
1994
+ /* @__PURE__ */ jsxDEV6("td", {
1783
1995
  className: "px-4 py-3 align-top",
1784
1996
  children: "Database, mutable"
1785
1997
  }, undefined, false, undefined, this)
1786
1998
  ]
1787
1999
  }, undefined, true, undefined, this),
1788
- /* @__PURE__ */ jsxDEV5("tr", {
2000
+ /* @__PURE__ */ jsxDEV6("tr", {
1789
2001
  children: [
1790
- /* @__PURE__ */ jsxDEV5("td", {
2002
+ /* @__PURE__ */ jsxDEV6("td", {
1791
2003
  className: "px-4 py-3 align-top",
1792
- children: /* @__PURE__ */ jsxDEV5("strong", {
2004
+ children: /* @__PURE__ */ jsxDEV6("strong", {
1793
2005
  children: "Resolved Config"
1794
2006
  }, undefined, false, undefined, this)
1795
2007
  }, undefined, false, undefined, this),
1796
- /* @__PURE__ */ jsxDEV5("td", {
2008
+ /* @__PURE__ */ jsxDEV6("td", {
1797
2009
  className: "px-4 py-3 align-top font-mono text-xs",
1798
2010
  children: "ResolvedAppConfig"
1799
2011
  }, undefined, false, undefined, this),
1800
- /* @__PURE__ */ jsxDEV5("td", {
2012
+ /* @__PURE__ */ jsxDEV6("td", {
1801
2013
  className: "px-4 py-3 align-top",
1802
2014
  children: "Runtime, ephemeral"
1803
2015
  }, undefined, false, undefined, this),
1804
- /* @__PURE__ */ jsxDEV5("td", {
2016
+ /* @__PURE__ */ jsxDEV6("td", {
1805
2017
  className: "px-4 py-3 align-top",
1806
2018
  children: "In-memory, not persisted"
1807
2019
  }, undefined, false, undefined, this)
@@ -1814,59 +2026,59 @@ function ArchitectureOverviewPage() {
1814
2026
  }, undefined, false, undefined, this)
1815
2027
  ]
1816
2028
  }, undefined, true, undefined, this),
1817
- /* @__PURE__ */ jsxDEV5("div", {
2029
+ /* @__PURE__ */ jsxDEV6("div", {
1818
2030
  className: "space-y-4",
1819
2031
  children: [
1820
- /* @__PURE__ */ jsxDEV5("h2", {
2032
+ /* @__PURE__ */ jsxDEV6("h2", {
1821
2033
  className: "text-2xl font-bold",
1822
2034
  children: "Key architectural principles"
1823
2035
  }, undefined, false, undefined, this),
1824
- /* @__PURE__ */ jsxDEV5("ul", {
2036
+ /* @__PURE__ */ jsxDEV6("ul", {
1825
2037
  className: "text-muted-foreground list-inside list-disc space-y-2",
1826
2038
  children: [
1827
- /* @__PURE__ */ jsxDEV5("li", {
2039
+ /* @__PURE__ */ jsxDEV6("li", {
1828
2040
  children: [
1829
- /* @__PURE__ */ jsxDEV5("strong", {
2041
+ /* @__PURE__ */ jsxDEV6("strong", {
1830
2042
  children: "Spec-first"
1831
2043
  }, undefined, false, undefined, this),
1832
2044
  " - Everything is defined declaratively before code generation"
1833
2045
  ]
1834
2046
  }, undefined, true, undefined, this),
1835
- /* @__PURE__ */ jsxDEV5("li", {
2047
+ /* @__PURE__ */ jsxDEV6("li", {
1836
2048
  children: [
1837
- /* @__PURE__ */ jsxDEV5("strong", {
2049
+ /* @__PURE__ */ jsxDEV6("strong", {
1838
2050
  children: "Type-safe"
1839
2051
  }, undefined, false, undefined, this),
1840
2052
  " - All specifications are strongly typed and validated at compile time"
1841
2053
  ]
1842
2054
  }, undefined, true, undefined, this),
1843
- /* @__PURE__ */ jsxDEV5("li", {
2055
+ /* @__PURE__ */ jsxDEV6("li", {
1844
2056
  children: [
1845
- /* @__PURE__ */ jsxDEV5("strong", {
2057
+ /* @__PURE__ */ jsxDEV6("strong", {
1846
2058
  children: "Policy-enforced"
1847
2059
  }, undefined, false, undefined, this),
1848
2060
  " - Every operation passes through the PDP"
1849
2061
  ]
1850
2062
  }, undefined, true, undefined, this),
1851
- /* @__PURE__ */ jsxDEV5("li", {
2063
+ /* @__PURE__ */ jsxDEV6("li", {
1852
2064
  children: [
1853
- /* @__PURE__ */ jsxDEV5("strong", {
2065
+ /* @__PURE__ */ jsxDEV6("strong", {
1854
2066
  children: "Multi-tenant by default"
1855
2067
  }, undefined, false, undefined, this),
1856
2068
  " - Tenant isolation is built-in, not bolted on"
1857
2069
  ]
1858
2070
  }, undefined, true, undefined, this),
1859
- /* @__PURE__ */ jsxDEV5("li", {
2071
+ /* @__PURE__ */ jsxDEV6("li", {
1860
2072
  children: [
1861
- /* @__PURE__ */ jsxDEV5("strong", {
2073
+ /* @__PURE__ */ jsxDEV6("strong", {
1862
2074
  children: "Environment-aware"
1863
2075
  }, undefined, false, undefined, this),
1864
2076
  " - Separate configurations for sandbox, staging, production"
1865
2077
  ]
1866
2078
  }, undefined, true, undefined, this),
1867
- /* @__PURE__ */ jsxDEV5("li", {
2079
+ /* @__PURE__ */ jsxDEV6("li", {
1868
2080
  children: [
1869
- /* @__PURE__ */ jsxDEV5("strong", {
2081
+ /* @__PURE__ */ jsxDEV6("strong", {
1870
2082
  children: "Auditable"
1871
2083
  }, undefined, false, undefined, this),
1872
2084
  " - All operations are logged for compliance and debugging"
@@ -1876,25 +2088,30 @@ function ArchitectureOverviewPage() {
1876
2088
  }, undefined, true, undefined, this)
1877
2089
  ]
1878
2090
  }, undefined, true, undefined, this),
1879
- /* @__PURE__ */ jsxDEV5("div", {
2091
+ /* @__PURE__ */ jsxDEV6("div", {
1880
2092
  className: "flex items-center gap-4 pt-4",
1881
2093
  children: [
1882
- /* @__PURE__ */ jsxDEV5(Link5, {
2094
+ /* @__PURE__ */ jsxDEV6(Link6, {
1883
2095
  href: "/docs/architecture/app-config",
1884
2096
  className: "btn-primary",
1885
2097
  children: [
1886
2098
  "App Configuration ",
1887
- /* @__PURE__ */ jsxDEV5(ChevronRight5, {
2099
+ /* @__PURE__ */ jsxDEV6(ChevronRight6, {
1888
2100
  size: 16
1889
2101
  }, undefined, false, undefined, this)
1890
2102
  ]
1891
2103
  }, undefined, true, undefined, this),
1892
- /* @__PURE__ */ jsxDEV5(Link5, {
2104
+ /* @__PURE__ */ jsxDEV6(Link6, {
2105
+ href: "/docs/architecture/control-plane",
2106
+ className: "btn-ghost",
2107
+ children: "Control Plane Runtime"
2108
+ }, undefined, false, undefined, this),
2109
+ /* @__PURE__ */ jsxDEV6(Link6, {
1893
2110
  href: "/docs/integrations",
1894
2111
  className: "btn-ghost",
1895
2112
  children: "Integrations"
1896
2113
  }, undefined, false, undefined, this),
1897
- /* @__PURE__ */ jsxDEV5(Link5, {
2114
+ /* @__PURE__ */ jsxDEV6(Link6, {
1898
2115
  href: "/docs/knowledge",
1899
2116
  className: "btn-ghost",
1900
2117
  children: "Knowledge & Context"
@@ -1909,5 +2126,6 @@ export {
1909
2126
  ArchitectureMultiTenancyPage,
1910
2127
  ArchitectureKnowledgeBindingPage,
1911
2128
  ArchitectureIntegrationBindingPage,
2129
+ ArchitectureControlPlanePage,
1912
2130
  ArchitectureAppConfigPage
1913
2131
  };