@contractspec/bundle.library 2.9.1 → 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 +38 -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/bundle.library",
3
- "version": "2.9.1",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "clean": "rm -rf dist",
@@ -138,6 +138,12 @@
138
138
  "node": "./dist/node/components/docs/architecture/ArchitectureAppConfigPage.js",
139
139
  "default": "./dist/components/docs/architecture/ArchitectureAppConfigPage.js"
140
140
  },
141
+ "./components/docs/architecture/ArchitectureControlPlanePage": {
142
+ "types": "./dist/components/docs/architecture/ArchitectureControlPlanePage.d.ts",
143
+ "bun": "./dist/components/docs/architecture/ArchitectureControlPlanePage.js",
144
+ "node": "./dist/node/components/docs/architecture/ArchitectureControlPlanePage.js",
145
+ "default": "./dist/components/docs/architecture/ArchitectureControlPlanePage.js"
146
+ },
141
147
  "./components/docs/architecture/ArchitectureIntegrationBindingPage": {
142
148
  "types": "./dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts",
143
149
  "bun": "./dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js",
@@ -474,6 +480,12 @@
474
480
  "node": "./dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js",
475
481
  "default": "./dist/components/docs/integrations/IntegrationsElevenLabsPage.js"
476
482
  },
483
+ "./components/docs/integrations/IntegrationsGithubPage": {
484
+ "types": "./dist/components/docs/integrations/IntegrationsGithubPage.d.ts",
485
+ "bun": "./dist/components/docs/integrations/IntegrationsGithubPage.js",
486
+ "node": "./dist/node/components/docs/integrations/IntegrationsGithubPage.js",
487
+ "default": "./dist/components/docs/integrations/IntegrationsGithubPage.js"
488
+ },
477
489
  "./components/docs/integrations/IntegrationsGmailPage": {
478
490
  "types": "./dist/components/docs/integrations/IntegrationsGmailPage.d.ts",
479
491
  "bun": "./dist/components/docs/integrations/IntegrationsGmailPage.js",
@@ -486,6 +498,18 @@
486
498
  "node": "./dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js",
487
499
  "default": "./dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js"
488
500
  },
501
+ "./components/docs/integrations/IntegrationsHealthRoutingPage": {
502
+ "types": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts",
503
+ "bun": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js",
504
+ "node": "./dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js",
505
+ "default": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js"
506
+ },
507
+ "./components/docs/integrations/IntegrationsMistralPage": {
508
+ "types": "./dist/components/docs/integrations/IntegrationsMistralPage.d.ts",
509
+ "bun": "./dist/components/docs/integrations/IntegrationsMistralPage.js",
510
+ "node": "./dist/node/components/docs/integrations/IntegrationsMistralPage.js",
511
+ "default": "./dist/components/docs/integrations/IntegrationsMistralPage.js"
512
+ },
489
513
  "./components/docs/integrations/IntegrationsOpenAIPage": {
490
514
  "types": "./dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts",
491
515
  "bun": "./dist/components/docs/integrations/IntegrationsOpenAIPage.js",
@@ -528,6 +552,12 @@
528
552
  "node": "./dist/node/components/docs/integrations/IntegrationsS3Page.js",
529
553
  "default": "./dist/components/docs/integrations/IntegrationsS3Page.js"
530
554
  },
555
+ "./components/docs/integrations/IntegrationsSlackPage": {
556
+ "types": "./dist/components/docs/integrations/IntegrationsSlackPage.d.ts",
557
+ "bun": "./dist/components/docs/integrations/IntegrationsSlackPage.js",
558
+ "node": "./dist/node/components/docs/integrations/IntegrationsSlackPage.js",
559
+ "default": "./dist/components/docs/integrations/IntegrationsSlackPage.js"
560
+ },
531
561
  "./components/docs/integrations/IntegrationsSpecModelPage": {
532
562
  "types": "./dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts",
533
563
  "bun": "./dist/components/docs/integrations/IntegrationsSpecModelPage.js",
@@ -546,6 +576,18 @@
546
576
  "node": "./dist/node/components/docs/integrations/IntegrationsTwilioPage.js",
547
577
  "default": "./dist/components/docs/integrations/IntegrationsTwilioPage.js"
548
578
  },
579
+ "./components/docs/integrations/IntegrationsWhatsappMetaPage": {
580
+ "types": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.d.ts",
581
+ "bun": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js",
582
+ "node": "./dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js",
583
+ "default": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js"
584
+ },
585
+ "./components/docs/integrations/IntegrationsWhatsappTwilioPage": {
586
+ "types": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.d.ts",
587
+ "bun": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js",
588
+ "node": "./dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js",
589
+ "default": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js"
590
+ },
549
591
  "./components/docs/intent": {
550
592
  "types": "./dist/components/docs/intent/index.d.ts",
551
593
  "bun": "./dist/components/docs/intent/index.js",
@@ -2053,17 +2095,17 @@
2053
2095
  },
2054
2096
  "dependencies": {
2055
2097
  "@apollo/client": "^4.1.6",
2056
- "@contractspec/lib.contracts-spec": "2.10.0",
2057
- "@contractspec/lib.contracts-library": "2.9.1",
2058
- "@contractspec/lib.contracts-runtime-server-mcp": "2.9.1",
2059
- "@contractspec/lib.design-system": "2.9.1",
2060
- "@contractspec/lib.example-shared-ui": "2.9.1",
2061
- "@contractspec/lib.logger": "2.9.0",
2062
- "@contractspec/lib.runtime-sandbox": "1.9.0",
2063
- "@contractspec/lib.schema": "2.9.0",
2064
- "@contractspec/lib.ui-kit-web": "2.9.0",
2065
- "@contractspec/lib.ui-link": "2.9.0",
2066
- "@contractspec/module.examples": "2.9.1",
2098
+ "@contractspec/lib.contracts-spec": "3.0.0",
2099
+ "@contractspec/lib.contracts-library": "3.0.0",
2100
+ "@contractspec/lib.contracts-runtime-server-mcp": "3.0.0",
2101
+ "@contractspec/lib.design-system": "3.0.0",
2102
+ "@contractspec/lib.example-shared-ui": "3.0.0",
2103
+ "@contractspec/lib.logger": "3.0.0",
2104
+ "@contractspec/lib.runtime-sandbox": "2.0.0",
2105
+ "@contractspec/lib.schema": "3.0.0",
2106
+ "@contractspec/lib.ui-kit-web": "3.0.0",
2107
+ "@contractspec/lib.ui-link": "3.0.0",
2108
+ "@contractspec/module.examples": "3.0.0",
2067
2109
  "@dnd-kit/core": "^6.1.0",
2068
2110
  "@dnd-kit/sortable": "^10.0.0",
2069
2111
  "@dnd-kit/utilities": "^3.2.2",
@@ -2073,21 +2115,21 @@
2073
2115
  "drizzle-orm": "^0.45.1",
2074
2116
  "framer-motion": "^12.34.3",
2075
2117
  "lucide-react": "^0.575.0",
2076
- "posthog-js": "^1.353.0",
2077
- "posthog-node": "^5.25.0",
2078
- "posthog-react-native": "^4.34.0",
2118
+ "posthog-js": "^1.356.0",
2119
+ "posthog-node": "^5.26.0",
2120
+ "posthog-react-native": "^4.36.1",
2079
2121
  "react-hook-form": "^7.71.2",
2080
2122
  "zod": "^4.3.5",
2081
- "@contractspec/lib.contracts-integrations": "2.10.0",
2082
- "@contractspec/lib.contracts-runtime-server-rest": "2.9.1",
2083
- "@contractspec/lib.contracts-runtime-server-graphql": "2.9.1"
2123
+ "@contractspec/lib.contracts-integrations": "3.0.0",
2124
+ "@contractspec/lib.contracts-runtime-server-rest": "3.0.0",
2125
+ "@contractspec/lib.contracts-runtime-server-graphql": "3.0.0"
2084
2126
  },
2085
2127
  "devDependencies": {
2086
2128
  "@types/react": "~19.2.14",
2087
- "@contractspec/tool.typescript": "2.9.0",
2129
+ "@contractspec/tool.typescript": "3.0.0",
2088
2130
  "typescript": "^5.9.3",
2089
2131
  "@types/bun": "~1.3.9",
2090
- "@contractspec/tool.bun": "2.9.0"
2132
+ "@contractspec/tool.bun": "3.0.0"
2091
2133
  },
2092
2134
  "publishConfig": {
2093
2135
  "access": "public",
@@ -2213,6 +2255,12 @@
2213
2255
  "node": "./dist/node/components/docs/architecture/ArchitectureAppConfigPage.js",
2214
2256
  "default": "./dist/components/docs/architecture/ArchitectureAppConfigPage.js"
2215
2257
  },
2258
+ "./components/docs/architecture/ArchitectureControlPlanePage": {
2259
+ "types": "./dist/components/docs/architecture/ArchitectureControlPlanePage.d.ts",
2260
+ "bun": "./dist/components/docs/architecture/ArchitectureControlPlanePage.js",
2261
+ "node": "./dist/node/components/docs/architecture/ArchitectureControlPlanePage.js",
2262
+ "default": "./dist/components/docs/architecture/ArchitectureControlPlanePage.js"
2263
+ },
2216
2264
  "./components/docs/architecture/ArchitectureIntegrationBindingPage": {
2217
2265
  "types": "./dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts",
2218
2266
  "bun": "./dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js",
@@ -2549,6 +2597,12 @@
2549
2597
  "node": "./dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js",
2550
2598
  "default": "./dist/components/docs/integrations/IntegrationsElevenLabsPage.js"
2551
2599
  },
2600
+ "./components/docs/integrations/IntegrationsGithubPage": {
2601
+ "types": "./dist/components/docs/integrations/IntegrationsGithubPage.d.ts",
2602
+ "bun": "./dist/components/docs/integrations/IntegrationsGithubPage.js",
2603
+ "node": "./dist/node/components/docs/integrations/IntegrationsGithubPage.js",
2604
+ "default": "./dist/components/docs/integrations/IntegrationsGithubPage.js"
2605
+ },
2552
2606
  "./components/docs/integrations/IntegrationsGmailPage": {
2553
2607
  "types": "./dist/components/docs/integrations/IntegrationsGmailPage.d.ts",
2554
2608
  "bun": "./dist/components/docs/integrations/IntegrationsGmailPage.js",
@@ -2561,6 +2615,18 @@
2561
2615
  "node": "./dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js",
2562
2616
  "default": "./dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js"
2563
2617
  },
2618
+ "./components/docs/integrations/IntegrationsHealthRoutingPage": {
2619
+ "types": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts",
2620
+ "bun": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js",
2621
+ "node": "./dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js",
2622
+ "default": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js"
2623
+ },
2624
+ "./components/docs/integrations/IntegrationsMistralPage": {
2625
+ "types": "./dist/components/docs/integrations/IntegrationsMistralPage.d.ts",
2626
+ "bun": "./dist/components/docs/integrations/IntegrationsMistralPage.js",
2627
+ "node": "./dist/node/components/docs/integrations/IntegrationsMistralPage.js",
2628
+ "default": "./dist/components/docs/integrations/IntegrationsMistralPage.js"
2629
+ },
2564
2630
  "./components/docs/integrations/IntegrationsOpenAIPage": {
2565
2631
  "types": "./dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts",
2566
2632
  "bun": "./dist/components/docs/integrations/IntegrationsOpenAIPage.js",
@@ -2603,6 +2669,12 @@
2603
2669
  "node": "./dist/node/components/docs/integrations/IntegrationsS3Page.js",
2604
2670
  "default": "./dist/components/docs/integrations/IntegrationsS3Page.js"
2605
2671
  },
2672
+ "./components/docs/integrations/IntegrationsSlackPage": {
2673
+ "types": "./dist/components/docs/integrations/IntegrationsSlackPage.d.ts",
2674
+ "bun": "./dist/components/docs/integrations/IntegrationsSlackPage.js",
2675
+ "node": "./dist/node/components/docs/integrations/IntegrationsSlackPage.js",
2676
+ "default": "./dist/components/docs/integrations/IntegrationsSlackPage.js"
2677
+ },
2606
2678
  "./components/docs/integrations/IntegrationsSpecModelPage": {
2607
2679
  "types": "./dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts",
2608
2680
  "bun": "./dist/components/docs/integrations/IntegrationsSpecModelPage.js",
@@ -2621,6 +2693,18 @@
2621
2693
  "node": "./dist/node/components/docs/integrations/IntegrationsTwilioPage.js",
2622
2694
  "default": "./dist/components/docs/integrations/IntegrationsTwilioPage.js"
2623
2695
  },
2696
+ "./components/docs/integrations/IntegrationsWhatsappMetaPage": {
2697
+ "types": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.d.ts",
2698
+ "bun": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js",
2699
+ "node": "./dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js",
2700
+ "default": "./dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js"
2701
+ },
2702
+ "./components/docs/integrations/IntegrationsWhatsappTwilioPage": {
2703
+ "types": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.d.ts",
2704
+ "bun": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js",
2705
+ "node": "./dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js",
2706
+ "default": "./dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js"
2707
+ },
2624
2708
  "./components/docs/intent": {
2625
2709
  "types": "./dist/components/docs/intent/index.d.ts",
2626
2710
  "bun": "./dist/components/docs/intent/index.js",
@@ -195,7 +195,8 @@ bun contractspec build src/contracts/mySpec.ts`}
195
195
  },
196
196
  {
197
197
  title: 'Ecosystem',
198
- description: 'Plugin API, templates, and integrations',
198
+ description:
199
+ 'Cursor marketplace plugins, templates, manifest, and integrations',
199
200
  href: '/docs/ecosystem/plugins',
200
201
  },
201
202
  {
@@ -0,0 +1,136 @@
1
+ import { CodeBlock } from '@contractspec/lib.design-system';
2
+ import Link from '@contractspec/lib.ui-link';
3
+ import { ChevronRight } from 'lucide-react';
4
+
5
+ export function ArchitectureControlPlanePage() {
6
+ return (
7
+ <div className="space-y-8">
8
+ <div className="space-y-4">
9
+ <h1 className="text-4xl font-bold">Control Plane Runtime</h1>
10
+ <p className="text-muted-foreground">
11
+ The control plane is the governance layer for agentic execution. It
12
+ turns incoming intent into deterministic plans, enforces risk policy
13
+ before side effects, and records replayable traces for audits.
14
+ </p>
15
+ </div>
16
+
17
+ <div className="space-y-4">
18
+ <h2 className="text-2xl font-bold">Canonical execution loop</h2>
19
+ <ol className="text-muted-foreground list-inside list-decimal space-y-2">
20
+ <li>Accept intent and create execution identity + trace context.</li>
21
+ <li>Compile intent into a typed, deterministic plan DAG.</li>
22
+ <li>Verify plan against policy and risk rules.</li>
23
+ <li>Route into autonomous or assist mode based on verdict.</li>
24
+ <li>Execute steps with idempotent keys and explicit stage events.</li>
25
+ <li>Persist outcomes for replay, audits, and operator visibility.</li>
26
+ </ol>
27
+ </div>
28
+
29
+ <div className="space-y-4">
30
+ <h2 className="text-2xl font-bold">Contract surfaces (v1 baseline)</h2>
31
+ <p className="text-muted-foreground">
32
+ The runtime is contract-first. Commands, queries, events, and
33
+ capabilities are explicit and versioned under
34
+ <code> @contractspec/lib.contracts-spec</code>.
35
+ </p>
36
+ <CodeBlock
37
+ language="text"
38
+ code={`Commands
39
+ - controlPlane.intent.submit
40
+ - controlPlane.plan.compile
41
+ - controlPlane.plan.verify
42
+ - controlPlane.execution.start
43
+ - controlPlane.execution.approve
44
+ - controlPlane.execution.reject
45
+ - controlPlane.execution.cancel
46
+ - controlPlane.skill.install
47
+ - controlPlane.skill.disable
48
+
49
+ Queries
50
+ - controlPlane.execution.get
51
+ - controlPlane.execution.list
52
+ - controlPlane.trace.get
53
+ - controlPlane.policy.explain
54
+ - controlPlane.skill.list
55
+ - controlPlane.skill.verify
56
+
57
+ Events
58
+ - controlPlane.intent.received
59
+ - controlPlane.plan.compiled
60
+ - controlPlane.plan.rejected
61
+ - controlPlane.execution.step.started
62
+ - controlPlane.execution.step.blocked
63
+ - controlPlane.execution.step.completed
64
+ - controlPlane.execution.completed
65
+ - controlPlane.execution.failed
66
+ - controlPlane.skill.installed
67
+ - controlPlane.skill.rejected
68
+
69
+ Capabilities
70
+ - control-plane.core
71
+ - control-plane.approval
72
+ - control-plane.audit
73
+ - control-plane.skill-registry
74
+ - control-plane.channel-runtime`}
75
+ />
76
+ </div>
77
+
78
+ <div className="space-y-4">
79
+ <h2 className="text-2xl font-bold">Policy and safety posture</h2>
80
+ <ul className="text-muted-foreground list-inside list-disc space-y-2">
81
+ <li>
82
+ No side-effect action executes unless it comes from a compiled plan.
83
+ </li>
84
+ <li>High-risk actions are blocked from autonomous mode in v1.</li>
85
+ <li>
86
+ Approval commands provide explicit human-in-the-loop transitions.
87
+ </li>
88
+ <li>
89
+ Skill installation is modeled as governance-controlled operations.
90
+ </li>
91
+ <li>
92
+ Trace queries expose policy rationale and step outcomes for replay.
93
+ </li>
94
+ </ul>
95
+ </div>
96
+
97
+ <div className="space-y-4">
98
+ <h2 className="text-2xl font-bold">Implementation map</h2>
99
+ <CodeBlock
100
+ language="text"
101
+ code={`packages/libs/contracts-spec/src/control-plane/
102
+ commands/
103
+ queries/
104
+ events/
105
+ capabilities/
106
+ contracts.ts
107
+ contracts.test.ts
108
+
109
+ packages/apps/web-landing/src/app/docs/architecture/control-plane/page.tsx
110
+ implementation_plan_controle_plane.md`}
111
+ />
112
+ </div>
113
+
114
+ <div className="space-y-4">
115
+ <h2 className="text-2xl font-bold">What comes next</h2>
116
+ <p className="text-muted-foreground">
117
+ WS1 delivers the contract fabric. Next increments add planner/executor
118
+ split, policy escalation, capability-bound authorization, signed skill
119
+ compatibility checks, and full replay tooling.
120
+ </p>
121
+ </div>
122
+
123
+ <div className="flex items-center gap-4 pt-4">
124
+ <Link
125
+ href="/docs/architecture/integration-binding"
126
+ className="btn-ghost"
127
+ >
128
+ Previous: Integration Binding
129
+ </Link>
130
+ <Link href="/docs/safety/auditing" className="btn-primary">
131
+ Audit Logs <ChevronRight size={16} />
132
+ </Link>
133
+ </div>
134
+ </div>
135
+ );
136
+ }
@@ -16,7 +16,7 @@ export function ArchitectureOverviewPage() {
16
16
  ContractSpec's architecture is built on a foundation of typed
17
17
  specifications served by runtime adapters. This section covers the
18
18
  core architectural concepts: app configuration, integration binding,
19
- and knowledge management.
19
+ control-plane governance, and knowledge management.
20
20
  </p>
21
21
  </div>
22
22
 
@@ -146,6 +146,15 @@ export function ArchitectureOverviewPage() {
146
146
  <strong>Policy Decision Point (PDP)</strong> - Enforces policies
147
147
  on every operation
148
148
  </li>
149
+ <li>
150
+ <Link
151
+ href="/docs/architecture/control-plane"
152
+ className="text-violet-400 hover:text-violet-300"
153
+ >
154
+ Control Plane Runtime
155
+ </Link>{' '}
156
+ - Deterministic intent to plan to policy to execution loop
157
+ </li>
149
158
  <li>
150
159
  <strong>Presentation Runtime</strong> - React and React Native
151
160
  renderers
@@ -256,6 +265,9 @@ export function ArchitectureOverviewPage() {
256
265
  <Link href="/docs/architecture/app-config" className="btn-primary">
257
266
  App Configuration <ChevronRight size={16} />
258
267
  </Link>
268
+ <Link href="/docs/architecture/control-plane" className="btn-ghost">
269
+ Control Plane Runtime
270
+ </Link>
259
271
  <Link href="/docs/integrations" className="btn-ghost">
260
272
  Integrations
261
273
  </Link>
@@ -3,3 +3,4 @@ export { ArchitectureAppConfigPage } from './ArchitectureAppConfigPage';
3
3
  export { ArchitectureMultiTenancyPage } from './ArchitectureMultiTenancyPage';
4
4
  export { ArchitectureIntegrationBindingPage } from './ArchitectureIntegrationBindingPage';
5
5
  export { ArchitectureKnowledgeBindingPage } from './ArchitectureKnowledgeBindingPage';
6
+ export { ArchitectureControlPlanePage } from './ArchitectureControlPlanePage';
@@ -34,7 +34,8 @@ bun add -D @contractspec/lib.plugin.example-generator`}
34
34
  <ul className="text-muted-foreground space-y-2 text-sm">
35
35
  <li>Payments: Stripe</li>
36
36
  <li>Email: Postmark, Gmail</li>
37
- <li>Voice: ElevenLabs</li>
37
+ <li>AI: OpenAI, Mistral</li>
38
+ <li>Voice: ElevenLabs, Mistral</li>
38
39
  <li>Vector DB: Qdrant</li>
39
40
  <li>Storage: GCS</li>
40
41
  </ul>
@@ -45,10 +46,10 @@ bun add -D @contractspec/lib.plugin.example-generator`}
45
46
 
46
47
  <div className="flex items-center gap-4 pt-4">
47
48
  <Link href="/docs/ecosystem/registry" className="btn-primary">
48
- Registry resolution <ChevronRight size={16} />
49
+ Marketplace manifest <ChevronRight size={16} />
49
50
  </Link>
50
51
  <Link href="/docs/ecosystem/templates" className="btn-ghost">
51
- Plugin templates
52
+ Authoring templates
52
53
  </Link>
53
54
  </div>
54
55
  </div>
@@ -6,128 +6,109 @@ export function EcosystemPluginsPage() {
6
6
  return (
7
7
  <div className="space-y-8">
8
8
  <div className="space-y-3">
9
- <h1 className="text-4xl font-bold">Plugin API</h1>
9
+ <h1 className="text-4xl font-bold">Cursor marketplace plugins</h1>
10
10
  <p className="text-muted-foreground text-lg">
11
- Extend ContractSpec with generators, validators, adapters, formatters,
12
- and registry resolvers.
11
+ ContractSpec ships a focused Cursor marketplace catalog for the
12
+ product and key libraries.
13
13
  </p>
14
14
  </div>
15
15
 
16
16
  <div className="card-subtle space-y-4 p-6">
17
- <h2 className="text-2xl font-bold">Core capabilities</h2>
17
+ <h2 className="text-2xl font-bold">Catalog at a glance</h2>
18
18
  <ul className="text-muted-foreground space-y-2 text-sm">
19
- <li>Generators for code, docs, and schemas.</li>
20
- <li>Validators for policy checks and compliance gates.</li>
21
- <li>Adapters for framework and runtime integration.</li>
22
- <li>Formatters and diff renderers for deterministic output.</li>
23
- <li>Registry resolvers for local and remote plugin discovery.</li>
19
+ <li>
20
+ <code>contractspec</code> - Product-level workflow and release
21
+ guardrails.
22
+ </li>
23
+ <li>
24
+ <code>contractspec-contracts-spec</code> -
25
+ <code>@contractspec/lib.contracts-spec</code> governance.
26
+ </li>
27
+ <li>
28
+ <code>contractspec-contracts-integrations</code> -
29
+ <code>@contractspec/lib.contracts-integrations</code> governance.
30
+ </li>
31
+ <li>
32
+ <code>contractspec-ai-agent</code> -
33
+ <code>@contractspec/lib.ai-agent</code> orchestration guardrails.
34
+ </li>
24
35
  </ul>
25
36
  </div>
26
37
 
27
38
  <div className="space-y-6">
28
39
  <div className="space-y-3">
29
- <h2 className="text-2xl font-bold">Plugin interface</h2>
40
+ <h2 className="text-2xl font-bold">Where plugin sources live</h2>
30
41
  <p className="text-muted-foreground text-sm">
31
- Define capabilities and lifecycle hooks in a single plugin
32
- entrypoint.
42
+ Marketplace plugin sources are kept in a dedicated package so they
43
+ can evolve with the monorepo safely.
33
44
  </p>
34
45
  <CodeBlock
35
- language="typescript"
36
- filename="plugin.ts"
37
- code={`import type {
38
- ContractSpecPlugin,
39
- PluginContext,
40
- GeneratorCapability,
41
- } from "@contractspec/lib.plugins";
42
-
43
- export const MarkdownGeneratorPlugin: ContractSpecPlugin = {
44
- meta: {
45
- id: "markdown-generator",
46
- version: "1.0.0",
47
- type: "generator",
48
- provides: ["docs"],
49
- },
50
- register(context: PluginContext) {
51
- const generator: GeneratorCapability = {
52
- id: "markdown",
53
- description: "Generate Markdown docs",
54
- generate: async (specs) => {
55
- // Implementation...
56
- },
57
- };
58
-
59
- context.generators.register(generator);
60
- },
61
- };`}
62
- />
63
- </div>
64
-
65
- <div className="space-y-3">
66
- <h2 className="text-2xl font-bold">Lifecycle hooks</h2>
67
- <p className="text-muted-foreground text-sm">
68
- Use lifecycle hooks to configure, validate, and dispose resources.
69
- </p>
70
- <CodeBlock
71
- language="typescript"
72
- filename="lifecycle.ts"
73
- code={`export const MarkdownGeneratorPlugin: ContractSpecPlugin = {
74
- meta: {
75
- id: "markdown-generator",
76
- version: "1.0.0",
77
- type: "generator",
78
- provides: ["docs"],
79
- },
80
- register(context) {
81
- // Register capabilities
82
- },
83
- configure(options, context) {
84
- // Optional: apply workspace configuration
85
- },
86
- validate(specs, context) {
87
- // Optional: add validation checks
88
- },
89
- generate(specs, context) {
90
- // Required: emit outputs
91
- },
92
- dispose() {
93
- // Optional: cleanup
94
- },
95
- };`}
46
+ language="text"
47
+ filename="catalog-layout"
48
+ code={`packages/apps-registry/cursor-marketplace/
49
+ plugins/
50
+ contractspec/
51
+ contractspec-contracts-spec/
52
+ contractspec-contracts-integrations/
53
+ contractspec-ai-agent/`}
96
54
  />
97
55
  </div>
98
56
 
99
57
  <div className="space-y-3">
100
- <h2 className="text-2xl font-bold">Register a plugin</h2>
58
+ <h2 className="text-2xl font-bold">Root marketplace manifest</h2>
101
59
  <p className="text-muted-foreground text-sm">
102
- Configure plugins in <code>.contractsrc.json</code> to load them in
103
- the CLI and runtime.
60
+ Cursor submission reads <code>.cursor-plugin/marketplace.json</code>{' '}
61
+ at repository root and resolves each plugin source path.
104
62
  </p>
105
63
  <CodeBlock
106
64
  language="json"
107
- filename=".contractsrc.json"
65
+ filename=".cursor-plugin/marketplace.json"
108
66
  code={`{
67
+ "name": "contractspec-marketplace",
109
68
  "plugins": [
110
69
  {
111
- "id": "markdown-generator",
112
- "package": "@contractspec/plugin.markdown",
113
- "capabilities": ["generator"],
114
- "options": {
115
- "outputDir": "./docs/generated",
116
- "format": "table"
117
- }
70
+ "name": "contractspec",
71
+ "source": "packages/apps-registry/cursor-marketplace/plugins/contractspec"
72
+ },
73
+ {
74
+ "name": "contractspec-contracts-spec",
75
+ "source": "packages/apps-registry/cursor-marketplace/plugins/contractspec-contracts-spec"
76
+ },
77
+ {
78
+ "name": "contractspec-contracts-integrations",
79
+ "source": "packages/apps-registry/cursor-marketplace/plugins/contractspec-contracts-integrations"
80
+ },
81
+ {
82
+ "name": "contractspec-ai-agent",
83
+ "source": "packages/apps-registry/cursor-marketplace/plugins/contractspec-ai-agent"
118
84
  }
119
85
  ]
120
86
  }`}
121
87
  />
122
88
  </div>
89
+
90
+ <div className="space-y-3">
91
+ <h2 className="text-2xl font-bold">Validation gate</h2>
92
+ <p className="text-muted-foreground text-sm">
93
+ Validate all marketplace plugins before publishing.
94
+ </p>
95
+ <CodeBlock
96
+ language="bash"
97
+ filename="validate-marketplace"
98
+ code={`bun run plugin:contractspec:validate
99
+
100
+ # Optional when offline
101
+ SKIP_PLUGIN_NETWORK_CHECK=1 bun run plugin:contractspec:validate`}
102
+ />
103
+ </div>
123
104
  </div>
124
105
 
125
106
  <div className="flex items-center gap-4 pt-4">
126
107
  <Link href="/docs/ecosystem/templates" className="btn-primary">
127
- Plugin templates <ChevronRight size={16} />
108
+ Author a plugin <ChevronRight size={16} />
128
109
  </Link>
129
- <Link href="/docs/ecosystem/integrations" className="btn-ghost">
130
- Integrations
110
+ <Link href="/docs/ecosystem/registry" className="btn-ghost">
111
+ Manifest details
131
112
  </Link>
132
113
  </div>
133
114
  </div>