@burdenoff/microfe-vibecontrols 2026.524.5 → 2026.524.7

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.
@@ -8,15 +8,16 @@ import { SdkSelector as o } from "./controls/SdkSelector.js";
8
8
  import { resolveProviderDefaultModel as s } from "./modelDefaults.js";
9
9
  import { useVoiceMode as ee } from "../../hooks/useVoiceMode.js";
10
10
  import { schedulePrompt as te } from "../../services/schedulerApi.js";
11
- import { McpServerSelector as ne } from "./controls/McpServerSelector.js";
12
- import { VoiceToggle as re } from "./controls/VoiceToggle.js";
13
- import { FileAttachButton as ie, createDropHandlers as ae } from "./controls/FileAttachButton.js";
14
- import { ContextLevelToggle as oe } from "./controls/ContextLevelToggle.js";
15
- import { useCallback as c, useEffect as l, useMemo as u, useRef as se, useState as d } from "react";
11
+ import { AutonomySelector as ne } from "./controls/AutonomySelector.js";
12
+ import { McpServerSelector as re } from "./controls/McpServerSelector.js";
13
+ import { VoiceToggle as ie } from "./controls/VoiceToggle.js";
14
+ import { FileAttachButton as ae, createDropHandlers as oe } from "./controls/FileAttachButton.js";
15
+ import { ContextLevelToggle as se } from "./controls/ContextLevelToggle.js";
16
+ import { useCallback as c, useEffect as l, useMemo as u, useRef as d, useState as f } from "react";
16
17
  import { ArrowUp as ce, ChevronDown as le, Clock as ue, Square as de, X as fe } from "lucide-react";
17
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
18
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
18
19
  //#region src/components/agent-manager/AgentManagerInputArea.tsx
19
- var m = [
20
+ var pe = [
20
21
  {
21
22
  command: "/new",
22
23
  description: "Create new session"
@@ -54,7 +55,7 @@ var m = [
54
55
  command: "/help",
55
56
  description: "Show available commands"
56
57
  }
57
- ], h = [
58
+ ], me = [
58
59
  "claude",
59
60
  "codex",
60
61
  "gemini",
@@ -71,234 +72,239 @@ var m = [
71
72
  "pi",
72
73
  "aider",
73
74
  "plandex"
74
- ], g = ["sdk", "cli"];
75
- function _({ agentId: _, sessionId: v, onSend: y, onCancel: b, mcpServers: pe = [], agentTunnelUrl: x, agentApiKey: S }) {
76
- let [C, w] = d(""), [T, E] = d([]), [me, D] = d(!1), [he, ge] = d(""), [O, k] = d(!1), [A, j] = d(!1), [M, N] = d(""), [_e, P] = d([]), F = e(), I = se(null), L = se(null);
75
+ ], h = ["sdk", "cli"];
76
+ function g({ agentId: g, sessionId: _, onSend: v, onCancel: he, mcpServers: ge = [], agentTunnelUrl: y, agentApiKey: b }) {
77
+ let [x, S] = f(""), [C, w] = f([]), [_e, T] = f(!1), [E, ve] = f(""), [D, O] = f(!1), [k, A] = f(!1), [j, M] = f(""), [ye, N] = f([]), P = e(), F = d(null), I = d(null);
77
78
  l(() => {
78
- I.current?.focus({ preventScroll: !0 });
79
+ F.current?.focus({ preventScroll: !0 });
79
80
  }, []);
80
- let R = i((e) => e.sessionStates[v]), z = i((e) => e.setSessionModel), B = i((e) => e.setSessionSdk), V = i((e) => e.setSessionMode), ve = i((e) => e.toggleVoice), ye = i((e) => e.toggleThinking), be = i((e) => e.setSessionContextLevel), xe = i((e) => e.setSessionVibe), Se = i((e) => e.setSessionRootPath), H = i((e) => e.openSession), U = i((e) => e.addMessage), { vibes: Ce, agents: W } = t(), { active: G } = n(u(() => W.find((e) => e.id === _) ?? null, [W, _])?.id ?? null), K = u(() => ({
81
- id: _,
82
- profile: G
83
- }), [_, G]), { isListening: q, transcript: J, startListening: we, stopListening: Te } = ee(), Y = R?.status === "streaming", X = C.trim().length > 0 && !Y;
81
+ let L = i((e) => e.sessionStates[_]), R = i((e) => e.setSessionModel), z = i((e) => e.setSessionSdk), B = i((e) => e.setSessionMode), be = i((e) => e.setSessionPermissionMode), xe = i((e) => e.toggleVoice), Se = i((e) => e.toggleThinking), Ce = i((e) => e.setSessionContextLevel), we = i((e) => e.setSessionVibe), Te = i((e) => e.setSessionRootPath), V = i((e) => e.openSession), H = i((e) => e.addMessage), { vibes: Ee, agents: U } = t(), { active: W } = n(u(() => U.find((e) => e.id === g) ?? null, [U, g])?.id ?? null), G = u(() => ({
82
+ id: g,
83
+ profile: W
84
+ }), [g, W]), { isListening: K, transcript: q, startListening: De, stopListening: Oe } = ee(), J = L?.status === "streaming", Y = x.trim().length > 0 && !J;
84
85
  l(() => {
85
- J && q && w((e) => e + (e ? " " : "") + J);
86
- }, [J, q]), l(() => {
86
+ q && K && S((e) => e + (e ? " " : "") + q);
87
+ }, [q, K]), l(() => {
87
88
  let e = !1;
88
- return r(K).then((t) => {
89
- e || P(t);
89
+ return r(G).then((t) => {
90
+ e || N(t);
90
91
  }).catch(() => {
91
- e || P([]);
92
+ e || N([]);
92
93
  }), () => {
93
94
  e = !0;
94
95
  };
95
- }, [K]), l(() => {
96
- C.startsWith("/") && !C.includes(" ") ? (D(!0), ge(C.slice(1))) : D(!1);
97
- }, [C]);
98
- let Ee = u(() => m.filter((e) => e.command.toLowerCase().includes(`/${he.toLowerCase()}`)), [he]);
96
+ }, [G]), l(() => {
97
+ x.startsWith("/") && !x.includes(" ") ? (T(!0), ve(x.slice(1))) : T(!1);
98
+ }, [x]);
99
+ let X = u(() => pe.filter((e) => e.command.toLowerCase().includes(`/${E.toLowerCase()}`)), [E]);
99
100
  l(() => {
100
- let e = I.current;
101
+ let e = F.current;
101
102
  e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, 200)}px`);
102
- }, [C]), l(() => {
103
- if (!O && !A) return;
103
+ }, [x]), l(() => {
104
+ if (!D && !k) return;
104
105
  let e = (e) => {
105
- L.current && !L.current.contains(e.target) && (k(!1), j(!1));
106
+ I.current && !I.current.contains(e.target) && (O(!1), A(!1));
106
107
  };
107
108
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
108
- }, [O, A]);
109
+ }, [D, k]);
109
110
  let Z = c((e) => {
110
- U(v, {
111
+ H(_, {
111
112
  id: `sys-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
112
113
  role: "system",
113
114
  content: e,
114
115
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
115
116
  });
116
- }, [U, v]), De = c(async () => {
117
- if (!(!C.trim() || !M || !x || !S)) try {
117
+ }, [H, _]), ke = c(async () => {
118
+ if (!(!x.trim() || !j || !y || !b)) try {
118
119
  let e = await te({
119
- sessionId: v,
120
- agentTunnelUrl: x,
121
- agentApiKey: S,
122
- prompt: C.trim(),
123
- scheduledAt: new Date(M).toISOString()
120
+ sessionId: _,
121
+ agentTunnelUrl: y,
122
+ agentApiKey: b,
123
+ prompt: x.trim(),
124
+ scheduledAt: new Date(j).toISOString()
124
125
  });
125
- Z(`Prompt scheduled for ${new Date(e.scheduledAt).toLocaleString()} (Job: ${e.jobId.slice(0, 8)})`), w(""), N(""), j(!1), k(!1);
126
+ Z(`Prompt scheduled for ${new Date(e.scheduledAt).toLocaleString()} (Job: ${e.jobId.slice(0, 8)})`), S(""), M(""), A(!1), O(!1);
126
127
  } catch (e) {
127
128
  Z(`Failed to schedule: ${e instanceof Error ? e.message : "Unknown error"}`);
128
129
  }
129
130
  }, [
130
- C,
131
- M,
132
131
  x,
133
- S,
134
- v,
132
+ j,
133
+ y,
134
+ b,
135
+ _,
135
136
  Z
136
137
  ]), Q = c((e) => {
137
138
  let t = e.trim().split(/\s+/), n = t[0].toLowerCase(), r = t.slice(1).join(" ");
138
139
  switch (n) {
139
140
  case "/new":
140
- H(`session-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`);
141
+ V(`session-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`);
141
142
  break;
142
143
  case "/rename":
143
144
  Z(r ? `Session renamed to "${r}".` : "Usage: /rename <name>");
144
145
  break;
145
146
  case "/model":
146
- r ? (z(v, r), Z(`Model switched to "${r}".`)) : Z("Usage: /model <model-name>");
147
+ r ? (R(_, r), Z(`Model switched to "${r}".`)) : Z("Usage: /model <model-name>");
147
148
  break;
148
149
  case "/sdk":
149
- if (r && h.includes(r)) {
150
+ if (r && me.includes(r)) {
150
151
  let e = r;
151
- B(v, e), s(K, e, R?.model ?? "default").then((e) => z(v, e)).catch(() => z(v, R?.model ?? "default")), Z(`SDK switched to "${r}".`);
152
- } else Z(`Usage: /sdk <${h.join("|")}>`);
152
+ z(_, e), s(G, e, L?.model ?? "default").then((e) => R(_, e)).catch(() => R(_, L?.model ?? "default")), Z(`SDK switched to "${r}".`);
153
+ } else Z(`Usage: /sdk <${me.join("|")}>`);
153
154
  break;
154
155
  case "/mode":
155
- r && g.includes(r) ? (V(v, r), Z(`Mode switched to "${r}".`)) : Z(`Usage: /mode <${g.join("|")}>`);
156
+ r && h.includes(r) ? (B(_, r), Z(`Mode switched to "${r}".`)) : Z(`Usage: /mode <${h.join("|")}>`);
156
157
  break;
157
158
  case "/export": {
158
- let e = r === "md" ? "md" : "json", t = R?.messages ?? [], n = e === "json" ? JSON.stringify(t, null, 2) : t.map((e) => `**${e.role}** (${e.timestamp ?? ""}):\n${e.content ?? ""}`).join("\n\n---\n\n"), i = new Blob([n], { type: e === "json" ? "application/json" : "text/markdown" }), a = URL.createObjectURL(i), o = document.createElement("a");
159
- o.href = a, o.download = `conversation-${v}.${e}`, o.click(), URL.revokeObjectURL(a), Z(`Conversation exported as ${e}.`);
159
+ let e = r === "md" ? "md" : "json", t = L?.messages ?? [], n = e === "json" ? JSON.stringify(t, null, 2) : t.map((e) => `**${e.role}** (${e.timestamp ?? ""}):\n${e.content ?? ""}`).join("\n\n---\n\n"), i = new Blob([n], { type: e === "json" ? "application/json" : "text/markdown" }), a = URL.createObjectURL(i), o = document.createElement("a");
160
+ o.href = a, o.download = `conversation-${_}.${e}`, o.click(), URL.revokeObjectURL(a), Z(`Conversation exported as ${e}.`);
160
161
  break;
161
162
  }
162
163
  case "/clear":
163
164
  Z("Conversation cleared.");
164
165
  break;
165
166
  case "/help":
166
- Z(`Available commands:\n${m.map((e) => ` ${e.command}${e.args ? " " + e.args : ""} - ${e.description}`).join("\n")}`);
167
+ Z(`Available commands:\n${pe.map((e) => ` ${e.command}${e.args ? " " + e.args : ""} - ${e.description}`).join("\n")}`);
167
168
  break;
168
169
  default: Z(`Unknown command: ${n}. Type /help for available commands.`);
169
170
  }
170
171
  }, [
171
- v,
172
- R?.messages,
173
- R?.model,
174
- H,
172
+ _,
173
+ L?.messages,
174
+ L?.model,
175
+ V,
176
+ R,
175
177
  z,
176
178
  B,
177
- V,
178
179
  Z,
179
- K
180
- ]), Oe = c((e) => {
181
- e.args ? w(`${e.command} `) : (Q(e.command), w("")), D(!1), I.current?.focus();
180
+ G
181
+ ]), Ae = c((e) => {
182
+ e.args ? S(`${e.command} `) : (Q(e.command), S("")), T(!1), F.current?.focus();
182
183
  }, [Q]), $ = c(() => {
183
- if (!X) return;
184
- let e = C.trim();
184
+ if (!Y) return;
185
+ let e = x.trim();
185
186
  if (e.startsWith("/")) {
186
- Q(e), w(""), E([]);
187
+ Q(e), S(""), w([]);
187
188
  return;
188
189
  }
189
- y(e, T.length > 0 ? T : void 0), w(""), E([]);
190
+ v(e, C.length > 0 ? C : void 0), S(""), w([]);
190
191
  }, [
191
- X,
192
+ Y,
193
+ x,
192
194
  C,
193
- T,
194
- y,
195
+ v,
195
196
  Q
196
- ]), ke = c((e) => {
197
+ ]), je = c((e) => {
197
198
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), $());
198
- }, [$]), Ae = c(() => {
199
- b?.();
200
- }, [b]), je = c((e) => {
201
- E((t) => [...t, ...e]);
202
- }, []), Me = c((e) => {
203
- E((t) => t.filter((t, n) => n !== e));
204
- }, []), Ne = ae(je);
205
- return R ? /* @__PURE__ */ p("div", {
199
+ }, [$]), Me = c(() => {
200
+ he?.();
201
+ }, [he]), Ne = c((e) => {
202
+ w((t) => [...t, ...e]);
203
+ }, []), Pe = c((e) => {
204
+ w((t) => t.filter((t, n) => n !== e));
205
+ }, []), Fe = oe(Ne);
206
+ return L ? /* @__PURE__ */ m("div", {
206
207
  className: "relative z-30 border-t border-border-default bg-bg-surface",
207
- ...Ne,
208
+ ...Fe,
208
209
  children: [
209
- me && Ee.length > 0 && /* @__PURE__ */ f("div", {
210
+ _e && X.length > 0 && /* @__PURE__ */ p("div", {
210
211
  className: "absolute bottom-full left-0 right-0 mb-1 mx-3 bg-bg-elevated border border-border-default rounded-lg shadow-lg max-h-48 overflow-y-auto z-50",
211
- children: Ee.map((e) => /* @__PURE__ */ p("button", {
212
+ children: X.map((e) => /* @__PURE__ */ m("button", {
212
213
  type: "button",
213
- onClick: () => Oe(e),
214
+ onClick: () => Ae(e),
214
215
  className: "flex items-center gap-2 w-full px-3 py-2 text-left hover:bg-bg-sunken transition-colors",
215
216
  children: [
216
- /* @__PURE__ */ f("span", {
217
+ /* @__PURE__ */ p("span", {
217
218
  className: "font-mono text-xs text-text-primary",
218
219
  children: e.command
219
220
  }),
220
- e.args && /* @__PURE__ */ f("span", {
221
+ e.args && /* @__PURE__ */ p("span", {
221
222
  className: "text-text-tertiary text-xs",
222
223
  children: e.args
223
224
  }),
224
- /* @__PURE__ */ f("span", {
225
+ /* @__PURE__ */ p("span", {
225
226
  className: "text-text-secondary text-xs ml-auto",
226
227
  children: e.description
227
228
  })
228
229
  ]
229
230
  }, e.command))
230
231
  }),
231
- T.length > 0 && /* @__PURE__ */ f("div", {
232
+ C.length > 0 && /* @__PURE__ */ p("div", {
232
233
  className: "flex items-center gap-2 px-3 pt-2 overflow-x-auto",
233
- children: T.map((e, t) => /* @__PURE__ */ p("div", {
234
+ children: C.map((e, t) => /* @__PURE__ */ m("div", {
234
235
  className: "flex items-center gap-1.5 px-2 py-1 rounded-md bg-bg-elevated border border-border-default text-xs text-text-secondary",
235
- children: [/* @__PURE__ */ f("span", {
236
+ children: [/* @__PURE__ */ p("span", {
236
237
  className: "truncate max-w-[120px]",
237
238
  children: e.name
238
- }), /* @__PURE__ */ f("button", {
239
+ }), /* @__PURE__ */ p("button", {
239
240
  type: "button",
240
- onClick: () => Me(t),
241
+ onClick: () => Pe(t),
241
242
  className: "p-0.5 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
242
- children: /* @__PURE__ */ f(fe, { className: "w-3 h-3" })
243
+ children: /* @__PURE__ */ p(fe, { className: "w-3 h-3" })
243
244
  })]
244
245
  }, `${e.name}-${t}`))
245
246
  }),
246
- /* @__PURE__ */ p("div", {
247
+ /* @__PURE__ */ m("div", {
247
248
  className: "flex flex-wrap items-center gap-1 px-3 pt-2 pb-1 overflow-x-auto",
248
249
  children: [
249
- /* @__PURE__ */ f(o, {
250
- sdk: R.sdk,
251
- mode: R.mode,
252
- providers: _e,
250
+ /* @__PURE__ */ p(o, {
251
+ sdk: L.sdk,
252
+ mode: L.mode,
253
+ providers: ye,
253
254
  onSdkChange: (e) => {
254
- B(v, e), s(K, e, R.model ?? "default").then((e) => z(v, e)).catch(() => z(v, R.model ?? "default"));
255
+ z(_, e), s(G, e, L.model ?? "default").then((e) => R(_, e)).catch(() => R(_, L.model ?? "default"));
255
256
  },
256
- onModeChange: (e) => V(v, e)
257
+ onModeChange: (e) => B(_, e)
257
258
  }),
258
- /* @__PURE__ */ f(a, {
259
- value: R.model,
260
- onChange: (e) => z(v, e),
261
- provider: R.sdk,
262
- agentId: _
259
+ /* @__PURE__ */ p(a, {
260
+ value: L.model,
261
+ onChange: (e) => R(_, e),
262
+ provider: L.sdk,
263
+ agentId: g
263
264
  }),
264
- /* @__PURE__ */ f(ne, {
265
- selected: R.mcpServers,
266
- available: pe,
265
+ /* @__PURE__ */ p(ne, {
266
+ value: L.permissionMode,
267
+ mode: L.mode,
268
+ onChange: (e) => be(_, e)
269
+ }),
270
+ /* @__PURE__ */ p(re, {
271
+ selected: L.mcpServers,
272
+ available: ge,
267
273
  onChange: () => {}
268
274
  }),
269
- /* @__PURE__ */ f(oe, {
275
+ /* @__PURE__ */ p(se, {
270
276
  agentId: "",
271
- sessionId: v,
272
- contextLevel: R.contextLevel,
273
- rootPath: R.rootPath,
277
+ sessionId: _,
278
+ contextLevel: L.contextLevel,
279
+ rootPath: L.rootPath,
274
280
  onChange: (e, t, n) => {
275
- be(v, e), Se(v, t ?? null), xe(v, n ?? null, t ?? null);
281
+ Ce(_, e), Te(_, t ?? null), we(_, n ?? null, t ?? null);
276
282
  },
277
- vibes: Ce.map((e) => ({
283
+ vibes: Ee.map((e) => ({
278
284
  id: e.id,
279
285
  name: e.name,
280
286
  path: e.path
281
287
  }))
282
288
  }),
283
- /* @__PURE__ */ f("div", { className: "flex-1" }),
284
- /* @__PURE__ */ f("button", {
289
+ /* @__PURE__ */ p("div", { className: "flex-1" }),
290
+ /* @__PURE__ */ p("button", {
285
291
  type: "button",
286
- onClick: () => ye(v),
287
- className: `p-1.5 rounded text-xs font-medium transition-colors ${R.showThinking ? "bg-action-primary-bg/10 text-action-primary-text" : "text-text-tertiary hover:text-text-secondary"}`,
288
- title: R.showThinking ? F("vibecontrols.agentManager.inputArea.hideThinking", "Hide thinking") : F("vibecontrols.agentManager.inputArea.showThinking", "Show thinking"),
292
+ onClick: () => Se(_),
293
+ className: `p-1.5 rounded text-xs font-medium transition-colors ${L.showThinking ? "bg-action-primary-bg/10 text-action-primary-text" : "text-text-tertiary hover:text-text-secondary"}`,
294
+ title: L.showThinking ? P("vibecontrols.agentManager.inputArea.hideThinking", "Hide thinking") : P("vibecontrols.agentManager.inputArea.showThinking", "Show thinking"),
289
295
  children: "Think"
290
296
  }),
291
- /* @__PURE__ */ p("button", {
297
+ /* @__PURE__ */ m("button", {
292
298
  type: "button",
293
299
  onClick: () => {
294
- let e = window.prompt("Context history limit (messages sent with each prompt):", String(R.contextHistoryLimit));
300
+ let e = window.prompt("Context history limit (messages sent with each prompt):", String(L.contextHistoryLimit));
295
301
  if (e !== null) {
296
302
  let t = parseInt(e, 10);
297
303
  if (!isNaN(t) && t >= 0) {
298
- let e = i.getState().sessionStates[v];
304
+ let e = i.getState().sessionStates[_];
299
305
  e && i.setState((n) => ({ sessionStates: {
300
306
  ...n.sessionStates,
301
- [v]: {
307
+ [_]: {
302
308
  ...e,
303
309
  contextHistoryLimit: t
304
310
  }
@@ -307,84 +313,84 @@ function _({ agentId: _, sessionId: v, onSend: y, onCancel: b, mcpServers: pe =
307
313
  }
308
314
  },
309
315
  className: "p-1.5 rounded text-[10px] font-mono text-text-tertiary hover:text-text-secondary transition-colors",
310
- title: `Context history: last ${R.contextHistoryLimit} messages sent with each prompt`,
311
- children: ["H:", R.contextHistoryLimit]
316
+ title: `Context history: last ${L.contextHistoryLimit} messages sent with each prompt`,
317
+ children: ["H:", L.contextHistoryLimit]
312
318
  }),
313
- /* @__PURE__ */ f(re, {
314
- enabled: R.voiceEnabled,
319
+ /* @__PURE__ */ p(ie, {
320
+ enabled: L.voiceEnabled,
315
321
  onToggle: () => {
316
- ve(v), R.voiceEnabled ? Te() : we();
322
+ xe(_), L.voiceEnabled ? Oe() : De();
317
323
  },
318
- isListening: q
324
+ isListening: K
319
325
  }),
320
- /* @__PURE__ */ f(ie, { onFileSelect: je })
326
+ /* @__PURE__ */ p(ae, { onFileSelect: Ne })
321
327
  ]
322
328
  }),
323
- /* @__PURE__ */ p("div", {
329
+ /* @__PURE__ */ m("div", {
324
330
  className: "flex items-end gap-2 px-3 pb-3 pt-1",
325
- children: [/* @__PURE__ */ f("textarea", {
326
- ref: I,
327
- value: C,
328
- onChange: (e) => w(e.target.value),
329
- onKeyDown: ke,
330
- placeholder: F("vibecontrols.agentManager.inputArea.placeholder", "Type a message or / for commands... (Enter to send)"),
331
+ children: [/* @__PURE__ */ p("textarea", {
332
+ ref: F,
333
+ value: x,
334
+ onChange: (e) => S(e.target.value),
335
+ onKeyDown: je,
336
+ placeholder: P("vibecontrols.agentManager.inputArea.placeholder", "Type a message or / for commands... (Enter to send)"),
331
337
  rows: 1,
332
338
  className: "flex-1 resize-none rounded-lg border border-border-default bg-bg-primary px-3 py-2 text-sm text-text-primary placeholder:text-text-tertiary focus:outline-none focus:border-border-strong transition-colors",
333
- disabled: Y
334
- }), Y ? /* @__PURE__ */ f("button", {
339
+ disabled: J
340
+ }), J ? /* @__PURE__ */ p("button", {
335
341
  type: "button",
336
- onClick: Ae,
342
+ onClick: Me,
337
343
  className: "flex-shrink-0 p-2 rounded-lg bg-status-error-bg text-status-error-text hover:opacity-90 transition-opacity",
338
- title: F("vibecontrols.agentManager.inputArea.cancel", "Cancel"),
339
- children: /* @__PURE__ */ f(de, { className: "w-4 h-4" })
340
- }) : /* @__PURE__ */ p("div", {
344
+ title: P("vibecontrols.agentManager.inputArea.cancel", "Cancel"),
345
+ children: /* @__PURE__ */ p(de, { className: "w-4 h-4" })
346
+ }) : /* @__PURE__ */ m("div", {
341
347
  className: "flex items-end flex-shrink-0 relative",
342
- ref: L,
348
+ ref: I,
343
349
  children: [
344
- /* @__PURE__ */ f("button", {
350
+ /* @__PURE__ */ p("button", {
345
351
  type: "button",
346
352
  onClick: $,
347
- disabled: !X,
353
+ disabled: !Y,
348
354
  className: "p-2 rounded-l-lg bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
349
- title: F("vibecontrols.agentManager.inputArea.send", "Send (Enter)"),
350
- children: /* @__PURE__ */ f(ce, { className: "w-4 h-4" })
355
+ title: P("vibecontrols.agentManager.inputArea.send", "Send (Enter)"),
356
+ children: /* @__PURE__ */ p(ce, { className: "w-4 h-4" })
351
357
  }),
352
- /* @__PURE__ */ f("button", {
358
+ /* @__PURE__ */ p("button", {
353
359
  type: "button",
354
- onClick: () => k(!O),
355
- disabled: !X,
360
+ onClick: () => O(!D),
361
+ disabled: !Y,
356
362
  className: "ml-1 p-2 rounded-r-lg border-l border-action-primary-text/20 bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
357
- title: F("vibecontrols.agentManager.inputArea.scheduleSend", "Schedule send"),
358
- children: /* @__PURE__ */ f(le, { className: "w-3 h-3" })
363
+ title: P("vibecontrols.agentManager.inputArea.scheduleSend", "Schedule send"),
364
+ children: /* @__PURE__ */ p(le, { className: "w-3 h-3" })
359
365
  }),
360
- O && /* @__PURE__ */ f("div", {
366
+ D && /* @__PURE__ */ p("div", {
361
367
  className: "absolute bottom-full right-0 mb-1 w-56 bg-bg-surface border border-border-default rounded-md shadow-lg py-1 z-50",
362
- children: A ? /* @__PURE__ */ p("div", {
368
+ children: k ? /* @__PURE__ */ m("div", {
363
369
  className: "px-3 py-2 space-y-2",
364
370
  children: [
365
- /* @__PURE__ */ f("label", {
371
+ /* @__PURE__ */ p("label", {
366
372
  className: "block text-[11px] font-medium text-text-secondary",
367
- children: F("vibecontrols.agentManager.inputArea.sendAt", "Send at:")
373
+ children: P("vibecontrols.agentManager.inputArea.sendAt", "Send at:")
368
374
  }),
369
- /* @__PURE__ */ f("input", {
375
+ /* @__PURE__ */ p("input", {
370
376
  type: "datetime-local",
371
- value: M,
372
- onChange: (e) => N(e.target.value),
377
+ value: j,
378
+ onChange: (e) => M(e.target.value),
373
379
  className: "w-full px-2 py-1 text-xs rounded border border-border-default bg-bg-primary text-text-primary focus:outline-none focus:border-border-strong"
374
380
  }),
375
- /* @__PURE__ */ f("button", {
381
+ /* @__PURE__ */ p("button", {
376
382
  type: "button",
377
- onClick: () => void De(),
378
- disabled: !M || !x || !S,
383
+ onClick: () => void ke(),
384
+ disabled: !j || !y || !b,
379
385
  className: "w-full px-2 py-1.5 text-xs font-medium rounded bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-40 disabled:cursor-not-allowed transition-colors",
380
- children: F("vibecontrols.agentManager.inputArea.schedule", "Schedule")
386
+ children: P("vibecontrols.agentManager.inputArea.schedule", "Schedule")
381
387
  })
382
388
  ]
383
- }) : /* @__PURE__ */ p("button", {
389
+ }) : /* @__PURE__ */ m("button", {
384
390
  type: "button",
385
- onClick: () => j(!0),
391
+ onClick: () => A(!0),
386
392
  className: "flex items-center gap-2 w-full px-3 py-2 text-left text-xs text-text-primary hover:bg-bg-sunken transition-colors",
387
- children: [/* @__PURE__ */ f(ue, { className: "w-3.5 h-3.5 text-text-secondary" }), F("vibecontrols.agentManager.inputArea.scheduleSendEllipsis", "Schedule Send...")]
393
+ children: [/* @__PURE__ */ p(ue, { className: "w-3.5 h-3.5 text-text-secondary" }), P("vibecontrols.agentManager.inputArea.scheduleSendEllipsis", "Schedule Send...")]
388
394
  })
389
395
  })
390
396
  ]
@@ -394,6 +400,6 @@ function _({ agentId: _, sessionId: v, onSend: y, onCancel: b, mcpServers: pe =
394
400
  }) : null;
395
401
  }
396
402
  //#endregion
397
- export { _ as AgentManagerInputArea };
403
+ export { g as AgentManagerInputArea };
398
404
 
399
405
  //# sourceMappingURL=AgentManagerInputArea.js.map