@w3kits-com/plugin-opendesign 0.1.10 → 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.
Files changed (125) hide show
  1. package/dist/404/index.html +1 -1
  2. package/dist/404.html +1 -1
  3. package/dist/__next.$oc$slug.__PAGE__.txt +1 -1
  4. package/dist/__next.$oc$slug.txt +1 -1
  5. package/dist/__next._full.txt +1 -1
  6. package/dist/__next._head.txt +1 -1
  7. package/dist/__next._index.txt +1 -1
  8. package/dist/__next._tree.txt +1 -1
  9. package/dist/__w3kits/webcontainer-runtime/package.json +6 -1
  10. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.d.ts +108 -0
  11. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.d.ts.map +1 -0
  12. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/dist/index.mjs +413 -0
  13. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/browser-vfs/package.json +12 -0
  14. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/artifact-id.d.ts +5 -0
  15. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/artifact-id.d.ts.map +1 -0
  16. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/events.d.ts +250 -0
  17. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/events.d.ts.map +1 -0
  18. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.d.ts +4 -0
  19. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.d.ts.map +1 -0
  20. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/index.mjs +186 -0
  21. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/public-params.d.ts +26 -0
  22. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/analytics/public-params.d.ts.map +1 -0
  23. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/app-config.d.ts +44 -0
  24. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/app-config.d.ts.map +1 -0
  25. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/artifacts.d.ts +34 -0
  26. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/artifacts.d.ts.map +1 -0
  27. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/chat.d.ts +158 -0
  28. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/chat.d.ts.map +1 -0
  29. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/comments.d.ts +65 -0
  30. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/comments.d.ts.map +1 -0
  31. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.d.ts +49 -0
  32. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.d.ts.map +1 -0
  33. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectionTest.mjs +83 -0
  34. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectors.d.ts +133 -0
  35. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/connectors.d.ts.map +1 -0
  36. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/files.d.ts +43 -0
  37. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/files.d.ts.map +1 -0
  38. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.d.ts +50 -0
  39. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.d.ts.map +1 -0
  40. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/finalize.mjs +5 -0
  41. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/live-artifacts.d.ts +151 -0
  42. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/live-artifacts.d.ts.map +1 -0
  43. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/mcp.d.ts +117 -0
  44. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/mcp.d.ts.map +1 -0
  45. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/memory.d.ts +233 -0
  46. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/memory.d.ts.map +1 -0
  47. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.d.ts +22 -0
  48. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.d.ts.map +1 -0
  49. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/orbit.mjs +0 -0
  50. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/projects.d.ts +286 -0
  51. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/projects.d.ts.map +1 -0
  52. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.d.ts +19 -0
  53. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.d.ts.map +1 -0
  54. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/providerModels.mjs +0 -0
  55. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/proxy.d.ts +24 -0
  56. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/proxy.d.ts.map +1 -0
  57. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/registry.d.ts +156 -0
  58. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/registry.d.ts.map +1 -0
  59. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.d.ts +35 -0
  60. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.d.ts.map +1 -0
  61. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/research.mjs +9 -0
  62. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/routines.d.ts +104 -0
  63. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/routines.d.ts.map +1 -0
  64. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/version.d.ts +11 -0
  65. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/api/version.d.ts.map +1 -0
  66. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/common.d.ts +33 -0
  67. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/common.d.ts.map +1 -0
  68. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.d.ts +344 -0
  69. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.d.ts.map +1 -0
  70. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/critique.mjs +182 -0
  71. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/errors.d.ts +40 -0
  72. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/errors.d.ts.map +1 -0
  73. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/examples.d.ts +20 -0
  74. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/examples.d.ts.map +1 -0
  75. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.d.ts +31 -0
  76. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.d.ts.map +1 -0
  77. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/index.mjs +2072 -0
  78. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/deck-framework.d.ts +39 -0
  79. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/deck-framework.d.ts.map +1 -0
  80. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/directions.d.ts +69 -0
  81. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/directions.d.ts.map +1 -0
  82. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/discovery.d.ts +2 -0
  83. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/discovery.d.ts.map +1 -0
  84. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/media-contract.d.ts +2 -0
  85. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/media-contract.d.ts.map +1 -0
  86. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/official-system.d.ts +12 -0
  87. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/official-system.d.ts.map +1 -0
  88. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/system.d.ts +58 -0
  89. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/prompts/system.d.ts.map +1 -0
  90. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/chat.d.ts +96 -0
  91. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/chat.d.ts.map +1 -0
  92. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/common.d.ts +8 -0
  93. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/common.d.ts.map +1 -0
  94. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/proxy.d.ts +6 -0
  95. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/sse/proxy.d.ts.map +1 -0
  96. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/tasks.d.ts +12 -0
  97. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/dist/tasks.d.ts.map +1 -0
  98. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/contracts/package.json +40 -0
  99. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.d.ts +68 -0
  100. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.d.ts.map +1 -0
  101. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/dist/index.mjs +397 -0
  102. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/platform/package.json +12 -0
  103. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.d.ts +144 -0
  104. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.d.ts.map +1 -0
  105. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/dist/index.mjs +412 -0
  106. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar/package.json +12 -0
  107. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.d.ts +291 -0
  108. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.d.ts.map +1 -0
  109. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/dist/index.mjs +315 -0
  110. package/dist/__w3kits/webcontainer-runtime/workspace-packages/@open-design/sidecar-proto/package.json +12 -0
  111. package/dist/_not-found/__next._full.txt +1 -1
  112. package/dist/_not-found/__next._head.txt +1 -1
  113. package/dist/_not-found/__next._index.txt +1 -1
  114. package/dist/_not-found/__next._not-found.__PAGE__.txt +1 -1
  115. package/dist/_not-found/__next._not-found.txt +1 -1
  116. package/dist/_not-found/__next._tree.txt +1 -1
  117. package/dist/_not-found/index.html +1 -1
  118. package/dist/_not-found/index.txt +1 -1
  119. package/dist/browser-daemon.js +20 -0
  120. package/dist/index.html +1 -1
  121. package/dist/index.txt +1 -1
  122. package/package.json +1 -1
  123. /package/dist/_next/static/{zDhAhlvmD2uhNsdWY6CQB → 5BA5jEbmoqCfBPFzdjNtN}/_buildManifest.js +0 -0
  124. /package/dist/_next/static/{zDhAhlvmD2uhNsdWY6CQB → 5BA5jEbmoqCfBPFzdjNtN}/_clientMiddlewareManifest.js +0 -0
  125. /package/dist/_next/static/{zDhAhlvmD2uhNsdWY6CQB → 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,5 @@
1
+ // src/api/finalize.ts
2
+ var FINALIZE_SCHEMA_VERSION = 1;
3
+ export {
4
+ FINALIZE_SCHEMA_VERSION
5
+ };
@@ -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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"}