@siegesailor/terminal-sigma 1.4.1 → 1.5.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/README.md CHANGED
@@ -10,7 +10,7 @@ Terminal-Sigma is a terminal-based application that gives game-style feedback on
10
10
 
11
11
  | Component | What It Does |
12
12
  | --------------------- | ------------------------------------------------------------------------------------------------------------- |
13
- | Character Progression | A pixel-art pet, shaped by your profile, dressed by your level, and woken up by what you log today |
13
+ | Character Progression | A pixel-art you, shaped by your profile, dressed by your level, and woken up by what you log today |
14
14
  | Everyday Quotes | An inspiring quote that refreshes on your schedule, filtered by category, author, or work |
15
15
  | Health | Your meals and workouts against daily targets worked out from your profile, with advice for the rest of today |
16
16
  | Logs | Every focus, meal, workout, and action you took, with the latest 4 in a Recent block under the menu |
@@ -50,7 +50,7 @@ Download the file for your system from the [latest release](https://github.com/S
50
50
  > xattr -dr com.apple.quarantine "/Applications/Terminal Sigma.app"
51
51
  > ```
52
52
 
53
- The desktop app opens the dashboard in its own window, sends a system notification when a focus or break ends, and uses your profile's name and the default timer options below.
53
+ The desktop app opens the dashboard in its own window, sends a system notification when a focus or break ends, and uses your profile's name and the default timer options below. It updates itself from **Software Update** in the menu.
54
54
 
55
55
  ## Usage
56
56
 
@@ -72,19 +72,20 @@ On the first run, it asks for your language and saves the answer in `progress.js
72
72
 
73
73
  The menu drives everything. It sits in 2 boxes: the items on the left, and on the right what the focused item does, which turns into its options once you press Enter:
74
74
 
75
- | Key | Item | Enter Opens |
76
- | --- | --------------- | ----------------------------------------------------------------------------------------- |
77
- | `1` | Everyday Quotes | A new quote, and the settings below |
78
- | `2` | Tomato Timer | Start a focus, or pause, resume, or stop the running one |
79
- | `3` | Health | Today's targets and advice, then log a meal or a workout |
80
- | `4` | Logs | Every log and action, newest first, with a filter per kind |
81
- | `5` | Profile | Your name, age, height, weight, gender, work style, and health goal, showing saved values |
82
- | `6` | Theme | The color tone of the dashboard and your pet, previewing each one as the cursor moves |
83
- | `7` | Language | English, Traditional Chinese, or Korean |
75
+ | Key | Item | Enter Opens |
76
+ | --- | --------------- | ------------------------------------------------------------------------------------------- |
77
+ | `1` | Everyday Quotes | A new quote, and the settings below |
78
+ | `2` | Tomato Timer | Start a focus, or pause, resume, or stop the running one |
79
+ | `3` | Health | Today's targets and advice, then log a meal or a workout |
80
+ | `4` | Logs | Every log and action, newest first, with a filter per kind |
81
+ | `5` | Profile | Your name, age, height, weight, gender, work style, and health goal, showing saved values |
82
+ | `6` | Theme | The color tone of the dashboard and your character, previewing each one as the cursor moves |
83
+ | `7` | Language | English, Traditional Chinese, or Korean |
84
+ | `8` | Software Update | The version you run and the newest one, with an update when there is one |
84
85
 
85
86
  A meal asks for the food, its calories, and its protein; a workout asks for the activity, its minutes, and its intensity, one at a time. The food field suggests as you type, your past meals first and then 112 common foods matched in any of the 3 languages, and picking one fills in its calories and protein. The activity offers your 3 latest workouts to repeat in 1 step. A stopped focus earns nothing.
86
87
 
87
- Everything else you do is logged too, without experience: opening the app, starting, pausing, resuming, or stopping a tomato, finishing a break, leveling up, drawing a quote, and changing the language, the theme, the profile, or a quote setting.
88
+ Everything else you do is logged too, without experience: opening the app, starting, pausing, resuming, or stopping a tomato, finishing a break, leveling up, drawing a quote, changing the language, the theme, the profile, or a quote setting, and updating.
88
89
 
89
90
  ### Everyday Quotes
90
91
 
@@ -102,17 +103,28 @@ Each setting is saved as soon as you choose it:
102
103
 
103
104
  Without an API key, the settings filter the 28 bundled quotes, which cover every category in all 3 languages, and fall back to all of them when nothing matches. With `API_NINJAS_KEY`, they become the query to API Ninjas.
104
105
 
105
- ### Pet
106
+ ### Character
106
107
 
107
- Your character is a pixel-art pet in the spirit of Claude Code's mascot. It wanders around its panel and switches to typing at a laptop, sipping from a cup, eating, running, lifting, or stretching to match what you do. 3 things shape it:
108
+ Your character is a pixel-art you, standing on its own shadow. It wanders around its panel, looks about, and switches to typing at a desk, sipping a coffee, eating, running, lifting, or stretching to match what you do. 3 things shape it:
108
109
 
109
- | Shaped By | What Changes |
110
- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
111
- | Level | It grows at levels 4 and 7, and gains 1 piece of gear per level up to level 9: headphones, a scarf, a cap, an orb, an antenna, a cape, a crown, and sparkles |
112
- | Profile | Its size follows your height and its width your weight for that height; a bow, a tuft, or a sprout follows your gender |
113
- | Today's Logs | It naps until you log something, and beams once you meet your protein and exercise targets or finish 4 focus sessions; a tomato, an apple, and a dumbbell show what you logged |
110
+ | Shaped By | What Changes |
111
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
112
+ | Level | 1 piece of gear per level up to level 9: headphones, a scarf, a cap, a backpack, a smartwatch, a jacket, a crown, and a medal |
113
+ | Profile | The height follows yours, and the build your weight for that height, from slim to heavy; gender sets the shoulders, hips, and hair, age greys the hair, and a muscle goal broadens the shoulders |
114
+ | Today's Logs | It dozes on its feet until you log something, and smiles and waves once you meet your protein and exercise targets or finish 4 focus sessions |
114
115
 
115
- Your health goal adds a sweatband to lose fat, a heart to maintain, bigger arms to build muscle, or sneakers for endurance.
116
+ Your work style dresses it: a hoodie and jeans at a desk, a shirt and an apron when standing, a tee and cargo pants when active, and a tank top and shorts as an athlete.
117
+
118
+ ### Software Update
119
+
120
+ **Software Update** shows the version you run and the newest one, and checks once on start so the menu can tell you when there is a newer one. Choosing the update installs it, and **Restart now** starts the new version in place:
121
+
122
+ | Running As | How It Updates |
123
+ | ---------- | -------------------------------------------------------------------------------------------------- |
124
+ | CLI | `npm install --global @siegesailor/terminal-sigma@<version>`, then the same command starts again |
125
+ | Desktop | Downloads this system's file from the release, swaps it in for the running app, and opens it again |
126
+
127
+ The desktop app waits until the release has its file for your system, a few minutes after the CLI. On Linux it updates the AppImage, and on Windows it runs the installer silently.
116
128
 
117
129
  ### Health Targets
118
130
 
@@ -132,7 +144,7 @@ Every view shows its keys at the bottom right:
132
144
 
133
145
  | Key | Action |
134
146
  | ------------------------- | ------------------------------------------------------------------------ |
135
- | `1` to `7` | Jump to a menu item |
147
+ | `1` to `8` | Jump to a menu item |
136
148
  | Arrows or `h` `j` `k` `l` | Move through the menu, a list, a suggestion, or the log filters |
137
149
  | Enter | Open the item, choose the option, or go to the next field |
138
150
  | Esc | Go back to the menu, or out of a quote setting, without logging anything |
@@ -208,7 +220,7 @@ Each setting takes 1 of a fixed set of values:
208
220
 
209
221
  | Field | Values |
210
222
  | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
211
- | `events.action` | `appOpened`, `breakOver`, `languageChanged`, `levelUp`, `profileSaved`, `quoteDrawn`, `quoteSettingsChanged`, `themeChanged`, `timerPaused`, `timerResumed`, `timerStarted`, or `timerStopped` |
223
+ | `events.action` | `appOpened`, `breakOver`, `languageChanged`, `levelUp`, `profileSaved`, `quoteDrawn`, `quoteSettingsChanged`, `themeChanged`, `timerPaused`, `timerResumed`, `timerStarted`, `timerStopped`, or `updateInstalled` |
212
224
  | `language` | `en`, `ko`, or `zh-TW` |
213
225
  | `profile.gender` | `female`, `male`, or `other` |
214
226
  | `profile.goal` | `buildMuscle`, `endurance`, `loseFat`, or `maintain` |
@@ -222,7 +234,7 @@ Each setting takes 1 of a fixed set of values:
222
234
 
223
235
  Every setting is optional, and files written by version 1 still load as they are.
224
236
 
225
- Every 100 XP is a level, and every level from level 2 to level 9 gives your pet 1 piece of gear. Experience is earned as follows:
237
+ Every 100 XP is a level, and every level from level 2 to level 9 gives your character 1 piece of gear. Experience is earned as follows:
226
238
 
227
239
  | Entry | Experience |
228
240
  | -------------- | --------------------------------------------------------------------- |
package/build/app.js CHANGED
@@ -11,13 +11,13 @@ import Footer from "./components/footer.js";
11
11
  import LogsView, { LogRow } from "./components/logs-view.js";
12
12
  import MultiChoice from "./components/multi-choice.js";
13
13
  import TodayPanel from "./components/today-panel.js";
14
- import { categoryOptionsOf, characterWidth, dietFieldsOf, intervalOptionsOf, layoutOf, menuEntriesOf, menuListWidth, menuOrder, petStateOf, profileFieldsOf, quoteOptionsOf, sectionsOf, workoutFieldsOf, } from "./content.js";
14
+ import { categoryOptionsOf, characterWidth, dietFieldsOf, intervalOptionsOf, layoutOf, menuEntriesOf, menuListWidth, menuOrder, moodOf, profileFieldsOf, quoteOptionsOf, sectionsOf, updateViewOf, workoutFieldsOf, } from "./content.js";
15
15
  import { adviceOf, targetsOf } from "./health.js";
16
16
  import { formatNumber, genders, healthGoals, intensities, languages, messagesOf, workoutActivities, workStyles, } from "./i18n.js";
17
17
  import { lookOf } from "./pixel-art.js";
18
18
  import { experienceOf, experiencePerMeal, levelOf, logsOf, saveProgress, todayOf, workoutExperience, } from "./progress.js";
19
19
  import { bundledQuotes, defaultQuoteSettings, fetchQuote, hasQuoteApi, localizedQuote, pickBundled, quoteCategories, quoteIntervals, } from "./quotes.js";
20
- import { paletteContext, themeNames, themes, uiThemeOf, } from "./theme.js";
20
+ import { paletteContext, spinnerFrames, themeNames, themes, uiThemeOf, } from "./theme.js";
21
21
  import { advanceTimer, formatClock, idleTimer, remainingOf, toggleTimer, } from "./timer.js";
22
22
  export const optionsSchema = zod.object({
23
23
  name: zod.string().min(1).optional(),
@@ -36,6 +36,7 @@ const languageOptions = languages.map((language) => ({
36
36
  label: messagesOf(language).languageName,
37
37
  value: language,
38
38
  }));
39
+ const errorText = (error) => error instanceof Error ? error.message : String(error);
39
40
  const pick = (options, value, fallback) => options.find((option) => option === value) ?? fallback;
40
41
  // Appends an event, so every action lands in the logs with the change it made.
41
42
  const withEvent = (progress, action, detail) => ({
@@ -68,7 +69,7 @@ function Titled({ title, children, }) {
68
69
  function Swatches({ palette }) {
69
70
  return (React.createElement(Text, null, Object.values(palette.metrics).map((color) => (React.createElement(Text, { key: color, color: color }, "\u2588\u2588")))));
70
71
  }
71
- export default function App({ options, file, initialProgress }) {
72
+ export default function App({ options, file, initialProgress, updater, }) {
72
73
  const { exit } = useApp();
73
74
  const { stdout } = useStdout();
74
75
  const size = useWindowSize();
@@ -96,6 +97,28 @@ export default function App({ options, file, initialProgress }) {
96
97
  text: messages.savedTo(file.replace(homedir(), "~")),
97
98
  tone: "info",
98
99
  }));
100
+ const [release, setRelease] = React.useState({ phase: "checking" });
101
+ // The latest progress, for work that finishes long after it started.
102
+ const latest = React.useRef(progress);
103
+ React.useEffect(() => {
104
+ latest.current = progress;
105
+ }, [progress]);
106
+ const lookUp = React.useCallback(async () => updater.newest().then((newest) => ({ phase: "ready", newest }), (error) => ({
107
+ phase: "checkFailed",
108
+ error: errorText(error),
109
+ })), [updater]);
110
+ // Looks for an update once on start, so the menu can say there is one.
111
+ React.useEffect(() => {
112
+ let isCurrent = true;
113
+ void lookUp().then((next) => {
114
+ if (isCurrent) {
115
+ setRelease(next);
116
+ }
117
+ });
118
+ return () => {
119
+ isCurrent = false;
120
+ };
121
+ }, [lookUp]);
99
122
  const say = (text, tone = "info") => {
100
123
  setMessage({ text, tone });
101
124
  };
@@ -353,6 +376,40 @@ export default function App({ options, file, initialProgress }) {
353
376
  }
354
377
  }
355
378
  };
379
+ const checkForUpdate = () => {
380
+ if (release.phase === "installed") {
381
+ return;
382
+ }
383
+ setRelease({ phase: "checking" });
384
+ void lookUp().then(setRelease);
385
+ };
386
+ const chooseUpdateAction = (value) => {
387
+ const { newest } = release;
388
+ if (value === "install" && newest) {
389
+ setRelease({ phase: "installing", newest });
390
+ updater.install(newest).then(() => {
391
+ setRelease({ phase: "installed", newest });
392
+ const { current } = latest;
393
+ commit(withEvent(current, "updateInstalled", newest), messagesOf(current.language ?? "en").update.installed(newest), "success");
394
+ }, (error) => {
395
+ setRelease({
396
+ phase: "installFailed",
397
+ newest,
398
+ error: errorText(error),
399
+ });
400
+ });
401
+ }
402
+ else if (value === "restart") {
403
+ updater.restart();
404
+ exit();
405
+ }
406
+ else if (value === "check") {
407
+ checkForUpdate();
408
+ }
409
+ else {
410
+ backToMenu();
411
+ }
412
+ };
356
413
  const openMenu = (value) => {
357
414
  const item = pick(menuOrder, value, "quotes");
358
415
  setFocusedMenu(item);
@@ -360,6 +417,9 @@ export default function App({ options, file, initialProgress }) {
360
417
  if (item === "theme") {
361
418
  setPreviewTheme(themeName);
362
419
  }
420
+ if (item === "update" && release.phase !== "installing") {
421
+ checkForUpdate();
422
+ }
363
423
  };
364
424
  const experience = experienceOf(progress);
365
425
  const level = levelOf(experience);
@@ -368,7 +428,7 @@ export default function App({ options, file, initialProgress }) {
368
428
  const columns = size.columns || 100;
369
429
  const rows = size.rows || 40;
370
430
  const layout = layoutOf(columns, rows);
371
- const pet = petStateOf(progress, now);
431
+ const mood = moodOf(progress, now);
372
432
  const activity = flash && flash.until > now
373
433
  ? flash.activity
374
434
  : view === "diet"
@@ -380,7 +440,7 @@ export default function App({ options, file, initialProgress }) {
380
440
  : "idle";
381
441
  let activityLabel = messages.activity[activity];
382
442
  if (activity === "idle") {
383
- activityLabel = messages.mood[pet.mood];
443
+ activityLabel = messages.mood[mood];
384
444
  }
385
445
  else if (activity === "levelUp") {
386
446
  activityLabel = `${messages.activity.levelUp} ${messages.level(level)}`;
@@ -398,6 +458,8 @@ export default function App({ options, file, initialProgress }) {
398
458
  theme: themeName,
399
459
  focus: durations.focus,
400
460
  rest: durations.break,
461
+ version: updater.current,
462
+ newest: release.newest,
401
463
  });
402
464
  const focusedEntry = entries.find((entry) => entry.key === focusedMenu) ?? entries[0];
403
465
  const isTyping = view === "diet" ||
@@ -451,7 +513,13 @@ export default function App({ options, file, initialProgress }) {
451
513
  },
452
514
  { label: messages.timer.stop, value: "stop" },
453
515
  ];
516
+ const updateView = updateViewOf(messages, release, updater);
454
517
  const panels = {
518
+ update: (React.createElement(Titled, { title: messages.menu.update },
519
+ React.createElement(Text, null, messages.update.current(updater.current)),
520
+ React.createElement(Text, { color: release.phase.endsWith("Failed") ? palette.error : palette.soft }, updateView.status),
521
+ React.createElement(Text, { dimColor: true }, messages.update.via[updater.source]),
522
+ React.createElement(Box, { marginTop: 1 }, release.phase === "installing" ? (React.createElement(Text, { color: palette.accent }, `${spinnerFrames[Math.floor(now / 1000) % spinnerFrames.length] ?? "·"} ${updateView.status}`)) : (React.createElement(Choice, { key: release.phase, options: updateView.options, onSelect: chooseUpdateAction }))))),
455
523
  quotes: (React.createElement(Titled, { title: messages.menu.quotes },
456
524
  React.createElement(Text, { dimColor: true, italic: true, wrap: "truncate-end" }, `“${shownQuote.quote}” — ${shownQuote.author}`),
457
525
  React.createElement(Box, { marginTop: 1 }, quoteEditor ? (React.createElement(Box, { key: quoteEditor }, quoteEditors[quoteEditor])) : (React.createElement(Choice, { key: "options", initialValue: quoteOption, options: quoteOptionsOf(messages, quoteSettings), onSelect: chooseQuoteOption }))))),
@@ -496,7 +564,7 @@ export default function App({ options, file, initialProgress }) {
496
564
  React.createElement(Text, { dimColor: true }, new Date(now).toTimeString().slice(0, 8))),
497
565
  React.createElement(Text, { dimColor: true, italic: true, wrap: "truncate-end" }, `“${shownQuote.quote}” — ${shownQuote.author}`)),
498
566
  React.createElement(Box, { flexDirection: layout.stacked ? "column-reverse" : "row", flexGrow: 1 },
499
- layout.showCharacter ? (React.createElement(Character, { activity: activity, badges: pet.badges, label: activityLabel, level: messages.level(level), levelNumber: level, look: lookOf(progress.profile), mood: pet.mood, name: name, width: characterWidth })) : null,
567
+ layout.showCharacter ? (React.createElement(Character, { activity: activity, label: activityLabel, level: messages.level(level), levelNumber: level, look: lookOf(progress.profile), mood: mood, name: name, width: characterWidth })) : null,
500
568
  layout.showToday && layout.todayBeside ? todayPanel : null,
501
569
  React.createElement(Box, { flexDirection: "column", width: layout.panelWidth },
502
570
  React.createElement(Box, { flexDirection: layout.isMenuSplit ? "row" : "column", flexGrow: 1 },
package/build/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import { spawnSync } from "node:child_process";
2
3
  import process from "node:process";
3
4
  import React from "react";
4
5
  import { render } from "ink";
@@ -6,6 +7,7 @@ import meow from "meow";
6
7
  import zod from "zod";
7
8
  import App, { optionsSchema } from "./app.js";
8
9
  import { loadProgress, progressFile } from "./progress.js";
10
+ import { npmUpdater } from "./update.js";
9
11
  const cli = meow(`
10
12
  Usage
11
13
  $ siegesailor-terminal-sigma [options]
@@ -38,8 +40,20 @@ catch (error) {
38
40
  console.error(error instanceof Error ? error.message : error);
39
41
  process.exit(1);
40
42
  }
41
- render(React.createElement(App, { file: file, initialProgress: initialProgress, options: options.data }), {
43
+ let isRestarting = false;
44
+ const updater = npmUpdater(() => {
45
+ isRestarting = true;
46
+ });
47
+ const instance = render(React.createElement(App, { file: file, initialProgress: initialProgress, options: options.data, updater: updater }), {
42
48
  alternateScreen: true,
43
49
  incrementalRendering: true,
44
50
  });
51
+ await instance.waitUntilExit();
52
+ // After an update, the same command starts the version just installed.
53
+ if (isRestarting) {
54
+ const { status } = spawnSync(process.execPath, process.argv.slice(1), {
55
+ stdio: "inherit",
56
+ });
57
+ process.exit(status ?? 0);
58
+ }
45
59
  //# sourceMappingURL=command-line-interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-line-interface.js","sourceRoot":"","sources":["../source/command-line-interface.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,GAAG,GAAG,IAAI,CACf;;;;;;;;CAQA,EACA;IACC,UAAU,EAAE,MAAM,CAAC,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,KAAK,EAAE;QACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB;CACD,CACD,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEnD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;AAC5B,IAAI,eAAe,CAAC;AAEpB,IAAI,CAAC;IACJ,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CACL,oBAAC,GAAG,IAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,GAAI,EAC5E;IACC,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;CAC1B,CACD,CAAC"}
1
+ {"version":3,"file":"command-line-interface.js","sourceRoot":"","sources":["../source/command-line-interface.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,GAAG,GAAG,IAAI,CACf;;;;;;;;CAQA,EACA;IACC,UAAU,EAAE,MAAM,CAAC,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,KAAK,EAAE;QACN,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB;CACD,CACD,CAAC;AAEF,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEnD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;AAC5B,IAAI,eAAe,CAAC;AAEpB,IAAI,CAAC;IACJ,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;IAC/B,YAAY,GAAG,IAAI,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,MAAM,CACtB,oBAAC,GAAG,IACH,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,CAAC,IAAI,EACrB,OAAO,EAAE,OAAO,GACf,EACF;IACC,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;CAC1B,CACD,CAAC;AAEF,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;AAE/B,uEAAuE;AACvE,IAAI,YAAY,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACrE,KAAK,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAC3B,CAAC"}
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { Box, Text, useAnimation } from "ink";
3
3
  import { composeScene, intervalOf, paletteOf, toSegments, } from "../pixel-art.js";
4
4
  import { spinnerFrames, usePalette } from "../theme.js";
5
- export default function Character({ name, level, levelNumber, activity, look, mood, badges, label, width, }) {
5
+ export default function Character({ name, level, levelNumber, activity, look, mood, label, width, }) {
6
6
  const palette = usePalette();
7
7
  const { frame } = useAnimation({ interval: intervalOf(activity) });
8
8
  // Border and padding take 4 columns; the rest is the stage it roams.
@@ -12,7 +12,6 @@ export default function Character({ name, level, levelNumber, activity, look, mo
12
12
  level: levelNumber,
13
13
  look,
14
14
  mood,
15
- badges,
16
15
  width: width - 4,
17
16
  }), paletteOf(palette));
18
17
  return (React.createElement(Box, { borderColor: palette.border, borderStyle: "round", flexDirection: "column", flexShrink: 0, paddingX: 1, width: width },
@@ -1 +1 @@
1
- {"version":3,"file":"character.js","sourceRoot":"","sources":["../../source/components/character.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAE9C,OAAO,EAGN,YAAY,EACZ,UAAU,EAEV,SAAS,EACT,UAAU,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAcxD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,GACW;IAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,qEAAqE;IACrE,MAAM,KAAK,GAAG,UAAU,CACvB,YAAY,CAAC;QACZ,QAAQ;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,WAAW;QAClB,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK,EAAE,KAAK,GAAG,CAAC;KAChB,CAAC,EACF,SAAS,CAAC,OAAO,CAAC,CAClB,CAAC;IAEF,OAAO,CACN,oBAAC,GAAG,IACH,WAAW,EAAE,OAAO,CAAC,MAAM,EAC3B,WAAW,EAAC,OAAO,EACnB,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK;QAEZ,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe;YAC1C,oBAAC,IAAI,IAAC,IAAI,QAAC,IAAI,EAAC,cAAc,IAC5B,IAAI,CACC;YACP,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAG,KAAK,CAAQ,CACtC;QACN,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,UAAU,IAChE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAGzB,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,IACX,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAC9B,oBAAC,IAAI;QACJ,oDAAoD;;YAApD,oDAAoD;YACpD,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,KAAK,EAAE,OAAO,CAAC,KAAK,IAEnB,OAAO,CAAC,IAAI,CACP,CACP,CAAC,CACG,CACN,CAAC,CACG;QACN,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YAChB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAC,cAAc,IAC9C,GAAG,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAC3D,CACF,CACD,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"character.js","sourceRoot":"","sources":["../../source/components/character.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAE9C,OAAO,EAEN,YAAY,EACZ,UAAU,EAEV,SAAS,EACT,UAAU,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAaxD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GACW;IAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,qEAAqE;IACrE,MAAM,KAAK,GAAG,UAAU,CACvB,YAAY,CAAC;QACZ,QAAQ;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,WAAW;QAClB,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,KAAK,GAAG,CAAC;KAChB,CAAC,EACF,SAAS,CAAC,OAAO,CAAC,CAClB,CAAC;IAEF,OAAO,CACN,oBAAC,GAAG,IACH,WAAW,EAAE,OAAO,CAAC,MAAM,EAC3B,WAAW,EAAC,OAAO,EACnB,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK;QAEZ,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe;YAC1C,oBAAC,IAAI,IAAC,IAAI,QAAC,IAAI,EAAC,cAAc,IAC5B,IAAI,CACC;YACP,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAG,KAAK,CAAQ,CACtC;QACN,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,UAAU,IAChE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAGzB,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,IACX,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAC9B,oBAAC,IAAI;QACJ,oDAAoD;;YAApD,oDAAoD;YACpD,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,KAAK,EAAE,OAAO,CAAC,KAAK,IAEnB,OAAO,CAAC,IAAI,CACP,CACP,CAAC,CACG,CACN,CAAC,CACG;QACN,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YAChB,oBAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAC,cAAc,IAC9C,GAAG,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,KAAK,EAAE,CAC3D,CACF,CACD,CACN,CAAC;AACH,CAAC"}
package/build/content.js CHANGED
@@ -4,15 +4,16 @@ import { formatNumber, genders, healthGoals, intensities, languages, messagesOf,
4
4
  import { dailyGoals, experienceOf, experiencePerLevel, todayOf, } from "./progress.js";
5
5
  import { quoteCategories, quoteIntervals, quoteModes, } from "./quotes.js";
6
6
  import { themeNames } from "./theme.js";
7
+ import { isNewer } from "./update.js";
7
8
  export const characterWidth = 36;
8
- export const menuListWidth = 24;
9
- // Header and footer take 5 rows. The pet's panel is 19 rows tall, Today 19
10
- // with its spacing or 16 compact, the menu 9, and Recent 7.
9
+ export const menuListWidth = 26;
10
+ // Header and footer take 5 rows. The character's panel is 21 rows tall,
11
+ // Today 19 with its spacing or 16 compact, the menu 10, and Recent 7.
11
12
  const chromeRows = 5;
12
- const characterRows = 19;
13
+ const characterRows = 21;
13
14
  const todayRows = 19;
14
15
  const compactTodayRows = 16;
15
- const menuRows = 9;
16
+ const menuRows = 10;
16
17
  const recentRows = 7;
17
18
  // The description beside the menu list needs at least this many columns.
18
19
  const descriptionColumns = 36;
@@ -123,27 +124,20 @@ export function sectionsOf(language, palette, progress, now) {
123
124
  },
124
125
  ];
125
126
  }
126
- // Today's logs set the pet's mood: asleep until something is logged, happy
127
- // once the targets are met.
128
- export function petStateOf(progress, now) {
127
+ // Today's logs set the character's mood: dozing until something is logged,
128
+ // happy once the targets are met.
129
+ export function moodOf(progress, now) {
129
130
  const today = todayOf(progress, now);
130
131
  const targets = targetsOf(progress.profile);
131
- const badges = {
132
- meal: today.meals > 0,
133
- workout: today.workoutMinutes > 0,
134
- focus: today.focusSessions > 0,
135
- };
136
132
  const isMet = (today.protein >= targets.protein &&
137
133
  today.workoutMinutes >= targets.workoutMinutes) ||
138
134
  today.focusSessions >= dailyGoals.focusSessions;
139
- let mood = "content";
140
- if (!badges.meal && !badges.workout && !badges.focus) {
141
- mood = "sleepy";
142
- }
143
- else if (isMet) {
144
- mood = "happy";
135
+ if (today.meals === 0 &&
136
+ today.workoutMinutes === 0 &&
137
+ today.focusSessions === 0) {
138
+ return "sleepy";
145
139
  }
146
- return { mood, badges };
140
+ return isMet ? "happy" : "content";
147
141
  }
148
142
  export const menuOrder = [
149
143
  "quotes",
@@ -153,6 +147,7 @@ export const menuOrder = [
153
147
  "profile",
154
148
  "theme",
155
149
  "language",
150
+ "update",
156
151
  ];
157
152
  export function menuEntriesOf(messages, state) {
158
153
  const { profile } = state.progress;
@@ -174,6 +169,9 @@ export function menuEntriesOf(messages, state) {
174
169
  profile: profile?.name ?? messages.signal.setUp,
175
170
  theme: messages.themes.names[state.theme],
176
171
  language: messages.languageName,
172
+ update: state.newest && isNewer(state.newest, state.version)
173
+ ? messages.signal.updateAvailable(state.newest)
174
+ : messages.signal.version(state.version),
177
175
  };
178
176
  const descriptions = {
179
177
  quotes: messages.describe.quotes,
@@ -183,6 +181,7 @@ export function menuEntriesOf(messages, state) {
183
181
  profile: messages.describe.profile,
184
182
  theme: messages.describe.theme,
185
183
  language: messages.describe.language,
184
+ update: messages.describe.update,
186
185
  };
187
186
  return menuOrder.map((key) => ({
188
187
  key,
@@ -191,6 +190,45 @@ export function menuEntriesOf(messages, state) {
191
190
  description: descriptions[key],
192
191
  }));
193
192
  }
193
+ // The status line and the options of the Software Update view.
194
+ export function updateViewOf(messages, release, updater) {
195
+ const { update } = messages;
196
+ const newest = release.newest ?? updater.current;
197
+ const back = { label: update.back, value: "back" };
198
+ const check = { label: update.check, value: "check" };
199
+ const install = { label: update.install(newest), value: "install" };
200
+ switch (release.phase) {
201
+ case "checking": {
202
+ return { status: update.checking, options: [back] };
203
+ }
204
+ case "checkFailed": {
205
+ return {
206
+ status: update.checkFailed(release.error ?? ""),
207
+ options: [check, back],
208
+ };
209
+ }
210
+ case "installing": {
211
+ return { status: update.installing(newest), options: [] };
212
+ }
213
+ case "installed": {
214
+ return {
215
+ status: update.installed(newest),
216
+ options: [{ label: update.restart, value: "restart" }, back],
217
+ };
218
+ }
219
+ case "installFailed": {
220
+ return {
221
+ status: update.installFailed(release.error ?? ""),
222
+ options: [install, back],
223
+ };
224
+ }
225
+ case "ready": {
226
+ return isNewer(newest, updater.current)
227
+ ? { status: update.newest(newest), options: [install, back] }
228
+ : { status: update.upToDate(newest), options: [check, back] };
229
+ }
230
+ }
231
+ }
194
232
  const categoriesLabel = (messages, categories, empty) => categories.length === 0
195
233
  ? empty
196
234
  : categories