opencode-usage-coach 0.7.0 → 0.8.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
@@ -202,210 +202,213 @@ function initializeTui(api, disposeRoot) {
202
202
  h = null;
203
203
  }
204
204
  const nodes = [];
205
- const HARNESS_AGENTS = ["usage-coach-harness"];
206
- if (s && s.agent && !HARNESS_AGENTS.includes(s.agent)) {
207
- return _$createElement("box");
208
- }
209
205
  if (s) {
210
206
  const dKey = s.decision === "GO" ? "success" : s.decision === "THROTTLE" ? "warning" : "error";
211
207
  const modelShort = s.model ? s.model.split("/").pop() ?? s.model : "";
212
208
  if (s.isFree) {
213
209
  nodes.push((() => {
214
- var _el$5 = _$createElement("box"), _el$6 = _$createElement("text"), _el$8 = _$createElement("text"), _el$9 = _$createTextNode(` `);
215
- _$insertNode(_el$5, _el$6);
216
- _$insertNode(_el$5, _el$8);
217
- _$setProp(_el$5, "flexDirection", "row");
218
- _$insertNode(_el$6, _$createTextNode(`usage-coach [free]`));
219
- _$insertNode(_el$8, _el$9);
220
- _$insert(_el$8, modelShort, null);
210
+ var _el$4 = _$createElement("box"), _el$5 = _$createElement("text"), _el$7 = _$createElement("text"), _el$8 = _$createTextNode(` `);
211
+ _$insertNode(_el$4, _el$5);
212
+ _$insertNode(_el$4, _el$7);
213
+ _$setProp(_el$4, "flexDirection", "row");
214
+ _$insertNode(_el$5, _$createTextNode(`usage-coach [free]`));
215
+ _$insertNode(_el$7, _el$8);
216
+ _$insert(_el$7, modelShort, null);
221
217
  _$effect((_p$) => {
222
218
  var _v$ = st(dKey), _v$2 = st("textMuted");
223
- _v$ !== _p$.e && (_p$.e = _$setProp(_el$6, "style", _v$, _p$.e));
224
- _v$2 !== _p$.t && (_p$.t = _$setProp(_el$8, "style", _v$2, _p$.t));
219
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$5, "style", _v$, _p$.e));
220
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$7, "style", _v$2, _p$.t));
225
221
  return _p$;
226
222
  }, {
227
223
  e: void 0,
228
224
  t: void 0
229
225
  });
230
- return _el$5;
226
+ return _el$4;
231
227
  })());
232
228
  } else {
233
229
  if (modelShort) {
234
230
  nodes.push((() => {
235
- var _el$0 = _$createElement("box"), _el$1 = _$createElement("text"), _el$10 = _$createTextNode(`usage-coach [`), _el$11 = _$createTextNode(`]`), _el$12 = _$createElement("text"), _el$13 = _$createTextNode(` `);
231
+ var _el$9 = _$createElement("box"), _el$0 = _$createElement("text"), _el$1 = _$createTextNode(`usage-coach [`), _el$10 = _$createTextNode(`]`), _el$11 = _$createElement("text"), _el$12 = _$createTextNode(` `);
232
+ _$insertNode(_el$9, _el$0);
233
+ _$insertNode(_el$9, _el$11);
234
+ _$setProp(_el$9, "flexDirection", "row");
236
235
  _$insertNode(_el$0, _el$1);
237
- _$insertNode(_el$0, _el$12);
238
- _$setProp(_el$0, "flexDirection", "row");
239
- _$insertNode(_el$1, _el$10);
240
- _$insertNode(_el$1, _el$11);
241
- _$insert(_el$1, () => TAG[s.decision], _el$11);
242
- _$insertNode(_el$12, _el$13);
243
- _$insert(_el$12, modelShort, null);
236
+ _$insertNode(_el$0, _el$10);
237
+ _$insert(_el$0, () => TAG[s.decision], _el$10);
238
+ _$insertNode(_el$11, _el$12);
239
+ _$insert(_el$11, modelShort, null);
244
240
  _$effect((_p$) => {
245
241
  var _v$3 = st(dKey), _v$4 = st("textMuted");
246
- _v$3 !== _p$.e && (_p$.e = _$setProp(_el$1, "style", _v$3, _p$.e));
247
- _v$4 !== _p$.t && (_p$.t = _$setProp(_el$12, "style", _v$4, _p$.t));
242
+ _v$3 !== _p$.e && (_p$.e = _$setProp(_el$0, "style", _v$3, _p$.e));
243
+ _v$4 !== _p$.t && (_p$.t = _$setProp(_el$11, "style", _v$4, _p$.t));
248
244
  return _p$;
249
245
  }, {
250
246
  e: void 0,
251
247
  t: void 0
252
248
  });
253
- return _el$0;
249
+ return _el$9;
254
250
  })());
255
251
  } else {
256
252
  nodes.push((() => {
257
- var _el$14 = _$createElement("text"), _el$15 = _$createTextNode(`usage-coach [`), _el$16 = _$createTextNode(`]`);
258
- _$insertNode(_el$14, _el$15);
259
- _$insertNode(_el$14, _el$16);
260
- _$insert(_el$14, () => TAG[s.decision], _el$16);
261
- _$effect((_$p) => _$setProp(_el$14, "style", st(dKey), _$p));
262
- return _el$14;
253
+ var _el$13 = _$createElement("text"), _el$14 = _$createTextNode(`usage-coach [`), _el$15 = _$createTextNode(`]`);
254
+ _$insertNode(_el$13, _el$14);
255
+ _$insertNode(_el$13, _el$15);
256
+ _$insert(_el$13, () => TAG[s.decision], _el$15);
257
+ _$effect((_$p) => _$setProp(_el$13, "style", st(dKey), _$p));
258
+ return _el$13;
263
259
  })());
264
260
  }
265
261
  if (s.providers && s.providers.length > 0) {
266
262
  for (const p of s.providers) {
267
263
  nodes.push((() => {
268
- var _el$17 = _$createElement("box"), _el$18 = _$createElement("text"), _el$20 = _$createElement("text"), _el$21 = _$createElement("text"), _el$22 = _$createElement("text"), _el$23 = _$createTextNode(` `), _el$24 = _$createTextNode(`% `);
269
- _$insertNode(_el$17, _el$18);
270
- _$insertNode(_el$17, _el$20);
271
- _$insertNode(_el$17, _el$21);
272
- _$insertNode(_el$17, _el$22);
273
- _$setProp(_el$17, "flexDirection", "row");
274
- _$insertNode(_el$18, _$createTextNode(` 5h `));
275
- _$insert(_el$20, () => barFill(p.fiveHour));
276
- _$insert(_el$21, () => barEmpty(p.fiveHour));
277
- _$insertNode(_el$22, _el$23);
278
- _$insertNode(_el$22, _el$24);
279
- _$insert(_el$22, () => p.fiveHour, _el$24);
280
- _$insert(_el$22, () => p.fiveHourReset, null);
264
+ var _el$16 = _$createElement("box"), _el$17 = _$createElement("text"), _el$19 = _$createElement("text"), _el$20 = _$createElement("text"), _el$21 = _$createElement("text"), _el$22 = _$createTextNode(` `), _el$23 = _$createTextNode(`% `);
265
+ _$insertNode(_el$16, _el$17);
266
+ _$insertNode(_el$16, _el$19);
267
+ _$insertNode(_el$16, _el$20);
268
+ _$insertNode(_el$16, _el$21);
269
+ _$setProp(_el$16, "flexDirection", "row");
270
+ _$insertNode(_el$17, _$createTextNode(` 5h `));
271
+ _$insert(_el$19, () => barFill(p.fiveHour));
272
+ _$insert(_el$20, () => barEmpty(p.fiveHour));
273
+ _$insertNode(_el$21, _el$22);
274
+ _$insertNode(_el$21, _el$23);
275
+ _$insert(_el$21, () => p.fiveHour, _el$23);
276
+ _$insert(_el$21, () => p.fiveHourReset, null);
281
277
  _$effect((_p$) => {
282
278
  var _v$5 = st("text"), _v$6 = st("text");
283
- _v$5 !== _p$.e && (_p$.e = _$setProp(_el$20, "style", _v$5, _p$.e));
284
- _v$6 !== _p$.t && (_p$.t = _$setProp(_el$21, "style", _v$6, _p$.t));
279
+ _v$5 !== _p$.e && (_p$.e = _$setProp(_el$19, "style", _v$5, _p$.e));
280
+ _v$6 !== _p$.t && (_p$.t = _$setProp(_el$20, "style", _v$6, _p$.t));
285
281
  return _p$;
286
282
  }, {
287
283
  e: void 0,
288
284
  t: void 0
289
285
  });
290
- return _el$17;
286
+ return _el$16;
291
287
  })());
292
288
  nodes.push((() => {
293
- var _el$25 = _$createElement("box"), _el$26 = _$createElement("text"), _el$28 = _$createElement("text"), _el$29 = _$createElement("text"), _el$30 = _$createElement("text"), _el$31 = _$createTextNode(` `), _el$32 = _$createTextNode(`% `);
294
- _$insertNode(_el$25, _el$26);
295
- _$insertNode(_el$25, _el$28);
296
- _$insertNode(_el$25, _el$29);
297
- _$insertNode(_el$25, _el$30);
298
- _$setProp(_el$25, "flexDirection", "row");
299
- _$insertNode(_el$26, _$createTextNode(` 1w `));
300
- _$insert(_el$28, () => barFill(p.weekly));
301
- _$insert(_el$29, () => barEmpty(p.weekly));
302
- _$insertNode(_el$30, _el$31);
303
- _$insertNode(_el$30, _el$32);
304
- _$insert(_el$30, () => p.weekly, _el$32);
305
- _$insert(_el$30, () => p.weeklyReset, null);
289
+ var _el$24 = _$createElement("box"), _el$25 = _$createElement("text"), _el$27 = _$createElement("text"), _el$28 = _$createElement("text"), _el$29 = _$createElement("text"), _el$30 = _$createTextNode(` `), _el$31 = _$createTextNode(`% `);
290
+ _$insertNode(_el$24, _el$25);
291
+ _$insertNode(_el$24, _el$27);
292
+ _$insertNode(_el$24, _el$28);
293
+ _$insertNode(_el$24, _el$29);
294
+ _$setProp(_el$24, "flexDirection", "row");
295
+ _$insertNode(_el$25, _$createTextNode(` 1w `));
296
+ _$insert(_el$27, () => barFill(p.weekly));
297
+ _$insert(_el$28, () => barEmpty(p.weekly));
298
+ _$insertNode(_el$29, _el$30);
299
+ _$insertNode(_el$29, _el$31);
300
+ _$insert(_el$29, () => p.weekly, _el$31);
301
+ _$insert(_el$29, () => p.weeklyReset, null);
306
302
  _$effect((_p$) => {
307
303
  var _v$7 = st("text"), _v$8 = st("text");
308
- _v$7 !== _p$.e && (_p$.e = _$setProp(_el$28, "style", _v$7, _p$.e));
309
- _v$8 !== _p$.t && (_p$.t = _$setProp(_el$29, "style", _v$8, _p$.t));
304
+ _v$7 !== _p$.e && (_p$.e = _$setProp(_el$27, "style", _v$7, _p$.e));
305
+ _v$8 !== _p$.t && (_p$.t = _$setProp(_el$28, "style", _v$8, _p$.t));
310
306
  return _p$;
311
307
  }, {
312
308
  e: void 0,
313
309
  t: void 0
314
310
  });
315
- return _el$25;
311
+ return _el$24;
316
312
  })());
317
313
  }
318
314
  } else {
319
315
  nodes.push((() => {
320
- var _el$33 = _$createElement("box"), _el$34 = _$createElement("text"), _el$36 = _$createElement("text"), _el$37 = _$createElement("text"), _el$38 = _$createElement("text");
321
- _$insertNode(_el$33, _el$34);
322
- _$insertNode(_el$33, _el$36);
323
- _$insertNode(_el$33, _el$37);
324
- _$insertNode(_el$33, _el$38);
325
- _$setProp(_el$33, "flexDirection", "row");
326
- _$insertNode(_el$34, _$createTextNode(` 5h `));
327
- _$insert(_el$36, () => barFill(s.fiveHour));
328
- _$insert(_el$37, () => barEmpty(s.fiveHour));
329
- _$insertNode(_el$38, _$createTextNode(` 0%`));
316
+ var _el$32 = _$createElement("box"), _el$33 = _$createElement("text"), _el$35 = _$createElement("text"), _el$36 = _$createElement("text"), _el$37 = _$createElement("text");
317
+ _$insertNode(_el$32, _el$33);
318
+ _$insertNode(_el$32, _el$35);
319
+ _$insertNode(_el$32, _el$36);
320
+ _$insertNode(_el$32, _el$37);
321
+ _$setProp(_el$32, "flexDirection", "row");
322
+ _$insertNode(_el$33, _$createTextNode(` 5h `));
323
+ _$insert(_el$35, () => barFill(s.fiveHour));
324
+ _$insert(_el$36, () => barEmpty(s.fiveHour));
325
+ _$insertNode(_el$37, _$createTextNode(` 0%`));
330
326
  _$effect((_p$) => {
331
327
  var _v$9 = st("text"), _v$0 = st("text");
332
- _v$9 !== _p$.e && (_p$.e = _$setProp(_el$36, "style", _v$9, _p$.e));
333
- _v$0 !== _p$.t && (_p$.t = _$setProp(_el$37, "style", _v$0, _p$.t));
328
+ _v$9 !== _p$.e && (_p$.e = _$setProp(_el$35, "style", _v$9, _p$.e));
329
+ _v$0 !== _p$.t && (_p$.t = _$setProp(_el$36, "style", _v$0, _p$.t));
334
330
  return _p$;
335
331
  }, {
336
332
  e: void 0,
337
333
  t: void 0
338
334
  });
339
- return _el$33;
335
+ return _el$32;
340
336
  })());
341
337
  nodes.push((() => {
342
- var _el$40 = _$createElement("box"), _el$41 = _$createElement("text"), _el$43 = _$createElement("text"), _el$44 = _$createElement("text"), _el$45 = _$createElement("text");
343
- _$insertNode(_el$40, _el$41);
344
- _$insertNode(_el$40, _el$43);
345
- _$insertNode(_el$40, _el$44);
346
- _$insertNode(_el$40, _el$45);
347
- _$setProp(_el$40, "flexDirection", "row");
348
- _$insertNode(_el$41, _$createTextNode(` 1w `));
349
- _$insert(_el$43, () => barFill(s.weekly));
350
- _$insert(_el$44, () => barEmpty(s.weekly));
351
- _$insertNode(_el$45, _$createTextNode(` 0%`));
338
+ var _el$39 = _$createElement("box"), _el$40 = _$createElement("text"), _el$42 = _$createElement("text"), _el$43 = _$createElement("text"), _el$44 = _$createElement("text");
339
+ _$insertNode(_el$39, _el$40);
340
+ _$insertNode(_el$39, _el$42);
341
+ _$insertNode(_el$39, _el$43);
342
+ _$insertNode(_el$39, _el$44);
343
+ _$setProp(_el$39, "flexDirection", "row");
344
+ _$insertNode(_el$40, _$createTextNode(` 1w `));
345
+ _$insert(_el$42, () => barFill(s.weekly));
346
+ _$insert(_el$43, () => barEmpty(s.weekly));
347
+ _$insertNode(_el$44, _$createTextNode(` 0%`));
352
348
  _$effect((_p$) => {
353
349
  var _v$1 = st("text"), _v$10 = st("text");
354
- _v$1 !== _p$.e && (_p$.e = _$setProp(_el$43, "style", _v$1, _p$.e));
355
- _v$10 !== _p$.t && (_p$.t = _$setProp(_el$44, "style", _v$10, _p$.t));
350
+ _v$1 !== _p$.e && (_p$.e = _$setProp(_el$42, "style", _v$1, _p$.e));
351
+ _v$10 !== _p$.t && (_p$.t = _$setProp(_el$43, "style", _v$10, _p$.t));
356
352
  return _p$;
357
353
  }, {
358
354
  e: void 0,
359
355
  t: void 0
360
356
  });
361
- return _el$40;
357
+ return _el$39;
362
358
  })());
363
359
  }
364
360
  }
365
361
  } else {
366
362
  nodes.push((() => {
367
- var _el$47 = _$createElement("text");
368
- _$insertNode(_el$47, _$createTextNode(`usage-coach: ...`));
369
- return _el$47;
363
+ var _el$46 = _$createElement("text");
364
+ _$insertNode(_el$46, _$createTextNode(`usage-coach: ...`));
365
+ return _el$46;
370
366
  })());
371
367
  }
372
- if (h && h.active !== false && h.tasks.length > 0) {
368
+ if (h && h.tasks.length > 0) {
373
369
  nodes.push((() => {
374
- var _el$49 = _$createElement("text");
375
- _$insertNode(_el$49, _$createTextNode(` `));
376
- return _el$49;
370
+ var _el$48 = _$createElement("text");
371
+ _$insertNode(_el$48, _$createTextNode(` `));
372
+ return _el$48;
377
373
  })());
378
374
  nodes.push((() => {
379
- var _el$51 = _$createElement("text"), _el$52 = _$createTextNode(`harness: `), _el$53 = _$createTextNode(` `), _el$54 = _$createTextNode(`/`);
380
- _$insertNode(_el$51, _el$52);
381
- _$insertNode(_el$51, _el$53);
382
- _$insertNode(_el$51, _el$54);
383
- _$insert(_el$51, () => h.name, _el$53);
384
- _$insert(_el$51, () => h.current, _el$54);
385
- _$insert(_el$51, () => h.total, null);
386
- _$effect((_$p) => _$setProp(_el$51, "style", st("textMuted"), _$p));
387
- return _el$51;
375
+ var _el$50 = _$createElement("text"), _el$51 = _$createTextNode(`harness: `), _el$52 = _$createTextNode(` `), _el$53 = _$createTextNode(`/`);
376
+ _$insertNode(_el$50, _el$51);
377
+ _$insertNode(_el$50, _el$52);
378
+ _$insertNode(_el$50, _el$53);
379
+ _$insert(_el$50, () => h.name, _el$52);
380
+ _$insert(_el$50, () => h.current, _el$53);
381
+ _$insert(_el$50, () => h.total, null);
382
+ _$effect((_$p) => _$setProp(_el$50, "style", st("textMuted"), _$p));
383
+ return _el$50;
388
384
  })());
389
385
  for (const t of h.tasks) {
390
386
  const sKey = statusKey[t.status] ?? "text";
391
387
  const lbl = TLABEL[t.status] ?? t.status;
392
388
  const rev = t.revisions > 0 && t.status === "revising" ? `(${t.revisions})` : "";
393
389
  const mdl = t.model ? ` ${t.model.split("/").pop() ?? t.model}` : "";
390
+ const hasSub = !!t.subSessionId;
391
+ const subStepStr = hasSub && t.subStep !== void 0 && t.subStep > 0 ? ` step:${t.subStep}` : "";
392
+ const subEl = hasSub && t.subElapsed !== void 0 ? ` ${t.subElapsed}s` : "";
393
+ const subWarn = hasSub && (t.subElapsed ?? 0) > 300;
394
394
  const elapsed = t.startedAt ? Math.max(0, Math.round((Date.now() - new Date(t.startedAt).getTime()) / 1e3)) : 0;
395
- const elapsedStr = t.status === "completed" || t.status === "failed" ? "" : elapsed > 0 ? ` ${elapsed}s` : "";
395
+ const taskEl = t.status === "completed" || t.status === "failed" ? "" : elapsed > 0 ? ` ${elapsed}s` : "";
396
+ const displayEl = hasSub ? subEl : taskEl;
397
+ const lineKey = subWarn ? "warning" : sKey;
396
398
  nodes.push((() => {
397
- var _el$55 = _$createElement("text"), _el$56 = _$createTextNode(` \u25CF `), _el$57 = _$createTextNode(` `), _el$58 = _$createTextNode(` `);
398
- _$insertNode(_el$55, _el$56);
399
- _$insertNode(_el$55, _el$57);
400
- _$insertNode(_el$55, _el$58);
401
- _$insert(_el$55, () => t.id, _el$57);
402
- _$insert(_el$55, mdl, _el$57);
403
- _$insert(_el$55, lbl, _el$58);
404
- _$insert(_el$55, rev, _el$58);
405
- _$insert(_el$55, elapsedStr, _el$58);
406
- _$insert(_el$55, () => t.title, null);
407
- _$effect((_$p) => _$setProp(_el$55, "style", st(sKey), _$p));
408
- return _el$55;
399
+ var _el$54 = _$createElement("text"), _el$55 = _$createTextNode(` \u25CF `), _el$56 = _$createTextNode(` `), _el$57 = _$createTextNode(` `);
400
+ _$insertNode(_el$54, _el$55);
401
+ _$insertNode(_el$54, _el$56);
402
+ _$insertNode(_el$54, _el$57);
403
+ _$insert(_el$54, () => t.id, _el$56);
404
+ _$insert(_el$54, mdl, _el$56);
405
+ _$insert(_el$54, lbl, _el$57);
406
+ _$insert(_el$54, rev, _el$57);
407
+ _$insert(_el$54, subStepStr, _el$57);
408
+ _$insert(_el$54, displayEl, _el$57);
409
+ _$insert(_el$54, () => t.title, null);
410
+ _$effect((_$p) => _$setProp(_el$54, "style", st(lineKey), _$p));
411
+ return _el$54;
409
412
  })());
410
413
  const pv = t.model ? (t.model.split("/")[0] ?? "").split("-")[0] : "";
411
414
  const provCoach = pv ? s?.providers?.find((p) => p.id === pv || pv && p.id.startsWith(pv) || pv && pv.startsWith(p.id)) : s?.providers?.[0];
@@ -413,35 +416,35 @@ function initializeTui(api, disposeRoot) {
413
416
  const pct = rawPct < 0 ? 0 : rawPct;
414
417
  const pctLabel = rawPct < 0 ? "n/a" : `${rawPct}%`;
415
418
  nodes.push((() => {
416
- var _el$59 = _$createElement("box"), _el$60 = _$createElement("text"), _el$62 = _$createElement("text"), _el$63 = _$createElement("text"), _el$64 = _$createElement("text"), _el$65 = _$createTextNode(` `);
417
- _$insertNode(_el$59, _el$60);
418
- _$insertNode(_el$59, _el$62);
419
- _$insertNode(_el$59, _el$63);
420
- _$insertNode(_el$59, _el$64);
421
- _$setProp(_el$59, "flexDirection", "row");
422
- _$insertNode(_el$60, _$createTextNode(` 5h `));
423
- _$insert(_el$62, () => barFill(pct));
424
- _$insert(_el$63, () => barEmpty(pct));
425
- _$insertNode(_el$64, _el$65);
426
- _$insert(_el$64, pctLabel, null);
419
+ var _el$58 = _$createElement("box"), _el$59 = _$createElement("text"), _el$61 = _$createElement("text"), _el$62 = _$createElement("text"), _el$63 = _$createElement("text"), _el$64 = _$createTextNode(` `);
420
+ _$insertNode(_el$58, _el$59);
421
+ _$insertNode(_el$58, _el$61);
422
+ _$insertNode(_el$58, _el$62);
423
+ _$insertNode(_el$58, _el$63);
424
+ _$setProp(_el$58, "flexDirection", "row");
425
+ _$insertNode(_el$59, _$createTextNode(` 5h `));
426
+ _$insert(_el$61, () => barFill(pct));
427
+ _$insert(_el$62, () => barEmpty(pct));
428
+ _$insertNode(_el$63, _el$64);
429
+ _$insert(_el$63, pctLabel, null);
427
430
  _$effect((_p$) => {
428
431
  var _v$11 = st("text"), _v$12 = st("text");
429
- _v$11 !== _p$.e && (_p$.e = _$setProp(_el$62, "style", _v$11, _p$.e));
430
- _v$12 !== _p$.t && (_p$.t = _$setProp(_el$63, "style", _v$12, _p$.t));
432
+ _v$11 !== _p$.e && (_p$.e = _$setProp(_el$61, "style", _v$11, _p$.e));
433
+ _v$12 !== _p$.t && (_p$.t = _$setProp(_el$62, "style", _v$12, _p$.t));
431
434
  return _p$;
432
435
  }, {
433
436
  e: void 0,
434
437
  t: void 0
435
438
  });
436
- return _el$59;
439
+ return _el$58;
437
440
  })());
438
441
  }
439
442
  }
440
443
  return (() => {
441
- var _el$66 = _$createElement("box");
442
- _$setProp(_el$66, "flexDirection", "column");
443
- _$insert(_el$66, nodes);
444
- return _el$66;
444
+ var _el$65 = _$createElement("box");
445
+ _$setProp(_el$65, "flexDirection", "column");
446
+ _$insert(_el$65, nodes);
447
+ return _el$65;
445
448
  })();
446
449
  };
447
450
  tlog("registering slots");
@@ -456,9 +459,9 @@ function initializeTui(api, disposeRoot) {
456
459
  } catch (e) {
457
460
  tlog(`sidebar_footer err: ${String(e)}`);
458
461
  result = (() => {
459
- var _el$67 = _$createElement("text");
460
- _$insertNode(_el$67, _$createTextNode(`usage-coach`));
461
- return _el$67;
462
+ var _el$66 = _$createElement("text");
463
+ _$insertNode(_el$66, _$createTextNode(`usage-coach`));
464
+ return _el$66;
462
465
  })();
463
466
  }
464
467
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-usage-coach",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "opencode closed-loop usage coach — quota SENSE -> coaching DECIDE -> loop ACT + TUI integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",