moshcode 0.49.0 → 0.50.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
@@ -79,8 +79,13 @@ moshcode install codex # npm i -g @openai/codex
79
79
  moshcode install kimi # curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
80
80
  moshcode install qwen # npm i -g @qwen-code/qwen-code
81
81
  moshcode install deepseek # npm i -g @serjm/deepseek-code
82
+ moshcode install openagents # curl -fsSL https://openagents.org/install.sh | bash
82
83
  ```
83
84
 
85
+ `openagents` is the odd one out: a launcher that supervises the engines above
86
+ rather than a coding agent itself. Its installer ends by offering to pair the
87
+ machine with a workspace — press Enter to skip that.
88
+
84
89
  ### Autonomous agents versus raw starts
85
90
 
86
91
  `agents` opens the engine's native **agent view** when it has one, so you land on
@@ -98,6 +103,7 @@ moshcode agents kimi # kimi --yolo
98
103
  moshcode agents qwen # qwen --approval-mode=yolo (autonomous)
99
104
  moshcode agents deepseek # deepseek-code --turbo (autonomous)
100
105
  moshcode agents aider # aider --yes-always (autonomous)
106
+ moshcode agents openagents # openagents (dashboard)
101
107
  ```
102
108
 
103
109
  `start` is the explicit raw path. It injects nothing, so the native engine keeps
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "moshcode",
3
- "version": "0.49.0",
3
+ "version": "0.50.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": {
package/src/engines.mjs CHANGED
@@ -166,6 +166,38 @@ export const ENGINES = {
166
166
  agentArgs: ["--turbo"],
167
167
  install: { cmd: "npm", args: ["install", "-g", "@serjm/deepseek-code"] },
168
168
  },
169
+ openagents: {
170
+ desc: "OpenAgents — multi-agent launcher + dashboard (openagents.org)",
171
+ // The package installs three identical bins — `agn`, `openagents`, and
172
+ // `agent-connector`. Take the descriptive one: `agn` is short enough to
173
+ // collide with something else on a machine we don't control.
174
+ bin: "openagents",
175
+ // Not a coding agent of its own: it launches and supervises the engines
176
+ // above, so it has no approvals to bypass and no yolo flag to pass. A bare
177
+ // launch opens the interactive dashboard, which IS its agent list, so both
178
+ // `/agents openagents` and `moshcode start openagents` land in the same
179
+ // place. (No `agentsView` for the same reason — it would spell the same
180
+ // empty argv twice.)
181
+ agentArgs: [],
182
+ install: { cmd: "bash", args: ["-c", "curl -fsSL https://openagents.org/install.sh | bash"] },
183
+ // Its own updater ("upgrade launcher to the latest npm release"), which
184
+ // knows it was installed as an unpacked tarball under ~/.openagents rather
185
+ // than by npm -g. Re-running the installer would work too, but it re-does
186
+ // the Node bootstrap and ends on the pairing prompt below.
187
+ upgrade: { cmd: "openagents", args: ["update"] },
188
+ // The installer unpacks to ~/.openagents/nodejs and writes the bin shims
189
+ // there, appending that directory to a shell rc — so PATH will not see
190
+ // `openagents` until the next shell, including in the moshcode session that
191
+ // just installed it.
192
+ binDirs: [path.join(homedir(), ".openagents", "nodejs", "node_modules", ".bin")],
193
+ // No `state`: the dashboard is a blessed TUI with no wording of its own we
194
+ // have verified, and a guessed pattern is worse than the shared ones.
195
+ //
196
+ // The installer ends by offering to pair this device with a workspace, and
197
+ // waits on a real answer — but only when stderr is a terminal, and Enter
198
+ // skips it. `moshcode install` inherits the terminal, so that prompt is
199
+ // yours to answer; run it where you can reach a keyboard.
200
+ },
169
201
  aider: {
170
202
  desc: "Aider — pair-programming in your terminal",
171
203
  bin: "aider",
@@ -198,6 +230,9 @@ export const ENGINE_ALIASES = {
198
230
  // `dsc` and `deepseek-code` are the binary names the package installs; accept
199
231
  // both as engine names so whichever one someone has seen resolves.
200
232
  ds: "deepseek", dsc: "deepseek", "deepseek-code": "deepseek",
233
+ // Same idea for openagents: `agn` and `agent-connector` are the other two
234
+ // binary names its package installs, and the domain is how it's advertised.
235
+ oa: "openagents", agn: "openagents", "agent-connector": "openagents", "openagents.org": "openagents",
201
236
  };
202
237
 
203
238
  /** Resolve a name/alias to `[key, engine]`, or null. */
@@ -281,6 +316,8 @@ const AI_EXEC = {
281
316
  kimi: (p) => ["-p", p], // kimi prompt mode (prints the response, text by default)
282
317
  qwen: (p) => ["-p", p], // qwen prompt mode (gemini-derived)
283
318
  deepseek: (p) => ["--headless", "-p", p], // deepseek: -p runs one prompt and exits; --headless drops the TUI so stdout is pipe-clean
319
+ // openagents is absent on purpose: it answers no prompts itself, it starts
320
+ // the engines that do. ai() throws a named error rather than picking it.
284
321
  };
285
322
 
286
323
  /** argv that runs `prompt` headlessly on `engine` (throws if it has no headless mode). */