@datatechsolutions/ui 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/contracts.d.mts +31 -3
- package/dist/astrlabe/contracts.d.ts +31 -3
- package/dist/astrlabe/index.js +115 -115
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/utils.js +9 -9
- package/dist/astrlabe/utils.mjs +2 -2
- package/dist/astrlabe/workflow-canvas.js +3 -3
- package/dist/astrlabe/workflow-canvas.mjs +2 -2
- package/dist/{chunk-QYA53LUF.mjs → chunk-2WXRRQM3.mjs} +21 -4
- package/dist/chunk-2WXRRQM3.mjs.map +1 -0
- package/dist/{chunk-C3H4FM4A.js → chunk-72SWXOD5.js} +15 -2
- package/dist/chunk-72SWXOD5.js.map +1 -0
- package/dist/{chunk-H2D2CRTD.mjs → chunk-BR2GAZKG.mjs} +5 -5
- package/dist/{chunk-H2D2CRTD.mjs.map → chunk-BR2GAZKG.mjs.map} +1 -1
- package/dist/{chunk-NJS2YC3J.js → chunk-DJDZIRM6.js} +12 -2
- package/dist/chunk-DJDZIRM6.js.map +1 -0
- package/dist/{chunk-5W7L7BT7.mjs → chunk-G7JQ4OCE.mjs} +15 -2
- package/dist/chunk-G7JQ4OCE.mjs.map +1 -0
- package/dist/{chunk-YIB2YAM5.mjs → chunk-GIQXB3BG.mjs} +3 -3
- package/dist/{chunk-YIB2YAM5.mjs.map → chunk-GIQXB3BG.mjs.map} +1 -1
- package/dist/{chunk-RL35XATZ.js → chunk-IJAKZHXX.js} +82 -65
- package/dist/chunk-IJAKZHXX.js.map +1 -0
- package/dist/{chunk-U7XM3N7F.mjs → chunk-LEXBTVGM.mjs} +12 -2
- package/dist/chunk-LEXBTVGM.mjs.map +1 -0
- package/dist/{chunk-SU3YPWFW.js → chunk-MWPTSBAI.js} +4 -4
- package/dist/{chunk-SU3YPWFW.js.map → chunk-MWPTSBAI.js.map} +1 -1
- package/dist/{chunk-EFOXN3LC.js → chunk-NJFRJ6YD.js} +279 -19
- package/dist/chunk-NJFRJ6YD.js.map +1 -0
- package/dist/{chunk-YV72JM4B.mjs → chunk-O6M3KDGT.mjs} +3 -3
- package/dist/{chunk-YV72JM4B.mjs.map → chunk-O6M3KDGT.mjs.map} +1 -1
- package/dist/{chunk-RGI74SQH.js → chunk-OCELRSLO.js} +4 -4
- package/dist/{chunk-RGI74SQH.js.map → chunk-OCELRSLO.js.map} +1 -1
- package/dist/{chunk-IRT4T3CU.mjs → chunk-PCYL4MII.mjs} +274 -14
- package/dist/chunk-PCYL4MII.mjs.map +1 -0
- package/dist/{chunk-Y6AEE56Q.js → chunk-ZL6C2ZAF.js} +29 -29
- package/dist/{chunk-Y6AEE56Q.js.map → chunk-ZL6C2ZAF.js.map} +1 -1
- package/dist/platform/agents-workspace.js +6 -6
- package/dist/platform/agents-workspace.mjs +5 -5
- package/dist/platform/index.js +23 -23
- package/dist/platform/index.mjs +9 -9
- package/dist/platform/pages/index.js +12 -12
- package/dist/platform/pages/index.mjs +6 -6
- package/dist/platform/workflow-canvas-shell.js +4 -4
- package/dist/platform/workflow-canvas-shell.mjs +3 -3
- package/package.json +1 -1
- package/dist/chunk-5W7L7BT7.mjs.map +0 -1
- package/dist/chunk-C3H4FM4A.js.map +0 -1
- package/dist/chunk-EFOXN3LC.js.map +0 -1
- package/dist/chunk-IRT4T3CU.mjs.map +0 -1
- package/dist/chunk-NJS2YC3J.js.map +0 -1
- package/dist/chunk-QYA53LUF.mjs.map +0 -1
- package/dist/chunk-RL35XATZ.js.map +0 -1
- package/dist/chunk-U7XM3N7F.mjs.map +0 -1
package/dist/platform/index.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkOCELRSLO_js = require('../chunk-OCELRSLO.js');
|
|
5
5
|
var chunkKR2X2WHJ_js = require('../chunk-KR2X2WHJ.js');
|
|
6
6
|
var chunkTVMLV675_js = require('../chunk-TVMLV675.js');
|
|
7
|
-
var chunkZM5MVWIT_js = require('../chunk-ZM5MVWIT.js');
|
|
8
7
|
var chunkP4RVGMZL_js = require('../chunk-P4RVGMZL.js');
|
|
8
|
+
var chunkZM5MVWIT_js = require('../chunk-ZM5MVWIT.js');
|
|
9
|
+
var chunkMWPTSBAI_js = require('../chunk-MWPTSBAI.js');
|
|
9
10
|
var chunkW5OEBO6E_js = require('../chunk-W5OEBO6E.js');
|
|
10
11
|
var chunkRXZNACMI_js = require('../chunk-RXZNACMI.js');
|
|
11
12
|
var chunkAOUUZ52N_js = require('../chunk-AOUUZ52N.js');
|
|
12
13
|
var chunkJSNRCYSO_js = require('../chunk-JSNRCYSO.js');
|
|
13
14
|
var chunkHDCUWUNH_js = require('../chunk-HDCUWUNH.js');
|
|
14
|
-
var
|
|
15
|
-
var chunkY6AEE56Q_js = require('../chunk-Y6AEE56Q.js');
|
|
15
|
+
var chunkZL6C2ZAF_js = require('../chunk-ZL6C2ZAF.js');
|
|
16
16
|
require('../chunk-TIJJHW2Z.js');
|
|
17
17
|
var chunk3JJWPOK6_js = require('../chunk-3JJWPOK6.js');
|
|
18
18
|
var chunkHZ4LOVHM_js = require('../chunk-HZ4LOVHM.js');
|
|
19
19
|
var chunk6PBTB5ZX_js = require('../chunk-6PBTB5ZX.js');
|
|
20
|
-
require('../chunk-
|
|
20
|
+
require('../chunk-IJAKZHXX.js');
|
|
21
21
|
require('../chunk-55H6WZQP.js');
|
|
22
|
-
require('../chunk-
|
|
23
|
-
require('../chunk-
|
|
22
|
+
require('../chunk-DJDZIRM6.js');
|
|
23
|
+
require('../chunk-NJFRJ6YD.js');
|
|
24
24
|
var chunkI2NZGVBG_js = require('../chunk-I2NZGVBG.js');
|
|
25
25
|
require('../chunk-UZ3CMNUJ.js');
|
|
26
26
|
var chunkYXN2K77G_js = require('../chunk-YXN2K77G.js');
|
|
@@ -28,7 +28,7 @@ var chunkS7KHTUHA_js = require('../chunk-S7KHTUHA.js');
|
|
|
28
28
|
var chunkF54Q2YJY_js = require('../chunk-F54Q2YJY.js');
|
|
29
29
|
require('../chunk-FAGDZEKM.js');
|
|
30
30
|
require('../chunk-P4YYEM4B.js');
|
|
31
|
-
require('../chunk-
|
|
31
|
+
require('../chunk-72SWXOD5.js');
|
|
32
32
|
var jsxRuntime = require('react/jsx-runtime');
|
|
33
33
|
var react = require('react');
|
|
34
34
|
var client = require('@datatechsolutions/windsock/client');
|
|
@@ -229,7 +229,7 @@ function UsersSettingsSection({ normalizeRole }) {
|
|
|
229
229
|
void reload();
|
|
230
230
|
}, [currentOrganizationId]);
|
|
231
231
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
232
|
-
|
|
232
|
+
chunkMWPTSBAI_js.UsersPageView,
|
|
233
233
|
{
|
|
234
234
|
labels: {
|
|
235
235
|
title: t("title"),
|
|
@@ -272,7 +272,7 @@ function RolesSettingsSection({ roleDefinitions, roleOptions, normalizeRole }) {
|
|
|
272
272
|
chunk6PBTB5ZX_js.listUsers({ organizationId: currentOrganizationId }).then((result) => setUsers(result.items.map((row) => mapAdminUser(row, normalizeRole)))).catch((error) => notifyError(error.message));
|
|
273
273
|
}, [currentOrganizationId, notifyError, normalizeRole]);
|
|
274
274
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
275
|
-
|
|
275
|
+
chunkMWPTSBAI_js.RolesPageView,
|
|
276
276
|
{
|
|
277
277
|
roleDefinitions,
|
|
278
278
|
roleOptions,
|
|
@@ -5263,7 +5263,7 @@ function KoriAssistantDemo({ locale, hideHeader } = {}) {
|
|
|
5263
5263
|
|
|
5264
5264
|
Object.defineProperty(exports, "WorkflowCanvasShell", {
|
|
5265
5265
|
enumerable: true,
|
|
5266
|
-
get: function () { return
|
|
5266
|
+
get: function () { return chunkOCELRSLO_js.WorkflowCanvasShell; }
|
|
5267
5267
|
});
|
|
5268
5268
|
Object.defineProperty(exports, "AdminOrganizationForm", {
|
|
5269
5269
|
enumerable: true,
|
|
@@ -5329,13 +5329,17 @@ Object.defineProperty(exports, "VerifyEmail", {
|
|
|
5329
5329
|
enumerable: true,
|
|
5330
5330
|
get: function () { return chunkTVMLV675_js.VerifyEmail; }
|
|
5331
5331
|
});
|
|
5332
|
+
Object.defineProperty(exports, "UpgradePrompt", {
|
|
5333
|
+
enumerable: true,
|
|
5334
|
+
get: function () { return chunkP4RVGMZL_js.UpgradePrompt; }
|
|
5335
|
+
});
|
|
5332
5336
|
Object.defineProperty(exports, "ImpersonationBanner", {
|
|
5333
5337
|
enumerable: true,
|
|
5334
5338
|
get: function () { return chunkZM5MVWIT_js.ImpersonationBanner; }
|
|
5335
5339
|
});
|
|
5336
|
-
Object.defineProperty(exports, "
|
|
5340
|
+
Object.defineProperty(exports, "WorkflowWorkspace", {
|
|
5337
5341
|
enumerable: true,
|
|
5338
|
-
get: function () { return
|
|
5342
|
+
get: function () { return chunkMWPTSBAI_js.WorkflowWorkspace; }
|
|
5339
5343
|
});
|
|
5340
5344
|
Object.defineProperty(exports, "PlatformSettings", {
|
|
5341
5345
|
enumerable: true,
|
|
@@ -5397,33 +5401,29 @@ Object.defineProperty(exports, "BillingPanel", {
|
|
|
5397
5401
|
enumerable: true,
|
|
5398
5402
|
get: function () { return chunkHDCUWUNH_js.BillingPanel; }
|
|
5399
5403
|
});
|
|
5400
|
-
Object.defineProperty(exports, "WorkflowWorkspace", {
|
|
5401
|
-
enumerable: true,
|
|
5402
|
-
get: function () { return chunkSU3YPWFW_js.WorkflowWorkspace; }
|
|
5403
|
-
});
|
|
5404
5404
|
Object.defineProperty(exports, "AgentsWorkspace", {
|
|
5405
5405
|
enumerable: true,
|
|
5406
|
-
get: function () { return
|
|
5406
|
+
get: function () { return chunkZL6C2ZAF_js.AgentsWorkspace; }
|
|
5407
5407
|
});
|
|
5408
5408
|
Object.defineProperty(exports, "applyWorkflowExecutionEventToStore", {
|
|
5409
5409
|
enumerable: true,
|
|
5410
|
-
get: function () { return
|
|
5410
|
+
get: function () { return chunkZL6C2ZAF_js.applyWorkflowExecutionEventToStore; }
|
|
5411
5411
|
});
|
|
5412
5412
|
Object.defineProperty(exports, "resetWorkflowRunPresentation", {
|
|
5413
5413
|
enumerable: true,
|
|
5414
|
-
get: function () { return
|
|
5414
|
+
get: function () { return chunkZL6C2ZAF_js.resetWorkflowRunPresentation; }
|
|
5415
5415
|
});
|
|
5416
5416
|
Object.defineProperty(exports, "useRunEvents", {
|
|
5417
5417
|
enumerable: true,
|
|
5418
|
-
get: function () { return
|
|
5418
|
+
get: function () { return chunkZL6C2ZAF_js.useRunEvents; }
|
|
5419
5419
|
});
|
|
5420
5420
|
Object.defineProperty(exports, "useWorkflowExecution", {
|
|
5421
5421
|
enumerable: true,
|
|
5422
|
-
get: function () { return
|
|
5422
|
+
get: function () { return chunkZL6C2ZAF_js.useWorkflowExecution; }
|
|
5423
5423
|
});
|
|
5424
5424
|
Object.defineProperty(exports, "useWorkflowRunPresentation", {
|
|
5425
5425
|
enumerable: true,
|
|
5426
|
-
get: function () { return
|
|
5426
|
+
get: function () { return chunkZL6C2ZAF_js.useWorkflowRunPresentation; }
|
|
5427
5427
|
});
|
|
5428
5428
|
Object.defineProperty(exports, "PlatformAppShell", {
|
|
5429
5429
|
enumerable: true,
|
package/dist/platform/index.mjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { WorkflowCanvasShell } from '../chunk-
|
|
2
|
+
export { WorkflowCanvasShell } from '../chunk-GIQXB3BG.mjs';
|
|
3
3
|
export { AdminOrganizationForm, AdminOrganizationList, AdminPermissionList, AdminUserForm, AdminUserList } from '../chunk-B67DP7MI.mjs';
|
|
4
4
|
export { ConsentScreen, ForgotPassword, MfaChallenge, PasswordlessSignIn, ResetPassword, SignIn, SignUp, SsoConnectorList, SsoEmailForm, UserButton, VerifyEmail } from '../chunk-MVBIAXVN.mjs';
|
|
5
|
-
export { ImpersonationBanner } from '../chunk-OL73LBX5.mjs';
|
|
6
5
|
export { UpgradePrompt } from '../chunk-DJ33CSGJ.mjs';
|
|
6
|
+
export { ImpersonationBanner } from '../chunk-OL73LBX5.mjs';
|
|
7
|
+
import { UsersPageView, RolesPageView } from '../chunk-O6M3KDGT.mjs';
|
|
8
|
+
export { WorkflowWorkspace } from '../chunk-O6M3KDGT.mjs';
|
|
7
9
|
export { PlatformSettings } from '../chunk-UDDZTTLO.mjs';
|
|
8
10
|
export { AdminOrganizationDetail } from '../chunk-IRPS5UCS.mjs';
|
|
9
11
|
export { LinkedAccountsTabContent, MfaManage, MfaSetup, ProfileTabContent, SecurityTabContent, SessionsTabContent, UserProfile } from '../chunk-LEKZUS6N.mjs';
|
|
10
12
|
export { AuthLayout, BackupCodeGrid, OtpInput, PasswordStrengthMeter, SocialLoginButtons } from '../chunk-5GDKCFM5.mjs';
|
|
11
13
|
export { BillingPanel } from '../chunk-R4TQWXNG.mjs';
|
|
12
|
-
|
|
13
|
-
export { WorkflowWorkspace } from '../chunk-YV72JM4B.mjs';
|
|
14
|
-
export { AgentsWorkspace, applyWorkflowExecutionEventToStore, resetWorkflowRunPresentation, useRunEvents, useWorkflowExecution, useWorkflowRunPresentation } from '../chunk-H2D2CRTD.mjs';
|
|
14
|
+
export { AgentsWorkspace, applyWorkflowExecutionEventToStore, resetWorkflowRunPresentation, useRunEvents, useWorkflowExecution, useWorkflowRunPresentation } from '../chunk-BR2GAZKG.mjs';
|
|
15
15
|
import '../chunk-5RM6NGZ6.mjs';
|
|
16
16
|
import { usePlatformState } from '../chunk-3ZUMJTDT.mjs';
|
|
17
17
|
export { PlatformAppShell, PlatformStateProvider, usePlatformState } from '../chunk-3ZUMJTDT.mjs';
|
|
18
18
|
export { createPlatformRbac } from '../chunk-ZJPNP2YW.mjs';
|
|
19
19
|
import { createUser, listUsers, addOrganizationMember } from '../chunk-UHHPBREK.mjs';
|
|
20
20
|
export { addOrganizationDomain, addOrganizationMember, createOrganization, createOrganizationInvitation, createPermission, createSecret, createUser, deleteOrganization, deletePermission, deleteUser, disableSecret, getSecret, getUserPermissions, listOrganizationDomains, listOrganizationInvitations, listOrganizationMembers, listOrganizations, listPermissions, listSecrets, listUsers, removeOrganizationMember, resetUserPassword, rotateSecret, setUserPermissions, setWindsockAdminClient, updateOrganization, updatePermission, updateUser, verifyOrganizationDomain } from '../chunk-UHHPBREK.mjs';
|
|
21
|
-
import '../chunk-
|
|
21
|
+
import '../chunk-2WXRRQM3.mjs';
|
|
22
22
|
import '../chunk-JB6RNAD2.mjs';
|
|
23
|
-
import '../chunk-
|
|
24
|
-
import '../chunk-
|
|
23
|
+
import '../chunk-LEXBTVGM.mjs';
|
|
24
|
+
import '../chunk-PCYL4MII.mjs';
|
|
25
25
|
import { Select, Button, filterByPermission, AppNavigation, GlassModal, IconButton, useNotifications, Textarea, DepartmentAssistantDemo, koriAssistantTheme, logisticsWorkflow, marketingWorkflow, manufacturingWorkflow, supportWorkflow, lgpdWorkflow, payrollWorkflow, inventoryWorkflow, financialWorkflow, salesWorkflow, customerAnalyticsWorkflow } from '../chunk-JN6IL6OH.mjs';
|
|
26
26
|
import '../chunk-D2JF6C3E.mjs';
|
|
27
27
|
import { useTranslations, useLocale } from '../chunk-7VJ7CMMT.mjs';
|
|
@@ -29,7 +29,7 @@ import { usePathname, useRouter } from '../chunk-QWG2FMUN.mjs';
|
|
|
29
29
|
import { listModelProviderConnections, listWorkflowTemplates, createWorkflowFromTemplate, aiGenerateWorkflow, createWorkflow, saveWorkflowDraft } from '../chunk-ZV5EZXXO.mjs';
|
|
30
30
|
import '../chunk-SYNVNTLJ.mjs';
|
|
31
31
|
import '../chunk-OZNTQROP.mjs';
|
|
32
|
-
import '../chunk-
|
|
32
|
+
import '../chunk-G7JQ4OCE.mjs';
|
|
33
33
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
34
34
|
import { useState, useMemo, useCallback, useEffect } from 'react';
|
|
35
35
|
import { useAuth, usePlatformPreferences } from '@datatechsolutions/windsock/client';
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
|
|
5
|
-
var
|
|
5
|
+
var chunkMWPTSBAI_js = require('../../chunk-MWPTSBAI.js');
|
|
6
6
|
var chunkTIJJHW2Z_js = require('../../chunk-TIJJHW2Z.js');
|
|
7
|
-
var
|
|
7
|
+
var chunkIJAKZHXX_js = require('../../chunk-IJAKZHXX.js');
|
|
8
8
|
require('../../chunk-55H6WZQP.js');
|
|
9
|
-
require('../../chunk-
|
|
10
|
-
require('../../chunk-
|
|
9
|
+
require('../../chunk-DJDZIRM6.js');
|
|
10
|
+
require('../../chunk-NJFRJ6YD.js');
|
|
11
11
|
var chunkI2NZGVBG_js = require('../../chunk-I2NZGVBG.js');
|
|
12
12
|
require('../../chunk-UZ3CMNUJ.js');
|
|
13
13
|
require('../../chunk-YXN2K77G.js');
|
|
@@ -15,7 +15,7 @@ var chunkS7KHTUHA_js = require('../../chunk-S7KHTUHA.js');
|
|
|
15
15
|
require('../../chunk-F54Q2YJY.js');
|
|
16
16
|
require('../../chunk-FAGDZEKM.js');
|
|
17
17
|
require('../../chunk-P4YYEM4B.js');
|
|
18
|
-
require('../../chunk-
|
|
18
|
+
require('../../chunk-72SWXOD5.js');
|
|
19
19
|
var outline = require('@heroicons/react/24/outline');
|
|
20
20
|
var jsxRuntime = require('react/jsx-runtime');
|
|
21
21
|
var react = require('react');
|
|
@@ -933,7 +933,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
|
|
|
933
933
|
{
|
|
934
934
|
title: labels.createTitle,
|
|
935
935
|
saveLabel: labels.save,
|
|
936
|
-
initial:
|
|
936
|
+
initial: chunkIJAKZHXX_js.defaultRuleForm(),
|
|
937
937
|
onClose: () => setCreateOpen(false),
|
|
938
938
|
onSubmit: (value) => {
|
|
939
939
|
onCreate(value);
|
|
@@ -977,12 +977,12 @@ function RuleEditor({
|
|
|
977
977
|
event.preventDefault();
|
|
978
978
|
onSubmit(value);
|
|
979
979
|
},
|
|
980
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
980
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkIJAKZHXX_js.RuleForm, { value, onChange: setValue })
|
|
981
981
|
}
|
|
982
982
|
);
|
|
983
983
|
}
|
|
984
984
|
function ruleToFormValue(rule) {
|
|
985
|
-
const base =
|
|
985
|
+
const base = chunkIJAKZHXX_js.defaultRuleForm();
|
|
986
986
|
const rawCondition = rule.condition ?? rule.conditions;
|
|
987
987
|
const rawAction = pickAction(rule);
|
|
988
988
|
return {
|
|
@@ -1386,7 +1386,7 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1386
1386
|
] }),
|
|
1387
1387
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1388
1388
|
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
|
|
1389
|
-
selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1389
|
+
selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMWPTSBAI_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Text, { children: labels.empty })
|
|
1390
1390
|
] })
|
|
1391
1391
|
] });
|
|
1392
1392
|
}
|
|
@@ -1500,7 +1500,7 @@ function RunTimelinePageView({ labels, entries, loading, runId }) {
|
|
|
1500
1500
|
{
|
|
1501
1501
|
hero,
|
|
1502
1502
|
content: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1503
|
-
|
|
1503
|
+
chunkIJAKZHXX_js.ExecutionTimelinePanel,
|
|
1504
1504
|
{
|
|
1505
1505
|
entries,
|
|
1506
1506
|
labels
|
|
@@ -2026,11 +2026,11 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2026
2026
|
|
|
2027
2027
|
Object.defineProperty(exports, "RolesPageView", {
|
|
2028
2028
|
enumerable: true,
|
|
2029
|
-
get: function () { return
|
|
2029
|
+
get: function () { return chunkMWPTSBAI_js.RolesPageView; }
|
|
2030
2030
|
});
|
|
2031
2031
|
Object.defineProperty(exports, "UsersPageView", {
|
|
2032
2032
|
enumerable: true,
|
|
2033
|
-
get: function () { return
|
|
2033
|
+
get: function () { return chunkMWPTSBAI_js.UsersPageView; }
|
|
2034
2034
|
});
|
|
2035
2035
|
Object.defineProperty(exports, "DIALECT_CATEGORIES", {
|
|
2036
2036
|
enumerable: true,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { adaptWorkflowGraphToUi, formatDurationMs } from '../../chunk-UQXVCVAN.mjs';
|
|
3
|
-
import { WorkflowWorkspace } from '../../chunk-
|
|
4
|
-
export { RolesPageView, UsersPageView } from '../../chunk-
|
|
3
|
+
import { WorkflowWorkspace } from '../../chunk-O6M3KDGT.mjs';
|
|
4
|
+
export { RolesPageView, UsersPageView } from '../../chunk-O6M3KDGT.mjs';
|
|
5
5
|
import { DatasourceModal, findCategory, DIALECT_CATEGORIES } from '../../chunk-5RM6NGZ6.mjs';
|
|
6
6
|
export { DIALECT_CATEGORIES, DatasourceFormModal, DatasourceModal, findCategory, findDialect } from '../../chunk-5RM6NGZ6.mjs';
|
|
7
|
-
import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-
|
|
7
|
+
import { defaultRuleForm, RuleForm, ExecutionTimelinePanel } from '../../chunk-2WXRRQM3.mjs';
|
|
8
8
|
import '../../chunk-JB6RNAD2.mjs';
|
|
9
|
-
import '../../chunk-
|
|
10
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-LEXBTVGM.mjs';
|
|
10
|
+
import '../../chunk-PCYL4MII.mjs';
|
|
11
11
|
import { HeroSection, PageLoadingState, PageEmptyState, EntityCard, Badge, ManagementPageLayout, CreateActionButton, Button, GlassModal, FormGrid, FormSelect, FormInput, FormTextarea, SectionHeader, Text, Form, FormActionsRow, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, InlineForm, CopyableId } from '../../chunk-JN6IL6OH.mjs';
|
|
12
12
|
import '../../chunk-D2JF6C3E.mjs';
|
|
13
13
|
import '../../chunk-7VJ7CMMT.mjs';
|
|
@@ -15,7 +15,7 @@ import { useLink } from '../../chunk-QWG2FMUN.mjs';
|
|
|
15
15
|
import '../../chunk-ZV5EZXXO.mjs';
|
|
16
16
|
import '../../chunk-SYNVNTLJ.mjs';
|
|
17
17
|
import '../../chunk-OZNTQROP.mjs';
|
|
18
|
-
import '../../chunk-
|
|
18
|
+
import '../../chunk-G7JQ4OCE.mjs';
|
|
19
19
|
import { CubeTransparentIcon, CpuChipIcon, ChatBubbleLeftEllipsisIcon, WrenchScrewdriverIcon, AdjustmentsHorizontalIcon, CircleStackIcon, RectangleStackIcon, ClockIcon, LinkIcon, KeyIcon, ArrowPathIcon, TrashIcon } from '@heroicons/react/24/outline';
|
|
20
20
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
21
21
|
import { useState, useMemo, useEffect } from 'react';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
4
|
+
var chunkOCELRSLO_js = require('../chunk-OCELRSLO.js');
|
|
5
|
+
require('../chunk-NJFRJ6YD.js');
|
|
6
6
|
require('../chunk-I2NZGVBG.js');
|
|
7
7
|
require('../chunk-UZ3CMNUJ.js');
|
|
8
8
|
require('../chunk-YXN2K77G.js');
|
|
@@ -10,13 +10,13 @@ require('../chunk-S7KHTUHA.js');
|
|
|
10
10
|
require('../chunk-F54Q2YJY.js');
|
|
11
11
|
require('../chunk-FAGDZEKM.js');
|
|
12
12
|
require('../chunk-P4YYEM4B.js');
|
|
13
|
-
require('../chunk-
|
|
13
|
+
require('../chunk-72SWXOD5.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
Object.defineProperty(exports, "WorkflowCanvasShell", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkOCELRSLO_js.WorkflowCanvasShell; }
|
|
20
20
|
});
|
|
21
21
|
//# sourceMappingURL=workflow-canvas-shell.js.map
|
|
22
22
|
//# sourceMappingURL=workflow-canvas-shell.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { WorkflowCanvasShell } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
export { WorkflowCanvasShell } from '../chunk-GIQXB3BG.mjs';
|
|
3
|
+
import '../chunk-PCYL4MII.mjs';
|
|
4
4
|
import '../chunk-JN6IL6OH.mjs';
|
|
5
5
|
import '../chunk-D2JF6C3E.mjs';
|
|
6
6
|
import '../chunk-7VJ7CMMT.mjs';
|
|
@@ -8,6 +8,6 @@ import '../chunk-QWG2FMUN.mjs';
|
|
|
8
8
|
import '../chunk-ZV5EZXXO.mjs';
|
|
9
9
|
import '../chunk-SYNVNTLJ.mjs';
|
|
10
10
|
import '../chunk-OZNTQROP.mjs';
|
|
11
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-G7JQ4OCE.mjs';
|
|
12
12
|
//# sourceMappingURL=workflow-canvas-shell.mjs.map
|
|
13
13
|
//# sourceMappingURL=workflow-canvas-shell.mjs.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/astrlabe/utils/logic-node-defaults.ts","../src/astrlabe/utils/layout-engine.ts","../src/astrlabe/utils/agent-tier.ts"],"names":[],"mappings":";;;AAQO,SAAS,6BAA6B,QAAA,EAAoD;AAC/F,EAAA,QAAQ,QAAA;AAAU,IAChB,KAAK,OAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,cAAA,EAAgB,EAAC,EAAE;AAAA,IAC7C,KAAK,KAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,eAAA,EAAiB,EAAC,EAAE;AAAA,IAC5C,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,UAAA,EAAY,CAAC,EAAE,QAAA,EAAU,IAAI,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,CAAA;AAAA,QAC5D,eAAA,EAAiB;AAAA,OACnB;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,MAAA,EAAQ,QAAA,EAAU,YAAA,EAAc,MAAM,EAAA,EAAG;AAAA,IAC1D,KAAK,cAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,cAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,GAAA,EAAK,EAAA;AAAA,QACL,SAAS,EAAC;AAAA,QACV,IAAA,EAAM,EAAA;AAAA,QACN,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,UAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,UAAA;AAAA,QACN,MAAA,EAAQ,EAAA;AAAA,QACR,GAAA,EAAK,EAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,QACX,IAAA,EAAM,EAAA;AAAA,QACN,WAAA,EAAa,EAAA;AAAA,QACb,SAAA,EAAW,GAAA;AAAA,QACX,YAAA,EAAc;AAAA,OAChB;AAAA,IACF,KAAK,oBAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,oBAAA,EAAsB,QAAA,EAAU,EAAA,EAAI,gBAAgB,EAAA,EAAG;AAAA,IACxE,KAAK,WAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,WAAA,EAAa,gBAAA,EAAkB,EAAA,EAAI,eAAe,GAAA,EAAI;AAAA,IACvE,KAAK,gBAAA;AACH,MAAA,OAAO,EAAE,MAAM,gBAAA,EAAkB,QAAA,EAAU,IAAI,IAAA,EAAM,CAAA,EAAG,qBAAqB,GAAA,EAAI;AAAA,IACnF,KAAK,QAAA;AACH,MAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,gBAAgB,EAAA,EAAI,eAAA,EAAiB,EAAC,EAAE;AAAA,IACnE,KAAK,qBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,qBAAA;AAAA,QACN,OAAA,EAAS,EAAA;AAAA,QACT,YAAA,EAAc,EAAA;AAAA,QACd,UAAA,EAAY;AAAA,UACV,EAAE,IAAI,MAAA,CAAO,UAAA,IAAc,IAAA,EAAM,EAAA,EAAI,aAAa,EAAA,EAAG;AAAA,UACrD,EAAE,IAAI,MAAA,CAAO,UAAA,IAAc,IAAA,EAAM,EAAA,EAAI,aAAa,EAAA;AAAG;AACvD,OACF;AAAA,IACF,KAAK,qBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,qBAAA;AAAA,QACN,OAAA,EAAS,EAAA;AAAA,QACT,UAAA,EAAY,CAAC,EAAE,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,QAAA,EAAU,WAAA,EAAa,EAAA,EAAI,QAAA,EAAU,IAAA,EAAM;AAAA,OAC5E;AAAA,IACF,KAAK,mBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,mBAAA;AAAA,QACN,aAAa,CAAC,EAAE,QAAQ,EAAA,EAAI,MAAA,EAAQ,IAAI;AAAA,OAC1C;AAAA,IACF,KAAK,qBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,qBAAA;AAAA,QACN,gBAAgB,EAAC;AAAA,QACjB,cAAA,EAAgB,EAAA;AAAA,QAChB,eAAA,EAAiB;AAAA,OACnB;AAAA,IACF,KAAK,oBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,oBAAA;AAAA,QACN,cAAA,EAAgB,MAAA;AAAA,QAChB,cAAA,EAAgB;AAAA,OAClB;AAAA,IACF,KAAK,eAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,eAAA;AAAA,QACN,SAAA,EAAW,QAAA;AAAA,QACX,aAAA,EAAe,EAAA;AAAA,QACf,cAAA,EAAgB,EAAA;AAAA,QAChB,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,iBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,iBAAA;AAAA,QACN,gBAAA,EAAkB,EAAA;AAAA,QAClB,YAAA,EAAc,MAAA;AAAA,QACd,aAAA,EAAe;AAAA,OACjB;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,QAAA;AAAA,QACP,KAAA,EAAO,GAAA;AAAA,QACP,MAAA,EAAQ;AAAA,OACV;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,OAAA;AAAA,QACP,KAAA,EAAO,OAAA;AAAA,QACP,UAAA,EAAY,IAAA;AAAA,QACZ,KAAA,EAAO,GAAA;AAAA,QACP,MAAA,EAAQ,GAAA;AAAA,QACR,cAAA,EAAgB,GAAA;AAAA,QAChB,eAAA,EAAiB;AAAA,OACnB;AAAA,IACF,KAAK,YAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,YAAA;AAAA,QACN,YAAA,EAAc,EAAA;AAAA,QACd,OAAA,EAAS,EAAA;AAAA,QACT,KAAA,EAAO,EAAA;AAAA,QACP,iBAAiB,EAAC;AAAA,QAClB,iBAAiB,EAAC;AAAA,QAClB,cAAA,EAAgB,kBAAA;AAAA,QAChB,KAAA,EAAO;AAAA,OACT;AAAA,IACF,KAAK,kBAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,kBAAA;AAAA,QACN,aAAA,EAAe;AAAA,OACjB;AAAA,IACF;AACE,MAAA,OAAO,IAAA;AAAA;AAEb;AC5HA,IAAM,kBAAA,GAAqB,GAAA;AAC3B,IAAM,mBAAA,GAAsB,EAAA;AAE5B,SAAS,YAAY,IAAA,EAA+C;AAClE,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AACtB,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,UAAU,KAAA,IAAS,kBAAA;AAAA,IAC1B,MAAA,EAAQ,UAAU,MAAA,IAAU;AAAA,GAC9B;AACF;AAOO,SAAS,gBAAA,CACd,KAAA,EACA,KAAA,EACA,SAAA,EACQ;AACR,EAAA,MAAM,qBAAA,GAAwB,EAAA;AAC9B,EAAA,MAAM,mBAAA,GAAsB,EAAA;AAG5B,EAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAAA,IACxB,CAAC,IAAA,KAAS,CAAC,IAAA,CAAK,QAAA,IAAY,KAAK,IAAA,KAAS;AAAA,GAC5C;AAGA,EAAA,MAAM,UAAA,GAAa,IAAI,KAAA,CAAM,QAAA,CAAS,MAAM,EAAE,QAAA,EAAU,MAAM,CAAA;AAC9D,EAAA,UAAA,CAAW,mBAAA,CAAoB,OAAO,EAAC,CAAE,CAAA;AAEzC,EAAA,MAAM,eAAe,SAAA,KAAc,IAAA;AACnC,EAAA,UAAA,CAAW,QAAA,CAAS;AAAA,IAClB,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,eAAe,mBAAA,GAAsB,qBAAA;AAAA,IAC9C,OAAA,EAAS,eAAe,qBAAA,GAAwB,mBAAA;AAAA,IAChD,OAAA,EAAS,EAAA;AAAA,IACT,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,IAAI,GAAA,CAAI,WAAA,CAAY,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAEhE,EAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,IAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,YAAY,IAAI,CAAA;AAC1C,IAAA,UAAA,CAAW,QAAQ,IAAA,CAAK,EAAA,EAAI,EAAE,KAAA,EAAO,QAAQ,CAAA;AAAA,EAC/C;AAEA,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,aAAA,CAAc,IAAI,IAAA,CAAK,MAAM,KAAK,aAAA,CAAc,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA,EAAG;AACpE,MAAA,UAAA,CAAW,OAAA,CAAQ,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IAC7C;AAAA,EACF;AAEA,EAAA,KAAA,CAAM,OAAO,UAAU,CAAA;AAGvB,EAAA,MAAM,WAAA,uBAAkB,GAAA,EAAsC;AAC9D,EAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA;AACzC,IAAA,IAAI,CAAC,SAAA,EAAW;AAChB,IAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,YAAY,IAAI,CAAA;AAC1C,IAAA,WAAA,CAAY,GAAA,CAAI,KAAK,EAAA,EAAI;AAAA,MACvB,CAAA,EAAG,SAAA,CAAU,CAAA,GAAI,KAAA,GAAQ,CAAA;AAAA,MACzB,CAAA,EAAG,SAAA,CAAU,CAAA,GAAI,MAAA,GAAS;AAAA,KAC3B,CAAA;AAAA,EACH;AAGA,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACzB,IAAA,MAAM,WAAA,GAAc,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA;AAC3C,IAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AACzB,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,QAAA,EAAU,WAAA,EAAY;AAAA,EAC1C,CAAC,CAAA;AACH;;;AC5EA,IAAM,KAAA,GAAoD;AAAA,EACxD,EAAE,QAAQ,IAAA,EAAM,IAAA,EAAM,EAAE,GAAA,EAAK,UAAA,EAAY,SAAA,EAAW,kEAAA,EAAmE,EAAE;AAAA,EACzH,EAAE,QAAQ,IAAA,EAAM,IAAA,EAAM,EAAE,GAAA,EAAK,cAAA,EAAgB,SAAA,EAAW,kEAAA,EAAmE,EAAE;AAAA,EAC7H,EAAE,QAAQ,GAAA,EAAM,IAAA,EAAM,EAAE,GAAA,EAAK,UAAA,EAAY,SAAA,EAAW,sEAAA,EAAuE,EAAE;AAAA,EAC7H,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,EAAE,GAAA,EAAK,QAAA,EAAU,SAAA,EAAW,8EAAA,EAA+E;AACvI,CAAA;AAEO,SAAS,aAAa,GAAA,EAAoC;AAC/D,EAAA,MAAM,WAAW,GAAA,IAAO,CAAA;AACxB,EAAA,KAAA,MAAW,EAAE,MAAA,EAAQ,IAAA,EAAK,IAAK,KAAA,EAAO;AACpC,IAAA,IAAI,QAAA,GAAW,QAAQ,OAAO,IAAA;AAAA,EAChC;AACA,EAAA,OAAO,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,IAAA;AACjC","file":"chunk-5W7L7BT7.mjs","sourcesContent":["/**\n * Logic Node Default Configs\n * ==========================\n * Factory function to create default configs for each logic node type.\n */\n\nimport type { WorkflowNodeType, LogicNodeConfig } from '../contracts'\n\nexport function createDefaultLogicNodeConfig(nodeType: WorkflowNodeType): LogicNodeConfig | null {\n switch (nodeType) {\n case 'start':\n return { type: 'start', inputVariables: [] }\n case 'end':\n return { type: 'end', outputVariables: [] }\n case 'if_else':\n return {\n type: 'if_else',\n conditions: [{ variable: '', operator: 'equals', value: '' }],\n logicalOperator: 'and',\n }\n case 'code':\n return { type: 'code', language: 'javascript', code: '' }\n case 'http_request':\n return {\n type: 'http_request',\n method: 'GET',\n url: '',\n headers: {},\n body: '',\n timeoutMs: 10000,\n }\n case 's3_write':\n return {\n type: 's3_write',\n bucket: '',\n key: '',\n sourceUrl: '',\n body: '',\n contentType: '',\n timeoutMs: 300000,\n connectionId: '',\n }\n case 'template_transform':\n return { type: 'template_transform', template: '', outputVariable: '' }\n case 'iteration':\n return { type: 'iteration', iteratorVariable: '', maxIterations: 100 }\n case 'knowledge_base':\n return { type: 'knowledge_base', sourceId: '', topK: 5, similarityThreshold: 0.7 }\n case 'answer':\n return { type: 'answer', outputTemplate: '', outputVariables: [] }\n case 'question_classifier':\n return {\n type: 'question_classifier',\n modelId: '',\n instructions: '',\n categories: [\n { id: crypto.randomUUID(), name: '', description: '' },\n { id: crypto.randomUUID(), name: '', description: '' },\n ],\n }\n case 'parameter_extractor':\n return {\n type: 'parameter_extractor',\n modelId: '',\n parameters: [{ name: '', type: 'string', description: '', required: true }],\n }\n case 'variable_assigner':\n return {\n type: 'variable_assigner',\n assignments: [{ target: '', source: '' }],\n }\n case 'variable_aggregator':\n return {\n type: 'variable_aggregator',\n inputVariables: [],\n outputVariable: '',\n aggregationMode: 'array',\n }\n case 'document_extractor':\n return {\n type: 'document_extractor',\n extractionMode: 'text',\n outputVariable: '',\n }\n case 'list_operator':\n return {\n type: 'list_operator',\n operation: 'filter',\n inputVariable: '',\n outputVariable: '',\n condition: '',\n }\n case 'iteration_start':\n return {\n type: 'iteration_start',\n iteratorVariable: '',\n itemVariable: 'item',\n indexVariable: 'index',\n }\n case 'note':\n return {\n type: 'note',\n text: '',\n color: 'yellow',\n width: 200,\n height: 150,\n }\n case 'group':\n return {\n type: 'group',\n label: 'Group',\n color: 'slate',\n isExpanded: true,\n width: 400,\n height: 300,\n collapsedWidth: 260,\n collapsedHeight: 60,\n }\n case 'datasource':\n return {\n type: 'datasource',\n datasourceId: '',\n dialect: '',\n table: '',\n selectedColumns: [],\n filterVariables: {},\n outputVariable: 'datasourceResult',\n limit: 100,\n }\n case 'dashboard_output':\n return {\n type: 'dashboard_output',\n dashboardFrom: '',\n }\n default:\n return null\n }\n}\n","/**\n * Layout Engine\n * =============\n * Auto-layout for workflow graphs using @dagrejs/dagre.\n * Pure utility — no React dependencies.\n */\n\nimport Dagre from '@dagrejs/dagre'\nimport type { Node, Edge } from '@xyflow/react'\n\n/** Layout direction: free means no auto-layout is applied. */\nexport type LayoutDirection = 'free' | 'LR' | 'TB'\n\nconst DEFAULT_NODE_WIDTH = 260\nconst DEFAULT_NODE_HEIGHT = 70\n\nfunction getNodeSize(node: Node): { width: number; height: number } {\n const measured = node.measured as { width?: number; height?: number } | undefined\n return {\n width: measured?.width ?? DEFAULT_NODE_WIDTH,\n height: measured?.height ?? DEFAULT_NODE_HEIGHT,\n }\n}\n\n/**\n * Apply dagre layout to the given nodes and edges.\n * Returns a new array of nodes with updated positions.\n * Group child nodes (parentId set) and note nodes are excluded from layout.\n */\nexport function applyDagreLayout(\n nodes: Node[],\n edges: Edge[],\n direction: Exclude<LayoutDirection, 'free'>,\n): Node[] {\n const nodeSpacingHorizontal = 80\n const nodeSpacingVertical = 50\n\n // Separate layoutable nodes from excluded ones\n const layoutNodes = nodes.filter(\n (node) => !node.parentId && node.type !== 'note',\n )\n\n // Build dagre graph\n const dagreGraph = new Dagre.graphlib.Graph({ directed: true })\n dagreGraph.setDefaultEdgeLabel(() => ({}))\n\n const isHorizontal = direction === 'LR'\n dagreGraph.setGraph({\n rankdir: direction,\n nodesep: isHorizontal ? nodeSpacingVertical : nodeSpacingHorizontal,\n ranksep: isHorizontal ? nodeSpacingHorizontal : nodeSpacingVertical,\n marginx: 40,\n marginy: 40,\n })\n\n const layoutNodeIds = new Set(layoutNodes.map((node) => node.id))\n\n for (const node of layoutNodes) {\n const { width, height } = getNodeSize(node)\n dagreGraph.setNode(node.id, { width, height })\n }\n\n for (const edge of edges) {\n if (layoutNodeIds.has(edge.source) && layoutNodeIds.has(edge.target)) {\n dagreGraph.setEdge(edge.source, edge.target)\n }\n }\n\n Dagre.layout(dagreGraph)\n\n // Build position map — dagre returns center coords, React Flow uses top-left\n const positionMap = new Map<string, { x: number; y: number }>()\n for (const node of layoutNodes) {\n const dagreNode = dagreGraph.node(node.id)\n if (!dagreNode) continue\n const { width, height } = getNodeSize(node)\n positionMap.set(node.id, {\n x: dagreNode.x - width / 2,\n y: dagreNode.y - height / 2,\n })\n }\n\n // Return all nodes with updated positions for layout-participating nodes\n return nodes.map((node) => {\n const newPosition = positionMap.get(node.id)\n if (!newPosition) return node\n return { ...node, position: newPosition }\n })\n}\n","/**\n * Agent ELO Tier\n * ==============\n * Derives difficulty tier from agent ELO rating.\n * Used in node palette, agent flow node, and agent modal.\n */\n\nexport type AgentTier = {\n key: 'beginner' | 'intermediate' | 'advanced' | 'expert'\n pillColor: string\n}\n\nconst TIERS: Array<{ maxElo: number; tier: AgentTier }> = [\n { maxElo: 1200, tier: { key: 'beginner', pillColor: 'bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400' } },\n { maxElo: 1600, tier: { key: 'intermediate', pillColor: 'bg-pink-100 text-pink-700 dark:bg-pink-900/30 dark:text-pink-400' } },\n { maxElo: 2000, tier: { key: 'advanced', pillColor: 'bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400' } },\n { maxElo: Infinity, tier: { key: 'expert', pillColor: 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400' } },\n]\n\nexport function getAgentTier(elo: number | undefined): AgentTier {\n const eloValue = elo ?? 0\n for (const { maxElo, tier } of TIERS) {\n if (eloValue < maxElo) return tier\n }\n return TIERS[TIERS.length - 1].tier\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/astrlabe/utils/logic-node-defaults.ts","../src/astrlabe/utils/layout-engine.ts","../src/astrlabe/utils/agent-tier.ts"],"names":["Dagre"],"mappings":"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","file":"chunk-C3H4FM4A.js","sourcesContent":["/**\n * Logic Node Default Configs\n * ==========================\n * Factory function to create default configs for each logic node type.\n */\n\nimport type { WorkflowNodeType, LogicNodeConfig } from '../contracts'\n\nexport function createDefaultLogicNodeConfig(nodeType: WorkflowNodeType): LogicNodeConfig | null {\n switch (nodeType) {\n case 'start':\n return { type: 'start', inputVariables: [] }\n case 'end':\n return { type: 'end', outputVariables: [] }\n case 'if_else':\n return {\n type: 'if_else',\n conditions: [{ variable: '', operator: 'equals', value: '' }],\n logicalOperator: 'and',\n }\n case 'code':\n return { type: 'code', language: 'javascript', code: '' }\n case 'http_request':\n return {\n type: 'http_request',\n method: 'GET',\n url: '',\n headers: {},\n body: '',\n timeoutMs: 10000,\n }\n case 's3_write':\n return {\n type: 's3_write',\n bucket: '',\n key: '',\n sourceUrl: '',\n body: '',\n contentType: '',\n timeoutMs: 300000,\n connectionId: '',\n }\n case 'template_transform':\n return { type: 'template_transform', template: '', outputVariable: '' }\n case 'iteration':\n return { type: 'iteration', iteratorVariable: '', maxIterations: 100 }\n case 'knowledge_base':\n return { type: 'knowledge_base', sourceId: '', topK: 5, similarityThreshold: 0.7 }\n case 'answer':\n return { type: 'answer', outputTemplate: '', outputVariables: [] }\n case 'question_classifier':\n return {\n type: 'question_classifier',\n modelId: '',\n instructions: '',\n categories: [\n { id: crypto.randomUUID(), name: '', description: '' },\n { id: crypto.randomUUID(), name: '', description: '' },\n ],\n }\n case 'parameter_extractor':\n return {\n type: 'parameter_extractor',\n modelId: '',\n parameters: [{ name: '', type: 'string', description: '', required: true }],\n }\n case 'variable_assigner':\n return {\n type: 'variable_assigner',\n assignments: [{ target: '', source: '' }],\n }\n case 'variable_aggregator':\n return {\n type: 'variable_aggregator',\n inputVariables: [],\n outputVariable: '',\n aggregationMode: 'array',\n }\n case 'document_extractor':\n return {\n type: 'document_extractor',\n extractionMode: 'text',\n outputVariable: '',\n }\n case 'list_operator':\n return {\n type: 'list_operator',\n operation: 'filter',\n inputVariable: '',\n outputVariable: '',\n condition: '',\n }\n case 'iteration_start':\n return {\n type: 'iteration_start',\n iteratorVariable: '',\n itemVariable: 'item',\n indexVariable: 'index',\n }\n case 'note':\n return {\n type: 'note',\n text: '',\n color: 'yellow',\n width: 200,\n height: 150,\n }\n case 'group':\n return {\n type: 'group',\n label: 'Group',\n color: 'slate',\n isExpanded: true,\n width: 400,\n height: 300,\n collapsedWidth: 260,\n collapsedHeight: 60,\n }\n case 'datasource':\n return {\n type: 'datasource',\n datasourceId: '',\n dialect: '',\n table: '',\n selectedColumns: [],\n filterVariables: {},\n outputVariable: 'datasourceResult',\n limit: 100,\n }\n case 'dashboard_output':\n return {\n type: 'dashboard_output',\n dashboardFrom: '',\n }\n default:\n return null\n }\n}\n","/**\n * Layout Engine\n * =============\n * Auto-layout for workflow graphs using @dagrejs/dagre.\n * Pure utility — no React dependencies.\n */\n\nimport Dagre from '@dagrejs/dagre'\nimport type { Node, Edge } from '@xyflow/react'\n\n/** Layout direction: free means no auto-layout is applied. */\nexport type LayoutDirection = 'free' | 'LR' | 'TB'\n\nconst DEFAULT_NODE_WIDTH = 260\nconst DEFAULT_NODE_HEIGHT = 70\n\nfunction getNodeSize(node: Node): { width: number; height: number } {\n const measured = node.measured as { width?: number; height?: number } | undefined\n return {\n width: measured?.width ?? DEFAULT_NODE_WIDTH,\n height: measured?.height ?? DEFAULT_NODE_HEIGHT,\n }\n}\n\n/**\n * Apply dagre layout to the given nodes and edges.\n * Returns a new array of nodes with updated positions.\n * Group child nodes (parentId set) and note nodes are excluded from layout.\n */\nexport function applyDagreLayout(\n nodes: Node[],\n edges: Edge[],\n direction: Exclude<LayoutDirection, 'free'>,\n): Node[] {\n const nodeSpacingHorizontal = 80\n const nodeSpacingVertical = 50\n\n // Separate layoutable nodes from excluded ones\n const layoutNodes = nodes.filter(\n (node) => !node.parentId && node.type !== 'note',\n )\n\n // Build dagre graph\n const dagreGraph = new Dagre.graphlib.Graph({ directed: true })\n dagreGraph.setDefaultEdgeLabel(() => ({}))\n\n const isHorizontal = direction === 'LR'\n dagreGraph.setGraph({\n rankdir: direction,\n nodesep: isHorizontal ? nodeSpacingVertical : nodeSpacingHorizontal,\n ranksep: isHorizontal ? nodeSpacingHorizontal : nodeSpacingVertical,\n marginx: 40,\n marginy: 40,\n })\n\n const layoutNodeIds = new Set(layoutNodes.map((node) => node.id))\n\n for (const node of layoutNodes) {\n const { width, height } = getNodeSize(node)\n dagreGraph.setNode(node.id, { width, height })\n }\n\n for (const edge of edges) {\n if (layoutNodeIds.has(edge.source) && layoutNodeIds.has(edge.target)) {\n dagreGraph.setEdge(edge.source, edge.target)\n }\n }\n\n Dagre.layout(dagreGraph)\n\n // Build position map — dagre returns center coords, React Flow uses top-left\n const positionMap = new Map<string, { x: number; y: number }>()\n for (const node of layoutNodes) {\n const dagreNode = dagreGraph.node(node.id)\n if (!dagreNode) continue\n const { width, height } = getNodeSize(node)\n positionMap.set(node.id, {\n x: dagreNode.x - width / 2,\n y: dagreNode.y - height / 2,\n })\n }\n\n // Return all nodes with updated positions for layout-participating nodes\n return nodes.map((node) => {\n const newPosition = positionMap.get(node.id)\n if (!newPosition) return node\n return { ...node, position: newPosition }\n })\n}\n","/**\n * Agent ELO Tier\n * ==============\n * Derives difficulty tier from agent ELO rating.\n * Used in node palette, agent flow node, and agent modal.\n */\n\nexport type AgentTier = {\n key: 'beginner' | 'intermediate' | 'advanced' | 'expert'\n pillColor: string\n}\n\nconst TIERS: Array<{ maxElo: number; tier: AgentTier }> = [\n { maxElo: 1200, tier: { key: 'beginner', pillColor: 'bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400' } },\n { maxElo: 1600, tier: { key: 'intermediate', pillColor: 'bg-pink-100 text-pink-700 dark:bg-pink-900/30 dark:text-pink-400' } },\n { maxElo: 2000, tier: { key: 'advanced', pillColor: 'bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400' } },\n { maxElo: Infinity, tier: { key: 'expert', pillColor: 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400' } },\n]\n\nexport function getAgentTier(elo: number | undefined): AgentTier {\n const eloValue = elo ?? 0\n for (const { maxElo, tier } of TIERS) {\n if (eloValue < maxElo) return tier\n }\n return TIERS[TIERS.length - 1].tier\n}\n"]}
|