@eventmodelers/cli 1.0.55 → 1.0.57

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
@@ -116,6 +116,9 @@ npx @eventmodelers/cli run # start the agent loop (ralp
116
116
  npx @eventmodelers/cli run --ollama # same, via local Ollama (ralph-ollama.js)
117
117
  npx @eventmodelers/cli run --bash # bash-only loop, no realtime (ralph.sh)
118
118
  npx @eventmodelers/cli run --local # skip platform config/credential lookup entirely — local-only, no board sync
119
+ npx @eventmodelers/cli run --modeling # modeling-kit: warm Claude process driven by the board's prompt queue
120
+ npx @eventmodelers/cli run --standalone # same, plus acting on board changes unprompted — and needs no install at all
121
+ npx @eventmodelers/cli run --standalone --board-id <uuid> # …from any directory, against any board (see Power users)
119
122
  npx @eventmodelers/cli fetch --context <name> # pull full slice detail for one context on the board into <kit-dir>/.slices/
120
123
  npx @eventmodelers/cli fetch --context <name> --slice-id <id> # same, then print just that slice
121
124
  npx @eventmodelers/cli fetch --context <name> --slice-title <title> # same, then print just the slice matching this title
@@ -153,6 +156,83 @@ This scaffolds `.build-kit/CLAUDE.md`, `lib/prompt.md`, `lib/backend-prompt.md`,
153
156
 
154
157
  Installing both a build stack and `init-modeling` into the same project reuses this one `.eventmodelers/config.json` — run whichever `init` command second and it finds the existing config already satisfies the required fields and skips straight past the credential prompt.
155
158
 
159
+ ### The modeling agent — `run --modeling` and `--standalone`
160
+
161
+ A modeling-kit install has one runtime: a warm Claude process the CLI keeps alive across
162
+ turns and feeds directly over stdin, so a prompt typed (or spoken) on the board is picked up
163
+ with no cold start and no `tasks.json` round trip.
164
+
165
+ ```bash
166
+ npx @eventmodelers/cli run --modeling # react to prompts sent to this board
167
+ npx @eventmodelers/cli run --standalone # …and to board changes, on its own initiative
168
+ ```
169
+
170
+ `--standalone` implies `--modeling`, so you never need both.
171
+
172
+ **No install required.** A modeling agent never touches the directory it was started from —
173
+ it works against the board over MCP/REST — so it doesn't need a kit scaffolded there. When
174
+ the current directory has no modeling kit, `run --modeling`/`run --standalone` fall back to a
175
+ single global install under `~/.eventmodelers/kit`, initialized on first use and refreshed
176
+ when you upgrade the CLI. Pass `--global` to prefer it even when a local kit does exist.
177
+
178
+ ```bash
179
+ npx @eventmodelers/cli run --standalone --board-id <uuid> # from any directory, nothing written there
180
+ ```
181
+
182
+ **Credentials are per board, not per directory.** The first time this machine runs a board it
183
+ asks one question — does this board get credentials of its own, or does it use your
184
+ account-wide ones? Answer once and it's remembered: either the board's credentials or a
185
+ `useGlobal` marker lands in `~/.eventmodelers/boards/<board>.json`, and you're not asked
186
+ again. The question is skipped entirely when the answer is already implied (credentials given
187
+ on the command line) or when there's no one to ask (`--print`, or a non-interactive stdin such
188
+ as CI or a process supervisor).
189
+
190
+ To configure a board up front instead, paste the blob from
191
+ [app.eventmodelers.ai/account](https://app.eventmodelers.ai/account):
192
+
193
+ ```bash
194
+ npx @eventmodelers/cli init-config --credentials "token=<uuid>,boardId=<uuid>,organizationId=<uuid>,baseUrl=https://api.eventmodelers.ai"
195
+ npx @eventmodelers/cli run --standalone --board-id <uuid> # all it needs from here on
196
+ ```
197
+
198
+ `--credentials` also takes the equivalent JSON, or `-` to read either from stdin, so a token
199
+ need never appear in your shell history or in `ps`. `run` accepts it too, for configuring and
200
+ starting in one command. Resolution order for a run is `--credentials` and the individual
201
+ `--token`/`--organization-id`/`--board-id`/`--base-url` flags, then `EVENTMODELERS_*` env vars,
202
+ then `~/.eventmodelers/boards/<board>.json`, then the usual `.eventmodelers/config.json` walk,
203
+ and finally the account's default board. Whatever a run resolves is saved back to the
204
+ per-board file (`0600`, in a `0700` directory) along with a stable agent id for the board's
205
+ alive-ping. One machine can therefore drive several boards, across several accounts, at once.
206
+ The global kit itself holds no credentials at all — the token reaches `claude` through the
207
+ spawned process's environment.
208
+
209
+ A kit installed in the current directory still wins by default and behaves exactly as before,
210
+ reading its own `.eventmodelers/config.json`.
211
+
212
+ Without `--standalone` the agent only ever answers direct messages. With it, the loop also
213
+ subscribes to the board's own change channel — the same one the canvas and the build agents
214
+ use — and when the board falls quiet after someone edits it, the agent gets a turn nobody
215
+ asked for and decides for itself whether there's something a human collaborator would
216
+ obviously have done: example data on a freshly placed element, a missing attribute on the
217
+ rest of the chain, a screen for an empty SCREEN node, a question comment on a gap. It does at
218
+ most one focused thing per change, adds rather than deletes, and answers `NOOP` when there's
219
+ nothing worth doing (see the "Standalone board-change turns" section in
220
+ `.agent-modeling-kit/CLAUDE.md`).
221
+
222
+ Its own writes come back on that same channel and the platform can't tell them apart from a
223
+ human's, so the lane is deliberately damped: it waits for a quiet period, ignores everything
224
+ that arrives while a turn runs or shortly after one ends, and never fires twice in quick
225
+ succession. Override the three windows if the defaults don't suit your board:
226
+
227
+ | Env var | Default | What it controls |
228
+ |---|---|---|
229
+ | `EVENTMODELERS_STANDALONE_DEBOUNCE_MS` | `8000` | quiet period before a board change turns into a turn |
230
+ | `EVENTMODELERS_STANDALONE_ECHO_WINDOW_MS` | `20000` | after a turn, how long incoming changes are treated as the agent's own echo |
231
+ | `EVENTMODELERS_STANDALONE_MIN_INTERVAL_MS` | `60000` | floor between two self-directed turns |
232
+
233
+ Direct prompts always outrank the agent's own initiative — a standalone turn waits while
234
+ anything from the prompt queue is running.
235
+
156
236
  ### Installing skills globally
157
237
 
158
238
  By default, skills are copied into the project's own `.claude/skills/`. Pass `--global` to `init` or `init-modeling` to install them into `~/.claude/skills/` instead — available in every project without re-running the installer each time:
@@ -248,6 +328,8 @@ Running any command from inside `~/projects/checkout-app` resolves `organization
248
328
  ```bash
249
329
  npx @eventmodelers/cli init-config # interactive, writes to ./.eventmodelers/config.json
250
330
  npx @eventmodelers/cli init-config --board-id <uuid> # non-interactive, just overrides one field
331
+ npx @eventmodelers/cli init-config --credentials "token=...,boardId=...,organizationId=...,baseUrl=..." # configure ONE board (~/.eventmodelers/boards/<board>.json), no prompts
332
+ npx @eventmodelers/cli init-config --credentials - # same, read from stdin (keeps the token out of shell history)
251
333
  ```
252
334
 
253
335
  ### Env vars and `--config` (scripted/CI installs)
package/RELEASE_NOTES.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## v1.0.56
2
+
3
+ ### Features
4
+ - `run --standalone` no longer needs a modeling kit installed in the current directory. With none there, it falls back to a single global install under `~/.eventmodelers/kit`, initialized on first use and refreshed when the CLI version changes — so `npx @eventmodelers/cli run --standalone --board-id <uuid>` works from anywhere and writes nothing into the directory it was started from. `--global` selects that install explicitly even when a local kit exists.
5
+ - `--standalone` now implies `--modeling` — it already refused every other runner, so requiring both flags only made the shorter command fail.
6
+ - `run` accepts `--token`/`--board-id`/`--organization-id`/`--base-url`, the same credential flags `init` and `init-config` take, so credentials can be given per agent run rather than per directory. They're stored per board in `~/.eventmodelers/boards/<board>.json` (`0600`) together with a stable agent id, so later runs for the same board need only `--board-id`. One machine can drive several boards across several accounts at once.
7
+ - The first run for a board asks once whether it should have credentials of its own or use the account-wide ones, and remembers the answer — either the credentials or a `useGlobal` marker is written to `~/.eventmodelers/boards/<board>.json`. The question is skipped when credentials are given on the command line, under `--print`, or when stdin is not interactive, so CI and process supervisors never block on it.
8
+ - `init-config --credentials "token=...,boardId=...,organizationId=...,baseUrl=..."` configures a single board non-interactively from the blob app.eventmodelers.ai/account hands out. The equivalent JSON works too, and `-` reads either from stdin so a token need not appear in shell history or `ps`. `run --credentials` takes the same value, for configuring and starting in one command.
9
+
10
+ ### Fixes
11
+ - `init --modeling` no longer runs `npm install` in the kit dir — modeling-kit's `package.json` declares no dependencies and exists only for its `"type": "module"`.
12
+
1
13
  ## v0.0.38
2
14
 
3
15
  ### Features