mover-os 4.7.9 → 4.7.10
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 +1 -1
- package/install.js +36 -8
- package/package.json +3 -2
- package/src/dashboard/shortcut.js +6 -1
- package/src/dashboard/ui/dist/assets/{index-CCoKjUcC.js → index-BoxTW_kj.js} +14 -14
- package/src/dashboard/ui/dist/assets/{index-ByVKPvLf.js → index-wnamvqxp.js} +2 -2
- package/src/dashboard/ui/dist/index.html +1 -1
- package/src/dashboard/ui/dist/sw.js +1 -1
- package/src/system/counts.json +7 -0
package/README.md
CHANGED
package/install.js
CHANGED
|
@@ -5629,6 +5629,34 @@ function collectInventory() {
|
|
|
5629
5629
|
};
|
|
5630
5630
|
}
|
|
5631
5631
|
|
|
5632
|
+
// The public npm package is intentionally only the installer + dashboard. The
|
|
5633
|
+
// paid workflows, skills, and hooks arrive after license validation, so a
|
|
5634
|
+
// clean `npx mover-os help` cannot derive their counts from src/. Use the
|
|
5635
|
+
// release-generated public counts file in that environment without exposing
|
|
5636
|
+
// the paid payload on npm. Repository/dev runs still derive the full inventory
|
|
5637
|
+
// from source above, which keeps docs generation exact.
|
|
5638
|
+
function collectPublicCounts() {
|
|
5639
|
+
try {
|
|
5640
|
+
const inv = collectInventory();
|
|
5641
|
+
return {
|
|
5642
|
+
workflows: inv.workflows.length,
|
|
5643
|
+
skills: inv.skills.length,
|
|
5644
|
+
agents: inv.agents.length,
|
|
5645
|
+
};
|
|
5646
|
+
} catch (_) {
|
|
5647
|
+
try {
|
|
5648
|
+
const counts = JSON.parse(fs.readFileSync(path.join(__dirname, "src", "system", "counts.json"), "utf8"));
|
|
5649
|
+
return {
|
|
5650
|
+
workflows: Number(counts.workflows) || 0,
|
|
5651
|
+
skills: Number(counts.skills) || 0,
|
|
5652
|
+
agents: Number(counts.agents) || AGENT_SELECTIONS.length,
|
|
5653
|
+
};
|
|
5654
|
+
} catch (_) {
|
|
5655
|
+
return { workflows: 0, skills: 0, agents: AGENT_SELECTIONS.length };
|
|
5656
|
+
}
|
|
5657
|
+
}
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5632
5660
|
function cmdInventory() {
|
|
5633
5661
|
// Pure JSON on stdout — no banner, no color — so callers can pipe it.
|
|
5634
5662
|
process.stdout.write(JSON.stringify(collectInventory(), null, 2) + "\n");
|
|
@@ -7130,7 +7158,7 @@ async function cmdHelp(opts) {
|
|
|
7130
7158
|
|
|
7131
7159
|
// Counts computed, never typed: this screen shipped "23 commands / 61
|
|
7132
7160
|
// packs / 16 agents" while the bundle held 25/70/15.
|
|
7133
|
-
const inv =
|
|
7161
|
+
const inv = collectPublicCounts();
|
|
7134
7162
|
const pages = [
|
|
7135
7163
|
{
|
|
7136
7164
|
title: "What is Mover OS?",
|
|
@@ -7145,10 +7173,10 @@ async function cmdHelp(opts) {
|
|
|
7145
7173
|
"",
|
|
7146
7174
|
`${dim("Three things make it work:")}`,
|
|
7147
7175
|
` ${cyan("1.")} The ${bold("Engine")} — files that store your identity, strategy, goals`,
|
|
7148
|
-
` ${cyan("2.")} ${bold("Workflows")} — ${inv.workflows
|
|
7149
|
-
` ${cyan("3.")} ${bold("Skills")} — ${inv.skills
|
|
7176
|
+
` ${cyan("2.")} ${bold("Workflows")} — ${inv.workflows} commands that run your day (plan, build, log, repeat)`,
|
|
7177
|
+
` ${cyan("3.")} ${bold("Skills")} — ${inv.skills} packs that make your AI genuinely useful`,
|
|
7150
7178
|
"",
|
|
7151
|
-
`Works across ${inv.agents
|
|
7179
|
+
`Works across ${inv.agents} agents. Claude Code, Cursor, Gemini, all of them.`,
|
|
7152
7180
|
`Same context, every editor. ${dim("Press → to continue.")}`,
|
|
7153
7181
|
],
|
|
7154
7182
|
},
|
|
@@ -7188,7 +7216,7 @@ async function cmdHelp(opts) {
|
|
|
7188
7216
|
],
|
|
7189
7217
|
},
|
|
7190
7218
|
{
|
|
7191
|
-
title:
|
|
7219
|
+
title: `${inv.workflows} Workflows`,
|
|
7192
7220
|
body: [
|
|
7193
7221
|
`${dim("Slash commands inside your AI agent. Type / and go.")}`,
|
|
7194
7222
|
"",
|
|
@@ -7206,7 +7234,7 @@ async function cmdHelp(opts) {
|
|
|
7206
7234
|
],
|
|
7207
7235
|
},
|
|
7208
7236
|
{
|
|
7209
|
-
title:
|
|
7237
|
+
title: `${inv.skills} Skill Packs`,
|
|
7210
7238
|
body: [
|
|
7211
7239
|
`${dim("Specialized knowledge your AI loads automatically.")}`,
|
|
7212
7240
|
"",
|
|
@@ -7301,7 +7329,7 @@ async function cmdHelp(opts) {
|
|
|
7301
7329
|
`${dim("Keep everything in sync without thinking about it.")}`,
|
|
7302
7330
|
"",
|
|
7303
7331
|
` ${cyan("sync")} Update all agents to latest rules and skills`,
|
|
7304
|
-
` ${dim(
|
|
7332
|
+
` ${dim(`One command updates ${inv.agents} agents. Shows what changed.`)}`,
|
|
7305
7333
|
"",
|
|
7306
7334
|
` ${cyan("backup")} Backup Engine, Areas, or agent configs`,
|
|
7307
7335
|
` ${dim("With manifest. Knows what's in each backup.")}`,
|
|
@@ -7317,7 +7345,7 @@ async function cmdHelp(opts) {
|
|
|
7317
7345
|
],
|
|
7318
7346
|
},
|
|
7319
7347
|
{
|
|
7320
|
-
title:
|
|
7348
|
+
title: `${inv.agents} Agents, One Brain`,
|
|
7321
7349
|
body: [
|
|
7322
7350
|
`${dim("Install once. Every agent gets the same context.")}`,
|
|
7323
7351
|
"",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mover-os",
|
|
3
|
-
"version": "4.7.
|
|
3
|
+
"version": "4.7.10",
|
|
4
4
|
"description": "Your AI co-founder. Remembers your goals, pushes back when you drift. Works with 15 AI agents.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"moveros": "install.js"
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"src/dashboard/templates/**",
|
|
17
17
|
"src/dashboard/static/**",
|
|
18
18
|
"src/dashboard/lib/**",
|
|
19
|
-
"src/dashboard/ui/dist/**"
|
|
19
|
+
"src/dashboard/ui/dist/**",
|
|
20
|
+
"src/system/counts.json"
|
|
20
21
|
],
|
|
21
22
|
"scripts": {
|
|
22
23
|
"test": "node test/runner.mjs",
|
|
@@ -234,7 +234,12 @@ function createShortcut({ name, nodeBin, entry, iconPath, platform, homeDir, des
|
|
|
234
234
|
created.push(deskBat);
|
|
235
235
|
} catch (_) { /* Desktop may not exist (headless) — the stable .bat still works */ }
|
|
236
236
|
}
|
|
237
|
-
|
|
237
|
+
const hasDesktopLauncher = created.some((createdPath) => createdPath === lnkPath || path.dirname(createdPath) === desktop);
|
|
238
|
+
return {
|
|
239
|
+
created,
|
|
240
|
+
platform: plat,
|
|
241
|
+
...(hasDesktopLauncher ? {} : { warning: "The launcher was created, but Windows could not add it to your Desktop." }),
|
|
242
|
+
};
|
|
238
243
|
}
|
|
239
244
|
|
|
240
245
|
if (plat === "linux") {
|