@contractspec/bundle.library 2.9.1 → 3.0.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 +129 -115
- package/CHANGELOG.md +38 -0
- package/dist/components/docs/DocsIndexPage.js +1 -1
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.d.ts +1 -0
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +204 -0
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +17 -1
- package/dist/components/docs/architecture/index.d.ts +1 -0
- package/dist/components/docs/architecture/index.js +507 -289
- package/dist/components/docs/ecosystem/IntegrationsPage.js +6 -3
- package/dist/components/docs/ecosystem/PluginsPage.js +98 -98
- package/dist/components/docs/ecosystem/RegistryPage.js +39 -42
- package/dist/components/docs/ecosystem/TemplatesPage.js +26 -21
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js +10 -10
- package/dist/components/docs/ecosystem/index.js +179 -174
- package/dist/components/docs/index.js +6795 -5376
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsGithubPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +155 -0
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +168 -0
- package/dist/components/docs/integrations/IntegrationsMistralPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +203 -0
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +136 -9
- package/dist/components/docs/integrations/IntegrationsSlackPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +161 -0
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +72 -0
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +157 -0
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +165 -0
- package/dist/components/docs/integrations/index.d.ts +6 -0
- package/dist/components/docs/integrations/index.js +1688 -492
- package/dist/index.js +8016 -6597
- package/dist/node/components/docs/DocsIndexPage.js +1 -1
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +203 -0
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +17 -1
- package/dist/node/components/docs/architecture/index.js +507 -289
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +6 -3
- package/dist/node/components/docs/ecosystem/PluginsPage.js +98 -98
- package/dist/node/components/docs/ecosystem/RegistryPage.js +39 -42
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +26 -21
- package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +10 -10
- package/dist/node/components/docs/ecosystem/index.js +179 -174
- package/dist/node/components/docs/index.js +6795 -5376
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +154 -0
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +167 -0
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +202 -0
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +136 -9
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +160 -0
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +72 -0
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +156 -0
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +164 -0
- package/dist/node/components/docs/integrations/index.js +1688 -492
- package/dist/node/index.js +8016 -6597
- package/package.json +104 -20
- package/src/components/docs/DocsIndexPage.tsx +2 -1
- package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +136 -0
- package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +13 -1
- package/src/components/docs/architecture/index.ts +1 -0
- package/src/components/docs/ecosystem/IntegrationsPage.tsx +4 -3
- package/src/components/docs/ecosystem/PluginsPage.tsx +68 -87
- package/src/components/docs/ecosystem/RegistryPage.tsx +35 -43
- package/src/components/docs/ecosystem/TemplatesPage.tsx +28 -21
- package/src/components/docs/ecosystem/ecosystem.docblocks.ts +12 -10
- package/src/components/docs/generated/docs-index._common.json +240 -0
- package/src/components/docs/generated/docs-index.health.json +98 -0
- package/src/components/docs/generated/docs-index.manifest.json +14 -4
- package/src/components/docs/generated/docs-index.platform-integrations.json +81 -1
- package/src/components/docs/generated/docs-index.video-api-showcase.json +26 -0
- package/src/components/docs/integrations/IntegrationsElevenLabsPage.tsx +2 -2
- package/src/components/docs/integrations/IntegrationsGithubPage.tsx +90 -0
- package/src/components/docs/integrations/IntegrationsHealthRoutingPage.tsx +112 -0
- package/src/components/docs/integrations/IntegrationsMistralPage.tsx +133 -0
- package/src/components/docs/integrations/IntegrationsOpenAIPage.tsx +2 -2
- package/src/components/docs/integrations/IntegrationsOverviewPage.tsx +108 -9
- package/src/components/docs/integrations/IntegrationsSlackPage.tsx +98 -0
- package/src/components/docs/integrations/IntegrationsSpecModelPage.tsx +59 -0
- package/src/components/docs/integrations/IntegrationsTwilioPage.tsx +2 -2
- package/src/components/docs/integrations/IntegrationsWhatsappMetaPage.tsx +90 -0
- package/src/components/docs/integrations/IntegrationsWhatsappTwilioPage.tsx +92 -0
- package/src/components/docs/integrations/index.ts +6 -0
|
@@ -99,9 +99,9 @@ outputs:
|
|
|
99
99
|
className: "flex items-center gap-4 pt-4",
|
|
100
100
|
children: [
|
|
101
101
|
/* @__PURE__ */ jsxDEV(Link, {
|
|
102
|
-
href: "/docs/integrations/
|
|
102
|
+
href: "/docs/integrations/mistral",
|
|
103
103
|
className: "btn-ghost",
|
|
104
|
-
children: "Previous:
|
|
104
|
+
children: "Previous: Mistral"
|
|
105
105
|
}, undefined, false, undefined, this),
|
|
106
106
|
/* @__PURE__ */ jsxDEV(Link, {
|
|
107
107
|
href: "/docs/integrations/qdrant",
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// src/components/docs/integrations/IntegrationsGithubPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
3
|
+
import { ChevronRight } from "lucide-react";
|
|
4
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
5
|
+
function IntegrationsGithubPage() {
|
|
6
|
+
return /* @__PURE__ */ jsxDEV("div", {
|
|
7
|
+
className: "space-y-8",
|
|
8
|
+
children: [
|
|
9
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
10
|
+
className: "space-y-4",
|
|
11
|
+
children: [
|
|
12
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
13
|
+
className: "text-4xl font-bold",
|
|
14
|
+
children: "GitHub Messaging"
|
|
15
|
+
}, undefined, false, undefined, this),
|
|
16
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
17
|
+
className: "text-muted-foreground",
|
|
18
|
+
children: "Use GitHub issue and pull request comments as an AI-native messaging channel with webhook verification, policy checks, and reliable outbound dispatch."
|
|
19
|
+
}, undefined, false, undefined, this)
|
|
20
|
+
]
|
|
21
|
+
}, undefined, true, undefined, this),
|
|
22
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
23
|
+
className: "space-y-4",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
26
|
+
className: "text-2xl font-bold",
|
|
27
|
+
children: "Required secrets and config"
|
|
28
|
+
}, undefined, false, undefined, this),
|
|
29
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
30
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
31
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
32
|
+
children: `// secret payload
|
|
33
|
+
{
|
|
34
|
+
"token": "ghp_...",
|
|
35
|
+
"webhookSecret": "..."
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// optional connection config
|
|
39
|
+
{
|
|
40
|
+
"defaultOwner": "lssm-tech",
|
|
41
|
+
"defaultRepo": "contractspec",
|
|
42
|
+
"apiBaseUrl": "https://api.github.com"
|
|
43
|
+
}`
|
|
44
|
+
}, undefined, false, undefined, this)
|
|
45
|
+
}, undefined, false, undefined, this)
|
|
46
|
+
]
|
|
47
|
+
}, undefined, true, undefined, this),
|
|
48
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
49
|
+
className: "space-y-4",
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
52
|
+
className: "text-2xl font-bold",
|
|
53
|
+
children: "Webhook ingress"
|
|
54
|
+
}, undefined, false, undefined, this),
|
|
55
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
56
|
+
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
59
|
+
children: [
|
|
60
|
+
"Inbound GitHub events are accepted on",
|
|
61
|
+
" ",
|
|
62
|
+
/* @__PURE__ */ jsxDEV("code", {
|
|
63
|
+
className: "bg-background/50 rounded px-2 py-1",
|
|
64
|
+
children: "/webhooks/github/events"
|
|
65
|
+
}, undefined, false, undefined, this),
|
|
66
|
+
"."
|
|
67
|
+
]
|
|
68
|
+
}, undefined, true, undefined, this),
|
|
69
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
70
|
+
children: [
|
|
71
|
+
"Signatures are checked using",
|
|
72
|
+
" ",
|
|
73
|
+
/* @__PURE__ */ jsxDEV("code", {
|
|
74
|
+
className: "bg-background/50 rounded px-2 py-1",
|
|
75
|
+
children: "x-hub-signature-256"
|
|
76
|
+
}, undefined, false, undefined, this),
|
|
77
|
+
" ",
|
|
78
|
+
"and the configured webhook secret."
|
|
79
|
+
]
|
|
80
|
+
}, undefined, true, undefined, this),
|
|
81
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
82
|
+
children: "Current normalization focuses on issue comment workflows and durable comment dispatch."
|
|
83
|
+
}, undefined, false, undefined, this)
|
|
84
|
+
]
|
|
85
|
+
}, undefined, true, undefined, this)
|
|
86
|
+
]
|
|
87
|
+
}, undefined, true, undefined, this),
|
|
88
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
89
|
+
className: "space-y-4",
|
|
90
|
+
children: [
|
|
91
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
92
|
+
className: "text-2xl font-bold",
|
|
93
|
+
children: "Workspace mapping"
|
|
94
|
+
}, undefined, false, undefined, this),
|
|
95
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
96
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
97
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
98
|
+
children: `CHANNEL_WORKSPACE_MAP_GITHUB={"lssm-tech/contractspec":"workspace-acme"}
|
|
99
|
+
|
|
100
|
+
# Optional dev fallback (off by default)
|
|
101
|
+
CHANNEL_ALLOW_UNMAPPED_WORKSPACE=0`
|
|
102
|
+
}, undefined, false, undefined, this)
|
|
103
|
+
}, undefined, false, undefined, this)
|
|
104
|
+
]
|
|
105
|
+
}, undefined, true, undefined, this),
|
|
106
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
107
|
+
className: "space-y-4",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
110
|
+
className: "text-2xl font-bold",
|
|
111
|
+
children: "Best practices"
|
|
112
|
+
}, undefined, false, undefined, this),
|
|
113
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
114
|
+
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
115
|
+
children: [
|
|
116
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
117
|
+
children: "Use a least-privileged token scoped for comment operations."
|
|
118
|
+
}, undefined, false, undefined, this),
|
|
119
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
120
|
+
children: "Route repositories explicitly with workspace maps in multi-tenant environments."
|
|
121
|
+
}, undefined, false, undefined, this),
|
|
122
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
123
|
+
children: "Keep dispatch endpoints protected with token or bearer auth."
|
|
124
|
+
}, undefined, false, undefined, this)
|
|
125
|
+
]
|
|
126
|
+
}, undefined, true, undefined, this)
|
|
127
|
+
]
|
|
128
|
+
}, undefined, true, undefined, this),
|
|
129
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
130
|
+
className: "flex items-center gap-4 pt-4",
|
|
131
|
+
children: [
|
|
132
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
133
|
+
href: "/docs/integrations/slack",
|
|
134
|
+
className: "btn-ghost",
|
|
135
|
+
children: "Previous: Slack Messaging"
|
|
136
|
+
}, undefined, false, undefined, this),
|
|
137
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
138
|
+
href: "/docs/integrations/whatsapp-meta",
|
|
139
|
+
className: "btn-primary",
|
|
140
|
+
children: [
|
|
141
|
+
"Next: WhatsApp Meta ",
|
|
142
|
+
/* @__PURE__ */ jsxDEV(ChevronRight, {
|
|
143
|
+
size: 16
|
|
144
|
+
}, undefined, false, undefined, this)
|
|
145
|
+
]
|
|
146
|
+
}, undefined, true, undefined, this)
|
|
147
|
+
]
|
|
148
|
+
}, undefined, true, undefined, this)
|
|
149
|
+
]
|
|
150
|
+
}, undefined, true, undefined, this);
|
|
151
|
+
}
|
|
152
|
+
export {
|
|
153
|
+
IntegrationsGithubPage
|
|
154
|
+
};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// src/components/docs/integrations/IntegrationsHealthRoutingPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
3
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
4
|
+
function IntegrationsHealthRoutingPage() {
|
|
5
|
+
return /* @__PURE__ */ jsxDEV("div", {
|
|
6
|
+
className: "space-y-8",
|
|
7
|
+
children: [
|
|
8
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
9
|
+
className: "space-y-4",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
12
|
+
className: "text-4xl font-bold",
|
|
13
|
+
children: "Health Routing Strategy"
|
|
14
|
+
}, undefined, false, undefined, this),
|
|
15
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
16
|
+
className: "text-muted-foreground",
|
|
17
|
+
children: "Health integrations resolve providers through deterministic transport strategy order with explicit capability gating and unofficial-route controls."
|
|
18
|
+
}, undefined, false, undefined, this)
|
|
19
|
+
]
|
|
20
|
+
}, undefined, true, undefined, this),
|
|
21
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
22
|
+
className: "space-y-4",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
25
|
+
className: "text-2xl font-bold",
|
|
26
|
+
children: "Connection config fields"
|
|
27
|
+
}, undefined, false, undefined, this),
|
|
28
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
29
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
30
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
31
|
+
children: `{
|
|
32
|
+
"defaultTransport": "official-api",
|
|
33
|
+
"strategyOrder": [
|
|
34
|
+
"official-api",
|
|
35
|
+
"official-mcp",
|
|
36
|
+
"aggregator-api",
|
|
37
|
+
"aggregator-mcp",
|
|
38
|
+
"unofficial"
|
|
39
|
+
],
|
|
40
|
+
"allowUnofficial": false,
|
|
41
|
+
"unofficialAllowList": ["health.peloton"],
|
|
42
|
+
"apiBaseUrl": "https://api.provider.example",
|
|
43
|
+
"mcpUrl": "https://mcp.provider.example",
|
|
44
|
+
"oauthTokenUrl": "https://api.provider.example/oauth/token"
|
|
45
|
+
}`
|
|
46
|
+
}, undefined, false, undefined, this)
|
|
47
|
+
}, undefined, false, undefined, this)
|
|
48
|
+
]
|
|
49
|
+
}, undefined, true, undefined, this),
|
|
50
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
51
|
+
className: "space-y-4",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
54
|
+
className: "text-2xl font-bold",
|
|
55
|
+
children: "Secret payload fields"
|
|
56
|
+
}, undefined, false, undefined, this),
|
|
57
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
58
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
59
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
60
|
+
children: `{
|
|
61
|
+
"apiKey": "...",
|
|
62
|
+
"accessToken": "...",
|
|
63
|
+
"refreshToken": "...",
|
|
64
|
+
"clientId": "...",
|
|
65
|
+
"clientSecret": "...",
|
|
66
|
+
"tokenExpiresAt": "2026-02-01T00:00:00.000Z",
|
|
67
|
+
"mcpAccessToken": "...",
|
|
68
|
+
"webhookSecret": "..."
|
|
69
|
+
}`
|
|
70
|
+
}, undefined, false, undefined, this)
|
|
71
|
+
}, undefined, false, undefined, this)
|
|
72
|
+
]
|
|
73
|
+
}, undefined, true, undefined, this),
|
|
74
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
75
|
+
className: "space-y-4",
|
|
76
|
+
children: [
|
|
77
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
78
|
+
className: "text-2xl font-bold",
|
|
79
|
+
children: "Routing behavior"
|
|
80
|
+
}, undefined, false, undefined, this),
|
|
81
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
82
|
+
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
85
|
+
children: "Unsupported strategies are skipped per provider capability matrix."
|
|
86
|
+
}, undefined, false, undefined, this),
|
|
87
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
88
|
+
children: "Missing credentials fail closed and fall through only when a later strategy is valid."
|
|
89
|
+
}, undefined, false, undefined, this),
|
|
90
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
91
|
+
children: [
|
|
92
|
+
"Unofficial routes are disabled unless",
|
|
93
|
+
/* @__PURE__ */ jsxDEV("code", {
|
|
94
|
+
className: "bg-background/50 ml-1 rounded px-2 py-1",
|
|
95
|
+
children: "allowUnofficial"
|
|
96
|
+
}, undefined, false, undefined, this),
|
|
97
|
+
"is true."
|
|
98
|
+
]
|
|
99
|
+
}, undefined, true, undefined, this),
|
|
100
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
101
|
+
children: [
|
|
102
|
+
"When",
|
|
103
|
+
/* @__PURE__ */ jsxDEV("code", {
|
|
104
|
+
className: "bg-background/50 ml-1 rounded px-2 py-1",
|
|
105
|
+
children: "unofficialAllowList"
|
|
106
|
+
}, undefined, false, undefined, this),
|
|
107
|
+
"is set, only listed provider keys can route unofficially."
|
|
108
|
+
]
|
|
109
|
+
}, undefined, true, undefined, this),
|
|
110
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
111
|
+
children: [
|
|
112
|
+
"OAuth refresh uses",
|
|
113
|
+
/* @__PURE__ */ jsxDEV("code", {
|
|
114
|
+
className: "bg-background/50 ml-1 rounded px-2 py-1",
|
|
115
|
+
children: "oauthTokenUrl"
|
|
116
|
+
}, undefined, false, undefined, this),
|
|
117
|
+
"with refresh/client credentials when APIs return 401."
|
|
118
|
+
]
|
|
119
|
+
}, undefined, true, undefined, this)
|
|
120
|
+
]
|
|
121
|
+
}, undefined, true, undefined, this)
|
|
122
|
+
]
|
|
123
|
+
}, undefined, true, undefined, this),
|
|
124
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
125
|
+
className: "space-y-4",
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
128
|
+
className: "text-2xl font-bold",
|
|
129
|
+
children: "Provider guidance"
|
|
130
|
+
}, undefined, false, undefined, this),
|
|
131
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
132
|
+
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
135
|
+
children: "Use official APIs when available (Whoop, Oura, Strava, Fitbit)."
|
|
136
|
+
}, undefined, false, undefined, this),
|
|
137
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
138
|
+
children: "Use aggregator routing for providers without stable official APIs (Garmin, MyFitnessPal, Eight Sleep, Peloton)."
|
|
139
|
+
}, undefined, false, undefined, this),
|
|
140
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
141
|
+
children: "Keep unofficial automation opt-in and auditable for production."
|
|
142
|
+
}, undefined, false, undefined, this)
|
|
143
|
+
]
|
|
144
|
+
}, undefined, true, undefined, this)
|
|
145
|
+
]
|
|
146
|
+
}, undefined, true, undefined, this),
|
|
147
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
148
|
+
className: "flex items-center gap-4 pt-4",
|
|
149
|
+
children: [
|
|
150
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
151
|
+
href: "/docs/integrations/whatsapp-twilio",
|
|
152
|
+
className: "btn-ghost",
|
|
153
|
+
children: "Previous: WhatsApp Twilio"
|
|
154
|
+
}, undefined, false, undefined, this),
|
|
155
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
156
|
+
href: "/docs/integrations",
|
|
157
|
+
className: "btn-primary",
|
|
158
|
+
children: "Back to Integrations"
|
|
159
|
+
}, undefined, false, undefined, this)
|
|
160
|
+
]
|
|
161
|
+
}, undefined, true, undefined, this)
|
|
162
|
+
]
|
|
163
|
+
}, undefined, true, undefined, this);
|
|
164
|
+
}
|
|
165
|
+
export {
|
|
166
|
+
IntegrationsHealthRoutingPage
|
|
167
|
+
};
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// src/components/docs/integrations/IntegrationsMistralPage.tsx
|
|
2
|
+
import Link from "@contractspec/lib.ui-link";
|
|
3
|
+
import { ChevronRight } from "lucide-react";
|
|
4
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
5
|
+
function IntegrationsMistralPage() {
|
|
6
|
+
return /* @__PURE__ */ jsxDEV("div", {
|
|
7
|
+
className: "space-y-8",
|
|
8
|
+
children: [
|
|
9
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
10
|
+
className: "space-y-4",
|
|
11
|
+
children: [
|
|
12
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
13
|
+
className: "text-4xl font-bold",
|
|
14
|
+
children: "Mistral"
|
|
15
|
+
}, undefined, false, undefined, this),
|
|
16
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
17
|
+
className: "text-muted-foreground",
|
|
18
|
+
children: "Integrate Mistral models for chat, reasoning, embeddings, speech-to-text, and conversational voice workflows. ContractSpec ships first-class Mistral support across contracts, provider runtime wiring, and CLI provider selection."
|
|
19
|
+
}, undefined, false, undefined, this)
|
|
20
|
+
]
|
|
21
|
+
}, undefined, true, undefined, this),
|
|
22
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
23
|
+
className: "space-y-4",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
26
|
+
className: "text-2xl font-bold",
|
|
27
|
+
children: "Setup"
|
|
28
|
+
}, undefined, false, undefined, this),
|
|
29
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
30
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
31
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
32
|
+
children: `# .env
|
|
33
|
+
MISTRAL_API_KEY=...`
|
|
34
|
+
}, undefined, false, undefined, this)
|
|
35
|
+
}, undefined, false, undefined, this)
|
|
36
|
+
]
|
|
37
|
+
}, undefined, true, undefined, this),
|
|
38
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
39
|
+
className: "space-y-4",
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
42
|
+
className: "text-2xl font-bold",
|
|
43
|
+
children: "Chat and reasoning"
|
|
44
|
+
}, undefined, false, undefined, this),
|
|
45
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
46
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
47
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
48
|
+
children: `capabilityId: mistral-chat
|
|
49
|
+
provider:
|
|
50
|
+
type: mistral
|
|
51
|
+
operation: chatCompletion
|
|
52
|
+
|
|
53
|
+
inputs:
|
|
54
|
+
messages:
|
|
55
|
+
type: array
|
|
56
|
+
model:
|
|
57
|
+
type: string
|
|
58
|
+
default: "mistral-large-latest"
|
|
59
|
+
temperature:
|
|
60
|
+
type: number
|
|
61
|
+
optional: true
|
|
62
|
+
|
|
63
|
+
outputs:
|
|
64
|
+
content:
|
|
65
|
+
type: string
|
|
66
|
+
usage:
|
|
67
|
+
type: object`
|
|
68
|
+
}, undefined, false, undefined, this)
|
|
69
|
+
}, undefined, false, undefined, this)
|
|
70
|
+
]
|
|
71
|
+
}, undefined, true, undefined, this),
|
|
72
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
73
|
+
className: "space-y-4",
|
|
74
|
+
children: [
|
|
75
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
76
|
+
className: "text-2xl font-bold",
|
|
77
|
+
children: "Embeddings"
|
|
78
|
+
}, undefined, false, undefined, this),
|
|
79
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
80
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
81
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
82
|
+
children: `capabilityId: mistral-embeddings
|
|
83
|
+
provider:
|
|
84
|
+
type: mistral
|
|
85
|
+
operation: createEmbedding
|
|
86
|
+
|
|
87
|
+
inputs:
|
|
88
|
+
text:
|
|
89
|
+
type: string
|
|
90
|
+
model:
|
|
91
|
+
type: string
|
|
92
|
+
default: "mistral-embed"
|
|
93
|
+
|
|
94
|
+
outputs:
|
|
95
|
+
embedding:
|
|
96
|
+
type: array
|
|
97
|
+
items:
|
|
98
|
+
type: number`
|
|
99
|
+
}, undefined, false, undefined, this)
|
|
100
|
+
}, undefined, false, undefined, this)
|
|
101
|
+
]
|
|
102
|
+
}, undefined, true, undefined, this),
|
|
103
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
104
|
+
className: "space-y-4",
|
|
105
|
+
children: [
|
|
106
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
107
|
+
className: "text-2xl font-bold",
|
|
108
|
+
children: "Speech-to-Text (Voxtral)"
|
|
109
|
+
}, undefined, false, undefined, this),
|
|
110
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
111
|
+
className: "bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm",
|
|
112
|
+
children: /* @__PURE__ */ jsxDEV("pre", {
|
|
113
|
+
children: `capabilityId: mistral-stt
|
|
114
|
+
provider:
|
|
115
|
+
type: mistral
|
|
116
|
+
operation: transcribe
|
|
117
|
+
|
|
118
|
+
inputs:
|
|
119
|
+
audio:
|
|
120
|
+
type: bytes
|
|
121
|
+
format:
|
|
122
|
+
type: string
|
|
123
|
+
language:
|
|
124
|
+
type: string
|
|
125
|
+
optional: true
|
|
126
|
+
|
|
127
|
+
outputs:
|
|
128
|
+
text:
|
|
129
|
+
type: string
|
|
130
|
+
segments:
|
|
131
|
+
type: array
|
|
132
|
+
language:
|
|
133
|
+
type: string`
|
|
134
|
+
}, undefined, false, undefined, this)
|
|
135
|
+
}, undefined, false, undefined, this)
|
|
136
|
+
]
|
|
137
|
+
}, undefined, true, undefined, this),
|
|
138
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
139
|
+
className: "space-y-4",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
142
|
+
className: "text-2xl font-bold",
|
|
143
|
+
children: "Conversational voice sessions"
|
|
144
|
+
}, undefined, false, undefined, this),
|
|
145
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
146
|
+
className: "text-muted-foreground",
|
|
147
|
+
children: "Use the conversational provider for session-based realtime voice flows (turn handling, events, and interruption-safe streaming)."
|
|
148
|
+
}, undefined, false, undefined, this)
|
|
149
|
+
]
|
|
150
|
+
}, undefined, true, undefined, this),
|
|
151
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
152
|
+
className: "space-y-4",
|
|
153
|
+
children: [
|
|
154
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
155
|
+
className: "text-2xl font-bold",
|
|
156
|
+
children: "Best practices"
|
|
157
|
+
}, undefined, false, undefined, this),
|
|
158
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
159
|
+
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
160
|
+
children: [
|
|
161
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
162
|
+
children: "Choose model families by workload: coding, reasoning, or speech"
|
|
163
|
+
}, undefined, false, undefined, this),
|
|
164
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
165
|
+
children: "Persist session IDs for conversational continuity across turns"
|
|
166
|
+
}, undefined, false, undefined, this),
|
|
167
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
168
|
+
children: "Capture token and latency telemetry for provider-level tuning"
|
|
169
|
+
}, undefined, false, undefined, this),
|
|
170
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
171
|
+
children: "Set explicit fallbacks for network and rate-limit failures"
|
|
172
|
+
}, undefined, false, undefined, this)
|
|
173
|
+
]
|
|
174
|
+
}, undefined, true, undefined, this)
|
|
175
|
+
]
|
|
176
|
+
}, undefined, true, undefined, this),
|
|
177
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
178
|
+
className: "flex items-center gap-4 pt-4",
|
|
179
|
+
children: [
|
|
180
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
181
|
+
href: "/docs/integrations/openai",
|
|
182
|
+
className: "btn-ghost",
|
|
183
|
+
children: "Previous: OpenAI"
|
|
184
|
+
}, undefined, false, undefined, this),
|
|
185
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
186
|
+
href: "/docs/integrations/elevenlabs",
|
|
187
|
+
className: "btn-primary",
|
|
188
|
+
children: [
|
|
189
|
+
"Next: ElevenLabs ",
|
|
190
|
+
/* @__PURE__ */ jsxDEV(ChevronRight, {
|
|
191
|
+
size: 16
|
|
192
|
+
}, undefined, false, undefined, this)
|
|
193
|
+
]
|
|
194
|
+
}, undefined, true, undefined, this)
|
|
195
|
+
]
|
|
196
|
+
}, undefined, true, undefined, this)
|
|
197
|
+
]
|
|
198
|
+
}, undefined, true, undefined, this);
|
|
199
|
+
}
|
|
200
|
+
export {
|
|
201
|
+
IntegrationsMistralPage
|
|
202
|
+
};
|
|
@@ -176,10 +176,10 @@ outputs:
|
|
|
176
176
|
children: "Previous: Google Calendar"
|
|
177
177
|
}, undefined, false, undefined, this),
|
|
178
178
|
/* @__PURE__ */ jsxDEV(Link, {
|
|
179
|
-
href: "/docs/integrations/
|
|
179
|
+
href: "/docs/integrations/mistral",
|
|
180
180
|
className: "btn-primary",
|
|
181
181
|
children: [
|
|
182
|
-
"Next:
|
|
182
|
+
"Next: Mistral ",
|
|
183
183
|
/* @__PURE__ */ jsxDEV(ChevronRight, {
|
|
184
184
|
size: 16
|
|
185
185
|
}, undefined, false, undefined, this)
|