moshcode 0.67.0 → 0.68.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
@@ -14,28 +14,6 @@ curl -fsSL https://moshcoding.com/install.sh | sh
14
14
  Zero-dependency ESM — all it needs is Node.js 18+. Later: `… | sh -s -- update`
15
15
  to upgrade, `… | sh -s -- remove` to uninstall.
16
16
 
17
- ## What is in this repo
18
-
19
- The CLI is the root package — `bin/`, `src/`, `plugins/` — and that is what
20
- `npm publish` and the installer above ship. Two apps live alongside it:
21
-
22
- | path | what it is | deployed as |
23
- |---|---|---|
24
- | `apps/pwa` | the Moshpit registry and account app | pit.moshcode.sh, app.moshcode.sh |
25
- | `apps/qryptchat-web` | QryptChat, the post-quantum messenger | qrypt.chat |
26
-
27
- One repo, but **not one dependency tree**. Each app installs itself, with its
28
- own lockfile, and the root `pnpm install` does not reach into either. That is
29
- deliberate on both counts and `pnpm-workspace.yaml` says why. The practical
30
- rule: run `pnpm install` in the directory you are working in, not at the root
31
- and not the other way round.
32
-
33
- The two apps share a feature rather than code — a person can sign in to
34
- QryptChat by proving they hold a Moshpit name, which `moshcode name link`
35
- produces the proof for. The shared half of that is still duplicated in both
36
- trees; see `pnpm-workspace.yaml` for what has to be fixed before it can be
37
- lifted into `packages/`.
38
-
39
17
  ## Commands
40
18
 
41
19
  `moshcode help <command>` drills into any of these — flags, examples and all.
@@ -722,6 +700,35 @@ engines, `mcpjam` tells you whether that server is healthy first — health
722
700
  checks, OAuth conformance, tool-surface diffing, and structured triage from the
723
701
  terminal or CI. Re-running `moshcode install mcpjam` is also its upgrade path.
724
702
 
703
+ ### ElevenLabs — Eleven Agents, voices, and speech
704
+
705
+ ```sh
706
+ moshcode install elevenlabs # npm i -g @elevenlabs/cli
707
+
708
+ moshcode elevenlabs auth login # PKCE OAuth, stored in the system keyring
709
+ moshcode elevenlabs agents list
710
+ moshcode elevenlabs agents push # upload local agent configs to the platform
711
+ moshcode elevenlabs text-to-speech convert …
712
+ ```
713
+
714
+ [ElevenLabs](https://elevenlabs.io/docs/eleven-agents/operate/cli)' CLI manages
715
+ **Eleven Agents** — conversational voice agents you define in files and
716
+ `push`/`pull` against their platform, alongside the knowledge bases, tools,
717
+ tests and phone numbers those agents use. The same binary reaches the rest of
718
+ the API: voices, text-to-speech, dubbing, transcription, music, and workspace
719
+ usage.
720
+
721
+ They are agents in a different sense than the ones under `/agents`: you deploy
722
+ them and callers talk to them, rather than handing your terminal to one. That is
723
+ why it sits here with the workflow CLIs — every subcommand runs one request and
724
+ exits, so it pipes like the rest of the roster. `--format json` (the default
725
+ when stdout is not a TTY) and `--query` (JMESPath) are what a script wants.
726
+
727
+ The npm package is a small shim over a native binary shipped as an optional
728
+ dependency, so install it without `--omit=optional` or the `elevenlabs` on your
729
+ PATH will refuse to run. Re-running `moshcode install elevenlabs` is its upgrade
730
+ path.
731
+
725
732
  ### Alchemy — onchain data, wallets, and x402
726
733
 
727
734
  ```sh
@@ -1460,6 +1467,7 @@ chmod +x deploy.mosh
1460
1467
  | `mcpjam(args…)` | drive the MCPJam CLI (test, debug, and validate MCP servers) |
1461
1468
  | `spinifex(args…)` | drive the Spinifex CLI (`spx` — AWS-compatible cloud on your own hardware) |
1462
1469
  | `alchemy(args…)` | drive the Alchemy CLI (onchain data, apps, wallets, x402) |
1470
+ | `elevenlabs(args…)` | drive the ElevenLabs CLI (Eleven Agents, voices, TTS, dubbing) |
1463
1471
  | `trade(args…)` | look up tickers, inspect markets, preview/place Alpaca orders |
1464
1472
  | `stocks(args…)` | research tickers via advis0r (`stocksRead` returns the data) |
1465
1473
  | `crypto(args…)` | research crypto pairs via advis0r (`cryptoRead` returns the data) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moshcode",
3
- "version": "0.67.0",
3
+ "version": "0.68.0",
4
4
  "type": "module",
5
5
  "description": "moshcode — a metal wrapper for coding engines and native UGig/CoinPay workflow CLIs, with OpenPRD and moshscript",
6
6
  "repository": {
@@ -18,7 +18,7 @@
18
18
  "scripts": {
19
19
  "start": "node bin/moshcode.mjs",
20
20
  "demo": "node bin/moshcode.mjs run examples/alive.mosh",
21
- "test": "node --test \"test/**/*.test.mjs\" \"tests/**/*.test.mjs\" \"apps/pwa/test/**/*.test.mjs\""
21
+ "test": "node --test"
22
22
  },
23
23
  "files": [
24
24
  "bin",
package/src/commands.mjs CHANGED
@@ -683,6 +683,7 @@ const COMMANDS = [
683
683
  cliVerb("mcpjam", "drive the MCPJam CLI (test, debug, and validate MCP servers)"),
684
684
  cliVerb("spinifex", "drive the Spinifex CLI (spx — AWS-compatible cloud on your own hardware)"),
685
685
  cliVerb("alchemy", "drive the Alchemy CLI (onchain data, apps, wallets, x402)"),
686
+ cliVerb("elevenlabs", "drive the ElevenLabs CLI (Eleven Agents, voices, TTS, dubbing)"),
686
687
  cliVerb("trade", "look up tickers, inspect markets, and preview/place Alpaca orders"),
687
688
  cliVerb("pwd", "print the current repo/location"),
688
689
 
package/src/tools.mjs CHANGED
@@ -310,6 +310,32 @@ export const TOOLS = {
310
310
  // place to hear it than an install that succeeded.
311
311
  install: { cmd: "npm", args: ["install", "-g", "@alchemy/cli"] },
312
312
  },
313
+ elevenlabs: {
314
+ desc: "ElevenLabs — build, configure and deploy Eleven Agents (plus voices, TTS, dubbing, and the rest of the API)",
315
+ bin: "elevenlabs",
316
+ // A workflow tool rather than an engine, despite the name. ElevenLabs calls
317
+ // these "agents", but they are conversational voice agents you configure and
318
+ // deploy to their platform: `elevenlabs agents push/pull/list` is an API
319
+ // client that runs one request and exits. `/agents` promises to hand the
320
+ // terminal to a live session, and there is no session here to hand it, so
321
+ // this belongs next to the other workflow CLIs. Docs:
322
+ // https://elevenlabs.io/docs/eleven-agents/operate/cli
323
+ //
324
+ // Authenticate once with `moshcode elevenlabs auth login` — a PKCE OAuth
325
+ // flow that stores the credential in the system keyring (falling back to a
326
+ // file under ~/.config), rather than an env var to keep exporting.
327
+ //
328
+ // The published package is a tiny Node shim; the real CLI is a native
329
+ // binary shipped per platform as an OPTIONAL dependency
330
+ // (@elevenlabs/cli-linux-x64 and friends). That is why the install spec is
331
+ // the plain global install with no flags: an install run with
332
+ // `--omit=optional` or `--no-optional` still succeeds and still puts
333
+ // `elevenlabs` on PATH, but every invocation then dies with "the platform
334
+ // package is not installed". `npm install -g` is idempotent and the CLI
335
+ // ships no updater of its own, so this doubles as the upgrade path and
336
+ // there is deliberately no `upgrade` key.
337
+ install: { cmd: "npm", args: ["install", "-g", "@elevenlabs/cli"] },
338
+ },
313
339
  };
314
340
 
315
341
  /** Resolve a name to `[key, tool]`, or null. */