@contractspec/bundle.library 2.0.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 (108) hide show
  1. package/.turbo/turbo-build.log +47 -47
  2. package/CHANGELOG.md +43 -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/generated/docs-index.generated.d.ts +6 -6
  7. package/dist/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  8. package/dist/components/docs/getting-started/index.js +6 -6
  9. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  10. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  11. package/dist/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  12. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  13. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  14. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  15. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  16. package/dist/components/docs/guides/index.js +18 -18
  17. package/dist/components/docs/index.js +162 -470
  18. package/dist/components/docs/manifesto/ManifestoPage.js +2 -2
  19. package/dist/components/docs/shared/StudioPrompt.js +4 -4
  20. package/dist/components/docs/studio/StudioBYOKPage.js +14 -68
  21. package/dist/components/docs/studio/StudioDeploymentsPage.js +14 -89
  22. package/dist/components/docs/studio/StudioGettingStartedPage.js +14 -82
  23. package/dist/components/docs/studio/StudioIntegrationsPage.js +14 -60
  24. package/dist/components/docs/studio/StudioOverviewPage.js +62 -32
  25. package/dist/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  26. package/dist/components/docs/studio/index.js +131 -439
  27. package/dist/index.js +162 -470
  28. package/dist/node/components/docs/DocsIndexPage.js +3 -3
  29. package/dist/node/components/docs/ecosystem/TemplatesPage.js +6 -6
  30. package/dist/node/components/docs/ecosystem/index.js +6 -6
  31. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  32. package/dist/node/components/docs/getting-started/index.js +6 -6
  33. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  34. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  35. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  36. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  37. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  38. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  39. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  40. package/dist/node/components/docs/guides/index.js +18 -18
  41. package/dist/node/components/docs/index.js +162 -470
  42. package/dist/node/components/docs/manifesto/ManifestoPage.js +2 -2
  43. package/dist/node/components/docs/shared/StudioPrompt.js +4 -4
  44. package/dist/node/components/docs/studio/StudioBYOKPage.js +14 -68
  45. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +14 -89
  46. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +14 -82
  47. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +14 -60
  48. package/dist/node/components/docs/studio/StudioOverviewPage.js +62 -32
  49. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  50. package/dist/node/components/docs/studio/index.js +131 -439
  51. package/dist/node/index.js +162 -470
  52. package/package.json +18 -18
  53. package/src/components/docs/DocsIndexPage.tsx +3 -3
  54. package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
  55. package/src/components/docs/generated/docs-index._common.json +40 -211
  56. package/src/components/docs/generated/docs-index.agent-console.json +1 -1
  57. package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
  58. package/src/components/docs/generated/docs-index.analytics-dashboard.json +1 -1
  59. package/src/components/docs/generated/docs-index.app-config.json +1 -1
  60. package/src/components/docs/generated/docs-index.audit-trail.json +1 -1
  61. package/src/components/docs/generated/docs-index.crm-pipeline.json +1 -1
  62. package/src/components/docs/generated/docs-index.feature-flags.json +1 -1
  63. package/src/components/docs/generated/docs-index.files.json +1 -1
  64. package/src/components/docs/generated/docs-index.generated.ts +7 -7
  65. package/src/components/docs/generated/docs-index.identity-rbac.json +1 -1
  66. package/src/components/docs/generated/docs-index.integration-hub.json +1 -1
  67. package/src/components/docs/generated/docs-index.jobs.json +1 -1
  68. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +1 -1
  69. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
  70. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
  71. package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
  72. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +1 -1
  73. package/src/components/docs/generated/docs-index.learning-journey.json +1 -1
  74. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +1 -1
  75. package/src/components/docs/generated/docs-index.manifest.json +1 -1
  76. package/src/components/docs/generated/docs-index.marketplace.json +1 -1
  77. package/src/components/docs/generated/docs-index.meeting-recorder.json +1 -1
  78. package/src/components/docs/generated/docs-index.metrics.json +1 -1
  79. package/src/components/docs/generated/docs-index.notifications.json +1 -1
  80. package/src/components/docs/generated/docs-index.openbanking.json +1 -1
  81. package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
  82. package/src/components/docs/generated/docs-index.platform-knowledge.json +1 -1
  83. package/src/components/docs/generated/docs-index.pocket-family-office.json +1 -1
  84. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
  85. package/src/components/docs/generated/docs-index.saas-boilerplate.json +1 -1
  86. package/src/components/docs/generated/docs-index.service-business-os.json +1 -1
  87. package/src/components/docs/generated/docs-index.team-hub.json +1 -1
  88. package/src/components/docs/generated/docs-index.unknown.json +1 -1
  89. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +1 -1
  90. package/src/components/docs/generated/docs-index.wealth-snapshot.json +1 -1
  91. package/src/components/docs/generated/docs-index.workflow-system.json +1 -1
  92. package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
  93. package/src/components/docs/getting-started/DeveloperToolsPage.tsx +6 -6
  94. package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +2 -2
  95. package/src/components/docs/guides/GuideContractTypesPage.tsx +2 -2
  96. package/src/components/docs/guides/GuideDocsPipelinePage.tsx +2 -2
  97. package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +2 -2
  98. package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +2 -2
  99. package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +2 -2
  100. package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +2 -2
  101. package/src/components/docs/manifesto/ManifestoPage.tsx +2 -2
  102. package/src/components/docs/shared/StudioPrompt.tsx +4 -4
  103. package/src/components/docs/studio/StudioBYOKPage.tsx +9 -54
  104. package/src/components/docs/studio/StudioDeploymentsPage.tsx +9 -70
  105. package/src/components/docs/studio/StudioGettingStartedPage.tsx +9 -66
  106. package/src/components/docs/studio/StudioIntegrationsPage.tsx +9 -47
  107. package/src/components/docs/studio/StudioOverviewPage.tsx +53 -41
  108. package/src/components/docs/studio/StudioVisualBuilderPage.tsx +9 -72
@@ -1,6 +1,6 @@
1
1
  export type DocsIndexSource = 'generated' | 'docblock';
2
2
 
3
- export type DocsIndexEntry = {
3
+ export interface DocsIndexEntry {
4
4
  id: string;
5
5
  title: string;
6
6
  summary?: string;
@@ -12,20 +12,20 @@ export type DocsIndexEntry = {
12
12
  visibility?: string;
13
13
  version?: string;
14
14
  owners?: string[];
15
- };
15
+ }
16
16
 
17
- export type DocsIndexChunk = {
17
+ export interface DocsIndexChunk {
18
18
  key: string;
19
19
  file: string;
20
20
  total: number;
21
- };
21
+ }
22
22
 
23
- export type DocsIndexManifest = {
23
+ export interface DocsIndexManifest {
24
24
  generatedAt: string;
25
25
  total: number;
26
26
  version: string | null;
27
27
  contentRoot: string | null;
28
28
  chunks: DocsIndexChunk[];
29
- };
29
+ }
30
30
 
31
- export const DOCS_INDEX_MANIFEST = "docs-index.manifest.json";
31
+ export const DOCS_INDEX_MANIFEST = 'docs-index.manifest.json';
@@ -311,4 +311,4 @@
311
311
  "source": "generated",
312
312
  "contentPath": "identity-rbac/user.updated.md"
313
313
  }
314
- ]
314
+ ]
@@ -263,4 +263,4 @@
263
263
  "source": "generated",
264
264
  "contentPath": "integration-hub/sync.md"
265
265
  }
266
- ]
266
+ ]
@@ -135,4 +135,4 @@
135
135
  "source": "generated",
136
136
  "contentPath": "jobs/scheduler.job_triggered.md"
137
137
  }
138
- ]
138
+ ]
@@ -127,4 +127,4 @@
127
127
  "source": "generated",
128
128
  "contentPath": "kb-update-pipeline/kbPipeline.submitDecision.test.md"
129
129
  }
130
- ]
130
+ ]
@@ -47,4 +47,4 @@
47
47
  "source": "generated",
48
48
  "contentPath": "learning-journey-crm-onboarding/learningJourney.crmOnboarding.recordEvent.md"
49
49
  }
50
- ]
50
+ ]
@@ -47,4 +47,4 @@
47
47
  "source": "generated",
48
48
  "contentPath": "learning-journey-platform-tour/learningJourney.platformTour.recordEvent.md"
49
49
  }
50
- ]
50
+ ]
@@ -31,4 +31,4 @@
31
31
  "source": "generated",
32
32
  "contentPath": "learning-journey-registry/learning.journey.track_list.md"
33
33
  }
34
- ]
34
+ ]
@@ -47,4 +47,4 @@
47
47
  "source": "generated",
48
48
  "contentPath": "learning-journey-studio-onboarding/learningJourney.studioOnboarding.recordEvent.md"
49
49
  }
50
- ]
50
+ ]
@@ -215,4 +215,4 @@
215
215
  "source": "generated",
216
216
  "contentPath": "learning-journey/xp.earned.md"
217
217
  }
218
- ]
218
+ ]
@@ -47,4 +47,4 @@
47
47
  "source": "generated",
48
48
  "contentPath": "locale-jurisdiction-gate/locale-jurisdiction-gate.md"
49
49
  }
50
- ]
50
+ ]
@@ -185,4 +185,4 @@
185
185
  "total": 1
186
186
  }
187
187
  ]
188
- }
188
+ }
@@ -335,4 +335,4 @@
335
335
  "source": "generated",
336
336
  "contentPath": "marketplace/payments.md"
337
337
  }
338
- ]
338
+ ]
@@ -47,4 +47,4 @@
47
47
  "source": "generated",
48
48
  "contentPath": "meeting-recorder/meeting-recorder.webhooks.ingest.md"
49
49
  }
50
- ]
50
+ ]
@@ -191,4 +191,4 @@
191
191
  "source": "generated",
192
192
  "contentPath": "metrics/usage.recorded.md"
193
193
  }
194
- ]
194
+ ]
@@ -63,4 +63,4 @@
63
63
  "source": "generated",
64
64
  "contentPath": "notifications/notifications.send.md"
65
65
  }
66
- ]
66
+ ]
@@ -63,4 +63,4 @@
63
63
  "source": "generated",
64
64
  "contentPath": "openbanking/openbanking.transactions.sync.md"
65
65
  }
66
- ]
66
+ ]
@@ -231,4 +231,4 @@
231
231
  "source": "generated",
232
232
  "contentPath": "platform.integrations/vectordb.supabase.md"
233
233
  }
234
- ]
234
+ ]
@@ -55,4 +55,4 @@
55
55
  "source": "generated",
56
56
  "contentPath": "platform.knowledge/platform.knowledge.md"
57
57
  }
58
- ]
58
+ ]
@@ -119,4 +119,4 @@
119
119
  "source": "generated",
120
120
  "contentPath": "pocket-family-office/pocket-family-office.md"
121
121
  }
122
- ]
122
+ ]
@@ -7,4 +7,4 @@
7
7
  "source": "generated",
8
8
  "contentPath": "policy-safe-knowledge-assistant/policy-safe-knowledge-assistant.md"
9
9
  }
10
- ]
10
+ ]
@@ -207,4 +207,4 @@
207
207
  "source": "generated",
208
208
  "contentPath": "saas-boilerplate/saas.settings.md"
209
209
  }
210
- ]
210
+ ]
@@ -191,4 +191,4 @@
191
191
  "source": "generated",
192
192
  "contentPath": "service-business-os/service.quote.sent.md"
193
193
  }
194
- ]
194
+ ]
@@ -183,4 +183,4 @@
183
183
  "source": "generated",
184
184
  "contentPath": "team-hub/team.task.updateStatus.md"
185
185
  }
186
- ]
186
+ ]
@@ -511,4 +511,4 @@
511
511
  "source": "generated",
512
512
  "contentPath": "unknown/vectordb.supabase.md"
513
513
  }
514
- ]
514
+ ]
@@ -79,4 +79,4 @@
79
79
  "source": "generated",
80
80
  "contentPath": "versioned-knowledge-base/versioned-knowledge-base.md"
81
81
  }
82
- ]
82
+ ]
@@ -151,4 +151,4 @@
151
151
  "source": "generated",
152
152
  "contentPath": "wealth-snapshot/wealth.networth.snapshot_created.md"
153
153
  }
154
- ]
154
+ ]
@@ -431,4 +431,4 @@
431
431
  "source": "generated",
432
432
  "contentPath": "workflow-system/workflow.step.exited.md"
433
433
  }
434
- ]
434
+ ]
@@ -7,4 +7,4 @@
7
7
  "source": "generated",
8
8
  "contentPath": "workspace-cli/workspace-cli.md"
9
9
  }
10
- ]
10
+ ]
@@ -32,15 +32,15 @@ export function DeveloperToolsPage() {
32
32
  },
33
33
  {
34
34
  name: 'ContractSpec Studio',
35
- href: 'https://www.contractspec.studio',
35
+ href: 'https://app.contractspec.studio',
36
36
  description:
37
- 'Visual builder, lifecycle management, and deployment orchestration.',
37
+ 'AI-powered product decision engine that turns product signals into spec-first deliverables.',
38
38
  icon: Layers,
39
- status: 'coming-soon',
39
+ status: 'available',
40
40
  highlights: [
41
- 'Visual spec editor',
42
- 'Deployment pipelines',
43
- 'Analytics dashboard',
41
+ 'Evidence-to-decision loop',
42
+ 'Compiled spec diffs and task packs',
43
+ 'Exports to Linear, Jira, Notion, and GitHub',
44
44
  ],
45
45
  },
46
46
  {
@@ -86,8 +86,8 @@ bun run validate`}
86
86
  </div>
87
87
 
88
88
  <StudioPrompt
89
- title="Need managed CI policy gates?"
90
- body="Studio adds policy approvals, drift dashboards, and audit trails after CI checks pass."
89
+ title="Need continuous checks tied to outcomes?"
90
+ body="Studio closes the loop with post-change verification and learning dividends that improve future decisions."
91
91
  />
92
92
  </div>
93
93
 
@@ -469,8 +469,8 @@ capabilityRegistry.register(UserManagementCapability);`}
469
469
  </div>
470
470
 
471
471
  <StudioPrompt
472
- title="Want visual contract design?"
473
- body="Studio provides a visual editor for creating and managing contracts with team collaboration and version control."
472
+ title="Need to decide which contract should change next?"
473
+ body="Studio uses evidence and focus constraints to generate decision briefs, patch intents, and execution-ready task packs."
474
474
  />
475
475
  </div>
476
476
 
@@ -91,8 +91,8 @@ export default async function Page({ params }: { params: { slug?: string[] } })
91
91
  </div>
92
92
 
93
93
  <StudioPrompt
94
- title="Need hosted docs releases?"
95
- body="Studio can publish versioned docs bundles with approvals and audit trails."
94
+ title="Need decision-to-export automation?"
95
+ body="Studio exports evidence-backed spec changes and task packs to Linear, Jira, Notion, and GitHub."
96
96
  />
97
97
  </div>
98
98
 
@@ -85,8 +85,8 @@ contractspec openapi export --registry ./src/contracts/registry.ts --out ./gener
85
85
  </div>
86
86
 
87
87
  <StudioPrompt
88
- title="Want managed schema releases?"
89
- body="Studio can publish OpenAPI, SDKs, and release notes automatically with approvals."
88
+ title="Want exports tied to product decisions?"
89
+ body="Studio compiles approved changes into deliverables and pushes them to your execution stack with full evidence context."
90
90
  />
91
91
  </div>
92
92
 
@@ -496,8 +496,8 @@ installOp(registry, CreateUserCommand, async (input) => {
496
496
  </div>
497
497
 
498
498
  <StudioPrompt
499
- title="Want automated contract evolution?"
500
- body="Studio monitors your codebase and suggests contract updates when your API changes, keeping specs and code in sync."
499
+ title="Want evidence-driven migration priorities?"
500
+ body="Studio clusters product signals into scored patterns, then proposes spec-first change cards for the highest-impact areas."
501
501
  />
502
502
  </div>
503
503
 
@@ -158,8 +158,8 @@ contractspec examples validate --repo-root .`}
158
158
  </div>
159
159
 
160
160
  <StudioPrompt
161
- title="Need team approvals for new endpoints?"
162
- body="Studio adds review gates, shared registries, and audit trails after you ship your first endpoint."
161
+ title="Want real product evidence behind endpoint changes?"
162
+ body="Studio correlates meetings, support, analytics, and code signals before compiling endpoint decisions into spec diffs."
163
163
  />
164
164
  </div>
165
165
 
@@ -137,8 +137,8 @@ bun run validate`}
137
137
  </div>
138
138
 
139
139
  <StudioPrompt
140
- title="Need shared validation policies?"
141
- body="Studio lets teams enforce validation policies and review changes before they ship."
140
+ title="Need validation tied to real outcomes?"
141
+ body="Studio links checks to evidence, focus decisions, and post-release verification so specs evolve with product truth."
142
142
  />
143
143
  </div>
144
144
 
@@ -128,8 +128,8 @@ export function ManifestoPage() {
128
128
  <a href="/install" className="btn-primary">
129
129
  Install OSS Core
130
130
  </a>
131
- <a href="/contact#waitlist" className="btn-ghost">
132
- Join Studio Waitlist
131
+ <a href="https://app.contractspec.studio" className="btn-ghost">
132
+ Try Studio
133
133
  </a>
134
134
  </div>
135
135
  </div>
@@ -8,10 +8,10 @@ interface StudioPromptProps {
8
8
  }
9
9
 
10
10
  export function StudioPrompt({
11
- title = 'Need managed policy gates and approvals?',
12
- body = 'ContractSpec Studio adds policy gates, remote registry workflows, and audit trails when you are ready to scale adoption.',
13
- ctaLabel = 'Join Studio waitlist',
14
- href = '/contact#waitlist',
11
+ title = 'Want to turn product signals into spec-first deliverables?',
12
+ body = 'ContractSpec Studio ingests evidence from meetings, support, analytics, docs, and code, then compiles decisions into spec diffs and task packs.',
13
+ ctaLabel = 'Try Studio',
14
+ href = 'https://app.contractspec.studio',
15
15
  }: StudioPromptProps) {
16
16
  return (
17
17
  <div className="card-subtle space-y-3 p-6">
@@ -1,60 +1,15 @@
1
- // export const metadata: Metadata = {
2
- // title: 'Studio – BYOK Setup',
3
- // description:
4
- // 'Configure Bring Your Own Key for ContractSpec Studio. Secure credentials, rotate keys, and audit access.',
5
- // };
6
-
7
- const steps = [
8
- {
9
- title: '1. Provide vault endpoint',
10
- body: 'Enter your Vault/HSM URL and the key identifier. Studio only stores the reference.',
11
- },
12
- {
13
- title: '2. Verify encryption',
14
- body: 'Studio runs a test by encrypting a dummy payload and asking you to decrypt it.',
15
- },
16
- {
17
- title: '3. Store credentials',
18
- body: 'When integrations are connected, secrets get encrypted client side before landing in the database.',
19
- },
20
- {
21
- title: '4. Rotate keys',
22
- body: 'Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one.',
23
- },
24
- ];
1
+ import Link from '@contractspec/lib.ui-link';
25
2
 
26
3
  export function StudioBYOKPage() {
27
4
  return (
28
- <main className="space-y-12 py-12">
29
- <header className="space-y-3">
30
- <p className="text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase">
31
- BYOK
32
- </p>
33
- <h1 className="text-4xl font-bold">Bring your own key to Studio</h1>
34
- <p className="text-muted-foreground max-w-3xl text-lg">
35
- Keep secrets under your control. Studio never touches plaintext
36
- credentials; everything is encrypted with tenant-specific material.
37
- </p>
38
- </header>
39
- <section className="grid gap-4 md:grid-cols-2">
40
- {steps.map((step) => (
41
- <article key={step.title} className="card-subtle space-y-2 p-6">
42
- <h2 className="text-xl font-semibold">{step.title}</h2>
43
- <p className="text-muted-foreground text-sm">{step.body}</p>
44
- </article>
45
- ))}
46
- </section>
47
- <section className="space-y-2">
48
- <h2 className="text-2xl font-semibold">Audit trail</h2>
49
- <p className="text-muted-foreground text-sm">
50
- Every decrypt operation logs who requested it, what integration was
51
- involved, and the purpose (sync, deploy, manual action).
52
- </p>
53
- <p className="text-muted-foreground text-sm">
54
- You can stream audit logs to your SIEM via webhooks or export CSVs for
55
- compliance reviews.
56
- </p>
57
- </section>
5
+ <main className="space-y-6 py-12">
6
+ <h1 className="text-3xl font-bold">Studio docs moved</h1>
7
+ <p className="text-muted-foreground text-sm">
8
+ Security and BYOK guidance now lives in the Studio app docs.
9
+ </p>
10
+ <Link href="https://app.contractspec.studio/docs" className="btn-primary">
11
+ Open Studio docs
12
+ </Link>
58
13
  </main>
59
14
  );
60
15
  }
@@ -1,76 +1,15 @@
1
- // export const metadata: Metadata = {
2
- // title: 'Studio – Deployment Guide',
3
- // description:
4
- // 'Learn how Studio provisions shared and dedicated environments, monitors health, and rolls back safely.',
5
- // };
6
-
7
- const comparisons = [
8
- {
9
- label: 'Shared',
10
- points: [
11
- 'Ready in seconds',
12
- 'DEV + STAGE by default',
13
- 'Best for prototypes',
14
- 'Managed SSL',
15
- ],
16
- },
17
- {
18
- label: 'Dedicated',
19
- points: [
20
- 'Isolated clusters',
21
- 'Choose region + VPC',
22
- 'Rolling deploys',
23
- 'Custom observability sinks',
24
- ],
25
- },
26
- ];
27
-
28
- const checklist = [
29
- 'Validate specs before deploying (Studio does this automatically).',
30
- 'Tag deployments with a description so rituals have context.',
31
- 'Monitor status cards—failed deploys trigger alerts and auto rollback.',
32
- 'Use the CLI to export deployment manifests if you want infra-as-code.',
33
- ];
1
+ import Link from '@contractspec/lib.ui-link';
34
2
 
35
3
  export function StudioDeploymentsPage() {
36
4
  return (
37
- <main className="space-y-12 py-12">
38
- <header className="space-y-3">
39
- <p className="text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase">
40
- Deployments
41
- </p>
42
- <h1 className="text-4xl font-bold">Shared vs dedicated workflows</h1>
43
- <p className="text-muted-foreground max-w-3xl text-lg">
44
- Studio abstracts infra, but you still stay in control. This guide
45
- explains how environments are provisioned, monitored, and rolled back.
46
- </p>
47
- </header>
48
- <section className="grid gap-4 md:grid-cols-2">
49
- {comparisons.map((option) => (
50
- <article key={option.label} className="card-subtle space-y-2 p-6">
51
- <h2 className="text-2xl font-semibold">
52
- {option.label} deployments
53
- </h2>
54
- <ul className="space-y-1 text-sm">
55
- {option.points.map((point) => (
56
- <li key={point}>• {point}</li>
57
- ))}
58
- </ul>
59
- </article>
60
- ))}
61
- </section>
62
- <section className="space-y-3">
63
- <h2 className="text-2xl font-semibold">Health & rollback</h2>
64
- <p className="text-muted-foreground text-sm">
65
- Every deployment emits health events. If a check fails, Studio pauses
66
- traffic and offers rollback controls with diff context.
67
- </p>
68
- <ul className="space-y-2 text-sm">
69
- {checklist.map((item) => (
70
- <li key={item}>• {item}</li>
71
- ))}
72
- </ul>
73
- </section>
5
+ <main className="space-y-6 py-12">
6
+ <h1 className="text-3xl font-bold">Studio docs moved</h1>
7
+ <p className="text-muted-foreground text-sm">
8
+ Deployment guidance now lives in the Studio app docs.
9
+ </p>
10
+ <Link href="https://app.contractspec.studio/docs" className="btn-primary">
11
+ Open Studio docs
12
+ </Link>
74
13
  </main>
75
14
  );
76
15
  }
@@ -1,72 +1,15 @@
1
- // export const metadata: Metadata = {
2
- // title: 'Studio – Getting Started',
3
- // description:
4
- // 'Create your first ContractSpec Studio project, add specs, and deploy to shared infrastructure.',
5
- // };
6
-
7
- const steps = [
8
- {
9
- title: '1. Create a Studio workspace',
10
- body: 'Sign in, pick “Studio managed” as product, and invite teammates. We provision the workspace plus default shared environments.',
11
- },
12
- {
13
- title: '2. Add your first project',
14
- body: 'Click “New project”, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later.',
15
- },
16
- {
17
- title: '3. Author a spec',
18
- body: 'Use the Visual Builder or Spec Editor. Pick “Capability” as type and describe the operation (e.g., capture donation).',
19
- },
20
- {
21
- title: '4. Deploy to shared infra',
22
- body: 'Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically.',
23
- },
24
- {
25
- title: '5. Wire integrations',
26
- body: 'From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers.',
27
- },
28
- ];
1
+ import Link from '@contractspec/lib.ui-link';
29
2
 
30
3
  export function StudioGettingStartedPage() {
31
4
  return (
32
- <main className="space-y-12 py-12">
33
- <header className="space-y-3">
34
- <p className="text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase">
35
- Getting started
36
- </p>
37
- <h1 className="text-4xl font-bold">Launch your first Studio project</h1>
38
- <p className="text-muted-foreground max-w-3xl text-lg">
39
- This short guide takes you from workspace creation to the first
40
- deployment. Every step is mobile-friendly and safe to undo.
41
- </p>
42
- </header>
43
- <section className="grid gap-4">
44
- {steps.map((step) => (
45
- <article key={step.title} className="card-subtle space-y-2 p-6">
46
- <h2 className="text-xl font-semibold">{step.title}</h2>
47
- <p className="text-muted-foreground text-sm">{step.body}</p>
48
- </article>
49
- ))}
50
- </section>
51
- <section className="space-y-4">
52
- <h2 className="text-2xl font-semibold">CLI helper (optional)</h2>
53
- <p className="text-muted-foreground text-sm">
54
- Prefer automation? Use the CLI to pull specs and push overlays.
55
- </p>
56
- <pre className="bg-muted/40 border-border overflow-auto rounded-xl border p-4 text-left font-mono text-sm">
57
- {`# Authenticate
58
- cs login
59
-
60
- # List projects
61
- cs studio projects list
62
-
63
- # Pull specs locally
64
- cs studio specs pull <project-id>
65
-
66
- # Push after editing
67
- cs studio specs push <project-id>`}
68
- </pre>
69
- </section>
5
+ <main className="space-y-6 py-12">
6
+ <h1 className="text-3xl font-bold">Studio docs moved</h1>
7
+ <p className="text-muted-foreground text-sm">
8
+ The latest getting-started guide now lives in the Studio app docs.
9
+ </p>
10
+ <Link href="https://app.contractspec.studio/docs" className="btn-primary">
11
+ Open Studio docs
12
+ </Link>
70
13
  </main>
71
14
  );
72
15
  }