@epam/ai-dial-chat-hooks 1.1.0-dev.392 → 1.1.0-dev.395

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.
@@ -1,20 +1,23 @@
1
- import { i as e, n as t, r as n } from "./string-utils-iBi2Y55C.js";
2
- import { r } from "./toolset-id-CkxRHyU0.js";
3
- import { n as i, s as a, t as o } from "./prompt-resource-Bt1I-8ri.js";
4
- import { t as s } from "./formatting-CZyyxBG3.js";
5
- import { r as c, t as l } from "./skill-manifest-CCX8s4nn.js";
6
- import { CatalogEntityType as u, extractPromptParams as d, formatCost as f, formatLastUsed as p, formatUnitPrice as m } from "@epam/ai-dial-chat-shared";
7
- import { useCallback as h, useEffect as g, useMemo as _, useRef as v, useState as y } from "react";
8
- import { mimeTypesToExtensionLabels as b } from "@epam/ai-dial-attachment-input";
9
- import { CatalogContentNodeType as x, CatalogLimitStatus as S, CodeLanguage as C, CredentialStatus as w, ToolsetAuthenticationType as T } from "@epam/ai-dial-catalog";
10
- import { ListFilesItemDtoNodeTypeEnum as ee, SkillMetadataItemDtoNodeTypeEnum as E } from "@epam/ai-dial-chat-api-client";
11
- import { fromFolderPathKey as D, mergeFolderPaths as te, toFolderPathKey as ne } from "@epam/ai-dial-publish-panel";
1
+ import { t as e } from "./api-error-DuLNy43N.js";
2
+ import { i as t, n, r } from "./string-utils-iBi2Y55C.js";
3
+ import { n as i } from "./deployment-id-CxWgJTs9.js";
4
+ import { T as a, g as o, h as s, n as c, t as l } from "./useToolsetLogin-B05m134e.js";
5
+ import { n as u, s as d, t as f } from "./prompt-resource-Bt1I-8ri.js";
6
+ import { t as p } from "./formatting-CZyyxBG3.js";
7
+ import { r as m, t as h } from "./skill-manifest-CCX8s4nn.js";
8
+ import { CatalogEntityType as g, extractPromptParams as _, formatCost as v, formatLastUsed as y, formatUnitPrice as b } from "@epam/ai-dial-chat-shared";
9
+ import { useCallback as x, useEffect as S, useMemo as C, useRef as w, useState as T } from "react";
10
+ import { mimeTypesToExtensionLabels as ee } from "@epam/ai-dial-attachment-input";
11
+ import { CatalogContentNodeType as E, CatalogLimitStatus as D, CodeLanguage as O, CredentialStatus as k, CredentialsLevel as A, ToolsetAuthenticationType as j } from "@epam/ai-dial-catalog";
12
+ import { ListFilesItemDtoNodeTypeEnum as te, SkillMetadataItemDtoNodeTypeEnum as M } from "@epam/ai-dial-chat-api-client";
13
+ import { NotificationVariant as N } from "@epam/ai-dial-ui-kit";
14
+ import { fromFolderPathKey as ne, mergeFolderPaths as re, toFolderPathKey as ie } from "@epam/ai-dial-publish-panel";
12
15
  //#region src/catalog/create-publish-api.ts
13
- var re = (e) => ({
16
+ var ae = (e) => ({
14
17
  source: e.source,
15
18
  targets: e.targets,
16
19
  function: e.function
17
- }), ie = (e) => ({
20
+ }), oe = (e) => ({
18
21
  publishCatalogEntity: (t, n, r) => e.publishCatalogEntity({
19
22
  entityType: t,
20
23
  entityId: n,
@@ -33,37 +36,37 @@ var re = (e) => ({
33
36
  ...t,
34
37
  function: e
35
38
  }))
36
- }), ae = (e) => e.endsWith("/") ? e.slice(0, -1) : e, oe = (e) => e.split("/").map((e) => encodeURIComponent(n(e))).join("/"), se = (e) => e.split("/").map(n).join("/"), ce = (e, t) => `${ae(e)}/openai/deployments/${oe(t)}/chat/completions`, O = (e) => `${ae(e)}/openai/v1/responses`, k = (e, t, { hasChatCompletion: n, hasResponsesApi: r }) => {
39
+ }), se = (e) => e.endsWith("/") ? e.slice(0, -1) : e, ce = (e) => e.split("/").map((e) => encodeURIComponent(r(e))).join("/"), le = (e) => e.split("/").map(r).join("/"), ue = (e, t) => `${se(e)}/openai/deployments/${ce(t)}/chat/completions`, de = (e) => `${se(e)}/openai/v1/responses`, fe = (e, t, { hasChatCompletion: n, hasResponsesApi: r }) => {
37
40
  let i = [];
38
41
  if (n) {
39
- let n = ce(e, t);
42
+ let n = ue(e, t);
40
43
  i.push({
41
44
  label: "Chat Completions",
42
45
  url: n,
43
46
  snippets: [{
44
- language: C.Curl,
47
+ language: O.Curl,
45
48
  code: `curl -X POST '${n}?api-version=<api-version>' \\\n -H 'Content-Type: application/json' \\\n -H 'Api-Key: <key>' \\\n -d '{"messages":[{"role":"user","content":"Hello"}]}'`
46
49
  }]
47
50
  });
48
51
  }
49
52
  if (r) {
50
- let n = O(e);
53
+ let n = de(e);
51
54
  i.push({
52
55
  label: "Responses",
53
56
  url: n,
54
57
  snippets: [{
55
- language: C.Curl,
58
+ language: O.Curl,
56
59
  code: `curl -X POST '${n}' \\\n -H 'Content-Type: application/json' \\\n -H 'Api-Key: <key>' \\\n -d '{"model":"${t}","input":"Hello"}'`
57
60
  }]
58
61
  });
59
62
  }
60
63
  if (i.length !== 0) return {
61
- resource: { modelId: se(t) },
64
+ resource: { modelId: le(t) },
62
65
  endpoints: i
63
66
  };
64
- }, A = /* @__PURE__ */ function(e) {
67
+ }, P = /* @__PURE__ */ function(e) {
65
68
  return e.None = "NONE", e.ApiKey = "API_KEY", e.OAuth = "OAUTH", e;
66
- }({}), le = [
69
+ }({}), pe = [
67
70
  {
68
71
  key: "dayTokenStats",
69
72
  labelField: "tokensPerDay",
@@ -79,16 +82,16 @@ var re = (e) => ({
79
82
  labelField: "tokensPerMonth",
80
83
  costKey: "monthCostStats"
81
84
  }
82
- ], ue = 2 ** 53 - 1, de = .75, fe = [1e6, 1e3], j = new Intl.NumberFormat(void 0, {
85
+ ], me = 2 ** 53 - 1, he = .75, ge = [1e6, 1e3], F = new Intl.NumberFormat(void 0, {
83
86
  notation: "compact",
84
87
  maximumFractionDigits: 1
85
- }), M = new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 }), pe = (e) => {
86
- let t = fe.find((t) => Math.abs(e) >= t);
88
+ }), I = new Intl.NumberFormat(void 0, { maximumFractionDigits: 2 }), _e = (e) => {
89
+ let t = ge.find((t) => Math.abs(e) >= t);
87
90
  return t == null ? e : Math.trunc(e / t * 10) / 10 * t;
88
- }, me = (e) => e != null && Number.isFinite(e.total) && Number.isFinite(e.used) && e.total > 0, N = (e) => e >= ue, he = (e) => e != null && Number.isFinite(e.total) && Number.isFinite(e.used), ge = (e, t) => {
89
- if (he(e)) return t.formatSpentCaption(f(Math.max(0, e.used)));
90
- }, _e = (e, t, n, r) => {
91
- let i = Math.max(0, e.used), a = e.total, o = j.format(pe(i)), s = j.format(a), c = M.format(i), l = M.format(a), u = N(a);
91
+ }, ve = (e) => e != null && Number.isFinite(e.total) && Number.isFinite(e.used) && e.total > 0, L = (e) => e >= me, ye = (e) => e != null && Number.isFinite(e.total) && Number.isFinite(e.used), be = (e, t) => {
92
+ if (ye(e)) return t.formatSpentCaption(v(Math.max(0, e.used)));
93
+ }, xe = (e, t, n, r) => {
94
+ let i = Math.max(0, e.used), a = e.total, o = F.format(_e(i)), s = F.format(a), c = I.format(i), l = I.format(a), u = L(a);
92
95
  return {
93
96
  label: t,
94
97
  used: i,
@@ -111,26 +114,26 @@ var re = (e) => ({
111
114
  total: l
112
115
  })
113
116
  };
114
- }, ve = (e) => N(e.total) ? 0 : Math.max(e.used, 0) / e.total, ye = (e) => e.reduce((e, t) => {
115
- let n = ve(t);
116
- return n >= 1 ? S.LimitReached : n >= de && e !== S.LimitReached ? S.RunningLow : e;
117
- }, void 0), P = (e, t) => {
117
+ }, Se = (e) => L(e.total) ? 0 : Math.max(e.used, 0) / e.total, Ce = (e) => e.reduce((e, t) => {
118
+ let n = Se(t);
119
+ return n >= 1 ? D.LimitReached : n >= he && e !== D.LimitReached ? D.RunningLow : e;
120
+ }, void 0), R = (e, t) => {
118
121
  if (e == null) return;
119
- let n = [], r = le.flatMap((r) => {
122
+ let n = [], r = pe.flatMap((r) => {
120
123
  let i = e[r.key];
121
- if (!me(i)) return [];
124
+ if (!ve(i)) return [];
122
125
  n.push(i);
123
- let a = ge(e[r.costKey], t);
124
- return [_e(i, t[r.labelField], a, t)];
126
+ let a = be(e[r.costKey], t);
127
+ return [xe(i, t[r.labelField], a, t)];
125
128
  });
126
129
  return r.length > 0 ? {
127
130
  groups: [{
128
131
  label: t.tokenGroup,
129
132
  rows: r
130
133
  }],
131
- status: ye(n)
134
+ status: Ce(n)
132
135
  } : void 0;
133
- }, be = (e) => {
136
+ }, we = (e) => {
134
137
  let t = e?.monthTokenStats;
135
138
  if (t == null || !Number.isFinite(t.total) || !Number.isFinite(t.used) || t.total <= 0 || t.total >= 2 ** 53 - 1) return;
136
139
  let n = Math.max(0, t.used);
@@ -140,12 +143,12 @@ var re = (e) => ({
140
143
  remaining: Math.max(0, t.total - n),
141
144
  usedPercent: Math.min(100, Math.round(n / t.total * 100))
142
145
  };
143
- }, F = (e) => e >= 1e6 ? `${e / 1e6}M tokens` : e >= 1e3 ? `${e / 1e3}K tokens` : `${e} tokens`, I = (e) => {
146
+ }, z = (e) => e >= 1e6 ? `${e / 1e6}M tokens` : e >= 1e3 ? `${e / 1e3}K tokens` : `${e} tokens`, B = (e) => {
144
147
  let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e);
145
148
  if (t == null) return e;
146
- let [, n, r, i] = t, a = Number(n), o = Number(r) - 1, c = Number(i), l = new Date(a, o, c);
147
- return l.getFullYear() !== a || l.getMonth() !== o || l.getDate() !== c ? e : s(l.getTime());
148
- }, xe = "unit", Se = (e) => {
149
+ let [, n, r, i] = t, a = Number(n), o = Number(r) - 1, s = Number(i), c = new Date(a, o, s);
150
+ return c.getFullYear() !== a || c.getMonth() !== o || c.getDate() !== s ? e : p(c.getTime());
151
+ }, Te = "unit", Ee = (e) => {
149
152
  let t = [];
150
153
  if (e.capabilities != null) {
151
154
  let { capabilities: n } = e, r = [];
@@ -176,7 +179,7 @@ var re = (e) => ({
176
179
  value: n.license
177
180
  }), n.knowledgeCutoffDate != null && r.push({
178
181
  label: "Knowledge cutoff date",
179
- value: I(n.knowledgeCutoffDate)
182
+ value: B(n.knowledgeCutoffDate)
180
183
  }), n.parameters != null && r.push({
181
184
  label: "Parameters",
182
185
  value: n.parameters
@@ -185,60 +188,60 @@ var re = (e) => ({
185
188
  value: n.hostedBy
186
189
  }), n.createdAt != null && r.push({
187
190
  label: "Release date",
188
- value: s(n.createdAt)
191
+ value: p(n.createdAt)
189
192
  }), n.contextWindowTokens != null && r.push({
190
193
  label: "Context window",
191
- value: F(n.contextWindowTokens)
194
+ value: z(n.contextWindowTokens)
192
195
  }), n.maxOutputTokens != null && r.push({
193
196
  label: "Max output tokens",
194
- value: F(n.maxOutputTokens)
197
+ value: z(n.maxOutputTokens)
195
198
  }), n.inputTypes?.length && r.push({
196
199
  label: "Input modalities",
197
- value: b(n.inputTypes)
200
+ value: ee(n.inputTypes)
198
201
  }), r.length > 0 && t.push({
199
202
  title: "Specification",
200
203
  specs: r
201
204
  });
202
205
  }
203
- let n = Te(e.pricing), r = Ee(e);
206
+ let n = ke(e.pricing), r = Ae(e);
204
207
  return {
205
208
  overview: t.length > 0 ? { sections: t } : void 0,
206
209
  pricing: n,
207
210
  api: r
208
211
  };
209
- }, Ce = {
212
+ }, De = {
210
213
  prompt: "Input tokens",
211
214
  completion: "Output tokens",
212
215
  cache_read: "Cached input",
213
216
  cacheRead: "Cached input",
214
217
  cache_write: "Cached write",
215
218
  cacheWrite: "Cached write"
216
- }, L = [
219
+ }, V = [
217
220
  "prompt",
218
221
  "completion",
219
222
  "cache_read",
220
223
  "cacheRead",
221
224
  "cache_write",
222
225
  "cacheWrite"
223
- ], R = (e) => {
224
- let t = L.indexOf(e);
225
- return t === -1 ? L.length : t;
226
- }, we = (e) => {
227
- let t = Ce[e];
226
+ ], H = (e) => {
227
+ let t = V.indexOf(e);
228
+ return t === -1 ? V.length : t;
229
+ }, Oe = (e) => {
230
+ let t = De[e];
228
231
  if (t != null) return t;
229
232
  let n = e.replace(/([a-z\d])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ").trim().toLowerCase();
230
233
  return n === "" ? e : ` ${n.charAt(0).toUpperCase()}${n.slice(1)}`;
231
- }, Te = (e) => {
234
+ }, ke = (e) => {
232
235
  if (e == null) return;
233
- let t = [...e.prices ?? []].sort((e, t) => R(e.key) - R(t.key)).map(({ key: e, price: t }) => ({
234
- label: we(e),
236
+ let t = [...e.prices ?? []].sort((e, t) => H(e.key) - H(t.key)).map(({ key: e, price: t }) => ({
237
+ label: Oe(e),
235
238
  price: t
236
239
  }));
237
240
  if (t.length !== 0) return { prices: t };
238
- }, Ee = (e) => {
241
+ }, Ae = (e) => {
239
242
  let { api: t } = e;
240
243
  if (t?.modelId != null) return { resource: { modelId: t.modelId } };
241
- }, De = (e) => {
244
+ }, je = (e) => {
242
245
  let t = [];
243
246
  if (e.specification != null) {
244
247
  let { specification: n } = e, r = [];
@@ -253,7 +256,7 @@ var re = (e) => ({
253
256
  value: n.license
254
257
  }), n.knowledgeCutoffDate != null && r.push({
255
258
  label: "Knowledge cutoff date",
256
- value: I(n.knowledgeCutoffDate)
259
+ value: B(n.knowledgeCutoffDate)
257
260
  }), n.parameters != null && r.push({
258
261
  label: "Parameters",
259
262
  value: n.parameters
@@ -262,7 +265,7 @@ var re = (e) => ({
262
265
  value: n.hostedBy
263
266
  }), n.createdAt != null && r.push({
264
267
  label: "Release date",
265
- value: s(n.createdAt)
268
+ value: p(n.createdAt)
266
269
  }), n.routes?.length && r.push({
267
270
  label: "Routes",
268
271
  value: n.routes.join(" · ")
@@ -291,37 +294,37 @@ var re = (e) => ({
291
294
  let { configuration: n } = e, r = [];
292
295
  n.inputAttachmentTypes?.length && r.push({
293
296
  label: "Input attachments",
294
- value: b(n.inputAttachmentTypes)
297
+ value: ee(n.inputAttachmentTypes)
295
298
  }), r.length > 0 && t.push({
296
299
  title: "Configuration",
297
300
  specs: r
298
301
  });
299
302
  }
300
303
  return { overview: t.length > 0 ? { sections: t } : void 0 };
301
- }, Oe = {
302
- [A.None]: T.None,
303
- [A.ApiKey]: T.ApiKey,
304
- [A.OAuth]: T.OAuth
305
- }, z = {
306
- SIGNED_IN: w.SignedIn,
307
- SIGNED_OUT: w.SignedOut,
308
- FAILED: w.Failed
309
- }, B = (e, t, n) => {
310
- let i = Oe[t.specification?.authentication ?? A.None];
311
- if (i == null) return;
312
- let { userLevel: a, global: o } = t.specification?.authStatus ?? {}, s = r(e);
304
+ }, Me = {
305
+ [P.None]: j.None,
306
+ [P.ApiKey]: j.ApiKey,
307
+ [P.OAuth]: j.OAuth
308
+ }, Ne = {
309
+ SIGNED_IN: k.SignedIn,
310
+ SIGNED_OUT: k.SignedOut,
311
+ FAILED: k.Failed
312
+ }, Pe = (e, t, n) => {
313
+ let r = Me[t.specification?.authentication ?? P.None];
314
+ if (r == null) return;
315
+ let { userLevel: i, global: o } = t.specification?.authStatus ?? {}, s = a(e);
313
316
  return {
314
- authenticationType: i,
315
- userStatus: a ? z[a] : void 0,
316
- globalStatus: o ? z[o] : void 0,
317
+ authenticationType: r,
318
+ userStatus: i ? Ne[i] : void 0,
319
+ globalStatus: o ? Ne[o] : void 0,
317
320
  isPublic: s,
318
321
  isManageableByAdmin: n && s,
319
322
  apiKeyHeader: t.specification?.authStatus?.apiKeyHeader
320
323
  };
321
- }, ke = (e) => {
324
+ }, Fe = (e) => {
322
325
  let t = e?.permissions?.length ? e.permissions : e?.allTools;
323
326
  if (t?.length) return { tools: t.map((e) => ({ name: e })) };
324
- }, Ae = (e) => {
327
+ }, Ie = (e) => {
325
328
  let t = [];
326
329
  if (e.specification != null) {
327
330
  let { specification: n } = e, r = [];
@@ -339,7 +342,7 @@ var re = (e) => ({
339
342
  value: n.license
340
343
  }), n.knowledgeCutoffDate != null && r.push({
341
344
  label: "Knowledge cutoff date",
342
- value: I(n.knowledgeCutoffDate)
345
+ value: B(n.knowledgeCutoffDate)
343
346
  }), n.parameters != null && r.push({
344
347
  label: "Parameters",
345
348
  value: n.parameters
@@ -348,7 +351,7 @@ var re = (e) => ({
348
351
  value: n.hostedBy
349
352
  }), n.createdAt != null && r.push({
350
353
  label: "Release date",
351
- value: s(n.createdAt)
354
+ value: p(n.createdAt)
352
355
  }), n.authStatus?.scopesSupported?.length && r.push({
353
356
  label: "OAuth scopes",
354
357
  value: n.authStatus.scopesSupported.join(" · ")
@@ -365,15 +368,15 @@ var re = (e) => ({
365
368
  }
366
369
  return {
367
370
  overview: t.length > 0 ? { sections: t } : void 0,
368
- tools: ke(e.specification)
371
+ tools: Fe(e.specification)
369
372
  };
370
- }, V = (e) => {
373
+ }, U = (e) => {
371
374
  switch (e.type) {
372
- case "MODEL": return Se(e.data);
373
- case "AGENT": return De(e.data);
374
- case "TOOLSET": return Ae(e.data);
375
+ case "MODEL": return Ee(e.data);
376
+ case "AGENT": return je(e.data);
377
+ case "TOOLSET": return Ie(e.data);
375
378
  }
376
- }, H = (e) => {
379
+ }, W = (e) => {
377
380
  if (e != null) return {
378
381
  hasTools: e.tools,
379
382
  hasMcp: e.mcp,
@@ -389,23 +392,23 @@ var re = (e) => ({
389
392
  hasResponsesApi: e.responsesApi,
390
393
  reasoningEfforts: e.reasoningEfforts
391
394
  };
392
- }, je = (e) => {
395
+ }, Le = (e) => {
393
396
  if (e == null) return;
394
397
  let { unit: t } = e, n = Object.entries(e).flatMap(([e, n]) => {
395
- if (e === xe || typeof n != "string" || n.trim() === "") return [];
396
- let r = m(n, t);
398
+ if (e === Te || typeof n != "string" || n.trim() === "") return [];
399
+ let r = b(n, t);
397
400
  return r == null ? [] : [{
398
401
  key: e,
399
402
  price: r
400
403
  }];
401
404
  });
402
405
  return n.length > 0 ? { prices: n } : void 0;
403
- }, Me = (e) => {
406
+ }, Re = (e) => {
404
407
  let { limits: t, pricing: n, features: r, catalogProperties: i, owner: a, inputAttachmentTypes: o, defaultMaxTokens: s, createdAt: c } = e.modelDetails ?? {}, l = t != null || i != null || a != null || c != null || (o?.length ?? 0) > 0;
405
408
  return {
406
409
  type: "MODEL",
407
410
  data: {
408
- capabilities: H(r),
411
+ capabilities: W(r),
409
412
  specification: l ? {
410
413
  provider: i?.provider,
411
414
  vendor: i?.vendor,
@@ -418,16 +421,16 @@ var re = (e) => ({
418
421
  hostedBy: a,
419
422
  createdAt: c
420
423
  } : void 0,
421
- pricing: je(n),
424
+ pricing: Le(n),
422
425
  api: { modelId: e.id }
423
426
  }
424
427
  };
425
- }, Ne = (e) => {
428
+ }, ze = (e) => {
426
429
  let { routes: t, owner: n, inputAttachmentTypes: r, features: i, catalogProperties: a, createdAt: o } = e.applicationDetails ?? {}, s = a != null || n != null || o != null || (t?.length ?? 0) > 0;
427
430
  return {
428
431
  type: "AGENT",
429
432
  data: {
430
- capabilities: H(i),
433
+ capabilities: W(i),
431
434
  specification: s ? {
432
435
  provider: a?.provider,
433
436
  vendor: a?.vendor,
@@ -441,7 +444,7 @@ var re = (e) => ({
441
444
  configuration: r?.length ? { inputAttachmentTypes: r } : void 0
442
445
  }
443
446
  };
444
- }, Pe = (e) => e === A.None || e === A.ApiKey || e === A.OAuth, Fe = (e) => {
447
+ }, Be = (e) => e === P.None || e === P.ApiKey || e === P.OAuth, Ve = (e) => {
445
448
  if (e == null) return;
446
449
  let { globalAuthStatus: t, appLevelAuthStatus: n, userLevelAuthStatus: r, scopesSupported: i, authorizationEndpoint: a, tokenEndpoint: o, apiKeyHeader: s } = e;
447
450
  if (!(t == null && n == null && r == null && a == null && o == null && s == null && !i?.length)) return {
@@ -453,14 +456,14 @@ var re = (e) => ({
453
456
  tokenEndpoint: o,
454
457
  apiKeyHeader: s
455
458
  };
456
- }, Ie = (e) => {
459
+ }, He = (e) => {
457
460
  let t = e.toolsetDetails, n = t?.authSettings?.authenticationType;
458
461
  return {
459
462
  type: "TOOLSET",
460
463
  data: {
461
- capabilities: H(t?.features),
464
+ capabilities: W(t?.features),
462
465
  specification: t == null ? void 0 : {
463
- authentication: Pe(n) ? n : void 0,
466
+ authentication: Be(n) ? n : void 0,
464
467
  provider: t.catalogProperties?.provider,
465
468
  vendor: t.catalogProperties?.vendor,
466
469
  license: t.catalogProperties?.license,
@@ -470,59 +473,59 @@ var re = (e) => ({
470
473
  allTools: t.allToolNames,
471
474
  hostedBy: t.owner,
472
475
  createdAt: t.createdAt,
473
- authStatus: Fe(t.authSettings)
476
+ authStatus: Ve(t.authSettings)
474
477
  }
475
478
  }
476
479
  };
477
- }, U = (e) => {
480
+ }, Ue = (e) => {
478
481
  switch (e.type) {
479
- case "model": return Me(e);
480
- case "application": return Ne(e);
481
- case "toolset": return Ie(e);
482
+ case "model": return Re(e);
483
+ case "application": return ze(e);
484
+ case "toolset": return He(e);
482
485
  }
483
- }, Le = {
484
- NONE: T.None,
485
- API_KEY: T.ApiKey,
486
- OAUTH: T.OAuth
487
- }, W = {
488
- SIGNED_IN: w.SignedIn,
489
- SIGNED_OUT: w.SignedOut,
490
- FAILED: w.Failed
491
- }, Re = (e, t, n) => {
486
+ }, We = {
487
+ NONE: j.None,
488
+ API_KEY: j.ApiKey,
489
+ OAUTH: j.OAuth
490
+ }, Ge = {
491
+ SIGNED_IN: k.SignedIn,
492
+ SIGNED_OUT: k.SignedOut,
493
+ FAILED: k.Failed
494
+ }, Ke = (e, t, n) => {
492
495
  if (t == null) return;
493
- let i = r(e), a = t.userLevelAuthStatus ? W[t.userLevelAuthStatus] : void 0, o = t.globalAuthStatus ? W[t.globalAuthStatus] : void 0;
496
+ let r = a(e), i = t.userLevelAuthStatus ? Ge[t.userLevelAuthStatus] : void 0, o = t.globalAuthStatus ? Ge[t.globalAuthStatus] : void 0;
494
497
  return {
495
- authenticationType: !n && i && a !== w.SignedIn && o === w.SignedIn ? T.None : Le[t.authenticationType],
496
- userStatus: a,
498
+ authenticationType: !n && r && i !== k.SignedIn && o === k.SignedIn ? j.None : We[t.authenticationType],
499
+ userStatus: i,
497
500
  globalStatus: o,
498
- isPublic: i,
499
- isManageableByAdmin: n && i,
501
+ isPublic: r,
502
+ isManageableByAdmin: n && r,
500
503
  apiKeyHeader: t.apiKeyHeader
501
504
  };
502
- }, ze = {
503
- model: u.Model,
504
- toolset: u.Toolset,
505
- application: u.Agent
506
- }, Be = "applications/", G = "toolsets/", K = "public", q = (e, t) => (e.startsWith(t) ? e.slice(t.length) : e).split("/").filter(Boolean).map(n), Ve = (e, t) => {
505
+ }, qe = {
506
+ model: g.Model,
507
+ toolset: g.Toolset,
508
+ application: g.Agent
509
+ }, Je = "applications/", G = "toolsets/", Ye = "public", Xe = (e, t) => (e.startsWith(t) ? e.slice(t.length) : e).split("/").filter(Boolean).map(r), Ze = (e, t) => {
507
510
  if (e.isMy) return [t.personal];
508
- let n = q(e.applicationFolder ?? "", Be);
509
- return e.sharedWithMe ? [t.shared, ...n.slice(1)] : n[0]?.toLowerCase() === K ? [t.public, ...n.slice(1)] : n;
510
- }, He = (e, t) => {
511
+ let n = Xe(e.applicationFolder ?? "", Je);
512
+ return e.sharedWithMe ? [t.shared, ...n.slice(1)] : n[0]?.toLowerCase() === Ye ? [t.public, ...n.slice(1)] : n;
513
+ }, Qe = (e, t) => {
511
514
  if (e.isMy && t != null) return [t.personal];
512
515
  let n = e.toolset || e.id;
513
516
  if (!n.startsWith(G)) return [];
514
- let r = q(n, G).slice(0, -1);
515
- return e.sharedWithMe && t != null ? [t.shared, ...r.slice(1)] : r[0]?.toLowerCase() === K && t != null ? [t.public, ...r.slice(1)] : r.slice(1);
516
- }, Ue = (e, { favoriteIds: t = /* @__PURE__ */ new Set(), entityDetails: n, folderLabels: r, editableSchemaIds: i = [], isCustomAppsEditable: o = !1, activeLocale: s, primaryLocale: c, resolveIconUrl: l }) => {
517
- let d = a(e.displayName, s, c) || e.id, f = (e.type ?? "").toLowerCase();
517
+ let r = Xe(n, G).slice(0, -1);
518
+ return e.sharedWithMe && t != null ? [t.shared, ...r.slice(1)] : r[0]?.toLowerCase() === Ye && t != null ? [t.public, ...r.slice(1)] : r.slice(1);
519
+ }, $e = (e, { favoriteIds: t = /* @__PURE__ */ new Set(), entityDetails: n, folderLabels: r, editableSchemaIds: i = [], isCustomAppsEditable: a = !1, activeLocale: o, primaryLocale: s, resolveIconUrl: c }) => {
520
+ let l = d(e.displayName, o, s) || e.id, u = (e.type ?? "").toLowerCase();
518
521
  return {
519
522
  id: e.id,
520
- type: ze[f] ?? u.Model,
521
- name: d,
522
- description: a(e.description, s, c),
523
- iconUrl: l(e.iconUrl),
523
+ type: qe[u] ?? g.Model,
524
+ name: l,
525
+ description: d(e.description, o, s),
526
+ iconUrl: c(e.iconUrl),
524
527
  version: e.displayVersion ?? "",
525
- lastUsed: p(e.updatedAt),
528
+ lastUsed: y(e.updatedAt),
526
529
  updatedAt: e.updatedAt,
527
530
  createdAt: e.createdAt,
528
531
  isFeatured: e.isFeatured ?? !1,
@@ -532,22 +535,22 @@ var re = (e) => ({
532
535
  isStarred: t.has(e.id),
533
536
  isMyApp: e.isMy ?? !1,
534
537
  sharedWithMe: e.sharedWithMe ?? !1,
535
- isEditable: (!!e.isMy || !!e.canEdit) && (i.length > 0 && i.includes(e.applicationTypeSchemaId ?? "") || o && !e.applicationTypeSchemaId && f === "application"),
536
- folder: Ve(e, r),
537
- details: n == null ? void 0 : V(n),
538
+ isEditable: (!!e.isMy || !!e.canEdit) && (i.length > 0 && i.includes(e.applicationTypeSchemaId ?? "") || a && !e.applicationTypeSchemaId && u === "application"),
539
+ folder: Ze(e, r),
540
+ details: n == null ? void 0 : U(n),
538
541
  supportsMcp: e.features?.mcp === !0,
539
542
  supportsChat: e.interfaces == null || e.interfaces.includes("chat")
540
543
  };
541
- }, We = (e, { favoriteIds: t = /* @__PURE__ */ new Set(), isAdmin: n = !1, folderLabels: r, activeLocale: i, primaryLocale: o, resolveIconUrl: s }) => {
542
- let c = a(e.displayName, i, o) || e.toolset || e.reference || e.id, l = e.allowedTools ?? [];
544
+ }, et = (e, { favoriteIds: t = /* @__PURE__ */ new Set(), isAdmin: n = !1, folderLabels: r, activeLocale: i, primaryLocale: a, resolveIconUrl: o }) => {
545
+ let s = d(e.displayName, i, a) || e.toolset || e.reference || e.id, c = e.allowedTools ?? [];
543
546
  return {
544
547
  id: e.id,
545
- type: u.Toolset,
546
- name: c,
547
- description: a(e.description, i, o),
548
- iconUrl: s(e.iconUrl),
548
+ type: g.Toolset,
549
+ name: s,
550
+ description: d(e.description, i, a),
551
+ iconUrl: o(e.iconUrl),
549
552
  version: e.displayVersion ?? "",
550
- lastUsed: p(e.updatedAt),
553
+ lastUsed: y(e.updatedAt),
551
554
  updatedAt: e.updatedAt,
552
555
  createdAt: e.createdAt,
553
556
  isFeatured: !1,
@@ -558,55 +561,55 @@ var re = (e) => ({
558
561
  isMyApp: e.isMy ?? !1,
559
562
  sharedWithMe: e.sharedWithMe ?? !1,
560
563
  isEditable: !!(e.isMy || e.canEdit),
561
- folder: He(e, r),
562
- credentials: Re(e.id, e.authSettings, n),
563
- details: l.length > 0 ? { tools: { tools: l.map((e) => ({ name: e })) } } : void 0
564
+ folder: Qe(e, r),
565
+ credentials: Ke(e.id, e.authSettings, n),
566
+ details: c.length > 0 ? { tools: { tools: c.map((e) => ({ name: e })) } } : void 0
564
567
  };
565
- }, Ge = {
566
- [o.Personal]: "personal",
567
- [o.SharedWithMe]: "shared",
568
- [o.Public]: "public"
569
- }, Ke = (e, t, r) => [r[Ge[t]], ...e.split("/").filter(Boolean).map(n)], J = (e, t) => {
568
+ }, tt = {
569
+ [f.Personal]: "personal",
570
+ [f.SharedWithMe]: "shared",
571
+ [f.Public]: "public"
572
+ }, nt = (e, t, n) => [n[tt[t]], ...e.split("/").filter(Boolean).map(r)], K = (e, t) => {
570
573
  let n = [];
571
574
  return e.author && n.push({
572
575
  label: t.authorLabel,
573
576
  value: e.author
574
577
  }), n.push({
575
578
  label: t.updatedLabel,
576
- value: s(e.updatedAt)
579
+ value: p(e.updatedAt)
577
580
  }), { sections: [{
578
581
  title: t.sectionTitle,
579
582
  specs: n
580
583
  }] };
581
- }, qe = (e) => !e.isMyApp && !e.sharedWithMe, Je = (e, { folderLabels: t, overviewLabels: n, source: r, favoriteIds: i }) => {
582
- let a = r === o.Personal, s = e.id, c = i.has(s);
584
+ }, rt = (e) => !e.isMyApp && !e.sharedWithMe, it = (e, { folderLabels: t, overviewLabels: n, source: r, favoriteIds: i }) => {
585
+ let a = r === f.Personal, o = e.id, s = i.has(o);
583
586
  return {
584
- id: s,
585
- type: u.Prompt,
587
+ id: o,
588
+ type: g.Prompt,
586
589
  name: e.name,
587
590
  description: e.description ?? "",
588
591
  version: "",
589
- lastUsed: p(e.updatedAt),
592
+ lastUsed: y(e.updatedAt),
590
593
  createdAt: e.createdAt,
591
594
  updatedAt: e.updatedAt,
592
595
  isFeatured: !1,
593
596
  isHidden: !1,
594
597
  topics: [],
595
- isUserFavorite: c,
596
- isStarred: c,
598
+ isUserFavorite: s,
599
+ isStarred: s,
597
600
  isMyApp: e.isMy ?? a,
598
- sharedWithMe: e.sharedWithMe ?? r === o.SharedWithMe,
599
- isEditable: r !== o.Public && (e.canEdit ?? a),
600
- folder: Ke(e.folderId, r, t),
601
+ sharedWithMe: e.sharedWithMe ?? r === f.SharedWithMe,
602
+ isEditable: r !== f.Public && (e.canEdit ?? a),
603
+ folder: nt(e.folderId, r, t),
601
604
  details: {
602
605
  ...e.content ? { promptContent: { content: e.content } } : void 0,
603
- overview: J(e, n)
606
+ overview: K(e, n)
604
607
  }
605
608
  };
606
- }, Y = /* @__PURE__ */ function(e) {
609
+ }, q = /* @__PURE__ */ function(e) {
607
610
  return e.Personal = "personal", e.SharedWithMe = "sharedWithMe", e.Public = "public", e;
608
- }({}), Ye = "public", Xe = "skills/", Ze = 256 * 1024, Qe = 1e3, $e = 10, et = (e) => {
609
- if (!e.startsWith(Xe)) return null;
611
+ }({}), at = "public", ot = "skills/", st = 256 * 1024, ct = 1e3, lt = 10, J = (e) => {
612
+ if (!e.startsWith(ot)) return null;
610
613
  let t = e.slice(7), n = t.indexOf("/");
611
614
  if (n <= 0) return null;
612
615
  let r = t.slice(0, n), i = t.slice(n + 1);
@@ -614,19 +617,19 @@ var re = (e) => ({
614
617
  bucket: r,
615
618
  path: i
616
619
  };
617
- }, tt = {
618
- [Y.Personal]: "personal",
619
- [Y.SharedWithMe]: "shared",
620
- [Y.Public]: "public"
621
- }, nt = (e, t, r) => [r[tt[t]], ...(e ?? "").split("/").filter(Boolean).map(n)], rt = (e, { folderLabels: t, source: n, favoriteIds: r }) => {
622
- let i = r.has(e.url), a = n === Y.Public, o = n === Y.Personal;
620
+ }, ut = {
621
+ [q.Personal]: "personal",
622
+ [q.SharedWithMe]: "shared",
623
+ [q.Public]: "public"
624
+ }, dt = (e, t, n) => [n[ut[t]], ...(e ?? "").split("/").filter(Boolean).map(r)], ft = (e, { folderLabels: t, source: n, favoriteIds: r }) => {
625
+ let i = r.has(e.url), a = n === q.Public, o = n === q.Personal;
623
626
  return {
624
627
  id: e.url,
625
- type: u.Skill,
628
+ type: g.Skill,
626
629
  name: e.name,
627
630
  description: "",
628
631
  version: "",
629
- lastUsed: p(e.updatedAt),
632
+ lastUsed: y(e.updatedAt),
630
633
  createdAt: e.createdAt,
631
634
  updatedAt: e.updatedAt,
632
635
  isFeatured: !1,
@@ -635,11 +638,11 @@ var re = (e) => ({
635
638
  isUserFavorite: i,
636
639
  isStarred: i,
637
640
  isMyApp: o && (e.isMy ?? !0),
638
- sharedWithMe: e.sharedWithMe ?? n === Y.SharedWithMe,
641
+ sharedWithMe: e.sharedWithMe ?? n === q.SharedWithMe,
639
642
  isEditable: !a && (e.canEdit ?? o),
640
- folder: nt(e.parentPath, n, t)
643
+ folder: dt(e.parentPath, n, t)
641
644
  };
642
- }, it = (e) => e.join(" · "), at = (e, t) => {
645
+ }, pt = (e) => e.join(" · "), mt = (e, t) => {
643
646
  if (e == null) return null;
644
647
  let n = [];
645
648
  return e.whenToUse != null && n.push({
@@ -647,25 +650,25 @@ var re = (e) => ({
647
650
  value: e.whenToUse
648
651
  }), e.allowedTools?.length && n.push({
649
652
  label: t.allowedToolsLabel,
650
- value: it(e.allowedTools)
653
+ value: pt(e.allowedTools)
651
654
  }), e.bundledResources?.length && n.push({
652
655
  label: t.bundledResourcesLabel,
653
- value: it(e.bundledResources)
656
+ value: pt(e.bundledResources)
654
657
  }), n.length === 0 ? null : {
655
658
  title: t.specificationSectionTitle,
656
659
  specs: n
657
660
  };
658
- }, ot = (e) => e.filter((e) => e.nodeType === E.Item), st = (t, n) => {
659
- let r = e(n), i = r ? `${r}/files` : "files";
660
- return ot(t).find((t) => {
661
- let n = e(t.path);
661
+ }, ht = (e) => e.filter((e) => e.nodeType === M.Item), gt = (e, n) => {
662
+ let r = t(n), i = r ? `${r}/files` : "files";
663
+ return ht(e).find((e) => {
664
+ let n = t(e.path);
662
665
  return n === "SKILL.md" || n === "files/SKILL.md" || n === `${i}/SKILL.md`;
663
666
  })?.path ?? "SKILL.md";
664
- }, ct = (t, n) => {
665
- let r = e(t), i = e(n), a = i ? `${i}/files` : "files";
667
+ }, _t = (e, n) => {
668
+ let r = t(e), i = t(n), a = i ? `${i}/files` : "files";
666
669
  return r === "" || r === "files" || r === a ? null : r.startsWith(`${a}/`) ? r.slice(a.length + 1) : r.startsWith("files/") ? r.slice(6) : r;
667
- }, X = (e, t) => ct(e, t), lt = (e, t, n, r) => {
668
- let i = [], a = at(n, r);
670
+ }, Y = (e, t) => _t(e, t), vt = (e, t, n, r) => {
671
+ let i = [], a = mt(n, r);
669
672
  a != null && i.push(a);
670
673
  let o = [];
671
674
  return e?.author && o.push({
@@ -673,26 +676,26 @@ var re = (e) => ({
673
676
  value: e.author
674
677
  }), o.push({
675
678
  label: r.updatedLabel,
676
- value: e?.updatedAt ? s(e.updatedAt) : ""
679
+ value: e?.updatedAt ? p(e.updatedAt) : ""
677
680
  }), o.push({
678
681
  label: r.fileCountLabel,
679
- value: String(ot(t).length)
682
+ value: String(ht(t).length)
680
683
  }), i.push({
681
684
  title: r.detailsSectionTitle,
682
685
  specs: o
683
686
  }), { sections: i };
684
- }, Z = (e, t, n) => {
687
+ }, X = (e, t, n) => {
685
688
  if (e === "") return n;
686
689
  let r = t.get(e);
687
690
  if (r != null) return r.items;
688
- let i = e.split("/"), a = Z(i.slice(0, -1).join("/"), t, n), o = {
689
- type: x.Folder,
691
+ let i = e.split("/"), a = X(i.slice(0, -1).join("/"), t, n), o = {
692
+ type: E.Folder,
690
693
  id: e,
691
694
  name: i[i.length - 1],
692
695
  items: []
693
696
  };
694
697
  return t.set(e, o), a.push(o), o.items;
695
- }, ut = (e, t) => {
698
+ }, yt = (e, t) => {
696
699
  e.sort((e, n) => {
697
700
  if (t) {
698
701
  if (e.name === "SKILL.md") return -1;
@@ -700,75 +703,75 @@ var re = (e) => ({
700
703
  }
701
704
  return e.name.localeCompare(n.name);
702
705
  });
703
- for (let t of e) t.type === x.Folder && ut(t.items, !1);
704
- }, dt = (e, t) => {
706
+ for (let t of e) t.type === E.Folder && yt(t.items, !1);
707
+ }, bt = (e, t) => {
705
708
  let n = /* @__PURE__ */ new Map(), r = [];
706
709
  for (let i of e) {
707
- let e = ct(i.path, t);
710
+ let e = _t(i.path, t);
708
711
  if (e == null) continue;
709
- if (i.nodeType === E.Folder) {
710
- Z(e, n, r);
712
+ if (i.nodeType === M.Folder) {
713
+ X(e, n, r);
711
714
  continue;
712
715
  }
713
716
  let a = e.lastIndexOf("/");
714
- Z(a === -1 ? "" : e.slice(0, a), n, r).push({
715
- type: x.File,
717
+ X(a === -1 ? "" : e.slice(0, a), n, r).push({
718
+ type: E.File,
716
719
  id: i.path,
717
720
  name: i.name
718
721
  });
719
722
  }
720
- return ut(r, !0), r;
721
- }, Q = async (e) => {
723
+ return yt(r, !0), r;
724
+ }, Z = async (e) => {
722
725
  let t = Number(e.headers.get("content-length"));
723
726
  if (Number.isFinite(t) && t > 262144) return null;
724
727
  let n = await e.arrayBuffer();
725
728
  return n.byteLength > 262144 ? null : new Uint8Array(n);
726
- }, $ = async (e) => {
727
- let t = await Q(e);
729
+ }, Q = async (e) => {
730
+ let t = await Z(e);
728
731
  return t == null ? null : new TextDecoder().decode(t);
729
- }, ft = /* @__PURE__ */ function(e) {
732
+ }, xt = /* @__PURE__ */ function(e) {
730
733
  return e.Toolset = "toolset", e.Application = "application", e;
731
- }({}), pt = (e) => {
734
+ }({}), St = (e) => {
732
735
  try {
733
736
  return decodeURIComponent(e);
734
737
  } catch {
735
738
  return e;
736
739
  }
737
- }, mt = (e) => e.split("/").map((e) => encodeURIComponent(pt(e))).join("/"), ht = (e) => e.endsWith("/") ? e.slice(0, -1) : e, gt = (e, t) => `${ht(e)}/v1/toolset/${mt(t)}/mcp`, _t = (e, t) => `${ht(e)}/v1/deployments/${mt(t)}/mcp`, vt = {
738
- toolset: gt,
739
- application: _t
740
- }, yt = (e, t) => e === u.Toolset ? "toolset" : e === u.Agent && t === !0 ? "application" : null, bt = (e, t, n) => {
741
- let r = vt[n](e, t);
740
+ }, Ct = (e) => e.split("/").map((e) => encodeURIComponent(St(e))).join("/"), wt = (e) => e.endsWith("/") ? e.slice(0, -1) : e, Tt = (e, t) => `${wt(e)}/v1/toolset/${Ct(t)}/mcp`, Et = (e, t) => `${wt(e)}/v1/deployments/${Ct(t)}/mcp`, Dt = {
741
+ toolset: Tt,
742
+ application: Et
743
+ }, Ot = (e, t) => e === g.Toolset ? "toolset" : e === g.Agent && t === !0 ? "application" : null, kt = (e, t, n) => {
744
+ let r = Dt[n](e, t);
742
745
  return {
743
746
  resource: { endpointUrl: r },
744
747
  snippets: [{
745
- language: C.Curl,
748
+ language: O.Curl,
746
749
  code: `curl -X POST ${r} \\\n -H 'Content-Type: application/json' \\\n -H 'Api-Key: <key>' \\\n -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'`
747
750
  }]
748
751
  };
749
- }, xt = {
750
- [u.Model]: "model",
751
- [u.Toolset]: "toolset",
752
- [u.Agent]: "application",
753
- [u.Prompt]: "prompt",
754
- [u.Skill]: "skill"
755
- }, St = (e) => xt[e], Ct = (e) => ({
752
+ }, At = {
753
+ [g.Model]: "model",
754
+ [g.Toolset]: "toolset",
755
+ [g.Agent]: "application",
756
+ [g.Prompt]: "prompt",
757
+ [g.Skill]: "skill"
758
+ }, jt = (e) => At[e], Mt = (e) => ({
756
759
  version: e.version,
757
760
  publishedAt: Date.parse(e.publishedAt),
758
761
  folderPath: e.folderPath.split("/").filter(Boolean)
759
- }), wt = (e) => ({
762
+ }), Nt = (e) => ({
760
763
  publishedAt: Date.parse(e.publishedAt),
761
764
  folderPath: e.folderPath.split("/").filter(Boolean)
762
- }), Tt = (e, t) => e.filter((e) => t.has(e.type)), Et = (e, t) => t ? e.filter((e) => !e.isMyApp) : [...e], Dt = (e) => e.filter((e) => e.isUserFavorite), Ot = (e, t) => {
765
+ }), Pt = (e, t) => e.filter((e) => t.has(e.type)), Ft = (e, t) => t ? e.filter((e) => !e.isMyApp) : [...e], It = (e) => e.filter((e) => e.isUserFavorite), Lt = (e, t) => {
763
766
  let n = new Set(e.map((e) => e.type));
764
767
  return t.filter((e) => n.has(e));
765
- }, kt = (e, t) => {
768
+ }, Rt = (e, t) => {
766
769
  let n = new Set(t.flatMap((e) => e.topics));
767
770
  return new Set(Array.from(e).filter((e) => n.has(e)));
768
- }, At = /* @__PURE__ */ function(e) {
771
+ }, zt = /* @__PURE__ */ function(e) {
769
772
  return e.Deployment = "deployment", e.Prompt = "prompt", e;
770
- }({}), jt = async (e, t) => {
771
- if (e.type !== u.Prompt) return {
773
+ }({}), Bt = async (e, t) => {
774
+ if (e.type !== g.Prompt) return {
772
775
  kind: "deployment",
773
776
  id: e.id
774
777
  };
@@ -779,56 +782,156 @@ var re = (e) => ({
779
782
  name: e.name,
780
783
  description: e.description,
781
784
  content: n,
782
- hasParameters: d(n).length > 0
785
+ hasParameters: _(n).length > 0
783
786
  };
784
- }, Mt = (e) => (t) => {
785
- if (!qe(t)) return e.getPrompt(t.id);
786
- let n = i(t.id);
787
+ }, Vt = ({ deployments: t, isCustomAppsEnabled: n, isSchemaAppsEnabled: r, isHideCustomAppCreationEnabled: a, isToolsetsEnabled: o, isPromptsEnabled: s, quickAppSchemaId: c, urls: l, onNavigate: u, deletePrompt: d, deleteToolset: f, deleteSkill: p, deleteApplication: m, refetchPrompts: h, refetchToolsets: _, refetchSkills: v, refetchDeployments: y, onDeleteSuccess: b, labels: S, onNotify: w, triggerSkillArchivePicker: T }) => ({
788
+ handleEdit: x((e) => {
789
+ if (e.type === g.Prompt) {
790
+ u(l.buildPromptEditUrl(e.id));
791
+ return;
792
+ }
793
+ if (e.type === g.Skill) {
794
+ u(l.buildSkillEditUrl(e.id));
795
+ return;
796
+ }
797
+ if (e.type === g.Toolset) {
798
+ u(l.buildToolsetEditUrl(e.id));
799
+ return;
800
+ }
801
+ let r = i(t, e.id);
802
+ if (n && r != null && !r.applicationTypeSchemaId) {
803
+ u(l.buildCustomAppEditUrl(e.id));
804
+ return;
805
+ }
806
+ c && u(l.buildQuickAppEditUrl(c, e.id));
807
+ }, [
808
+ t,
809
+ n,
810
+ c,
811
+ u,
812
+ l
813
+ ]),
814
+ handleDelete: x(async (t) => {
815
+ try {
816
+ if (t.type === g.Prompt) await d(t.id), await h();
817
+ else if (t.type === g.Toolset) await f(t.id), await _();
818
+ else if (t.type === g.Skill) {
819
+ let e = J(t.id);
820
+ if (e == null) throw Error(`Invalid skill resource url: ${t.id}`);
821
+ await p(e.bucket, e.path), await v();
822
+ } else await m(t.id), await y();
823
+ b(t);
824
+ } catch (t) {
825
+ let { traceId: n } = await e(t);
826
+ throw w({
827
+ message: S.deleteError,
828
+ requestId: n
829
+ }), t;
830
+ }
831
+ }, [
832
+ d,
833
+ f,
834
+ p,
835
+ m,
836
+ _,
837
+ y,
838
+ h,
839
+ v,
840
+ b,
841
+ S,
842
+ w
843
+ ]),
844
+ createOptions: C(() => {
845
+ let e = [];
846
+ return c && r && !a && e.push({
847
+ key: "quick-app",
848
+ label: S.createQuickApp,
849
+ onClick: () => u(l.buildQuickAppCreateUrl(c))
850
+ }), o && e.push({
851
+ key: "toolset",
852
+ label: S.createToolset,
853
+ onClick: () => u(l.buildToolsetCreateUrl())
854
+ }), n && !a && e.push({
855
+ key: "custom-app",
856
+ label: S.createCustomApp,
857
+ onClick: () => u(l.buildCustomAppCreateUrl())
858
+ }), e.push({
859
+ key: "skill",
860
+ label: S.createSkill,
861
+ children: [{
862
+ key: "skill-write-instructions",
863
+ label: S.createSkillWriteInstructions,
864
+ onClick: () => u(l.buildSkillCreateUrl())
865
+ }, {
866
+ key: "skill-upload",
867
+ label: S.createSkillUpload,
868
+ onClick: T
869
+ }]
870
+ }), s && e.push({
871
+ key: "prompt",
872
+ label: S.createPrompt,
873
+ onClick: () => u(l.buildPromptCreateUrl())
874
+ }), e;
875
+ }, [
876
+ c,
877
+ u,
878
+ l,
879
+ s,
880
+ S,
881
+ r,
882
+ a,
883
+ o,
884
+ n,
885
+ T
886
+ ])
887
+ }), Ht = (e) => (t) => {
888
+ if (!rt(t)) return e.getPrompt(t.id);
889
+ let n = u(t.id);
787
890
  return e.getPublicPrompt(n?.path ?? t.id);
788
- }, Nt = ({ api: e, skills: t, isAdmin: n, dialCoreExternalUrl: r, skillOverviewLabels: i, promptOverviewLabels: a, deploymentLimitsLabels: o }) => {
789
- let s = v(null);
891
+ }, Ut = ({ api: e, skills: t, isAdmin: n, dialCoreExternalUrl: r, skillOverviewLabels: i, promptOverviewLabels: a, deploymentLimitsLabels: o }) => {
892
+ let s = w(null);
790
893
  return {
791
- onFetchDetails: h(async (d) => {
792
- if (d.type === u.Prompt) try {
793
- let t = await Mt(e)(d);
894
+ onFetchDetails: x(async (c) => {
895
+ if (c.type === g.Prompt) try {
896
+ let t = await Ht(e)(c);
794
897
  return {
795
898
  promptContent: { content: t.content },
796
- overview: J(t, a)
899
+ overview: K(t, a)
797
900
  };
798
901
  } catch {
799
902
  return;
800
903
  }
801
- if (d.type === u.Skill) {
802
- let n = et(d.id);
904
+ if (c.type === g.Skill) {
905
+ let n = J(c.id);
803
906
  if (n == null) return;
804
907
  let { bucket: r, path: a } = n;
805
908
  s.current = n;
806
- let [o, u] = await Promise.allSettled([e.downloadSkillFile(r, a, c).then($), e.listSkillFiles({
909
+ let [o, l] = await Promise.allSettled([e.downloadSkillFile(r, a, m).then(Q), e.listSkillFiles({
807
910
  bucket: r,
808
911
  path: a,
809
912
  filePath: "",
810
913
  recursive: !0
811
- })]), f = o.status === "fulfilled" && o.value != null ? l(o.value) : void 0, p = t.find((e) => e.url === d.id), m = u.status === "fulfilled" ? lt(p, u.value.items, f?.about, i) : void 0, h = u.status === "fulfilled" ? dt(u.value.items, a) : [], g = u.status === "fulfilled" ? st(u.value.items, a) : c;
812
- return f == null && m == null ? void 0 : {
813
- ...f == null ? {} : { promptContent: {
814
- content: f.body,
815
- ...f.description == null ? {} : { description: f.description },
816
- files: h,
914
+ })]), u = o.status === "fulfilled" && o.value != null ? h(o.value) : void 0, d = t.find((e) => e.url === c.id), f = l.status === "fulfilled" ? vt(d, l.value.items, u?.about, i) : void 0, p = l.status === "fulfilled" ? bt(l.value.items, a) : [], g = l.status === "fulfilled" ? gt(l.value.items, a) : m;
915
+ return u == null && f == null ? void 0 : {
916
+ ...u == null ? {} : { promptContent: {
917
+ content: u.body,
918
+ ...u.description == null ? {} : { description: u.description },
919
+ files: p,
817
920
  selectedFileId: g
818
921
  } },
819
- ...m == null ? {} : { overview: m }
922
+ ...f == null ? {} : { overview: f }
820
923
  };
821
924
  }
822
925
  try {
823
- let t = d.type === u.Model ? e.getDeploymentLimits(d.id).catch(() => void 0) : Promise.resolve(void 0), [i, a] = await Promise.all([e.getDeploymentDetails(d.id), t]), s = U(i), c = V(s), l = yt(d.type, d.supportsMcp), f = s.type === "MODEL" || s.type === "AGENT" ? k(r ?? "", d.id, {
926
+ let t = c.type === g.Model ? e.getDeploymentLimits(c.id).catch(() => void 0) : Promise.resolve(void 0), [i, a] = await Promise.all([e.getDeploymentDetails(c.id), t]), s = Ue(i), l = U(s), u = Ot(c.type, c.supportsMcp), d = s.type === "MODEL" || s.type === "AGENT" ? fe(r ?? "", c.id, {
824
927
  hasChatCompletion: s.data.capabilities?.hasChatCompletion,
825
928
  hasResponsesApi: s.data.capabilities?.hasResponsesApi
826
929
  }) : void 0;
827
930
  return {
828
- ...c,
829
- api: l == null ? f ?? c.api : bt(r ?? "", d.id, l),
830
- limits: P(a, o),
831
- credentials: s.type === "TOOLSET" ? B(d.id, s.data, n) : void 0
931
+ ...l,
932
+ api: u == null ? d ?? l.api : kt(r ?? "", c.id, u),
933
+ limits: R(a, o),
934
+ credentials: s.type === "TOOLSET" ? Pe(c.id, s.data, n) : void 0
832
935
  };
833
936
  } catch {
834
937
  return;
@@ -842,22 +945,22 @@ var re = (e) => ({
842
945
  a,
843
946
  i
844
947
  ]),
845
- onLoadContentFile: h(async (t) => {
948
+ onLoadContentFile: x(async (t) => {
846
949
  let n = s.current;
847
950
  if (n == null) return;
848
- let r = X(t, n.path);
951
+ let r = Y(t, n.path);
849
952
  if (r == null) return;
850
- let i = await $(await e.downloadSkillFile(n.bucket, n.path, r));
851
- if (i != null) return r === "SKILL.md" ? l(i).body : i;
953
+ let i = await Q(await e.downloadSkillFile(n.bucket, n.path, r));
954
+ if (i != null) return r === "SKILL.md" ? h(i).body : i;
852
955
  }, [e]),
853
- onLoadSkillDetailsFile: h(async (t) => {
956
+ onLoadSkillDetailsFile: x(async (t) => {
854
957
  let n = s.current;
855
958
  if (n == null) throw Error("No skill details are open");
856
- let r = X(t, n.path);
959
+ let r = Y(t, n.path);
857
960
  if (r == null) throw Error("A folder cannot be previewed");
858
961
  let i = await e.downloadSkillFile(n.bucket, n.path, r);
859
962
  if (!i.ok) throw Object.assign(/* @__PURE__ */ Error(`File preview failed with status ${i.status}`), { status: i.status });
860
- let a = await Q(i);
963
+ let a = await Z(i);
861
964
  if (a == null) throw Error("File exceeds the preview size limit");
862
965
  let o = i.headers.get("content-type")?.split(";")[0].trim() || void 0;
863
966
  return {
@@ -866,11 +969,147 @@ var re = (e) => ({
866
969
  };
867
970
  }, [e])
868
971
  };
869
- }, Pt = /* @__PURE__ */ function(e) {
972
+ }, $ = (e, t, n) => e === A.User ? n.user : t ? n.org : n.global, Wt = (e) => {
973
+ switch (e) {
974
+ case j.ApiKey: return s.ApiKey;
975
+ case j.OAuth: return s.OAuth;
976
+ case j.None:
977
+ case void 0: return s.None;
978
+ }
979
+ }, Gt = ({ isAdmin: t, toolsets: n, refetchToolsets: r, callbackPath: i, loginToolset: a, logoutToolset: s, getToolset: u, labels: d, onNotify: f }) => {
980
+ let p = x((e, t) => t === A.User ? e.credentials?.userStatus : e.credentials?.globalStatus, []), m = x((e, n) => {
981
+ let r = t && !!e.credentials?.isPublic;
982
+ if (e.credentials?.authenticationType === j.ApiKey) {
983
+ let t = $(n, r, d.apiKeyAddedSuccess);
984
+ f({
985
+ variant: N.Success,
986
+ title: d.apiKeyAddedSuccessTitle,
987
+ message: t({
988
+ name: e.name,
989
+ version: e.version
990
+ })
991
+ });
992
+ return;
993
+ }
994
+ let i = $(n, r, d.loginSuccess);
995
+ f({
996
+ variant: N.Success,
997
+ title: d.loginSuccessTitle,
998
+ message: i({
999
+ name: e.name,
1000
+ version: e.version
1001
+ })
1002
+ });
1003
+ }, [
1004
+ t,
1005
+ d,
1006
+ f
1007
+ ]), h = x((e, n) => {
1008
+ let r = t && !!e.credentials?.isPublic;
1009
+ if (e.credentials?.authenticationType === j.ApiKey) {
1010
+ let t = $(n, r, d.apiKeyDeletedSuccess);
1011
+ f({
1012
+ variant: N.Success,
1013
+ title: d.apiKeyDeletedSuccessTitle,
1014
+ message: t({
1015
+ name: e.name,
1016
+ version: e.version
1017
+ })
1018
+ });
1019
+ return;
1020
+ }
1021
+ let i = $(n, r, d.logoutSuccess);
1022
+ f({
1023
+ variant: N.Success,
1024
+ title: d.logoutSuccessTitle,
1025
+ message: i({
1026
+ name: e.name,
1027
+ version: e.version
1028
+ })
1029
+ });
1030
+ }, [
1031
+ t,
1032
+ d,
1033
+ f
1034
+ ]), { login: g } = c({
1035
+ callbackPath: i,
1036
+ loginToolset: a,
1037
+ logoutToolset: s,
1038
+ getToolset: u
1039
+ });
1040
+ return {
1041
+ handleLogin: x(async (e, t) => {
1042
+ let i = e.credentials?.authenticationType, a = t.level === A.User ? o.User : o.Global, s = n.find((t) => t.id === e.id);
1043
+ switch ((await g({
1044
+ toolsetId: e.id,
1045
+ credentialsLevel: a,
1046
+ authenticationType: Wt(i),
1047
+ apiKey: t.apiKey,
1048
+ oauthSettings: {
1049
+ clientId: s?.authSettings?.clientId,
1050
+ authorizationEndpoint: s?.authSettings?.authorizationEndpoint,
1051
+ scopes: s?.authSettings?.scopesSupported,
1052
+ codeChallenge: s?.authSettings?.codeChallenge,
1053
+ codeChallengeMethod: s?.authSettings?.codeChallengeMethod
1054
+ },
1055
+ isCurrentlyFailed: p(e, t.level) === k.Failed
1056
+ })).type) {
1057
+ case l.Success:
1058
+ m(e, t.level), await r();
1059
+ return;
1060
+ case l.PopupBlocked:
1061
+ f({
1062
+ variant: N.Error,
1063
+ message: d.popupBlockedError
1064
+ });
1065
+ return;
1066
+ case l.Failure:
1067
+ f({
1068
+ variant: N.Error,
1069
+ message: d.loginFailedError
1070
+ });
1071
+ return;
1072
+ case l.Cancelled: return;
1073
+ }
1074
+ }, [
1075
+ n,
1076
+ d,
1077
+ f,
1078
+ p,
1079
+ m,
1080
+ r,
1081
+ g
1082
+ ]),
1083
+ handleLogout: x(async (t, n) => {
1084
+ let i = n.level === A.User ? o.User : o.Global;
1085
+ try {
1086
+ let e = {
1087
+ url: t.id,
1088
+ credentialsLevel: i,
1089
+ authenticationType: t.credentials?.authenticationType
1090
+ };
1091
+ await s(t.id, e), h(t, n.level), await r();
1092
+ } catch (t) {
1093
+ let { traceId: n } = await e(t);
1094
+ f({
1095
+ variant: N.Error,
1096
+ message: d.logoutFailedError,
1097
+ requestId: n
1098
+ });
1099
+ }
1100
+ }, [
1101
+ s,
1102
+ d,
1103
+ f,
1104
+ h,
1105
+ r
1106
+ ])
1107
+ };
1108
+ }, Kt = /* @__PURE__ */ function(e) {
870
1109
  return e.Deployment = "deployment", e.Toolset = "toolset", e.Prompt = "prompt", e.Skill = "skill", e;
871
- }({}), Ft = ({ loadFavorites: e, updateFavorite: t }) => {
872
- let [n, r] = y(/* @__PURE__ */ new Set()), [i, a] = y(!0);
873
- g(() => {
1110
+ }({}), qt = ({ loadFavorites: e, updateFavorite: t }) => {
1111
+ let [n, r] = T(/* @__PURE__ */ new Set()), [i, a] = T(!0);
1112
+ S(() => {
874
1113
  let t = { value: !1 };
875
1114
  return (async () => {
876
1115
  try {
@@ -888,7 +1127,7 @@ var re = (e) => ({
888
1127
  t.value = !0;
889
1128
  };
890
1129
  }, [e]);
891
- let o = h(async (e, n, i = "deployment") => {
1130
+ let o = x(async (e, n, i = "deployment") => {
892
1131
  r((t) => {
893
1132
  let r = new Set(t);
894
1133
  return n ? r.add(e) : r.delete(e), r;
@@ -902,7 +1141,7 @@ var re = (e) => ({
902
1141
  }), t;
903
1142
  }
904
1143
  }, [t]);
905
- return _(() => ({
1144
+ return C(() => ({
906
1145
  favoriteIds: n,
907
1146
  isLoading: i,
908
1147
  toggleFavorite: o
@@ -911,24 +1150,24 @@ var re = (e) => ({
911
1150
  i,
912
1151
  o
913
1152
  ]);
914
- }, It = "Production", Lt = 50, Rt = (e, n, r) => {
915
- let i = e.get(n);
916
- return i == null ? [] : i.filter((e) => e.nodeType === ee.Folder).map((i) => {
917
- let a = t(i.name), o = [...r, a], s = `${n}${i.name}/`;
1153
+ }, Jt = "Production", Yt = 50, Xt = (e, t, r) => {
1154
+ let i = e.get(t);
1155
+ return i == null ? [] : i.filter((e) => e.nodeType === te.Folder).map((i) => {
1156
+ let a = n(i.name), o = [...r, a], s = `${t}${i.name}/`;
918
1157
  return {
919
1158
  path: o,
920
1159
  name: a,
921
- children: e.has(s) ? Rt(e, s, o) : void 0
1160
+ children: e.has(s) ? Xt(e, s, o) : void 0
922
1161
  };
923
1162
  });
924
- }, zt = ({ listPublicFiles: e, rememberedFolderKeys: t, onRememberedFolderKeysChange: n }) => {
925
- let [r, i] = y(() => /* @__PURE__ */ new Map()), [a, o] = y(() => /* @__PURE__ */ new Set()), [s, c] = y(() => /* @__PURE__ */ new Set()), [l, u] = y([]), d = _(() => {
1163
+ }, Zt = ({ listPublicFiles: e, rememberedFolderKeys: t, onRememberedFolderKeysChange: n }) => {
1164
+ let [r, i] = T(() => /* @__PURE__ */ new Map()), [a, o] = T(() => /* @__PURE__ */ new Set()), [s, c] = T(() => /* @__PURE__ */ new Set()), [l, u] = T([]), d = C(() => {
926
1165
  let e = /* @__PURE__ */ new Set();
927
1166
  return a.forEach((t) => {
928
1167
  let n = t ? `${t}/` : "";
929
1168
  r.has(n) && e.add(t);
930
1169
  }), e;
931
- }, [a, r]), f = h(async (t) => {
1170
+ }, [a, r]), f = x(async (t) => {
932
1171
  c((e) => new Set(e).add(t));
933
1172
  try {
934
1173
  let { items: n } = await e({ path: t || void 0 });
@@ -940,10 +1179,10 @@ var re = (e) => ({
940
1179
  });
941
1180
  }
942
1181
  }, [e]);
943
- g(() => {
1182
+ S(() => {
944
1183
  f("");
945
1184
  }, []);
946
- let p = h((e) => {
1185
+ let p = x((e) => {
947
1186
  o(e), e.forEach((e) => {
948
1187
  let t = `${e}/`;
949
1188
  !r.has(t) && !s.has(t) && f(t);
@@ -952,17 +1191,17 @@ var re = (e) => ({
952
1191
  r,
953
1192
  s,
954
1193
  f
955
- ]), m = h((e, t) => {
956
- let n = ne([...e, t]);
1194
+ ]), m = x((e, t) => {
1195
+ let n = ie([...e, t]);
957
1196
  return u((e) => e.includes(n) ? e : [...e, n]), Promise.resolve();
958
- }, []), v = h((e) => {
959
- let r = ne(e), i = Array.isArray(t) ? t : [];
960
- !r || i.includes(r) || n?.([r, ...i].slice(0, Lt));
961
- }, [t, n]), b = h((e) => !e.includes(It), []);
1197
+ }, []), h = x((e) => {
1198
+ let r = ie(e), i = Array.isArray(t) ? t : [];
1199
+ !r || i.includes(r) || n?.([r, ...i].slice(0, Yt));
1200
+ }, [t, n]), g = x((e) => !e.includes(Jt), []);
962
1201
  return {
963
- folderItems: _(() => {
1202
+ folderItems: C(() => {
964
1203
  let e = Array.isArray(t) ? t.filter((e) => typeof e == "string") : [];
965
- return te(Rt(r, "", []), [...e.map(D), ...l.map(D)]);
1204
+ return re(Xt(r, "", []), [...e.map(ne), ...l.map(ne)]);
966
1205
  }, [
967
1206
  r,
968
1207
  t,
@@ -973,14 +1212,14 @@ var re = (e) => ({
973
1212
  loadingPaths: s,
974
1213
  onExpandedPathsChange: p,
975
1214
  onCreatePublishFolder: m,
976
- rememberPublishFolder: v,
977
- hasPublishWriteAccess: b
1215
+ rememberPublishFolder: h,
1216
+ hasPublishWriteAccess: g
978
1217
  };
979
- }, Bt = /* @__PURE__ */ function(e) {
1218
+ }, Qt = /* @__PURE__ */ function(e) {
980
1219
  return e.Forbidden = "forbidden", e.Generic = "generic", e;
981
- }({}), Vt = ({ fileId: e, onLoadFile: t }) => {
982
- let [n, r] = y(!1), [i, a] = y(null), [o, s] = y(null);
983
- return g(() => {
1220
+ }({}), $t = ({ fileId: e, onLoadFile: t }) => {
1221
+ let [n, r] = T(!1), [i, a] = T(null), [o, s] = T(null);
1222
+ return S(() => {
984
1223
  let n = !1;
985
1224
  return r(!0), a(null), s(null), (async () => {
986
1225
  try {
@@ -1002,4 +1241,4 @@ var re = (e) => ({
1002
1241
  };
1003
1242
  };
1004
1243
  //#endregion
1005
- export { $e as A, We as B, lt as C, X as D, $ as E, J as F, be as G, U as H, qe as I, ce as J, P as K, Je as L, Ze as M, Y as N, st as O, et as P, re as Q, Ue as R, dt as S, Q as T, V as U, Ve as V, B as W, O as X, k as Y, ie as Z, ft as _, Ft as a, gt as b, jt as c, Tt as d, Et as f, St as g, Ct as h, Pt as i, Qe as j, Ye as k, Ot as l, wt as m, Vt as n, Nt as o, kt as p, A as q, zt as r, At as s, Bt as t, Dt as u, _t as v, rt as w, yt as x, bt as y, Re as z };
1244
+ export { oe as $, gt as A, $e as B, Ot as C, Z as D, ft as E, q as F, U as G, et as H, J as I, R as J, Pe as K, K as L, lt as M, ct as N, Q as O, st as P, de as Q, rt as R, Tt as S, vt as T, Ze as U, Ke as V, Ue as W, ue as X, P as Y, fe as Z, Mt as _, qt as a, Et as b, Vt as c, Lt as d, ae as et, It as f, Nt as g, Rt as h, Kt as i, at as j, Y as k, zt as l, Ft as m, $t as n, Gt as o, Pt as p, we as q, Zt as r, Ut as s, Qt as t, Bt as u, jt as v, bt as w, kt as x, xt as y, it as z };