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