@synergenius/flow-weaver-pack-weaver 0.9.199 → 0.9.201

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 (181) hide show
  1. package/dist/ai-chat-provider.js +5 -5
  2. package/dist/ai-chat-provider.js.map +1 -1
  3. package/dist/bot/acceptance-merge.d.ts +21 -0
  4. package/dist/bot/acceptance-merge.d.ts.map +1 -0
  5. package/dist/bot/acceptance-merge.js +46 -0
  6. package/dist/bot/acceptance-merge.js.map +1 -0
  7. package/dist/bot/ai-client.d.ts +14 -2
  8. package/dist/bot/ai-client.d.ts.map +1 -1
  9. package/dist/bot/ai-client.js +71 -24
  10. package/dist/bot/ai-client.js.map +1 -1
  11. package/dist/bot/assistant-tools.js +3 -3
  12. package/dist/bot/assistant-tools.js.map +1 -1
  13. package/dist/bot/audit-logger.d.ts.map +1 -1
  14. package/dist/bot/audit-logger.js +34 -14
  15. package/dist/bot/audit-logger.js.map +1 -1
  16. package/dist/bot/audit-trail.d.ts +67 -0
  17. package/dist/bot/audit-trail.d.ts.map +1 -0
  18. package/dist/bot/audit-trail.js +153 -0
  19. package/dist/bot/audit-trail.js.map +1 -0
  20. package/dist/bot/behavior-defaults.d.ts +1 -1
  21. package/dist/bot/behavior-defaults.d.ts.map +1 -1
  22. package/dist/bot/behavior-defaults.js +7 -3
  23. package/dist/bot/behavior-defaults.js.map +1 -1
  24. package/dist/bot/capability-registry.d.ts +9 -0
  25. package/dist/bot/capability-registry.d.ts.map +1 -1
  26. package/dist/bot/capability-registry.js +81 -27
  27. package/dist/bot/capability-registry.js.map +1 -1
  28. package/dist/bot/capability-types.d.ts +10 -0
  29. package/dist/bot/capability-types.d.ts.map +1 -1
  30. package/dist/bot/cli-provider.d.ts.map +1 -1
  31. package/dist/bot/cli-provider.js +8 -7
  32. package/dist/bot/cli-provider.js.map +1 -1
  33. package/dist/bot/preflight.d.ts +48 -0
  34. package/dist/bot/preflight.d.ts.map +1 -0
  35. package/dist/bot/preflight.js +247 -0
  36. package/dist/bot/preflight.js.map +1 -0
  37. package/dist/bot/provider-shim.d.ts +74 -0
  38. package/dist/bot/provider-shim.d.ts.map +1 -0
  39. package/dist/bot/provider-shim.js +176 -0
  40. package/dist/bot/provider-shim.js.map +1 -0
  41. package/dist/bot/runner.d.ts +2 -0
  42. package/dist/bot/runner.d.ts.map +1 -1
  43. package/dist/bot/runner.js +60 -17
  44. package/dist/bot/runner.js.map +1 -1
  45. package/dist/bot/step-executor.d.ts.map +1 -1
  46. package/dist/bot/step-executor.js +72 -115
  47. package/dist/bot/step-executor.js.map +1 -1
  48. package/dist/bot/swarm-controller.d.ts +2 -0
  49. package/dist/bot/swarm-controller.d.ts.map +1 -1
  50. package/dist/bot/swarm-controller.js +92 -20
  51. package/dist/bot/swarm-controller.js.map +1 -1
  52. package/dist/bot/task-create-handler.d.ts +37 -0
  53. package/dist/bot/task-create-handler.d.ts.map +1 -0
  54. package/dist/bot/task-create-handler.js +124 -0
  55. package/dist/bot/task-create-handler.js.map +1 -0
  56. package/dist/bot/task-store.d.ts +1 -0
  57. package/dist/bot/task-store.d.ts.map +1 -1
  58. package/dist/bot/task-store.js +67 -0
  59. package/dist/bot/task-store.js.map +1 -1
  60. package/dist/bot/types.d.ts +1 -1
  61. package/dist/bot/types.d.ts.map +1 -1
  62. package/dist/bot/weaver-tools.d.ts.map +1 -1
  63. package/dist/bot/weaver-tools.js +7 -39
  64. package/dist/bot/weaver-tools.js.map +1 -1
  65. package/dist/node-types/agent-execute.d.ts +25 -8
  66. package/dist/node-types/agent-execute.d.ts.map +1 -1
  67. package/dist/node-types/agent-execute.js +89 -23
  68. package/dist/node-types/agent-execute.js.map +1 -1
  69. package/dist/node-types/bot-report.d.ts.map +1 -1
  70. package/dist/node-types/bot-report.js +24 -3
  71. package/dist/node-types/bot-report.js.map +1 -1
  72. package/dist/node-types/plan-task.d.ts +8 -17
  73. package/dist/node-types/plan-task.d.ts.map +1 -1
  74. package/dist/node-types/plan-task.js +217 -256
  75. package/dist/node-types/plan-task.js.map +1 -1
  76. package/dist/node-types/review-result.js +8 -6
  77. package/dist/node-types/review-result.js.map +1 -1
  78. package/dist/palindrome.d.ts +9 -0
  79. package/dist/palindrome.d.ts.map +1 -0
  80. package/dist/palindrome.js +14 -0
  81. package/dist/palindrome.js.map +1 -0
  82. package/dist/ui/approval-card.js +91 -82
  83. package/dist/ui/bot-activity.js +73 -56
  84. package/dist/ui/bot-config.js +48 -31
  85. package/dist/ui/bot-dashboard.js +52 -36
  86. package/dist/ui/bot-panel.js +230 -228
  87. package/dist/ui/bot-slot-card.js +100 -90
  88. package/dist/ui/bot-status.js +37 -15
  89. package/dist/ui/budget-bar.js +57 -31
  90. package/dist/ui/capability-editor.js +447 -378
  91. package/dist/ui/chat-task-result.js +78 -71
  92. package/dist/ui/decision-log.js +68 -81
  93. package/dist/ui/genesis-block.js +86 -95
  94. package/dist/ui/instance-stream-view.js +722 -0
  95. package/dist/ui/profile-card.js +96 -221
  96. package/dist/ui/profile-editor.js +532 -575
  97. package/dist/ui/settings-section.js +41 -45
  98. package/dist/ui/swarm-controls.js +212 -135
  99. package/dist/ui/swarm-dashboard.js +3992 -2715
  100. package/dist/ui/task-detail-view.js +415 -521
  101. package/dist/ui/task-editor.js +339 -390
  102. package/dist/ui/task-pool-list.js +60 -55
  103. package/dist/workflows/src/palindrome.d.ts +11 -0
  104. package/dist/workflows/src/palindrome.d.ts.map +1 -0
  105. package/dist/workflows/src/palindrome.js +16 -0
  106. package/dist/workflows/src/palindrome.js.map +1 -0
  107. package/dist/workflows/tests/palindrome.test.d.ts +2 -0
  108. package/dist/workflows/tests/palindrome.test.d.ts.map +1 -0
  109. package/dist/workflows/tests/palindrome.test.js +41 -0
  110. package/dist/workflows/tests/palindrome.test.js.map +1 -0
  111. package/dist/workflows/weaver-bot-batch.js +1 -1
  112. package/dist/workflows/weaver-bot-batch.js.map +1 -1
  113. package/dist/workflows/weaver-bot.js +1 -1
  114. package/dist/workflows/weaver-bot.js.map +1 -1
  115. package/flowweaver.manifest.json +1 -1
  116. package/package.json +8 -2
  117. package/src/ai-chat-provider.ts +5 -5
  118. package/src/bot/acceptance-merge.ts +62 -0
  119. package/src/bot/ai-client.ts +77 -21
  120. package/src/bot/assistant-tools.ts +3 -3
  121. package/src/bot/audit-logger.ts +42 -14
  122. package/src/bot/audit-trail.ts +211 -0
  123. package/src/bot/behavior-defaults.ts +7 -2
  124. package/src/bot/capability-registry.ts +84 -28
  125. package/src/bot/capability-types.ts +11 -0
  126. package/src/bot/cli-provider.ts +8 -7
  127. package/src/bot/preflight.ts +285 -0
  128. package/src/bot/provider-shim.ts +218 -0
  129. package/src/bot/runner.ts +68 -20
  130. package/src/bot/step-executor.ts +69 -127
  131. package/src/bot/swarm-controller.ts +94 -20
  132. package/src/bot/task-create-handler.ts +164 -0
  133. package/src/bot/task-store.ts +83 -0
  134. package/src/bot/types.ts +4 -1
  135. package/src/bot/weaver-tools.ts +7 -45
  136. package/src/node-types/agent-execute.ts +102 -16
  137. package/src/node-types/bot-report.ts +24 -3
  138. package/src/node-types/plan-task.ts +238 -280
  139. package/src/node-types/review-result.ts +8 -6
  140. package/src/palindrome.ts +14 -0
  141. package/src/ui/approval-card.tsx +78 -62
  142. package/src/ui/bot-activity.tsx +12 -10
  143. package/src/ui/bot-config.tsx +12 -10
  144. package/src/ui/bot-dashboard.tsx +13 -11
  145. package/src/ui/bot-panel.tsx +189 -171
  146. package/src/ui/bot-slot-card.tsx +125 -70
  147. package/src/ui/bot-status.tsx +4 -4
  148. package/src/ui/budget-bar.tsx +86 -25
  149. package/src/ui/capability-editor.tsx +392 -257
  150. package/src/ui/chat-task-result.tsx +81 -78
  151. package/src/ui/decision-log.tsx +76 -73
  152. package/src/ui/genesis-block.tsx +91 -61
  153. package/src/ui/instance-stream-view.tsx +861 -0
  154. package/src/ui/profile-card.tsx +195 -168
  155. package/src/ui/profile-editor.tsx +453 -370
  156. package/src/ui/settings-section.tsx +46 -39
  157. package/src/ui/swarm-controls.tsx +252 -123
  158. package/src/ui/swarm-dashboard.tsx +999 -466
  159. package/src/ui/task-detail-view.tsx +485 -428
  160. package/src/ui/task-editor.tsx +329 -271
  161. package/src/ui/task-pool-list.tsx +68 -62
  162. package/src/workflows/src/palindrome.ts +16 -0
  163. package/src/workflows/tests/palindrome.test.ts +49 -0
  164. package/src/workflows/weaver-bot-batch.ts +1 -1
  165. package/src/workflows/weaver-bot.ts +1 -1
  166. package/dist/ui/bot-constants.d.ts +0 -14
  167. package/dist/ui/bot-constants.d.ts.map +0 -1
  168. package/dist/ui/bot-constants.js +0 -189
  169. package/dist/ui/bot-constants.js.map +0 -1
  170. package/dist/ui/steer-api.d.ts +0 -7
  171. package/dist/ui/steer-api.d.ts.map +0 -1
  172. package/dist/ui/steer-api.js +0 -11
  173. package/dist/ui/steer-api.js.map +0 -1
  174. package/dist/ui/trace-to-timeline.d.ts +0 -91
  175. package/dist/ui/trace-to-timeline.d.ts.map +0 -1
  176. package/dist/ui/trace-to-timeline.js +0 -116
  177. package/dist/ui/trace-to-timeline.js.map +0 -1
  178. package/dist/ui/use-stream-timeline.d.ts +0 -50
  179. package/dist/ui/use-stream-timeline.d.ts.map +0 -1
  180. package/dist/ui/use-stream-timeline.js +0 -245
  181. package/dist/ui/use-stream-timeline.js.map +0 -1
@@ -5,9 +5,8 @@
5
5
  * Parent tasks show at top level; subtasks are indented below their parent.
6
6
  * Each row shows status icon, title (clickable), assigned bot tags, and priority badge.
7
7
  */
8
- const React = require('react');
9
- const { useState } = React;
10
- const { Flex, Typography, Icon, StatusIcon, Chip, ScrollArea, Badge, EmptyState } = require('@fw/plugin-ui-kit');
8
+ import React, { useState } from 'react';
9
+ import { Flex, Typography, Icon, StatusIcon, Chip, ScrollArea, Badge, EmptyState } from '@fw/plugin-ui-kit';
11
10
 
12
11
  // --- Types ---
13
12
 
@@ -103,52 +102,56 @@ function buildHierarchy(tasks: Task[]): Array<{ task: Task; indent: boolean }> {
103
102
 
104
103
  // --- Task Row component with hover ---
105
104
 
106
- function TaskRowItem({ task, indent, onClick }: { task: Task; indent: boolean; onClick: () => void }) {
105
+ function TaskRowItem({ task, indent, onClick }: { key?: string; task: Task; indent: boolean; onClick: () => void }) {
107
106
  const [hovered, setHovered] = useState(false);
108
107
  const style: React.CSSProperties = {
109
108
  ...(indent ? indentedRowStyle : rowBaseStyle),
110
109
  ...(hovered ? { backgroundColor: 'var(--color-surface-high)' } : undefined),
111
110
  };
112
111
 
113
- return React.createElement(Flex, {
114
- variant: 'row-center-start-nowrap-8',
115
- style,
116
- onClick,
117
- onMouseEnter: () => setHovered(true),
118
- onMouseLeave: () => setHovered(false),
119
- },
120
- // Status icon
121
- React.createElement(StatusIcon, {
122
- status: statusToIcon[task.status] || 'pending',
123
- size: 'sm',
124
- }),
125
-
126
- // Title
127
- React.createElement(Flex, {
128
- variant: 'row-center-start-nowrap-0',
129
- style: { flex: 1, minWidth: 0 },
130
- },
131
- React.createElement(Typography, {
132
- variant: 'caption-regular',
133
- color: task.status === 'cancelled'
134
- ? 'color-text-subtle'
135
- : 'color-text-high',
136
- truncate: true,
137
- style: task.status === 'cancelled' ? { textDecoration: 'line-through', opacity: 0.6 } : undefined,
138
- }, task.title),
139
- ),
140
-
141
- // Assigned profile as Chip
142
- task.assignedProfile && React.createElement(Chip, {
143
- label: task.assignedProfile,
144
- size: 'small',
145
- color: 'color-status-info',
146
- }),
147
-
148
- // Priority badge (only if > 0)
149
- task.priority > 0 && React.createElement(Badge, {
150
- variant: task.priority >= 3 ? 'warning' : 'info',
151
- }, `P${task.priority}`),
112
+ return (
113
+ <Flex
114
+ variant="row-center-start-nowrap-8"
115
+ style={style}
116
+ onClick={onClick}
117
+ onMouseEnter={() => setHovered(true)}
118
+ onMouseLeave={() => setHovered(false)}
119
+ >
120
+ <StatusIcon
121
+ status={statusToIcon[task.status] || 'pending'}
122
+ size="sm"
123
+ />
124
+
125
+ <Flex
126
+ variant="row-center-start-nowrap-0"
127
+ style={{ flex: 1, minWidth: 0 }}
128
+ >
129
+ <Typography
130
+ variant="caption-regular"
131
+ color={task.status === 'cancelled'
132
+ ? 'color-text-subtle'
133
+ : 'color-text-high'}
134
+ truncate={true}
135
+ style={task.status === 'cancelled' ? { textDecoration: 'line-through', opacity: 0.6 } : undefined}
136
+ >
137
+ {task.title}
138
+ </Typography>
139
+ </Flex>
140
+
141
+ {task.assignedProfile && (
142
+ <Chip
143
+ label={task.assignedProfile}
144
+ size="small"
145
+ color="color-status-info"
146
+ />
147
+ )}
148
+
149
+ {task.priority > 0 && (
150
+ <Badge variant={task.priority >= 3 ? 'warning' : 'info'}>
151
+ {`P${task.priority}`}
152
+ </Badge>
153
+ )}
154
+ </Flex>
152
155
  );
153
156
  }
154
157
 
@@ -156,31 +159,34 @@ function TaskRowItem({ task, indent, onClick }: { task: Task; indent: boolean; o
156
159
 
157
160
  function TaskPoolList({ tasks, onTaskClick }: TaskPoolListProps) {
158
161
  if (!tasks || tasks.length === 0) {
159
- return React.createElement(EmptyState, {
160
- icon: 'inbox',
161
- message: 'No tasks in the pool.',
162
- });
162
+ return (
163
+ <EmptyState
164
+ icon="inbox"
165
+ message="No tasks in the pool."
166
+ />
167
+ );
163
168
  }
164
169
 
165
170
  const rows = buildHierarchy(tasks);
166
171
 
167
- return React.createElement(Flex, {
168
- variant: 'column-stretch-start-nowrap-0',
169
- style: { height: '100%', overflow: 'hidden' },
170
- },
171
- React.createElement(ScrollArea, { style: { flex: 1 } },
172
- rows.map(({ task, indent }) =>
173
- React.createElement(TaskRowItem, {
174
- key: task.id,
175
- task,
176
- indent,
177
- onClick: () => onTaskClick(task.id),
178
- }),
179
- ),
180
- ),
172
+ return (
173
+ <Flex
174
+ variant="column-stretch-start-nowrap-0"
175
+ style={{ height: '100%', overflow: 'hidden' }}
176
+ >
177
+ <ScrollArea style={{ flex: 1 }}>
178
+ {rows.map(({ task, indent }) => (
179
+ <TaskRowItem
180
+ key={task.id}
181
+ task={task}
182
+ indent={indent}
183
+ onClick={() => onTaskClick(task.id)}
184
+ />
185
+ ))}
186
+ </ScrollArea>
187
+ </Flex>
181
188
  );
182
189
  }
183
190
 
184
191
  export { TaskPoolList };
185
192
  export default TaskPoolList;
186
- module.exports = TaskPoolList;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Checks if a string is a palindrome.
3
+ *
4
+ * Returns true if the input string is a palindrome (case-insensitive,
5
+ * ignoring non-alphanumeric characters).
6
+ *
7
+ * @param s - The string to check
8
+ * @returns true if the string is a palindrome, false otherwise
9
+ */
10
+ export function isPalindrome(s: string): boolean {
11
+ // Remove non-alphanumeric characters and convert to lowercase
12
+ const cleaned = s.replace(/[^a-z0-9]/gi, '').toLowerCase();
13
+
14
+ // Check if the cleaned string equals its reverse
15
+ return cleaned === cleaned.split('').reverse().join('');
16
+ }
@@ -0,0 +1,49 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { isPalindrome } from '../src/palindrome.js';
3
+
4
+ describe('isPalindrome', () => {
5
+ // Test case 1: Empty string
6
+ it('should return true for an empty string', () => {
7
+ expect(isPalindrome('')).toBe(true);
8
+ });
9
+
10
+ // Test case 2: Single character
11
+ it('should return true for a single character', () => {
12
+ expect(isPalindrome('a')).toBe(true);
13
+ });
14
+
15
+ // Test case 3: Known palindrome (lowercase)
16
+ it('should return true for a known palindrome "racecar"', () => {
17
+ expect(isPalindrome('racecar')).toBe(true);
18
+ });
19
+
20
+ // Test case 4: Non-palindrome
21
+ it('should return false for a non-palindrome "hello"', () => {
22
+ expect(isPalindrome('hello')).toBe(false);
23
+ });
24
+
25
+ // Test case 5: Mixed-case palindrome
26
+ it('should return true for a mixed-case palindrome "RaceCar"', () => {
27
+ expect(isPalindrome('RaceCar')).toBe(true);
28
+ });
29
+
30
+ // Additional test case: Palindrome with spaces and punctuation
31
+ it('should return true for "A man, a plan, a canal: Panama"', () => {
32
+ expect(isPalindrome('A man, a plan, a canal: Panama')).toBe(true);
33
+ });
34
+
35
+ // Additional test case: Palindrome with numbers
36
+ it('should return true for "12321"', () => {
37
+ expect(isPalindrome('12321')).toBe(true);
38
+ });
39
+
40
+ // Additional test case: Mixed alphanumeric palindrome
41
+ it('should return true for "a1b1a"', () => {
42
+ expect(isPalindrome('a1b1a')).toBe(true);
43
+ });
44
+
45
+ // Additional test case: Non-palindrome with special characters
46
+ it('should return false for "hello, world!"', () => {
47
+ expect(isPalindrome('hello, world!')).toBe(false);
48
+ });
49
+ });
@@ -942,7 +942,7 @@ export async function weaverBotBatch(
942
942
  await ctx.setVariable({ id: 'plan', portName: 'ctx', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, plan_ctx);
943
943
  const plan_modelOverride = undefined;
944
944
  await ctx.setVariable({ id: 'plan', portName: 'modelOverride', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, plan_modelOverride);
945
- const planResult = await weaverPlanTask(plan_execute, plan_ctx, plan_modelOverride);
945
+ const planResult = await weaverPlanTask(plan_ctx, plan_execute as unknown as boolean, plan_modelOverride);
946
946
  await ctx.setVariable({ id: 'plan', portName: 'ctx', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.ctx);
947
947
  await ctx.setVariable({ id: 'plan', portName: 'onSuccess', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.onSuccess);
948
948
  await ctx.setVariable({ id: 'plan', portName: 'onFailure', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.onFailure);
@@ -1262,7 +1262,7 @@ export async function weaverBot(
1262
1262
  await ctx.setVariable({ id: 'plan', portName: 'ctx', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, plan_ctx);
1263
1263
  const plan_modelOverride = resolvePlanModelIdx !== undefined ? await ctx.getVariable({ id: 'resolvePlanModel', portName: 'model', executionIndex: resolvePlanModelIdx }) as string : undefined;
1264
1264
  await ctx.setVariable({ id: 'plan', portName: 'modelOverride', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, plan_modelOverride);
1265
- const planResult = await weaverPlanTask(plan_execute, plan_ctx, plan_modelOverride);
1265
+ const planResult = await weaverPlanTask(plan_ctx, plan_execute as unknown as boolean, plan_modelOverride);
1266
1266
  await ctx.setVariable({ id: 'plan', portName: 'ctx', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.ctx);
1267
1267
  await ctx.setVariable({ id: 'plan', portName: 'onSuccess', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.onSuccess);
1268
1268
  await ctx.setVariable({ id: 'plan', portName: 'onFailure', executionIndex: planIdx, nodeTypeName: 'weaverPlanTask' }, planResult.onFailure);
@@ -1,14 +0,0 @@
1
- /**
2
- * Shared constants for bot panel components: icon catalog, colors, helpers.
3
- */
4
- export declare const ICON_CATALOG: {
5
- category: string;
6
- icons: string[];
7
- }[];
8
- export declare const BOT_COLORS: {
9
- label: string;
10
- token: string;
11
- }[];
12
- /** Convert camelCase icon name to searchable words: "cloudSync" -> "cloud sync" */
13
- export declare function iconToWords(name: string): string;
14
- //# sourceMappingURL=bot-constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot-constants.d.ts","sourceRoot":"","sources":["../../src/ui/bot-constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,YAAY,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAuK/D,CAAC;AAEF,eAAO,MAAM,UAAU;;;GAWtB,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -1,189 +0,0 @@
1
- /**
2
- * Shared constants for bot panel components: icon catalog, colors, helpers.
3
- */
4
- /* ── Categorised icon catalog ──────────────────────────────────────── */
5
- export const ICON_CATALOG = [
6
- {
7
- category: 'Actions',
8
- icons: [
9
- 'playArrow',
10
- 'stop',
11
- 'pause',
12
- 'restart',
13
- 'send',
14
- 'check',
15
- 'edit',
16
- 'copy',
17
- 'add',
18
- 'reset',
19
- 'resume',
20
- ],
21
- },
22
- {
23
- category: 'AI & Science',
24
- icons: ['smartToy', 'psychology', 'autoAwesome', 'modelTraining', 'biotech', 'science', 'ai'],
25
- },
26
- {
27
- category: 'Data & Storage',
28
- icons: ['database', 'dataObject', 'dataArray', 'tableChart', 'token', 'dns', 'cloudStorage'],
29
- },
30
- {
31
- category: 'Logic & Flow',
32
- icons: [
33
- 'altRoute',
34
- 'callSplit',
35
- 'callMerge',
36
- 'rule',
37
- 'filterAlt',
38
- 'sort',
39
- 'loop',
40
- 'repeat',
41
- 'compareArrows',
42
- 'swapHoriz',
43
- 'syncAlt',
44
- 'changeCircle',
45
- 'allInclusive',
46
- ],
47
- },
48
- {
49
- category: 'Cloud & Network',
50
- icons: [
51
- 'cloudSync',
52
- 'cloudUpload',
53
- 'cloudDownload',
54
- 'cloudDone',
55
- 'api',
56
- 'webhook',
57
- 'public',
58
- 'router',
59
- ],
60
- },
61
- {
62
- category: 'Communication',
63
- icons: ['email', 'chat', 'forum', 'notifications', 'campaign', 'rssFeed', 'sms'],
64
- },
65
- {
66
- category: 'Security',
67
- icons: [
68
- 'key',
69
- 'shield',
70
- 'security',
71
- 'vpnKey',
72
- 'adminPanel',
73
- 'policy',
74
- 'verified',
75
- 'lockClosed',
76
- 'lockOpened',
77
- ],
78
- },
79
- {
80
- category: 'Time',
81
- icons: [
82
- 'timer',
83
- 'alarm',
84
- 'hourglassEmpty',
85
- 'pendingActions',
86
- 'update',
87
- 'watchLater',
88
- 'scheduled',
89
- ],
90
- },
91
- {
92
- category: 'Tasks & Workflow',
93
- icons: [
94
- 'task',
95
- 'taskAlt',
96
- 'checklist',
97
- 'assignment',
98
- 'publish',
99
- 'build',
100
- 'construction',
101
- 'engineering',
102
- ],
103
- },
104
- {
105
- category: 'Analytics',
106
- icons: [
107
- 'analytics',
108
- 'insights',
109
- 'barChart',
110
- 'pieChart',
111
- 'trendingUp',
112
- 'showChart',
113
- 'leaderboard',
114
- 'monitoring',
115
- ],
116
- },
117
- {
118
- category: 'Flow Nodes',
119
- icons: [
120
- 'schema',
121
- 'hub',
122
- 'deviceHub',
123
- 'source',
124
- 'trigger',
125
- 'pulse',
126
- 'step',
127
- 'event',
128
- 'outlinedFlow',
129
- ],
130
- },
131
- {
132
- category: 'Files & Documents',
133
- icons: [
134
- 'file',
135
- 'filePresent',
136
- 'fileCopy',
137
- 'textSnippet',
138
- 'attachFile',
139
- 'uploadFile',
140
- 'save',
141
- 'upload',
142
- 'download',
143
- ],
144
- },
145
- {
146
- category: 'General',
147
- icons: [
148
- 'rocketLaunch',
149
- 'code',
150
- 'terminal',
151
- 'logs',
152
- 'info',
153
- 'help',
154
- 'list',
155
- 'category',
156
- 'hash',
157
- 'calendar',
158
- 'history',
159
- 'integration',
160
- 'layers',
161
- 'link',
162
- 'search',
163
- 'outlinedSettings',
164
- 'outlinedBug',
165
- 'collaboration',
166
- 'person',
167
- 'people',
168
- 'backup',
169
- 'healthAndSafety',
170
- ],
171
- },
172
- ];
173
- export const BOT_COLORS = [
174
- { label: 'Blue', token: 'color-node-blue-icon' },
175
- { label: 'Purple', token: 'color-node-purple-icon' },
176
- { label: 'Cyan', token: 'color-node-cyan-icon' },
177
- { label: 'Orange', token: 'color-node-orange-icon' },
178
- { label: 'Pink', token: 'color-node-pink-icon' },
179
- { label: 'Green', token: 'color-node-green-icon' },
180
- { label: 'Brand', token: 'color-brand-main' },
181
- { label: 'Accent', token: 'color-brand-alt' },
182
- { label: 'Positive', token: 'color-status-positive' },
183
- { label: 'Info', token: 'color-status-info' },
184
- ];
185
- /** Convert camelCase icon name to searchable words: "cloudSync" -> "cloud sync" */
186
- export function iconToWords(name) {
187
- return name.replace(/([A-Z])/g, ' $1').toLowerCase();
188
- }
189
- //# sourceMappingURL=bot-constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot-constants.js","sourceRoot":"","sources":["../../src/ui/bot-constants.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Steer API for the workspace — sends steering commands via the pack tool API.
3
- * Uses the workspace context's callTool instead of a hardcoded pack-tool URL.
4
- */
5
- export type SteerCommand = 'pause' | 'resume' | 'cancel' | 'redirect';
6
- export declare function sendSteerCommand(callTool: (tool: string, args?: Record<string, unknown>) => Promise<unknown>, command: SteerCommand, payload?: string): Promise<void>;
7
- //# sourceMappingURL=steer-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"steer-api.d.ts","sourceRoot":"","sources":["../../src/ui/steer-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtE,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC5E,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Steer API for the workspace — sends steering commands via the pack tool API.
3
- * Uses the workspace context's callTool instead of a hardcoded pack-tool URL.
4
- */
5
- export async function sendSteerCommand(callTool, command, payload) {
6
- await callTool('fw_weaver_steer', {
7
- command,
8
- ...(payload ? { payload } : {}),
9
- });
10
- }
11
- //# sourceMappingURL=steer-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"steer-api.js","sourceRoot":"","sources":["../../src/ui/steer-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4E,EAC5E,OAAqB,EACrB,OAAgB;IAEhB,MAAM,QAAQ,CAAC,iBAAiB,EAAE;QAChC,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC"}
@@ -1,91 +0,0 @@
1
- interface TimelineEntry {
2
- id: string;
3
- timestamp: Date;
4
- type: 'task-started' | 'node-started' | 'node-completed' | 'node-failed' | 'agent-request' | 'user-action' | 'task-completed' | 'task-failed';
5
- nodeId?: string;
6
- label: string;
7
- detail?: string;
8
- outputs?: Array<{
9
- portLabel: string;
10
- value: unknown;
11
- }>;
12
- duration?: number;
13
- color?: string;
14
- icon?: string;
15
- }
16
- export interface HistoricalTraceEvent {
17
- type: 'node-start' | 'node-complete' | 'node-error';
18
- nodeId: string;
19
- nodeType?: string;
20
- timestamp: number;
21
- durationMs?: number;
22
- error?: string;
23
- outputs?: Array<{
24
- portLabel: string;
25
- value: unknown;
26
- }>;
27
- }
28
- export interface HistoricalStepLog {
29
- step: string;
30
- status: 'ok' | 'blocked' | 'error';
31
- detail?: string;
32
- }
33
- export interface HistoricalPlan {
34
- summary: string;
35
- steps: Array<{
36
- id: string;
37
- operation: string;
38
- description: string;
39
- args?: Record<string, unknown>;
40
- }>;
41
- }
42
- export interface HistoricalAuditEvent {
43
- type: string;
44
- timestamp: string;
45
- runId: string;
46
- data?: Record<string, unknown>;
47
- }
48
- export interface HistoricalCostSummary {
49
- totalInputTokens: number;
50
- totalOutputTokens: number;
51
- totalCost: number;
52
- model: string;
53
- provider: string;
54
- entries: Array<{
55
- step: string;
56
- model: string;
57
- estimatedCost: number;
58
- }>;
59
- }
60
- export interface HistoricalRun {
61
- id: string;
62
- botId?: string;
63
- botName?: string;
64
- workflowFile?: string;
65
- instruction?: string;
66
- outcome: string;
67
- success?: boolean;
68
- durationMs?: number;
69
- duration?: number;
70
- summary?: string;
71
- /** Markdown report for rich UI display. */
72
- report?: string;
73
- outputs?: Record<string, unknown>;
74
- startedAt?: string;
75
- finishedAt?: string;
76
- provider?: string;
77
- cost?: number;
78
- trace?: HistoricalTraceEvent[];
79
- nodeMeta?: Record<string, {
80
- label?: string;
81
- color?: string;
82
- icon?: string;
83
- }>;
84
- stepLog?: HistoricalStepLog[];
85
- plan?: HistoricalPlan;
86
- costDetail?: HistoricalCostSummary;
87
- auditTrail?: HistoricalAuditEvent[];
88
- }
89
- export declare function traceToTimeline(run: HistoricalRun): TimelineEntry[];
90
- export {};
91
- //# sourceMappingURL=trace-to-timeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace-to-timeline.d.ts","sourceRoot":"","sources":["../../src/ui/trace-to-timeline.ts"],"names":[],"mappings":"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"}