moshcode 0.93.0 → 0.94.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 +59 -2
- package/package.json +1 -1
- package/src/cli-schema.mjs +3 -2
- package/src/commands.mjs +1 -1
- package/src/engines.mjs +12 -3
- package/src/tools.mjs +17 -0
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ or miss one that does. A test fails the build when it drifts.
|
|
|
26
26
|
<!-- COMMANDS:START -->
|
|
27
27
|
| command | group | what it does |
|
|
28
28
|
|---|---|---|
|
|
29
|
-
| `moshcode agents` | engines | list engines or launch
|
|
29
|
+
| `moshcode agents` | engines | list engines, open their agent view, or launch autonomously |
|
|
30
30
|
| `moshcode start` | engines | launch an engine with its native defaults |
|
|
31
31
|
| `moshcode herd` | runtime | run agent sessions that outlive this terminal |
|
|
32
32
|
| `moshcode ps` | runtime | list herd sessions and what each one is doing |
|
|
@@ -107,7 +107,7 @@ use this only in an isolated container, VM, or workspace you trust:
|
|
|
107
107
|
moshcode agents claude # claude agents --dangerously-skip-permissions (agent view)
|
|
108
108
|
moshcode agents opencode # opencode --auto (autonomous)
|
|
109
109
|
moshcode agents privacycode # privacycode --auto (autonomous)
|
|
110
|
-
moshcode agents codex # codex --dangerously-bypass-approvals-and-sandbox
|
|
110
|
+
moshcode agents codex # codex --dangerously-bypass-approvals-and-sandbox agents (agent view)
|
|
111
111
|
moshcode agents gemini # gemini --approval-mode=yolo (autonomous)
|
|
112
112
|
moshcode agents kimi # kimi --yolo (autonomous)
|
|
113
113
|
moshcode agents qwen # qwen --approval-mode=yolo (autonomous)
|
|
@@ -116,6 +116,25 @@ moshcode agents aider # aider --yes-always
|
|
|
116
116
|
moshcode agents openagents # openagents (dashboard)
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
+
Codex's native agents overview requires a CLI with `codex agents` support
|
|
120
|
+
(verified with 0.151.0) and, for the local daemon, the managed standalone
|
|
121
|
+
installation. `moshcode install codex` / `moshcode upgrade codex` use Codex's
|
|
122
|
+
official standalone installer on macOS/Linux; an npm-only install is not enough.
|
|
123
|
+
Existing npm installations are preserved. Windows retains npm and requires
|
|
124
|
+
`--remote <server>` for the agents overview.
|
|
125
|
+
`/agents codex` opens the same live overview of sessions on Codex's shared local
|
|
126
|
+
app-server daemon. The approval/sandbox bypass is passed for this invocation;
|
|
127
|
+
moshcode does not rewrite your global Codex settings or stop existing sessions.
|
|
128
|
+
Additional arguments are forwarded to the native `agents` subcommand, for example
|
|
129
|
+
`moshcode agents codex --no-alt-screen`.
|
|
130
|
+
|
|
131
|
+
For separate conversations, Codex's `/new` starts a fresh chat in the same CLI,
|
|
132
|
+
`/resume` reopens a saved chat, and `/fork` branches a conversation while preserving
|
|
133
|
+
the original. These commands are distinct from launching parallel subagents:
|
|
134
|
+
ask Codex to delegate work, then use its `/agent` or `/subagents` picker to switch
|
|
135
|
+
threads. See the [Codex command reference](https://learn.chatgpt.com/docs/developer-commands?surface=cli)
|
|
136
|
+
and [subagent guide](https://learn.chatgpt.com/docs/agent-configuration/subagents).
|
|
137
|
+
|
|
119
138
|
`start` is the explicit raw path. It injects nothing, so the native engine keeps
|
|
120
139
|
its normal permission model and receives only your arguments:
|
|
121
140
|
|
|
@@ -723,6 +742,44 @@ login`. Publishing needs one, and `bo login` is a device-code exchange, so a
|
|
|
723
742
|
terminal never handles a browser session. `bo mcp config` prints the MCP
|
|
724
743
|
registration for a coding agent, which is the same graph over a different door.
|
|
725
744
|
|
|
745
|
+
### CrawlProof — what the fleet costs and what it returns
|
|
746
|
+
|
|
747
|
+
[CrawlProof](https://crawlproof.com) knows who arrived on your sites and what
|
|
748
|
+
your ads delivered. `crawlproof` joins that to what the bank actually did, so
|
|
749
|
+
the terminal can answer the question a dashboard usually cannot: is any of this
|
|
750
|
+
paying for itself.
|
|
751
|
+
|
|
752
|
+
```sh
|
|
753
|
+
moshcode install crawlproof # npm i -g @profullstack/crawlproof
|
|
754
|
+
|
|
755
|
+
moshcode crawlproof # the live dashboard, last day, humans
|
|
756
|
+
moshcode crawlproof dashboard --range=1m
|
|
757
|
+
moshcode crawlproof stats site.com
|
|
758
|
+
moshcode crawlproof dashboard --json | jq .roi.derived
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
Five screens: ROI, Traffic, Ads, Money, Spend. Two rules run through the
|
|
762
|
+
arithmetic and both exist because breaking either produces a nicer number that
|
|
763
|
+
is false. Where an account advertises on its own slots, ad spend and ad earnings
|
|
764
|
+
are one dollar moving between two pockets, so they are reported under *Internal*
|
|
765
|
+
and counted as neither cost nor revenue. And a bank feed carries groceries next
|
|
766
|
+
to servers, so cost is the business scope only.
|
|
767
|
+
|
|
768
|
+
It also says what it does not know, next to the number: a site that did not
|
|
769
|
+
answer is missing rather than zero, and a fleet whose visits run far above its
|
|
770
|
+
pageviews says so and offers the per-pageview figure instead.
|
|
771
|
+
|
|
772
|
+
Needs a CrawlProof API token in `CRAWLPROOF_TOKEN` or the `token` field of
|
|
773
|
+
`~/.crawlproof.json`. The money screens want a CoinPay merchant session as well;
|
|
774
|
+
without one the other four still work and the money panels say what is missing.
|
|
775
|
+
The dashboard is a TUI and wants Node 22.6+, while `stats` and `--json` run
|
|
776
|
+
anywhere.
|
|
777
|
+
|
|
778
|
+
`crawlproof` also ships in the `cli-tools` set, which symlinks a wrapper of the
|
|
779
|
+
same name that vendors this package. Installing both is fine: the wrapper hands
|
|
780
|
+
over to a `crawlproof` on PATH that is not its own, and refuses to follow one
|
|
781
|
+
that is.
|
|
782
|
+
|
|
726
783
|
### Cloud + infra CLIs
|
|
727
784
|
|
|
728
785
|
```sh
|
package/package.json
CHANGED
package/src/cli-schema.mjs
CHANGED
|
@@ -35,7 +35,7 @@ export const CORE_CLI_COMMANDS = [
|
|
|
35
35
|
{
|
|
36
36
|
name: "agents",
|
|
37
37
|
group: "engines",
|
|
38
|
-
description: "list engines or launch
|
|
38
|
+
description: "list engines, open their agent view, or launch autonomously",
|
|
39
39
|
synopsis: [
|
|
40
40
|
["moshcode agents", "list engines and their install status"],
|
|
41
41
|
["moshcode agents --json", "list engine status as machine-readable JSON"],
|
|
@@ -48,6 +48,7 @@ export const CORE_CLI_COMMANDS = [
|
|
|
48
48
|
["moshcode agents", "which engines are here"],
|
|
49
49
|
["moshcode agents --json", "pipe engine status into a script"],
|
|
50
50
|
["moshcode agents claude", "claude's agent list"],
|
|
51
|
+
["moshcode agents codex", "Codex's shared-daemon agents overview (CLI 0.151.0+)"],
|
|
51
52
|
],
|
|
52
53
|
seeAlso: ["start", "engines", "install"],
|
|
53
54
|
note: "autonomous modes bypass approval prompts — use them in a container or a workspace you trust.",
|
|
@@ -1518,7 +1519,7 @@ export const PIT_COMMANDS = [
|
|
|
1518
1519
|
{ name: "new", pitOnly: true,
|
|
1519
1520
|
description: "open and switch to another moshcode tab" },
|
|
1520
1521
|
{ name: "agents", aliases: ["agent", "engines"], args: "[name]", cli: "agents",
|
|
1521
|
-
description: "list engines, or launch
|
|
1522
|
+
description: "list engines, open their agent view, or launch autonomously" },
|
|
1522
1523
|
{ name: "start", args: "<engine> [args…]", cli: "start",
|
|
1523
1524
|
description: "raw launch; inject no engine arguments" },
|
|
1524
1525
|
{ name: "herd", args: "[verb] [args…]", cli: "herd",
|
package/src/commands.mjs
CHANGED
|
@@ -826,7 +826,7 @@ const COMMANDS = [
|
|
|
826
826
|
cliVerb("run", "run another .mosh file (include)"),
|
|
827
827
|
// shortcut: ai() runs an engine headlessly and RETURNS its output (see PRD R17)
|
|
828
828
|
aiVerb,
|
|
829
|
-
cliVerb("agents", "
|
|
829
|
+
cliVerb("agents", "open the native agent view or launch autonomously (moshcode agents <engine>)"),
|
|
830
830
|
cliVerb("herd", "drive the herd (moshcode herd <verb>) — see herdStart/herdWait for values"),
|
|
831
831
|
cliVerb("ps", "print the herd roster"),
|
|
832
832
|
cliVerb("cost", "print what the herd is spending (moshcode cost [name] [--all])"),
|
package/src/engines.mjs
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
//
|
|
6
6
|
// `agentsView` (optional) is the exact argv that opens the engine's native
|
|
7
7
|
// agent list/view — used by `/agents <name>` when the engine actually has one
|
|
8
|
-
// (currently
|
|
9
|
-
// subcommand
|
|
8
|
+
// (currently Claude and Codex). It's the FULL leading args, including root
|
|
9
|
+
// flags before the subcommand when required. Engines without an `agentsView` fall back to
|
|
10
10
|
// `agentArgs` — an autonomous session with native approvals
|
|
11
11
|
// bypassed/auto-approved. Do not use a machine-readable, one-shot list command
|
|
12
12
|
// as an agents view: `/agents` promises to hand the terminal to a live session.
|
|
@@ -131,7 +131,16 @@ export const ENGINES = {
|
|
|
131
131
|
desc: "Codex — OpenAI's coding CLI",
|
|
132
132
|
bin: "codex",
|
|
133
133
|
agentArgs: ["--dangerously-bypass-approvals-and-sandbox"],
|
|
134
|
-
|
|
134
|
+
// Codex 0.151.0+: live shared-daemon session overview. The bypass option
|
|
135
|
+
// belongs to the root command, not the `agents` subcommand.
|
|
136
|
+
agentsView: ["--dangerously-bypass-approvals-and-sandbox", "agents"],
|
|
137
|
+
// The local agents daemon requires the installer-managed standalone
|
|
138
|
+
// package; npm alone can launch chats but cannot bootstrap that daemon.
|
|
139
|
+
// Windows uses a remote agents server and retains its npm installation.
|
|
140
|
+
install: process.platform === "win32"
|
|
141
|
+
? { cmd: "npm", args: ["install", "-g", "@openai/codex"] }
|
|
142
|
+
: { cmd: "bash", args: ["-o", "pipefail", "-c", "curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh"] },
|
|
143
|
+
binDirs: [path.join(homedir(), ".local", "bin")],
|
|
135
144
|
resume: ["resume", "--last"],
|
|
136
145
|
state: {
|
|
137
146
|
blocked: [/\ballow (?:this )?command\b/i, /\bapprove this (?:command|edit|change)\b/i],
|
package/src/tools.mjs
CHANGED
|
@@ -88,6 +88,23 @@ export const TOOLS = {
|
|
|
88
88
|
// where those words mean something else entirely.
|
|
89
89
|
aliases: { cmd: "cli-tools", args: ["aliases", "--json"] },
|
|
90
90
|
},
|
|
91
|
+
crawlproof: {
|
|
92
|
+
desc: "CrawlProof \u2014 what the fleet costs and what it returns: traffic, ad delivery and the bank behind it",
|
|
93
|
+
bin: "crawlproof",
|
|
94
|
+
// Reachable two ways on purpose. The `cli-tools` set above symlinks a
|
|
95
|
+
// wrapper of the same name, and this entry installs the package that
|
|
96
|
+
// wrapper vendors. Having both is safe: the wrapper hands over to a
|
|
97
|
+
// `crawlproof` on PATH that is not its own, and refuses to follow one that
|
|
98
|
+
// is, which would be an exec loop. It is its own entry because
|
|
99
|
+
// `/install crawlproof` should install CrawlProof rather than seven other
|
|
100
|
+
// commands that happen to travel with it.
|
|
101
|
+
//
|
|
102
|
+
// The dashboard is a TUI and wants Node 22.6+; `crawlproof stats` and
|
|
103
|
+
// `--json` run anywhere. An ordinary global npm package, and
|
|
104
|
+
// `npm install -g` is idempotent, so the install is also the upgrade \u2014
|
|
105
|
+
// no `upgrade` key, the same as bo and railway.
|
|
106
|
+
install: { cmd: "npm", args: ["install", "-g", "@profullstack/crawlproof"] },
|
|
107
|
+
},
|
|
91
108
|
timer: {
|
|
92
109
|
desc: "Profullstack timer - track time against projects, for people and for agents",
|
|
93
110
|
bin: "timer",
|