@tangle-network/sandbox-ui 0.113.7 → 0.115.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/README.md +40 -0
- 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 +75 -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-CesPlOyx.d.ts +367 -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-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 -141
- 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 +75 -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-ztU44Jt2.js +8455 -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
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
//#region src/integrations/provider-logo.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Provider branding: resolve a connector/provider slug to a logo and render it
|
|
6
|
+
* with graceful fallbacks. Shared by the integrations catalog tiles and the
|
|
7
|
+
* assistant's proposal card (its integration-requirement rows), so both surfaces
|
|
8
|
+
* show the same brand mark for a given provider from one source of truth.
|
|
9
|
+
*
|
|
10
|
+
* Dependency-light on purpose — only React — so it can be pulled into the
|
|
11
|
+
* always-loaded assistant entry without dragging the integrations panel's tree
|
|
12
|
+
* along with it.
|
|
13
|
+
*/
|
|
14
|
+
/** Strip separators and common suffixes so "Outlook-Mail" / "stripe_pack" map to
|
|
15
|
+
* a stable key for the curated slug table and the derived simpleicons slug. */
|
|
16
|
+
function normalizeProviderId(id) {
|
|
17
|
+
return id.toLowerCase().replace(/[_\s]+/g, "-").replace(/-(business|oauth|api|app|mail|sms|pack|connector|v\d+)$/g, "");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Curated map of provider ids → simpleicons slug. Covers cases where the
|
|
21
|
+
* normalized id does not match the simpleicons slug (compound brands,
|
|
22
|
+
* Google/Microsoft suite members, renamed brands).
|
|
23
|
+
*/
|
|
24
|
+
const PROVIDER_LOGO_SLUGS = {
|
|
25
|
+
gmail: "gmail",
|
|
26
|
+
googlemail: "gmail",
|
|
27
|
+
google: "google",
|
|
28
|
+
"google-drive": "googledrive",
|
|
29
|
+
"google-calendar": "googlecalendar",
|
|
30
|
+
"google-sheets": "googlesheets",
|
|
31
|
+
"google-docs": "googledocs",
|
|
32
|
+
"google-meet": "googlemeet",
|
|
33
|
+
"google-forms": "googleforms",
|
|
34
|
+
"google-ads": "googleads",
|
|
35
|
+
"google-analytics": "googleanalytics",
|
|
36
|
+
outlook: "microsoftoutlook",
|
|
37
|
+
"outlook-mail": "microsoftoutlook",
|
|
38
|
+
"microsoft-outlook": "microsoftoutlook",
|
|
39
|
+
"microsoft-calendar": "microsoftoutlook",
|
|
40
|
+
"microsoft-teams": "microsoftteams",
|
|
41
|
+
teams: "microsoftteams",
|
|
42
|
+
"microsoft-excel": "microsoftexcel",
|
|
43
|
+
excel: "microsoftexcel",
|
|
44
|
+
onedrive: "microsoftonedrive",
|
|
45
|
+
sharepoint: "microsoftsharepoint",
|
|
46
|
+
twitter: "x",
|
|
47
|
+
x: "x",
|
|
48
|
+
meta: "meta",
|
|
49
|
+
"stripe-pack": "stripe",
|
|
50
|
+
"twilio-sms": "twilio",
|
|
51
|
+
webhook: "webhooks",
|
|
52
|
+
webhooks: "webhooks",
|
|
53
|
+
hubspot: "hubspot",
|
|
54
|
+
salesforce: "salesforce",
|
|
55
|
+
pipedrive: "pipedrive",
|
|
56
|
+
zoho: "zoho",
|
|
57
|
+
quickbooks: "quickbooks",
|
|
58
|
+
intercom: "intercom",
|
|
59
|
+
zendesk: "zendesk",
|
|
60
|
+
freshdesk: "freshdesk",
|
|
61
|
+
monday: "mondaydotcom",
|
|
62
|
+
"monday-com": "mondaydotcom",
|
|
63
|
+
clickup: "clickup",
|
|
64
|
+
basecamp: "basecamp",
|
|
65
|
+
todoist: "todoist",
|
|
66
|
+
calendly: "calendly",
|
|
67
|
+
typeform: "typeform",
|
|
68
|
+
surveymonkey: "surveymonkey",
|
|
69
|
+
klaviyo: "klaviyo",
|
|
70
|
+
sendinblue: "brevo",
|
|
71
|
+
brevo: "brevo",
|
|
72
|
+
"constant-contact": "constantcontact",
|
|
73
|
+
"active-campaign": "activecampaign",
|
|
74
|
+
activecampaign: "activecampaign",
|
|
75
|
+
"google-chat": "googlechat",
|
|
76
|
+
whatsapp: "whatsapp",
|
|
77
|
+
telegram: "telegram",
|
|
78
|
+
bigquery: "googlebigquery",
|
|
79
|
+
snowflake: "snowflake",
|
|
80
|
+
postgres: "postgresql",
|
|
81
|
+
postgresql: "postgresql",
|
|
82
|
+
mysql: "mysql",
|
|
83
|
+
mongodb: "mongodb",
|
|
84
|
+
redis: "redis",
|
|
85
|
+
supabase: "supabase",
|
|
86
|
+
firebase: "firebase",
|
|
87
|
+
"aws-s3": "amazons3",
|
|
88
|
+
s3: "amazons3",
|
|
89
|
+
woocommerce: "woocommerce",
|
|
90
|
+
bigcommerce: "bigcommerce",
|
|
91
|
+
squarespace: "squarespace",
|
|
92
|
+
wix: "wix",
|
|
93
|
+
webflow: "webflow",
|
|
94
|
+
wordpress: "wordpress",
|
|
95
|
+
contentful: "contentful",
|
|
96
|
+
sanity: "sanity",
|
|
97
|
+
figma: "figma",
|
|
98
|
+
miro: "miro",
|
|
99
|
+
confluence: "confluence",
|
|
100
|
+
bitbucket: "bitbucket",
|
|
101
|
+
pagerduty: "pagerduty",
|
|
102
|
+
datadog: "datadog",
|
|
103
|
+
sentry: "sentry",
|
|
104
|
+
segment: "segment",
|
|
105
|
+
amplitude: "amplitude",
|
|
106
|
+
mixpanel: "mixpanel",
|
|
107
|
+
posthog: "posthog",
|
|
108
|
+
facebook: "facebook",
|
|
109
|
+
instagram: "instagram",
|
|
110
|
+
tiktok: "tiktok",
|
|
111
|
+
youtube: "youtube",
|
|
112
|
+
reddit: "reddit",
|
|
113
|
+
pinterest: "pinterest",
|
|
114
|
+
buffer: "buffer",
|
|
115
|
+
hootsuite: "hootsuite"
|
|
116
|
+
};
|
|
117
|
+
/** Base URL of the ActivePieces piece-logo CDN. The hub's provider ids are
|
|
118
|
+
* generated from the ActivePieces library, so most resolve a real brand logo
|
|
119
|
+
* from `/<providerId>.png`. */
|
|
120
|
+
const ACTIVEPIECES_CDN = "https://cdn.activepieces.com/pieces";
|
|
121
|
+
/**
|
|
122
|
+
* Per-id brand logo URLs for providers whose logo isn't at the ActivePieces
|
|
123
|
+
* default `/<id>.png` path: a connector's own catalog logo under a different
|
|
124
|
+
* filename, a parent connector's logo reused by a sub-connector/variant, or a
|
|
125
|
+
* public icon source for connectors absent from the catalog CDN.
|
|
126
|
+
*
|
|
127
|
+
* Mirrors the Tangle Platform's own integrations UI
|
|
128
|
+
* (`products/platform/web/src/client/components/IntegrationsCatalog.tsx`) so
|
|
129
|
+
* both surfaces resolve the same brand mark; the durable fix is for the hub API
|
|
130
|
+
* to emit `iconUrl` per provider, after which this map can be retired.
|
|
131
|
+
*/
|
|
132
|
+
const PROVIDER_LOGO_URLS = {
|
|
133
|
+
"cal-com": `${ACTIVEPIECES_CDN}/cal.com.png`,
|
|
134
|
+
"customer-io": `${ACTIVEPIECES_CDN}/customerio.png`,
|
|
135
|
+
anthropic: `${ACTIVEPIECES_CDN}/claude.png`,
|
|
136
|
+
telegram: `${ACTIVEPIECES_CDN}/telegram_bot.png`,
|
|
137
|
+
"twilio-sms": `${ACTIVEPIECES_CDN}/twilio.png`,
|
|
138
|
+
"amazon-sqs": `${ACTIVEPIECES_CDN}/aws-sqs.png`,
|
|
139
|
+
frame: `${ACTIVEPIECES_CDN}/frameio.png`,
|
|
140
|
+
"jira-cloud": `${ACTIVEPIECES_CDN}/jira.png`,
|
|
141
|
+
"jira-data-center": `${ACTIVEPIECES_CDN}/jira.png`,
|
|
142
|
+
stripe: `${ACTIVEPIECES_CDN}/stripe.png`,
|
|
143
|
+
"stripe-pack": `${ACTIVEPIECES_CDN}/stripe.png`,
|
|
144
|
+
gemini: `${ACTIVEPIECES_CDN}/google-gemini.png`,
|
|
145
|
+
"google-gemini": `${ACTIVEPIECES_CDN}/google-gemini.png`,
|
|
146
|
+
bluesky: `${ACTIVEPIECES_CDN}/bluesky.png`,
|
|
147
|
+
emailit: `${ACTIVEPIECES_CDN}/emailit.svg`,
|
|
148
|
+
cloutly: `${ACTIVEPIECES_CDN}/cloutly.svg`,
|
|
149
|
+
gistly: `${ACTIVEPIECES_CDN}/gistly.svg`,
|
|
150
|
+
jotform: `${ACTIVEPIECES_CDN}/jotform.svg`,
|
|
151
|
+
supadata: `${ACTIVEPIECES_CDN}/supadata.svg`,
|
|
152
|
+
"hugging-face": `${ACTIVEPIECES_CDN}/huggingface.svg`,
|
|
153
|
+
huggingface: `${ACTIVEPIECES_CDN}/huggingface.svg`,
|
|
154
|
+
heygen: `${ACTIVEPIECES_CDN}/heygen.jpg`,
|
|
155
|
+
instasent: `${ACTIVEPIECES_CDN}/instasent.jpg`,
|
|
156
|
+
"chainalysis-api": `${ACTIVEPIECES_CDN}/chainalysis-api.jpg`,
|
|
157
|
+
scrapegraphai: `${ACTIVEPIECES_CDN}/scrapegraphai.jpg`,
|
|
158
|
+
localai: `${ACTIVEPIECES_CDN}/localai.jpeg`,
|
|
159
|
+
talkable: "https://www.talkable.com/wp-content/uploads/2021/12/talkable-favicon.svg",
|
|
160
|
+
"facebook-leads": `${ACTIVEPIECES_CDN}/facebook.png`,
|
|
161
|
+
"facebook-pages": `${ACTIVEPIECES_CDN}/facebook.png`,
|
|
162
|
+
"whatsapp-business": `${ACTIVEPIECES_CDN}/whatsapp.png`,
|
|
163
|
+
onedrive: `${ACTIVEPIECES_CDN}/oneDrive.png`,
|
|
164
|
+
"microsoft-onedrive": `${ACTIVEPIECES_CDN}/oneDrive.png`,
|
|
165
|
+
"outlook-mail": `${ACTIVEPIECES_CDN}/microsoft-outlook.png`,
|
|
166
|
+
"microsoft-calendar": `${ACTIVEPIECES_CDN}/microsoft-outlook.png`,
|
|
167
|
+
"microsoft-outlook-calendar": `${ACTIVEPIECES_CDN}/microsoft-outlook.png`,
|
|
168
|
+
sharepoint: `${ACTIVEPIECES_CDN}/microsoft-sharepoint.png`,
|
|
169
|
+
"notion-database": `${ACTIVEPIECES_CDN}/notion.png`,
|
|
170
|
+
"slack-inbound": `${ACTIVEPIECES_CDN}/slack.png`,
|
|
171
|
+
helpscout: `${ACTIVEPIECES_CDN}/help-scout.png`,
|
|
172
|
+
figjam: `${ACTIVEPIECES_CDN}/figma.png`,
|
|
173
|
+
webhook: `${ACTIVEPIECES_CDN}/new-core/webhooks.svg`,
|
|
174
|
+
make: "https://cdn.simpleicons.org/make",
|
|
175
|
+
n8n: "https://cdn.simpleicons.org/n8n",
|
|
176
|
+
zapier: "https://cdn.simpleicons.org/zapier",
|
|
177
|
+
auth0: "https://cdn.simpleicons.org/auth0",
|
|
178
|
+
basecamp: "https://cdn.simpleicons.org/basecamp",
|
|
179
|
+
ebay: "https://cdn.simpleicons.org/ebay",
|
|
180
|
+
gusto: "https://cdn.simpleicons.org/gusto",
|
|
181
|
+
miro: "https://cdn.simpleicons.org/miro",
|
|
182
|
+
sanity: "https://cdn.simpleicons.org/sanity",
|
|
183
|
+
sentry: "https://cdn.simpleicons.org/sentry",
|
|
184
|
+
opsgenie: "https://cdn.simpleicons.org/opsgenie",
|
|
185
|
+
phony: "https://www.google.com/s2/favicons?sz=64&domain_url=https://ph0ny.com",
|
|
186
|
+
docuseal: "https://www.google.com/s2/favicons?sz=64&domain_url=https://docuseal.com",
|
|
187
|
+
braze: "https://www.google.com/s2/favicons?sz=64&domain_url=https://braze.com",
|
|
188
|
+
pipedream: "https://www.google.com/s2/favicons?sz=64&domain_url=https://pipedream.com",
|
|
189
|
+
weaviate: "https://www.google.com/s2/favicons?sz=64&domain_url=https://weaviate.io",
|
|
190
|
+
"adobe-creative-cloud": "https://www.google.com/s2/favicons?sz=64&domain_url=https://adobe.com",
|
|
191
|
+
clio: "https://www.google.com/s2/favicons?sz=64&domain_url=https://clio.com",
|
|
192
|
+
marketo: "https://www.google.com/s2/favicons?sz=64&domain_url=https://marketo.com",
|
|
193
|
+
rippling: "https://www.google.com/s2/favicons?sz=64&domain_url=https://rippling.com",
|
|
194
|
+
"microsoft-graph": "https://www.google.com/s2/favicons?sz=64&domain_url=https://graph.microsoft.com"
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Full-color vector brand marks for providers Simple Icons has delisted over
|
|
198
|
+
* trademark policy (Slack, Salesforce, the Microsoft 365 family, Twilio,
|
|
199
|
+
* LinkedIn) — these 404 on the simpleicons CDN, so without a real source they
|
|
200
|
+
* drop straight to the monogram. Keyed by the curated simpleicons slug AND by
|
|
201
|
+
* common normalized ids; the value is an svgl.app library name (crisp,
|
|
202
|
+
* multi-color SVGs that stay sharp in the catalog grid).
|
|
203
|
+
*/
|
|
204
|
+
const PROVIDER_VECTOR_LOGOS = {
|
|
205
|
+
slack: "slack",
|
|
206
|
+
salesforce: "salesforce",
|
|
207
|
+
microsoftoutlook: "microsoft-outlook",
|
|
208
|
+
outlook: "microsoft-outlook",
|
|
209
|
+
microsoftteams: "microsoft-teams",
|
|
210
|
+
teams: "microsoft-teams",
|
|
211
|
+
microsoftexcel: "microsoft-excel",
|
|
212
|
+
excel: "microsoft-excel",
|
|
213
|
+
microsoftonedrive: "microsoft-onedrive",
|
|
214
|
+
onedrive: "microsoft-onedrive",
|
|
215
|
+
microsoftsharepoint: "microsoft-sharepoint",
|
|
216
|
+
sharepoint: "microsoft-sharepoint",
|
|
217
|
+
twilio: "twilio",
|
|
218
|
+
linkedin: "linkedin"
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Ordered candidate logo URLs for a provider slug, most specific first. The
|
|
222
|
+
* renderer walks the chain on each `onError` until one loads, then falls back to
|
|
223
|
+
* the monogram tile.
|
|
224
|
+
*
|
|
225
|
+
* Order: explicit `iconUrl` → full-color vector mark for brands Simple Icons
|
|
226
|
+
* delisted (svgl.app) → a pinned override → the ActivePieces CDN by id (covers
|
|
227
|
+
* most of the hub catalog) → derived simpleicons slugs → monogram.
|
|
228
|
+
*/
|
|
229
|
+
function providerLogoCandidates(opts) {
|
|
230
|
+
const out = [];
|
|
231
|
+
if (opts.iconUrl) out.push(opts.iconUrl);
|
|
232
|
+
const raw = opts.id.toLowerCase();
|
|
233
|
+
const norm = normalizeProviderId(raw);
|
|
234
|
+
const curated = PROVIDER_LOGO_SLUGS[raw] ?? PROVIDER_LOGO_SLUGS[norm];
|
|
235
|
+
const vectorName = PROVIDER_VECTOR_LOGOS[raw] ?? PROVIDER_VECTOR_LOGOS[norm] ?? (curated ? PROVIDER_VECTOR_LOGOS[curated] : void 0);
|
|
236
|
+
if (vectorName) out.push(`https://svgl.app/library/${vectorName}.svg`);
|
|
237
|
+
const pinned = PROVIDER_LOGO_URLS[raw] ?? PROVIDER_LOGO_URLS[norm];
|
|
238
|
+
if (pinned) out.push(pinned);
|
|
239
|
+
if (raw) out.push(`${ACTIVEPIECES_CDN}/${encodeURIComponent(raw)}.png`);
|
|
240
|
+
const slugs = /* @__PURE__ */ new Set();
|
|
241
|
+
if (curated) slugs.add(curated);
|
|
242
|
+
slugs.add(norm.replace(/-/g, ""));
|
|
243
|
+
slugs.add(raw.replace(/[-_\s]/g, ""));
|
|
244
|
+
for (const slug of slugs) if (slug) out.push(`https://cdn.simpleicons.org/${slug}`);
|
|
245
|
+
return out;
|
|
246
|
+
}
|
|
247
|
+
/** Deterministic accent color for the monogram fallback, keyed off the id. */
|
|
248
|
+
function monogramColor(seed) {
|
|
249
|
+
const palette = [
|
|
250
|
+
"#6366f1",
|
|
251
|
+
"#8b5cf6",
|
|
252
|
+
"#ec4899",
|
|
253
|
+
"#f43f5e",
|
|
254
|
+
"#f97316",
|
|
255
|
+
"#eab308",
|
|
256
|
+
"#22c55e",
|
|
257
|
+
"#14b8a6",
|
|
258
|
+
"#0ea5e9",
|
|
259
|
+
"#3b82f6"
|
|
260
|
+
];
|
|
261
|
+
let hash = 0;
|
|
262
|
+
for (let i = 0; i < seed.length; i += 1) hash = hash * 31 + seed.charCodeAt(i) >>> 0;
|
|
263
|
+
return palette[hash % palette.length];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* A provider's brand mark: the resolved logo, walking a candidate chain on load
|
|
267
|
+
* error, and a deterministic monogram tile when no logo resolves. Rounding is
|
|
268
|
+
* left to the caller's `className` so the same component fits a large catalog
|
|
269
|
+
* tile and a small inline requirement row.
|
|
270
|
+
*/
|
|
271
|
+
function ProviderIcon({ id, iconUrl, displayName, size = 24, className }) {
|
|
272
|
+
const candidates = React$1.useMemo(() => providerLogoCandidates({
|
|
273
|
+
id,
|
|
274
|
+
iconUrl
|
|
275
|
+
}), [id, iconUrl]);
|
|
276
|
+
const [index, setIndex] = React$1.useState(0);
|
|
277
|
+
const candidateKey = `${id} ${iconUrl ?? ""}`;
|
|
278
|
+
const [seenKey, setSeenKey] = React$1.useState(candidateKey);
|
|
279
|
+
if (candidateKey !== seenKey) {
|
|
280
|
+
setSeenKey(candidateKey);
|
|
281
|
+
setIndex(0);
|
|
282
|
+
}
|
|
283
|
+
const initial = (displayName ?? id).trim().charAt(0).toUpperCase() || "?";
|
|
284
|
+
const src = candidates[index];
|
|
285
|
+
if (!src) return /* @__PURE__ */ jsx("span", {
|
|
286
|
+
className: `flex shrink-0 items-center justify-center font-semibold text-white ${className ?? ""}`,
|
|
287
|
+
style: {
|
|
288
|
+
width: size,
|
|
289
|
+
height: size,
|
|
290
|
+
backgroundColor: monogramColor(id),
|
|
291
|
+
fontSize: Math.round(size * .42)
|
|
292
|
+
},
|
|
293
|
+
"aria-hidden": true,
|
|
294
|
+
children: initial
|
|
295
|
+
});
|
|
296
|
+
return /* @__PURE__ */ jsx("img", {
|
|
297
|
+
src,
|
|
298
|
+
alt: "",
|
|
299
|
+
width: size,
|
|
300
|
+
height: size,
|
|
301
|
+
loading: "lazy",
|
|
302
|
+
className: `shrink-0 object-contain ${className ?? ""}`,
|
|
303
|
+
style: {
|
|
304
|
+
width: size,
|
|
305
|
+
height: size
|
|
306
|
+
},
|
|
307
|
+
onError: () => setIndex((i) => i + 1)
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
//#endregion
|
|
311
|
+
export { normalizeProviderId as n, providerLogoCandidates as r, ProviderIcon as t };
|
package/dist/run.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, RunRowShell, RunRowShellProps, RunRowStatus, RunRowStatusDot, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from "@tangle-network/ui/run";
|
|
2
|
+
export { ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LiveDuration, RunGroup, type RunGroupProps, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, parseToolEvent };
|
package/dist/run.js
CHANGED
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
InlineThinkingItem,
|
|
4
|
-
InlineToolItem,
|
|
5
|
-
LiveDuration,
|
|
6
|
-
RunGroup,
|
|
7
|
-
RunRowShell,
|
|
8
|
-
RunRowStatusDot,
|
|
9
|
-
ToolCallFeed,
|
|
10
|
-
parseToolEvent
|
|
11
|
-
} from "./chunk-M4K7ZGR2.js";
|
|
12
|
-
import "./chunk-CZ7CSFO4.js";
|
|
13
|
-
export {
|
|
14
|
-
ExpandedToolDetail,
|
|
15
|
-
InlineThinkingItem,
|
|
16
|
-
InlineToolItem,
|
|
17
|
-
LiveDuration,
|
|
18
|
-
RunGroup,
|
|
19
|
-
RunRowShell,
|
|
20
|
-
RunRowStatusDot,
|
|
21
|
-
ToolCallFeed,
|
|
22
|
-
parseToolEvent
|
|
23
|
-
};
|
|
1
|
+
import { ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LiveDuration, RunGroup, RunRowShell, RunRowStatusDot, ToolCallFeed, parseToolEvent } from "@tangle-network/ui/run";
|
|
2
|
+
export { ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LiveDuration, RunGroup, RunRowShell, RunRowStatusDot, ToolCallFeed, parseToolEvent };
|
package/dist/sdk-hooks.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import '@tangle-network/ui/types';
|
|
1
|
+
import { d as useSessionStream, l as UseSessionStreamOptions, n as UseSidecarAuthOptions, r as useSidecarAuth, s as SessionInfo, t as SidecarAuth, u as UseSessionStreamResult } from "./use-sidecar-auth-CCTJcrq7.js";
|
|
2
|
+
import { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, ConnectionState, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, TaskStreamEvent, TerminalStreamEvent, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, useAutoScroll, useDropdownMenu, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useToolCallStream } from "@tangle-network/ui/sdk-hooks";
|
|
3
|
+
export { type AgentStreamEvent, type AppendUserMessageOptions, type ApplySdkEventOptions, type AutomationStreamEvent, type BeginAssistantMessageOptions, type BotStreamEvent, type CompleteAssistantMessageOptions, type ConnectionState, type RealtimeSessionOptions, RealtimeSessionRegistry, type RealtimeSessionRegistryProps, type RealtimeSessionState, type RealtimeSessionTarget, type SSEEvent, type SdkSessionAttachment, type SdkSessionEvent, type SdkSessionSeed, type SessionInfo, type SidecarAuth, type TaskStreamEvent, type TerminalStreamEvent, type UseRunGroupsOptions, type UseSSEStreamOptions, type UseSSEStreamResult, type UseSdkSessionOptions, type UseSdkSessionReturn, type UseSessionStreamOptions, type UseSessionStreamResult, type UseSidecarAuthOptions, type UseToolCallStreamReturn, useAutoScroll, useDropdownMenu, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useSessionStream, useSidecarAuth, useToolCallStream };
|
package/dist/sdk-hooks.js
CHANGED
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "./chunk-72UF2H5H.js";
|
|
5
|
-
import "./chunk-CZ7CSFO4.js";
|
|
6
|
-
|
|
7
|
-
// src/sdk-hooks.ts
|
|
8
|
-
import {
|
|
9
|
-
RealtimeSessionRegistry,
|
|
10
|
-
useAutoScroll,
|
|
11
|
-
useDropdownMenu,
|
|
12
|
-
useRealtimeSession,
|
|
13
|
-
useRunCollapseState,
|
|
14
|
-
useRunGroups,
|
|
15
|
-
useSSEStream,
|
|
16
|
-
useSdkSession,
|
|
17
|
-
useToolCallStream
|
|
18
|
-
} from "@tangle-network/ui/sdk-hooks";
|
|
19
|
-
export {
|
|
20
|
-
RealtimeSessionRegistry,
|
|
21
|
-
useAutoScroll,
|
|
22
|
-
useDropdownMenu,
|
|
23
|
-
useRealtimeSession,
|
|
24
|
-
useRunCollapseState,
|
|
25
|
-
useRunGroups,
|
|
26
|
-
useSSEStream,
|
|
27
|
-
useSdkSession,
|
|
28
|
-
useSessionStream,
|
|
29
|
-
useSidecarAuth,
|
|
30
|
-
useToolCallStream
|
|
31
|
-
};
|
|
1
|
+
import { i as useSessionStream, t as useSidecarAuth } from "./use-sidecar-auth-DkdcufOz.js";
|
|
2
|
+
import { RealtimeSessionRegistry, useAutoScroll, useDropdownMenu, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useToolCallStream } from "@tangle-network/ui/sdk-hooks";
|
|
3
|
+
export { RealtimeSessionRegistry, useAutoScroll, useDropdownMenu, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useSessionStream, useSidecarAuth, useToolCallStream };
|
package/dist/stores.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
sessionId: string;
|
|
1
|
+
import { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, RegisterActiveSessionOptions, SessionProjectKey, activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions } from "@tangle-network/ui/stores";
|
|
2
|
+
//#region src/stores/session-store.d.ts
|
|
3
|
+
export interface ChatSession {
|
|
4
|
+
/** Sidecar HTTP base URL, e.g. "http://localhost:8080". */
|
|
5
|
+
sidecarUrl: string;
|
|
6
|
+
/** Auth token for the sidecar API. */
|
|
7
|
+
token: string;
|
|
8
|
+
/** Unique session identifier. */
|
|
9
|
+
sessionId: string;
|
|
11
10
|
}
|
|
12
11
|
/** The currently active chat session (null when disconnected). */
|
|
13
|
-
declare const sessionAtom: nanostores.PreinitializedWritableAtom<ChatSession | null> & object;
|
|
14
|
-
declare function connectSession(session: ChatSession): void;
|
|
15
|
-
declare function disconnectSession(): void;
|
|
16
|
-
|
|
17
|
-
export { type
|
|
12
|
+
export declare const sessionAtom: import("nanostores").PreinitializedWritableAtom<ChatSession | null> & object;
|
|
13
|
+
export declare function connectSession(session: ChatSession): void;
|
|
14
|
+
export declare function disconnectSession(): void;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { type ActiveProjectActivity, type ActiveSessionActivityOptions, type ActiveSessionConnectionOptions, type ActiveSessionConnectionState, type ActiveSessionReconnectState, type ActiveSessionRecord, type ActiveSessionStatus, type ActiveSessionTransportMode, type ActiveSessionsState, type RegisterActiveSessionOptions, type SessionProjectKey, activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions };
|
package/dist/stores.js
CHANGED
|
@@ -1,81 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
getSessionsForProject,
|
|
15
|
-
getTotalRunningSessionCount,
|
|
16
|
-
hasBackgroundRunningSessions,
|
|
17
|
-
isStreamingAtom,
|
|
18
|
-
messagesAtom,
|
|
19
|
-
partMapAtom,
|
|
20
|
-
registerActiveSession,
|
|
21
|
-
resetActiveSessions,
|
|
22
|
-
sessionAtom,
|
|
23
|
-
setActiveSessionAttention,
|
|
24
|
-
setActiveSessionConnection,
|
|
25
|
-
setActiveSessionError,
|
|
26
|
-
setActiveSessionRunning,
|
|
27
|
-
setForegroundActiveSession,
|
|
28
|
-
unregisterActiveSession,
|
|
29
|
-
updateActiveSessionMeta,
|
|
30
|
-
updatePart,
|
|
31
|
-
useActiveSession,
|
|
32
|
-
useActiveSessions,
|
|
33
|
-
useActiveSessionsState,
|
|
34
|
-
useHasBackgroundRunningSessions,
|
|
35
|
-
useNavbarSessions,
|
|
36
|
-
useProjectActivity,
|
|
37
|
-
useProjectSessions,
|
|
38
|
-
useSessionsByActivity,
|
|
39
|
-
useTotalRunningSessions
|
|
40
|
-
} from "./chunk-WID73FPH.js";
|
|
41
|
-
import "./chunk-CZ7CSFO4.js";
|
|
42
|
-
export {
|
|
43
|
-
activeSessionsAtom,
|
|
44
|
-
addMessage,
|
|
45
|
-
addParts,
|
|
46
|
-
bumpActiveSessionActivity,
|
|
47
|
-
clearChat,
|
|
48
|
-
connectSession,
|
|
49
|
-
disconnectSession,
|
|
50
|
-
getActiveSession,
|
|
51
|
-
getAllActiveSessions,
|
|
52
|
-
getAllProjectActivity,
|
|
53
|
-
getSessionsByActivity,
|
|
54
|
-
getSessionsForNavbar,
|
|
55
|
-
getSessionsForProject,
|
|
56
|
-
getTotalRunningSessionCount,
|
|
57
|
-
hasBackgroundRunningSessions,
|
|
58
|
-
isStreamingAtom,
|
|
59
|
-
messagesAtom,
|
|
60
|
-
partMapAtom,
|
|
61
|
-
registerActiveSession,
|
|
62
|
-
resetActiveSessions,
|
|
63
|
-
sessionAtom,
|
|
64
|
-
setActiveSessionAttention,
|
|
65
|
-
setActiveSessionConnection,
|
|
66
|
-
setActiveSessionError,
|
|
67
|
-
setActiveSessionRunning,
|
|
68
|
-
setForegroundActiveSession,
|
|
69
|
-
unregisterActiveSession,
|
|
70
|
-
updateActiveSessionMeta,
|
|
71
|
-
updatePart,
|
|
72
|
-
useActiveSession,
|
|
73
|
-
useActiveSessions,
|
|
74
|
-
useActiveSessionsState,
|
|
75
|
-
useHasBackgroundRunningSessions,
|
|
76
|
-
useNavbarSessions,
|
|
77
|
-
useProjectActivity,
|
|
78
|
-
useProjectSessions,
|
|
79
|
-
useSessionsByActivity,
|
|
80
|
-
useTotalRunningSessions
|
|
81
|
-
};
|
|
1
|
+
import { activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions } from "@tangle-network/ui/stores";
|
|
2
|
+
import { atom } from "nanostores";
|
|
3
|
+
//#region src/stores/session-store.ts
|
|
4
|
+
/** The currently active chat session (null when disconnected). */
|
|
5
|
+
const sessionAtom = atom(null);
|
|
6
|
+
function connectSession(session) {
|
|
7
|
+
sessionAtom.set(session);
|
|
8
|
+
}
|
|
9
|
+
function disconnectSession() {
|
|
10
|
+
sessionAtom.set(null);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, connectSession, disconnectSession, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions };
|