@contractspec/bundle.library 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.turbo/turbo-build.log +47 -47
  2. package/CHANGELOG.md +16 -0
  3. package/dist/components/docs/DocsIndexPage.js +3 -3
  4. package/dist/components/docs/ecosystem/TemplatesPage.js +6 -6
  5. package/dist/components/docs/ecosystem/index.js +6 -6
  6. package/dist/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  7. package/dist/components/docs/getting-started/index.js +6 -6
  8. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  9. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  10. package/dist/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  11. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  12. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  13. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  14. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  15. package/dist/components/docs/guides/index.js +18 -18
  16. package/dist/components/docs/index.js +162 -470
  17. package/dist/components/docs/manifesto/ManifestoPage.js +2 -2
  18. package/dist/components/docs/shared/StudioPrompt.js +4 -4
  19. package/dist/components/docs/studio/StudioBYOKPage.js +14 -68
  20. package/dist/components/docs/studio/StudioDeploymentsPage.js +14 -89
  21. package/dist/components/docs/studio/StudioGettingStartedPage.js +14 -82
  22. package/dist/components/docs/studio/StudioIntegrationsPage.js +14 -60
  23. package/dist/components/docs/studio/StudioOverviewPage.js +62 -32
  24. package/dist/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  25. package/dist/components/docs/studio/index.js +131 -439
  26. package/dist/index.js +162 -470
  27. package/dist/node/components/docs/DocsIndexPage.js +3 -3
  28. package/dist/node/components/docs/ecosystem/TemplatesPage.js +6 -6
  29. package/dist/node/components/docs/ecosystem/index.js +6 -6
  30. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  31. package/dist/node/components/docs/getting-started/index.js +6 -6
  32. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  33. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  34. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  35. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  36. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  37. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  38. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  39. package/dist/node/components/docs/guides/index.js +18 -18
  40. package/dist/node/components/docs/index.js +162 -470
  41. package/dist/node/components/docs/manifesto/ManifestoPage.js +2 -2
  42. package/dist/node/components/docs/shared/StudioPrompt.js +4 -4
  43. package/dist/node/components/docs/studio/StudioBYOKPage.js +14 -68
  44. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +14 -89
  45. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +14 -82
  46. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +14 -60
  47. package/dist/node/components/docs/studio/StudioOverviewPage.js +62 -32
  48. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  49. package/dist/node/components/docs/studio/index.js +131 -439
  50. package/dist/node/index.js +162 -470
  51. package/package.json +10 -10
  52. package/src/components/docs/DocsIndexPage.tsx +3 -3
  53. package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
  54. package/src/components/docs/getting-started/DeveloperToolsPage.tsx +6 -6
  55. package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +2 -2
  56. package/src/components/docs/guides/GuideContractTypesPage.tsx +2 -2
  57. package/src/components/docs/guides/GuideDocsPipelinePage.tsx +2 -2
  58. package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +2 -2
  59. package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +2 -2
  60. package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +2 -2
  61. package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +2 -2
  62. package/src/components/docs/manifesto/ManifestoPage.tsx +2 -2
  63. package/src/components/docs/shared/StudioPrompt.tsx +4 -4
  64. package/src/components/docs/studio/StudioBYOKPage.tsx +9 -54
  65. package/src/components/docs/studio/StudioDeploymentsPage.tsx +9 -70
  66. package/src/components/docs/studio/StudioGettingStartedPage.tsx +9 -66
  67. package/src/components/docs/studio/StudioIntegrationsPage.tsx +9 -47
  68. package/src/components/docs/studio/StudioOverviewPage.tsx +53 -41
  69. package/src/components/docs/studio/StudioVisualBuilderPage.tsx +9 -72
@@ -108,7 +108,7 @@ function DocsIndexPage() {
108
108
  }, undefined, true, undefined, this)
109
109
  }, undefined, false, undefined, this),
110
110
  /* @__PURE__ */ jsxDEV(Link, {
111
- href: "/studio",
111
+ href: "/docs/studio",
112
112
  className: "card-subtle group space-y-3 p-6 transition-colors hover:border-violet-500/50",
113
113
  children: /* @__PURE__ */ jsxDEV("div", {
114
114
  className: "flex items-start justify-between",
@@ -117,11 +117,11 @@ function DocsIndexPage() {
117
117
  children: [
118
118
  /* @__PURE__ */ jsxDEV("h3", {
119
119
  className: "text-lg font-bold transition-colors group-hover:text-violet-400",
120
- children: "Studio (managed)"
120
+ children: "Studio"
121
121
  }, undefined, false, undefined, this),
122
122
  /* @__PURE__ */ jsxDEV("p", {
123
123
  className: "text-muted-foreground mt-1 text-sm",
124
- children: "Visual builder, deployments, and team collaboration."
124
+ children: "AI-powered product decision engine for spec-first teams."
125
125
  }, undefined, false, undefined, this)
126
126
  ]
127
127
  }, undefined, true, undefined, this),
@@ -5314,10 +5314,10 @@ export const PrivateRegistryResolver: RegistryResolverPlugin = {
5314
5314
  import Link15 from "@contractspec/lib.ui-link";
5315
5315
  import { jsxDEV as jsxDEV22 } from "react/jsx-dev-runtime";
5316
5316
  function StudioPrompt({
5317
- title = "Need managed policy gates and approvals?",
5318
- body = "ContractSpec Studio adds policy gates, remote registry workflows, and audit trails when you are ready to scale adoption.",
5319
- ctaLabel = "Join Studio waitlist",
5320
- href = "/contact#waitlist"
5317
+ title = "Want to turn product signals into spec-first deliverables?",
5318
+ body = "ContractSpec Studio ingests evidence from meetings, support, analytics, docs, and code, then compiles decisions into spec diffs and task packs.",
5319
+ ctaLabel = "Try Studio",
5320
+ href = "https://app.contractspec.studio"
5321
5321
  }) {
5322
5322
  return /* @__PURE__ */ jsxDEV22("div", {
5323
5323
  className: "card-subtle space-y-3 p-6",
@@ -5427,8 +5427,8 @@ bun add @contractspec/integration.markdown-generator`
5427
5427
  ]
5428
5428
  }, undefined, true, undefined, this),
5429
5429
  /* @__PURE__ */ jsxDEV23(StudioPrompt, {
5430
- title: "Need managed plugin distribution?",
5431
- body: "Studio can host private plugin registries, approvals, and policy gates for teams."
5430
+ title: "Need evidence-backed template iteration?",
5431
+ body: "Studio helps teams prioritize template changes from real product signals and export implementation-ready task packs."
5432
5432
  }, undefined, false, undefined, this),
5433
5433
  /* @__PURE__ */ jsxDEV23("div", {
5434
5434
  className: "flex items-center gap-4 pt-4",
@@ -6383,14 +6383,14 @@ function DeveloperToolsPage() {
6383
6383
  },
6384
6384
  {
6385
6385
  name: "ContractSpec Studio",
6386
- href: "https://www.contractspec.studio",
6387
- description: "Visual builder, lifecycle management, and deployment orchestration.",
6386
+ href: "https://app.contractspec.studio",
6387
+ description: "AI-powered product decision engine that turns product signals into spec-first deliverables.",
6388
6388
  icon: Layers,
6389
- status: "coming-soon",
6389
+ status: "available",
6390
6390
  highlights: [
6391
- "Visual spec editor",
6392
- "Deployment pipelines",
6393
- "Analytics dashboard"
6391
+ "Evidence-to-decision loop",
6392
+ "Compiled spec diffs and task packs",
6393
+ "Exports to Linear, Jira, Notion, and GitHub"
6394
6394
  ]
6395
6395
  },
6396
6396
  {
@@ -7962,8 +7962,8 @@ bun run validate`
7962
7962
  ]
7963
7963
  }, undefined, true, undefined, this),
7964
7964
  /* @__PURE__ */ jsxDEV34(StudioPrompt, {
7965
- title: "Need managed CI policy gates?",
7966
- body: "Studio adds policy approvals, drift dashboards, and audit trails after CI checks pass."
7965
+ title: "Need continuous checks tied to outcomes?",
7966
+ body: "Studio closes the loop with post-change verification and learning dividends that improve future decisions."
7967
7967
  }, undefined, false, undefined, this)
7968
7968
  ]
7969
7969
  }, undefined, true, undefined, this),
@@ -8669,8 +8669,8 @@ capabilityRegistry.register(UserManagementCapability);`
8669
8669
  ]
8670
8670
  }, undefined, true, undefined, this),
8671
8671
  /* @__PURE__ */ jsxDEV35(StudioPrompt, {
8672
- title: "Want visual contract design?",
8673
- body: "Studio provides a visual editor for creating and managing contracts with team collaboration and version control."
8672
+ title: "Need to decide which contract should change next?",
8673
+ body: "Studio uses evidence and focus constraints to generate decision briefs, patch intents, and execution-ready task packs."
8674
8674
  }, undefined, false, undefined, this)
8675
8675
  ]
8676
8676
  }, undefined, true, undefined, this),
@@ -8863,8 +8863,8 @@ export default async function Page({ params }: { params: { slug?: string[] } })
8863
8863
  ]
8864
8864
  }, undefined, true, undefined, this),
8865
8865
  /* @__PURE__ */ jsxDEV36(StudioPrompt, {
8866
- title: "Need hosted docs releases?",
8867
- body: "Studio can publish versioned docs bundles with approvals and audit trails."
8866
+ title: "Need decision-to-export automation?",
8867
+ body: "Studio exports evidence-backed spec changes and task packs to Linear, Jira, Notion, and GitHub."
8868
8868
  }, undefined, false, undefined, this)
8869
8869
  ]
8870
8870
  }, undefined, true, undefined, this),
@@ -9043,8 +9043,8 @@ contractspec openapi export --registry ./src/contracts/registry.ts --out ./gener
9043
9043
  ]
9044
9044
  }, undefined, true, undefined, this),
9045
9045
  /* @__PURE__ */ jsxDEV37(StudioPrompt, {
9046
- title: "Want managed schema releases?",
9047
- body: "Studio can publish OpenAPI, SDKs, and release notes automatically with approvals."
9046
+ title: "Want exports tied to product decisions?",
9047
+ body: "Studio compiles approved changes into deliverables and pushes them to your execution stack with full evidence context."
9048
9048
  }, undefined, false, undefined, this)
9049
9049
  ]
9050
9050
  }, undefined, true, undefined, this),
@@ -9890,8 +9890,8 @@ installOp(registry, CreateUserCommand, async (input) => {
9890
9890
  ]
9891
9891
  }, undefined, true, undefined, this),
9892
9892
  /* @__PURE__ */ jsxDEV38(StudioPrompt, {
9893
- title: "Want automated contract evolution?",
9894
- body: "Studio monitors your codebase and suggests contract updates when your API changes, keeping specs and code in sync."
9893
+ title: "Want evidence-driven migration priorities?",
9894
+ body: "Studio clusters product signals into scored patterns, then proposes spec-first change cards for the highest-impact areas."
9895
9895
  }, undefined, false, undefined, this)
9896
9896
  ]
9897
9897
  }, undefined, true, undefined, this),
@@ -10177,8 +10177,8 @@ contractspec examples validate --repo-root .`
10177
10177
  ]
10178
10178
  }, undefined, true, undefined, this),
10179
10179
  /* @__PURE__ */ jsxDEV39(StudioPrompt, {
10180
- title: "Need team approvals for new endpoints?",
10181
- body: "Studio adds review gates, shared registries, and audit trails after you ship your first endpoint."
10180
+ title: "Want real product evidence behind endpoint changes?",
10181
+ body: "Studio correlates meetings, support, analytics, and code signals before compiling endpoint decisions into spec diffs."
10182
10182
  }, undefined, false, undefined, this)
10183
10183
  ]
10184
10184
  }, undefined, true, undefined, this),
@@ -10401,8 +10401,8 @@ bun run validate`
10401
10401
  ]
10402
10402
  }, undefined, true, undefined, this),
10403
10403
  /* @__PURE__ */ jsxDEV40(StudioPrompt, {
10404
- title: "Need shared validation policies?",
10405
- body: "Studio lets teams enforce validation policies and review changes before they ship."
10404
+ title: "Need validation tied to real outcomes?",
10405
+ body: "Studio links checks to evidence, focus decisions, and post-release verification so specs evolve with product truth."
10406
10406
  }, undefined, false, undefined, this)
10407
10407
  ]
10408
10408
  }, undefined, true, undefined, this),
@@ -27529,9 +27529,9 @@ function ManifestoPage() {
27529
27529
  children: "Install OSS Core"
27530
27530
  }, undefined, false, undefined, this),
27531
27531
  /* @__PURE__ */ jsxDEV114("a", {
27532
- href: "/contact#waitlist",
27532
+ href: "https://app.contractspec.studio",
27533
27533
  className: "btn-ghost",
27534
- children: "Join Studio Waitlist"
27534
+ children: "Try Studio"
27535
27535
  }, undefined, false, undefined, this)
27536
27536
  ]
27537
27537
  }, undefined, true, undefined, this)
@@ -27544,529 +27544,221 @@ function ManifestoPage() {
27544
27544
  // src/components/docs/studio/StudioOverviewPage.tsx
27545
27545
  import Link96 from "@contractspec/lib.ui-link";
27546
27546
  import { jsxDEV as jsxDEV115 } from "react/jsx-dev-runtime";
27547
- var sections = [
27547
+ var coreLoop = [
27548
+ {
27549
+ title: "Evidence",
27550
+ body: "Ingest product signals from meetings, support, analytics, code reviews, docs, and Slack."
27551
+ },
27548
27552
  {
27549
- title: "1. Getting started",
27550
- body: "Provision your Studio workspace, create a project, and run the first deployment.",
27551
- href: "/docs/studio/getting-started"
27553
+ title: "Correlation",
27554
+ body: "Cluster signals into scored patterns with hybrid heuristics plus AI signature extraction."
27552
27555
  },
27553
27556
  {
27554
- title: "2. Visual builder",
27555
- body: "Learn the canvas controls, component palette, and spec validation workflow.",
27556
- href: "/docs/studio/visual-builder"
27557
+ title: "Decision",
27558
+ body: "Create timeboxed focus zones and evidence-backed briefs with citation chains."
27557
27559
  },
27558
27560
  {
27559
- title: "3. Deployments",
27560
- body: "Switch between shared and dedicated environments, monitor health, and roll back safely.",
27561
- href: "/docs/studio/deployments"
27561
+ title: "Change",
27562
+ body: "Compile patch intents into spec diffs, deterministic impact reports, and task packs."
27562
27563
  },
27563
27564
  {
27564
- title: "4. BYOK security",
27565
- body: "Configure your vault, rotate keys, and audit credential access.",
27566
- href: "/docs/studio/byok"
27565
+ title: "Export",
27566
+ body: "Push deliverables to Linear, Jira, Notion, and GitHub with full decision context."
27567
27567
  },
27568
27568
  {
27569
- title: "5. Integration hub",
27570
- body: "Connect third-party providers, sync data, and index knowledge sources.",
27571
- href: "/docs/studio/integrations"
27569
+ title: "Check + Autopilot",
27570
+ body: "Verify outcomes, capture learning dividends, and automate safely with policy gates."
27572
27571
  }
27573
27572
  ];
27574
27573
  function StudioOverviewPage() {
27575
27574
  return /* @__PURE__ */ jsxDEV115("main", {
27576
- className: "space-y-16 py-16",
27575
+ className: "space-y-12 py-16",
27577
27576
  children: [
27578
27577
  /* @__PURE__ */ jsxDEV115("section", {
27579
- className: "section-padding",
27578
+ className: "section-padding space-y-4",
27580
27579
  children: [
27581
27580
  /* @__PURE__ */ jsxDEV115("p", {
27582
27581
  className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
27583
- children: "Studio docs"
27582
+ children: "ContractSpec Studio"
27584
27583
  }, undefined, false, undefined, this),
27585
27584
  /* @__PURE__ */ jsxDEV115("h1", {
27586
- className: "mt-4 text-4xl font-bold",
27587
- children: "Everything you need to run Studio."
27585
+ className: "text-4xl font-bold md:text-5xl",
27586
+ children: "Compiler for product truth"
27588
27587
  }, undefined, false, undefined, this),
27589
27588
  /* @__PURE__ */ jsxDEV115("p", {
27590
- className: "text-muted-foreground mt-4 max-w-3xl text-lg",
27591
- children: "ContractSpec Studio pairs a visual builder with managed infrastructure. These guides keep teams aligned—especially when engineers and operators share the same console."
27592
- }, undefined, false, undefined, this)
27593
- ]
27594
- }, undefined, true, undefined, this),
27595
- /* @__PURE__ */ jsxDEV115("section", {
27596
- className: "section-padding grid gap-4",
27597
- children: sections.map((section) => /* @__PURE__ */ jsxDEV115(Link96, {
27598
- href: section.href,
27599
- className: "card-subtle group space-y-2 p-6 transition hover:border-violet-500/40",
27600
- children: [
27601
- /* @__PURE__ */ jsxDEV115("h2", {
27602
- className: "text-xl font-semibold group-hover:text-violet-400",
27603
- children: section.title
27604
- }, undefined, false, undefined, this),
27605
- /* @__PURE__ */ jsxDEV115("p", {
27606
- className: "text-muted-foreground text-sm",
27607
- children: section.body
27608
- }, undefined, false, undefined, this)
27609
- ]
27610
- }, section.href, true, undefined, this))
27611
- }, undefined, false, undefined, this)
27612
- ]
27613
- }, undefined, true, undefined, this);
27614
- }
27615
-
27616
- // src/components/docs/studio/StudioGettingStartedPage.tsx
27617
- import { jsxDEV as jsxDEV116 } from "react/jsx-dev-runtime";
27618
- var steps = [
27619
- {
27620
- title: "1. Create a Studio workspace",
27621
- body: "Sign in, pick “Studio managed” as product, and invite teammates. We provision the workspace plus default shared environments."
27622
- },
27623
- {
27624
- title: "2. Add your first project",
27625
- body: "Click “New project”, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later."
27626
- },
27627
- {
27628
- title: "3. Author a spec",
27629
- body: "Use the Visual Builder or Spec Editor. Pick “Capability” as type and describe the operation (e.g., capture donation)."
27630
- },
27631
- {
27632
- title: "4. Deploy to shared infra",
27633
- body: "Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically."
27634
- },
27635
- {
27636
- title: "5. Wire integrations",
27637
- body: "From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers."
27638
- }
27639
- ];
27640
- function StudioGettingStartedPage() {
27641
- return /* @__PURE__ */ jsxDEV116("main", {
27642
- className: "space-y-12 py-12",
27643
- children: [
27644
- /* @__PURE__ */ jsxDEV116("header", {
27645
- className: "space-y-3",
27646
- children: [
27647
- /* @__PURE__ */ jsxDEV116("p", {
27648
- className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
27649
- children: "Getting started"
27650
- }, undefined, false, undefined, this),
27651
- /* @__PURE__ */ jsxDEV116("h1", {
27652
- className: "text-4xl font-bold",
27653
- children: "Launch your first Studio project"
27654
- }, undefined, false, undefined, this),
27655
- /* @__PURE__ */ jsxDEV116("p", {
27656
27589
  className: "text-muted-foreground max-w-3xl text-lg",
27657
- children: "This short guide takes you from workspace creation to the first deployment. Every step is mobile-friendly and safe to undo."
27590
+ children: "ContractSpec Studio is the AI-powered product decision engine built on top of ContractSpec. It turns product signals into spec-first deliverables through a deterministic loop:"
27591
+ }, undefined, false, undefined, this),
27592
+ /* @__PURE__ */ jsxDEV115("p", {
27593
+ className: "text-muted-foreground font-mono text-sm",
27594
+ children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
27658
27595
  }, undefined, false, undefined, this)
27659
27596
  ]
27660
27597
  }, undefined, true, undefined, this),
27661
- /* @__PURE__ */ jsxDEV116("section", {
27662
- className: "grid gap-4",
27663
- children: steps.map((step) => /* @__PURE__ */ jsxDEV116("article", {
27598
+ /* @__PURE__ */ jsxDEV115("section", {
27599
+ className: "section-padding grid gap-4 md:grid-cols-2",
27600
+ children: coreLoop.map((step) => /* @__PURE__ */ jsxDEV115("article", {
27664
27601
  className: "card-subtle space-y-2 p-6",
27665
27602
  children: [
27666
- /* @__PURE__ */ jsxDEV116("h2", {
27603
+ /* @__PURE__ */ jsxDEV115("h2", {
27667
27604
  className: "text-xl font-semibold",
27668
27605
  children: step.title
27669
27606
  }, undefined, false, undefined, this),
27670
- /* @__PURE__ */ jsxDEV116("p", {
27607
+ /* @__PURE__ */ jsxDEV115("p", {
27671
27608
  className: "text-muted-foreground text-sm",
27672
27609
  children: step.body
27673
27610
  }, undefined, false, undefined, this)
27674
27611
  ]
27675
27612
  }, step.title, true, undefined, this))
27676
27613
  }, undefined, false, undefined, this),
27677
- /* @__PURE__ */ jsxDEV116("section", {
27678
- className: "space-y-4",
27614
+ /* @__PURE__ */ jsxDEV115("section", {
27615
+ className: "section-padding card-subtle space-y-4 p-6",
27679
27616
  children: [
27680
- /* @__PURE__ */ jsxDEV116("h2", {
27617
+ /* @__PURE__ */ jsxDEV115("h2", {
27681
27618
  className: "text-2xl font-semibold",
27682
- children: "CLI helper (optional)"
27619
+ children: "Use Studio now"
27683
27620
  }, undefined, false, undefined, this),
27684
- /* @__PURE__ */ jsxDEV116("p", {
27621
+ /* @__PURE__ */ jsxDEV115("p", {
27685
27622
  className: "text-muted-foreground text-sm",
27686
- children: "Prefer automation? Use the CLI to pull specs and push overlays."
27623
+ children: "Studio is live and runs the same spec-first grammar as the OSS compiler. Keep your contracts, keep your code, and add a full decision-to-change workflow on top."
27687
27624
  }, undefined, false, undefined, this),
27688
- /* @__PURE__ */ jsxDEV116("pre", {
27689
- className: "bg-muted/40 border-border overflow-auto rounded-xl border p-4 text-left font-mono text-sm",
27690
- children: `# Authenticate
27691
- cs login
27692
-
27693
- # List projects
27694
- cs studio projects list
27695
-
27696
- # Pull specs locally
27697
- cs studio specs pull <project-id>
27698
-
27699
- # Push after editing
27700
- cs studio specs push <project-id>`
27701
- }, undefined, false, undefined, this)
27625
+ /* @__PURE__ */ jsxDEV115("div", {
27626
+ className: "flex flex-wrap gap-3",
27627
+ children: [
27628
+ /* @__PURE__ */ jsxDEV115(Link96, {
27629
+ href: "https://app.contractspec.studio",
27630
+ className: "btn-primary",
27631
+ children: "Try Studio"
27632
+ }, undefined, false, undefined, this),
27633
+ /* @__PURE__ */ jsxDEV115(Link96, {
27634
+ href: "https://app.contractspec.studio/docs",
27635
+ className: "btn-ghost",
27636
+ children: "Read Studio docs"
27637
+ }, undefined, false, undefined, this)
27638
+ ]
27639
+ }, undefined, true, undefined, this)
27702
27640
  ]
27703
27641
  }, undefined, true, undefined, this)
27704
27642
  ]
27705
27643
  }, undefined, true, undefined, this);
27706
27644
  }
27707
27645
 
27646
+ // src/components/docs/studio/StudioGettingStartedPage.tsx
27647
+ import Link97 from "@contractspec/lib.ui-link";
27648
+ import { jsxDEV as jsxDEV116 } from "react/jsx-dev-runtime";
27649
+ function StudioGettingStartedPage() {
27650
+ return /* @__PURE__ */ jsxDEV116("main", {
27651
+ className: "space-y-6 py-12",
27652
+ children: [
27653
+ /* @__PURE__ */ jsxDEV116("h1", {
27654
+ className: "text-3xl font-bold",
27655
+ children: "Studio docs moved"
27656
+ }, undefined, false, undefined, this),
27657
+ /* @__PURE__ */ jsxDEV116("p", {
27658
+ className: "text-muted-foreground text-sm",
27659
+ children: "The latest getting-started guide now lives in the Studio app docs."
27660
+ }, undefined, false, undefined, this),
27661
+ /* @__PURE__ */ jsxDEV116(Link97, {
27662
+ href: "https://app.contractspec.studio/docs",
27663
+ className: "btn-primary",
27664
+ children: "Open Studio docs"
27665
+ }, undefined, false, undefined, this)
27666
+ ]
27667
+ }, undefined, true, undefined, this);
27668
+ }
27669
+
27708
27670
  // src/components/docs/studio/StudioVisualBuilderPage.tsx
27709
- import Image from "next/image";
27671
+ import Link98 from "@contractspec/lib.ui-link";
27710
27672
  import { jsxDEV as jsxDEV117 } from "react/jsx-dev-runtime";
27711
- var tips = [
27712
- "Use two-finger drag on touch devices to pan the canvas.",
27713
- "Tap a component to open the spec sidebar and edit props.",
27714
- "The timeline records every change; tap a dot to roll back.",
27715
- "Validation runs automatically before deploy. Errors show inline."
27716
- ];
27717
27673
  function StudioVisualBuilderPage() {
27718
27674
  return /* @__PURE__ */ jsxDEV117("main", {
27719
- className: "space-y-12 py-12",
27675
+ className: "space-y-6 py-12",
27720
27676
  children: [
27721
- /* @__PURE__ */ jsxDEV117("header", {
27722
- className: "space-y-3",
27723
- children: [
27724
- /* @__PURE__ */ jsxDEV117("p", {
27725
- className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
27726
- children: "Visual builder"
27727
- }, undefined, false, undefined, this),
27728
- /* @__PURE__ */ jsxDEV117("h1", {
27729
- className: "text-4xl font-bold",
27730
- children: "Canvas, palette, and spec editor"
27731
- }, undefined, false, undefined, this),
27732
- /* @__PURE__ */ jsxDEV117("p", {
27733
- className: "text-muted-foreground max-w-3xl text-lg",
27734
- children: "Studio’s builder keeps designers, operators, and engineers in sync. Every action updates the underlying spec and can be undone."
27735
- }, undefined, false, undefined, this)
27736
- ]
27737
- }, undefined, true, undefined, this),
27738
- /* @__PURE__ */ jsxDEV117("section", {
27739
- className: "border-border bg-card rounded-2xl border p-6",
27740
- children: /* @__PURE__ */ jsxDEV117(Image, {
27741
- src: "/assets/images/studio/visual-builder.png",
27742
- alt: "Studio visual builder overview",
27743
- width: 1024,
27744
- height: 576,
27745
- className: "border-border rounded-xl border"
27746
- }, undefined, false, undefined, this)
27677
+ /* @__PURE__ */ jsxDEV117("h1", {
27678
+ className: "text-3xl font-bold",
27679
+ children: "Studio docs moved"
27747
27680
  }, undefined, false, undefined, this),
27748
- /* @__PURE__ */ jsxDEV117("section", {
27749
- className: "grid gap-4 md:grid-cols-2",
27750
- children: [
27751
- /* @__PURE__ */ jsxDEV117("article", {
27752
- className: "card-subtle space-y-2 p-6",
27753
- children: [
27754
- /* @__PURE__ */ jsxDEV117("h2", {
27755
- className: "text-2xl font-semibold",
27756
- children: "Canvas controls"
27757
- }, undefined, false, undefined, this),
27758
- /* @__PURE__ */ jsxDEV117("p", {
27759
- className: "text-muted-foreground text-sm",
27760
- children: "Drag to pan, scroll/ pinch to zoom. The right panel shows a tree view."
27761
- }, undefined, false, undefined, this)
27762
- ]
27763
- }, undefined, true, undefined, this),
27764
- /* @__PURE__ */ jsxDEV117("article", {
27765
- className: "card-subtle space-y-2 p-6",
27766
- children: [
27767
- /* @__PURE__ */ jsxDEV117("h2", {
27768
- className: "text-2xl font-semibold",
27769
- children: "Component palette"
27770
- }, undefined, false, undefined, this),
27771
- /* @__PURE__ */ jsxDEV117("p", {
27772
- className: "text-muted-foreground text-sm",
27773
- children: "Search by intent (“capture payment”) or category. Drag components or tap to add."
27774
- }, undefined, false, undefined, this)
27775
- ]
27776
- }, undefined, true, undefined, this),
27777
- /* @__PURE__ */ jsxDEV117("article", {
27778
- className: "card-subtle space-y-2 p-6",
27779
- children: [
27780
- /* @__PURE__ */ jsxDEV117("h2", {
27781
- className: "text-2xl font-semibold",
27782
- children: "Spec editor"
27783
- }, undefined, false, undefined, this),
27784
- /* @__PURE__ */ jsxDEV117("p", {
27785
- className: "text-muted-foreground text-sm",
27786
- children: "Toggle between visual and code views. Changes stay in sync and include diff previews."
27787
- }, undefined, false, undefined, this)
27788
- ]
27789
- }, undefined, true, undefined, this),
27790
- /* @__PURE__ */ jsxDEV117("article", {
27791
- className: "card-subtle space-y-2 p-6",
27792
- children: [
27793
- /* @__PURE__ */ jsxDEV117("h2", {
27794
- className: "text-2xl font-semibold",
27795
- children: "Deploy panel"
27796
- }, undefined, false, undefined, this),
27797
- /* @__PURE__ */ jsxDEV117("p", {
27798
- className: "text-muted-foreground text-sm",
27799
- children: "Choose environment, review validations, and deploy with one button. Rollback is one tap away."
27800
- }, undefined, false, undefined, this)
27801
- ]
27802
- }, undefined, true, undefined, this)
27803
- ]
27804
- }, undefined, true, undefined, this),
27805
- /* @__PURE__ */ jsxDEV117("section", {
27806
- className: "space-y-3",
27807
- children: [
27808
- /* @__PURE__ */ jsxDEV117("h2", {
27809
- className: "text-2xl font-semibold",
27810
- children: "Tips"
27811
- }, undefined, false, undefined, this),
27812
- /* @__PURE__ */ jsxDEV117("ul", {
27813
- className: "space-y-2 text-sm",
27814
- children: tips.map((tip) => /* @__PURE__ */ jsxDEV117("li", {
27815
- children: [
27816
- "• ",
27817
- tip
27818
- ]
27819
- }, tip, true, undefined, this))
27820
- }, undefined, false, undefined, this)
27821
- ]
27822
- }, undefined, true, undefined, this)
27681
+ /* @__PURE__ */ jsxDEV117("p", {
27682
+ className: "text-muted-foreground text-sm",
27683
+ children: "Visual builder documentation now lives in the Studio app docs."
27684
+ }, undefined, false, undefined, this),
27685
+ /* @__PURE__ */ jsxDEV117(Link98, {
27686
+ href: "https://app.contractspec.studio/docs",
27687
+ className: "btn-primary",
27688
+ children: "Open Studio docs"
27689
+ }, undefined, false, undefined, this)
27823
27690
  ]
27824
27691
  }, undefined, true, undefined, this);
27825
27692
  }
27826
27693
 
27827
27694
  // src/components/docs/studio/StudioIntegrationsPage.tsx
27695
+ import Link99 from "@contractspec/lib.ui-link";
27828
27696
  import { jsxDEV as jsxDEV118 } from "react/jsx-dev-runtime";
27829
- var flow = [
27830
- {
27831
- title: "Connect a provider",
27832
- body: "Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately."
27833
- },
27834
- {
27835
- title: "Schedule syncs",
27836
- body: "Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp."
27837
- },
27838
- {
27839
- title: "Index knowledge",
27840
- body: "Add documentation or API specs as knowledge sources. Reindex whenever files change."
27841
- }
27842
- ];
27843
27697
  function StudioIntegrationsPage() {
27844
27698
  return /* @__PURE__ */ jsxDEV118("main", {
27845
- className: "space-y-12 py-12",
27699
+ className: "space-y-6 py-12",
27846
27700
  children: [
27847
- /* @__PURE__ */ jsxDEV118("header", {
27848
- className: "space-y-3",
27849
- children: [
27850
- /* @__PURE__ */ jsxDEV118("p", {
27851
- className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
27852
- children: "Integration hub"
27853
- }, undefined, false, undefined, this),
27854
- /* @__PURE__ */ jsxDEV118("h1", {
27855
- className: "text-4xl font-bold",
27856
- children: "Unified connections with BYOK"
27857
- }, undefined, false, undefined, this),
27858
- /* @__PURE__ */ jsxDEV118("p", {
27859
- className: "text-muted-foreground max-w-3xl text-lg",
27860
- children: "Manage SaaS providers and knowledge sources without scattering secrets across tools. Studio gives you a simple card layout plus CLI automation."
27861
- }, undefined, false, undefined, this)
27862
- ]
27863
- }, undefined, true, undefined, this),
27864
- /* @__PURE__ */ jsxDEV118("section", {
27865
- className: "grid gap-4 md:grid-cols-3",
27866
- children: flow.map((step) => /* @__PURE__ */ jsxDEV118("article", {
27867
- className: "card-subtle space-y-2 p-6",
27868
- children: [
27869
- /* @__PURE__ */ jsxDEV118("h2", {
27870
- className: "text-xl font-semibold",
27871
- children: step.title
27872
- }, undefined, false, undefined, this),
27873
- /* @__PURE__ */ jsxDEV118("p", {
27874
- className: "text-muted-foreground text-sm",
27875
- children: step.body
27876
- }, undefined, false, undefined, this)
27877
- ]
27878
- }, step.title, true, undefined, this))
27701
+ /* @__PURE__ */ jsxDEV118("h1", {
27702
+ className: "text-3xl font-bold",
27703
+ children: "Studio docs moved"
27879
27704
  }, undefined, false, undefined, this),
27880
- /* @__PURE__ */ jsxDEV118("section", {
27881
- className: "space-y-2",
27882
- children: [
27883
- /* @__PURE__ */ jsxDEV118("h2", {
27884
- className: "text-2xl font-semibold",
27885
- children: "Monitoring"
27886
- }, undefined, false, undefined, this),
27887
- /* @__PURE__ */ jsxDEV118("p", {
27888
- className: "text-muted-foreground text-sm",
27889
- children: "Every integration exposes sync logs and failure alerts. Use the webhook to forward sync events to Slack or PagerDuty."
27890
- }, undefined, false, undefined, this)
27891
- ]
27892
- }, undefined, true, undefined, this)
27705
+ /* @__PURE__ */ jsxDEV118("p", {
27706
+ className: "text-muted-foreground text-sm",
27707
+ children: "Integration guides now live in the Studio app docs."
27708
+ }, undefined, false, undefined, this),
27709
+ /* @__PURE__ */ jsxDEV118(Link99, {
27710
+ href: "https://app.contractspec.studio/docs",
27711
+ className: "btn-primary",
27712
+ children: "Open Studio docs"
27713
+ }, undefined, false, undefined, this)
27893
27714
  ]
27894
27715
  }, undefined, true, undefined, this);
27895
27716
  }
27896
27717
 
27897
27718
  // src/components/docs/studio/StudioDeploymentsPage.tsx
27719
+ import Link100 from "@contractspec/lib.ui-link";
27898
27720
  import { jsxDEV as jsxDEV119 } from "react/jsx-dev-runtime";
27899
- var comparisons = [
27900
- {
27901
- label: "Shared",
27902
- points: [
27903
- "Ready in seconds",
27904
- "DEV + STAGE by default",
27905
- "Best for prototypes",
27906
- "Managed SSL"
27907
- ]
27908
- },
27909
- {
27910
- label: "Dedicated",
27911
- points: [
27912
- "Isolated clusters",
27913
- "Choose region + VPC",
27914
- "Rolling deploys",
27915
- "Custom observability sinks"
27916
- ]
27917
- }
27918
- ];
27919
- var checklist = [
27920
- "Validate specs before deploying (Studio does this automatically).",
27921
- "Tag deployments with a description so rituals have context.",
27922
- "Monitor status cards—failed deploys trigger alerts and auto rollback.",
27923
- "Use the CLI to export deployment manifests if you want infra-as-code."
27924
- ];
27925
27721
  function StudioDeploymentsPage() {
27926
27722
  return /* @__PURE__ */ jsxDEV119("main", {
27927
- className: "space-y-12 py-12",
27723
+ className: "space-y-6 py-12",
27928
27724
  children: [
27929
- /* @__PURE__ */ jsxDEV119("header", {
27930
- className: "space-y-3",
27931
- children: [
27932
- /* @__PURE__ */ jsxDEV119("p", {
27933
- className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
27934
- children: "Deployments"
27935
- }, undefined, false, undefined, this),
27936
- /* @__PURE__ */ jsxDEV119("h1", {
27937
- className: "text-4xl font-bold",
27938
- children: "Shared vs dedicated workflows"
27939
- }, undefined, false, undefined, this),
27940
- /* @__PURE__ */ jsxDEV119("p", {
27941
- className: "text-muted-foreground max-w-3xl text-lg",
27942
- children: "Studio abstracts infra, but you still stay in control. This guide explains how environments are provisioned, monitored, and rolled back."
27943
- }, undefined, false, undefined, this)
27944
- ]
27945
- }, undefined, true, undefined, this),
27946
- /* @__PURE__ */ jsxDEV119("section", {
27947
- className: "grid gap-4 md:grid-cols-2",
27948
- children: comparisons.map((option) => /* @__PURE__ */ jsxDEV119("article", {
27949
- className: "card-subtle space-y-2 p-6",
27950
- children: [
27951
- /* @__PURE__ */ jsxDEV119("h2", {
27952
- className: "text-2xl font-semibold",
27953
- children: [
27954
- option.label,
27955
- " deployments"
27956
- ]
27957
- }, undefined, true, undefined, this),
27958
- /* @__PURE__ */ jsxDEV119("ul", {
27959
- className: "space-y-1 text-sm",
27960
- children: option.points.map((point) => /* @__PURE__ */ jsxDEV119("li", {
27961
- children: [
27962
- "• ",
27963
- point
27964
- ]
27965
- }, point, true, undefined, this))
27966
- }, undefined, false, undefined, this)
27967
- ]
27968
- }, option.label, true, undefined, this))
27725
+ /* @__PURE__ */ jsxDEV119("h1", {
27726
+ className: "text-3xl font-bold",
27727
+ children: "Studio docs moved"
27969
27728
  }, undefined, false, undefined, this),
27970
- /* @__PURE__ */ jsxDEV119("section", {
27971
- className: "space-y-3",
27972
- children: [
27973
- /* @__PURE__ */ jsxDEV119("h2", {
27974
- className: "text-2xl font-semibold",
27975
- children: "Health & rollback"
27976
- }, undefined, false, undefined, this),
27977
- /* @__PURE__ */ jsxDEV119("p", {
27978
- className: "text-muted-foreground text-sm",
27979
- children: "Every deployment emits health events. If a check fails, Studio pauses traffic and offers rollback controls with diff context."
27980
- }, undefined, false, undefined, this),
27981
- /* @__PURE__ */ jsxDEV119("ul", {
27982
- className: "space-y-2 text-sm",
27983
- children: checklist.map((item) => /* @__PURE__ */ jsxDEV119("li", {
27984
- children: [
27985
- "• ",
27986
- item
27987
- ]
27988
- }, item, true, undefined, this))
27989
- }, undefined, false, undefined, this)
27990
- ]
27991
- }, undefined, true, undefined, this)
27729
+ /* @__PURE__ */ jsxDEV119("p", {
27730
+ className: "text-muted-foreground text-sm",
27731
+ children: "Deployment guidance now lives in the Studio app docs."
27732
+ }, undefined, false, undefined, this),
27733
+ /* @__PURE__ */ jsxDEV119(Link100, {
27734
+ href: "https://app.contractspec.studio/docs",
27735
+ className: "btn-primary",
27736
+ children: "Open Studio docs"
27737
+ }, undefined, false, undefined, this)
27992
27738
  ]
27993
27739
  }, undefined, true, undefined, this);
27994
27740
  }
27995
27741
 
27996
27742
  // src/components/docs/studio/StudioBYOKPage.tsx
27743
+ import Link101 from "@contractspec/lib.ui-link";
27997
27744
  import { jsxDEV as jsxDEV120 } from "react/jsx-dev-runtime";
27998
- var steps2 = [
27999
- {
28000
- title: "1. Provide vault endpoint",
28001
- body: "Enter your Vault/HSM URL and the key identifier. Studio only stores the reference."
28002
- },
28003
- {
28004
- title: "2. Verify encryption",
28005
- body: "Studio runs a test by encrypting a dummy payload and asking you to decrypt it."
28006
- },
28007
- {
28008
- title: "3. Store credentials",
28009
- body: "When integrations are connected, secrets get encrypted client side before landing in the database."
28010
- },
28011
- {
28012
- title: "4. Rotate keys",
28013
- body: "Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one."
28014
- }
28015
- ];
28016
27745
  function StudioBYOKPage() {
28017
27746
  return /* @__PURE__ */ jsxDEV120("main", {
28018
- className: "space-y-12 py-12",
27747
+ className: "space-y-6 py-12",
28019
27748
  children: [
28020
- /* @__PURE__ */ jsxDEV120("header", {
28021
- className: "space-y-3",
28022
- children: [
28023
- /* @__PURE__ */ jsxDEV120("p", {
28024
- className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
28025
- children: "BYOK"
28026
- }, undefined, false, undefined, this),
28027
- /* @__PURE__ */ jsxDEV120("h1", {
28028
- className: "text-4xl font-bold",
28029
- children: "Bring your own key to Studio"
28030
- }, undefined, false, undefined, this),
28031
- /* @__PURE__ */ jsxDEV120("p", {
28032
- className: "text-muted-foreground max-w-3xl text-lg",
28033
- children: "Keep secrets under your control. Studio never touches plaintext credentials; everything is encrypted with tenant-specific material."
28034
- }, undefined, false, undefined, this)
28035
- ]
28036
- }, undefined, true, undefined, this),
28037
- /* @__PURE__ */ jsxDEV120("section", {
28038
- className: "grid gap-4 md:grid-cols-2",
28039
- children: steps2.map((step) => /* @__PURE__ */ jsxDEV120("article", {
28040
- className: "card-subtle space-y-2 p-6",
28041
- children: [
28042
- /* @__PURE__ */ jsxDEV120("h2", {
28043
- className: "text-xl font-semibold",
28044
- children: step.title
28045
- }, undefined, false, undefined, this),
28046
- /* @__PURE__ */ jsxDEV120("p", {
28047
- className: "text-muted-foreground text-sm",
28048
- children: step.body
28049
- }, undefined, false, undefined, this)
28050
- ]
28051
- }, step.title, true, undefined, this))
27749
+ /* @__PURE__ */ jsxDEV120("h1", {
27750
+ className: "text-3xl font-bold",
27751
+ children: "Studio docs moved"
28052
27752
  }, undefined, false, undefined, this),
28053
- /* @__PURE__ */ jsxDEV120("section", {
28054
- className: "space-y-2",
28055
- children: [
28056
- /* @__PURE__ */ jsxDEV120("h2", {
28057
- className: "text-2xl font-semibold",
28058
- children: "Audit trail"
28059
- }, undefined, false, undefined, this),
28060
- /* @__PURE__ */ jsxDEV120("p", {
28061
- className: "text-muted-foreground text-sm",
28062
- children: "Every decrypt operation logs who requested it, what integration was involved, and the purpose (sync, deploy, manual action)."
28063
- }, undefined, false, undefined, this),
28064
- /* @__PURE__ */ jsxDEV120("p", {
28065
- className: "text-muted-foreground text-sm",
28066
- children: "You can stream audit logs to your SIEM via webhooks or export CSVs for compliance reviews."
28067
- }, undefined, false, undefined, this)
28068
- ]
28069
- }, undefined, true, undefined, this)
27753
+ /* @__PURE__ */ jsxDEV120("p", {
27754
+ className: "text-muted-foreground text-sm",
27755
+ children: "Security and BYOK guidance now lives in the Studio app docs."
27756
+ }, undefined, false, undefined, this),
27757
+ /* @__PURE__ */ jsxDEV120(Link101, {
27758
+ href: "https://app.contractspec.studio/docs",
27759
+ className: "btn-primary",
27760
+ children: "Open Studio docs"
27761
+ }, undefined, false, undefined, this)
28070
27762
  ]
28071
27763
  }, undefined, true, undefined, this);
28072
27764
  }