@burdenoff/microfe-vibecontrols 2026.1023.5 → 2026.1023.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.
@@ -1,23 +1,28 @@
1
1
  import { useTr as e } from "../../shared/hooks/useTr.js";
2
2
  import { ConfirmDialog as t } from "./ConfirmDialog.js";
3
- import { useCallback as n } from "react";
4
- import { jsx as r } from "react/jsx-runtime";
5
- import { useEventBus as i } from "@burdenoff/fe-libs/shared/events";
3
+ import { VibeControlsDocsLink as n } from "./VibeControlsDocsLink.js";
4
+ import { useCallback as r } from "react";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ import { useEventBus as a } from "@burdenoff/fe-libs/shared/events";
6
7
  //#region src/components/shared/QuotaExhaustedDialog.tsx
7
- function a({ isOpen: a, onClose: o, onConfirm: s, title: c, message: l, confirmLabel: u, cancelLabel: d }) {
8
- let f = e(), p = i();
9
- return /* @__PURE__ */ r(t, {
10
- isOpen: a,
11
- onClose: o,
12
- onConfirm: n(() => {
13
- p.emitCustom("vibecontrols.billing.upgrade_clicked", {}), s();
14
- }, [p, s]),
15
- title: c ?? f("vibecontrols.shared.quotaExhaustedDialog.title", "Quota Reached"),
16
- message: l,
17
- confirmLabel: u ?? f("vibecontrols.shared.quotaExhaustedDialog.viewBilling", "View Billing"),
18
- cancelLabel: d ?? f("vibecontrols.shared.quotaExhaustedDialog.dismiss", "Dismiss"),
19
- variant: "warning"
8
+ function o({ isOpen: o, onClose: s, onConfirm: c, title: l, message: u, confirmLabel: d, cancelLabel: f }) {
9
+ let p = e(), m = a();
10
+ return /* @__PURE__ */ i(t, {
11
+ isOpen: o,
12
+ onClose: s,
13
+ onConfirm: r(() => {
14
+ m.emitCustom("vibecontrols.billing.upgrade_clicked", {}), c();
15
+ }, [m, c]),
16
+ title: l ?? p("vibecontrols.shared.quotaExhaustedDialog.title", "Quota Reached"),
17
+ message: u,
18
+ confirmLabel: d ?? p("vibecontrols.shared.quotaExhaustedDialog.viewBilling", "View Billing"),
19
+ cancelLabel: f ?? p("vibecontrols.shared.quotaExhaustedDialog.dismiss", "Dismiss"),
20
+ variant: "warning",
21
+ children: /* @__PURE__ */ i(n, {
22
+ topic: "plans",
23
+ children: p("vibecontrols.shared.quotaExhaustedDialog.plansGuide", "How plans and quotas work")
24
+ })
20
25
  });
21
26
  }
22
27
  //#endregion
23
- export { a as QuotaExhaustedDialog };
28
+ export { o as QuotaExhaustedDialog };
@@ -0,0 +1,40 @@
1
+ import { useTr as e } from "../../shared/hooks/useTr.js";
2
+ import { BookOpen as t } from "lucide-react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { DocsLink as i, useProductDocsUrl as a } from "@burdenoff/fe-libs/shared/components";
5
+ import { cn as o } from "@burdenoff/fe-libs/utils";
6
+ //#region src/components/shared/VibeControlsDocsLink.tsx
7
+ var s = {
8
+ gettingStarted: "/users/getting-started",
9
+ installAgent: "/users/installing-the-agent",
10
+ sessions: "/users/sessions-and-terminals",
11
+ tunnels: "/users/port-forwarding-and-tunnels",
12
+ vibedecks: "/users/vibedecks",
13
+ plans: "/users/plans-and-quotas"
14
+ }, c = "vibecontrols";
15
+ function l(e, t = {}) {
16
+ return a(s[e], {
17
+ productSlug: c,
18
+ environment: t.environment,
19
+ registry: t.registry
20
+ });
21
+ }
22
+ function u({ topic: a, children: l, className: u, hideIcon: d = !1, environment: f, registry: p, "data-tour": m }) {
23
+ let h = e(), g = l ?? h("vibecontrols.docs.learnMore", "Learn more");
24
+ return /* @__PURE__ */ r(i, {
25
+ productSlug: c,
26
+ path: s[a],
27
+ environment: f,
28
+ registry: p,
29
+ "data-docs-topic": a,
30
+ "data-tour": m,
31
+ title: h("vibecontrols.docs.opensInNewTab", "Opens the VibeControls guide in a new tab"),
32
+ className: o("inline-flex items-center gap-1 rounded-sm text-sm font-medium text-text-link underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas", u),
33
+ children: [d ? null : /* @__PURE__ */ n(t, {
34
+ className: "size-3.5 shrink-0",
35
+ "aria-hidden": "true"
36
+ }), /* @__PURE__ */ n("span", { children: g })]
37
+ });
38
+ }
39
+ //#endregion
40
+ export { s as VIBECONTROLS_DOCS_PATHS, c as VIBECONTROLS_DOCS_PRODUCT, u as VibeControlsDocsLink, l as useVibeControlsDocsUrl };
@@ -1,5 +1,6 @@
1
1
  import "./NotificationToast.js";
2
2
  import "./ConfirmDialog.js";
3
+ import "./VibeControlsDocsLink.js";
3
4
  import "./QuotaExhaustedDialog.js";
4
5
  import "./AgentEventsConnector.js";
5
6
  import "./PageHeader.js";
@@ -1,165 +1,166 @@
1
- import { PageHeader as e } from "../components/shared/PageHeader.js";
2
- import { Card as t } from "../components/shared/Card.js";
3
- import { InstallTabs as n } from "../components/shared/InstallTabs.js";
1
+ import { useVibeControlsDocsUrl as e } from "../components/shared/VibeControlsDocsLink.js";
2
+ import { PageHeader as t } from "../components/shared/PageHeader.js";
3
+ import { Card as n } from "../components/shared/Card.js";
4
+ import { InstallTabs as r } from "../components/shared/InstallTabs.js";
4
5
  import "../components/shared/index.js";
5
- import { useCallback as r, useMemo as i, useState as a } from "react";
6
- import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
- import { Download as s, ExternalLink as c, Info as l, Terminal as u } from "lucide-react";
8
- import { useSearchParams as d } from "react-router";
9
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
- import { EmphasisPanel as m, ShowMore as h } from "@burdenoff/fe-libs/ui";
11
- import { Tabs as g } from "@burdenoff/fe-libs/chrome";
12
- import { MotionItem as _, MotionList as v, MotionPage as y } from "@burdenoff/fe-libs/shared/motion";
6
+ import { useCallback as i, useMemo as a, useState as o } from "react";
7
+ import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
+ import { Download as c, ExternalLink as l, Info as u, Terminal as d } from "lucide-react";
9
+ import { useSearchParams as f } from "react-router";
10
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
11
+ import { EmphasisPanel as h, ShowMore as g } from "@burdenoff/fe-libs/ui";
12
+ import { Tabs as _ } from "@burdenoff/fe-libs/chrome";
13
+ import { MotionItem as v, MotionList as y, MotionPage as b } from "@burdenoff/fe-libs/shared/motion";
13
14
  //#region src/pages/GettingStartedPage.tsx
14
- var b = "https://www.npmjs.com/package/@vibecontrols/agent", x = "https://docs.vibecontrols.com/users/installing-the-agent";
15
+ var x = "https://www.npmjs.com/package/@vibecontrols/agent";
15
16
  function S() {
16
- let { t: S } = o(), C = r((e, t) => {
17
+ let { t: S } = s(), C = e("installAgent"), w = i((e, t) => {
17
18
  let n = S(e);
18
19
  return n === e ? t : n;
19
- }, [S]), [w, T] = d(), E = i(() => [{
20
+ }, [S]), [T, E] = f(), D = a(() => [{
20
21
  id: "install",
21
- label: C("gettingStarted.installTab", "Install")
22
+ label: w("gettingStarted.installTab", "Install")
22
23
  }, {
23
24
  id: "cli",
24
- label: C("gettingStarted.cliTab", "CLI Reference")
25
- }], [C]), D = w.get("tab") ?? E[0].id, O = (e) => {
26
- let t = new URLSearchParams(w);
27
- e === E[0].id ? t.delete("tab") : t.set("tab", e), T(t, { replace: !0 });
28
- }, [k, A] = a("");
29
- return /* @__PURE__ */ p(y, {
25
+ label: w("gettingStarted.cliTab", "CLI Reference")
26
+ }], [w]), O = T.get("tab") ?? D[0].id, k = (e) => {
27
+ let t = new URLSearchParams(T);
28
+ e === D[0].id ? t.delete("tab") : t.set("tab", e), E(t, { replace: !0 });
29
+ }, [A, j] = o("");
30
+ return /* @__PURE__ */ m(b, {
30
31
  className: "space-y-8 px-6 lg:px-8 py-6 bg-bg-canvas min-h-screen",
31
32
  children: [
32
- /* @__PURE__ */ f(e, {
33
- title: C("gettingStarted.title", "Getting Started"),
34
- description: C("gettingStarted.description", "Install and configure the VibeControls Agent CLI")
33
+ /* @__PURE__ */ p(t, {
34
+ title: w("gettingStarted.title", "Getting Started"),
35
+ description: w("gettingStarted.description", "Install and configure the VibeControls Agent CLI")
35
36
  }),
36
- /* @__PURE__ */ f("div", {
37
+ /* @__PURE__ */ p("div", {
37
38
  className: "border-b border-border-subtle",
38
- children: /* @__PURE__ */ f(g, {
39
- items: E,
40
- activeTabId: D,
41
- onTabChange: O,
39
+ children: /* @__PURE__ */ p(_, {
40
+ items: D,
41
+ activeTabId: O,
42
+ onTabChange: k,
42
43
  variant: "underline"
43
44
  })
44
45
  }),
45
- D === "install" && /* @__PURE__ */ p("div", {
46
+ O === "install" && /* @__PURE__ */ m("div", {
46
47
  className: "space-y-6",
47
48
  children: [
48
- /* @__PURE__ */ f(m, {
49
+ /* @__PURE__ */ p(h, {
49
50
  className: "sm:p-8",
50
- children: /* @__PURE__ */ p("div", {
51
+ children: /* @__PURE__ */ m("div", {
51
52
  className: "flex items-start gap-4",
52
- children: [/* @__PURE__ */ f("div", {
53
+ children: [/* @__PURE__ */ p("div", {
53
54
  className: "flex-shrink-0 size-12 rounded-xl bg-[var(--color-accent-soft)] flex items-center justify-center",
54
- children: /* @__PURE__ */ f(s, { className: "size-6 text-accent-purple" })
55
- }), /* @__PURE__ */ p("div", {
55
+ children: /* @__PURE__ */ p(c, { className: "size-6 text-accent-purple" })
56
+ }), /* @__PURE__ */ m("div", {
56
57
  className: "flex-1",
57
58
  children: [
58
- /* @__PURE__ */ f("h2", {
59
+ /* @__PURE__ */ p("h2", {
59
60
  className: "text-lg sm:text-xl font-semibold text-text-primary mb-1",
60
- children: C("gettingStarted.installAgent", "Install the Agent")
61
+ children: w("gettingStarted.installAgent", "Install the Agent")
61
62
  }),
62
- /* @__PURE__ */ f("p", {
63
+ /* @__PURE__ */ p("p", {
63
64
  className: "text-sm text-text-secondary",
64
- children: C("gettingStarted.installAgentDesc", "Install the agent globally with bun or npm on the machine you want to manage, then run vibe start. Bun (or Node >= 18 for npm) is the only prerequisite.")
65
+ children: w("gettingStarted.installAgentDesc", "Install the agent globally with bun or npm on the machine you want to manage, then run vibe start. Bun (or Node >= 18 for npm) is the only prerequisite.")
65
66
  }),
66
- /* @__PURE__ */ p("a", {
67
- href: x,
67
+ C ? /* @__PURE__ */ m("a", {
68
+ href: C,
68
69
  target: "_blank",
69
70
  rel: "noopener noreferrer",
70
71
  className: "mt-3 inline-flex items-center gap-1.5 text-sm text-text-link hover:text-text-linkHover hover:underline",
71
- children: [C("gettingStarted.viewInstallDocs", "View the full install docs"), /* @__PURE__ */ f(c, { className: "size-3.5" })]
72
- })
72
+ children: [w("gettingStarted.viewInstallDocs", "View the full install docs"), /* @__PURE__ */ p(l, { className: "size-3.5" })]
73
+ }) : null
73
74
  ]
74
75
  })]
75
76
  })
76
77
  }),
77
- /* @__PURE__ */ f(t, {
78
+ /* @__PURE__ */ p(n, {
78
79
  padding: "none",
79
- children: /* @__PURE__ */ p("div", {
80
+ children: /* @__PURE__ */ m("div", {
80
81
  className: "p-5 sm:p-6",
81
- children: [/* @__PURE__ */ f(n, { pinnedAgentVersion: k || void 0 }), /* @__PURE__ */ p("div", {
82
+ children: [/* @__PURE__ */ p(r, { pinnedAgentVersion: A || void 0 }), /* @__PURE__ */ m("div", {
82
83
  className: "mt-6 pt-4 border-t border-border-subtle",
83
- children: [/* @__PURE__ */ p("label", {
84
+ children: [/* @__PURE__ */ m("label", {
84
85
  htmlFor: "pinned-version",
85
86
  className: "text-xs font-medium text-text-secondary flex items-center gap-1.5 mb-1.5",
86
87
  children: [
87
- /* @__PURE__ */ f(l, { className: "size-3.5" }),
88
+ /* @__PURE__ */ p(u, { className: "size-3.5" }),
88
89
  " ",
89
- C("gettingStarted.pinVersion", "Pin a specific agent version (optional)")
90
+ w("gettingStarted.pinVersion", "Pin a specific agent version (optional)")
90
91
  ]
91
- }), /* @__PURE__ */ f("input", {
92
+ }), /* @__PURE__ */ p("input", {
92
93
  "aria-label": "pinned-version",
93
94
  id: "pinned-version",
94
95
  type: "text",
95
- placeholder: C("gettingStarted.pinVersionPlaceholder", "e.g. 2026.408.1 (leave blank for latest)"),
96
- value: k,
97
- onChange: (e) => A(e.target.value),
96
+ placeholder: w("gettingStarted.pinVersionPlaceholder", "e.g. 2026.408.1 (leave blank for latest)"),
97
+ value: A,
98
+ onChange: (e) => j(e.target.value),
98
99
  className: "w-full max-w-xs px-3 py-2 rounded-input border border-border-default bg-bg-elevated text-sm text-text-primary focus-visible:outline-none focus-visible:border-border-strong focus-visible:shadow-[var(--shadow-focus)]"
99
100
  })]
100
101
  })]
101
102
  })
102
103
  }),
103
- /* @__PURE__ */ f(t, {
104
+ /* @__PURE__ */ p(n, {
104
105
  padding: "none",
105
- children: /* @__PURE__ */ p("div", {
106
+ children: /* @__PURE__ */ m("div", {
106
107
  className: "p-5 sm:p-6",
107
108
  children: [
108
- /* @__PURE__ */ f("h3", {
109
+ /* @__PURE__ */ p("h3", {
109
110
  className: "text-base font-semibold text-text-primary mb-3",
110
- children: C("gettingStarted.nextSteps", "Next steps")
111
+ children: w("gettingStarted.nextSteps", "Next steps")
111
112
  }),
112
- /* @__PURE__ */ p("ol", {
113
+ /* @__PURE__ */ m("ol", {
113
114
  className: "list-decimal list-inside space-y-2 text-sm text-text-secondary",
114
115
  children: [
115
- /* @__PURE__ */ p("li", { children: [
116
- C("gettingStarted.nextStep1Prefix", "Start the agent:"),
116
+ /* @__PURE__ */ m("li", { children: [
117
+ w("gettingStarted.nextStep1Prefix", "Start the agent:"),
117
118
  " ",
118
- /* @__PURE__ */ f("code", {
119
+ /* @__PURE__ */ p("code", {
119
120
  className: "font-mono text-xs bg-bg-sunken/60 text-text-secondary px-1.5 py-0.5 rounded",
120
121
  children: "vibe start"
121
122
  }),
122
123
  " ",
123
- C("gettingStarted.nextStep1Suffix", "— on first run it establishes a Cloudflare tunnel, generates an agentApiKey, and waits in pre-config mode for the platform.")
124
+ w("gettingStarted.nextStep1Suffix", "— on first run it establishes a Cloudflare tunnel, generates an agentApiKey, and waits in pre-config mode for the platform.")
124
125
  ] }),
125
- /* @__PURE__ */ p("li", { children: [
126
- C("gettingStarted.nextStep2Prefix", "In this UI, go to"),
126
+ /* @__PURE__ */ m("li", { children: [
127
+ w("gettingStarted.nextStep2Prefix", "In this UI, go to"),
127
128
  " ",
128
- /* @__PURE__ */ p("strong", { children: [
129
- C("gettingStarted.targetsAndAgents", "Targets & Agents"),
129
+ /* @__PURE__ */ m("strong", { children: [
130
+ w("gettingStarted.targetsAndAgents", "Targets & Agents"),
130
131
  " →",
131
132
  " ",
132
- C("gettingStarted.addAgent", "Add Agent")
133
+ w("gettingStarted.addAgent", "Add Agent")
133
134
  ] }),
134
- C("gettingStarted.nextStep2Suffix", ", create or pick a target, and paste the tunnel URL and agentApiKey that vibe start printed. The platform then pushes OAuth credentials automatically and the agent activates.")
135
+ w("gettingStarted.nextStep2Suffix", ", create or pick a target, and paste the tunnel URL and agentApiKey that vibe start printed. The platform then pushes OAuth credentials automatically and the agent activates.")
135
136
  ] }),
136
- /* @__PURE__ */ p("li", { children: [
137
- C("gettingStarted.nextStep3Prefix", "Run it as a background service:"),
137
+ /* @__PURE__ */ m("li", { children: [
138
+ w("gettingStarted.nextStep3Prefix", "Run it as a background service:"),
138
139
  " ",
139
- /* @__PURE__ */ f("code", {
140
+ /* @__PURE__ */ p("code", {
140
141
  className: "font-mono text-xs bg-bg-sunken/60 text-text-secondary px-1.5 py-0.5 rounded",
141
142
  children: "vibe autostart install"
142
143
  }),
143
144
  " ",
144
- C("gettingStarted.nextStep3Suffix", "(remove later with"),
145
+ w("gettingStarted.nextStep3Suffix", "(remove later with"),
145
146
  " ",
146
- /* @__PURE__ */ f("code", {
147
+ /* @__PURE__ */ p("code", {
147
148
  className: "font-mono text-xs bg-bg-sunken/60 text-text-secondary px-1.5 py-0.5 rounded",
148
149
  children: "vibe autostart uninstall"
149
150
  }),
150
- C("gettingStarted.nextStep3End", ").")
151
+ w("gettingStarted.nextStep3End", ").")
151
152
  ] }),
152
- /* @__PURE__ */ p("li", { children: [
153
- C("gettingStarted.nextStep4Prefix", "Verify it is running with"),
153
+ /* @__PURE__ */ m("li", { children: [
154
+ w("gettingStarted.nextStep4Prefix", "Verify it is running with"),
154
155
  " ",
155
- /* @__PURE__ */ f("code", {
156
+ /* @__PURE__ */ p("code", {
156
157
  className: "font-mono text-xs bg-bg-sunken/60 text-text-secondary px-1.5 py-0.5 rounded",
157
158
  children: "vibe health"
158
159
  }),
159
160
  " ",
160
- C("gettingStarted.nextStep4And", "and"),
161
+ w("gettingStarted.nextStep4And", "and"),
161
162
  " ",
162
- /* @__PURE__ */ f("code", {
163
+ /* @__PURE__ */ p("code", {
163
164
  className: "font-mono text-xs bg-bg-sunken/60 text-text-secondary px-1.5 py-0.5 rounded",
164
165
  children: "vibe status"
165
166
  }),
@@ -167,93 +168,93 @@ function S() {
167
168
  ] })
168
169
  ]
169
170
  }),
170
- /* @__PURE__ */ p("a", {
171
- href: x,
171
+ C ? /* @__PURE__ */ m("a", {
172
+ href: C,
172
173
  target: "_blank",
173
174
  rel: "noopener noreferrer",
174
175
  className: "mt-4 inline-flex items-center gap-1.5 text-sm text-text-link hover:text-text-linkHover hover:underline",
175
- children: [C("gettingStarted.viewInstallDocs", "View the full install docs"), /* @__PURE__ */ f(c, { className: "size-3.5" })]
176
- })
176
+ children: [w("gettingStarted.viewInstallDocs", "View the full install docs"), /* @__PURE__ */ p(l, { className: "size-3.5" })]
177
+ }) : null
177
178
  ]
178
179
  })
179
180
  })
180
181
  ]
181
182
  }),
182
- D === "cli" && /* @__PURE__ */ f(t, {
183
+ O === "cli" && /* @__PURE__ */ p(n, {
183
184
  padding: "none",
184
- children: /* @__PURE__ */ p("div", {
185
+ children: /* @__PURE__ */ m("div", {
185
186
  className: "p-5 sm:p-6",
186
187
  children: [
187
- /* @__PURE__ */ p("h3", {
188
+ /* @__PURE__ */ m("h3", {
188
189
  className: "text-base font-semibold text-text-primary mb-4 flex items-center gap-2",
189
- children: [/* @__PURE__ */ f(u, { className: "size-5 text-accent-purple" }), C("gettingStarted.cliQuickRef", "CLI Quick Reference")]
190
+ children: [/* @__PURE__ */ p(d, { className: "size-5 text-accent-purple" }), w("gettingStarted.cliQuickRef", "CLI Quick Reference")]
190
191
  }),
191
- /* @__PURE__ */ f(h, {
192
+ /* @__PURE__ */ p(g, {
192
193
  collapsedHeight: 172,
193
- label: C("gettingStarted.showAllCommands", "Show all commands"),
194
- children: /* @__PURE__ */ f(v, {
194
+ label: w("gettingStarted.showAllCommands", "Show all commands"),
195
+ children: /* @__PURE__ */ p(y, {
195
196
  stagger: .04,
196
197
  className: "space-y-2",
197
198
  children: [
198
199
  {
199
200
  cmd: "vibe start",
200
- desc: C("gettingStarted.cmdVibeStart", "First run: auto-detects deps, picks a port (default 3005), establishes a Cloudflare tunnel, generates an agentApiKey, then waits for the platform")
201
+ desc: w("gettingStarted.cmdVibeStart", "First run: auto-detects deps, picks a port (default 3005), establishes a Cloudflare tunnel, generates an agentApiKey, then waits for the platform")
201
202
  },
202
203
  {
203
204
  cmd: "vibe start --profile <name>",
204
- desc: C("gettingStarted.cmdVibeStartProfile", "Run a named profile (e.g. alpha, default) for multiple agent instances")
205
+ desc: w("gettingStarted.cmdVibeStartProfile", "Run a named profile (e.g. alpha, default) for multiple agent instances")
205
206
  },
206
207
  {
207
208
  cmd: "vibe setup",
208
- desc: C("gettingStarted.cmdVibeSetup", "Install missing dependencies (tmux, ttyd, cloudflared)")
209
+ desc: w("gettingStarted.cmdVibeSetup", "Install missing dependencies (tmux, ttyd, cloudflared)")
209
210
  },
210
211
  {
211
212
  cmd: "vibe health",
212
- desc: C("gettingStarted.cmdVibeHealth", "Run an HTTP health check on the agent")
213
+ desc: w("gettingStarted.cmdVibeHealth", "Run an HTTP health check on the agent")
213
214
  },
214
215
  {
215
216
  cmd: "vibe status",
216
- desc: C("gettingStarted.cmdVibeStatus", "Show all running agent instances")
217
+ desc: w("gettingStarted.cmdVibeStatus", "Show all running agent instances")
217
218
  },
218
219
  {
219
220
  cmd: "vibe autostart install",
220
- desc: C("gettingStarted.cmdVibeAutostartInstall", "Run the agent as a background service (daemonize)")
221
+ desc: w("gettingStarted.cmdVibeAutostartInstall", "Run the agent as a background service (daemonize)")
221
222
  },
222
223
  {
223
224
  cmd: "vibe autostart uninstall",
224
- desc: C("gettingStarted.cmdVibeAutostartUninstall", "Remove the background service")
225
+ desc: w("gettingStarted.cmdVibeAutostartUninstall", "Remove the background service")
225
226
  },
226
227
  {
227
228
  cmd: "vibecontrols agents list --active",
228
- desc: C("gettingStarted.cmdAgentsListActive", "Platform CLI — see the connected agent on the backend")
229
+ desc: w("gettingStarted.cmdAgentsListActive", "Platform CLI — see the connected agent on the backend")
229
230
  }
230
- ].map((e) => /* @__PURE__ */ p(_, {
231
+ ].map((e) => /* @__PURE__ */ m(v, {
231
232
  className: "flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-3 px-3 py-2 rounded-button hover:bg-bg-sunken transition-colors",
232
- children: [/* @__PURE__ */ p("code", {
233
+ children: [/* @__PURE__ */ m("code", {
233
234
  className: "text-xs font-mono text-text-primary sm:w-72 flex-shrink-0",
234
235
  children: ["$ ", e.cmd]
235
- }), /* @__PURE__ */ f("span", {
236
+ }), /* @__PURE__ */ p("span", {
236
237
  className: "text-xs text-text-muted",
237
238
  children: e.desc
238
239
  })]
239
240
  }, e.cmd))
240
241
  })
241
242
  }),
242
- /* @__PURE__ */ p("div", {
243
+ /* @__PURE__ */ m("div", {
243
244
  className: "mt-4 pt-4 border-t border-border-seam flex flex-wrap items-center gap-3",
244
- children: [/* @__PURE__ */ p("a", {
245
- href: b,
245
+ children: [/* @__PURE__ */ m("a", {
246
+ href: x,
246
247
  target: "_blank",
247
248
  rel: "noopener noreferrer",
248
249
  className: "inline-flex items-center gap-2 px-3 py-1.5 text-xs border border-border-default text-text-secondary rounded-button hover:bg-bg-sunken hover:border-border-strong transition-colors",
249
250
  children: [
250
- C("gettingStarted.agentNpmPackage", "Agent npm package"),
251
+ w("gettingStarted.agentNpmPackage", "Agent npm package"),
251
252
  " ",
252
- /* @__PURE__ */ f(c, { className: "size-3" })
253
+ /* @__PURE__ */ p(l, { className: "size-3" })
253
254
  ]
254
- }), /* @__PURE__ */ f("span", {
255
+ }), /* @__PURE__ */ p("span", {
255
256
  className: "text-xs text-text-muted",
256
- children: C("gettingStarted.agentNpmLatest", "@vibecontrols/agent (latest)")
257
+ children: w("gettingStarted.agentNpmLatest", "@vibecontrols/agent (latest)")
257
258
  })]
258
259
  })
259
260
  ]