@w3kits-com/plugin-opendesign 0.1.11 → 0.1.12
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/dist/404/index.html +1 -1
- package/dist/404.html +1 -1
- package/dist/__next.$oc$slug.__PAGE__.txt +1 -1
- package/dist/__next.$oc$slug.txt +1 -1
- package/dist/__next._full.txt +1 -1
- package/dist/__next._head.txt +1 -1
- package/dist/__next._index.txt +1 -1
- package/dist/__next._tree.txt +1 -1
- package/dist/__w3kits/webcontainer-runtime/package.json +6 -1
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.d.ts +108 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.mjs +413 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/package.json +12 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/artifact-id.d.ts +5 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/artifact-id.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/events.d.ts +250 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/events.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.d.ts +4 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.mjs +186 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/public-params.d.ts +26 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/public-params.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/app-config.d.ts +44 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/app-config.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/artifacts.d.ts +34 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/artifacts.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/chat.d.ts +158 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/chat.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/comments.d.ts +65 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/comments.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.d.ts +49 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.mjs +83 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectors.d.ts +133 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectors.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/files.d.ts +43 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/files.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.d.ts +50 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.mjs +5 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/live-artifacts.d.ts +151 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/live-artifacts.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/mcp.d.ts +117 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/mcp.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/memory.d.ts +233 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/memory.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.d.ts +22 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.mjs +0 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/projects.d.ts +286 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/projects.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.d.ts +19 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.mjs +0 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/proxy.d.ts +24 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/proxy.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/registry.d.ts +156 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/registry.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.d.ts +35 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.mjs +9 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/routines.d.ts +104 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/routines.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/version.d.ts +11 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/version.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/common.d.ts +33 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/common.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.d.ts +344 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.mjs +182 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/errors.d.ts +40 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/errors.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/examples.d.ts +20 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/examples.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.d.ts +31 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.mjs +2072 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/deck-framework.d.ts +39 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/deck-framework.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/directions.d.ts +69 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/directions.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/discovery.d.ts +2 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/discovery.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/media-contract.d.ts +2 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/media-contract.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/official-system.d.ts +12 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/official-system.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/system.d.ts +58 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/system.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/chat.d.ts +96 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/chat.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/common.d.ts +8 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/common.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/proxy.d.ts +6 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/proxy.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/tasks.d.ts +12 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/tasks.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/package.json +40 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.d.ts +68 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.mjs +397 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/package.json +12 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.d.ts +144 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.mjs +412 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/package.json +12 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.d.ts +291 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.d.ts.map +1 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.mjs +315 -0
- package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/package.json +12 -0
- package/dist/_not-found/__next._full.txt +1 -1
- package/dist/_not-found/__next._head.txt +1 -1
- package/dist/_not-found/__next._index.txt +1 -1
- package/dist/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/_not-found/__next._not-found.txt +1 -1
- package/dist/_not-found/__next._tree.txt +1 -1
- package/dist/_not-found/index.html +1 -1
- package/dist/_not-found/index.txt +1 -1
- package/dist/index.html +1 -1
- package/dist/index.txt +1 -1
- package/package.json +1 -1
- /package/dist/_next/static/{DJnxTGY7DiPmoowmfZmqQ → 5BA5jEbmoqCfBPFzdjNtN}/_buildManifest.js +0 -0
- /package/dist/_next/static/{DJnxTGY7DiPmoowmfZmqQ → 5BA5jEbmoqCfBPFzdjNtN}/_clientMiddlewareManifest.js +0 -0
- /package/dist/_next/static/{DJnxTGY7DiPmoowmfZmqQ → 5BA5jEbmoqCfBPFzdjNtN}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// src/api/connectionTest.ts
|
|
2
|
+
function normalizeBracketedIpv6(hostname) {
|
|
3
|
+
const stripped = hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname;
|
|
4
|
+
return stripped.toLowerCase().replace(/\.+$/, "");
|
|
5
|
+
}
|
|
6
|
+
function parseIpv4(hostname) {
|
|
7
|
+
const parts = hostname.split(".");
|
|
8
|
+
if (parts.length !== 4) return null;
|
|
9
|
+
const parsed = parts.map((part) => {
|
|
10
|
+
if (!/^\d{1,3}$/.test(part)) return null;
|
|
11
|
+
const value = Number(part);
|
|
12
|
+
return value >= 0 && value <= 255 ? value : null;
|
|
13
|
+
});
|
|
14
|
+
if (parsed.some((part) => part === null)) return null;
|
|
15
|
+
return parsed;
|
|
16
|
+
}
|
|
17
|
+
function isLoopbackIpv4(hostname) {
|
|
18
|
+
const parts = parseIpv4(hostname);
|
|
19
|
+
return Boolean(parts && parts[0] === 127);
|
|
20
|
+
}
|
|
21
|
+
function isBlockedIpv4(hostname) {
|
|
22
|
+
const parts = parseIpv4(hostname);
|
|
23
|
+
if (!parts) return false;
|
|
24
|
+
const [a, b] = parts;
|
|
25
|
+
return a === 0 || a === 100 && b >= 64 && b <= 127 || a === 169 && b === 254 || a === 10 || a === 192 && b === 168 || a === 172 && b >= 16 && b <= 31 || a >= 224;
|
|
26
|
+
}
|
|
27
|
+
function ipv4MappedToDotted(hostname) {
|
|
28
|
+
const host = normalizeBracketedIpv6(hostname);
|
|
29
|
+
const mapped = /^::ffff:(.+)$/i.exec(host)?.[1];
|
|
30
|
+
if (!mapped) return null;
|
|
31
|
+
if (parseIpv4(mapped.toLowerCase())) return mapped.toLowerCase();
|
|
32
|
+
const hexParts = mapped.split(":");
|
|
33
|
+
if (hexParts.length !== 2 || !hexParts.every((part) => /^[0-9a-f]{1,4}$/i.test(part))) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const hi = hexParts[0];
|
|
37
|
+
const lo = hexParts[1];
|
|
38
|
+
if (!hi || !lo) return null;
|
|
39
|
+
const value = Number.parseInt(hi, 16) << 16 | Number.parseInt(lo, 16);
|
|
40
|
+
return [
|
|
41
|
+
value >>> 24 & 255,
|
|
42
|
+
value >>> 16 & 255,
|
|
43
|
+
value >>> 8 & 255,
|
|
44
|
+
value & 255
|
|
45
|
+
].join(".");
|
|
46
|
+
}
|
|
47
|
+
function isLoopbackApiHost(hostname) {
|
|
48
|
+
const host = normalizeBracketedIpv6(hostname);
|
|
49
|
+
if (host === "localhost" || host === "::1") return true;
|
|
50
|
+
if (isLoopbackIpv4(host)) return true;
|
|
51
|
+
const mapped = ipv4MappedToDotted(host);
|
|
52
|
+
return Boolean(mapped && isLoopbackIpv4(mapped));
|
|
53
|
+
}
|
|
54
|
+
function isBlockedExternalApiHostname(hostname) {
|
|
55
|
+
const host = normalizeBracketedIpv6(hostname);
|
|
56
|
+
if (host === "::") return true;
|
|
57
|
+
if (isBlockedIpv4(host)) return true;
|
|
58
|
+
if (/^f[cd][0-9a-f]{2}:/i.test(host)) return true;
|
|
59
|
+
if (/^fe[89ab][0-9a-f]:/i.test(host)) return true;
|
|
60
|
+
const mapped = ipv4MappedToDotted(host);
|
|
61
|
+
return Boolean(mapped && isBlockedIpv4(mapped));
|
|
62
|
+
}
|
|
63
|
+
function validateBaseUrl(baseUrl) {
|
|
64
|
+
let parsed;
|
|
65
|
+
try {
|
|
66
|
+
parsed = new URL(String(baseUrl).replace(/\/+$/, ""));
|
|
67
|
+
} catch {
|
|
68
|
+
return { error: "Invalid baseUrl" };
|
|
69
|
+
}
|
|
70
|
+
if (!["http:", "https:"].includes(parsed.protocol)) {
|
|
71
|
+
return { error: "Only http/https allowed" };
|
|
72
|
+
}
|
|
73
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
74
|
+
if (!isLoopbackApiHost(hostname) && isBlockedExternalApiHostname(hostname)) {
|
|
75
|
+
return { error: "Internal IPs blocked", forbidden: true };
|
|
76
|
+
}
|
|
77
|
+
return { parsed };
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
isBlockedExternalApiHostname,
|
|
81
|
+
isLoopbackApiHost,
|
|
82
|
+
validateBaseUrl
|
|
83
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { BoundedJsonObject, BoundedJsonValue } from './live-artifacts';
|
|
2
|
+
export type ConnectorStatus = 'available' | 'connected' | 'error' | 'disabled';
|
|
3
|
+
export type ConnectorToolSideEffect = 'read' | 'write' | 'destructive' | 'unknown';
|
|
4
|
+
export type ConnectorToolApproval = 'auto' | 'confirm' | 'disabled';
|
|
5
|
+
export type ConnectorToolUseCase = 'personal_daily_digest';
|
|
6
|
+
export interface ConnectorToolSafety {
|
|
7
|
+
sideEffect: ConnectorToolSideEffect;
|
|
8
|
+
approval: ConnectorToolApproval;
|
|
9
|
+
reason: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ConnectorToolCuration {
|
|
12
|
+
useCases?: ConnectorToolUseCase[];
|
|
13
|
+
reason?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ConnectorToolDetail {
|
|
16
|
+
name: string;
|
|
17
|
+
title: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
inputSchemaJson?: BoundedJsonObject;
|
|
20
|
+
outputSchemaJson?: BoundedJsonObject;
|
|
21
|
+
safety: ConnectorToolSafety;
|
|
22
|
+
refreshEligible: boolean;
|
|
23
|
+
curation?: ConnectorToolCuration;
|
|
24
|
+
}
|
|
25
|
+
export interface ConnectorDetail {
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
provider: string;
|
|
29
|
+
category: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
status: ConnectorStatus;
|
|
32
|
+
accountLabel?: string;
|
|
33
|
+
tools: ConnectorToolDetail[];
|
|
34
|
+
/**
|
|
35
|
+
* Runtime execution allowlist. Subset of `tools` — the catalog's
|
|
36
|
+
* static curation plus any provider-discovered tools that are
|
|
37
|
+
* read-only with auto approval. Used by the agent layer to gate
|
|
38
|
+
* which tools are invocable. Note: this list **grows** on Composio
|
|
39
|
+
* hydration (a GitHub-style provider can add tens of read tools to
|
|
40
|
+
* the catalog baseline of 2), so it is not the right anchor for the
|
|
41
|
+
* advertised provider tool count — see `toolCount` for that.
|
|
42
|
+
*
|
|
43
|
+
* Optional in the type only to keep test fixtures terse — the daemon
|
|
44
|
+
* always populates this from `connectorDefinitionToDetail` so wire
|
|
45
|
+
* payloads are guaranteed to carry it.
|
|
46
|
+
*/
|
|
47
|
+
allowedToolNames?: string[];
|
|
48
|
+
/**
|
|
49
|
+
* Hand-curated catalog subset. Stable across hydration: never
|
|
50
|
+
* extended by provider discovery, only the static catalog names.
|
|
51
|
+
* This preserves the static catalog baseline for consumers that
|
|
52
|
+
* need that curated subset, but it does not represent the
|
|
53
|
+
* advertised provider inventory. UI summary badges should use
|
|
54
|
+
* `toolCount` when present, while the drawer's rendered tool rows
|
|
55
|
+
* still come from `tools` directly.
|
|
56
|
+
*
|
|
57
|
+
* Optional in the type only for fixture brevity, see `allowedToolNames`.
|
|
58
|
+
*/
|
|
59
|
+
curatedToolNames?: string[];
|
|
60
|
+
toolCount?: number;
|
|
61
|
+
toolsNextCursor?: string;
|
|
62
|
+
toolsHasMore?: boolean;
|
|
63
|
+
featuredToolNames?: string[];
|
|
64
|
+
minimumApproval?: ConnectorToolApproval;
|
|
65
|
+
lastError?: string;
|
|
66
|
+
auth?: ConnectorAuthDetail;
|
|
67
|
+
}
|
|
68
|
+
export interface ConnectorAuthDetail {
|
|
69
|
+
provider: 'local' | 'none' | 'oauth' | 'composio';
|
|
70
|
+
configured: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface ConnectorListResponse {
|
|
73
|
+
connectors: ConnectorDetail[];
|
|
74
|
+
}
|
|
75
|
+
export interface ConnectorStatusSummary {
|
|
76
|
+
status: ConnectorStatus;
|
|
77
|
+
accountLabel?: string;
|
|
78
|
+
lastError?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface ConnectorStatusResponse {
|
|
81
|
+
statuses: Record<string, ConnectorStatusSummary>;
|
|
82
|
+
}
|
|
83
|
+
export interface ConnectorDiscoveryMeta {
|
|
84
|
+
provider: 'composio';
|
|
85
|
+
refreshRequested?: boolean;
|
|
86
|
+
}
|
|
87
|
+
export interface ConnectorDiscoveryResponse extends ConnectorListResponse {
|
|
88
|
+
meta?: ConnectorDiscoveryMeta;
|
|
89
|
+
}
|
|
90
|
+
export interface ConnectorDetailResponse {
|
|
91
|
+
connector: ConnectorDetail;
|
|
92
|
+
}
|
|
93
|
+
export interface ConnectorConnectResponse extends ConnectorDetailResponse {
|
|
94
|
+
auth?: {
|
|
95
|
+
kind: 'redirect_required' | 'pending' | 'connected';
|
|
96
|
+
redirectUrl?: string;
|
|
97
|
+
providerConnectionId?: string;
|
|
98
|
+
expiresAt?: string;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export interface ConnectorAuthConfigPrepareRequest {
|
|
102
|
+
connectorIds: string[];
|
|
103
|
+
}
|
|
104
|
+
export type ConnectorAuthConfigPrepareResult = {
|
|
105
|
+
status: 'ready';
|
|
106
|
+
authConfigId: string;
|
|
107
|
+
} | {
|
|
108
|
+
status: 'custom_required';
|
|
109
|
+
message: string;
|
|
110
|
+
} | {
|
|
111
|
+
status: 'error';
|
|
112
|
+
message: string;
|
|
113
|
+
};
|
|
114
|
+
export interface ConnectorAuthConfigPrepareResponse {
|
|
115
|
+
results: Record<string, ConnectorAuthConfigPrepareResult>;
|
|
116
|
+
}
|
|
117
|
+
export interface ConnectorExecuteRequest {
|
|
118
|
+
connectorId: string;
|
|
119
|
+
toolName: string;
|
|
120
|
+
input: BoundedJsonObject;
|
|
121
|
+
}
|
|
122
|
+
export interface ConnectorExecuteResponse {
|
|
123
|
+
ok: true;
|
|
124
|
+
connectorId: string;
|
|
125
|
+
accountLabel?: string;
|
|
126
|
+
toolName: string;
|
|
127
|
+
safety: ConnectorToolSafety;
|
|
128
|
+
output: BoundedJsonValue;
|
|
129
|
+
outputSummary?: string;
|
|
130
|
+
providerExecutionId?: string;
|
|
131
|
+
metadata?: BoundedJsonObject;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../src/api/connectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { OkResponse } from '../common.js';
|
|
2
|
+
import type { ArtifactKind, ArtifactManifest } from './artifacts.js';
|
|
3
|
+
export type ProjectFileKind = 'html' | 'image' | 'video' | 'audio' | 'sketch' | 'text' | 'code' | 'pdf' | 'document' | 'presentation' | 'spreadsheet' | 'binary';
|
|
4
|
+
export interface ProjectFileStubGuardWarning {
|
|
5
|
+
code: 'ARTIFACT_REGRESSION';
|
|
6
|
+
message: string;
|
|
7
|
+
identifier: string;
|
|
8
|
+
newSize: number;
|
|
9
|
+
priorSize: number;
|
|
10
|
+
priorName: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ProjectFile {
|
|
13
|
+
name: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
type?: 'file' | 'dir';
|
|
16
|
+
size: number;
|
|
17
|
+
mtime: number;
|
|
18
|
+
kind: ProjectFileKind;
|
|
19
|
+
mime: string;
|
|
20
|
+
artifactKind?: ArtifactKind;
|
|
21
|
+
artifactManifest?: ArtifactManifest;
|
|
22
|
+
stubGuardWarning?: ProjectFileStubGuardWarning;
|
|
23
|
+
}
|
|
24
|
+
export interface ProjectFilesResponse {
|
|
25
|
+
files: ProjectFile[];
|
|
26
|
+
}
|
|
27
|
+
export interface ProjectFileResponse {
|
|
28
|
+
file: ProjectFile;
|
|
29
|
+
}
|
|
30
|
+
export interface UploadProjectFilesResponse extends ProjectFilesResponse {
|
|
31
|
+
}
|
|
32
|
+
export interface DeleteProjectFileResponse extends OkResponse {
|
|
33
|
+
}
|
|
34
|
+
export interface RenameProjectFileRequest {
|
|
35
|
+
from: string;
|
|
36
|
+
to: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RenameProjectFileResponse {
|
|
39
|
+
file: ProjectFile;
|
|
40
|
+
oldName: string;
|
|
41
|
+
newName: string;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/api/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,UAAU,GACV,cAAc,GACd,aAAa,GACb,QAAQ,CAAC;AAOb,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;CAAG;AAE3E,MAAM,WAAW,yBAA0B,SAAQ,UAAU;CAAG;AAEhE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bumped when the finalize request/response shape changes incompatibly.
|
|
3
|
+
* Also serves as a real runtime export so esbuild emits a `.mjs` for
|
|
4
|
+
* this module (without it, the file is type-only and NodeNext-resolved
|
|
5
|
+
* consumers cannot resolve the re-export from the package root).
|
|
6
|
+
*/
|
|
7
|
+
export declare const FINALIZE_SCHEMA_VERSION = 1;
|
|
8
|
+
/**
|
|
9
|
+
* Request body for `POST /api/projects/:id/finalize/anthropic`.
|
|
10
|
+
*
|
|
11
|
+
* Field names mirror `ProxyStreamRequest` (./proxy.ts) so a caller that
|
|
12
|
+
* already has provider credentials assembled for chat can reuse the
|
|
13
|
+
* same shape. `baseUrl` is optional here (intentional divergence from
|
|
14
|
+
* the proxy, which requires it) — standard Anthropic users do not need
|
|
15
|
+
* to set it; Bedrock / self-hosted-proxy users still can.
|
|
16
|
+
*/
|
|
17
|
+
export interface FinalizeAnthropicRequest {
|
|
18
|
+
apiKey: string;
|
|
19
|
+
baseUrl?: string;
|
|
20
|
+
model: string;
|
|
21
|
+
maxTokens?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Reference to the artifact that participated in the finalize call, if
|
|
25
|
+
* any. Synthesis prompts pass the artifact body verbatim; this response
|
|
26
|
+
* field lets the caller name which file was chosen and when it was
|
|
27
|
+
* last touched.
|
|
28
|
+
*/
|
|
29
|
+
export interface FinalizeArtifactRef {
|
|
30
|
+
name: string;
|
|
31
|
+
/** ISO 8601 from the artifact's manifest, or `null` for legacy artifacts. */
|
|
32
|
+
updatedAt: string | null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Response body for a successful finalize call. The synthesized
|
|
36
|
+
* `DESIGN.md` was written atomically to `designMdPath`; `bytesWritten`
|
|
37
|
+
* is the exact UTF-8 byte length on disk. Token counts are echoed
|
|
38
|
+
* straight from the provider's `usage` block.
|
|
39
|
+
*/
|
|
40
|
+
export interface FinalizeAnthropicResponse {
|
|
41
|
+
designMdPath: string;
|
|
42
|
+
bytesWritten: number;
|
|
43
|
+
model: string;
|
|
44
|
+
inputTokens: number;
|
|
45
|
+
outputTokens: number;
|
|
46
|
+
artifact: FinalizeArtifactRef | null;
|
|
47
|
+
transcriptMessageCount: number;
|
|
48
|
+
designSystemId: string | null;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=finalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../src/api/finalize.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { JsonPrimitive } from '../common';
|
|
2
|
+
export type BoundedJsonValue = JsonPrimitive | BoundedJsonValue[] | {
|
|
3
|
+
[key: string]: BoundedJsonValue;
|
|
4
|
+
};
|
|
5
|
+
export interface BoundedJsonObject {
|
|
6
|
+
[key: string]: BoundedJsonValue;
|
|
7
|
+
}
|
|
8
|
+
export type LiveArtifactStatus = 'active' | 'archived' | 'error';
|
|
9
|
+
export type LiveArtifactRefreshStatus = 'never' | 'idle' | 'running' | 'succeeded' | 'failed';
|
|
10
|
+
export type LiveArtifactPreviewType = 'html' | 'jsx' | 'markdown';
|
|
11
|
+
export type LiveArtifactSourceType = 'local_file' | 'daemon_tool' | 'connector_tool';
|
|
12
|
+
export type LiveArtifactConnectorApprovalPolicy = 'read_only_auto' | 'manual_refresh_granted_for_read_only';
|
|
13
|
+
export type LiveArtifactRefreshPermission = 'none' | 'manual_refresh_granted_for_read_only';
|
|
14
|
+
export type LiveArtifactOutputTransform = 'identity' | 'compact_table' | 'metric_summary';
|
|
15
|
+
export type LiveArtifactProvenanceGenerator = 'agent' | 'refresh_runner';
|
|
16
|
+
export type LiveArtifactProvenanceSourceType = 'connector' | 'local_file' | 'user_input' | 'derived';
|
|
17
|
+
export interface LiveArtifactPreview {
|
|
18
|
+
type: LiveArtifactPreviewType;
|
|
19
|
+
entry: string;
|
|
20
|
+
}
|
|
21
|
+
export interface LiveArtifactDocument {
|
|
22
|
+
format: 'html_template_v1';
|
|
23
|
+
templatePath: 'template.html';
|
|
24
|
+
generatedPreviewPath: 'index.html';
|
|
25
|
+
dataPath: 'data.json';
|
|
26
|
+
/** Derived cache hydrated from dataPath in API responses; data.json is canonical. */
|
|
27
|
+
dataJson: BoundedJsonObject;
|
|
28
|
+
dataSchemaJson?: BoundedJsonObject;
|
|
29
|
+
sourceJson?: LiveArtifactSource;
|
|
30
|
+
}
|
|
31
|
+
export interface LiveArtifactSource {
|
|
32
|
+
type: LiveArtifactSourceType;
|
|
33
|
+
toolName?: string;
|
|
34
|
+
input: BoundedJsonObject;
|
|
35
|
+
connector?: {
|
|
36
|
+
connectorId: string;
|
|
37
|
+
accountLabel?: string;
|
|
38
|
+
toolName: string;
|
|
39
|
+
approvalPolicy?: LiveArtifactConnectorApprovalPolicy;
|
|
40
|
+
};
|
|
41
|
+
outputMapping?: {
|
|
42
|
+
dataPaths?: Array<{
|
|
43
|
+
from: string;
|
|
44
|
+
to: string;
|
|
45
|
+
}>;
|
|
46
|
+
transform?: LiveArtifactOutputTransform;
|
|
47
|
+
};
|
|
48
|
+
refreshPermission: LiveArtifactRefreshPermission;
|
|
49
|
+
}
|
|
50
|
+
export interface LiveArtifactProvenanceSource {
|
|
51
|
+
label: string;
|
|
52
|
+
type: LiveArtifactProvenanceSourceType;
|
|
53
|
+
ref?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface LiveArtifactProvenance {
|
|
56
|
+
generatedAt: string;
|
|
57
|
+
generatedBy: LiveArtifactProvenanceGenerator;
|
|
58
|
+
notes?: string;
|
|
59
|
+
sources: LiveArtifactProvenanceSource[];
|
|
60
|
+
}
|
|
61
|
+
export interface LiveArtifact {
|
|
62
|
+
schemaVersion: 1;
|
|
63
|
+
id: string;
|
|
64
|
+
projectId: string;
|
|
65
|
+
sessionId?: string;
|
|
66
|
+
createdByRunId?: string;
|
|
67
|
+
title: string;
|
|
68
|
+
slug: string;
|
|
69
|
+
status: LiveArtifactStatus;
|
|
70
|
+
pinned: boolean;
|
|
71
|
+
preview: LiveArtifactPreview;
|
|
72
|
+
refreshStatus: LiveArtifactRefreshStatus;
|
|
73
|
+
createdAt: string;
|
|
74
|
+
updatedAt: string;
|
|
75
|
+
lastRefreshedAt?: string;
|
|
76
|
+
document: LiveArtifactDocument;
|
|
77
|
+
}
|
|
78
|
+
export type LiveArtifactDaemonOwnedInputField = 'id' | 'projectId' | 'createdAt' | 'updatedAt' | 'createdByRunId' | 'schemaVersion' | 'refreshStatus' | 'lastRefreshedAt';
|
|
79
|
+
export type LiveArtifactRejectDaemonOwnedInputFields = {
|
|
80
|
+
[Field in LiveArtifactDaemonOwnedInputField]?: never;
|
|
81
|
+
};
|
|
82
|
+
export type LiveArtifactCreateInput = LiveArtifactRejectDaemonOwnedInputFields & {
|
|
83
|
+
title: string;
|
|
84
|
+
slug?: string;
|
|
85
|
+
sessionId?: string;
|
|
86
|
+
pinned?: boolean;
|
|
87
|
+
status?: LiveArtifactStatus;
|
|
88
|
+
preview: LiveArtifactPreview;
|
|
89
|
+
document: LiveArtifactDocument;
|
|
90
|
+
};
|
|
91
|
+
export type LiveArtifactUpdateInput = LiveArtifactRejectDaemonOwnedInputFields & {
|
|
92
|
+
title?: string;
|
|
93
|
+
slug?: string;
|
|
94
|
+
pinned?: boolean;
|
|
95
|
+
status?: LiveArtifactStatus;
|
|
96
|
+
preview?: LiveArtifactPreview;
|
|
97
|
+
document?: LiveArtifactDocument;
|
|
98
|
+
};
|
|
99
|
+
export type LiveArtifactSummary = Omit<LiveArtifact, 'document'> & {
|
|
100
|
+
hasDocument: boolean;
|
|
101
|
+
};
|
|
102
|
+
export interface LiveArtifactListResponse {
|
|
103
|
+
artifacts: LiveArtifactSummary[];
|
|
104
|
+
}
|
|
105
|
+
export interface LiveArtifactDetailResponse {
|
|
106
|
+
artifact: LiveArtifact;
|
|
107
|
+
}
|
|
108
|
+
export interface LiveArtifactRefreshResponse {
|
|
109
|
+
artifact: LiveArtifact;
|
|
110
|
+
refresh: {
|
|
111
|
+
id: string;
|
|
112
|
+
status: 'succeeded';
|
|
113
|
+
refreshedSourceCount: number;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export type LiveArtifactRefreshStepStatus = 'running' | 'succeeded' | 'failed' | 'cancelled' | 'skipped';
|
|
117
|
+
export interface LiveArtifactRefreshErrorRecord {
|
|
118
|
+
code?: string;
|
|
119
|
+
message: string;
|
|
120
|
+
path?: string;
|
|
121
|
+
}
|
|
122
|
+
export interface LiveArtifactRefreshSourceMetadata {
|
|
123
|
+
sourceType: 'document';
|
|
124
|
+
toolName?: string;
|
|
125
|
+
connector?: {
|
|
126
|
+
connectorId: string;
|
|
127
|
+
accountLabel?: string;
|
|
128
|
+
toolName: string;
|
|
129
|
+
approvalPolicy?: LiveArtifactConnectorApprovalPolicy;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export interface LiveArtifactRefreshLogEntry {
|
|
133
|
+
schemaVersion: 1;
|
|
134
|
+
projectId: string;
|
|
135
|
+
artifactId: string;
|
|
136
|
+
refreshId: string;
|
|
137
|
+
sequence: number;
|
|
138
|
+
step: string;
|
|
139
|
+
status: LiveArtifactRefreshStepStatus;
|
|
140
|
+
startedAt: string;
|
|
141
|
+
finishedAt?: string;
|
|
142
|
+
durationMs?: number;
|
|
143
|
+
source?: LiveArtifactRefreshSourceMetadata;
|
|
144
|
+
error?: LiveArtifactRefreshErrorRecord;
|
|
145
|
+
metadata?: BoundedJsonObject;
|
|
146
|
+
createdAt: string;
|
|
147
|
+
}
|
|
148
|
+
export interface LiveArtifactRefreshLogResponse {
|
|
149
|
+
refreshes: LiveArtifactRefreshLogEntry[];
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=live-artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-artifacts.d.ts","sourceRoot":"","sources":["../../src/api/live-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,gBAAgB,EAAE,GAClB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9F,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAErF,MAAM,MAAM,mCAAmC,GAC3C,gBAAgB,GAChB,sCAAsC,CAAC;AAE3C,MAAM,MAAM,6BAA6B,GAAG,MAAM,GAAG,sCAAsC,CAAC;AAE5F,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAE1F,MAAM,MAAM,+BAA+B,GAAG,OAAO,GAAG,gBAAgB,CAAC;AAEzE,MAAM,MAAM,gCAAgC,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,eAAe,CAAC;IAC9B,oBAAoB,EAAE,YAAY,CAAC;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,qFAAqF;IACrF,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,mCAAmC,CAAC;KACtD,CAAC;IACF,aAAa,CAAC,EAAE;QACd,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,SAAS,CAAC,EAAE,2BAA2B,CAAC;KACzC,CAAC;IACF,iBAAiB,EAAE,6BAA6B,CAAC;CAClD;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gCAAgC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,+BAA+B,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,4BAA4B,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,aAAa,EAAE,yBAAyB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,MAAM,iCAAiC,GACzC,IAAI,GACJ,WAAW,GACX,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,MAAM,wCAAwC,GAAG;KACpD,KAAK,IAAI,iCAAiC,CAAC,CAAC,EAAE,KAAK;CACrD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,wCAAwC,GAAG;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,wCAAwC,GAAG;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACjE,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,WAAW,CAAC;QACpB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,MAAM,6BAA6B,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzG,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,mCAAmC,CAAC;KACtD,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,CAAC,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iCAAiC,CAAC;IAC3C,KAAK,CAAC,EAAE,8BAA8B,CAAC;IACvC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC1C"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export type McpTransport = 'stdio' | 'sse' | 'http';
|
|
2
|
+
export interface McpServerConfig {
|
|
3
|
+
/** Stable slug (lowercase, alphanumeric + dash/underscore). Doubles as the
|
|
4
|
+
* MCP server name passed to agents. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Optional human label shown in the UI. Falls back to `id`. */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Optional template id this entry was instantiated from. Lets the UI
|
|
9
|
+
* render the template's logo/help text without re-deriving from the URL. */
|
|
10
|
+
templateId?: string;
|
|
11
|
+
/** Transport selector. `http` is "streamable HTTP" per MCP spec; `sse` is
|
|
12
|
+
* the older Server-Sent-Events variant some servers (Higgsfield) still
|
|
13
|
+
* publish. Both flow through the same upstream URL field. */
|
|
14
|
+
transport: McpTransport;
|
|
15
|
+
/** Master enable switch. Disabled entries are persisted but skipped at
|
|
16
|
+
* spawn so users can keep credentials around without them being wired into
|
|
17
|
+
* every run. */
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
command?: string;
|
|
20
|
+
args?: string[];
|
|
21
|
+
env?: Record<string, string>;
|
|
22
|
+
url?: string;
|
|
23
|
+
headers?: Record<string, string>;
|
|
24
|
+
}
|
|
25
|
+
export interface McpConfig {
|
|
26
|
+
servers: McpServerConfig[];
|
|
27
|
+
}
|
|
28
|
+
/** An optional environment variable / header field a template needs the user
|
|
29
|
+
* to supply before the server can start. The UI renders these as inputs. */
|
|
30
|
+
export interface McpTemplateField {
|
|
31
|
+
key: string;
|
|
32
|
+
label?: string;
|
|
33
|
+
required?: boolean;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
/** Render the value with a password-style input (api keys, tokens). */
|
|
36
|
+
secret?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/** Coarse-grained category used to group templates in the picker UI so the
|
|
39
|
+
* 30+ built-in entries stay scannable. Stable string union — adding a new
|
|
40
|
+
* category requires a matching entry in `CATEGORY_ORDER` on the web side
|
|
41
|
+
* so the group has a label / display order. */
|
|
42
|
+
export type McpTemplateCategory = 'image-generation' | 'image-editing' | 'web-capture' | 'design-systems' | 'ui-components' | 'data-viz' | 'publishing' | 'utilities';
|
|
43
|
+
/** A built-in MCP server preset surfaced in the Settings UI's "Add MCP
|
|
44
|
+
* server" picker. Selecting one fills in the form with defaults; the
|
|
45
|
+
* resulting `McpServerConfig` is saved like any custom entry. */
|
|
46
|
+
export interface McpTemplate {
|
|
47
|
+
id: string;
|
|
48
|
+
label: string;
|
|
49
|
+
description: string;
|
|
50
|
+
transport: McpTransport;
|
|
51
|
+
/** Picker grouping. Required so the UI can always find a home for the
|
|
52
|
+
* template — fall back to `utilities` for true grab-bag entries. */
|
|
53
|
+
category: McpTemplateCategory;
|
|
54
|
+
/** Marketing-grade homepage / docs URL. Optional. */
|
|
55
|
+
homepage?: string;
|
|
56
|
+
/** A one-liner the user can paste into the chat composer to try this MCP
|
|
57
|
+
* server end-to-end. Surfaced in the Settings UI both inside the picker
|
|
58
|
+
* and inline on each saved row, so the user always has at least one
|
|
59
|
+
* concrete idea of what tools this server unlocks. Optional. */
|
|
60
|
+
example?: string;
|
|
61
|
+
command?: string;
|
|
62
|
+
args?: string[];
|
|
63
|
+
envFields?: McpTemplateField[];
|
|
64
|
+
url?: string;
|
|
65
|
+
headerFields?: McpTemplateField[];
|
|
66
|
+
}
|
|
67
|
+
export interface McpServersResponse {
|
|
68
|
+
servers: McpServerConfig[];
|
|
69
|
+
templates: McpTemplate[];
|
|
70
|
+
}
|
|
71
|
+
export interface UpdateMcpServersRequest {
|
|
72
|
+
servers: McpServerConfig[];
|
|
73
|
+
}
|
|
74
|
+
/** Body for `POST /api/mcp/oauth/start`. */
|
|
75
|
+
export interface StartMcpOAuthRequest {
|
|
76
|
+
/** id of an already-saved McpServerConfig (transport must be http or sse). */
|
|
77
|
+
serverId: string;
|
|
78
|
+
}
|
|
79
|
+
/** Response from `POST /api/mcp/oauth/start`. The web UI should
|
|
80
|
+
* `window.open(authorizeUrl, '_blank', 'noopener,noreferrer=no')` so the
|
|
81
|
+
* provider's auth page opens in a new tab; the callback HTML then
|
|
82
|
+
* `postMessage`s the result back to the opener. */
|
|
83
|
+
export interface StartMcpOAuthResponse {
|
|
84
|
+
authorizeUrl: string;
|
|
85
|
+
/** Echoed back so the UI can correlate with the postMessage payload. */
|
|
86
|
+
state: string;
|
|
87
|
+
/** The exact `redirect_uri` the daemon registered with the provider —
|
|
88
|
+
* useful for diagnosing redirect-mismatch errors. */
|
|
89
|
+
redirectUri: string;
|
|
90
|
+
}
|
|
91
|
+
/** Response from `GET /api/mcp/oauth/status?serverId=…`. */
|
|
92
|
+
export interface McpOAuthStatusResponse {
|
|
93
|
+
connected: boolean;
|
|
94
|
+
/** Epoch ms when the access token expires. `null` when the provider
|
|
95
|
+
* issued a non-expiring token. Absent when not connected. */
|
|
96
|
+
expiresAt?: number | null;
|
|
97
|
+
/** Space-separated scopes the issued token is good for. */
|
|
98
|
+
scope?: string | null;
|
|
99
|
+
/** Epoch ms when the token was first persisted. */
|
|
100
|
+
savedAt?: number;
|
|
101
|
+
}
|
|
102
|
+
/** Body for `POST /api/mcp/oauth/disconnect`. */
|
|
103
|
+
export interface DisconnectMcpOAuthRequest {
|
|
104
|
+
serverId: string;
|
|
105
|
+
}
|
|
106
|
+
/** Shape of the `postMessage` payload the OAuth callback page emits to
|
|
107
|
+
* its opener (and broadcasts on the `open-design-mcp-oauth` channel). */
|
|
108
|
+
export type McpOAuthPostMessage = {
|
|
109
|
+
type: 'mcp-oauth';
|
|
110
|
+
ok: true;
|
|
111
|
+
serverId: string | null;
|
|
112
|
+
} | {
|
|
113
|
+
type: 'mcp-oauth';
|
|
114
|
+
ok: false;
|
|
115
|
+
message: string | null;
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/api/mcp.ts"],"names":[],"mappings":"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"}
|