@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.
- package/.turbo/turbo-build.log +47 -47
- package/CHANGELOG.md +16 -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/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 +10 -10
- package/src/components/docs/DocsIndexPage.tsx +3 -3
- package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/bundle.library",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "rm -rf dist",
|
|
@@ -2053,17 +2053,17 @@
|
|
|
2053
2053
|
},
|
|
2054
2054
|
"dependencies": {
|
|
2055
2055
|
"@apollo/client": "^4.1.4",
|
|
2056
|
-
"@contractspec/lib.contracts-spec": "2.1.
|
|
2057
|
-
"@contractspec/lib.contracts-library": "2.1.
|
|
2058
|
-
"@contractspec/lib.contracts-runtime-server-mcp": "2.1.
|
|
2059
|
-
"@contractspec/lib.design-system": "2.1.
|
|
2060
|
-
"@contractspec/lib.example-shared-ui": "2.1.
|
|
2056
|
+
"@contractspec/lib.contracts-spec": "2.1.1",
|
|
2057
|
+
"@contractspec/lib.contracts-library": "2.1.1",
|
|
2058
|
+
"@contractspec/lib.contracts-runtime-server-mcp": "2.1.1",
|
|
2059
|
+
"@contractspec/lib.design-system": "2.1.1",
|
|
2060
|
+
"@contractspec/lib.example-shared-ui": "2.1.1",
|
|
2061
2061
|
"@contractspec/lib.logger": "2.1.0",
|
|
2062
2062
|
"@contractspec/lib.runtime-sandbox": "1.1.0",
|
|
2063
2063
|
"@contractspec/lib.schema": "2.1.0",
|
|
2064
2064
|
"@contractspec/lib.ui-kit-web": "2.1.0",
|
|
2065
2065
|
"@contractspec/lib.ui-link": "2.1.0",
|
|
2066
|
-
"@contractspec/module.examples": "2.1.
|
|
2066
|
+
"@contractspec/module.examples": "2.1.1",
|
|
2067
2067
|
"@dnd-kit/core": "^6.1.0",
|
|
2068
2068
|
"@dnd-kit/sortable": "^10.0.0",
|
|
2069
2069
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -2079,9 +2079,9 @@
|
|
|
2079
2079
|
"posthog-react-native": "^4.34.0",
|
|
2080
2080
|
"react-hook-form": "^7.70.0",
|
|
2081
2081
|
"zod": "^4.3.5",
|
|
2082
|
-
"@contractspec/lib.contracts-integrations": "2.1.
|
|
2083
|
-
"@contractspec/lib.contracts-runtime-server-rest": "2.1.
|
|
2084
|
-
"@contractspec/lib.contracts-runtime-server-graphql": "2.1.
|
|
2082
|
+
"@contractspec/lib.contracts-integrations": "2.1.1",
|
|
2083
|
+
"@contractspec/lib.contracts-runtime-server-rest": "2.1.1",
|
|
2084
|
+
"@contractspec/lib.contracts-runtime-server-graphql": "2.1.1"
|
|
2085
2085
|
},
|
|
2086
2086
|
"devDependencies": {
|
|
2087
2087
|
"@types/react": "~19.2.14",
|
|
@@ -94,16 +94,16 @@ export function DocsIndexPage() {
|
|
|
94
94
|
</Link>
|
|
95
95
|
|
|
96
96
|
<Link
|
|
97
|
-
href="/studio"
|
|
97
|
+
href="/docs/studio"
|
|
98
98
|
className="card-subtle group space-y-3 p-6 transition-colors hover:border-violet-500/50"
|
|
99
99
|
>
|
|
100
100
|
<div className="flex items-start justify-between">
|
|
101
101
|
<div>
|
|
102
102
|
<h3 className="text-lg font-bold transition-colors group-hover:text-violet-400">
|
|
103
|
-
Studio
|
|
103
|
+
Studio
|
|
104
104
|
</h3>
|
|
105
105
|
<p className="text-muted-foreground mt-1 text-sm">
|
|
106
|
-
|
|
106
|
+
AI-powered product decision engine for spec-first teams.
|
|
107
107
|
</p>
|
|
108
108
|
</div>
|
|
109
109
|
<Zap size={20} className="shrink-0 text-violet-400" />
|
|
@@ -52,8 +52,8 @@ bun add @contractspec/integration.markdown-generator`}
|
|
|
52
52
|
</div>
|
|
53
53
|
|
|
54
54
|
<StudioPrompt
|
|
55
|
-
title="Need
|
|
56
|
-
body="Studio
|
|
55
|
+
title="Need evidence-backed template iteration?"
|
|
56
|
+
body="Studio helps teams prioritize template changes from real product signals and export implementation-ready task packs."
|
|
57
57
|
/>
|
|
58
58
|
|
|
59
59
|
<div className="flex items-center gap-4 pt-4">
|
|
@@ -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
|
}
|
|
@@ -1,53 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
// title: 'Studio – Integration Hub Guide',
|
|
3
|
-
// description:
|
|
4
|
-
// 'Connect providers, manage BYOK credentials, and sync data in the Studio Integration Hub.',
|
|
5
|
-
// };
|
|
6
|
-
|
|
7
|
-
const flow = [
|
|
8
|
-
{
|
|
9
|
-
title: 'Connect a provider',
|
|
10
|
-
body: 'Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately.',
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
title: 'Schedule syncs',
|
|
14
|
-
body: 'Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp.',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
title: 'Index knowledge',
|
|
18
|
-
body: 'Add documentation or API specs as knowledge sources. Reindex whenever files change.',
|
|
19
|
-
},
|
|
20
|
-
];
|
|
1
|
+
import Link from '@contractspec/lib.ui-link';
|
|
21
2
|
|
|
22
3
|
export function StudioIntegrationsPage() {
|
|
23
4
|
return (
|
|
24
|
-
<main className="space-y-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
across tools. Studio gives you a simple card layout plus CLI
|
|
33
|
-
automation.
|
|
34
|
-
</p>
|
|
35
|
-
</header>
|
|
36
|
-
<section className="grid gap-4 md:grid-cols-3">
|
|
37
|
-
{flow.map((step) => (
|
|
38
|
-
<article key={step.title} className="card-subtle space-y-2 p-6">
|
|
39
|
-
<h2 className="text-xl font-semibold">{step.title}</h2>
|
|
40
|
-
<p className="text-muted-foreground text-sm">{step.body}</p>
|
|
41
|
-
</article>
|
|
42
|
-
))}
|
|
43
|
-
</section>
|
|
44
|
-
<section className="space-y-2">
|
|
45
|
-
<h2 className="text-2xl font-semibold">Monitoring</h2>
|
|
46
|
-
<p className="text-muted-foreground text-sm">
|
|
47
|
-
Every integration exposes sync logs and failure alerts. Use the
|
|
48
|
-
webhook to forward sync events to Slack or PagerDuty.
|
|
49
|
-
</p>
|
|
50
|
-
</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
|
+
Integration guides now live in the Studio app docs.
|
|
9
|
+
</p>
|
|
10
|
+
<Link href="https://app.contractspec.studio/docs" className="btn-primary">
|
|
11
|
+
Open Studio docs
|
|
12
|
+
</Link>
|
|
51
13
|
</main>
|
|
52
14
|
);
|
|
53
15
|
}
|