@contractspec/bundle.library 3.8.11 → 3.9.0
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 +290 -282
- package/CHANGELOG.md +68 -0
- package/dist/application/index.js +11 -11
- package/dist/application/mcp/cliMcp.js +6 -6
- package/dist/application/mcp/cliMcp.onboarding.d.ts +4 -0
- package/dist/application/mcp/cliMcp.onboarding.js +2 -0
- package/dist/application/mcp/cliMcp.test.d.ts +1 -0
- package/dist/application/mcp/contractsMcp.js +2 -2
- package/dist/application/mcp/contractsMcp.test.d.ts +1 -0
- package/dist/application/mcp/contractsMcpAdoptionTools.d.ts +3 -0
- package/dist/application/mcp/contractsMcpAdoptionTools.js +2 -0
- package/dist/application/mcp/contractsMcpResources.js +1 -1
- package/dist/application/mcp/contractsMcpTools.js +1 -1
- package/dist/application/mcp/contractsMcpTypes.d.ts +16 -0
- package/dist/application/mcp/index.js +11 -11
- package/dist/components/docs/DocsIndexPage.js +1 -1
- package/dist/components/docs/docsManifest.js +1 -1
- package/dist/components/docs/examples/DocsExamplesPage.js +1 -17
- package/dist/components/docs/examples/ExampleShowcasePage.d.ts +1 -1
- package/dist/components/docs/examples/ExampleShowcasePage.js +2 -17
- package/dist/components/docs/examples/exampleShowcaseData.d.ts +2 -2
- package/dist/components/docs/examples/exampleShowcaseData.js +2 -17
- package/dist/components/docs/examples/exampleShowcaseData.test.d.ts +1 -0
- package/dist/components/docs/examples/index.js +2 -17
- package/dist/components/docs/getting-started/CLIPage.js +5 -4
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +44 -67
- package/dist/components/docs/getting-started/StartHerePage.js +4 -2
- package/dist/components/docs/getting-started/index.js +56 -76
- package/dist/components/docs/guides/GuideConnectInRepoPage.js +29 -4
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
- package/dist/components/docs/guides/GuideReleaseCapsulesPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +16 -0
- package/dist/components/docs/guides/GuidesIndexPage.js +1 -1
- package/dist/components/docs/guides/index.d.ts +1 -0
- package/dist/components/docs/guides/index.js +93 -39
- package/dist/components/docs/index.js +572 -421
- package/dist/components/docs/libraries/LibrariesContractsPage.js +43 -18
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +43 -31
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +42 -16
- package/dist/components/docs/libraries/LibrariesUIKitWebPage.d.ts +1 -0
- package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +47 -0
- package/dist/components/docs/libraries/index.d.ts +1 -0
- package/dist/components/docs/libraries/index.js +221 -113
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
- package/dist/components/docs/specs/SpecsConnectPage.js +4 -2
- package/dist/components/docs/specs/SpecsDataViewsPage.js +39 -32
- package/dist/components/docs/specs/index.js +65 -41
- package/dist/index.js +583 -432
- package/dist/node/application/index.js +11 -11
- package/dist/node/application/mcp/cliMcp.js +6 -6
- package/dist/node/application/mcp/cliMcp.onboarding.js +1 -0
- package/dist/node/application/mcp/contractsMcp.js +2 -2
- package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -0
- package/dist/node/application/mcp/contractsMcpResources.js +1 -1
- package/dist/node/application/mcp/contractsMcpTools.js +1 -1
- package/dist/node/application/mcp/index.js +11 -11
- package/dist/node/components/docs/DocsIndexPage.js +1 -1
- package/dist/node/components/docs/docsManifest.js +1 -1
- package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -17
- package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -17
- package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -17
- package/dist/node/components/docs/examples/index.js +2 -17
- package/dist/node/components/docs/getting-started/CLIPage.js +5 -4
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +44 -67
- package/dist/node/components/docs/getting-started/StartHerePage.js +4 -2
- package/dist/node/components/docs/getting-started/index.js +56 -76
- package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +29 -4
- package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
- package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +15 -0
- package/dist/node/components/docs/guides/GuidesIndexPage.js +1 -1
- package/dist/node/components/docs/guides/index.js +93 -39
- package/dist/node/components/docs/index.js +572 -421
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +43 -18
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +43 -31
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +42 -16
- package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +46 -0
- package/dist/node/components/docs/libraries/index.js +221 -113
- package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
- package/dist/node/components/docs/specs/SpecsConnectPage.js +4 -2
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +39 -32
- package/dist/node/components/docs/specs/index.js +65 -41
- package/dist/node/index.js +583 -432
- package/package.json +66 -17
- package/src/application/mcp/cliMcp.onboarding.ts +297 -0
- package/src/application/mcp/cliMcp.test.ts +99 -0
- package/src/application/mcp/cliMcp.ts +30 -3
- package/src/application/mcp/contractsMcp.test.ts +65 -0
- package/src/application/mcp/contractsMcpAdoptionTools.ts +131 -0
- package/src/application/mcp/contractsMcpResources.ts +49 -0
- package/src/application/mcp/contractsMcpTools.ts +2 -0
- package/src/application/mcp/contractsMcpTypes.ts +16 -0
- package/src/components/docs/docsManifest.ts +12 -0
- package/src/components/docs/examples/DocsExamplesPage.tsx +6 -14
- package/src/components/docs/examples/ExampleShowcasePage.tsx +22 -18
- package/src/components/docs/examples/exampleShowcaseData.test.ts +22 -0
- package/src/components/docs/examples/exampleShowcaseData.ts +75 -50
- package/src/components/docs/generated/docs-index._common.json +2008 -1691
- package/src/components/docs/generated/docs-index.agent-console.json +377 -377
- package/src/components/docs/generated/docs-index.ai-chat-assistant.json +17 -17
- package/src/components/docs/generated/docs-index.ai-chat.json +105 -105
- package/src/components/docs/generated/docs-index.ai-support-bot.json +9 -9
- package/src/components/docs/generated/docs-index.analytics-dashboard.json +169 -169
- package/src/components/docs/generated/docs-index.app-config.json +137 -137
- package/src/components/docs/generated/docs-index.artisan-knowledge-product.json +17 -17
- package/src/components/docs/generated/docs-index.artisan-payments-stripe.json +33 -33
- package/src/components/docs/generated/docs-index.audit-trail.json +49 -49
- package/src/components/docs/generated/docs-index.calendar-google.json +9 -9
- package/src/components/docs/generated/docs-index.content-generation.json +9 -9
- package/src/components/docs/generated/docs-index.control-plane.json +17 -17
- package/src/components/docs/generated/docs-index.crm-pipeline.json +161 -161
- package/src/components/docs/generated/docs-index.data-grid-showcase.json +25 -17
- package/src/components/docs/generated/docs-index.defineExample.json +9 -9
- package/src/components/docs/generated/docs-index.email-gmail.json +9 -9
- package/src/components/docs/generated/docs-index.feature-flags.json +217 -217
- package/src/components/docs/generated/docs-index.files.json +177 -177
- package/src/components/docs/generated/docs-index.generated.ts +20 -20
- package/src/components/docs/generated/docs-index.harness-lab.json +9 -9
- package/src/components/docs/generated/docs-index.health.json +97 -97
- package/src/components/docs/generated/docs-index.identity-rbac.json +313 -313
- package/src/components/docs/generated/docs-index.in-app-docs.json +9 -9
- package/src/components/docs/generated/docs-index.integration-hub.json +265 -265
- package/src/components/docs/generated/docs-index.integration-posthog.json +9 -9
- package/src/components/docs/generated/docs-index.integration-stripe.json +9 -9
- package/src/components/docs/generated/docs-index.integration-supabase.json +9 -9
- package/src/components/docs/generated/docs-index.jobs.json +137 -137
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +129 -129
- package/src/components/docs/generated/docs-index.knowledge-canon.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +49 -49
- package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +49 -49
- package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-registry.json +33 -33
- package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +49 -49
- package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +9 -9
- package/src/components/docs/generated/docs-index.learning-journey.json +241 -217
- package/src/components/docs/generated/docs-index.learning-patterns.json +9 -9
- package/src/components/docs/generated/docs-index.lifecycle-cli.json +9 -9
- package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +9 -9
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +65 -57
- package/src/components/docs/generated/docs-index.manifest.json +432 -432
- package/src/components/docs/generated/docs-index.marketplace.json +337 -337
- package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +9 -9
- package/src/components/docs/generated/docs-index.meeting-recorder.json +49 -49
- package/src/components/docs/generated/docs-index.messaging-agent-actions.json +17 -17
- package/src/components/docs/generated/docs-index.metrics.json +201 -201
- package/src/components/docs/generated/docs-index.minimal.json +17 -17
- package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +33 -33
- package/src/components/docs/generated/docs-index.notifications.json +65 -65
- package/src/components/docs/generated/docs-index.openbanking-powens.json +9 -9
- package/src/components/docs/generated/docs-index.openbanking.json +65 -65
- package/src/components/docs/generated/docs-index.opencode-cli.json +17 -17
- package/src/components/docs/generated/docs-index.personalization.json +9 -9
- package/src/components/docs/generated/docs-index.platform-acp.json +137 -137
- package/src/components/docs/generated/docs-index.platform-agent.json +201 -185
- package/src/components/docs/generated/docs-index.platform-context.json +121 -105
- package/src/components/docs/generated/docs-index.platform-control-plane.json +321 -321
- package/src/components/docs/generated/docs-index.platform-database.json +89 -89
- package/src/components/docs/generated/docs-index.platform-docs.json +161 -153
- package/src/components/docs/generated/docs-index.platform-harness.json +177 -177
- package/src/components/docs/generated/docs-index.platform-integrations.json +329 -329
- package/src/components/docs/generated/docs-index.platform-knowledge.json +57 -57
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +217 -185
- package/src/components/docs/generated/docs-index.pocket-family-office.json +129 -129
- package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +9 -9
- package/src/components/docs/generated/docs-index.product-intent.json +9 -9
- package/src/components/docs/generated/docs-index.project-management-sync.json +9 -9
- package/src/components/docs/generated/docs-index.saas-boilerplate.json +209 -209
- package/src/components/docs/generated/docs-index.service-business-os.json +193 -193
- package/src/components/docs/generated/docs-index.team-hub.json +185 -185
- package/src/components/docs/generated/docs-index.unknown.json +521 -521
- package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +81 -81
- package/src/components/docs/generated/docs-index.video-api-showcase.json +33 -33
- package/src/components/docs/generated/docs-index.video-docs-terminal.json +9 -9
- package/src/components/docs/generated/docs-index.video-marketing-clip.json +9 -9
- package/src/components/docs/generated/docs-index.visualization-showcase.json +17 -17
- package/src/components/docs/generated/docs-index.voice-providers.json +9 -9
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +153 -153
- package/src/components/docs/generated/docs-index.workflow-system.json +433 -433
- package/src/components/docs/generated/docs-index.workspace-cli.json +9 -9
- package/src/components/docs/getting-started/CLIPage.tsx +10 -2
- package/src/components/docs/getting-started/DataViewTutorialPage.tsx +63 -70
- package/src/components/docs/getting-started/StartHerePage.tsx +10 -9
- package/src/components/docs/guides/GuideConnectInRepoPage.tsx +52 -3
- package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +55 -6
- package/src/components/docs/guides/GuideReleaseCapsulesPage.tsx +147 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +7 -0
- package/src/components/docs/guides/index.ts +1 -0
- package/src/components/docs/libraries/LibrariesContractsPage.tsx +72 -27
- package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +67 -61
- package/src/components/docs/libraries/LibrariesOverviewPage.tsx +7 -1
- package/src/components/docs/libraries/LibrariesUIKitPage.tsx +63 -25
- package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +115 -0
- package/src/components/docs/libraries/index.ts +1 -0
- package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +58 -3
- package/src/components/docs/specs/SpecsConnectPage.tsx +30 -0
- package/src/components/docs/specs/SpecsDataViewsPage.tsx +63 -42
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var i=[{key:"start",title:"Start",description:"Install ContractSpec, wire a first contract, and adopt it into an existing codebase."},{key:"core-model",title:"Core Model",description:"Learn how contracts, generated surfaces, policies, overlays, and safe regeneration fit together."},{key:"build",title:"Build",description:"Use practical guides, libraries, architecture patterns, and examples to ship real surfaces."},{key:"operate",title:"Operate",description:"Run the system safely with governance, auditability, tracing, and operator-grade controls."},{key:"integrations",title:"Integrations",description:"Connect models, messaging, storage, payments, search, and external systems through typed bindings."},{key:"reference",title:"Reference",description:"Search generated contract docs, inspect example packages, and navigate the system as source of truth."},{key:"studio",title:"Studio",description:"Understand what Studio adds on top of the open system and when to adopt it."}],o=[{href:"/docs",title:"Documentation",description:"OSS-first documentation for ContractSpec, the open spec system for AI-native software.",audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/start-here",title:"Start here",description:"The fastest path from install to your first contract and generated surface.",section:"start",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/installation",title:"Installation",description:"Install the CLI and core packages, then prepare a workspace for incremental adoption.",section:"start",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/hello-world",title:"Hello world",description:"Define a first operation, generate the surface, and verify the end-to-end loop.",section:"start",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/compatibility",title:"Compatibility",description:"Check the supported runtimes, package managers, and adoption assumptions before rollout.",section:"start",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/tools",title:"Developer tools",description:"Use the CLI, editors, and helper tooling that make the OSS workflow practical day to day.",section:"start",order:50,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/troubleshooting",title:"Troubleshooting",description:"Resolve the common installation, validation, and runtime mistakes you hit during first adoption.",section:"start",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs",title:"Contracts and specs",description:"Understand the spec model that drives generated surfaces, validation, policy, and safe regeneration.",section:"core-model",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/capabilities",title:"Capabilities",description:"Model commands, queries, presentations, and events as explicit contract surfaces.",section:"core-model",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/dataviews",title:"Data views",description:"Define queryable, presentable views that stay aligned with the rest of the system.",section:"core-model",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/workflows",title:"Workflows",description:"Compose multi-step behavior from typed contracts, policies, and runtime orchestration.",section:"core-model",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/policy",title:"Policy",description:"Apply consistent governance, access rules, and risk controls across every surface.",section:"core-model",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/specs/overlays",title:"Overlays",description:"Customize generated surfaces safely without forking the system or breaking regeneration.",section:"core-model",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/module-bundles",title:"Module bundles",description:"Define AI-native surfaces as typed bundle specs that resolve into personalized, auditable runtime plans.",section:"core-model",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/connect",title:"ContractSpec Connect",description:"Guard coding-agent edits and shell actions with task-scoped context, plan packets, patch verdicts, and review packets.",section:"core-model",order:80,navTitle:"Connect",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/specs/builder-control-plane",title:"Builder control plane",description:"Route multimodal authoring work through governed builder contracts, provider policies, readiness gates, and mobile review flows.",section:"core-model",order:90,primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/guides/contract-types",title:"Contract types",description:"Choose the right contract surface for the behavior you want to make explicit.",section:"core-model",order:100,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides",title:"Guides",description:"Follow concrete adoption paths for existing apps, generated docs, CI gating, and typed surfaces.",section:"build",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/nextjs-one-endpoint",title:"Adopt one endpoint in Next.js",description:"Start with one endpoint, one contract, and one generated surface in an existing Next.js app.",section:"build",order:20,navTitle:"Next.js endpoint",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/import-existing-codebases",title:"Import an existing codebase",description:"Stabilize a live codebase incrementally instead of rewriting it from scratch.",section:"build",order:30,navTitle:"Import existing code",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/spec-validation-and-typing",title:"Validation and typing",description:"Keep runtime validation and TypeScript types aligned from the same source definitions.",section:"build",order:40,navTitle:"Validation and typing",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/generate-docs-clients-schemas",title:"Generate docs, clients, and schemas",description:"Export stable docs and client-facing artifacts from the same contract layer.",section:"build",order:50,navTitle:"Generate docs and clients",primaryNav:!0,audience:"oss",ctaMode:"reference"},{href:"/docs/guides/docs-generation-pipeline",title:"Docs generation pipeline",description:"Feed generated docs into the public docs site without breaking source-of-truth ownership.",section:"build",order:60,navTitle:"Docs pipeline",primaryNav:!0,audience:"oss",ctaMode:"reference"},{href:"/docs/guides/first-module-bundle",title:"Build a first module bundle",description:"Define one bundle spec, resolve a personalized surface plan, and render it through the React host layer.",section:"build",order:65,navTitle:"First module bundle",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/host-builder-workbench",title:"Host the Builder workbench",description:"Load a Builder workspace snapshot, wire common commands, and keep runtime mode plus mobile review flows explicit.",section:"build",order:66,navTitle:"Host Builder workbench",primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/guides/connect-in-a-repo",title:"Use Connect in a repo",description:"Enable Connect in workspace config, verify agent actions, and inspect local review and replay artifacts.",section:"build",order:67,navTitle:"Connect in a repo",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/libraries",title:"Libraries overview",description:"Navigate the core libraries, runtimes, and system packages that make up the open foundation.",section:"build",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/architecture",title:"Architecture",description:"See how the spec layer, runtimes, integrations, and multi-surface outputs fit together.",section:"build",order:80,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/safety",title:"Operate safely",description:"Add auditability, migrations, policy controls, and trustworthy release behavior from the start.",section:"operate",order:10,navTitle:"Safety overview",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/guides/ci-contract-diff-gating",title:"CI diff gating",description:"Use deterministic checks to block drift and risky changes before they reach production.",section:"operate",order:20,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/security-trust",title:"Security and trust",description:"Understand the trust model, artifact validation expectations, and operational boundaries.",section:"operate",order:30,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/auditing",title:"Audit trails",description:"Track changes, policy decisions, and operational actions with a clear evidence trail.",section:"operate",order:40,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/migrations",title:"Migrations",description:"Evolve schemas and data safely without abandoning the contract layer.",section:"operate",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/tenant-isolation",title:"Tenant isolation",description:"Keep tenant data, config, policies, and integrations separated at runtime.",section:"operate",order:60,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/knowledge",title:"Knowledge and context",description:"Bind trusted knowledge sources to the system without losing governance or isolation.",section:"operate",order:70,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/advanced/telemetry",title:"Telemetry",description:"Instrument surfaces, collect evidence, and keep observability aligned with the contract model.",section:"operate",order:80,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/advanced/workflow-monitoring",title:"Workflow monitoring",description:"Observe multi-step execution with enough context to understand failures and regressions.",section:"operate",order:90,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/ops/distributed-tracing",title:"Distributed tracing",description:"Trace contract execution across integrations, workflows, and generated surfaces.",section:"operate",order:100,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/integrations",title:"Integrations overview",description:"Understand the binding model for external services, providers, and tenant-owned connections.",section:"integrations",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/spec-model",title:"Integration spec model",description:"Define what an integration provides before wiring it into an app or runtime.",section:"integrations",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/openai",title:"OpenAI integration",description:"Connect OpenAI through typed capabilities, explicit provider config, and governed runtime usage.",section:"integrations",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/mistral",title:"Mistral integration",description:"Use Mistral through the same provider contract model and runtime guardrails.",section:"integrations",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/qdrant",title:"Qdrant integration",description:"Store and retrieve knowledge embeddings with explicit provider configuration and ownership.",section:"integrations",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/integrations/stripe",title:"Stripe integration",description:"Bind payments and billing behavior without smearing provider logic across the codebase.",section:"integrations",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/twilio",title:"Twilio integration",description:"Handle messaging and telephony through typed transport boundaries and explicit configuration.",section:"integrations",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/github",title:"GitHub integration",description:"Push execution context into GitHub workflows and automation surfaces without hidden glue.",section:"integrations",order:80,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/reference",title:"Contract reference",description:"Browse the generated reference index for public contract surfaces, versions, and examples.",section:"reference",order:10,primaryNav:!0,audience:"reference",ctaMode:"reference"},{href:"/docs/examples",title:"Examples",description:"Explore runnable examples and use them as reference implementations for new systems.",section:"reference",order:20,primaryNav:!0,audience:"reference",ctaMode:"reference"},{href:"/docs/studio",title:"Studio overview",description:"See what Studio adds on top of OSS ContractSpec and when a team should adopt the operating layer.",section:"studio",order:10,primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/manifesto",title:"Manifesto",description:"Why ContractSpec is built as an open system, how incremental adoption works, and why Studio stays additive.",audience:"secondary"},{href:"/docs/intent/contract-first-api",title:"Contract-first API",description:"Use contracts as the durable source of truth for API behavior and generated surfaces.",audience:"secondary"},{href:"/docs/intent/spec-driven-development",title:"Spec-driven development",description:"See how explicit specs stabilize change across APIs, UI, data, and agent-facing surfaces.",audience:"secondary"},{href:"/docs/intent/deterministic-codegen",title:"Deterministic regeneration",description:"Understand safe regeneration, conflict boundaries, and why teams keep control of the output.",audience:"secondary"},{href:"/docs/intent/schema-validation-typescript",title:"Schema validation and TypeScript",description:"Keep schema, runtime validation, and TypeScript behavior aligned without duplicate work.",audience:"secondary"},{href:"/docs/intent/openapi-alternative",title:"OpenAPI alternative",description:"Compare a multi-surface contract system with API-only description tooling.",audience:"secondary"},{href:"/docs/intent/generate-client-from-schema",title:"Generate client from schema",description:"Generate client-facing artifacts from the same source that drives runtime behavior.",audience:"secondary"},{href:"/docs/comparison",title:"Comparison overview",description:"Compare ContractSpec with workflow engines, internal-tool builders, and enterprise orchestration products.",audience:"secondary"},{href:"/docs/comparison/workflow-engines",title:"Workflow engines",description:"Contrast a contract system with workflow-only orchestration approaches.",audience:"secondary"},{href:"/docs/comparison/internal-tool-builders",title:"Internal-tool builders",description:"Compare ContractSpec with builders that optimize for screens instead of durable system contracts.",audience:"secondary"},{href:"/docs/comparison/automation-platforms",title:"Automation platforms",description:"Compare automation-first tools with a system that owns explicit contracts and generated surfaces.",audience:"secondary"},{href:"/docs/comparison/windmill",title:"Windmill comparison",description:"Understand where Windmill fits and where ContractSpec solves a different class of system problem.",audience:"secondary"},{href:"/docs/comparison/enterprise-platforms",title:"Enterprise orchestrators",description:"Compare ContractSpec with enterprise platforms that centralize execution in a closed operating surface.",audience:"secondary"},{href:"/docs/ecosystem/templates",title:"Templates",description:"Use templates and starter systems as proof points and accelerators for OSS adoption.",audience:"secondary"},{href:"/docs/ecosystem/plugins",title:"Plugins",description:"Explore marketplace and editor integrations that support the OSS workflow.",audience:"secondary"},{href:"/docs/ecosystem/registry",title:"Registry",description:"Inspect registry and manifest concepts that help package reusable capability surfaces.",audience:"secondary"}];function c(e){return o.find((t)=>t.href===e)}function s(){return i.map((e)=>({...e,items:o.filter((t)=>t.section===e.key&&t.primaryNav).sort((t,r)=>(t.order??0)-(r.order??0))}))}function a(){return o.filter((e)=>e.primaryNav).sort((e,t)=>i.findIndex((r)=>r.key===e.section)-i.findIndex((r)=>r.key===t.section)||(e.order??0)-(t.order??0))}function d(e){let t=a(),r=t.findIndex((n)=>n.href===e);if(r<0)return{previous:null,next:null};return{previous:t[r-1]??null,next:t[r+1]??null}}function p(){return o.filter((e)=>e.audience==="secondary")}function l(){return s().map((e)=>({...e,featured:e.items.slice(0,3)}))}export{p as getSecondaryDocsPages,a as getPrimaryDocsTraversal,s as getPrimaryDocsSections,c as getDocsPageByHref,d as getDocsNextPrevious,l as getDocsHomeSections,i as DOCS_PRIMARY_SECTIONS,o as DOCS_PAGES};
|
|
2
|
+
var i=[{key:"start",title:"Start",description:"Install ContractSpec, wire a first contract, and adopt it into an existing codebase."},{key:"core-model",title:"Core Model",description:"Learn how contracts, generated surfaces, policies, overlays, and safe regeneration fit together."},{key:"build",title:"Build",description:"Use practical guides, libraries, architecture patterns, and examples to ship real surfaces."},{key:"operate",title:"Operate",description:"Run the system safely with governance, auditability, tracing, and operator-grade controls."},{key:"integrations",title:"Integrations",description:"Connect models, messaging, storage, payments, search, and external systems through typed bindings."},{key:"reference",title:"Reference",description:"Search generated contract docs, inspect example packages, and navigate the system as source of truth."},{key:"studio",title:"Studio",description:"Understand what Studio adds on top of the open system and when to adopt it."}],o=[{href:"/docs",title:"Documentation",description:"OSS-first documentation for ContractSpec, the open spec system for AI-native software.",audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/start-here",title:"Start here",description:"The fastest path from install to your first contract and generated surface.",section:"start",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/installation",title:"Installation",description:"Install the CLI and core packages, then prepare a workspace for incremental adoption.",section:"start",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/hello-world",title:"Hello world",description:"Define a first operation, generate the surface, and verify the end-to-end loop.",section:"start",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/compatibility",title:"Compatibility",description:"Check the supported runtimes, package managers, and adoption assumptions before rollout.",section:"start",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/tools",title:"Developer tools",description:"Use the CLI, editors, and helper tooling that make the OSS workflow practical day to day.",section:"start",order:50,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/getting-started/troubleshooting",title:"Troubleshooting",description:"Resolve the common installation, validation, and runtime mistakes you hit during first adoption.",section:"start",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs",title:"Contracts and specs",description:"Understand the spec model that drives generated surfaces, validation, policy, and safe regeneration.",section:"core-model",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/capabilities",title:"Capabilities",description:"Model commands, queries, presentations, and events as explicit contract surfaces.",section:"core-model",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/dataviews",title:"Data views",description:"Define queryable, presentable views that stay aligned with the rest of the system.",section:"core-model",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/workflows",title:"Workflows",description:"Compose multi-step behavior from typed contracts, policies, and runtime orchestration.",section:"core-model",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/policy",title:"Policy",description:"Apply consistent governance, access rules, and risk controls across every surface.",section:"core-model",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/specs/overlays",title:"Overlays",description:"Customize generated surfaces safely without forking the system or breaking regeneration.",section:"core-model",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/module-bundles",title:"Module bundles",description:"Define AI-native surfaces as typed bundle specs that resolve into personalized, auditable runtime plans.",section:"core-model",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/specs/connect",title:"ContractSpec Connect",description:"Guard coding-agent edits and shell actions with task-scoped context, plan packets, patch verdicts, and review packets.",section:"core-model",order:80,navTitle:"Connect",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/specs/builder-control-plane",title:"Builder control plane",description:"Route multimodal authoring work through governed builder contracts, provider policies, readiness gates, and mobile review flows.",section:"core-model",order:90,primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/guides/contract-types",title:"Contract types",description:"Choose the right contract surface for the behavior you want to make explicit.",section:"core-model",order:100,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides",title:"Guides",description:"Follow concrete adoption paths for existing apps, generated docs, CI gating, and typed surfaces.",section:"build",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/nextjs-one-endpoint",title:"Adopt one endpoint in Next.js",description:"Start with one endpoint, one contract, and one generated surface in an existing Next.js app.",section:"build",order:20,navTitle:"Next.js endpoint",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/import-existing-codebases",title:"Import an existing codebase",description:"Stabilize a live codebase incrementally instead of rewriting it from scratch.",section:"build",order:30,navTitle:"Import existing code",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/spec-validation-and-typing",title:"Validation and typing",description:"Keep runtime validation and TypeScript types aligned from the same source definitions.",section:"build",order:40,navTitle:"Validation and typing",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/generate-docs-clients-schemas",title:"Generate docs, clients, and schemas",description:"Export stable docs and client-facing artifacts from the same contract layer.",section:"build",order:50,navTitle:"Generate docs and clients",primaryNav:!0,audience:"oss",ctaMode:"reference"},{href:"/docs/guides/docs-generation-pipeline",title:"Docs generation pipeline",description:"Feed generated docs into the public docs site without breaking source-of-truth ownership.",section:"build",order:60,navTitle:"Docs pipeline",primaryNav:!0,audience:"oss",ctaMode:"reference"},{href:"/docs/guides/first-module-bundle",title:"Build a first module bundle",description:"Define one bundle spec, resolve a personalized surface plan, and render it through the React host layer.",section:"build",order:65,navTitle:"First module bundle",primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/guides/host-builder-workbench",title:"Host the Builder workbench",description:"Load a Builder workspace snapshot, wire common commands, and keep runtime mode plus mobile review flows explicit.",section:"build",order:66,navTitle:"Host Builder workbench",primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/guides/connect-in-a-repo",title:"Use Connect in a repo",description:"Enable Connect in workspace config, verify agent actions, and inspect local review and replay artifacts.",section:"build",order:67,navTitle:"Connect in a repo",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/libraries",title:"Libraries overview",description:"Navigate the core libraries, runtimes, and system packages that make up the open foundation.",section:"build",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/architecture",title:"Architecture",description:"See how the spec layer, runtimes, integrations, and multi-surface outputs fit together.",section:"build",order:80,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/safety",title:"Operate safely",description:"Add auditability, migrations, policy controls, and trustworthy release behavior from the start.",section:"operate",order:10,navTitle:"Safety overview",primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/guides/ci-contract-diff-gating",title:"CI diff gating",description:"Use deterministic checks to block drift and risky changes before they reach production.",section:"operate",order:20,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/guides/release-capsules",title:"Author release capsules",description:"Pair changesets with structured release capsules, generate release artifacts, and keep changelog plus docs surfaces aligned.",section:"operate",order:25,navTitle:"Release capsules",primaryNav:!0,audience:"operator",ctaMode:"reference"},{href:"/docs/safety/security-trust",title:"Security and trust",description:"Understand the trust model, artifact validation expectations, and operational boundaries.",section:"operate",order:30,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/auditing",title:"Audit trails",description:"Track changes, policy decisions, and operational actions with a clear evidence trail.",section:"operate",order:40,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/migrations",title:"Migrations",description:"Evolve schemas and data safely without abandoning the contract layer.",section:"operate",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/safety/tenant-isolation",title:"Tenant isolation",description:"Keep tenant data, config, policies, and integrations separated at runtime.",section:"operate",order:60,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/knowledge",title:"Knowledge and context",description:"Bind trusted knowledge sources to the system without losing governance or isolation.",section:"operate",order:70,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/advanced/telemetry",title:"Telemetry",description:"Instrument surfaces, collect evidence, and keep observability aligned with the contract model.",section:"operate",order:80,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/advanced/workflow-monitoring",title:"Workflow monitoring",description:"Observe multi-step execution with enough context to understand failures and regressions.",section:"operate",order:90,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/ops/distributed-tracing",title:"Distributed tracing",description:"Trace contract execution across integrations, workflows, and generated surfaces.",section:"operate",order:100,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/integrations",title:"Integrations overview",description:"Understand the binding model for external services, providers, and tenant-owned connections.",section:"integrations",order:10,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/spec-model",title:"Integration spec model",description:"Define what an integration provides before wiring it into an app or runtime.",section:"integrations",order:20,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/openai",title:"OpenAI integration",description:"Connect OpenAI through typed capabilities, explicit provider config, and governed runtime usage.",section:"integrations",order:30,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/mistral",title:"Mistral integration",description:"Use Mistral through the same provider contract model and runtime guardrails.",section:"integrations",order:40,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/qdrant",title:"Qdrant integration",description:"Store and retrieve knowledge embeddings with explicit provider configuration and ownership.",section:"integrations",order:50,primaryNav:!0,audience:"operator",ctaMode:"oss-next"},{href:"/docs/integrations/stripe",title:"Stripe integration",description:"Bind payments and billing behavior without smearing provider logic across the codebase.",section:"integrations",order:60,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/twilio",title:"Twilio integration",description:"Handle messaging and telephony through typed transport boundaries and explicit configuration.",section:"integrations",order:70,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/integrations/github",title:"GitHub integration",description:"Push execution context into GitHub workflows and automation surfaces without hidden glue.",section:"integrations",order:80,primaryNav:!0,audience:"oss",ctaMode:"oss-next"},{href:"/docs/reference",title:"Contract reference",description:"Browse the generated reference index for public contract surfaces, versions, and examples.",section:"reference",order:10,primaryNav:!0,audience:"reference",ctaMode:"reference"},{href:"/docs/examples",title:"Examples",description:"Explore runnable examples and use them as reference implementations for new systems.",section:"reference",order:20,primaryNav:!0,audience:"reference",ctaMode:"reference"},{href:"/docs/studio",title:"Studio overview",description:"See what Studio adds on top of OSS ContractSpec and when a team should adopt the operating layer.",section:"studio",order:10,primaryNav:!0,audience:"studio-bridge",ctaMode:"studio-bridge"},{href:"/docs/manifesto",title:"Manifesto",description:"Why ContractSpec is built as an open system, how incremental adoption works, and why Studio stays additive.",audience:"secondary"},{href:"/docs/intent/contract-first-api",title:"Contract-first API",description:"Use contracts as the durable source of truth for API behavior and generated surfaces.",audience:"secondary"},{href:"/docs/intent/spec-driven-development",title:"Spec-driven development",description:"See how explicit specs stabilize change across APIs, UI, data, and agent-facing surfaces.",audience:"secondary"},{href:"/docs/intent/deterministic-codegen",title:"Deterministic regeneration",description:"Understand safe regeneration, conflict boundaries, and why teams keep control of the output.",audience:"secondary"},{href:"/docs/intent/schema-validation-typescript",title:"Schema validation and TypeScript",description:"Keep schema, runtime validation, and TypeScript behavior aligned without duplicate work.",audience:"secondary"},{href:"/docs/intent/openapi-alternative",title:"OpenAPI alternative",description:"Compare a multi-surface contract system with API-only description tooling.",audience:"secondary"},{href:"/docs/intent/generate-client-from-schema",title:"Generate client from schema",description:"Generate client-facing artifacts from the same source that drives runtime behavior.",audience:"secondary"},{href:"/docs/comparison",title:"Comparison overview",description:"Compare ContractSpec with workflow engines, internal-tool builders, and enterprise orchestration products.",audience:"secondary"},{href:"/docs/comparison/workflow-engines",title:"Workflow engines",description:"Contrast a contract system with workflow-only orchestration approaches.",audience:"secondary"},{href:"/docs/comparison/internal-tool-builders",title:"Internal-tool builders",description:"Compare ContractSpec with builders that optimize for screens instead of durable system contracts.",audience:"secondary"},{href:"/docs/comparison/automation-platforms",title:"Automation platforms",description:"Compare automation-first tools with a system that owns explicit contracts and generated surfaces.",audience:"secondary"},{href:"/docs/comparison/windmill",title:"Windmill comparison",description:"Understand where Windmill fits and where ContractSpec solves a different class of system problem.",audience:"secondary"},{href:"/docs/comparison/enterprise-platforms",title:"Enterprise orchestrators",description:"Compare ContractSpec with enterprise platforms that centralize execution in a closed operating surface.",audience:"secondary"},{href:"/docs/ecosystem/templates",title:"Templates",description:"Use templates and starter systems as proof points and accelerators for OSS adoption.",audience:"secondary"},{href:"/docs/ecosystem/plugins",title:"Plugins",description:"Explore marketplace and editor integrations that support the OSS workflow.",audience:"secondary"},{href:"/docs/ecosystem/registry",title:"Registry",description:"Inspect registry and manifest concepts that help package reusable capability surfaces.",audience:"secondary"}];function c(e){return o.find((t)=>t.href===e)}function n(){return i.map((e)=>({...e,items:o.filter((t)=>t.section===e.key&&t.primaryNav).sort((t,r)=>(t.order??0)-(r.order??0))}))}function a(){return o.filter((e)=>e.primaryNav).sort((e,t)=>i.findIndex((r)=>r.key===e.section)-i.findIndex((r)=>r.key===t.section)||(e.order??0)-(t.order??0))}function d(e){let t=a(),r=t.findIndex((s)=>s.href===e);if(r<0)return{previous:null,next:null};return{previous:t[r-1]??null,next:t[r+1]??null}}function p(){return o.filter((e)=>e.audience==="secondary")}function l(){return n().map((e)=>({...e,featured:e.items.slice(0,3)}))}export{p as getSecondaryDocsPages,a as getPrimaryDocsTraversal,n as getPrimaryDocsSections,c as getDocsPageByHref,d as getDocsNextPrevious,l as getDocsHomeSections,i as DOCS_PRIMARY_SECTIONS,o as DOCS_PAGES};
|
|
@@ -1,18 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
bun run --cwd packages/examples/agent-console test
|
|
4
|
-
bun run --cwd packages/apps/web-landing dev
|
|
5
|
-
|
|
6
|
-
# Open in the browser
|
|
7
|
-
# http://localhost:3000/sandbox?template=agent-console`},"ai-chat-assistant":{key:"ai-chat-assistant",lead:"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.",sandboxHref:"/sandbox?template=ai-chat-assistant",referenceHref:"/docs/reference/ai-chat-assistant/assistant.search",llmsHref:"/llms/example.ai-chat-assistant",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/ai-chat-assistant",localCommands:`bun run --cwd packages/examples/ai-chat-assistant build
|
|
8
|
-
bun run --cwd packages/examples/ai-chat-assistant test
|
|
9
|
-
bun run --cwd packages/apps/web-landing dev
|
|
10
|
-
|
|
11
|
-
# Open in the browser
|
|
12
|
-
# http://localhost:3000/sandbox?template=ai-chat-assistant`},"messaging-agent-actions":{key:"messaging-agent-actions",lead:"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations.",sandboxHref:"/sandbox?template=messaging-agent-actions",referenceHref:"/docs/reference/messaging-agent-actions/messaging.agentActions.process",llmsHref:"/llms/example.messaging-agent-actions",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/messaging-agent-actions",localCommands:`bun run --cwd packages/examples/messaging-agent-actions build
|
|
13
|
-
bun run --cwd packages/examples/messaging-agent-actions test
|
|
14
|
-
bun run --cwd packages/examples/messaging-agent-actions proof
|
|
15
|
-
bun run --cwd packages/apps/web-landing dev
|
|
16
|
-
|
|
17
|
-
# Open in the browser
|
|
18
|
-
# http://localhost:3000/sandbox?template=messaging-agent-actions`}};function o(n){return l[n]}import{ExampleCatalogDataView as c}from"@contractspec/lib.contracts-spec/docs";import{ButtonLink as r,DataViewList as h,StatusChip as m}from"@contractspec/lib.design-system";import{HStack as f,VStack as g}from"@contractspec/lib.ui-kit-web/ui/stack";import{H1 as p,Muted as i}from"@contractspec/lib.ui-kit-web/ui/typography";import{listExamples as b}from"@contractspec/module.examples";import{jsx as a,jsxs as t}from"react/jsx-runtime";function u(n){return`/docs/reference/${n}/${n}`}function w(n){return o(n)?.sandboxHref?`/docs/examples/${n}`:u(n)}function P(){let n=b().map((s)=>{let e=s.meta.title??s.meta.key;return{id:s.meta.key,title:e,summary:s.meta.summary??s.meta.description,route:w(s.meta.key),tags:s.meta.tags,sandboxEnabled:s.surfaces.sandbox.enabled}}).sort((s,e)=>s.title.localeCompare(e.title)),d={...c,view:{...c.view,kind:"list"}};return t(g,{gap:"xl",children:[t(g,{gap:"sm",children:[a(p,{children:"Examples"}),a(i,{children:"Reference implementations for real ContractSpec surfaces. Use them to study adoption patterns, inspect generated artifacts, and validate the OSS workflow against runnable systems."})]}),a(h,{spec:d,items:n,emptyState:a(i,{children:"No examples available."}),renderActions:(s)=>{return t(f,{gap:"xs",justify:"end",children:[s.sandboxEnabled?a(r,{href:`/sandbox?template=${s.id}`,size:"sm",variant:"outline",children:"Sandbox"}):null,a(r,{href:s.route,size:"sm",children:"Reference"}),s.tags?.[0]?a(m,{size:"sm",label:s.tags[0]}):null]})}})]})}export{P as DocsExamplesPage};
|
|
2
|
+
import{ExampleCatalogDataView as F}from"@contractspec/lib.contracts-spec/docs";import{ButtonLink as G,DataViewList as O,StatusChip as Q}from"@contractspec/lib.design-system";import{HStack as R,VStack as I}from"@contractspec/lib.ui-kit-web/ui/stack";import{H1 as T,Muted as J}from"@contractspec/lib.ui-kit-web/ui/typography";import{buildExampleDocsHref as U,listPublicExamples as W}from"@contractspec/module.examples";import{jsx as v,jsxs as A}from"react/jsx-runtime";function f(){let K=W().map((q)=>{let z=q.meta.title??q.meta.key;return{id:q.meta.key,title:z,summary:q.meta.summary??q.meta.description,route:U(q.meta.key),tags:q.meta.tags,sandboxEnabled:q.surfaces.sandbox.enabled}}).sort((q,z)=>q.title.localeCompare(z.title)),N={...F,view:{...F.view,kind:"list"}};return A(I,{gap:"xl",children:[A(I,{gap:"sm",children:[v(T,{children:"Examples"}),v(J,{children:"Reference implementations for real ContractSpec surfaces. Use them to study adoption patterns, inspect generated artifacts, and validate the OSS workflow against runnable systems."})]}),v(O,{spec:N,items:K,emptyState:v(J,{children:"No examples available."}),renderActions:(q)=>{return A(R,{gap:"xs",justify:"end",children:[q.sandboxEnabled?v(G,{href:`/sandbox?template=${q.id}`,size:"sm",variant:"outline",children:"Sandbox"}):null,v(G,{href:q.route,size:"sm",children:"Reference"}),q.tags?.[0]?v(Q,{size:"sm",label:q.tags[0]}):null]})}})]})}export{f as DocsExamplesPage};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
interface ExampleShowcasePageProps {
|
|
2
|
-
exampleKey:
|
|
2
|
+
exampleKey: string;
|
|
3
3
|
}
|
|
4
4
|
export declare function ExampleShowcasePage({ exampleKey }: ExampleShowcasePageProps): import("react/jsx-runtime").JSX.Element | null;
|
|
5
5
|
export {};
|
|
@@ -1,18 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
bun run --cwd packages/apps/web-landing dev
|
|
5
|
-
|
|
6
|
-
# Open in the browser
|
|
7
|
-
# http://localhost:3000/sandbox?template=agent-console`},"ai-chat-assistant":{key:"ai-chat-assistant",lead:"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.",sandboxHref:"/sandbox?template=ai-chat-assistant",referenceHref:"/docs/reference/ai-chat-assistant/assistant.search",llmsHref:"/llms/example.ai-chat-assistant",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/ai-chat-assistant",localCommands:`bun run --cwd packages/examples/ai-chat-assistant build
|
|
8
|
-
bun run --cwd packages/examples/ai-chat-assistant test
|
|
9
|
-
bun run --cwd packages/apps/web-landing dev
|
|
10
|
-
|
|
11
|
-
# Open in the browser
|
|
12
|
-
# http://localhost:3000/sandbox?template=ai-chat-assistant`},"messaging-agent-actions":{key:"messaging-agent-actions",lead:"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations.",sandboxHref:"/sandbox?template=messaging-agent-actions",referenceHref:"/docs/reference/messaging-agent-actions/messaging.agentActions.process",llmsHref:"/llms/example.messaging-agent-actions",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/messaging-agent-actions",localCommands:`bun run --cwd packages/examples/messaging-agent-actions build
|
|
13
|
-
bun run --cwd packages/examples/messaging-agent-actions test
|
|
14
|
-
bun run --cwd packages/examples/messaging-agent-actions proof
|
|
15
|
-
bun run --cwd packages/apps/web-landing dev
|
|
16
|
-
|
|
17
|
-
# Open in the browser
|
|
18
|
-
# http://localhost:3000/sandbox?template=messaging-agent-actions`}};function r(o){return m[o]}import{ButtonLink as n,CodeBlock as p}from"@contractspec/lib.design-system";import d from"@contractspec/lib.ui-link";import{getExample as g}from"@contractspec/module.examples";import{FileCode2 as u,Play as f,TerminalSquare as h}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function y({exampleKey:o}){let t=r(o),s=g(o);if(!t||!s)return null;let i=s.meta.title??s.meta.key,c=s.meta.summary??s.meta.description??"",l=s.entrypoints.packageName;return a("div",{className:"space-y-10",children:[a("section",{className:"space-y-5",children:[e("p",{className:"editorial-kicker",children:"Meetup-ready example"}),e("h1",{className:"editorial-title max-w-5xl",children:i}),e("p",{className:"editorial-subtitle",children:t.lead}),e("p",{className:"editorial-copy max-w-4xl",children:c}),a("div",{className:"flex flex-wrap gap-3",children:[e(n,{href:t.sandboxHref,children:"Open sandbox"}),e(n,{href:t.referenceHref,variant:"outline",children:"Generated reference"})]})]}),a("section",{className:"grid gap-5 lg:grid-cols-3",children:[a("article",{className:"editorial-panel space-y-4",children:[a("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(f,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Sandbox preview"})]}),e("p",{className:"editorial-copy text-sm",children:"Load the same public browser surface used for the prepared live demo."}),e(n,{href:t.sandboxHref,size:"sm",children:"Open preview"})]}),a("article",{className:"editorial-panel space-y-4",children:[a("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(u,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Reference docs"})]}),e("p",{className:"editorial-copy text-sm",children:"Inspect the generated contract-facing material instead of relying on marketing summaries."}),e(n,{href:t.referenceHref,size:"sm",variant:"outline",children:"Open reference"})]}),a("article",{className:"editorial-panel space-y-4",children:[a("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(h,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Package context"})]}),e("p",{className:"editorial-copy text-sm",children:"Use the agent-facing package page for fast repo orientation, then jump to the source directory."}),e("p",{className:"rounded-[18px] border border-border/70 bg-background/75 px-4 py-3 font-mono text-sm",children:l}),a("div",{className:"flex flex-wrap gap-2",children:[e(n,{href:t.llmsHref,size:"sm",variant:"outline",children:"LLMS page"}),e(n,{href:t.repoHref,size:"sm",variant:"outline",children:"GitHub source"})]})]})]}),a("section",{className:"editorial-panel space-y-5",children:[a("div",{className:"space-y-2",children:[e("p",{className:"editorial-kicker",children:"Talk commands"}),e("h2",{className:"editorial-panel-title",children:"Exact local commands for the meetup lane"}),e("p",{className:"editorial-copy text-sm",children:"Use the package build and test first, then launch the web shell and open the prepared sandbox route."})]}),e(p,{language:"bash",filename:`${o}-meetup-runbook`,code:t.localCommands}),a("p",{className:"text-muted-foreground text-sm",children:["For the full fallback order and safe live-edit workflow, use"," ",e(d,{href:"https://github.com/lssm-tech/contractspec/blob/main/docs/meetup-agent-examples-runbook.md",children:"the meetup runbook"}),"."]})]})]})}export{y as ExampleShowcasePage};
|
|
2
|
+
import{buildExampleDocsHref as m,buildExampleReferenceHref as p,getExamplePreviewHref as d,getPublicExample as g}from"@contractspec/module.examples";var f={"agent-console":"Primary meetup path for autonomous agents: typed tools, agent configs, run history, and execution logs in one regenerable surface.","ai-chat-assistant":"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.","data-grid-showcase":"Canonical table example for the full ContractSpec stack: declarative DataView contract, shared controller, raw web primitive, native-first primitive, and the composed design-system wrapper.","messaging-agent-actions":"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations."},u={"agent-console":"/docs/reference/agent-console/agent-console","ai-chat-assistant":"/docs/reference/ai-chat-assistant/assistant.search","data-grid-showcase":"/docs/reference/data-grid-showcase/data-grid-showcase","messaging-agent-actions":"/docs/reference/messaging-agent-actions/messaging.agentActions.process"};function c(r){let a=g(r);if(!a)return;let o=a.entrypoints.packageName.replace("@contractspec/example.",""),n=m(r),i=d(r);return{key:r,lead:f[r]??a.meta.summary??a.meta.description??"Public ContractSpec reference example.",sandboxHref:i,referenceHref:u[r]??p(r),llmsHref:`/llms/${a.entrypoints.packageName.replace("@contractspec/","")}`,repoHref:`https://github.com/lssm-tech/contractspec/tree/main/packages/examples/${o}`,localCommands:h(o,n,i)}}function h(r,a,o){let n=[`bun run --cwd packages/examples/${r} build`,"bun run --cwd packages/apps/web-landing dev","","# Open in the browser",`# http://localhost:3000${a}`];if(o)n.push(`# http://localhost:3000${o}`);return n.join(`
|
|
3
|
+
`)}import{ButtonLink as s,CodeBlock as b}from"@contractspec/lib.design-system";import N from"@contractspec/lib.ui-link";import{getExample as v}from"@contractspec/module.examples";import{FileCode2 as k,Play as w,TerminalSquare as y}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";function R({exampleKey:r}){let a=c(r),o=v(r);if(!a||!o)return null;let n=o.meta.title??o.meta.key,i=o.meta.summary??o.meta.description??"",l=o.entrypoints.packageName;return t("div",{className:"space-y-10",children:[t("section",{className:"space-y-5",children:[e("p",{className:"editorial-kicker",children:"Meetup-ready example"}),e("h1",{className:"editorial-title max-w-5xl",children:n}),e("p",{className:"editorial-subtitle",children:a.lead}),e("p",{className:"editorial-copy max-w-4xl",children:i}),t("div",{className:"flex flex-wrap gap-3",children:[a.sandboxHref?e(s,{href:a.sandboxHref,children:"Open sandbox"}):null,e(s,{href:a.referenceHref,variant:"outline",children:"Generated reference"})]})]}),t("section",{className:"grid gap-5 lg:grid-cols-3",children:[a.sandboxHref?t("article",{className:"editorial-panel space-y-4",children:[t("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(w,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Sandbox preview"})]}),e("p",{className:"editorial-copy text-sm",children:"Load the same public browser surface used for the prepared live demo."}),e(s,{href:a.sandboxHref,size:"sm",children:"Open preview"})]}):null,t("article",{className:"editorial-panel space-y-4",children:[t("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(k,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Reference docs"})]}),e("p",{className:"editorial-copy text-sm",children:"Inspect the generated contract-facing material instead of relying on marketing summaries."}),e(s,{href:a.referenceHref,size:"sm",variant:"outline",children:"Open reference"})]}),t("article",{className:"editorial-panel space-y-4",children:[t("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(y,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Package context"})]}),e("p",{className:"editorial-copy text-sm",children:"Use the agent-facing package page for fast repo orientation, then jump to the source directory."}),e("p",{className:"rounded-[18px] border border-border/70 bg-background/75 px-4 py-3 font-mono text-sm",children:l}),t("div",{className:"flex flex-wrap gap-2",children:[e(s,{href:a.llmsHref,size:"sm",variant:"outline",children:"LLMS page"}),e(s,{href:a.repoHref,size:"sm",variant:"outline",children:"GitHub source"})]})]})]}),t("section",{className:"editorial-panel space-y-5",children:[t("div",{className:"space-y-2",children:[e("p",{className:"editorial-kicker",children:"Talk commands"}),e("h2",{className:"editorial-panel-title",children:"Exact local commands for the meetup lane"}),e("p",{className:"editorial-copy text-sm",children:"Build the example package, then launch the web shell and open the prepared docs or sandbox route."})]}),e(b,{language:"bash",filename:`${r}-meetup-runbook`,code:a.localCommands}),t("p",{className:"text-muted-foreground text-sm",children:["For the full fallback order and safe live-edit workflow, use"," ",e(N,{href:"https://github.com/lssm-tech/contractspec/blob/main/docs/meetup-agent-examples-runbook.md",children:"the meetup runbook"}),"."]})]})]})}export{R as ExampleShowcasePage};
|
|
@@ -1,18 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
bun run --cwd packages/apps/web-landing dev
|
|
5
|
-
|
|
6
|
-
# Open in the browser
|
|
7
|
-
# http://localhost:3000/sandbox?template=agent-console`},"ai-chat-assistant":{key:"ai-chat-assistant",lead:"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.",sandboxHref:"/sandbox?template=ai-chat-assistant",referenceHref:"/docs/reference/ai-chat-assistant/assistant.search",llmsHref:"/llms/example.ai-chat-assistant",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/ai-chat-assistant",localCommands:`bun run --cwd packages/examples/ai-chat-assistant build
|
|
8
|
-
bun run --cwd packages/examples/ai-chat-assistant test
|
|
9
|
-
bun run --cwd packages/apps/web-landing dev
|
|
10
|
-
|
|
11
|
-
# Open in the browser
|
|
12
|
-
# http://localhost:3000/sandbox?template=ai-chat-assistant`},"messaging-agent-actions":{key:"messaging-agent-actions",lead:"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations.",sandboxHref:"/sandbox?template=messaging-agent-actions",referenceHref:"/docs/reference/messaging-agent-actions/messaging.agentActions.process",llmsHref:"/llms/example.messaging-agent-actions",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/messaging-agent-actions",localCommands:`bun run --cwd packages/examples/messaging-agent-actions build
|
|
13
|
-
bun run --cwd packages/examples/messaging-agent-actions test
|
|
14
|
-
bun run --cwd packages/examples/messaging-agent-actions proof
|
|
15
|
-
bun run --cwd packages/apps/web-landing dev
|
|
16
|
-
|
|
17
|
-
# Open in the browser
|
|
18
|
-
# http://localhost:3000/sandbox?template=messaging-agent-actions`}};function s(e){return a[e]}export{s as getExampleShowcaseData};
|
|
2
|
+
import{buildExampleDocsHref as r,buildExampleReferenceHref as o,getExamplePreviewHref as c,getPublicExample as i}from"@contractspec/module.examples";var l={"agent-console":"Primary meetup path for autonomous agents: typed tools, agent configs, run history, and execution logs in one regenerable surface.","ai-chat-assistant":"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.","data-grid-showcase":"Canonical table example for the full ContractSpec stack: declarative DataView contract, shared controller, raw web primitive, native-first primitive, and the composed design-system wrapper.","messaging-agent-actions":"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations."},g={"agent-console":"/docs/reference/agent-console/agent-console","ai-chat-assistant":"/docs/reference/ai-chat-assistant/assistant.search","data-grid-showcase":"/docs/reference/data-grid-showcase/data-grid-showcase","messaging-agent-actions":"/docs/reference/messaging-agent-actions/messaging.agentActions.process"};function d(e){let a=i(e);if(!a)return;let t=a.entrypoints.packageName.replace("@contractspec/example.",""),s=r(e),n=c(e);return{key:e,lead:l[e]??a.meta.summary??a.meta.description??"Public ContractSpec reference example.",sandboxHref:n,referenceHref:g[e]??o(e),llmsHref:`/llms/${a.entrypoints.packageName.replace("@contractspec/","")}`,repoHref:`https://github.com/lssm-tech/contractspec/tree/main/packages/examples/${t}`,localCommands:p(t,s,n)}}function p(e,a,t){let s=[`bun run --cwd packages/examples/${e} build`,"bun run --cwd packages/apps/web-landing dev","","# Open in the browser",`# http://localhost:3000${a}`];if(t)s.push(`# http://localhost:3000${t}`);return s.join(`
|
|
3
|
+
`)}export{d as getExampleShowcaseData};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,18 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
bun run --cwd packages/apps/web-landing dev
|
|
5
|
-
|
|
6
|
-
# Open in the browser
|
|
7
|
-
# http://localhost:3000/sandbox?template=agent-console`},"ai-chat-assistant":{key:"ai-chat-assistant",lead:"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.",sandboxHref:"/sandbox?template=ai-chat-assistant",referenceHref:"/docs/reference/ai-chat-assistant/assistant.search",llmsHref:"/llms/example.ai-chat-assistant",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/ai-chat-assistant",localCommands:`bun run --cwd packages/examples/ai-chat-assistant build
|
|
8
|
-
bun run --cwd packages/examples/ai-chat-assistant test
|
|
9
|
-
bun run --cwd packages/apps/web-landing dev
|
|
10
|
-
|
|
11
|
-
# Open in the browser
|
|
12
|
-
# http://localhost:3000/sandbox?template=ai-chat-assistant`},"messaging-agent-actions":{key:"messaging-agent-actions",lead:"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations.",sandboxHref:"/sandbox?template=messaging-agent-actions",referenceHref:"/docs/reference/messaging-agent-actions/messaging.agentActions.process",llmsHref:"/llms/example.messaging-agent-actions",repoHref:"https://github.com/lssm-tech/contractspec/tree/main/packages/examples/messaging-agent-actions",localCommands:`bun run --cwd packages/examples/messaging-agent-actions build
|
|
13
|
-
bun run --cwd packages/examples/messaging-agent-actions test
|
|
14
|
-
bun run --cwd packages/examples/messaging-agent-actions proof
|
|
15
|
-
bun run --cwd packages/apps/web-landing dev
|
|
16
|
-
|
|
17
|
-
# Open in the browser
|
|
18
|
-
# http://localhost:3000/sandbox?template=messaging-agent-actions`}};function i(t){return h[t]}import{ExampleCatalogDataView as d}from"@contractspec/lib.contracts-spec/docs";import{ButtonLink as m,DataViewList as b,StatusChip as k}from"@contractspec/lib.design-system";import{HStack as N,VStack as p}from"@contractspec/lib.ui-kit-web/ui/stack";import{H1 as v,Muted as g}from"@contractspec/lib.ui-kit-web/ui/typography";import{listExamples as w}from"@contractspec/module.examples";import{jsx as o,jsxs as l}from"react/jsx-runtime";function H(t){return`/docs/reference/${t}/${t}`}function y(t){return i(t)?.sandboxHref?`/docs/examples/${t}`:H(t)}function P(){let t=w().map((a)=>{let c=a.meta.title??a.meta.key;return{id:a.meta.key,title:c,summary:a.meta.summary??a.meta.description,route:y(a.meta.key),tags:a.meta.tags,sandboxEnabled:a.surfaces.sandbox.enabled}}).sort((a,c)=>a.title.localeCompare(c.title)),s={...d,view:{...d.view,kind:"list"}};return l(p,{gap:"xl",children:[l(p,{gap:"sm",children:[o(v,{children:"Examples"}),o(g,{children:"Reference implementations for real ContractSpec surfaces. Use them to study adoption patterns, inspect generated artifacts, and validate the OSS workflow against runnable systems."})]}),o(b,{spec:s,items:t,emptyState:o(g,{children:"No examples available."}),renderActions:(a)=>{return l(N,{gap:"xs",justify:"end",children:[a.sandboxEnabled?o(m,{href:`/sandbox?template=${a.id}`,size:"sm",variant:"outline",children:"Sandbox"}):null,o(m,{href:a.route,size:"sm",children:"Reference"}),a.tags?.[0]?o(k,{size:"sm",label:a.tags[0]}):null]})}})]})}import{ButtonLink as r,CodeBlock as E}from"@contractspec/lib.design-system";import L from"@contractspec/lib.ui-link";import{getExample as S}from"@contractspec/module.examples";import{FileCode2 as z,Play as O,TerminalSquare as B}from"lucide-react";import{jsx as e,jsxs as n}from"react/jsx-runtime";function C({exampleKey:t}){let s=i(t),a=S(t);if(!s||!a)return null;let c=a.meta.title??a.meta.key,f=a.meta.summary??a.meta.description??"",u=a.entrypoints.packageName;return n("div",{className:"space-y-10",children:[n("section",{className:"space-y-5",children:[e("p",{className:"editorial-kicker",children:"Meetup-ready example"}),e("h1",{className:"editorial-title max-w-5xl",children:c}),e("p",{className:"editorial-subtitle",children:s.lead}),e("p",{className:"editorial-copy max-w-4xl",children:f}),n("div",{className:"flex flex-wrap gap-3",children:[e(r,{href:s.sandboxHref,children:"Open sandbox"}),e(r,{href:s.referenceHref,variant:"outline",children:"Generated reference"})]})]}),n("section",{className:"grid gap-5 lg:grid-cols-3",children:[n("article",{className:"editorial-panel space-y-4",children:[n("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(O,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Sandbox preview"})]}),e("p",{className:"editorial-copy text-sm",children:"Load the same public browser surface used for the prepared live demo."}),e(r,{href:s.sandboxHref,size:"sm",children:"Open preview"})]}),n("article",{className:"editorial-panel space-y-4",children:[n("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(z,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Reference docs"})]}),e("p",{className:"editorial-copy text-sm",children:"Inspect the generated contract-facing material instead of relying on marketing summaries."}),e(r,{href:s.referenceHref,size:"sm",variant:"outline",children:"Open reference"})]}),n("article",{className:"editorial-panel space-y-4",children:[n("div",{className:"flex items-center gap-3",children:[e("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:e(B,{size:18})}),e("h2",{className:"font-semibold text-xl",children:"Package context"})]}),e("p",{className:"editorial-copy text-sm",children:"Use the agent-facing package page for fast repo orientation, then jump to the source directory."}),e("p",{className:"rounded-[18px] border border-border/70 bg-background/75 px-4 py-3 font-mono text-sm",children:u}),n("div",{className:"flex flex-wrap gap-2",children:[e(r,{href:s.llmsHref,size:"sm",variant:"outline",children:"LLMS page"}),e(r,{href:s.repoHref,size:"sm",variant:"outline",children:"GitHub source"})]})]})]}),n("section",{className:"editorial-panel space-y-5",children:[n("div",{className:"space-y-2",children:[e("p",{className:"editorial-kicker",children:"Talk commands"}),e("h2",{className:"editorial-panel-title",children:"Exact local commands for the meetup lane"}),e("p",{className:"editorial-copy text-sm",children:"Use the package build and test first, then launch the web shell and open the prepared sandbox route."})]}),e(E,{language:"bash",filename:`${t}-meetup-runbook`,code:s.localCommands}),n("p",{className:"text-muted-foreground text-sm",children:["For the full fallback order and safe live-edit workflow, use"," ",e(L,{href:"https://github.com/lssm-tech/contractspec/blob/main/docs/meetup-agent-examples-runbook.md",children:"the meetup runbook"}),"."]})]})]})}export{C as ExampleShowcasePage,P as DocsExamplesPage};
|
|
2
|
+
import{ExampleCatalogDataView as d}from"@contractspec/lib.contracts-spec/docs";import{ButtonLink as m,DataViewList as h,StatusChip as b}from"@contractspec/lib.design-system";import{HStack as N,VStack as p}from"@contractspec/lib.ui-kit-web/ui/stack";import{H1 as v,Muted as g}from"@contractspec/lib.ui-kit-web/ui/typography";import{buildExampleDocsHref as w,listPublicExamples as k}from"@contractspec/module.examples";import{jsx as i,jsxs as l}from"react/jsx-runtime";function y(){let r=k().map((e)=>{let n=e.meta.title??e.meta.key;return{id:e.meta.key,title:n,summary:e.meta.summary??e.meta.description,route:w(e.meta.key),tags:e.meta.tags,sandboxEnabled:e.surfaces.sandbox.enabled}}).sort((e,n)=>e.title.localeCompare(n.title)),t={...d,view:{...d.view,kind:"list"}};return l(p,{gap:"xl",children:[l(p,{gap:"sm",children:[i(v,{children:"Examples"}),i(g,{children:"Reference implementations for real ContractSpec surfaces. Use them to study adoption patterns, inspect generated artifacts, and validate the OSS workflow against runnable systems."})]}),i(h,{spec:t,items:r,emptyState:i(g,{children:"No examples available."}),renderActions:(e)=>{return l(N,{gap:"xs",justify:"end",children:[e.sandboxEnabled?i(m,{href:`/sandbox?template=${e.id}`,size:"sm",variant:"outline",children:"Sandbox"}):null,i(m,{href:e.route,size:"sm",children:"Reference"}),e.tags?.[0]?i(b,{size:"sm",label:e.tags[0]}):null]})}})]})}import{buildExampleDocsHref as E,buildExampleReferenceHref as H,getExamplePreviewHref as P,getPublicExample as L}from"@contractspec/module.examples";var S={"agent-console":"Primary meetup path for autonomous agents: typed tools, agent configs, run history, and execution logs in one regenerable surface.","ai-chat-assistant":"Secondary meetup path for MCP-aware assistants: reasoning, sources, suggestions, and a minimal contract-backed search tool.","data-grid-showcase":"Canonical table example for the full ContractSpec stack: declarative DataView contract, shared controller, raw web primitive, native-first primitive, and the composed design-system wrapper.","messaging-agent-actions":"Live messaging lane for the meetup: inbound Slack, WhatsApp, or Telegram messages route through fixed intents, allowlisted actions, and deterministic confirmations."},R={"agent-console":"/docs/reference/agent-console/agent-console","ai-chat-assistant":"/docs/reference/ai-chat-assistant/assistant.search","data-grid-showcase":"/docs/reference/data-grid-showcase/data-grid-showcase","messaging-agent-actions":"/docs/reference/messaging-agent-actions/messaging.agentActions.process"};function f(r){let t=L(r);if(!t)return;let e=t.entrypoints.packageName.replace("@contractspec/example.",""),n=E(r),c=P(r);return{key:r,lead:S[r]??t.meta.summary??t.meta.description??"Public ContractSpec reference example.",sandboxHref:c,referenceHref:R[r]??H(r),llmsHref:`/llms/${t.entrypoints.packageName.replace("@contractspec/","")}`,repoHref:`https://github.com/lssm-tech/contractspec/tree/main/packages/examples/${e}`,localCommands:C(e,n,c)}}function C(r,t,e){let n=[`bun run --cwd packages/examples/${r} build`,"bun run --cwd packages/apps/web-landing dev","","# Open in the browser",`# http://localhost:3000${t}`];if(e)n.push(`# http://localhost:3000${e}`);return n.join(`
|
|
3
|
+
`)}import{ButtonLink as s,CodeBlock as z}from"@contractspec/lib.design-system";import B from"@contractspec/lib.ui-link";import{getExample as D}from"@contractspec/module.examples";import{FileCode2 as O,Play as $,TerminalSquare as F}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";function A({exampleKey:r}){let t=f(r),e=D(r);if(!t||!e)return null;let n=e.meta.title??e.meta.key,c=e.meta.summary??e.meta.description??"",u=e.entrypoints.packageName;return o("div",{className:"space-y-10",children:[o("section",{className:"space-y-5",children:[a("p",{className:"editorial-kicker",children:"Meetup-ready example"}),a("h1",{className:"editorial-title max-w-5xl",children:n}),a("p",{className:"editorial-subtitle",children:t.lead}),a("p",{className:"editorial-copy max-w-4xl",children:c}),o("div",{className:"flex flex-wrap gap-3",children:[t.sandboxHref?a(s,{href:t.sandboxHref,children:"Open sandbox"}):null,a(s,{href:t.referenceHref,variant:"outline",children:"Generated reference"})]})]}),o("section",{className:"grid gap-5 lg:grid-cols-3",children:[t.sandboxHref?o("article",{className:"editorial-panel space-y-4",children:[o("div",{className:"flex items-center gap-3",children:[a("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:a($,{size:18})}),a("h2",{className:"font-semibold text-xl",children:"Sandbox preview"})]}),a("p",{className:"editorial-copy text-sm",children:"Load the same public browser surface used for the prepared live demo."}),a(s,{href:t.sandboxHref,size:"sm",children:"Open preview"})]}):null,o("article",{className:"editorial-panel space-y-4",children:[o("div",{className:"flex items-center gap-3",children:[a("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:a(O,{size:18})}),a("h2",{className:"font-semibold text-xl",children:"Reference docs"})]}),a("p",{className:"editorial-copy text-sm",children:"Inspect the generated contract-facing material instead of relying on marketing summaries."}),a(s,{href:t.referenceHref,size:"sm",variant:"outline",children:"Open reference"})]}),o("article",{className:"editorial-panel space-y-4",children:[o("div",{className:"flex items-center gap-3",children:[a("div",{className:"rounded-full border border-border/80 bg-background/85 p-2",children:a(F,{size:18})}),a("h2",{className:"font-semibold text-xl",children:"Package context"})]}),a("p",{className:"editorial-copy text-sm",children:"Use the agent-facing package page for fast repo orientation, then jump to the source directory."}),a("p",{className:"rounded-[18px] border border-border/70 bg-background/75 px-4 py-3 font-mono text-sm",children:u}),o("div",{className:"flex flex-wrap gap-2",children:[a(s,{href:t.llmsHref,size:"sm",variant:"outline",children:"LLMS page"}),a(s,{href:t.repoHref,size:"sm",variant:"outline",children:"GitHub source"})]})]})]}),o("section",{className:"editorial-panel space-y-5",children:[o("div",{className:"space-y-2",children:[a("p",{className:"editorial-kicker",children:"Talk commands"}),a("h2",{className:"editorial-panel-title",children:"Exact local commands for the meetup lane"}),a("p",{className:"editorial-copy text-sm",children:"Build the example package, then launch the web shell and open the prepared docs or sandbox route."})]}),a(z,{language:"bash",filename:`${r}-meetup-runbook`,code:t.localCommands}),o("p",{className:"text-muted-foreground text-sm",children:["For the full fallback order and safe live-edit workflow, use"," ",a(B,{href:"https://github.com/lssm-tech/contractspec/blob/main/docs/meetup-agent-examples-runbook.md",children:"the meetup runbook"}),"."]})]})]})}export{A as ExampleShowcasePage,y as DocsExamplesPage};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{CodeBlock as c,InstallCommand as
|
|
2
|
+
import{CodeBlock as c,InstallCommand as n}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as i}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function p(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-2",children:[e("h1",{className:"font-bold text-4xl",children:"ContractSpec CLI"}),e("p",{className:"text-lg text-muted-foreground",children:"Command-line interface for creating, building, and validating contract specifications with AI-powered code generation."})]}),a("div",{className:"space-y-6",children:[a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Installation"}),e(n,{package:"contractspec",dev:!0})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Quick Start"}),e(c,{language:"bash",code:`# Initialize project
|
|
3
|
+
contractspec onboard
|
|
3
4
|
bunx contractspec init
|
|
4
5
|
|
|
5
6
|
# Create a spec
|
|
6
7
|
contractspec create --type operation
|
|
7
8
|
|
|
8
9
|
# Generate code
|
|
9
|
-
contractspec
|
|
10
|
+
contractspec generate
|
|
10
11
|
|
|
11
12
|
# Validate
|
|
12
|
-
contractspec validate
|
|
13
|
+
contractspec validate`})]}),a("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"Commands"}),e("div",{className:"grid gap-4",children:[{name:"onboard",description:"Primary OSS onboarding flow that recommends tracks, examples, and repo-local guides",usage:"contractspec onboard [track...] [--example <key>] [--dry-run] [--json]"},{name:"create",description:"Interactive wizard to create contract specifications",usage:"contractspec create [--type operation] [--ai]"},{name:"build",description:"Generate implementation code from contract specs using AI agents",usage:"contractspec build <spec-file> [--agent-mode claude-code]"},{name:"validate",description:"Validate contract specifications and implementations",usage:"contractspec validate <spec-file> [--check-implementation]"},{name:"list",description:"List all contract specifications in the project",usage:"contractspec list [--type operation] [--json]"},{name:"watch",description:"Watch specs and auto-regenerate on changes",usage:"contractspec watch [--build] [--validate]"},{name:"sync",description:"Sync contracts by building all discovered specs",usage:"contractspec sync [--dry-run]"},{name:"ci",description:"Run all validation checks for CI/CD pipelines",usage:"contractspec ci [--format sarif] [--output results.sarif]"},{name:"deps",description:"Analyze contract dependencies and relationships",usage:"contractspec deps [--circular] [--format dot]"},{name:"diff",description:"Compare contract specifications and show differences",usage:"contractspec diff <spec1> <spec2> [--breaking]"}].map((t)=>a("div",{className:"card-subtle space-y-2 p-4",children:[e("h3",{className:"font-bold font-mono text-violet-400",children:t.name}),e("p",{className:"text-muted-foreground text-sm",children:t.description}),e(c,{language:"bash",code:t.usage,showCopyButton:!1})]},t.name))})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"AI Agent Modes"}),e("p",{className:"text-muted-foreground",children:"The CLI supports multiple AI agent modes for different use cases:"}),a("div",{className:"grid gap-3 md:grid-cols-2",children:[a("div",{className:"card-subtle p-4",children:[e("h4",{className:"font-bold",children:"simple"}),e("p",{className:"text-muted-foreground text-sm",children:"Direct LLM API calls, fast and straightforward. Best for rapid prototyping."})]}),a("div",{className:"card-subtle p-4",children:[e("h4",{className:"font-bold",children:"claude-code"}),e("p",{className:"text-muted-foreground text-sm",children:"Extended thinking with Claude. Best for production-quality code."})]}),a("div",{className:"card-subtle p-4",children:[e("h4",{className:"font-bold",children:"openai-codex"}),e("p",{className:"text-muted-foreground text-sm",children:"GPT-4o/o1 models. Excellent for algorithms and optimization."})]}),a("div",{className:"card-subtle p-4",children:[e("h4",{className:"font-bold",children:"cursor"}),e("p",{className:"text-muted-foreground text-sm",children:"Leverages Cursor agentic capabilities. Requires Cursor environment."})]})]})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"CI/CD Integration"}),e("p",{className:"text-muted-foreground",children:"Run all validation checks in CI/CD with machine-readable output:"}),e(c,{language:"yaml",filename:".github/workflows/validate.yml",code:`- name: Validate Contracts
|
|
13
14
|
run: contractspec ci --format sarif --output results.sarif
|
|
14
15
|
|
|
15
16
|
- name: Upload SARIF
|
|
@@ -23,4 +24,4 @@ contractspec validate src/contracts/mySpec.ts`})]}),a("div",{className:"space-y-
|
|
|
23
24
|
"operations": "interactions/commands|queries",
|
|
24
25
|
"events": "events"
|
|
25
26
|
}
|
|
26
|
-
}`})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[a(o,{href:"/docs/getting-started/tools/vscode",className:"btn-primary",children:["Next: VS Code Extension ",e(
|
|
27
|
+
}`})]})]}),a("div",{className:"flex items-center gap-4 pt-4",children:[a(o,{href:"/docs/getting-started/tools/vscode",className:"btn-primary",children:["Next: VS Code Extension ",e(i,{size:16})]}),e(o,{href:"/docs/getting-started/tools",className:"btn-ghost",children:"Back to Tools"})]})]})}export{p as CLIPage};
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{CodeBlock as a}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as
|
|
3
|
-
|
|
4
|
-
export const ListTransactions = defineQuery({
|
|
5
|
-
meta: {
|
|
6
|
-
key: 'billing.listTransactions',
|
|
7
|
-
version: '1.0.0',
|
|
8
|
-
description: 'Fetch customer transaction history',
|
|
9
|
-
},
|
|
10
|
-
io: {
|
|
11
|
-
input: /* pagination + filters */,
|
|
12
|
-
output: /* array of transactions */,
|
|
13
|
-
},
|
|
14
|
-
policy: { auth: 'user' },
|
|
15
|
-
});`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"2. Define the DataView spec"}),e("p",{className:"text-muted-foreground",children:"Wrap your query with presentation metadata:"}),e(a,{language:"typescript",filename:"lib/specs/billing/transaction-history.data-view.ts",code:`import { defineDataView } from '@contractspec/lib.contracts-spec';
|
|
2
|
+
import{CodeBlock as a}from"@contractspec/lib.design-system";import i from"@contractspec/lib.ui-link";import{ChevronRight as n}from"lucide-react";import{jsx as e,jsxs as t}from"react/jsx-runtime";var s=`import { defineDataView } from '@contractspec/lib.contracts-spec/data-views';
|
|
16
3
|
import { ListTransactions } from './list-transactions';
|
|
17
4
|
|
|
18
5
|
export const TransactionHistory = defineDataView({
|
|
@@ -20,68 +7,58 @@ export const TransactionHistory = defineDataView({
|
|
|
20
7
|
key: 'billing.transactionHistory',
|
|
21
8
|
version: '1.0.0',
|
|
22
9
|
entity: 'transaction',
|
|
10
|
+
title: 'Transaction History',
|
|
23
11
|
description: 'Customer payment history',
|
|
24
|
-
|
|
25
|
-
context: 'Account dashboard',
|
|
12
|
+
domain: 'billing',
|
|
26
13
|
owners: ['team-billing'],
|
|
27
|
-
stability: 'stable',
|
|
28
14
|
tags: ['payments'],
|
|
15
|
+
stability: 'stable',
|
|
29
16
|
},
|
|
30
17
|
source: {
|
|
31
|
-
primary:
|
|
18
|
+
primary: {
|
|
19
|
+
key: ListTransactions.meta.key,
|
|
20
|
+
version: ListTransactions.meta.version,
|
|
21
|
+
},
|
|
32
22
|
},
|
|
33
23
|
view: {
|
|
34
|
-
kind: '
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{
|
|
49
|
-
key: 'amount',
|
|
50
|
-
label: 'Amount',
|
|
51
|
-
dataPath: 'amount',
|
|
52
|
-
format: 'currency',
|
|
53
|
-
sortable: true
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
key: 'status',
|
|
57
|
-
label: 'Status',
|
|
58
|
-
dataPath: 'status',
|
|
59
|
-
format: 'badge'
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
filters: [
|
|
63
|
-
{
|
|
64
|
-
key: 'status',
|
|
65
|
-
label: 'Status',
|
|
66
|
-
field: 'status',
|
|
67
|
-
type: 'enum',
|
|
68
|
-
options: [
|
|
69
|
-
{ value: 'succeeded', label: 'Paid' },
|
|
70
|
-
{ value: 'pending', label: 'Pending' },
|
|
71
|
-
{ value: 'failed', label: 'Failed' },
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
key: 'dateRange',
|
|
76
|
-
label: 'Date Range',
|
|
77
|
-
field: 'createdAt',
|
|
78
|
-
type: 'dateRange',
|
|
24
|
+
kind: 'table',
|
|
25
|
+
executionMode: 'client',
|
|
26
|
+
selection: 'multiple',
|
|
27
|
+
columnVisibility: true,
|
|
28
|
+
columnResizing: true,
|
|
29
|
+
columnPinning: true,
|
|
30
|
+
rowExpansion: {
|
|
31
|
+
fields: ['notes', 'renewalDate', 'lastActivityAt'],
|
|
32
|
+
},
|
|
33
|
+
initialState: {
|
|
34
|
+
pageSize: 4,
|
|
35
|
+
hiddenColumns: ['notes'],
|
|
36
|
+
pinnedColumns: {
|
|
37
|
+
left: ['account'],
|
|
79
38
|
},
|
|
39
|
+
sorting: [{ field: 'arr', desc: true }],
|
|
40
|
+
},
|
|
41
|
+
fields: [
|
|
42
|
+
{ key: 'account', label: 'Account', dataPath: 'account', sortable: true },
|
|
43
|
+
{ key: 'owner', label: 'Owner', dataPath: 'owner', sortable: true },
|
|
44
|
+
{ key: 'status', label: 'Status', dataPath: 'status', sortable: true },
|
|
45
|
+
{ key: 'notes', label: 'Notes', dataPath: 'notes' },
|
|
80
46
|
],
|
|
81
|
-
defaultSort: { field: 'date', direction: 'desc' },
|
|
82
|
-
pagination: { pageSize: 25 },
|
|
83
47
|
},
|
|
84
|
-
})
|
|
48
|
+
});`;function c(){return t("div",{className:"space-y-8",children:[t("div",{className:"space-y-4",children:[e("h1",{className:"font-bold text-4xl",children:"Display Data with DataViews"}),e("p",{className:"text-lg text-muted-foreground",children:"Define a filterable, sortable transaction history view that works across web and mobile without duplicating UI code."})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"1. Define the underlying query"}),e("p",{className:"text-muted-foreground",children:"First, create a query operation to fetch the data:"}),e(a,{language:"typescript",filename:"lib/specs/billing/list-transactions.ts",code:`import { defineQuery } from '@contractspec/lib.contracts-spec';
|
|
49
|
+
|
|
50
|
+
export const ListTransactions = defineQuery({
|
|
51
|
+
meta: {
|
|
52
|
+
key: 'billing.listTransactions',
|
|
53
|
+
version: '1.0.0',
|
|
54
|
+
description: 'Fetch customer transaction history',
|
|
55
|
+
},
|
|
56
|
+
io: {
|
|
57
|
+
input: /* pagination + filters */,
|
|
58
|
+
output: /* array of transactions */,
|
|
59
|
+
},
|
|
60
|
+
policy: { auth: 'user' },
|
|
61
|
+
});`})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"2. Define the DataView spec"}),e("p",{className:"text-muted-foreground",children:"Wrap your query with presentation metadata:"}),e(a,{language:"typescript",filename:"lib/specs/billing/transaction-history.data-view.ts",code:s}),t("p",{className:"text-muted-foreground text-sm",children:["The live version of this pattern is available in the canonical"," ",e(i,{href:"/docs/examples/data-grid-showcase",className:"text-[color:var(--rust)] underline underline-offset-4",children:"Data Grid Showcase"}),"."]})]}),t("div",{className:"space-y-4",children:[e("h2",{className:"font-bold text-2xl",children:"3. Render on the frontend"}),e("p",{className:"text-muted-foreground",children:"Use the runtime renderer in your React or React Native app:"}),e(a,{language:"tsx",filename:"app/dashboard/transactions/page.tsx",code:`'use client';
|
|
85
62
|
|
|
86
63
|
import { DataViewRenderer } from '@contractspec/lib.design-system';
|
|
87
64
|
import { TransactionHistory } from '@/lib/specs/billing/transaction-history.data-view';
|
|
@@ -106,4 +83,4 @@ export function TransactionsPage() {
|
|
|
106
83
|
/>
|
|
107
84
|
</div>
|
|
108
85
|
);
|
|
109
|
-
}`})]}),t("div",{className:"card-subtle space-y-4 p-6",children:[e("h3",{className:"font-bold",children:"Why DataViews?"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[e("li",{children:"Same spec renders on web (React) and mobile (React Native)"}),e("li",{children:"Filters, sorting, and pagination handled automatically"}),e("li",{children:"Format rules (currency, dates, badges) applied consistently"}),e("li",{children:"Export to CSV/PDF using the same spec"}),e("li",{children:"A/B test different layouts without touching the backend"})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[t(i,{href:"/docs/libraries/data-views",className:"btn-primary",children:["DataView API Reference ",e(
|
|
86
|
+
}`})]}),t("div",{className:"card-subtle space-y-4 p-6",children:[e("h3",{className:"font-bold",children:"Why DataViews?"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[e("li",{children:"Same spec renders on web (React) and mobile (React Native)"}),e("li",{children:"Filters, sorting, and pagination handled automatically"}),e("li",{children:"Column visibility, pinning, resizing, and row expansion stay contract-driven"}),e("li",{children:"Format rules (currency, dates, badges) applied consistently"}),e("li",{children:"Export to CSV/PDF using the same spec"}),e("li",{children:"A/B test different layouts without touching the backend"})]})]}),t("div",{className:"flex items-center gap-4 pt-4",children:[t(i,{href:"/docs/libraries/data-views",className:"btn-primary",children:["DataView API Reference ",e(n,{size:16})]}),e(i,{href:"/docs/specs/workflows",className:"btn-ghost",children:"Next: Workflows"})]})]})}export{c as DataViewTutorialPage};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{CodeBlock as
|
|
3
|
-
|
|
2
|
+
import{CodeBlock as t,InstallCommand as c}from"@contractspec/lib.design-system";import o from"@contractspec/lib.ui-link";import{ChevronRight as l}from"lucide-react";import{jsx as e,jsxs as a}from"react/jsx-runtime";function d(){return a("div",{className:"space-y-8",children:[a("div",{className:"space-y-2",children:[e("h1",{className:"font-bold text-4xl",children:"Start here"}),e("p",{className:"text-lg text-muted-foreground",children:"A fast onboarding path from install to your first generated contract."})]}),a("div",{className:"space-y-6",children:[a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Install the CLI"}),e(c,{package:"contractspec",dev:!0})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Generate repo-local guidance"}),e(t,{language:"bash",filename:"start-here-onboard",code:`contractspec onboard
|
|
3
|
+
# optional focused track
|
|
4
|
+
contractspec onboard knowledge --example knowledge-canon`})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Initialize your project"}),e(t,{language:"bash",filename:"start-here-init",code:"bunx contractspec init"})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Author your first contract"}),e(t,{language:"bash",filename:"start-here-create",code:"contractspec create --type operation"})]}),a("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Generate implementation"}),e(t,{language:"bash",filename:"start-here-build",code:`contractspec generate
|
|
5
|
+
contractspec validate`})]})]}),a("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[a(o,{href:"/docs/getting-started/hello-world",className:"btn-primary",children:["Next: Hello World ",e(l,{size:16})]}),e(o,{href:"/docs/getting-started/troubleshooting",className:"btn-ghost",children:"Troubleshooting"}),e(o,{href:"/docs/getting-started/compatibility",className:"btn-ghost",children:"Compatibility"})]})]})}export{d as StartHerePage};
|