@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
@@ -24,16 +24,8 @@ __export(profile_card_exports, {
24
24
  default: () => profile_card_default
25
25
  });
26
26
  module.exports = __toCommonJS(profile_card_exports);
27
- var React = require("react");
28
- var {
29
- Flex,
30
- Typography,
31
- Icon,
32
- Chip,
33
- IconButton,
34
- Field,
35
- CollapsibleSection
36
- } = require("@fw/plugin-ui-kit");
27
+ var import_plugin_ui_kit = require("@fw/plugin-ui-kit");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
37
29
  var TIER_LABELS = {
38
30
  fast: "Fast",
39
31
  standard: "Mid",
@@ -69,8 +61,8 @@ function ProfileCard({ profile, activeInstances, onEdit, onDelete }) {
69
61
  if (preferences.maxCostPerRun) budgetParts.push(`$${preferences.maxCostPerRun.toFixed(2)}/run`);
70
62
  if (preferences.maxCostPerTask) budgetParts.push(`$${preferences.maxCostPerTask.toFixed(2)}/task`);
71
63
  const budgetText = budgetParts.length > 0 ? budgetParts.join(" / ") : null;
72
- return React.createElement(
73
- Flex,
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
65
+ import_plugin_ui_kit.Flex,
74
66
  {
75
67
  variant: "column-stretch-start-nowrap-6",
76
68
  style: {
@@ -78,224 +70,107 @@ function ProfileCard({ profile, activeInstances, onEdit, onDelete }) {
78
70
  borderRadius: "8px",
79
71
  border: "1px solid var(--color-border-default)",
80
72
  backgroundColor: "var(--color-surface-elevated)"
81
- }
82
- },
83
- // Header: Icon + Name + Edit/Delete buttons
84
- React.createElement(
85
- Flex,
86
- { variant: "row-center-start-nowrap-8" },
87
- React.createElement(
88
- Flex,
89
- {
90
- variant: "row-center-center-nowrap-0",
91
- style: { color: `var(--${color})`, flexShrink: 0 }
92
- },
93
- React.createElement(Icon, { name: icon || "smartToy", size: 18 })
94
- ),
95
- React.createElement(Typography, {
96
- variant: "caption-thick",
97
- color: "color-text-high",
98
- style: { flex: 1, minWidth: 0 }
99
- }, name),
100
- onEdit && React.createElement(IconButton, {
101
- icon: "edit",
102
- size: "xs",
103
- variant: "clear",
104
- onClick: () => onEdit(id),
105
- title: "Edit profile"
106
- }),
107
- onDelete && React.createElement(IconButton, {
108
- icon: "outlinedDelete",
109
- size: "xs",
110
- variant: "clear",
111
- color: "danger",
112
- onClick: () => onDelete(id),
113
- title: "Delete profile"
114
- })
115
- ),
116
- // Description
117
- description && React.createElement(Typography, {
118
- variant: "smallCaption-regular",
119
- color: "color-text-medium"
120
- }, description),
121
- // Divider
122
- React.createElement("div", {
123
- style: { borderTop: "1px solid var(--color-border-default)", margin: "2px 0" }
124
- }),
125
- // Capabilities
126
- capabilities.length > 0 && React.createElement(
127
- Field,
128
- { label: "Capabilities", labelWidth: 90, align: "start" },
129
- React.createElement(
130
- Flex,
131
- { variant: "row-center-start-wrap-4" },
132
- ...capabilities.map(
133
- (cap) => React.createElement(
134
- "span",
135
- { key: cap.name, title: cap.description },
136
- React.createElement(Chip, { label: cap.name, size: "small", color: "color-brand-main" })
73
+ },
74
+ children: [
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "row-center-start-nowrap-8", children: [
76
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
77
+ import_plugin_ui_kit.Flex,
78
+ {
79
+ variant: "row-center-center-nowrap-0",
80
+ style: { color: `var(--${color})`, flexShrink: 0 },
81
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Icon, { name: icon || "smartToy", size: 18, color: color || "color-text-medium" })
82
+ }
83
+ ),
84
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ import_plugin_ui_kit.Typography,
86
+ {
87
+ variant: "caption-thick",
88
+ color: "color-text-high",
89
+ style: { flex: 1, minWidth: 0 },
90
+ children: name
91
+ }
92
+ ),
93
+ onEdit && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
94
+ import_plugin_ui_kit.IconButton,
95
+ {
96
+ icon: "edit",
97
+ size: "xs",
98
+ variant: "clear",
99
+ onClick: () => onEdit(id),
100
+ title: "Edit profile"
101
+ }
102
+ ),
103
+ onDelete && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
+ import_plugin_ui_kit.IconButton,
105
+ {
106
+ icon: "outlinedDelete",
107
+ size: "xs",
108
+ variant: "clear",
109
+ color: "danger",
110
+ onClick: () => onDelete(id),
111
+ title: "Delete profile"
112
+ }
137
113
  )
138
- )
139
- )
140
- ),
141
- // Knowledge capabilities (from behavior)
142
- behavior?.capabilities && behavior.capabilities.length > 0 && React.createElement(
143
- Field,
144
- { label: "Knowledge", labelWidth: 90, align: "start" },
145
- React.createElement(
146
- Flex,
147
- { variant: "row-center-start-wrap-4" },
148
- ...behavior.capabilities.map(
149
- (capName) => React.createElement(
150
- "span",
151
- { key: capName },
152
- React.createElement(Chip, { label: capName, size: "small", color: "color-status-info" })
114
+ ] }),
115
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-medium", children: description }),
116
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { borderTop: "1px solid var(--color-border-default)", margin: "2px 0" } }),
117
+ capabilities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Capabilities", labelWidth: 90, align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Flex, { variant: "row-center-start-wrap-4", children: capabilities.map((cap) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { title: cap.description, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Chip, { label: cap.name, size: "small", color: "color-brand-main" }) }, cap.name)) }) }),
118
+ behavior?.capabilities && behavior.capabilities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Capabilities", labelWidth: 90, align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Flex, { variant: "row-center-start-wrap-4", children: behavior.capabilities.map((capName) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Chip, { label: capName, size: "small", color: "color-status-info" }) }, capName)) }) }),
119
+ behavior?.budget && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Budget", labelWidth: 90, align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-high", children: `$${behavior.budget.toFixed(2)}/task` }) }),
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Strategy", labelWidth: 90, align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "row-center-start-nowrap-6", children: [
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Icon, { name: STRATEGY_ICONS[preferences.costStrategy] || "syncAlt", size: 12, color: "color-text-medium" }),
122
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-high", children: STRATEGY_LABELS[preferences.costStrategy] ?? preferences.costStrategy })
123
+ ] }) }),
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Instances", labelWidth: 90, align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "row-center-start-nowrap-8", children: [
125
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-high", children: `${activeInstances}/${maxInstances} active` }),
126
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
127
+ import_plugin_ui_kit.Chip,
128
+ {
129
+ label: preferences.requireApproval ? "Approval required" : "Auto-approve",
130
+ size: "small",
131
+ color: preferences.requireApproval ? "color-status-caution" : "color-status-positive"
132
+ }
153
133
  )
154
- )
155
- )
156
- ),
157
- // Budget (from behavior)
158
- behavior?.budget && React.createElement(
159
- Field,
160
- { label: "Budget", labelWidth: 90, align: "center" },
161
- React.createElement(Typography, {
162
- variant: "smallCaption-regular",
163
- color: "color-text-high"
164
- }, `$${behavior.budget.toFixed(2)}/task`)
165
- ),
166
- // Strategy
167
- React.createElement(
168
- Field,
169
- { label: "Strategy", labelWidth: 90, align: "center" },
170
- React.createElement(
171
- Flex,
172
- { variant: "row-center-start-nowrap-6" },
173
- React.createElement(Icon, { name: STRATEGY_ICONS[preferences.costStrategy] || "syncAlt", size: 12 }),
174
- React.createElement(Typography, {
175
- variant: "smallCaption-regular",
176
- color: "color-text-high"
177
- }, STRATEGY_LABELS[preferences.costStrategy] ?? preferences.costStrategy)
178
- )
179
- ),
180
- // Instances + Approval
181
- React.createElement(
182
- Field,
183
- { label: "Instances", labelWidth: 90, align: "center" },
184
- React.createElement(
185
- Flex,
186
- { variant: "row-center-start-nowrap-8" },
187
- React.createElement(Typography, {
188
- variant: "smallCaption-regular",
189
- color: "color-text-high"
190
- }, `${activeInstances}/${maxInstances} active`),
191
- React.createElement(Chip, {
192
- label: preferences.requireApproval ? "Approval required" : "Auto-approve",
193
- size: "small",
194
- color: preferences.requireApproval ? "color-status-caution" : "color-status-positive"
195
- })
196
- )
197
- ),
198
- // Budget
199
- budgetText && React.createElement(
200
- Field,
201
- { label: "Budget", labelWidth: 90, align: "center" },
202
- React.createElement(Typography, {
203
- variant: "smallCaption-regular",
204
- color: "color-text-high"
205
- }, budgetText)
206
- ),
207
- // --- Behavior section (new) ---
208
- behavior && React.createElement(
209
- React.Fragment,
210
- null,
211
- // Phase pills
212
- React.createElement(
213
- Field,
214
- { label: "Phases", labelWidth: 90, align: "start" },
215
- React.createElement(
216
- Flex,
217
- { variant: "row-center-start-wrap-4" },
218
- ...Object.entries(behavior.phases).map(([phaseName, phase]) => {
134
+ ] }) }),
135
+ budgetText && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Budget", labelWidth: 90, align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-high", children: budgetText }) }),
136
+ behavior && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
137
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Phases", labelWidth: 90, align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Flex, { variant: "row-center-start-wrap-4", children: Object.entries(behavior.phases).map(([phaseName, phase]) => {
219
138
  const enabled = phase?.enabled !== false;
220
139
  const isLlmPhase = phase?.tier !== void 0;
221
140
  const label = isLlmPhase && enabled ? `${phaseName} (${tierLabel(phase)})` : phaseName;
222
- return React.createElement(
223
- "span",
224
- { key: phaseName },
225
- React.createElement(Chip, {
141
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
142
+ import_plugin_ui_kit.Chip,
143
+ {
226
144
  label,
227
145
  size: "small",
228
146
  color: enabled ? "color-status-positive" : "color-status-info",
229
147
  disabled: !enabled
230
- })
231
- );
232
- })
233
- )
234
- ),
235
- // Escalation
236
- React.createElement(
237
- Field,
238
- { label: "Escalation", labelWidth: 90, align: "center" },
239
- React.createElement(Typography, {
240
- variant: "smallCaption-regular",
241
- color: "color-text-high"
242
- }, `${behavior.escalation.maxAttempts} attempts, then ${behavior.escalation.onExhausted}`)
243
- ),
244
- // Scope (if set)
245
- behavior.scope && (behavior.scope.allowedPaths?.length || behavior.scope.blockedPaths?.length) && React.createElement(
246
- Field,
247
- { label: "Scope", labelWidth: 90, align: "start" },
248
- React.createElement(
249
- Flex,
250
- { variant: "column-stretch-start-nowrap-2" },
251
- behavior.scope.blockedPaths?.length && React.createElement(
252
- Flex,
253
- { variant: "row-center-start-wrap-4" },
254
- React.createElement(Typography, {
255
- variant: "smallCaption-regular",
256
- color: "color-text-subtle"
257
- }, "Blocked:"),
258
- ...behavior.scope.blockedPaths.map(
259
- (p) => React.createElement(
260
- "span",
261
- { key: p },
262
- React.createElement(Chip, { label: p, size: "small", color: "color-status-negative" })
263
- )
264
- )
265
- ),
266
- behavior.scope.allowedPaths?.length && React.createElement(
267
- Flex,
268
- { variant: "row-center-start-wrap-4" },
269
- React.createElement(Typography, {
270
- variant: "smallCaption-regular",
271
- color: "color-text-subtle"
272
- }, "Allowed:"),
273
- ...behavior.scope.allowedPaths.map(
274
- (p) => React.createElement(
275
- "span",
276
- { key: p },
277
- React.createElement(Chip, { label: p, size: "small", color: "color-status-positive" })
278
- )
279
- )
280
- )
281
- )
282
- )
283
- ),
284
- // Instructions — collapsible
285
- preferences.instructions && React.createElement(
286
- CollapsibleSection,
287
- {
288
- title: "Protocol",
289
- variant: "list",
290
- defaultExpanded: false
291
- },
292
- React.createElement(Typography, {
293
- variant: "smallCaption-regular",
294
- color: "color-text-subtle",
295
- style: { whiteSpace: "pre-wrap", lineHeight: "1.5", padding: "4px 0" }
296
- }, preferences.instructions)
297
- )
148
+ }
149
+ ) }, phaseName);
150
+ }) }) }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Escalation", labelWidth: 90, align: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-high", children: `${behavior.escalation.maxAttempts} attempts, then ${behavior.escalation.onExhausted}` }) }),
152
+ behavior.scope && (behavior.scope.allowedPaths?.length || behavior.scope.blockedPaths?.length) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Field, { label: "Scope", labelWidth: 90, align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "column-stretch-start-nowrap-2", children: [
153
+ behavior.scope.blockedPaths?.length && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "row-center-start-wrap-4", children: [
154
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-subtle", children: "Blocked:" }),
155
+ behavior.scope.blockedPaths.map((p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Chip, { label: p, size: "small", color: "color-status-negative" }) }, p))
156
+ ] }),
157
+ behavior.scope.allowedPaths?.length && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_plugin_ui_kit.Flex, { variant: "row-center-start-wrap-4", children: [
158
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Typography, { variant: "smallCaption-regular", color: "color-text-subtle", children: "Allowed:" }),
159
+ behavior.scope.allowedPaths.map((p) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.Chip, { label: p, size: "small", color: "color-status-positive" }) }, p))
160
+ ] })
161
+ ] }) })
162
+ ] }),
163
+ preferences.instructions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_ui_kit.CollapsibleSection, { title: "Protocol", variant: "list", defaultExpanded: false, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
164
+ import_plugin_ui_kit.Typography,
165
+ {
166
+ variant: "smallCaption-regular",
167
+ color: "color-text-subtle",
168
+ style: { whiteSpace: "pre-wrap", lineHeight: "1.5", padding: "4px 0" },
169
+ children: preferences.instructions
170
+ }
171
+ ) })
172
+ ]
173
+ }
298
174
  );
299
175
  }
300
176
  var profile_card_default = ProfileCard;
301
- module.exports = ProfileCard;