@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.
- package/.turbo/turbo-build.log +47 -47
- package/CHANGELOG.md +43 -0
- package/dist/components/docs/DocsIndexPage.js +3 -3
- package/dist/components/docs/ecosystem/TemplatesPage.js +6 -6
- package/dist/components/docs/ecosystem/index.js +6 -6
- package/dist/components/docs/generated/docs-index.generated.d.ts +6 -6
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +6 -6
- package/dist/components/docs/getting-started/index.js +6 -6
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +6 -6
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
- package/dist/components/docs/guides/index.js +18 -18
- package/dist/components/docs/index.js +162 -470
- package/dist/components/docs/manifesto/ManifestoPage.js +2 -2
- package/dist/components/docs/shared/StudioPrompt.js +4 -4
- package/dist/components/docs/studio/StudioBYOKPage.js +14 -68
- package/dist/components/docs/studio/StudioDeploymentsPage.js +14 -89
- package/dist/components/docs/studio/StudioGettingStartedPage.js +14 -82
- package/dist/components/docs/studio/StudioIntegrationsPage.js +14 -60
- package/dist/components/docs/studio/StudioOverviewPage.js +62 -32
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +14 -109
- package/dist/components/docs/studio/index.js +131 -439
- package/dist/index.js +162 -470
- package/dist/node/components/docs/DocsIndexPage.js +3 -3
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +6 -6
- package/dist/node/components/docs/ecosystem/index.js +6 -6
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +6 -6
- package/dist/node/components/docs/getting-started/index.js +6 -6
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +6 -6
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
- package/dist/node/components/docs/guides/index.js +18 -18
- package/dist/node/components/docs/index.js +162 -470
- package/dist/node/components/docs/manifesto/ManifestoPage.js +2 -2
- package/dist/node/components/docs/shared/StudioPrompt.js +4 -4
- package/dist/node/components/docs/studio/StudioBYOKPage.js +14 -68
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +14 -89
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +14 -82
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +14 -60
- package/dist/node/components/docs/studio/StudioOverviewPage.js +62 -32
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +14 -109
- package/dist/node/components/docs/studio/index.js +131 -439
- package/dist/node/index.js +162 -470
- package/package.json +18 -18
- package/src/components/docs/DocsIndexPage.tsx +3 -3
- package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
- package/src/components/docs/generated/docs-index._common.json +40 -211
- package/src/components/docs/generated/docs-index.agent-console.json +1 -1
- package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
- package/src/components/docs/generated/docs-index.analytics-dashboard.json +1 -1
- package/src/components/docs/generated/docs-index.app-config.json +1 -1
- package/src/components/docs/generated/docs-index.audit-trail.json +1 -1
- package/src/components/docs/generated/docs-index.crm-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.feature-flags.json +1 -1
- package/src/components/docs/generated/docs-index.files.json +1 -1
- package/src/components/docs/generated/docs-index.generated.ts +7 -7
- package/src/components/docs/generated/docs-index.identity-rbac.json +1 -1
- package/src/components/docs/generated/docs-index.integration-hub.json +1 -1
- package/src/components/docs/generated/docs-index.jobs.json +1 -1
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey.json +1 -1
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +1 -1
- package/src/components/docs/generated/docs-index.manifest.json +1 -1
- package/src/components/docs/generated/docs-index.marketplace.json +1 -1
- package/src/components/docs/generated/docs-index.meeting-recorder.json +1 -1
- package/src/components/docs/generated/docs-index.metrics.json +1 -1
- package/src/components/docs/generated/docs-index.notifications.json +1 -1
- package/src/components/docs/generated/docs-index.openbanking.json +1 -1
- package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
- package/src/components/docs/generated/docs-index.platform-knowledge.json +1 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +1 -1
- package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
- package/src/components/docs/generated/docs-index.saas-boilerplate.json +1 -1
- package/src/components/docs/generated/docs-index.service-business-os.json +1 -1
- package/src/components/docs/generated/docs-index.team-hub.json +1 -1
- package/src/components/docs/generated/docs-index.unknown.json +1 -1
- package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +1 -1
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +1 -1
- package/src/components/docs/generated/docs-index.workflow-system.json +1 -1
- package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
- package/src/components/docs/getting-started/DeveloperToolsPage.tsx +6 -6
- package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +2 -2
- package/src/components/docs/guides/GuideContractTypesPage.tsx +2 -2
- package/src/components/docs/guides/GuideDocsPipelinePage.tsx +2 -2
- package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +2 -2
- package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +2 -2
- package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +2 -2
- package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +2 -2
- package/src/components/docs/manifesto/ManifestoPage.tsx +2 -2
- package/src/components/docs/shared/StudioPrompt.tsx +4 -4
- package/src/components/docs/studio/StudioBYOKPage.tsx +9 -54
- package/src/components/docs/studio/StudioDeploymentsPage.tsx +9 -70
- package/src/components/docs/studio/StudioGettingStartedPage.tsx +9 -66
- package/src/components/docs/studio/StudioIntegrationsPage.tsx +9 -47
- package/src/components/docs/studio/StudioOverviewPage.tsx +53 -41
- package/src/components/docs/studio/StudioVisualBuilderPage.tsx +9 -72
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type DocsIndexSource = 'generated' | 'docblock';
|
|
2
2
|
|
|
3
|
-
export
|
|
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
|
|
17
|
+
export interface DocsIndexChunk {
|
|
18
18
|
key: string;
|
|
19
19
|
file: string;
|
|
20
20
|
total: number;
|
|
21
|
-
}
|
|
21
|
+
}
|
|
22
22
|
|
|
23
|
-
export
|
|
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 =
|
|
31
|
+
export const DOCS_INDEX_MANIFEST = 'docs-index.manifest.json';
|
|
@@ -32,15 +32,15 @@ export function DeveloperToolsPage() {
|
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
name: 'ContractSpec Studio',
|
|
35
|
-
href: 'https://
|
|
35
|
+
href: 'https://app.contractspec.studio',
|
|
36
36
|
description:
|
|
37
|
-
'
|
|
37
|
+
'AI-powered product decision engine that turns product signals into spec-first deliverables.',
|
|
38
38
|
icon: Layers,
|
|
39
|
-
status: '
|
|
39
|
+
status: 'available',
|
|
40
40
|
highlights: [
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
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
|
|
90
|
-
body="Studio
|
|
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="
|
|
473
|
-
body="Studio
|
|
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
|
|
95
|
-
body="Studio
|
|
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
|
|
89
|
-
body="Studio
|
|
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
|
|
500
|
-
body="Studio
|
|
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="
|
|
162
|
-
body="Studio
|
|
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
|
|
141
|
-
body="Studio
|
|
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="
|
|
132
|
-
|
|
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 = '
|
|
12
|
-
body = 'ContractSpec Studio
|
|
13
|
-
ctaLabel = '
|
|
14
|
-
href = '
|
|
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
|
-
|
|
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-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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-
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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-
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
}
|