@tangle-network/sandbox-ui 0.113.6 → 0.114.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/dist/WorkflowGraph-B-NsdYz_.js +1961 -0
- package/dist/assets.d.ts +214 -206
- package/dist/assets.js +1057 -908
- package/dist/auth-CWe17Hly.js +37 -0
- package/dist/auth.d.ts +2 -30
- package/dist/auth.js +2 -15
- package/dist/chat-BOvFAe6p.js +903 -0
- package/dist/chat.d.ts +2 -230
- package/dist/chat.js +2 -34
- package/dist/connectors.d.ts +52 -49
- package/dist/connectors.js +595 -643
- package/dist/dashboard-CZ3VgNPR.js +4969 -0
- package/dist/dashboard.d.ts +4 -1297
- package/dist/dashboard.js +4 -152
- package/dist/editor.d.ts +2 -1
- package/dist/editor.js +2 -31
- package/dist/files.d.ts +2 -6
- package/dist/files.js +2 -33
- package/dist/globals.css +63 -3
- package/dist/hooks.d.ts +146 -148
- package/dist/hooks.js +222 -55
- package/dist/index-CKRaj1pM.d.ts +776 -0
- package/dist/index-CXX5IpH2.d.ts +2 -0
- package/dist/index-DPePq7c8.d.ts +1340 -0
- package/dist/index-DiyLLZuJ.d.ts +230 -0
- package/dist/index-DvmZLMT1.d.ts +30 -0
- package/dist/index-I8ZLVtHd.d.ts +330 -0
- package/dist/index-PRM636Ex.d.ts +86 -0
- package/dist/index.d.ts +21 -33
- package/dist/index.js +21 -701
- package/dist/info-panel-C9cqDzOL.js +594 -0
- package/dist/integrations.d.ts +133 -139
- package/dist/integrations.js +491 -673
- package/dist/markdown.d.ts +2 -1
- package/dist/markdown.js +2 -13
- package/dist/model-I-NIxeM-.js +1250 -0
- package/dist/model-brand-B9A4H9pJ.d.ts +98 -0
- package/dist/model-brand-hMyDTUqB.js +624 -0
- package/dist/motion-DkyBRJb9.js +37 -0
- package/dist/openui.d.ts +2 -1
- package/dist/openui.js +2 -7
- package/dist/pages.d.ts +307 -300
- package/dist/pages.js +4404 -4181
- package/dist/primitives-Dh1vG6J3.js +113 -0
- package/dist/primitives.d.ts +2 -74
- package/dist/primitives.js +2 -204
- package/dist/provider-logo-DjqmConF.js +311 -0
- package/dist/run.d.ts +2 -1
- package/dist/run.js +2 -23
- package/dist/sdk-hooks.d.ts +3 -4
- package/dist/sdk-hooks.js +3 -31
- package/dist/sidecar-DgH_vQ6m.d.ts +9 -0
- package/dist/stores.d.ts +14 -15
- package/dist/stores.js +13 -81
- package/dist/styles.css +63 -3
- package/dist/template-card-L-4gmjx2.d.ts +90 -0
- package/dist/terminal-CN9ZgHRt.js +197 -0
- package/dist/terminal.d.ts +60 -60
- package/dist/terminal.js +2 -10
- package/dist/tokens.css +51 -0
- package/dist/types.d.ts +4 -11
- package/dist/types.js +0 -1
- package/dist/use-pty-session-C8cE0adT.js +669 -0
- package/dist/use-sidecar-auth-CCTJcrq7.d.ts +145 -0
- package/dist/use-sidecar-auth-DkdcufOz.js +742 -0
- package/dist/utils-DzWbktWG.js +2 -0
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +2 -37
- package/dist/workbench-BCaCKl-J.js +8347 -0
- package/dist/workbench.d.ts +2 -310
- package/dist/workbench.js +2 -44
- package/dist/workflows.d.ts +341 -339
- package/dist/workflows.js +74 -109
- package/dist/workspace-B6AtI6ld.js +2510 -0
- package/dist/workspace.d.ts +2 -761
- package/dist/workspace.js +2 -51
- package/package.json +46 -40
- package/dist/WorkflowGraph-2QOORYIR.js +0 -1722
- package/dist/chunk-2BUPSB7O.js +0 -0
- package/dist/chunk-3KBNPQQF.js +0 -2697
- package/dist/chunk-3LIXVEEE.js +0 -279
- package/dist/chunk-72UF2H5H.js +0 -707
- package/dist/chunk-AI25G5MX.js +0 -944
- package/dist/chunk-ANSC5AFC.js +0 -314
- package/dist/chunk-AZ3AWMTM.js +0 -8
- package/dist/chunk-BGVEHENC.js +0 -10
- package/dist/chunk-CZ7CSFO4.js +0 -39
- package/dist/chunk-DYXXYGS4.js +0 -4700
- package/dist/chunk-EI44GEQ5.js +0 -6
- package/dist/chunk-IACRDXER.js +0 -219
- package/dist/chunk-IOB2PW5Z.js +0 -55
- package/dist/chunk-M4K7ZGR2.js +0 -24
- package/dist/chunk-MYZAW4RX.js +0 -665
- package/dist/chunk-OMUIPJQZ.js +0 -555
- package/dist/chunk-RQZRXKMR.js +0 -398
- package/dist/chunk-SOKKTB7W.js +0 -230
- package/dist/chunk-TADGS4Q7.js +0 -1010
- package/dist/chunk-UCQNOUN3.js +0 -7964
- package/dist/chunk-ULPLRBMF.js +0 -34
- package/dist/chunk-WID73FPH.js +0 -89
- package/dist/chunk-X3YXP7FG.js +0 -38
- package/dist/logo-DiAjq759.d.ts +0 -15
- package/dist/model-brand-BNnaUKKZ.d.ts +0 -99
- package/dist/ports-list-CDIvTNnX.d.ts +0 -17
- package/dist/sdk-hooks-Djkjq4cp.d.ts +0 -145
- package/dist/template-card-Bn-Bw5xC.d.ts +0 -87
package/dist/pages.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { r as ModelInfo } from "./model-brand-B9A4H9pJ.js";
|
|
2
|
+
import { d as BillingBalance, h as BillingUsage, l as PricingTier, m as BillingSubscription, n as TemplateCardData, o as UsageDataPoint } from "./template-card-L-4gmjx2.js";
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { CSSProperties, ReactNode } from "react";
|
|
5
|
+
//#region src/pages/auth-page.d.ts
|
|
7
6
|
/**
|
|
8
7
|
* Shared, self-contained sign-in / sign-up page for every Tangle vertical app.
|
|
9
8
|
*
|
|
@@ -19,91 +18,93 @@ import '@tangle-network/agent-interface';
|
|
|
19
18
|
*/
|
|
20
19
|
type SocialProvider = "github" | "google";
|
|
21
20
|
interface AuthPageProps {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
21
|
+
/** Suffix after the Tangle wordmark in the lockup, e.g. "Legal", "Tax". */
|
|
22
|
+
product?: string;
|
|
23
|
+
/** Sub-headline under the logo lockup. */
|
|
24
|
+
tagline?: string;
|
|
25
|
+
/** "signin" (default) or "signup" — flips copy + the email submit action. */
|
|
26
|
+
mode?: "signin" | "signup";
|
|
27
|
+
/**
|
|
28
|
+
* Endpoint that starts the Tangle cross-site SSO flow. The app's server
|
|
29
|
+
* 302-redirects this to the platform authorize URL. Default `/auth/tangle/start`.
|
|
30
|
+
*/
|
|
31
|
+
tangleAuthUrl?: string;
|
|
32
|
+
/** Social providers to surface; default `["github", "google"]`. Empty = none. */
|
|
33
|
+
providers?: SocialProvider[];
|
|
34
|
+
/** Build the social sign-in href. Default better-auth social endpoint. */
|
|
35
|
+
socialHref?: (provider: SocialProvider) => string;
|
|
36
|
+
/**
|
|
37
|
+
* Email/password handler. Return an error message to show, or null on success
|
|
38
|
+
* (the caller handles navigation). If omitted, the email form is hidden —
|
|
39
|
+
* SSO/social only. In signup mode the third arg is the entered display name
|
|
40
|
+
* (empty string when name collection is disabled).
|
|
41
|
+
*/
|
|
42
|
+
onEmailSubmit?: (email: string, password: string, name: string) => Promise<string | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Collect a display name in the email form. Defaults to true in signup mode,
|
|
45
|
+
* false in signin. Set false to suppress it even on signup.
|
|
46
|
+
*/
|
|
47
|
+
collectName?: boolean;
|
|
48
|
+
/** Footer link target for the opposite mode (signup from signin, vice versa). */
|
|
49
|
+
altHref?: string;
|
|
50
|
+
/** Primary (Tangle) button background. Default Tangle ink `#0f172a`. */
|
|
51
|
+
accent?: string;
|
|
52
|
+
/** Primary button hover background. Default `#1e293b`. */
|
|
53
|
+
accentHover?: string;
|
|
54
|
+
/** Optional brand-mark size in the lockup. Default "lg". */
|
|
55
|
+
logoSize?: "sm" | "md" | "lg" | "xl";
|
|
56
|
+
/** Escape hatch: extra class on the card. */
|
|
57
|
+
className?: string;
|
|
58
|
+
/** Escape hatch: inline style merged onto the card. */
|
|
59
|
+
style?: CSSProperties;
|
|
60
|
+
/** Optional node rendered above the footer (legal copy, SSO notice, etc.). */
|
|
61
|
+
children?: ReactNode;
|
|
63
62
|
}
|
|
64
|
-
declare function AuthPage({ product, tagline, mode, tangleAuthUrl, providers, socialHref, onEmailSubmit, collectName, altHref, accent, accentHover, logoSize, className, style, children
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
export declare function AuthPage({ product, tagline, mode, tangleAuthUrl, providers, socialHref, onEmailSubmit, collectName, altHref, accent, accentHover, logoSize, className, style, children }: AuthPageProps): import("react").JSX.Element;
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/pages/billing-page.d.ts
|
|
66
|
+
type ProductVariant = "sandbox";
|
|
67
67
|
interface BillingPageData {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
subscription: BillingSubscription | null;
|
|
69
|
+
balance: BillingBalance;
|
|
70
|
+
usage: BillingUsage;
|
|
71
|
+
usageHistory: UsageDataPoint[];
|
|
72
|
+
tiers: PricingTier[];
|
|
73
73
|
}
|
|
74
74
|
interface BillingPageProps {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
variant?: ProductVariant;
|
|
76
|
+
initialData?: BillingPageData;
|
|
77
|
+
apiBasePath?: string;
|
|
78
|
+
onManageSubscription?: () => void;
|
|
79
|
+
onAddCredits?: () => void;
|
|
80
|
+
onSelectTier?: (tierId: string) => void;
|
|
81
|
+
fetchBillingData?: () => Promise<BillingPageData>;
|
|
82
82
|
}
|
|
83
|
-
declare function BillingPage({ variant, initialData, apiBasePath, onManageSubscription, onAddCredits, onSelectTier, fetchBillingData
|
|
84
|
-
|
|
83
|
+
export declare function BillingPage({ variant, initialData, apiBasePath, onManageSubscription, onAddCredits, onSelectTier, fetchBillingData }: BillingPageProps): React$1.JSX.Element;
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/pages/provisioning-wizard.d.ts
|
|
85
86
|
interface EnvironmentOption {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
description: string;
|
|
90
|
+
icon: React$1.ReactNode;
|
|
91
|
+
color: string;
|
|
91
92
|
}
|
|
92
93
|
interface EnvironmentEntry {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
id: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
version?: string;
|
|
96
97
|
}
|
|
97
98
|
interface ResourceLimits {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
cpuMax?: number;
|
|
100
|
+
ramMaxGB?: number;
|
|
101
|
+
storageMaxGB?: number;
|
|
101
102
|
}
|
|
102
103
|
interface PricingRates {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
cpuPerHr: number;
|
|
105
|
+
ramPerGbHr: number;
|
|
106
|
+
diskPerGbHr: number;
|
|
107
|
+
minChargePerHr?: number;
|
|
107
108
|
}
|
|
108
109
|
/**
|
|
109
110
|
* Describes one selectable plan tier for the purpose of badging locked
|
|
@@ -112,264 +113,270 @@ interface PricingRates {
|
|
|
112
113
|
* next step up is Enterprise.
|
|
113
114
|
*/
|
|
114
115
|
interface PlanTierInfo {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
/** Stable id (e.g. "free" | "pro" | "enterprise") */
|
|
117
|
+
id: string;
|
|
118
|
+
/** Short badge label shown on locked presets (e.g. "Pro", "Enterprise") */
|
|
119
|
+
label: string;
|
|
120
|
+
cpuMax: number;
|
|
121
|
+
ramMaxGB: number;
|
|
122
|
+
storageMaxGB: number;
|
|
122
123
|
}
|
|
123
124
|
interface SshKeyOption {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
id: string;
|
|
126
|
+
name: string;
|
|
127
|
+
fingerprint: string;
|
|
128
|
+
keyType: string;
|
|
128
129
|
}
|
|
129
130
|
interface SshAccessConfig {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
131
|
+
keys?: SshKeyOption[];
|
|
132
|
+
selectedKeyIds: string[];
|
|
133
|
+
inlinePublicKeys: string;
|
|
134
|
+
onSelectedKeyIdsChange: (keyIds: string[]) => void;
|
|
135
|
+
onInlinePublicKeysChange: (publicKeys: string) => void;
|
|
136
|
+
/**
|
|
137
|
+
* When provided, the SSH step renders an "Add SSH key" action that
|
|
138
|
+
* opens a dialog for saving a new public key. The host owns the
|
|
139
|
+
* persistence (POST) — this package only exposes the UI and reports
|
|
140
|
+
* the draft. Omit to hide the add-key action entirely.
|
|
141
|
+
*/
|
|
142
|
+
onCreateKey?: (input: {
|
|
143
|
+
name: string;
|
|
144
|
+
publicKey: string;
|
|
145
|
+
}) => Promise<SshKeyOption | void>;
|
|
146
|
+
/**
|
|
147
|
+
* Optional refresh of the host's key list, called after a successful
|
|
148
|
+
* create so the parent re-syncs its `keys` prop before the new key is
|
|
149
|
+
* selected.
|
|
150
|
+
*/
|
|
151
|
+
onRefreshKeys?: () => Promise<SshKeyOption[] | void>;
|
|
151
152
|
}
|
|
152
153
|
interface ProvisioningWizardProps {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
154
|
+
environments?: EnvironmentOption[];
|
|
155
|
+
onLoadEnvironments?: () => Promise<EnvironmentEntry[]>;
|
|
156
|
+
onSubmit?: (config: ProvisioningConfig) => void | Promise<void>;
|
|
157
|
+
onBack?: () => void;
|
|
158
|
+
className?: string;
|
|
159
|
+
/**
|
|
160
|
+
* @deprecated The wizard now always renders as a single scrolling page.
|
|
161
|
+
* Kept for backwards compatibility — no longer changes the layout.
|
|
162
|
+
*/
|
|
163
|
+
variant?: "flat" | "multistep";
|
|
164
|
+
/** Pre-select an environment by ID (e.g. from a template link) */
|
|
165
|
+
defaultEnvironment?: string;
|
|
166
|
+
/** Pre-fill all form fields from a template preset */
|
|
167
|
+
defaultConfig?: Partial<ProvisioningConfig>;
|
|
168
|
+
/**
|
|
169
|
+
* @deprecated No-op. The wizard no longer uses steps. Kept for
|
|
170
|
+
* backwards compatibility.
|
|
171
|
+
*/
|
|
172
|
+
skipToReview?: boolean;
|
|
173
|
+
/** Load user's startup scripts for the advanced options selector */
|
|
174
|
+
onLoadStartupScripts?: () => Promise<StartupScriptEntry[]>;
|
|
175
|
+
/** Plan-based resource limits — caps the slider maximums */
|
|
176
|
+
resourceLimits?: ResourceLimits;
|
|
177
|
+
sshAccess?: SshAccessConfig;
|
|
178
|
+
/** Real pricing rates from the API for accurate cost calculation */
|
|
179
|
+
pricingRates?: PricingRates;
|
|
180
|
+
/**
|
|
181
|
+
* Ordered list of plan tiers (smallest to largest). When provided,
|
|
182
|
+
* locked presets are badged with the label of the smallest tier that
|
|
183
|
+
* would unlock them. Falls back to a generic "Pro" badge when omitted.
|
|
184
|
+
*/
|
|
185
|
+
planTiers?: PlanTierInfo[];
|
|
185
186
|
}
|
|
186
187
|
interface StartupScriptEntry {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
id: string;
|
|
189
|
+
name: string;
|
|
190
|
+
description: string;
|
|
191
|
+
enabled: boolean;
|
|
192
|
+
injectSecrets: string[];
|
|
192
193
|
}
|
|
193
194
|
interface ProvisioningConfig {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
195
|
+
environment: string;
|
|
196
|
+
cpuCores: number;
|
|
197
|
+
ramGB: number;
|
|
198
|
+
storageGB: number;
|
|
199
|
+
name: string;
|
|
200
|
+
gitUrl: string;
|
|
201
|
+
envVars: {
|
|
202
|
+
key: string;
|
|
203
|
+
value: string;
|
|
204
|
+
}[];
|
|
205
|
+
driver: "docker" | "firecracker" | "host-agent" | "tangle";
|
|
206
|
+
bare: boolean;
|
|
207
|
+
startupScriptIds?: string[];
|
|
207
208
|
}
|
|
208
|
-
declare function resolveEnvironment(env: EnvironmentEntry): EnvironmentOption;
|
|
209
|
-
declare function ProvisioningWizard({ environments: environmentsProp, onLoadEnvironments, onSubmit, onBack, className, defaultEnvironment, defaultConfig, onLoadStartupScripts, resourceLimits, sshAccess, pricingRates, planTiers
|
|
210
|
-
|
|
211
|
-
|
|
209
|
+
export declare function resolveEnvironment(env: EnvironmentEntry): EnvironmentOption;
|
|
210
|
+
export declare function ProvisioningWizard({ environments: environmentsProp, onLoadEnvironments, onSubmit, onBack, className, defaultEnvironment, defaultConfig, onLoadStartupScripts, resourceLimits, sshAccess, pricingRates, planTiers }: ProvisioningWizardProps): React$1.JSX.Element;
|
|
211
|
+
//#endregion
|
|
212
|
+
//#region src/pages/standalone-pricing-page.d.ts
|
|
213
|
+
type ProductVariant$1 = "sandbox";
|
|
212
214
|
interface StandalonePricingPageProps {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
215
|
+
variant?: ProductVariant$1;
|
|
216
|
+
initialTiers?: PricingTier[];
|
|
217
|
+
apiBasePath?: string;
|
|
218
|
+
onSelectTier?: (tierId: string, billingPeriod: "monthly" | "yearly") => void;
|
|
219
|
+
fetchTiers?: () => Promise<PricingTier[]>;
|
|
220
|
+
title?: string;
|
|
221
|
+
subtitle?: string;
|
|
222
|
+
eyebrow?: string;
|
|
223
|
+
className?: string;
|
|
222
224
|
}
|
|
223
|
-
declare function StandalonePricingPage({ variant, initialTiers, apiBasePath, onSelectTier, fetchTiers, title, subtitle, eyebrow, className
|
|
224
|
-
|
|
225
|
+
export declare function StandalonePricingPage({ variant, initialTiers, apiBasePath, onSelectTier, fetchTiers, title, subtitle, eyebrow, className }: StandalonePricingPageProps): React$1.JSX.Element;
|
|
226
|
+
//#endregion
|
|
227
|
+
//#region src/pages/profiles-page.d.ts
|
|
225
228
|
interface ProfileMetrics {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
229
|
+
total_runs: number;
|
|
230
|
+
success_rate: number;
|
|
231
|
+
avg_duration_ms: number;
|
|
232
|
+
avg_tokens_used?: number;
|
|
233
|
+
last_run_at?: string;
|
|
231
234
|
}
|
|
232
235
|
interface Profile {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
236
|
+
id: string;
|
|
237
|
+
name: string;
|
|
238
|
+
description?: string;
|
|
239
|
+
extends?: string;
|
|
240
|
+
model?: string;
|
|
241
|
+
system_prompt?: string;
|
|
242
|
+
instructions?: string[];
|
|
243
|
+
tags?: string[];
|
|
244
|
+
is_builtin?: boolean;
|
|
245
|
+
is_public?: boolean;
|
|
246
|
+
metrics?: ProfileMetrics;
|
|
247
|
+
created_at?: string;
|
|
248
|
+
updated_at?: string;
|
|
246
249
|
}
|
|
247
250
|
interface ProfileFormData {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
251
|
+
name: string;
|
|
252
|
+
description?: string;
|
|
253
|
+
extends?: string;
|
|
254
|
+
model?: string;
|
|
255
|
+
system_prompt?: string;
|
|
256
|
+
instructions?: string[];
|
|
257
|
+
tags?: string[];
|
|
258
|
+
is_public?: boolean;
|
|
256
259
|
}
|
|
257
260
|
interface ProfilesPageProps {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
261
|
+
/** API client for profile operations */
|
|
262
|
+
apiClient: {
|
|
263
|
+
listProfiles: () => Promise<{
|
|
264
|
+
builtin: Profile[];
|
|
265
|
+
custom: Profile[];
|
|
266
|
+
}>;
|
|
267
|
+
createProfile: (data: ProfileFormData) => Promise<Profile>;
|
|
268
|
+
updateProfile: (id: string, data: Partial<ProfileFormData>) => Promise<Profile>;
|
|
269
|
+
deleteProfile: (id: string) => Promise<void>;
|
|
270
|
+
};
|
|
271
|
+
/** User's subscription tier for limit enforcement */
|
|
272
|
+
tier?: "free" | "starter" | "pro" | "enterprise";
|
|
273
|
+
/** Maximum profiles allowed for current tier */
|
|
274
|
+
maxProfiles?: number;
|
|
275
|
+
/** Callback when navigating to profile comparison */
|
|
276
|
+
onCompareClick?: (profiles: Profile[]) => void;
|
|
277
|
+
/** Custom page title */
|
|
278
|
+
title?: string;
|
|
276
279
|
}
|
|
277
|
-
declare function ProfilesPage({ apiClient, tier, maxProfiles, onCompareClick, title
|
|
278
|
-
|
|
280
|
+
export declare function ProfilesPage({ apiClient, tier, maxProfiles, onCompareClick, title }: ProfilesPageProps): React$1.JSX.Element;
|
|
281
|
+
//#endregion
|
|
282
|
+
//#region src/pages/secrets-page.d.ts
|
|
279
283
|
interface Secret {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
284
|
+
name: string;
|
|
285
|
+
createdAt: string;
|
|
286
|
+
updatedAt?: string;
|
|
283
287
|
}
|
|
284
288
|
interface SecretsApiClient {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
289
|
+
listSecrets: () => Promise<Secret[]>;
|
|
290
|
+
createSecret: (name: string, value: string) => Promise<void>;
|
|
291
|
+
deleteSecret: (name: string) => Promise<void>;
|
|
288
292
|
}
|
|
289
293
|
interface SecretsPageProps {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
294
|
+
apiClient: SecretsApiClient;
|
|
295
|
+
className?: string;
|
|
296
|
+
/**
|
|
297
|
+
* Optional hint pointing users at team-level secrets. When provided,
|
|
298
|
+
* renders a persistent informational banner below the header clarifying
|
|
299
|
+
* that personal secrets are NOT shared with teams and linking the
|
|
300
|
+
* user to their team-management page to configure shared secrets
|
|
301
|
+
* there. Omit entirely to hide the banner (e.g. in deployments
|
|
302
|
+
* without teams).
|
|
303
|
+
*/
|
|
304
|
+
teamSecretsHint?: {
|
|
305
|
+
/** Callback fired when the user clicks the banner's CTA. */
|
|
306
|
+
onNavigate: () => void;
|
|
307
|
+
/** CTA label. Defaults to "Manage team secrets". */
|
|
308
|
+
label?: string;
|
|
309
|
+
};
|
|
306
310
|
}
|
|
307
|
-
declare function SecretsPage({ apiClient, className, teamSecretsHint }: SecretsPageProps): React.JSX.Element;
|
|
308
|
-
|
|
311
|
+
export declare function SecretsPage({ apiClient, className, teamSecretsHint }: SecretsPageProps): React$1.JSX.Element;
|
|
312
|
+
//#endregion
|
|
313
|
+
//#region src/pages/templates-page.d.ts
|
|
309
314
|
interface TemplatesPageProps {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
315
|
+
templates: TemplateCardData[] | null;
|
|
316
|
+
loading?: boolean;
|
|
317
|
+
onUseTemplate: (templateId: string) => void;
|
|
318
|
+
className?: string;
|
|
314
319
|
}
|
|
315
|
-
declare function TemplatesPage({ templates, loading, onUseTemplate, className }: TemplatesPageProps): React.JSX.Element;
|
|
316
|
-
|
|
320
|
+
export declare function TemplatesPage({ templates, loading, onUseTemplate, className }: TemplatesPageProps): React$1.JSX.Element;
|
|
321
|
+
//#endregion
|
|
322
|
+
//#region src/pages/startup-scripts-page.d.ts
|
|
317
323
|
type ScriptType = "bash" | "python" | "node" | "ruby" | "custom";
|
|
318
324
|
interface StartupScript {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
325
|
+
id: string;
|
|
326
|
+
name: string;
|
|
327
|
+
description: string;
|
|
328
|
+
scriptType: ScriptType;
|
|
329
|
+
content: string;
|
|
330
|
+
environments: string[];
|
|
331
|
+
minCpuCores: number | null;
|
|
332
|
+
minRamGB: number | null;
|
|
333
|
+
runOrder: number;
|
|
334
|
+
timeoutSeconds: number;
|
|
335
|
+
continueOnFailure: boolean;
|
|
336
|
+
runAsRoot: boolean;
|
|
337
|
+
injectSecrets: string[];
|
|
338
|
+
enabled: boolean;
|
|
339
|
+
createdAt: string;
|
|
340
|
+
updatedAt: string;
|
|
335
341
|
}
|
|
336
342
|
interface StartupScriptFormData {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
343
|
+
name: string;
|
|
344
|
+
description: string;
|
|
345
|
+
scriptType: ScriptType;
|
|
346
|
+
content: string;
|
|
347
|
+
environments: string[];
|
|
348
|
+
minCpuCores: number | null;
|
|
349
|
+
minRamGB: number | null;
|
|
350
|
+
runOrder: number;
|
|
351
|
+
timeoutSeconds: number;
|
|
352
|
+
continueOnFailure: boolean;
|
|
353
|
+
runAsRoot: boolean;
|
|
354
|
+
injectSecrets: string[];
|
|
355
|
+
enabled: boolean;
|
|
350
356
|
}
|
|
351
357
|
interface StartupScriptsApiClient {
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
358
|
+
listScripts: () => Promise<StartupScript[]>;
|
|
359
|
+
createScript: (data: StartupScriptFormData) => Promise<StartupScript>;
|
|
360
|
+
updateScript: (id: string, data: Partial<StartupScriptFormData>) => Promise<StartupScript>;
|
|
361
|
+
deleteScript: (id: string) => Promise<void>;
|
|
362
|
+
toggleScript: (id: string) => Promise<StartupScript>;
|
|
363
|
+
listSecrets?: () => Promise<{
|
|
364
|
+
name: string;
|
|
365
|
+
}[]>;
|
|
366
|
+
listEnvironments?: () => Promise<{
|
|
367
|
+
id: string;
|
|
368
|
+
name?: string;
|
|
369
|
+
}[]>;
|
|
364
370
|
}
|
|
365
371
|
interface StartupScriptsPageProps {
|
|
366
|
-
|
|
367
|
-
|
|
372
|
+
apiClient: StartupScriptsApiClient;
|
|
373
|
+
className?: string;
|
|
368
374
|
}
|
|
369
|
-
declare function StartupScriptsPage({ apiClient, className }: StartupScriptsPageProps): React.JSX.Element;
|
|
370
|
-
|
|
375
|
+
export declare function StartupScriptsPage({ apiClient, className }: StartupScriptsPageProps): React$1.JSX.Element;
|
|
376
|
+
//#endregion
|
|
377
|
+
//#region src/lib/template-presets.d.ts
|
|
371
378
|
type TemplateCategory = "blockchain" | "ai-ml" | "frontend" | "infrastructure" | "general";
|
|
372
379
|
type TemplatePreset = Omit<ProvisioningConfig, "name" | "gitUrl" | "envVars" | "driver" | "startupScriptIds">;
|
|
373
|
-
declare function getPresetForTemplate(id: string): TemplatePreset;
|
|
374
|
-
|
|
375
|
-
export {
|
|
380
|
+
export declare function getPresetForTemplate(id: string): TemplatePreset;
|
|
381
|
+
//#endregion
|
|
382
|
+
export type { AuthPageProps, BillingPageData, BillingPageProps, EnvironmentEntry, EnvironmentOption, ModelInfo, PlanTierInfo, PricingRates, PricingTier, ProductVariant, Profile, ProfileFormData, ProfileMetrics, ProfilesPageProps, ProvisioningConfig, ProvisioningWizardProps, ResourceLimits, ScriptType, Secret, SecretsApiClient, SecretsPageProps, SocialProvider, SshAccessConfig, SshKeyOption, StandalonePricingPageProps, StartupScript, StartupScriptEntry, StartupScriptFormData, StartupScriptsApiClient, StartupScriptsPageProps, TemplateCategory, TemplatePreset, TemplatesPageProps };
|