@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
|
@@ -175,9 +175,9 @@ function ManifestoPage() {
|
|
|
175
175
|
children: "Install OSS Core"
|
|
176
176
|
}, undefined, false, undefined, this),
|
|
177
177
|
/* @__PURE__ */ jsxDEV("a", {
|
|
178
|
-
href: "
|
|
178
|
+
href: "https://app.contractspec.studio",
|
|
179
179
|
className: "btn-ghost",
|
|
180
|
-
children: "
|
|
180
|
+
children: "Try Studio"
|
|
181
181
|
}, undefined, false, undefined, this)
|
|
182
182
|
]
|
|
183
183
|
}, undefined, true, undefined, this)
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import Link from "@contractspec/lib.ui-link";
|
|
3
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
4
4
|
function StudioPrompt({
|
|
5
|
-
title = "
|
|
6
|
-
body = "ContractSpec Studio
|
|
7
|
-
ctaLabel = "
|
|
8
|
-
href = "
|
|
5
|
+
title = "Want to turn product signals into spec-first deliverables?",
|
|
6
|
+
body = "ContractSpec Studio ingests evidence from meetings, support, analytics, docs, and code, then compiles decisions into spec diffs and task packs.",
|
|
7
|
+
ctaLabel = "Try Studio",
|
|
8
|
+
href = "https://app.contractspec.studio"
|
|
9
9
|
}) {
|
|
10
10
|
return /* @__PURE__ */ jsxDEV("div", {
|
|
11
11
|
className: "card-subtle space-y-3 p-6",
|
|
@@ -1,77 +1,23 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioBYOKPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
2
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
3
|
-
var steps = [
|
|
4
|
-
{
|
|
5
|
-
title: "1. Provide vault endpoint",
|
|
6
|
-
body: "Enter your Vault/HSM URL and the key identifier. Studio only stores the reference."
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
title: "2. Verify encryption",
|
|
10
|
-
body: "Studio runs a test by encrypting a dummy payload and asking you to decrypt it."
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
title: "3. Store credentials",
|
|
14
|
-
body: "When integrations are connected, secrets get encrypted client side before landing in the database."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
title: "4. Rotate keys",
|
|
18
|
-
body: "Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one."
|
|
19
|
-
}
|
|
20
|
-
];
|
|
21
4
|
function StudioBYOKPage() {
|
|
22
5
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
23
|
-
className: "space-y-
|
|
6
|
+
className: "space-y-6 py-12",
|
|
24
7
|
children: [
|
|
25
|
-
/* @__PURE__ */ jsxDEV("
|
|
26
|
-
className: "
|
|
27
|
-
children:
|
|
28
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
29
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
30
|
-
children: "BYOK"
|
|
31
|
-
}, undefined, false, undefined, this),
|
|
32
|
-
/* @__PURE__ */ jsxDEV("h1", {
|
|
33
|
-
className: "text-4xl font-bold",
|
|
34
|
-
children: "Bring your own key to Studio"
|
|
35
|
-
}, undefined, false, undefined, this),
|
|
36
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
37
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
38
|
-
children: "Keep secrets under your control. Studio never touches plaintext credentials; everything is encrypted with tenant-specific material."
|
|
39
|
-
}, undefined, false, undefined, this)
|
|
40
|
-
]
|
|
41
|
-
}, undefined, true, undefined, this),
|
|
42
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
43
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
44
|
-
children: steps.map((step) => /* @__PURE__ */ jsxDEV("article", {
|
|
45
|
-
className: "card-subtle space-y-2 p-6",
|
|
46
|
-
children: [
|
|
47
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
48
|
-
className: "text-xl font-semibold",
|
|
49
|
-
children: step.title
|
|
50
|
-
}, undefined, false, undefined, this),
|
|
51
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
52
|
-
className: "text-muted-foreground text-sm",
|
|
53
|
-
children: step.body
|
|
54
|
-
}, undefined, false, undefined, this)
|
|
55
|
-
]
|
|
56
|
-
}, step.title, true, undefined, this))
|
|
8
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
9
|
+
className: "text-3xl font-bold",
|
|
10
|
+
children: "Studio docs moved"
|
|
57
11
|
}, undefined, false, undefined, this),
|
|
58
|
-
/* @__PURE__ */ jsxDEV("
|
|
59
|
-
className: "
|
|
60
|
-
children:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
children: "Every decrypt operation logs who requested it, what integration was involved, and the purpose (sync, deploy, manual action)."
|
|
68
|
-
}, undefined, false, undefined, this),
|
|
69
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
70
|
-
className: "text-muted-foreground text-sm",
|
|
71
|
-
children: "You can stream audit logs to your SIEM via webhooks or export CSVs for compliance reviews."
|
|
72
|
-
}, undefined, false, undefined, this)
|
|
73
|
-
]
|
|
74
|
-
}, undefined, true, undefined, this)
|
|
12
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
13
|
+
className: "text-muted-foreground text-sm",
|
|
14
|
+
children: "Security and BYOK guidance now lives in the Studio app docs."
|
|
15
|
+
}, undefined, false, undefined, this),
|
|
16
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
17
|
+
href: "https://app.contractspec.studio/docs",
|
|
18
|
+
className: "btn-primary",
|
|
19
|
+
children: "Open Studio docs"
|
|
20
|
+
}, undefined, false, undefined, this)
|
|
75
21
|
]
|
|
76
22
|
}, undefined, true, undefined, this);
|
|
77
23
|
}
|
|
@@ -1,98 +1,23 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioDeploymentsPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
2
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
3
|
-
var comparisons = [
|
|
4
|
-
{
|
|
5
|
-
label: "Shared",
|
|
6
|
-
points: [
|
|
7
|
-
"Ready in seconds",
|
|
8
|
-
"DEV + STAGE by default",
|
|
9
|
-
"Best for prototypes",
|
|
10
|
-
"Managed SSL"
|
|
11
|
-
]
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
label: "Dedicated",
|
|
15
|
-
points: [
|
|
16
|
-
"Isolated clusters",
|
|
17
|
-
"Choose region + VPC",
|
|
18
|
-
"Rolling deploys",
|
|
19
|
-
"Custom observability sinks"
|
|
20
|
-
]
|
|
21
|
-
}
|
|
22
|
-
];
|
|
23
|
-
var checklist = [
|
|
24
|
-
"Validate specs before deploying (Studio does this automatically).",
|
|
25
|
-
"Tag deployments with a description so rituals have context.",
|
|
26
|
-
"Monitor status cards—failed deploys trigger alerts and auto rollback.",
|
|
27
|
-
"Use the CLI to export deployment manifests if you want infra-as-code."
|
|
28
|
-
];
|
|
29
4
|
function StudioDeploymentsPage() {
|
|
30
5
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
31
|
-
className: "space-y-
|
|
6
|
+
className: "space-y-6 py-12",
|
|
32
7
|
children: [
|
|
33
|
-
/* @__PURE__ */ jsxDEV("
|
|
34
|
-
className: "
|
|
35
|
-
children:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/* @__PURE__ */ jsxDEV("h1", {
|
|
41
|
-
className: "text-4xl font-bold",
|
|
42
|
-
children: "Shared vs dedicated workflows"
|
|
43
|
-
}, undefined, false, undefined, this),
|
|
44
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
45
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
46
|
-
children: "Studio abstracts infra, but you still stay in control. This guide explains how environments are provisioned, monitored, and rolled back."
|
|
47
|
-
}, undefined, false, undefined, this)
|
|
48
|
-
]
|
|
49
|
-
}, undefined, true, undefined, this),
|
|
50
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
51
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
52
|
-
children: comparisons.map((option) => /* @__PURE__ */ jsxDEV("article", {
|
|
53
|
-
className: "card-subtle space-y-2 p-6",
|
|
54
|
-
children: [
|
|
55
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
56
|
-
className: "text-2xl font-semibold",
|
|
57
|
-
children: [
|
|
58
|
-
option.label,
|
|
59
|
-
" deployments"
|
|
60
|
-
]
|
|
61
|
-
}, undefined, true, undefined, this),
|
|
62
|
-
/* @__PURE__ */ jsxDEV("ul", {
|
|
63
|
-
className: "space-y-1 text-sm",
|
|
64
|
-
children: option.points.map((point) => /* @__PURE__ */ jsxDEV("li", {
|
|
65
|
-
children: [
|
|
66
|
-
"• ",
|
|
67
|
-
point
|
|
68
|
-
]
|
|
69
|
-
}, point, true, undefined, this))
|
|
70
|
-
}, undefined, false, undefined, this)
|
|
71
|
-
]
|
|
72
|
-
}, option.label, true, undefined, this))
|
|
8
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
9
|
+
className: "text-3xl font-bold",
|
|
10
|
+
children: "Studio docs moved"
|
|
11
|
+
}, undefined, false, undefined, this),
|
|
12
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
13
|
+
className: "text-muted-foreground text-sm",
|
|
14
|
+
children: "Deployment guidance now lives in the Studio app docs."
|
|
73
15
|
}, undefined, false, undefined, this),
|
|
74
|
-
/* @__PURE__ */ jsxDEV(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
children: "Health & rollback"
|
|
80
|
-
}, undefined, false, undefined, this),
|
|
81
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
82
|
-
className: "text-muted-foreground text-sm",
|
|
83
|
-
children: "Every deployment emits health events. If a check fails, Studio pauses traffic and offers rollback controls with diff context."
|
|
84
|
-
}, undefined, false, undefined, this),
|
|
85
|
-
/* @__PURE__ */ jsxDEV("ul", {
|
|
86
|
-
className: "space-y-2 text-sm",
|
|
87
|
-
children: checklist.map((item) => /* @__PURE__ */ jsxDEV("li", {
|
|
88
|
-
children: [
|
|
89
|
-
"• ",
|
|
90
|
-
item
|
|
91
|
-
]
|
|
92
|
-
}, item, true, undefined, this))
|
|
93
|
-
}, undefined, false, undefined, this)
|
|
94
|
-
]
|
|
95
|
-
}, undefined, true, undefined, this)
|
|
16
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
17
|
+
href: "https://app.contractspec.studio/docs",
|
|
18
|
+
className: "btn-primary",
|
|
19
|
+
children: "Open Studio docs"
|
|
20
|
+
}, undefined, false, undefined, this)
|
|
96
21
|
]
|
|
97
22
|
}, undefined, true, undefined, this);
|
|
98
23
|
}
|
|
@@ -1,91 +1,23 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioGettingStartedPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
2
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
3
|
-
var steps = [
|
|
4
|
-
{
|
|
5
|
-
title: "1. Create a Studio workspace",
|
|
6
|
-
body: "Sign in, pick “Studio managed” as product, and invite teammates. We provision the workspace plus default shared environments."
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
title: "2. Add your first project",
|
|
10
|
-
body: "Click “New project”, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later."
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
title: "3. Author a spec",
|
|
14
|
-
body: "Use the Visual Builder or Spec Editor. Pick “Capability” as type and describe the operation (e.g., capture donation)."
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
title: "4. Deploy to shared infra",
|
|
18
|
-
body: "Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically."
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
title: "5. Wire integrations",
|
|
22
|
-
body: "From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers."
|
|
23
|
-
}
|
|
24
|
-
];
|
|
25
4
|
function StudioGettingStartedPage() {
|
|
26
5
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
27
|
-
className: "space-y-
|
|
6
|
+
className: "space-y-6 py-12",
|
|
28
7
|
children: [
|
|
29
|
-
/* @__PURE__ */ jsxDEV("
|
|
30
|
-
className: "
|
|
31
|
-
children:
|
|
32
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
33
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
34
|
-
children: "Getting started"
|
|
35
|
-
}, undefined, false, undefined, this),
|
|
36
|
-
/* @__PURE__ */ jsxDEV("h1", {
|
|
37
|
-
className: "text-4xl font-bold",
|
|
38
|
-
children: "Launch your first Studio project"
|
|
39
|
-
}, undefined, false, undefined, this),
|
|
40
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
41
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
42
|
-
children: "This short guide takes you from workspace creation to the first deployment. Every step is mobile-friendly and safe to undo."
|
|
43
|
-
}, undefined, false, undefined, this)
|
|
44
|
-
]
|
|
45
|
-
}, undefined, true, undefined, this),
|
|
46
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
47
|
-
className: "grid gap-4",
|
|
48
|
-
children: steps.map((step) => /* @__PURE__ */ jsxDEV("article", {
|
|
49
|
-
className: "card-subtle space-y-2 p-6",
|
|
50
|
-
children: [
|
|
51
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
52
|
-
className: "text-xl font-semibold",
|
|
53
|
-
children: step.title
|
|
54
|
-
}, undefined, false, undefined, this),
|
|
55
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
56
|
-
className: "text-muted-foreground text-sm",
|
|
57
|
-
children: step.body
|
|
58
|
-
}, undefined, false, undefined, this)
|
|
59
|
-
]
|
|
60
|
-
}, step.title, true, undefined, this))
|
|
8
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
9
|
+
className: "text-3xl font-bold",
|
|
10
|
+
children: "Studio docs moved"
|
|
61
11
|
}, undefined, false, undefined, this),
|
|
62
|
-
/* @__PURE__ */ jsxDEV("
|
|
63
|
-
className: "
|
|
64
|
-
children:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
children: "Prefer automation? Use the CLI to pull specs and push overlays."
|
|
72
|
-
}, undefined, false, undefined, this),
|
|
73
|
-
/* @__PURE__ */ jsxDEV("pre", {
|
|
74
|
-
className: "bg-muted/40 border-border overflow-auto rounded-xl border p-4 text-left font-mono text-sm",
|
|
75
|
-
children: `# Authenticate
|
|
76
|
-
cs login
|
|
77
|
-
|
|
78
|
-
# List projects
|
|
79
|
-
cs studio projects list
|
|
80
|
-
|
|
81
|
-
# Pull specs locally
|
|
82
|
-
cs studio specs pull <project-id>
|
|
83
|
-
|
|
84
|
-
# Push after editing
|
|
85
|
-
cs studio specs push <project-id>`
|
|
86
|
-
}, undefined, false, undefined, this)
|
|
87
|
-
]
|
|
88
|
-
}, undefined, true, undefined, this)
|
|
12
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
13
|
+
className: "text-muted-foreground text-sm",
|
|
14
|
+
children: "The latest getting-started guide now lives in the Studio app docs."
|
|
15
|
+
}, undefined, false, undefined, this),
|
|
16
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
17
|
+
href: "https://app.contractspec.studio/docs",
|
|
18
|
+
className: "btn-primary",
|
|
19
|
+
children: "Open Studio docs"
|
|
20
|
+
}, undefined, false, undefined, this)
|
|
89
21
|
]
|
|
90
22
|
}, undefined, true, undefined, this);
|
|
91
23
|
}
|
|
@@ -1,69 +1,23 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioIntegrationsPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
2
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
3
|
-
var flow = [
|
|
4
|
-
{
|
|
5
|
-
title: "Connect a provider",
|
|
6
|
-
body: "Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately."
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
title: "Schedule syncs",
|
|
10
|
-
body: "Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp."
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
title: "Index knowledge",
|
|
14
|
-
body: "Add documentation or API specs as knowledge sources. Reindex whenever files change."
|
|
15
|
-
}
|
|
16
|
-
];
|
|
17
4
|
function StudioIntegrationsPage() {
|
|
18
5
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
19
|
-
className: "space-y-
|
|
6
|
+
className: "space-y-6 py-12",
|
|
20
7
|
children: [
|
|
21
|
-
/* @__PURE__ */ jsxDEV("
|
|
22
|
-
className: "
|
|
23
|
-
children:
|
|
24
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
25
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
26
|
-
children: "Integration hub"
|
|
27
|
-
}, undefined, false, undefined, this),
|
|
28
|
-
/* @__PURE__ */ jsxDEV("h1", {
|
|
29
|
-
className: "text-4xl font-bold",
|
|
30
|
-
children: "Unified connections with BYOK"
|
|
31
|
-
}, undefined, false, undefined, this),
|
|
32
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
33
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
34
|
-
children: "Manage SaaS providers and knowledge sources without scattering secrets across tools. Studio gives you a simple card layout plus CLI automation."
|
|
35
|
-
}, undefined, false, undefined, this)
|
|
36
|
-
]
|
|
37
|
-
}, undefined, true, undefined, this),
|
|
38
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
39
|
-
className: "grid gap-4 md:grid-cols-3",
|
|
40
|
-
children: flow.map((step) => /* @__PURE__ */ jsxDEV("article", {
|
|
41
|
-
className: "card-subtle space-y-2 p-6",
|
|
42
|
-
children: [
|
|
43
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
44
|
-
className: "text-xl font-semibold",
|
|
45
|
-
children: step.title
|
|
46
|
-
}, undefined, false, undefined, this),
|
|
47
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
48
|
-
className: "text-muted-foreground text-sm",
|
|
49
|
-
children: step.body
|
|
50
|
-
}, undefined, false, undefined, this)
|
|
51
|
-
]
|
|
52
|
-
}, step.title, true, undefined, this))
|
|
8
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
9
|
+
className: "text-3xl font-bold",
|
|
10
|
+
children: "Studio docs moved"
|
|
53
11
|
}, undefined, false, undefined, this),
|
|
54
|
-
/* @__PURE__ */ jsxDEV("
|
|
55
|
-
className: "
|
|
56
|
-
children:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
children: "Every integration exposes sync logs and failure alerts. Use the webhook to forward sync events to Slack or PagerDuty."
|
|
64
|
-
}, undefined, false, undefined, this)
|
|
65
|
-
]
|
|
66
|
-
}, undefined, true, undefined, this)
|
|
12
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
13
|
+
className: "text-muted-foreground text-sm",
|
|
14
|
+
children: "Integration guides now live in the Studio app docs."
|
|
15
|
+
}, undefined, false, undefined, this),
|
|
16
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
17
|
+
href: "https://app.contractspec.studio/docs",
|
|
18
|
+
className: "btn-primary",
|
|
19
|
+
children: "Open Studio docs"
|
|
20
|
+
}, undefined, false, undefined, this)
|
|
67
21
|
]
|
|
68
22
|
}, undefined, true, undefined, this);
|
|
69
23
|
}
|
|
@@ -1,71 +1,101 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioOverviewPage.tsx
|
|
2
2
|
import Link from "@contractspec/lib.ui-link";
|
|
3
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
4
|
-
var
|
|
4
|
+
var coreLoop = [
|
|
5
5
|
{
|
|
6
|
-
title: "
|
|
7
|
-
body: "
|
|
8
|
-
href: "/docs/studio/getting-started"
|
|
6
|
+
title: "Evidence",
|
|
7
|
+
body: "Ingest product signals from meetings, support, analytics, code reviews, docs, and Slack."
|
|
9
8
|
},
|
|
10
9
|
{
|
|
11
|
-
title: "
|
|
12
|
-
body: "
|
|
13
|
-
href: "/docs/studio/visual-builder"
|
|
10
|
+
title: "Correlation",
|
|
11
|
+
body: "Cluster signals into scored patterns with hybrid heuristics plus AI signature extraction."
|
|
14
12
|
},
|
|
15
13
|
{
|
|
16
|
-
title: "
|
|
17
|
-
body: "
|
|
18
|
-
href: "/docs/studio/deployments"
|
|
14
|
+
title: "Decision",
|
|
15
|
+
body: "Create timeboxed focus zones and evidence-backed briefs with citation chains."
|
|
19
16
|
},
|
|
20
17
|
{
|
|
21
|
-
title: "
|
|
22
|
-
body: "
|
|
23
|
-
href: "/docs/studio/byok"
|
|
18
|
+
title: "Change",
|
|
19
|
+
body: "Compile patch intents into spec diffs, deterministic impact reports, and task packs."
|
|
24
20
|
},
|
|
25
21
|
{
|
|
26
|
-
title: "
|
|
27
|
-
body: "
|
|
28
|
-
|
|
22
|
+
title: "Export",
|
|
23
|
+
body: "Push deliverables to Linear, Jira, Notion, and GitHub with full decision context."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "Check + Autopilot",
|
|
27
|
+
body: "Verify outcomes, capture learning dividends, and automate safely with policy gates."
|
|
29
28
|
}
|
|
30
29
|
];
|
|
31
30
|
function StudioOverviewPage() {
|
|
32
31
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
33
|
-
className: "space-y-
|
|
32
|
+
className: "space-y-12 py-16",
|
|
34
33
|
children: [
|
|
35
34
|
/* @__PURE__ */ jsxDEV("section", {
|
|
36
|
-
className: "section-padding",
|
|
35
|
+
className: "section-padding space-y-4",
|
|
37
36
|
children: [
|
|
38
37
|
/* @__PURE__ */ jsxDEV("p", {
|
|
39
38
|
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
40
|
-
children: "Studio
|
|
39
|
+
children: "ContractSpec Studio"
|
|
41
40
|
}, undefined, false, undefined, this),
|
|
42
41
|
/* @__PURE__ */ jsxDEV("h1", {
|
|
43
|
-
className: "
|
|
44
|
-
children: "
|
|
42
|
+
className: "text-4xl font-bold md:text-5xl",
|
|
43
|
+
children: "Compiler for product truth"
|
|
45
44
|
}, undefined, false, undefined, this),
|
|
46
45
|
/* @__PURE__ */ jsxDEV("p", {
|
|
47
|
-
className: "text-muted-foreground
|
|
48
|
-
children: "ContractSpec Studio
|
|
46
|
+
className: "text-muted-foreground max-w-3xl text-lg",
|
|
47
|
+
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:"
|
|
48
|
+
}, undefined, false, undefined, this),
|
|
49
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
50
|
+
className: "text-muted-foreground font-mono text-sm",
|
|
51
|
+
children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
|
|
49
52
|
}, undefined, false, undefined, this)
|
|
50
53
|
]
|
|
51
54
|
}, undefined, true, undefined, this),
|
|
52
55
|
/* @__PURE__ */ jsxDEV("section", {
|
|
53
|
-
className: "section-padding grid gap-4",
|
|
54
|
-
children:
|
|
55
|
-
|
|
56
|
-
className: "card-subtle group space-y-2 p-6 transition hover:border-violet-500/40",
|
|
56
|
+
className: "section-padding grid gap-4 md:grid-cols-2",
|
|
57
|
+
children: coreLoop.map((step) => /* @__PURE__ */ jsxDEV("article", {
|
|
58
|
+
className: "card-subtle space-y-2 p-6",
|
|
57
59
|
children: [
|
|
58
60
|
/* @__PURE__ */ jsxDEV("h2", {
|
|
59
|
-
className: "text-xl font-semibold
|
|
60
|
-
children:
|
|
61
|
+
className: "text-xl font-semibold",
|
|
62
|
+
children: step.title
|
|
61
63
|
}, undefined, false, undefined, this),
|
|
62
64
|
/* @__PURE__ */ jsxDEV("p", {
|
|
63
65
|
className: "text-muted-foreground text-sm",
|
|
64
|
-
children:
|
|
66
|
+
children: step.body
|
|
65
67
|
}, undefined, false, undefined, this)
|
|
66
68
|
]
|
|
67
|
-
},
|
|
68
|
-
}, undefined, false, undefined, this)
|
|
69
|
+
}, step.title, true, undefined, this))
|
|
70
|
+
}, undefined, false, undefined, this),
|
|
71
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
72
|
+
className: "section-padding card-subtle space-y-4 p-6",
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
75
|
+
className: "text-2xl font-semibold",
|
|
76
|
+
children: "Use Studio now"
|
|
77
|
+
}, undefined, false, undefined, this),
|
|
78
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
79
|
+
className: "text-muted-foreground text-sm",
|
|
80
|
+
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."
|
|
81
|
+
}, undefined, false, undefined, this),
|
|
82
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
83
|
+
className: "flex flex-wrap gap-3",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
86
|
+
href: "https://app.contractspec.studio",
|
|
87
|
+
className: "btn-primary",
|
|
88
|
+
children: "Try Studio"
|
|
89
|
+
}, undefined, false, undefined, this),
|
|
90
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
91
|
+
href: "https://app.contractspec.studio/docs",
|
|
92
|
+
className: "btn-ghost",
|
|
93
|
+
children: "Read Studio docs"
|
|
94
|
+
}, undefined, false, undefined, this)
|
|
95
|
+
]
|
|
96
|
+
}, undefined, true, undefined, this)
|
|
97
|
+
]
|
|
98
|
+
}, undefined, true, undefined, this)
|
|
69
99
|
]
|
|
70
100
|
}, undefined, true, undefined, this);
|
|
71
101
|
}
|