@aerovato/operator-opencode-v2 2.0.0 → 2.1.0

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.
package/dist/tui.js CHANGED
@@ -1,11 +1,18 @@
1
1
  // src/tui.tsx
2
+ import { effect as _$effect } from "@opentui/solid";
3
+ import { insert as _$insert } from "@opentui/solid";
4
+ import { createTextNode as _$createTextNode } from "@opentui/solid";
5
+ import { insertNode as _$insertNode } from "@opentui/solid";
6
+ import { setProp as _$setProp } from "@opentui/solid";
7
+ import { createElement as _$createElement } from "@opentui/solid";
8
+ import { createComponent as _$createComponent } from "@opentui/solid";
2
9
  import { Plugin } from "@opencode/plugin/tui";
3
10
  import { createEffect, Show } from "solid-js";
4
11
  import { createStore } from "solid-js/store";
5
12
  // package.json
6
13
  var package_default = {
7
14
  name: "@aerovato/operator-opencode-v2",
8
- version: "2.0.0",
15
+ version: "2.1.0",
9
16
  description: "Operator Memory adapter for OpenCode V2.",
10
17
  license: "BSD-3-Clause",
11
18
  author: "Aerovato Research",
@@ -110,7 +117,6 @@ var OperatorNotifications = Rpc.define({
110
117
  });
111
118
 
112
119
  // src/tui.tsx
113
- import { jsxDEV } from "@opentui/solid/jsx-dev-runtime";
114
120
  var OperatorTuiPlugin = Plugin.define({
115
121
  id: "aerovato.operator-memory",
116
122
  setup(context) {
@@ -132,12 +138,19 @@ var OperatorTuiPlugin = Plugin.define({
132
138
  detail: statuses[key]?.detail ?? `v${package_default.version}`
133
139
  });
134
140
  }
135
- const operation = client.status({ refresh: force }, location === undefined ? undefined : { location }).then((value) => {
141
+ const operation = client.status({
142
+ refresh: force
143
+ }, location === undefined ? undefined : {
144
+ location
145
+ }).then((value) => {
136
146
  const current = parseStatus(value);
137
147
  setStatuses(key, current === null ? {
138
148
  connection: "unavailable",
139
149
  detail: statuses[key]?.detail ?? `v${package_default.version}`
140
- } : { connection: "ready", ...current });
150
+ } : {
151
+ connection: "ready",
152
+ ...current
153
+ });
141
154
  }).catch(() => {
142
155
  setStatuses(key, {
143
156
  connection: "unavailable",
@@ -147,47 +160,47 @@ var OperatorTuiPlugin = Plugin.define({
147
160
  pending.set(key, operation);
148
161
  };
149
162
  refresh(context.location, false);
150
- const cleanups = [
151
- context.data.listen((event) => {
152
- if (event.details.type !== "rpc.aerovato.operator-memory.toast")
153
- return;
154
- const toast = parseToast(event.details.data);
155
- if (toast === null)
156
- return;
157
- context.ui.toast.show({ ...toast, duration: 1e4 });
158
- }),
159
- context.data.on("server.connected", () => refresh(context.location, true)),
160
- context.data.on("session.status", (event) => {
161
- const session = context.data.session.get(event.data.sessionID);
162
- if (session?.parentID !== undefined)
163
- return;
164
- if (event.data.status.type !== "idle") {
165
- activeSessions.add(event.data.sessionID);
166
- return;
167
- }
168
- if (!activeSessions.delete(event.data.sessionID))
169
- return;
170
- refresh(session?.location ?? context.location, true);
171
- }),
172
- context.ui.slot({
173
- append: "home.footer",
174
- render: () => /* @__PURE__ */ jsxDEV(ReadyIndicator, {
163
+ const cleanups = [context.data.listen((event) => {
164
+ if (event.details.type !== "rpc.aerovato.operator-memory.toast")
165
+ return;
166
+ const toast = parseToast(event.details.data);
167
+ if (toast === null)
168
+ return;
169
+ context.ui.toast.show({
170
+ ...toast,
171
+ duration: 1e4
172
+ });
173
+ }), context.data.on("server.connected", () => refresh(context.location, true)), context.data.on("session.status", (event) => {
174
+ const session = context.data.session.get(event.data.sessionID);
175
+ if (session?.parentID !== undefined)
176
+ return;
177
+ if (event.data.status.type !== "idle") {
178
+ activeSessions.add(event.data.sessionID);
179
+ return;
180
+ }
181
+ if (!activeSessions.delete(event.data.sessionID))
182
+ return;
183
+ refresh(session?.location ?? context.location, true);
184
+ }), context.ui.slot({
185
+ append: "home.footer.status",
186
+ render: () => {
187
+ createEffect(() => refresh(context.location, false));
188
+ return _$createComponent(ReadyIndicator, {
175
189
  context,
176
190
  status: () => status(context.location)
177
- }, undefined, false, undefined, this)
178
- }),
179
- context.ui.slot({
180
- append: "sidebar.content",
181
- render: (input) => {
182
- const location = () => context.data.session.get(input.sessionID)?.location ?? context.location;
183
- createEffect(() => refresh(location(), false));
184
- return /* @__PURE__ */ jsxDEV(PartitionStatusView, {
185
- context,
186
- status: () => status(location())
187
- }, undefined, false, undefined, this);
188
- }
189
- })
190
- ];
191
+ });
192
+ }
193
+ }), context.ui.slot({
194
+ append: "sidebar.content",
195
+ render: (input) => {
196
+ const location = () => context.data.session.get(input.sessionID)?.location ?? context.location;
197
+ createEffect(() => refresh(location(), false));
198
+ return _$createComponent(PartitionStatusView, {
199
+ context,
200
+ status: () => status(location())
201
+ });
202
+ }
203
+ })];
191
204
  return () => cleanups.forEach((cleanup) => {
192
205
  cleanup();
193
206
  });
@@ -210,88 +223,130 @@ function ReadyIndicator(props) {
210
223
  return props.context.theme.text.feedback.error.default;
211
224
  return props.context.theme.text.subdued;
212
225
  };
213
- return /* @__PURE__ */ jsxDEV("box", {
214
- flexShrink: 0,
215
- children: /* @__PURE__ */ jsxDEV("text", {
216
- fg: props.context.theme.text.default,
217
- children: [
218
- /* @__PURE__ */ jsxDEV("span", {
219
- style: { fg: color() },
220
- children: "•"
221
- }, undefined, false, undefined, this),
222
- " ",
223
- /* @__PURE__ */ jsxDEV("b", {
224
- children: statusLabel(props.status())
225
- }, undefined, false, undefined, this)
226
- ]
227
- }, undefined, true, undefined, this)
228
- }, undefined, false, undefined, this);
226
+ return (() => {
227
+ var _el$ = _$createElement("box"), _el$2 = _$createElement("text"), _el$3 = _$createElement("span"), _el$5 = _$createTextNode(` `), _el$6 = _$createElement("b");
228
+ _$insertNode(_el$, _el$2);
229
+ _$setProp(_el$, "flexShrink", 0);
230
+ _$insertNode(_el$2, _el$3);
231
+ _$insertNode(_el$2, _el$5);
232
+ _$insertNode(_el$2, _el$6);
233
+ _$insertNode(_el$3, _$createTextNode(`•`));
234
+ _$insert(_el$6, () => statusLabel(props.status()));
235
+ _$effect((_p$) => {
236
+ var _v$ = props.context.theme.text.default, _v$2 = {
237
+ fg: color()
238
+ };
239
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$2, "fg", _v$, _p$.e));
240
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$3, "style", _v$2, _p$.t));
241
+ return _p$;
242
+ }, {
243
+ e: undefined,
244
+ t: undefined
245
+ });
246
+ return _el$;
247
+ })();
229
248
  }
230
249
  function PartitionStatusView(props) {
231
250
  const hasError = () => {
232
251
  const status = props.status();
233
252
  return status.connection === "unavailable" || status.connection === "ready" && [status.user, status.private, status.shared].includes("error");
234
253
  };
235
- return /* @__PURE__ */ jsxDEV("box", {
236
- gap: 0,
237
- children: [
238
- /* @__PURE__ */ jsxDEV("text", {
239
- fg: props.context.theme.text.default,
240
- children: /* @__PURE__ */ jsxDEV("b", {
241
- children: "Operator Status"
242
- }, undefined, false, undefined, this)
243
- }, undefined, false, undefined, this),
244
- /* @__PURE__ */ jsxDEV(StatusRow, {
245
- context: props.context,
246
- label: "User",
247
- status: partition(props.status(), "user")
248
- }, undefined, false, undefined, this),
249
- /* @__PURE__ */ jsxDEV(StatusRow, {
250
- context: props.context,
251
- label: "Private",
252
- status: partition(props.status(), "private")
253
- }, undefined, false, undefined, this),
254
- /* @__PURE__ */ jsxDEV(StatusRow, {
255
- context: props.context,
256
- label: "Shared",
257
- status: partition(props.status(), "shared")
258
- }, undefined, false, undefined, this),
259
- /* @__PURE__ */ jsxDEV(Show, {
260
- when: hasError(),
261
- children: /* @__PURE__ */ jsxDEV("text", {
262
- fg: props.context.theme.text.feedback.warning.default,
263
- children: "Run /operator:repair to repair"
264
- }, undefined, false, undefined, this)
265
- }, undefined, false, undefined, this)
266
- ]
267
- }, undefined, true, undefined, this);
254
+ return (() => {
255
+ var _el$7 = _$createElement("box"), _el$8 = _$createElement("text"), _el$9 = _$createElement("b");
256
+ _$insertNode(_el$7, _el$8);
257
+ _$setProp(_el$7, "gap", 0);
258
+ _$insertNode(_el$8, _el$9);
259
+ _$insertNode(_el$9, _$createTextNode(`Operator Status`));
260
+ _$insert(_el$7, _$createComponent(StatusRow, {
261
+ get context() {
262
+ return props.context;
263
+ },
264
+ label: "User",
265
+ get status() {
266
+ return partition(props.status(), "user");
267
+ }
268
+ }), null);
269
+ _$insert(_el$7, _$createComponent(StatusRow, {
270
+ get context() {
271
+ return props.context;
272
+ },
273
+ label: "Private",
274
+ get status() {
275
+ return partition(props.status(), "private");
276
+ }
277
+ }), null);
278
+ _$insert(_el$7, _$createComponent(StatusRow, {
279
+ get context() {
280
+ return props.context;
281
+ },
282
+ label: "Shared",
283
+ get status() {
284
+ return partition(props.status(), "shared");
285
+ }
286
+ }), null);
287
+ _$insert(_el$7, _$createComponent(Show, {
288
+ get when() {
289
+ return hasError();
290
+ },
291
+ get children() {
292
+ var _el$1 = _$createElement("text");
293
+ _$insertNode(_el$1, _$createTextNode(`Run /operator:repair to repair`));
294
+ _$effect((_$p) => _$setProp(_el$1, "fg", props.context.theme.text.feedback.warning.default, _$p));
295
+ return _el$1;
296
+ }
297
+ }), null);
298
+ _$effect((_$p) => _$setProp(_el$8, "fg", props.context.theme.text.default, _$p));
299
+ return _el$7;
300
+ })();
268
301
  }
269
302
  function StatusRow(props) {
270
303
  const display = () => {
271
304
  if (props.status === "checking") {
272
- return { color: props.context.theme.text.subdued, label: "Checking" };
305
+ return {
306
+ color: props.context.theme.text.subdued,
307
+ label: "Checking"
308
+ };
273
309
  }
274
310
  if (props.status === "error") {
275
- return { color: props.context.theme.text.feedback.error.default, label: "Error" };
311
+ return {
312
+ color: props.context.theme.text.feedback.error.default,
313
+ label: "Error"
314
+ };
276
315
  }
277
- return props.status === "loaded" ? { color: props.context.theme.text.feedback.success.default, label: "Loaded" } : { color: props.context.theme.text.feedback.warning.default, label: "Uninitialized" };
316
+ return props.status === "loaded" ? {
317
+ color: props.context.theme.text.feedback.success.default,
318
+ label: "Loaded"
319
+ } : {
320
+ color: props.context.theme.text.feedback.warning.default,
321
+ label: "Uninitialized"
322
+ };
278
323
  };
279
- return /* @__PURE__ */ jsxDEV("text", {
280
- fg: props.context.theme.text.default,
281
- children: [
282
- /* @__PURE__ */ jsxDEV("span", {
283
- style: { fg: display().color },
284
- children: "•"
285
- }, undefined, false, undefined, this),
286
- " ",
287
- props.label,
288
- " ",
289
- /* @__PURE__ */ jsxDEV("span", {
290
- style: { fg: props.context.theme.text.subdued },
291
- children: display().label
292
- }, undefined, false, undefined, this)
293
- ]
294
- }, undefined, true, undefined, this);
324
+ return (() => {
325
+ var _el$11 = _$createElement("text"), _el$12 = _$createElement("span"), _el$14 = _$createTextNode(` `), _el$15 = _$createTextNode(` `), _el$16 = _$createElement("span");
326
+ _$insertNode(_el$11, _el$12);
327
+ _$insertNode(_el$11, _el$14);
328
+ _$insertNode(_el$11, _el$15);
329
+ _$insertNode(_el$11, _el$16);
330
+ _$insertNode(_el$12, _$createTextNode(`•`));
331
+ _$insert(_el$11, () => props.label, _el$15);
332
+ _$insert(_el$16, () => display().label);
333
+ _$effect((_p$) => {
334
+ var _v$3 = props.context.theme.text.default, _v$4 = {
335
+ fg: display().color
336
+ }, _v$5 = {
337
+ fg: props.context.theme.text.subdued
338
+ };
339
+ _v$3 !== _p$.e && (_p$.e = _$setProp(_el$11, "fg", _v$3, _p$.e));
340
+ _v$4 !== _p$.t && (_p$.t = _$setProp(_el$12, "style", _v$4, _p$.t));
341
+ _v$5 !== _p$.a && (_p$.a = _$setProp(_el$16, "style", _v$5, _p$.a));
342
+ return _p$;
343
+ }, {
344
+ e: undefined,
345
+ t: undefined,
346
+ a: undefined
347
+ });
348
+ return _el$11;
349
+ })();
295
350
  }
296
351
  function partition(status, name) {
297
352
  return status.connection === "ready" ? status[name] : "checking";
@@ -310,7 +365,12 @@ function parseStatus(value) {
310
365
  return null;
311
366
  if (!("shared" in value) || !isPartitionStatus(value.shared))
312
367
  return null;
313
- return { detail: value.detail, user: value.user, private: value.private, shared: value.shared };
368
+ return {
369
+ detail: value.detail,
370
+ user: value.user,
371
+ private: value.private,
372
+ shared: value.shared
373
+ };
314
374
  }
315
375
  function isPartitionStatus(value) {
316
376
  return value === "loaded" || value === "uninitialized" || value === "error";
@@ -324,7 +384,11 @@ function parseToast(value) {
324
384
  return null;
325
385
  if (!("variant" in value) || !isVariant(value.variant))
326
386
  return null;
327
- return { title: value.title, message: value.message, variant: value.variant };
387
+ return {
388
+ title: value.title,
389
+ message: value.message,
390
+ variant: value.variant
391
+ };
328
392
  }
329
393
  function isVariant(value) {
330
394
  return value === "info" || value === "success" || value === "warning" || value === "error";
@@ -334,4 +398,4 @@ export {
334
398
  statusLabel
335
399
  };
336
400
 
337
- //# debugId=C8A7AEE94D438D0E64756E2164756E21
401
+ //# debugId=A4DA93D4F5754C1A64756E2164756E21
package/dist/tui.js.map CHANGED
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/tui.tsx", "../src/notifications.ts"],
4
4
  "sourcesContent": [
5
- "import { Plugin } from \"@opencode/plugin/tui\";\nimport type { Context } from \"@opencode/plugin/tui/context\";\nimport { createEffect, Show } from \"solid-js\";\nimport { createStore } from \"solid-js/store\";\n\nimport packageJson from \"../package.json\" with { type: \"json\" };\nimport {\n OperatorNotifications,\n type OperatorStatus,\n type OperatorToast,\n type PartitionStatus,\n} from \"./notifications.ts\";\n\ntype Location = Context[\"location\"];\ntype StatusState =\n | { readonly connection: \"connecting\" | \"unavailable\"; readonly detail: string }\n | ({ readonly connection: \"ready\" } & OperatorStatus);\n\nconst OperatorTuiPlugin = Plugin.define({\n id: \"aerovato.operator-memory\",\n setup(context) {\n const [statuses, setStatuses] = createStore<Record<string, StatusState>>({});\n const activeSessions = new Set<string>();\n const pending = new Map<string, Promise<void>>();\n const client = context.client.rpc(OperatorNotifications);\n const status = (location: Location) =>\n statuses[locationKey(location)] ?? {\n connection: \"connecting\",\n detail: `v${packageJson.version}`,\n };\n const refresh = (location: Location, force: boolean): void => {\n const key = locationKey(location);\n if (pending.has(key)) return;\n if (statuses[key]?.connection !== \"ready\") {\n setStatuses(key, {\n connection: \"connecting\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`,\n });\n }\n const operation = client\n .status({ refresh: force }, location === undefined ? undefined : { location })\n .then(value => {\n const current = parseStatus(value);\n setStatuses(\n key,\n current === null\n ? {\n connection: \"unavailable\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`,\n }\n : { connection: \"ready\", ...current },\n );\n })\n .catch(() => {\n setStatuses(key, {\n connection: \"unavailable\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`,\n });\n })\n .finally(() => pending.delete(key));\n pending.set(key, operation);\n };\n\n refresh(context.location, false);\n const cleanups = [\n context.data.listen(event => {\n if (event.details.type !== \"rpc.aerovato.operator-memory.toast\") return;\n const toast = parseToast(event.details.data);\n if (toast === null) return;\n context.ui.toast.show({ ...toast, duration: 10_000 });\n }),\n context.data.on(\"server.connected\", () => refresh(context.location, true)),\n context.data.on(\"session.status\", event => {\n const session = context.data.session.get(event.data.sessionID);\n if (session?.parentID !== undefined) return;\n if (event.data.status.type !== \"idle\") {\n activeSessions.add(event.data.sessionID);\n return;\n }\n if (!activeSessions.delete(event.data.sessionID)) return;\n refresh(session?.location ?? context.location, true);\n }),\n context.ui.slot({\n append: \"home.footer\",\n render: () => <ReadyIndicator context={context} status={() => status(context.location)} />,\n }),\n context.ui.slot({\n append: \"sidebar.content\",\n render: input => {\n const location = () =>\n context.data.session.get(input.sessionID)?.location ?? context.location;\n createEffect(() => refresh(location(), false));\n return <PartitionStatusView context={context} status={() => status(location())} />;\n },\n }),\n ];\n return () =>\n cleanups.forEach(cleanup => {\n cleanup();\n });\n },\n});\n\nexport default OperatorTuiPlugin;\n\nexport function statusLabel(status: StatusState): string {\n const suffix = status.detail.length > 0 ? ` (${status.detail})` : \"\";\n if (status.connection === \"connecting\") return `Operator Connecting...${suffix}`;\n if (status.connection === \"unavailable\") return `Operator Unavailable${suffix}`;\n return `Operator Ready${suffix}`;\n}\n\nfunction ReadyIndicator(props: { readonly context: Context; readonly status: () => StatusState }) {\n const color = () => {\n if (props.status().connection === \"ready\")\n return props.context.theme.text.feedback.success.default;\n if (props.status().connection === \"unavailable\")\n return props.context.theme.text.feedback.error.default;\n return props.context.theme.text.subdued;\n };\n return (\n <box flexShrink={0}>\n <text fg={props.context.theme.text.default}>\n <span style={{ fg: color() }}>•</span> <b>{statusLabel(props.status())}</b>\n </text>\n </box>\n );\n}\n\nfunction PartitionStatusView(props: {\n readonly context: Context;\n readonly status: () => StatusState;\n}) {\n const hasError = () => {\n const status = props.status();\n return (\n status.connection === \"unavailable\"\n || (status.connection === \"ready\"\n && [status.user, status.private, status.shared].includes(\"error\"))\n );\n };\n return (\n <box gap={0}>\n <text fg={props.context.theme.text.default}>\n <b>Operator Status</b>\n </text>\n <StatusRow context={props.context} label=\"User\" status={partition(props.status(), \"user\")} />\n <StatusRow\n context={props.context}\n label=\"Private\"\n status={partition(props.status(), \"private\")}\n />\n <StatusRow\n context={props.context}\n label=\"Shared\"\n status={partition(props.status(), \"shared\")}\n />\n <Show when={hasError()}>\n <text fg={props.context.theme.text.feedback.warning.default}>\n Run /operator:repair to repair\n </text>\n </Show>\n </box>\n );\n}\n\nfunction StatusRow(props: {\n readonly context: Context;\n readonly label: string;\n readonly status: PartitionStatus | \"checking\";\n}) {\n const display = () => {\n if (props.status === \"checking\") {\n return { color: props.context.theme.text.subdued, label: \"Checking\" };\n }\n if (props.status === \"error\") {\n return { color: props.context.theme.text.feedback.error.default, label: \"Error\" };\n }\n return props.status === \"loaded\"\n ? { color: props.context.theme.text.feedback.success.default, label: \"Loaded\" }\n : { color: props.context.theme.text.feedback.warning.default, label: \"Uninitialized\" };\n };\n return (\n <text fg={props.context.theme.text.default}>\n <span style={{ fg: display().color }}>•</span> {props.label}{\" \"}\n <span style={{ fg: props.context.theme.text.subdued }}>{display().label}</span>\n </text>\n );\n}\n\nfunction partition(\n status: StatusState,\n name: \"user\" | \"private\" | \"shared\",\n): PartitionStatus | \"checking\" {\n return status.connection === \"ready\" ? status[name] : \"checking\";\n}\n\nfunction locationKey(location: Location): string {\n return JSON.stringify(location ?? null);\n}\n\nfunction parseStatus(value: unknown): OperatorStatus | null {\n if (value === null || typeof value !== \"object\") return null;\n if (!(\"detail\" in value) || typeof value.detail !== \"string\") return null;\n if (!(\"user\" in value) || !isPartitionStatus(value.user)) return null;\n if (!(\"private\" in value) || !isPartitionStatus(value.private)) return null;\n if (!(\"shared\" in value) || !isPartitionStatus(value.shared)) return null;\n return { detail: value.detail, user: value.user, private: value.private, shared: value.shared };\n}\n\nfunction isPartitionStatus(value: unknown): value is PartitionStatus {\n return value === \"loaded\" || value === \"uninitialized\" || value === \"error\";\n}\n\nfunction parseToast(value: unknown): OperatorToast | null {\n if (value === null || typeof value !== \"object\") return null;\n if (!(\"title\" in value) || typeof value.title !== \"string\") return null;\n if (!(\"message\" in value) || typeof value.message !== \"string\") return null;\n if (!(\"variant\" in value) || !isVariant(value.variant)) return null;\n return { title: value.title, message: value.message, variant: value.variant };\n}\n\nfunction isVariant(value: unknown): value is OperatorToast[\"variant\"] {\n return value === \"info\" || value === \"success\" || value === \"warning\" || value === \"error\";\n}\n",
5
+ "import { effect as _$effect } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { createTextNode as _$createTextNode } from \"@opentui/solid\";\nimport { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\nimport { Plugin } from \"@opencode/plugin/tui\";\nimport { createEffect, Show } from \"solid-js\";\nimport { createStore } from \"solid-js/store\";\nimport packageJson from \"../package.json\" with { type: \"json\" };\nimport { OperatorNotifications } from \"./notifications.ts\";\nconst OperatorTuiPlugin = Plugin.define({\n id: \"aerovato.operator-memory\",\n setup(context) {\n const [statuses, setStatuses] = createStore({});\n const activeSessions = new Set();\n const pending = new Map();\n const client = context.client.rpc(OperatorNotifications);\n const status = location => statuses[locationKey(location)] ?? {\n connection: \"connecting\",\n detail: `v${packageJson.version}`\n };\n const refresh = (location, force) => {\n const key = locationKey(location);\n if (pending.has(key)) return;\n if (statuses[key]?.connection !== \"ready\") {\n setStatuses(key, {\n connection: \"connecting\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`\n });\n }\n const operation = client.status({\n refresh: force\n }, location === undefined ? undefined : {\n location\n }).then(value => {\n const current = parseStatus(value);\n setStatuses(key, current === null ? {\n connection: \"unavailable\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`\n } : {\n connection: \"ready\",\n ...current\n });\n }).catch(() => {\n setStatuses(key, {\n connection: \"unavailable\",\n detail: statuses[key]?.detail ?? `v${packageJson.version}`\n });\n }).finally(() => pending.delete(key));\n pending.set(key, operation);\n };\n refresh(context.location, false);\n const cleanups = [context.data.listen(event => {\n if (event.details.type !== \"rpc.aerovato.operator-memory.toast\") return;\n const toast = parseToast(event.details.data);\n if (toast === null) return;\n context.ui.toast.show({\n ...toast,\n duration: 10_000\n });\n }), context.data.on(\"server.connected\", () => refresh(context.location, true)), context.data.on(\"session.status\", event => {\n const session = context.data.session.get(event.data.sessionID);\n if (session?.parentID !== undefined) return;\n if (event.data.status.type !== \"idle\") {\n activeSessions.add(event.data.sessionID);\n return;\n }\n if (!activeSessions.delete(event.data.sessionID)) return;\n refresh(session?.location ?? context.location, true);\n }), context.ui.slot({\n append: \"home.footer.status\",\n render: () => {\n createEffect(() => refresh(context.location, false));\n return _$createComponent(ReadyIndicator, {\n context: context,\n status: () => status(context.location)\n });\n }\n }), context.ui.slot({\n append: \"sidebar.content\",\n render: input => {\n const location = () => context.data.session.get(input.sessionID)?.location ?? context.location;\n createEffect(() => refresh(location(), false));\n return _$createComponent(PartitionStatusView, {\n context: context,\n status: () => status(location())\n });\n }\n })];\n return () => cleanups.forEach(cleanup => {\n cleanup();\n });\n }\n});\nexport default OperatorTuiPlugin;\nexport function statusLabel(status) {\n const suffix = status.detail.length > 0 ? ` (${status.detail})` : \"\";\n if (status.connection === \"connecting\") return `Operator Connecting...${suffix}`;\n if (status.connection === \"unavailable\") return `Operator Unavailable${suffix}`;\n return `Operator Ready${suffix}`;\n}\nfunction ReadyIndicator(props) {\n const color = () => {\n if (props.status().connection === \"ready\") return props.context.theme.text.feedback.success.default;\n if (props.status().connection === \"unavailable\") return props.context.theme.text.feedback.error.default;\n return props.context.theme.text.subdued;\n };\n return (() => {\n var _el$ = _$createElement(\"box\"),\n _el$2 = _$createElement(\"text\"),\n _el$3 = _$createElement(\"span\"),\n _el$5 = _$createTextNode(` `),\n _el$6 = _$createElement(\"b\");\n _$insertNode(_el$, _el$2);\n _$setProp(_el$, \"flexShrink\", 0);\n _$insertNode(_el$2, _el$3);\n _$insertNode(_el$2, _el$5);\n _$insertNode(_el$2, _el$6);\n _$insertNode(_el$3, _$createTextNode(`•`));\n _$insert(_el$6, () => statusLabel(props.status()));\n _$effect(_p$ => {\n var _v$ = props.context.theme.text.default,\n _v$2 = {\n fg: color()\n };\n _v$ !== _p$.e && (_p$.e = _$setProp(_el$2, \"fg\", _v$, _p$.e));\n _v$2 !== _p$.t && (_p$.t = _$setProp(_el$3, \"style\", _v$2, _p$.t));\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$;\n })();\n}\nfunction PartitionStatusView(props) {\n const hasError = () => {\n const status = props.status();\n return status.connection === \"unavailable\" || status.connection === \"ready\" && [status.user, status.private, status.shared].includes(\"error\");\n };\n return (() => {\n var _el$7 = _$createElement(\"box\"),\n _el$8 = _$createElement(\"text\"),\n _el$9 = _$createElement(\"b\");\n _$insertNode(_el$7, _el$8);\n _$setProp(_el$7, \"gap\", 0);\n _$insertNode(_el$8, _el$9);\n _$insertNode(_el$9, _$createTextNode(`Operator Status`));\n _$insert(_el$7, _$createComponent(StatusRow, {\n get context() {\n return props.context;\n },\n label: \"User\",\n get status() {\n return partition(props.status(), \"user\");\n }\n }), null);\n _$insert(_el$7, _$createComponent(StatusRow, {\n get context() {\n return props.context;\n },\n label: \"Private\",\n get status() {\n return partition(props.status(), \"private\");\n }\n }), null);\n _$insert(_el$7, _$createComponent(StatusRow, {\n get context() {\n return props.context;\n },\n label: \"Shared\",\n get status() {\n return partition(props.status(), \"shared\");\n }\n }), null);\n _$insert(_el$7, _$createComponent(Show, {\n get when() {\n return hasError();\n },\n get children() {\n var _el$1 = _$createElement(\"text\");\n _$insertNode(_el$1, _$createTextNode(`Run /operator:repair to repair`));\n _$effect(_$p => _$setProp(_el$1, \"fg\", props.context.theme.text.feedback.warning.default, _$p));\n return _el$1;\n }\n }), null);\n _$effect(_$p => _$setProp(_el$8, \"fg\", props.context.theme.text.default, _$p));\n return _el$7;\n })();\n}\nfunction StatusRow(props) {\n const display = () => {\n if (props.status === \"checking\") {\n return {\n color: props.context.theme.text.subdued,\n label: \"Checking\"\n };\n }\n if (props.status === \"error\") {\n return {\n color: props.context.theme.text.feedback.error.default,\n label: \"Error\"\n };\n }\n return props.status === \"loaded\" ? {\n color: props.context.theme.text.feedback.success.default,\n label: \"Loaded\"\n } : {\n color: props.context.theme.text.feedback.warning.default,\n label: \"Uninitialized\"\n };\n };\n return (() => {\n var _el$11 = _$createElement(\"text\"),\n _el$12 = _$createElement(\"span\"),\n _el$14 = _$createTextNode(` `),\n _el$15 = _$createTextNode(` `),\n _el$16 = _$createElement(\"span\");\n _$insertNode(_el$11, _el$12);\n _$insertNode(_el$11, _el$14);\n _$insertNode(_el$11, _el$15);\n _$insertNode(_el$11, _el$16);\n _$insertNode(_el$12, _$createTextNode(`•`));\n _$insert(_el$11, () => props.label, _el$15);\n _$insert(_el$16, () => display().label);\n _$effect(_p$ => {\n var _v$3 = props.context.theme.text.default,\n _v$4 = {\n fg: display().color\n },\n _v$5 = {\n fg: props.context.theme.text.subdued\n };\n _v$3 !== _p$.e && (_p$.e = _$setProp(_el$11, \"fg\", _v$3, _p$.e));\n _v$4 !== _p$.t && (_p$.t = _$setProp(_el$12, \"style\", _v$4, _p$.t));\n _v$5 !== _p$.a && (_p$.a = _$setProp(_el$16, \"style\", _v$5, _p$.a));\n return _p$;\n }, {\n e: undefined,\n t: undefined,\n a: undefined\n });\n return _el$11;\n })();\n}\nfunction partition(status, name) {\n return status.connection === \"ready\" ? status[name] : \"checking\";\n}\nfunction locationKey(location) {\n return JSON.stringify(location ?? null);\n}\nfunction parseStatus(value) {\n if (value === null || typeof value !== \"object\") return null;\n if (!(\"detail\" in value) || typeof value.detail !== \"string\") return null;\n if (!(\"user\" in value) || !isPartitionStatus(value.user)) return null;\n if (!(\"private\" in value) || !isPartitionStatus(value.private)) return null;\n if (!(\"shared\" in value) || !isPartitionStatus(value.shared)) return null;\n return {\n detail: value.detail,\n user: value.user,\n private: value.private,\n shared: value.shared\n };\n}\nfunction isPartitionStatus(value) {\n return value === \"loaded\" || value === \"uninitialized\" || value === \"error\";\n}\nfunction parseToast(value) {\n if (value === null || typeof value !== \"object\") return null;\n if (!(\"title\" in value) || typeof value.title !== \"string\") return null;\n if (!(\"message\" in value) || typeof value.message !== \"string\") return null;\n if (!(\"variant\" in value) || !isVariant(value.variant)) return null;\n return {\n title: value.title,\n message: value.message,\n variant: value.variant\n };\n}\nfunction isVariant(value) {\n return value === \"info\" || value === \"success\" || value === \"warning\" || value === \"error\";\n}",
6
6
  "import { Rpc } from \"@opencode/plugin/rpc\";\n\nexport const OperatorNotifications = Rpc.define({\n id: \"aerovato.operator-memory\",\n methods: {\n status: {\n input: {\n type: \"object\",\n properties: { refresh: { type: \"boolean\" } },\n required: [\"refresh\"],\n },\n output: {\n type: \"object\",\n properties: {\n detail: { type: \"string\" },\n user: { enum: [\"loaded\", \"uninitialized\", \"error\"] },\n private: { enum: [\"loaded\", \"uninitialized\", \"error\"] },\n shared: { enum: [\"loaded\", \"uninitialized\", \"error\"] },\n },\n required: [\"detail\", \"user\", \"private\", \"shared\"],\n },\n },\n },\n events: {\n toast: {\n schema: {\n type: \"object\",\n properties: {\n title: { type: \"string\" },\n message: { type: \"string\" },\n variant: { enum: [\"info\", \"success\", \"warning\", \"error\"] },\n },\n required: [\"title\", \"message\", \"variant\"],\n },\n },\n },\n});\n\nexport type OperatorToast = {\n readonly title: string;\n readonly message: string;\n readonly variant: \"info\" | \"success\" | \"warning\" | \"error\";\n};\n\nexport type PartitionStatus = \"loaded\" | \"uninitialized\" | \"error\";\n\nexport type OperatorStatus = {\n readonly detail: string;\n readonly user: PartitionStatus;\n readonly private: PartitionStatus;\n readonly shared: PartitionStatus;\n};\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "C8A7AEE94D438D0E64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "A4DA93D4F5754C1A64756E2164756E21",
10
10
  "names": []
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aerovato/operator-opencode-v2",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Operator Memory adapter for OpenCode V2.",
5
5
  "license": "BSD-3-Clause",
6
6
  "author": "Aerovato Research",