@datatechsolutions/ui 2.11.82 → 2.11.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/astrlabe/index.d.mts +2 -2
  2. package/dist/astrlabe/index.d.ts +2 -2
  3. package/dist/astrlabe/index.js +110 -106
  4. package/dist/astrlabe/index.mjs +4 -4
  5. package/dist/astrlabe/workflow-canvas.js +4 -4
  6. package/dist/astrlabe/workflow-canvas.mjs +3 -3
  7. package/dist/chunk-3T2WGL47.js +44 -0
  8. package/dist/chunk-3T2WGL47.js.map +1 -0
  9. package/dist/{chunk-HAZP5J67.mjs → chunk-63AL2RN5.mjs} +187 -17
  10. package/dist/chunk-63AL2RN5.mjs.map +1 -0
  11. package/dist/chunk-64G2HBRQ.mjs +481 -0
  12. package/dist/chunk-64G2HBRQ.mjs.map +1 -0
  13. package/dist/{chunk-J3OYJ44D.mjs → chunk-BH2AU3LG.mjs} +3 -3
  14. package/dist/{chunk-J3OYJ44D.mjs.map → chunk-BH2AU3LG.mjs.map} +1 -1
  15. package/dist/chunk-CCRBT7TA.mjs +941 -0
  16. package/dist/chunk-CCRBT7TA.mjs.map +1 -0
  17. package/dist/chunk-CHLJUSXX.mjs +128 -0
  18. package/dist/chunk-CHLJUSXX.mjs.map +1 -0
  19. package/dist/chunk-CXIQWPBH.js +214 -0
  20. package/dist/chunk-CXIQWPBH.js.map +1 -0
  21. package/dist/chunk-EDE36MKE.mjs +412 -0
  22. package/dist/chunk-EDE36MKE.mjs.map +1 -0
  23. package/dist/{chunk-M7P2TQ6X.js → chunk-EFREXNZB.js} +64 -64
  24. package/dist/{chunk-M7P2TQ6X.js.map → chunk-EFREXNZB.js.map} +1 -1
  25. package/dist/chunk-FAGDZEKM.js +23 -0
  26. package/dist/chunk-FAGDZEKM.js.map +1 -0
  27. package/dist/{chunk-TUEYBNWL.js → chunk-GV6WJCEB.js} +3 -3
  28. package/dist/{chunk-TUEYBNWL.js.map → chunk-GV6WJCEB.js.map} +1 -1
  29. package/dist/chunk-HU3EAHFO.mjs +20 -0
  30. package/dist/chunk-HU3EAHFO.mjs.map +1 -0
  31. package/dist/{chunk-LLFU42KC.mjs → chunk-I6WYV2AN.mjs} +3 -3
  32. package/dist/{chunk-LLFU42KC.mjs.map → chunk-I6WYV2AN.mjs.map} +1 -1
  33. package/dist/chunk-JJWFMKZY.js +132 -0
  34. package/dist/chunk-JJWFMKZY.js.map +1 -0
  35. package/dist/{chunk-K4QJV3GC.js → chunk-L6FVIWAJ.js} +308 -137
  36. package/dist/chunk-L6FVIWAJ.js.map +1 -0
  37. package/dist/chunk-MNQEZL7B.mjs +210 -0
  38. package/dist/chunk-MNQEZL7B.mjs.map +1 -0
  39. package/dist/chunk-SGJ24J2Q.js +943 -0
  40. package/dist/chunk-SGJ24J2Q.js.map +1 -0
  41. package/dist/chunk-SW6TVAIJ.js +418 -0
  42. package/dist/chunk-SW6TVAIJ.js.map +1 -0
  43. package/dist/chunk-SYNVNTLJ.mjs +20 -0
  44. package/dist/chunk-SYNVNTLJ.mjs.map +1 -0
  45. package/dist/chunk-UQXVCVAN.mjs +41 -0
  46. package/dist/chunk-UQXVCVAN.mjs.map +1 -0
  47. package/dist/chunk-WGELLCOZ.js +22 -0
  48. package/dist/chunk-WGELLCOZ.js.map +1 -0
  49. package/dist/chunk-YXPHJ2BQ.js +541 -0
  50. package/dist/chunk-YXPHJ2BQ.js.map +1 -0
  51. package/dist/index.d.mts +3 -47
  52. package/dist/index.d.ts +3 -47
  53. package/dist/index.js +765 -765
  54. package/dist/index.mjs +2 -2
  55. package/dist/navigation-BiWVffAN.d.mts +49 -0
  56. package/dist/navigation-BiWVffAN.d.ts +49 -0
  57. package/dist/platform/agents-workspace.d.mts +19 -0
  58. package/dist/platform/agents-workspace.d.ts +19 -0
  59. package/dist/platform/agents-workspace.js +26 -0
  60. package/dist/platform/agents-workspace.js.map +1 -0
  61. package/dist/platform/agents-workspace.mjs +17 -0
  62. package/dist/platform/agents-workspace.mjs.map +1 -0
  63. package/dist/platform/app-shell.d.mts +58 -0
  64. package/dist/platform/app-shell.d.ts +58 -0
  65. package/dist/platform/app-shell.js +17 -0
  66. package/dist/platform/app-shell.js.map +1 -0
  67. package/dist/platform/app-shell.mjs +8 -0
  68. package/dist/platform/app-shell.mjs.map +1 -0
  69. package/dist/platform/index.d.mts +100 -3
  70. package/dist/platform/index.d.ts +100 -3
  71. package/dist/platform/index.js +499 -28
  72. package/dist/platform/index.js.map +1 -1
  73. package/dist/platform/index.mjs +472 -27
  74. package/dist/platform/index.mjs.map +1 -1
  75. package/dist/platform/pages/index.d.mts +243 -82
  76. package/dist/platform/pages/index.d.ts +243 -82
  77. package/dist/platform/pages/index.js +886 -614
  78. package/dist/platform/pages/index.js.map +1 -1
  79. package/dist/platform/pages/index.mjs +756 -511
  80. package/dist/platform/pages/index.mjs.map +1 -1
  81. package/dist/platform/utils/index.js +18 -56
  82. package/dist/platform/utils/index.js.map +1 -1
  83. package/dist/platform/utils/index.mjs +3 -53
  84. package/dist/platform/utils/index.mjs.map +1 -1
  85. package/dist/platform/workflow-api-client.d.mts +6 -0
  86. package/dist/platform/workflow-api-client.d.ts +6 -0
  87. package/dist/platform/workflow-api-client.js +246 -0
  88. package/dist/platform/workflow-api-client.js.map +1 -0
  89. package/dist/platform/workflow-api-client.mjs +5 -0
  90. package/dist/platform/workflow-api-client.mjs.map +1 -0
  91. package/dist/platform/workflow-canvas-shell.d.mts +18 -0
  92. package/dist/platform/workflow-canvas-shell.d.ts +18 -0
  93. package/dist/platform/workflow-canvas-shell.js +20 -0
  94. package/dist/platform/workflow-canvas-shell.js.map +1 -0
  95. package/dist/platform/workflow-canvas-shell.mjs +11 -0
  96. package/dist/platform/workflow-canvas-shell.mjs.map +1 -0
  97. package/dist/{rule-form-F5jBOeqk.d.mts → rule-form-BYJzyork.d.mts} +50 -1
  98. package/dist/{rule-form-F5jBOeqk.d.ts → rule-form-BYJzyork.d.ts} +50 -1
  99. package/dist/workflow-api-client-C8gPn_D1.d.mts +386 -0
  100. package/dist/workflow-api-client-Dy1Ph8W-.d.ts +386 -0
  101. package/package.json +21 -1
  102. package/dist/chunk-HAZP5J67.mjs.map +0 -1
  103. package/dist/chunk-K4QJV3GC.js.map +0 -1
@@ -1,20 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- // src/platform/utils/format-duration.ts
5
- function formatDurationMs(ms) {
6
- if (ms === null || ms === void 0 || Number.isNaN(ms)) return "\u2014";
7
- if (ms < 0) return "\u2014";
8
- if (ms < 1e3) return `${Math.round(ms)}ms`;
9
- const totalSeconds = ms / 1e3;
10
- if (totalSeconds < 60) return `${totalSeconds.toFixed(totalSeconds < 10 ? 2 : 1)}s`;
11
- const minutes = Math.floor(totalSeconds / 60);
12
- const seconds = Math.round(totalSeconds - minutes * 60);
13
- if (minutes < 60) return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;
14
- const hours = Math.floor(minutes / 60);
15
- const remainingMinutes = minutes - hours * 60;
16
- return remainingMinutes === 0 ? `${hours}h` : `${hours}h ${remainingMinutes}m`;
17
- }
4
+ var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
5
+ var chunkFAGDZEKM_js = require('../../chunk-FAGDZEKM.js');
18
6
 
19
7
  // src/platform/utils/json-parse.ts
20
8
  function tryParseJson(value) {
@@ -56,44 +44,6 @@ function parseToolCategory(value) {
56
44
  return TOOL_CATEGORY_SET.has(str) ? str : void 0;
57
45
  }
58
46
 
59
- // src/platform/utils/workflow-graph-adapter.ts
60
- function assertEntityConfig(node) {
61
- if (node.type !== "entity") return node;
62
- const config = node.data.config;
63
- if (!config || config.type !== "entity") {
64
- throw new Error(`Entity node ${node.id} is missing entity config`);
65
- }
66
- const entityConfig = config;
67
- if (!entityConfig.entityMasterId || entityConfig.entityMasterId.trim().length === 0) {
68
- throw new Error(`Entity node ${node.id} is missing required entityMasterId`);
69
- }
70
- return node;
71
- }
72
- function adaptWorkflowGraphToUi(graph) {
73
- const nodes = graph.nodes.map((node) => assertEntityConfig(node));
74
- return {
75
- nodes,
76
- edges: graph.edges,
77
- viewport: graph.viewport
78
- };
79
- }
80
-
81
- // src/platform/utils/lambda-endpoint.ts
82
- var trimTrailingSlash = (value) => value.replace(/\/$/, "");
83
- function getLambdaApiBase() {
84
- const directBase = undefined.VITE_LAMBDA_CLIENT_BASE;
85
- if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase);
86
- const gatewayBase = undefined.VITE_API_GATEWAY_URL;
87
- if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase);
88
- throw new Error(
89
- "Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL."
90
- );
91
- }
92
- function buildLambdaApiUrl(path) {
93
- const normalizedPath = path.startsWith("/") ? path : `/${path}`;
94
- return `${getLambdaApiBase()}${normalizedPath}`;
95
- }
96
-
97
47
  // src/platform/utils/auth-app.ts
98
48
  function requireEnv(name) {
99
49
  const rawValue = undefined[name];
@@ -116,13 +66,25 @@ function buildHostedAuthUrl(path, search = "") {
116
66
  return `${authAppUrl}${normalizedPath}${normalizedSearch}`;
117
67
  }
118
68
 
69
+ Object.defineProperty(exports, "adaptWorkflowGraphToUi", {
70
+ enumerable: true,
71
+ get: function () { return chunk3T2WGL47_js.adaptWorkflowGraphToUi; }
72
+ });
73
+ Object.defineProperty(exports, "formatDurationMs", {
74
+ enumerable: true,
75
+ get: function () { return chunk3T2WGL47_js.formatDurationMs; }
76
+ });
77
+ Object.defineProperty(exports, "buildLambdaApiUrl", {
78
+ enumerable: true,
79
+ get: function () { return chunkFAGDZEKM_js.buildLambdaApiUrl; }
80
+ });
81
+ Object.defineProperty(exports, "getLambdaApiBase", {
82
+ enumerable: true,
83
+ get: function () { return chunkFAGDZEKM_js.getLambdaApiBase; }
84
+ });
119
85
  exports.TOOL_CATEGORY_VALUES = TOOL_CATEGORY_VALUES;
120
- exports.adaptWorkflowGraphToUi = adaptWorkflowGraphToUi;
121
86
  exports.buildHostedAuthUrl = buildHostedAuthUrl;
122
- exports.buildLambdaApiUrl = buildLambdaApiUrl;
123
- exports.formatDurationMs = formatDurationMs;
124
87
  exports.getAuthAppUrl = getAuthAppUrl;
125
- exports.getLambdaApiBase = getLambdaApiBase;
126
88
  exports.parseToolCategory = parseToolCategory;
127
89
  exports.tryParseJson = tryParseJson;
128
90
  exports.tryParseJsonArray = tryParseJsonArray;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/platform/utils/format-duration.ts","../../../src/platform/utils/json-parse.ts","../../../src/platform/utils/tool-category.ts","../../../src/platform/utils/workflow-graph-adapter.ts","../../../src/platform/utils/lambda-endpoint.ts","../../../src/platform/utils/auth-app.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/** Formats a millisecond count as a short, human-readable duration string. */\nexport function formatDurationMs(ms: number | null | undefined): string {\n if (ms === null || ms === undefined || Number.isNaN(ms)) return '—'\n if (ms < 0) return '—'\n if (ms < 1_000) return `${Math.round(ms)}ms`\n\n const totalSeconds = ms / 1_000\n if (totalSeconds < 60) return `${totalSeconds.toFixed(totalSeconds < 10 ? 2 : 1)}s`\n\n const minutes = Math.floor(totalSeconds / 60)\n const seconds = Math.round(totalSeconds - minutes * 60)\n if (minutes < 60) return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`\n\n const hours = Math.floor(minutes / 60)\n const remainingMinutes = minutes - hours * 60\n return remainingMinutes === 0 ? `${hours}h` : `${hours}h ${remainingMinutes}m`\n}\n","/**\n * Parses a JSON string into a typed value, returning undefined (not throwing)\n * on empty input or malformed JSON. Used by form builders where the user types\n * JSON into a textarea and we want to surface a friendly \"couldn't parse\" state\n * rather than crashing the submit handler.\n */\nexport function tryParseJson<T = unknown>(value: FormDataEntryValue | string | null | undefined): T | undefined {\n const raw = typeof value === 'string' ? value.trim() : ''\n if (!raw) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/** Parses JSON into an object record. Returns undefined if the result is not a plain object. */\nexport function tryParseJsonObject(value: FormDataEntryValue | string | null | undefined): Record<string, unknown> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>\n }\n return undefined\n}\n\n/** Parses JSON into an array of records. Returns undefined if not a plain array. */\nexport function tryParseJsonArray(value: FormDataEntryValue | string | null | undefined): Array<Record<string, unknown>> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (Array.isArray(parsed)) {\n return parsed as Array<Record<string, unknown>>\n }\n return undefined\n}\n","export type ToolCategory = 'search' | 'code' | 'file' | 'web' | 'math' | 'custom'\n\nexport const TOOL_CATEGORY_VALUES: readonly ToolCategory[] = [\n 'search',\n 'code',\n 'file',\n 'web',\n 'math',\n 'custom',\n] as const\n\nconst TOOL_CATEGORY_SET = new Set<ToolCategory>(TOOL_CATEGORY_VALUES)\n\n/** Narrows a form value to a ToolCategory, returning undefined if not one of the known values. */\nexport function parseToolCategory(value: FormDataEntryValue | null | undefined): ToolCategory | undefined {\n const str = typeof value === 'string' ? value.trim() : ''\n return TOOL_CATEGORY_SET.has(str as ToolCategory) ? (str as ToolCategory) : undefined\n}\n","import type { WorkflowGraph as SharedWorkflowGraph } from '@datatechsolutions/shared-domain/ports/workflow'\nimport type {\n WorkflowGraph as UiWorkflowGraph,\n WorkflowNode as UiWorkflowNode,\n EntityNodeConfig as UiEntityNodeConfig,\n} from '../../astrlabe/contracts'\n\nfunction assertEntityConfig(node: UiWorkflowNode): UiWorkflowNode {\n if (node.type !== 'entity') return node\n\n const config = node.data.config\n if (!config || config.type !== 'entity') {\n throw new Error(`Entity node ${node.id} is missing entity config`)\n }\n\n const entityConfig = config as UiEntityNodeConfig\n if (!entityConfig.entityMasterId || entityConfig.entityMasterId.trim().length === 0) {\n throw new Error(`Entity node ${node.id} is missing required entityMasterId`)\n }\n\n return node\n}\n\nexport function adaptWorkflowGraphToUi(graph: SharedWorkflowGraph): UiWorkflowGraph {\n const nodes = graph.nodes.map((node) => assertEntityConfig(node as unknown as UiWorkflowNode))\n return {\n nodes,\n edges: graph.edges as UiWorkflowGraph['edges'],\n viewport: graph.viewport as UiWorkflowGraph['viewport'],\n }\n}\n","/// <reference types=\"vite/client\" />\n\nconst trimTrailingSlash = (value: string): string => value.replace(/\\/$/, '')\n\nexport function getLambdaApiBase(): string {\n const directBase = import.meta.env.VITE_LAMBDA_CLIENT_BASE\n if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase)\n\n const gatewayBase = import.meta.env.VITE_API_GATEWAY_URL\n if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase)\n\n throw new Error(\n 'Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL.'\n )\n}\n\nexport function buildLambdaApiUrl(path: string): string {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n return `${getLambdaApiBase()}${normalizedPath}`\n}\n","/// <reference types=\"vite/client\" />\n\nfunction requireEnv(name: string): string {\n const rawValue = import.meta.env[name]\n if (typeof rawValue !== 'string') {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n const value = rawValue.trim()\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n return value.replace(/\\/+$/, '')\n}\n\nexport function getAuthAppUrl(): string {\n return requireEnv('VITE_AUTH_APP_URL')\n}\n\nexport function buildHostedAuthUrl(path: string, search = ''): string {\n const authAppUrl = getAuthAppUrl()\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n const normalizedSearch = search.startsWith('?')\n ? search\n : search\n ? `?${search}`\n : ''\n\n return `${authAppUrl}${normalizedPath}${normalizedSearch}`\n}\n"]}
1
+ {"version":3,"sources":["../../../src/platform/utils/json-parse.ts","../../../src/platform/utils/tool-category.ts","../../../src/platform/utils/auth-app.ts"],"names":[],"mappings":";;;;;;AAMO,SAAS,aAA0B,KAAA,EAAsE;AAC9G,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,IAAI,CAAC,KAAK,OAAO,MAAA;AACjB,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACvB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAGO,SAAS,mBAAmB,KAAA,EAA4F;AAC7H,EAAA,MAAM,MAAA,GAAS,aAAsB,KAAK,CAAA;AAC1C,EAAA,IAAI,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAGO,SAAS,kBAAkB,KAAA,EAAmG;AACnI,EAAA,MAAM,MAAA,GAAS,aAAsB,KAAK,CAAA;AAC1C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;AC9BO,IAAM,oBAAA,GAAgD;AAAA,EAC3D,QAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;AAEA,IAAM,iBAAA,GAAoB,IAAI,GAAA,CAAkB,oBAAoB,CAAA;AAG7D,SAAS,kBAAkB,KAAA,EAAwE;AACxG,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,OAAO,iBAAA,CAAkB,GAAA,CAAI,GAAmB,CAAA,GAAK,GAAA,GAAuB,MAAA;AAC9E;;;ACfA,SAAS,WAAW,IAAA,EAAsB;AACxC,EAAA,MAAM,QAAA,GAAW,SAAY,CAAI,IAAI,CAAA;AACrC,EAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAE,CAAA;AAAA,EAClE;AAEA,EAAA,MAAM,KAAA,GAAQ,SAAS,IAAA,EAAK;AAC5B,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAE,CAAA;AAAA,EAClE;AAEA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACjC;AAEO,SAAS,aAAA,GAAwB;AACtC,EAAA,OAAO,WAAW,mBAAmB,CAAA;AACvC;AAEO,SAAS,kBAAA,CAAmB,IAAA,EAAc,MAAA,GAAS,EAAA,EAAY;AACpE,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,EAAA,MAAM,gBAAA,GAAmB,OAAO,UAAA,CAAW,GAAG,IAC1C,MAAA,GACA,MAAA,GACE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,CAAA,EAAG,UAAU,CAAA,EAAG,cAAc,GAAG,gBAAgB,CAAA,CAAA;AAC1D","file":"index.js","sourcesContent":["/**\n * Parses a JSON string into a typed value, returning undefined (not throwing)\n * on empty input or malformed JSON. Used by form builders where the user types\n * JSON into a textarea and we want to surface a friendly \"couldn't parse\" state\n * rather than crashing the submit handler.\n */\nexport function tryParseJson<T = unknown>(value: FormDataEntryValue | string | null | undefined): T | undefined {\n const raw = typeof value === 'string' ? value.trim() : ''\n if (!raw) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/** Parses JSON into an object record. Returns undefined if the result is not a plain object. */\nexport function tryParseJsonObject(value: FormDataEntryValue | string | null | undefined): Record<string, unknown> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>\n }\n return undefined\n}\n\n/** Parses JSON into an array of records. Returns undefined if not a plain array. */\nexport function tryParseJsonArray(value: FormDataEntryValue | string | null | undefined): Array<Record<string, unknown>> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (Array.isArray(parsed)) {\n return parsed as Array<Record<string, unknown>>\n }\n return undefined\n}\n","export type ToolCategory = 'search' | 'code' | 'file' | 'web' | 'math' | 'custom'\n\nexport const TOOL_CATEGORY_VALUES: readonly ToolCategory[] = [\n 'search',\n 'code',\n 'file',\n 'web',\n 'math',\n 'custom',\n] as const\n\nconst TOOL_CATEGORY_SET = new Set<ToolCategory>(TOOL_CATEGORY_VALUES)\n\n/** Narrows a form value to a ToolCategory, returning undefined if not one of the known values. */\nexport function parseToolCategory(value: FormDataEntryValue | null | undefined): ToolCategory | undefined {\n const str = typeof value === 'string' ? value.trim() : ''\n return TOOL_CATEGORY_SET.has(str as ToolCategory) ? (str as ToolCategory) : undefined\n}\n","/// <reference types=\"vite/client\" />\n\nfunction requireEnv(name: string): string {\n const rawValue = import.meta.env[name]\n if (typeof rawValue !== 'string') {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n const value = rawValue.trim()\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n return value.replace(/\\/+$/, '')\n}\n\nexport function getAuthAppUrl(): string {\n return requireEnv('VITE_AUTH_APP_URL')\n}\n\nexport function buildHostedAuthUrl(path: string, search = ''): string {\n const authAppUrl = getAuthAppUrl()\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n const normalizedSearch = search.startsWith('?')\n ? search\n : search\n ? `?${search}`\n : ''\n\n return `${authAppUrl}${normalizedPath}${normalizedSearch}`\n}\n"]}
@@ -1,18 +1,6 @@
1
1
  "use client";
2
- // src/platform/utils/format-duration.ts
3
- function formatDurationMs(ms) {
4
- if (ms === null || ms === void 0 || Number.isNaN(ms)) return "\u2014";
5
- if (ms < 0) return "\u2014";
6
- if (ms < 1e3) return `${Math.round(ms)}ms`;
7
- const totalSeconds = ms / 1e3;
8
- if (totalSeconds < 60) return `${totalSeconds.toFixed(totalSeconds < 10 ? 2 : 1)}s`;
9
- const minutes = Math.floor(totalSeconds / 60);
10
- const seconds = Math.round(totalSeconds - minutes * 60);
11
- if (minutes < 60) return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;
12
- const hours = Math.floor(minutes / 60);
13
- const remainingMinutes = minutes - hours * 60;
14
- return remainingMinutes === 0 ? `${hours}h` : `${hours}h ${remainingMinutes}m`;
15
- }
2
+ export { adaptWorkflowGraphToUi, formatDurationMs } from '../../chunk-UQXVCVAN.mjs';
3
+ export { buildLambdaApiUrl, getLambdaApiBase } from '../../chunk-SYNVNTLJ.mjs';
16
4
 
17
5
  // src/platform/utils/json-parse.ts
18
6
  function tryParseJson(value) {
@@ -54,44 +42,6 @@ function parseToolCategory(value) {
54
42
  return TOOL_CATEGORY_SET.has(str) ? str : void 0;
55
43
  }
56
44
 
57
- // src/platform/utils/workflow-graph-adapter.ts
58
- function assertEntityConfig(node) {
59
- if (node.type !== "entity") return node;
60
- const config = node.data.config;
61
- if (!config || config.type !== "entity") {
62
- throw new Error(`Entity node ${node.id} is missing entity config`);
63
- }
64
- const entityConfig = config;
65
- if (!entityConfig.entityMasterId || entityConfig.entityMasterId.trim().length === 0) {
66
- throw new Error(`Entity node ${node.id} is missing required entityMasterId`);
67
- }
68
- return node;
69
- }
70
- function adaptWorkflowGraphToUi(graph) {
71
- const nodes = graph.nodes.map((node) => assertEntityConfig(node));
72
- return {
73
- nodes,
74
- edges: graph.edges,
75
- viewport: graph.viewport
76
- };
77
- }
78
-
79
- // src/platform/utils/lambda-endpoint.ts
80
- var trimTrailingSlash = (value) => value.replace(/\/$/, "");
81
- function getLambdaApiBase() {
82
- const directBase = import.meta.env.VITE_LAMBDA_CLIENT_BASE;
83
- if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase);
84
- const gatewayBase = import.meta.env.VITE_API_GATEWAY_URL;
85
- if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase);
86
- throw new Error(
87
- "Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL."
88
- );
89
- }
90
- function buildLambdaApiUrl(path) {
91
- const normalizedPath = path.startsWith("/") ? path : `/${path}`;
92
- return `${getLambdaApiBase()}${normalizedPath}`;
93
- }
94
-
95
45
  // src/platform/utils/auth-app.ts
96
46
  function requireEnv(name) {
97
47
  const rawValue = import.meta.env[name];
@@ -114,6 +64,6 @@ function buildHostedAuthUrl(path, search = "") {
114
64
  return `${authAppUrl}${normalizedPath}${normalizedSearch}`;
115
65
  }
116
66
 
117
- export { TOOL_CATEGORY_VALUES, adaptWorkflowGraphToUi, buildHostedAuthUrl, buildLambdaApiUrl, formatDurationMs, getAuthAppUrl, getLambdaApiBase, parseToolCategory, tryParseJson, tryParseJsonArray, tryParseJsonObject };
67
+ export { TOOL_CATEGORY_VALUES, buildHostedAuthUrl, getAuthAppUrl, parseToolCategory, tryParseJson, tryParseJsonArray, tryParseJsonObject };
118
68
  //# sourceMappingURL=index.mjs.map
119
69
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/platform/utils/format-duration.ts","../../../src/platform/utils/json-parse.ts","../../../src/platform/utils/tool-category.ts","../../../src/platform/utils/workflow-graph-adapter.ts","../../../src/platform/utils/lambda-endpoint.ts","../../../src/platform/utils/auth-app.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/** Formats a millisecond count as a short, human-readable duration string. */\nexport function formatDurationMs(ms: number | null | undefined): string {\n if (ms === null || ms === undefined || Number.isNaN(ms)) return '—'\n if (ms < 0) return '—'\n if (ms < 1_000) return `${Math.round(ms)}ms`\n\n const totalSeconds = ms / 1_000\n if (totalSeconds < 60) return `${totalSeconds.toFixed(totalSeconds < 10 ? 2 : 1)}s`\n\n const minutes = Math.floor(totalSeconds / 60)\n const seconds = Math.round(totalSeconds - minutes * 60)\n if (minutes < 60) return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`\n\n const hours = Math.floor(minutes / 60)\n const remainingMinutes = minutes - hours * 60\n return remainingMinutes === 0 ? `${hours}h` : `${hours}h ${remainingMinutes}m`\n}\n","/**\n * Parses a JSON string into a typed value, returning undefined (not throwing)\n * on empty input or malformed JSON. Used by form builders where the user types\n * JSON into a textarea and we want to surface a friendly \"couldn't parse\" state\n * rather than crashing the submit handler.\n */\nexport function tryParseJson<T = unknown>(value: FormDataEntryValue | string | null | undefined): T | undefined {\n const raw = typeof value === 'string' ? value.trim() : ''\n if (!raw) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/** Parses JSON into an object record. Returns undefined if the result is not a plain object. */\nexport function tryParseJsonObject(value: FormDataEntryValue | string | null | undefined): Record<string, unknown> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>\n }\n return undefined\n}\n\n/** Parses JSON into an array of records. Returns undefined if not a plain array. */\nexport function tryParseJsonArray(value: FormDataEntryValue | string | null | undefined): Array<Record<string, unknown>> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (Array.isArray(parsed)) {\n return parsed as Array<Record<string, unknown>>\n }\n return undefined\n}\n","export type ToolCategory = 'search' | 'code' | 'file' | 'web' | 'math' | 'custom'\n\nexport const TOOL_CATEGORY_VALUES: readonly ToolCategory[] = [\n 'search',\n 'code',\n 'file',\n 'web',\n 'math',\n 'custom',\n] as const\n\nconst TOOL_CATEGORY_SET = new Set<ToolCategory>(TOOL_CATEGORY_VALUES)\n\n/** Narrows a form value to a ToolCategory, returning undefined if not one of the known values. */\nexport function parseToolCategory(value: FormDataEntryValue | null | undefined): ToolCategory | undefined {\n const str = typeof value === 'string' ? value.trim() : ''\n return TOOL_CATEGORY_SET.has(str as ToolCategory) ? (str as ToolCategory) : undefined\n}\n","import type { WorkflowGraph as SharedWorkflowGraph } from '@datatechsolutions/shared-domain/ports/workflow'\nimport type {\n WorkflowGraph as UiWorkflowGraph,\n WorkflowNode as UiWorkflowNode,\n EntityNodeConfig as UiEntityNodeConfig,\n} from '../../astrlabe/contracts'\n\nfunction assertEntityConfig(node: UiWorkflowNode): UiWorkflowNode {\n if (node.type !== 'entity') return node\n\n const config = node.data.config\n if (!config || config.type !== 'entity') {\n throw new Error(`Entity node ${node.id} is missing entity config`)\n }\n\n const entityConfig = config as UiEntityNodeConfig\n if (!entityConfig.entityMasterId || entityConfig.entityMasterId.trim().length === 0) {\n throw new Error(`Entity node ${node.id} is missing required entityMasterId`)\n }\n\n return node\n}\n\nexport function adaptWorkflowGraphToUi(graph: SharedWorkflowGraph): UiWorkflowGraph {\n const nodes = graph.nodes.map((node) => assertEntityConfig(node as unknown as UiWorkflowNode))\n return {\n nodes,\n edges: graph.edges as UiWorkflowGraph['edges'],\n viewport: graph.viewport as UiWorkflowGraph['viewport'],\n }\n}\n","/// <reference types=\"vite/client\" />\n\nconst trimTrailingSlash = (value: string): string => value.replace(/\\/$/, '')\n\nexport function getLambdaApiBase(): string {\n const directBase = import.meta.env.VITE_LAMBDA_CLIENT_BASE\n if (directBase && directBase.trim().length > 0) return trimTrailingSlash(directBase)\n\n const gatewayBase = import.meta.env.VITE_API_GATEWAY_URL\n if (gatewayBase && gatewayBase.trim().length > 0) return trimTrailingSlash(gatewayBase)\n\n throw new Error(\n 'Missing workflow API base URL. Set VITE_LAMBDA_CLIENT_BASE or VITE_API_GATEWAY_URL.'\n )\n}\n\nexport function buildLambdaApiUrl(path: string): string {\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n return `${getLambdaApiBase()}${normalizedPath}`\n}\n","/// <reference types=\"vite/client\" />\n\nfunction requireEnv(name: string): string {\n const rawValue = import.meta.env[name]\n if (typeof rawValue !== 'string') {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n const value = rawValue.trim()\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n return value.replace(/\\/+$/, '')\n}\n\nexport function getAuthAppUrl(): string {\n return requireEnv('VITE_AUTH_APP_URL')\n}\n\nexport function buildHostedAuthUrl(path: string, search = ''): string {\n const authAppUrl = getAuthAppUrl()\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n const normalizedSearch = search.startsWith('?')\n ? search\n : search\n ? `?${search}`\n : ''\n\n return `${authAppUrl}${normalizedPath}${normalizedSearch}`\n}\n"]}
1
+ {"version":3,"sources":["../../../src/platform/utils/json-parse.ts","../../../src/platform/utils/tool-category.ts","../../../src/platform/utils/auth-app.ts"],"names":[],"mappings":";;;;AAMO,SAAS,aAA0B,KAAA,EAAsE;AAC9G,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,IAAI,CAAC,KAAK,OAAO,MAAA;AACjB,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACvB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAGO,SAAS,mBAAmB,KAAA,EAA4F;AAC7H,EAAA,MAAM,MAAA,GAAS,aAAsB,KAAK,CAAA;AAC1C,EAAA,IAAI,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAGO,SAAS,kBAAkB,KAAA,EAAmG;AACnI,EAAA,MAAM,MAAA,GAAS,aAAsB,KAAK,CAAA;AAC1C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;AC9BO,IAAM,oBAAA,GAAgD;AAAA,EAC3D,QAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF;AAEA,IAAM,iBAAA,GAAoB,IAAI,GAAA,CAAkB,oBAAoB,CAAA;AAG7D,SAAS,kBAAkB,KAAA,EAAwE;AACxG,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,OAAO,iBAAA,CAAkB,GAAA,CAAI,GAAmB,CAAA,GAAK,GAAA,GAAuB,MAAA;AAC9E;;;ACfA,SAAS,WAAW,IAAA,EAAsB;AACxC,EAAA,MAAM,QAAA,GAAW,MAAA,CAAA,IAAA,CAAY,GAAA,CAAI,IAAI,CAAA;AACrC,EAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAE,CAAA;AAAA,EAClE;AAEA,EAAA,MAAM,KAAA,GAAQ,SAAS,IAAA,EAAK;AAC5B,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAE,CAAA;AAAA,EAClE;AAEA,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACjC;AAEO,SAAS,aAAA,GAAwB;AACtC,EAAA,OAAO,WAAW,mBAAmB,CAAA;AACvC;AAEO,SAAS,kBAAA,CAAmB,IAAA,EAAc,MAAA,GAAS,EAAA,EAAY;AACpE,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,EAAA,MAAM,gBAAA,GAAmB,OAAO,UAAA,CAAW,GAAG,IAC1C,MAAA,GACA,MAAA,GACE,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,GACV,EAAA;AAEN,EAAA,OAAO,CAAA,EAAG,UAAU,CAAA,EAAG,cAAc,GAAG,gBAAgB,CAAA,CAAA;AAC1D","file":"index.mjs","sourcesContent":["/**\n * Parses a JSON string into a typed value, returning undefined (not throwing)\n * on empty input or malformed JSON. Used by form builders where the user types\n * JSON into a textarea and we want to surface a friendly \"couldn't parse\" state\n * rather than crashing the submit handler.\n */\nexport function tryParseJson<T = unknown>(value: FormDataEntryValue | string | null | undefined): T | undefined {\n const raw = typeof value === 'string' ? value.trim() : ''\n if (!raw) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n}\n\n/** Parses JSON into an object record. Returns undefined if the result is not a plain object. */\nexport function tryParseJsonObject(value: FormDataEntryValue | string | null | undefined): Record<string, unknown> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, unknown>\n }\n return undefined\n}\n\n/** Parses JSON into an array of records. Returns undefined if not a plain array. */\nexport function tryParseJsonArray(value: FormDataEntryValue | string | null | undefined): Array<Record<string, unknown>> | undefined {\n const parsed = tryParseJson<unknown>(value)\n if (Array.isArray(parsed)) {\n return parsed as Array<Record<string, unknown>>\n }\n return undefined\n}\n","export type ToolCategory = 'search' | 'code' | 'file' | 'web' | 'math' | 'custom'\n\nexport const TOOL_CATEGORY_VALUES: readonly ToolCategory[] = [\n 'search',\n 'code',\n 'file',\n 'web',\n 'math',\n 'custom',\n] as const\n\nconst TOOL_CATEGORY_SET = new Set<ToolCategory>(TOOL_CATEGORY_VALUES)\n\n/** Narrows a form value to a ToolCategory, returning undefined if not one of the known values. */\nexport function parseToolCategory(value: FormDataEntryValue | null | undefined): ToolCategory | undefined {\n const str = typeof value === 'string' ? value.trim() : ''\n return TOOL_CATEGORY_SET.has(str as ToolCategory) ? (str as ToolCategory) : undefined\n}\n","/// <reference types=\"vite/client\" />\n\nfunction requireEnv(name: string): string {\n const rawValue = import.meta.env[name]\n if (typeof rawValue !== 'string') {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n const value = rawValue.trim()\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`)\n }\n\n return value.replace(/\\/+$/, '')\n}\n\nexport function getAuthAppUrl(): string {\n return requireEnv('VITE_AUTH_APP_URL')\n}\n\nexport function buildHostedAuthUrl(path: string, search = ''): string {\n const authAppUrl = getAuthAppUrl()\n const normalizedPath = path.startsWith('/') ? path : `/${path}`\n const normalizedSearch = search.startsWith('?')\n ? search\n : search\n ? `?${search}`\n : ''\n\n return `${authAppUrl}${normalizedPath}${normalizedSearch}`\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import '../astrlabe/contracts.mjs';
2
+ import '../index-AioB90qq.mjs';
3
+ import '@datatechsolutions/shared-domain/ports/workflow';
4
+ import '@datatechsolutions/shared-domain/common';
5
+ export { h as AiGenerateResponse, i as AiValidateResponse, A as AnalyticsSummary, j as ModelProviderCatalogEntry, M as ModelProviderConnection, N as NodeMetrics, k as NodeValidationIssue, P as PresignUploadInput, l as PresignedUpload, m as PublicSampleWorkflow, n as RunEvent, R as RunTimelineEntry, W as WorkflowRunListParams, o as WorkflowTemplateSummary, p as aiGenerateWorkflow, q as aiValidateWorkflow, r as buildAuthenticatedApiUrl, s as cancelWorkflowRun, t as createAgentConfig, u as createAgentPrompt, v as createAgentRule, w as createAgentTool, x as createAgentToolDefinition, y as createDatasource, z as createModelProviderConnection, B as createWorkflow, C as createWorkflowFromTemplate, E as deleteAgentConfig, F as deleteAgentPrompt, G as deleteAgentRule, H as deleteAgentTool, I as deleteAgentToolDefinition, J as deleteModelProviderConnection, K as deleteUpload, L as deleteWorkflow, O as executeAgentRule, Q as executeWorkflow, S as getAgentConfigsWithPrompts, T as getAgentModels, U as getAgentPrompts, V as getAgentRules, X as getAgentToolDefinitions, Y as getAgentTools, Z as getAnalyticsSummary, _ as getCurrentAccessToken, $ as getDatasourceSchema, a0 as getDatasourceTables, a1 as getDatasources, a2 as getPublicSampleWorkflow, a3 as getRunTimeline, a4 as getUploadDownloadUrl, a5 as getWorkflowById, a6 as getWorkflowRunById, a7 as getWorkflowRuns, a8 as getWorkflows, a9 as listModelProviderCatalog, aa as listModelProviderConnections, ab as listWorkflowRuns, ac as listWorkflowTemplates, ad as presignUpload, ae as publishWorkflow, af as replayWorkflowRun, ag as saveWorkflowDraft, ah as setAccessTokenProvider, ai as setAuthenticatedFetch, aj as subscribeToRunEvents, ak as updateAgentConfig, al as updateAgentPrompt, am as updateAgentRule, an as updateAgentTool, ao as updateAgentToolDefinition, ap as updateModelProviderConnection, aq as updateWorkflowSettings } from '../workflow-api-client-C8gPn_D1.mjs';
6
+ import 'react/jsx-runtime';
@@ -0,0 +1,6 @@
1
+ import '../astrlabe/contracts.js';
2
+ import '../index-D5ai0cGZ.js';
3
+ import '@datatechsolutions/shared-domain/ports/workflow';
4
+ import '@datatechsolutions/shared-domain/common';
5
+ export { h as AiGenerateResponse, i as AiValidateResponse, A as AnalyticsSummary, j as ModelProviderCatalogEntry, M as ModelProviderConnection, N as NodeMetrics, k as NodeValidationIssue, P as PresignUploadInput, l as PresignedUpload, m as PublicSampleWorkflow, n as RunEvent, R as RunTimelineEntry, W as WorkflowRunListParams, o as WorkflowTemplateSummary, p as aiGenerateWorkflow, q as aiValidateWorkflow, r as buildAuthenticatedApiUrl, s as cancelWorkflowRun, t as createAgentConfig, u as createAgentPrompt, v as createAgentRule, w as createAgentTool, x as createAgentToolDefinition, y as createDatasource, z as createModelProviderConnection, B as createWorkflow, C as createWorkflowFromTemplate, E as deleteAgentConfig, F as deleteAgentPrompt, G as deleteAgentRule, H as deleteAgentTool, I as deleteAgentToolDefinition, J as deleteModelProviderConnection, K as deleteUpload, L as deleteWorkflow, O as executeAgentRule, Q as executeWorkflow, S as getAgentConfigsWithPrompts, T as getAgentModels, U as getAgentPrompts, V as getAgentRules, X as getAgentToolDefinitions, Y as getAgentTools, Z as getAnalyticsSummary, _ as getCurrentAccessToken, $ as getDatasourceSchema, a0 as getDatasourceTables, a1 as getDatasources, a2 as getPublicSampleWorkflow, a3 as getRunTimeline, a4 as getUploadDownloadUrl, a5 as getWorkflowById, a6 as getWorkflowRunById, a7 as getWorkflowRuns, a8 as getWorkflows, a9 as listModelProviderCatalog, aa as listModelProviderConnections, ab as listWorkflowRuns, ac as listWorkflowTemplates, ad as presignUpload, ae as publishWorkflow, af as replayWorkflowRun, ag as saveWorkflowDraft, ah as setAccessTokenProvider, ai as setAuthenticatedFetch, aj as subscribeToRunEvents, ak as updateAgentConfig, al as updateAgentPrompt, am as updateAgentRule, an as updateAgentTool, ao as updateAgentToolDefinition, ap as updateModelProviderConnection, aq as updateWorkflowSettings } from '../workflow-api-client-Dy1Ph8W-.js';
6
+ import 'react/jsx-runtime';
@@ -0,0 +1,246 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkYXPHJ2BQ_js = require('../chunk-YXPHJ2BQ.js');
5
+ require('../chunk-FAGDZEKM.js');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "aiGenerateWorkflow", {
10
+ enumerable: true,
11
+ get: function () { return chunkYXPHJ2BQ_js.aiGenerateWorkflow; }
12
+ });
13
+ Object.defineProperty(exports, "aiValidateWorkflow", {
14
+ enumerable: true,
15
+ get: function () { return chunkYXPHJ2BQ_js.aiValidateWorkflow; }
16
+ });
17
+ Object.defineProperty(exports, "buildAuthenticatedApiUrl", {
18
+ enumerable: true,
19
+ get: function () { return chunkYXPHJ2BQ_js.buildAuthenticatedApiUrl; }
20
+ });
21
+ Object.defineProperty(exports, "cancelWorkflowRun", {
22
+ enumerable: true,
23
+ get: function () { return chunkYXPHJ2BQ_js.cancelWorkflowRun; }
24
+ });
25
+ Object.defineProperty(exports, "createAgentConfig", {
26
+ enumerable: true,
27
+ get: function () { return chunkYXPHJ2BQ_js.createAgentConfig; }
28
+ });
29
+ Object.defineProperty(exports, "createAgentPrompt", {
30
+ enumerable: true,
31
+ get: function () { return chunkYXPHJ2BQ_js.createAgentPrompt; }
32
+ });
33
+ Object.defineProperty(exports, "createAgentRule", {
34
+ enumerable: true,
35
+ get: function () { return chunkYXPHJ2BQ_js.createAgentRule; }
36
+ });
37
+ Object.defineProperty(exports, "createAgentTool", {
38
+ enumerable: true,
39
+ get: function () { return chunkYXPHJ2BQ_js.createAgentTool; }
40
+ });
41
+ Object.defineProperty(exports, "createAgentToolDefinition", {
42
+ enumerable: true,
43
+ get: function () { return chunkYXPHJ2BQ_js.createAgentToolDefinition; }
44
+ });
45
+ Object.defineProperty(exports, "createDatasource", {
46
+ enumerable: true,
47
+ get: function () { return chunkYXPHJ2BQ_js.createDatasource; }
48
+ });
49
+ Object.defineProperty(exports, "createModelProviderConnection", {
50
+ enumerable: true,
51
+ get: function () { return chunkYXPHJ2BQ_js.createModelProviderConnection; }
52
+ });
53
+ Object.defineProperty(exports, "createWorkflow", {
54
+ enumerable: true,
55
+ get: function () { return chunkYXPHJ2BQ_js.createWorkflow; }
56
+ });
57
+ Object.defineProperty(exports, "createWorkflowFromTemplate", {
58
+ enumerable: true,
59
+ get: function () { return chunkYXPHJ2BQ_js.createWorkflowFromTemplate; }
60
+ });
61
+ Object.defineProperty(exports, "deleteAgentConfig", {
62
+ enumerable: true,
63
+ get: function () { return chunkYXPHJ2BQ_js.deleteAgentConfig; }
64
+ });
65
+ Object.defineProperty(exports, "deleteAgentPrompt", {
66
+ enumerable: true,
67
+ get: function () { return chunkYXPHJ2BQ_js.deleteAgentPrompt; }
68
+ });
69
+ Object.defineProperty(exports, "deleteAgentRule", {
70
+ enumerable: true,
71
+ get: function () { return chunkYXPHJ2BQ_js.deleteAgentRule; }
72
+ });
73
+ Object.defineProperty(exports, "deleteAgentTool", {
74
+ enumerable: true,
75
+ get: function () { return chunkYXPHJ2BQ_js.deleteAgentTool; }
76
+ });
77
+ Object.defineProperty(exports, "deleteAgentToolDefinition", {
78
+ enumerable: true,
79
+ get: function () { return chunkYXPHJ2BQ_js.deleteAgentToolDefinition; }
80
+ });
81
+ Object.defineProperty(exports, "deleteModelProviderConnection", {
82
+ enumerable: true,
83
+ get: function () { return chunkYXPHJ2BQ_js.deleteModelProviderConnection; }
84
+ });
85
+ Object.defineProperty(exports, "deleteUpload", {
86
+ enumerable: true,
87
+ get: function () { return chunkYXPHJ2BQ_js.deleteUpload; }
88
+ });
89
+ Object.defineProperty(exports, "deleteWorkflow", {
90
+ enumerable: true,
91
+ get: function () { return chunkYXPHJ2BQ_js.deleteWorkflow; }
92
+ });
93
+ Object.defineProperty(exports, "executeAgentRule", {
94
+ enumerable: true,
95
+ get: function () { return chunkYXPHJ2BQ_js.executeAgentRule; }
96
+ });
97
+ Object.defineProperty(exports, "executeWorkflow", {
98
+ enumerable: true,
99
+ get: function () { return chunkYXPHJ2BQ_js.executeWorkflow; }
100
+ });
101
+ Object.defineProperty(exports, "getAgentConfigsWithPrompts", {
102
+ enumerable: true,
103
+ get: function () { return chunkYXPHJ2BQ_js.getAgentConfigsWithPrompts; }
104
+ });
105
+ Object.defineProperty(exports, "getAgentModels", {
106
+ enumerable: true,
107
+ get: function () { return chunkYXPHJ2BQ_js.getAgentModels; }
108
+ });
109
+ Object.defineProperty(exports, "getAgentPrompts", {
110
+ enumerable: true,
111
+ get: function () { return chunkYXPHJ2BQ_js.getAgentPrompts; }
112
+ });
113
+ Object.defineProperty(exports, "getAgentRules", {
114
+ enumerable: true,
115
+ get: function () { return chunkYXPHJ2BQ_js.getAgentRules; }
116
+ });
117
+ Object.defineProperty(exports, "getAgentToolDefinitions", {
118
+ enumerable: true,
119
+ get: function () { return chunkYXPHJ2BQ_js.getAgentToolDefinitions; }
120
+ });
121
+ Object.defineProperty(exports, "getAgentTools", {
122
+ enumerable: true,
123
+ get: function () { return chunkYXPHJ2BQ_js.getAgentTools; }
124
+ });
125
+ Object.defineProperty(exports, "getAnalyticsSummary", {
126
+ enumerable: true,
127
+ get: function () { return chunkYXPHJ2BQ_js.getAnalyticsSummary; }
128
+ });
129
+ Object.defineProperty(exports, "getCurrentAccessToken", {
130
+ enumerable: true,
131
+ get: function () { return chunkYXPHJ2BQ_js.getCurrentAccessToken; }
132
+ });
133
+ Object.defineProperty(exports, "getDatasourceSchema", {
134
+ enumerable: true,
135
+ get: function () { return chunkYXPHJ2BQ_js.getDatasourceSchema; }
136
+ });
137
+ Object.defineProperty(exports, "getDatasourceTables", {
138
+ enumerable: true,
139
+ get: function () { return chunkYXPHJ2BQ_js.getDatasourceTables; }
140
+ });
141
+ Object.defineProperty(exports, "getDatasources", {
142
+ enumerable: true,
143
+ get: function () { return chunkYXPHJ2BQ_js.getDatasources; }
144
+ });
145
+ Object.defineProperty(exports, "getPublicSampleWorkflow", {
146
+ enumerable: true,
147
+ get: function () { return chunkYXPHJ2BQ_js.getPublicSampleWorkflow; }
148
+ });
149
+ Object.defineProperty(exports, "getRunTimeline", {
150
+ enumerable: true,
151
+ get: function () { return chunkYXPHJ2BQ_js.getRunTimeline; }
152
+ });
153
+ Object.defineProperty(exports, "getUploadDownloadUrl", {
154
+ enumerable: true,
155
+ get: function () { return chunkYXPHJ2BQ_js.getUploadDownloadUrl; }
156
+ });
157
+ Object.defineProperty(exports, "getWorkflowById", {
158
+ enumerable: true,
159
+ get: function () { return chunkYXPHJ2BQ_js.getWorkflowById; }
160
+ });
161
+ Object.defineProperty(exports, "getWorkflowRunById", {
162
+ enumerable: true,
163
+ get: function () { return chunkYXPHJ2BQ_js.getWorkflowRunById; }
164
+ });
165
+ Object.defineProperty(exports, "getWorkflowRuns", {
166
+ enumerable: true,
167
+ get: function () { return chunkYXPHJ2BQ_js.getWorkflowRuns; }
168
+ });
169
+ Object.defineProperty(exports, "getWorkflows", {
170
+ enumerable: true,
171
+ get: function () { return chunkYXPHJ2BQ_js.getWorkflows; }
172
+ });
173
+ Object.defineProperty(exports, "listModelProviderCatalog", {
174
+ enumerable: true,
175
+ get: function () { return chunkYXPHJ2BQ_js.listModelProviderCatalog; }
176
+ });
177
+ Object.defineProperty(exports, "listModelProviderConnections", {
178
+ enumerable: true,
179
+ get: function () { return chunkYXPHJ2BQ_js.listModelProviderConnections; }
180
+ });
181
+ Object.defineProperty(exports, "listWorkflowRuns", {
182
+ enumerable: true,
183
+ get: function () { return chunkYXPHJ2BQ_js.listWorkflowRuns; }
184
+ });
185
+ Object.defineProperty(exports, "listWorkflowTemplates", {
186
+ enumerable: true,
187
+ get: function () { return chunkYXPHJ2BQ_js.listWorkflowTemplates; }
188
+ });
189
+ Object.defineProperty(exports, "presignUpload", {
190
+ enumerable: true,
191
+ get: function () { return chunkYXPHJ2BQ_js.presignUpload; }
192
+ });
193
+ Object.defineProperty(exports, "publishWorkflow", {
194
+ enumerable: true,
195
+ get: function () { return chunkYXPHJ2BQ_js.publishWorkflow; }
196
+ });
197
+ Object.defineProperty(exports, "replayWorkflowRun", {
198
+ enumerable: true,
199
+ get: function () { return chunkYXPHJ2BQ_js.replayWorkflowRun; }
200
+ });
201
+ Object.defineProperty(exports, "saveWorkflowDraft", {
202
+ enumerable: true,
203
+ get: function () { return chunkYXPHJ2BQ_js.saveWorkflowDraft; }
204
+ });
205
+ Object.defineProperty(exports, "setAccessTokenProvider", {
206
+ enumerable: true,
207
+ get: function () { return chunkYXPHJ2BQ_js.setAccessTokenProvider; }
208
+ });
209
+ Object.defineProperty(exports, "setAuthenticatedFetch", {
210
+ enumerable: true,
211
+ get: function () { return chunkYXPHJ2BQ_js.setAuthenticatedFetch; }
212
+ });
213
+ Object.defineProperty(exports, "subscribeToRunEvents", {
214
+ enumerable: true,
215
+ get: function () { return chunkYXPHJ2BQ_js.subscribeToRunEvents; }
216
+ });
217
+ Object.defineProperty(exports, "updateAgentConfig", {
218
+ enumerable: true,
219
+ get: function () { return chunkYXPHJ2BQ_js.updateAgentConfig; }
220
+ });
221
+ Object.defineProperty(exports, "updateAgentPrompt", {
222
+ enumerable: true,
223
+ get: function () { return chunkYXPHJ2BQ_js.updateAgentPrompt; }
224
+ });
225
+ Object.defineProperty(exports, "updateAgentRule", {
226
+ enumerable: true,
227
+ get: function () { return chunkYXPHJ2BQ_js.updateAgentRule; }
228
+ });
229
+ Object.defineProperty(exports, "updateAgentTool", {
230
+ enumerable: true,
231
+ get: function () { return chunkYXPHJ2BQ_js.updateAgentTool; }
232
+ });
233
+ Object.defineProperty(exports, "updateAgentToolDefinition", {
234
+ enumerable: true,
235
+ get: function () { return chunkYXPHJ2BQ_js.updateAgentToolDefinition; }
236
+ });
237
+ Object.defineProperty(exports, "updateModelProviderConnection", {
238
+ enumerable: true,
239
+ get: function () { return chunkYXPHJ2BQ_js.updateModelProviderConnection; }
240
+ });
241
+ Object.defineProperty(exports, "updateWorkflowSettings", {
242
+ enumerable: true,
243
+ get: function () { return chunkYXPHJ2BQ_js.updateWorkflowSettings; }
244
+ });
245
+ //# sourceMappingURL=workflow-api-client.js.map
246
+ //# sourceMappingURL=workflow-api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"workflow-api-client.js"}
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ export { aiGenerateWorkflow, aiValidateWorkflow, buildAuthenticatedApiUrl, cancelWorkflowRun, createAgentConfig, createAgentPrompt, createAgentRule, createAgentTool, createAgentToolDefinition, createDatasource, createModelProviderConnection, createWorkflow, createWorkflowFromTemplate, deleteAgentConfig, deleteAgentPrompt, deleteAgentRule, deleteAgentTool, deleteAgentToolDefinition, deleteModelProviderConnection, deleteUpload, deleteWorkflow, executeAgentRule, executeWorkflow, getAgentConfigsWithPrompts, getAgentModels, getAgentPrompts, getAgentRules, getAgentToolDefinitions, getAgentTools, getAnalyticsSummary, getCurrentAccessToken, getDatasourceSchema, getDatasourceTables, getDatasources, getPublicSampleWorkflow, getRunTimeline, getUploadDownloadUrl, getWorkflowById, getWorkflowRunById, getWorkflowRuns, getWorkflows, listModelProviderCatalog, listModelProviderConnections, listWorkflowRuns, listWorkflowTemplates, presignUpload, publishWorkflow, replayWorkflowRun, saveWorkflowDraft, setAccessTokenProvider, setAuthenticatedFetch, subscribeToRunEvents, updateAgentConfig, updateAgentPrompt, updateAgentRule, updateAgentTool, updateAgentToolDefinition, updateModelProviderConnection, updateWorkflowSettings } from '../chunk-64G2HBRQ.mjs';
3
+ import '../chunk-SYNVNTLJ.mjs';
4
+ //# sourceMappingURL=workflow-api-client.mjs.map
5
+ //# sourceMappingURL=workflow-api-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"workflow-api-client.mjs"}
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { WorkflowCanvasShellProps } from '@datatechsolutions/shared-domain/common';
3
+
4
+ /**
5
+ * Workflow canvas shell with optional message bundle override.
6
+ *
7
+ * Most apps wrap their tree in `<I18nProvider>` and let the canvas read
8
+ * messages from context — in that case `messages` can be omitted. Apps
9
+ * that need to inject a precomputed bundle (e.g. for tests or app-specific
10
+ * overrides not shipped with shared-domain) can pass it explicitly.
11
+ */
12
+ type Props = WorkflowCanvasShellProps & {
13
+ /** Optional override for the messages catalog passed into the canvas. */
14
+ messages?: Record<string, unknown>;
15
+ };
16
+ declare function WorkflowCanvasShell({ graph, messages }: Props): react_jsx_runtime.JSX.Element;
17
+
18
+ export { WorkflowCanvasShell };
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { WorkflowCanvasShellProps } from '@datatechsolutions/shared-domain/common';
3
+
4
+ /**
5
+ * Workflow canvas shell with optional message bundle override.
6
+ *
7
+ * Most apps wrap their tree in `<I18nProvider>` and let the canvas read
8
+ * messages from context — in that case `messages` can be omitted. Apps
9
+ * that need to inject a precomputed bundle (e.g. for tests or app-specific
10
+ * overrides not shipped with shared-domain) can pass it explicitly.
11
+ */
12
+ type Props = WorkflowCanvasShellProps & {
13
+ /** Optional override for the messages catalog passed into the canvas. */
14
+ messages?: Record<string, unknown>;
15
+ };
16
+ declare function WorkflowCanvasShell({ graph, messages }: Props): react_jsx_runtime.JSX.Element;
17
+
18
+ export { WorkflowCanvasShell };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var chunkWGELLCOZ_js = require('../chunk-WGELLCOZ.js');
5
+ require('../chunk-EFREXNZB.js');
6
+ require('../chunk-GV6WJCEB.js');
7
+ require('../chunk-S7KHTUHA.js');
8
+ require('../chunk-UZ3CMNUJ.js');
9
+ require('../chunk-YXN2K77G.js');
10
+ require('../chunk-P4YYEM4B.js');
11
+ require('../chunk-C7BI5LQ6.js');
12
+
13
+
14
+
15
+ Object.defineProperty(exports, "WorkflowCanvasShell", {
16
+ enumerable: true,
17
+ get: function () { return chunkWGELLCOZ_js.WorkflowCanvasShell; }
18
+ });
19
+ //# sourceMappingURL=workflow-canvas-shell.js.map
20
+ //# sourceMappingURL=workflow-canvas-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"workflow-canvas-shell.js"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ export { WorkflowCanvasShell } from '../chunk-HU3EAHFO.mjs';
3
+ import '../chunk-BH2AU3LG.mjs';
4
+ import '../chunk-I6WYV2AN.mjs';
5
+ import '../chunk-QWG2FMUN.mjs';
6
+ import '../chunk-D2JF6C3E.mjs';
7
+ import '../chunk-7VJ7CMMT.mjs';
8
+ import '../chunk-OZNTQROP.mjs';
9
+ import '../chunk-WNCPAWLC.mjs';
10
+ //# sourceMappingURL=workflow-canvas-shell.mjs.map
11
+ //# sourceMappingURL=workflow-canvas-shell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"workflow-canvas-shell.mjs"}