@spinalfluid/ultrac 0.1.6 → 0.1.9

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.
Files changed (3) hide show
  1. package/README.md +61 -6
  2. package/dist/cli.js +675 -110
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -35,7 +35,7 @@ For local testing before a registry release, build and install the verified tarb
35
35
  pnpm check
36
36
  pnpm verify:install
37
37
  npm pack
38
- npm install -g ./spinalfluid-ultrac-0.1.6.tgz
38
+ npm install -g ./spinalfluid-ultrac-0.1.7.tgz
39
39
  ultrac login
40
40
  ```
41
41
 
@@ -142,12 +142,17 @@ Inside a session:
142
142
 
143
143
  - Type to talk to Ultrac; it inspects the repository with tools as needed.
144
144
  - You can type another message while Ultrac is working. It is queued and inserted after the current
145
- tool batch or completed model response, before the next model request. Slash commands wait for
146
- the main prompt instead of entering model context.
147
- - Ctrl-C stops active work at a safe boundary. At an idle prompt, Ctrl-C exits and saves the session.
145
+ tool call finishes, before the next model request. Remaining tools in that batch are skipped.
146
+ Slash commands wait for the main prompt instead of entering model context.
147
+ - Esc stops the current turn at a safe boundary and returns to the prompt. Ctrl-C exits and saves
148
+ the session.
148
149
  - Gated tools (file writes, shell, network) prompt for approval: `once` / `always` / `no`.
149
150
  - Coding commands: `/plan [task]`, `/coding`, `/review [focus]`, `/diff [--staged]`,
150
151
  `/test [instructions]`, `/init`, `/max-steps [number]`.
152
+ - Quiet output: `/ghost [on|off|status]` hides activity headers and progress for the current
153
+ session. Answers, errors, permission prompts, and private diagnostics remain visible or
154
+ recorded. `/logs` shows the current diagnostic log path. Ghost mode does not change
155
+ network routing, identities, or permissions.
151
156
  - Context and sessions: `/context`, `/compact [focus]`, `/usage`, `/status`, `/save`,
152
157
  `/sessions`, `/resume <id>`, `/new`, `/clear`.
153
158
  - Controls: `/help`, `/model [name]`, `/mode [name]`, `/permissions [readonly|workspace|full]`,
@@ -168,6 +173,15 @@ Inside a session:
168
173
  rules or automatically delete session data: exclude `.ultrac/sessions/` from version control and
169
174
  manage retention yourself.
170
175
 
176
+ Tool activity stays compact. Interactive sessions keep successful tool bodies out of the
177
+ main conversation. Use `/output` to inspect the latest saved tool result, `/output list`
178
+ to find its number, or `/output 3` to inspect a particular result. This display preference
179
+ does not shorten model answers or alter the tool results stored in the session.
180
+
181
+ One-shot runs and `tools run` show at most six preview lines per result, with a hidden-line
182
+ count. Failed results retain the end of the log. Pass `--verbose-tools` for complete
183
+ results; `run --json` and `tools run --result-json` also keep their complete structured output.
184
+
171
185
  Non-interactive, scriptable one-shot runs:
172
186
 
173
187
  ```bash
@@ -388,7 +402,12 @@ Successful `ask_user` answers are kept whole so a constraint at the end is not l
388
402
  count against the context window, so an oversized request fails locally before it reaches the API.
389
403
 
390
404
  **Every request is measured before it is sent.** The provider adds up the system prompt, the
391
- serialised tools, and the transcript. Over 60% of the window, the harness first tries to compact
405
+ serialised tools, and the transcript. During longer tasks, the harness also attempts a
406
+ periodic summary every 12 completed steps when eligible older evidence exceeds 12,000
407
+ characters. Set `ULTRAC_SUMMARY_INTERVAL_STEPS` to an integer from 0 to 1000; 0 disables
408
+ periodic summaries. Every user instruction and the latest two complete assistant/tool
409
+ units are retained. Failed summaries leave the transcript intact. Checkpoints preserve
410
+ successful summaries across resume, while archived tool results remain available. Over 60% of the window, the harness first tries to compact
392
411
  the oldest turns that would otherwise be dropped into a bounded `[compacted-context]` summary.
393
412
  If summarising fails or there is not enough room, it falls back to dropping whole old turns, so an
394
413
  assistant `tool_calls` entry and its `tool` replies are removed together. The system prompt, pinned
@@ -496,7 +515,7 @@ custom skills. Each skill is a folder with a `SKILL.md` (YAML frontmatter + Mark
496
515
  ```
497
516
 
498
517
  ```bash
499
- ultrac skills create open-pr --description "Open a pull request" \
518
+ ultrac skills create open-pr --description "Open a pull request" --command open-pr \
500
519
  --when "the user asks to open a PR" --permissions shell,network
501
520
  ultrac skills list
502
521
  ultrac skills show open-pr
@@ -673,3 +692,39 @@ revocable, non-transferable right to *run* the published build - nothing more. C
673
692
  modification, redistribution, and reverse engineering are reserved. The full terms are in the
674
693
  `LICENSE` file that ships inside the package, and they are the whole agreement: nothing on this
675
694
  page grants a right the licence withholds.
695
+
696
+ ### Recovery during unattended tasks
697
+
698
+ Autonomous runs resume from completed-step checkpoints, use cancellation-aware exponential
699
+ backoff for transient failed rounds (1 second up to 30 seconds), and stop on permanent
700
+ provider failures or repeated unchanged progress. Recovery defaults to five rounds and a
701
+ six-hour elapsed budget. Diagnostics record round timing, retry categories, summary events,
702
+ and stop reasons without prompts or tool bodies. Checkpoints do not guarantee rollback or
703
+ exactly-once execution for a tool interrupted before its completed result was saved.
704
+
705
+ ### Configuring MCP servers
706
+
707
+ The harness connects to local stdio MCP servers, discovers their tools, and makes them
708
+ available to agent turns after workspace approval. Add and inspect a server with:
709
+
710
+ ```sh
711
+ ultrac mcp add my-server node -- /absolute/path/to/server.js
712
+ ultrac trust
713
+ ultrac mcp list
714
+ ultrac mcp call my-server tool-name --input '{"query":"example"}'
715
+ ultrac mcp remove my-server
716
+ ```
717
+
718
+ Use `--env-pass TOKEN_VARIABLE` to forward a named environment variable without writing
719
+ its value to configuration. Setup changes preserve unrelated settings and require renewed
720
+ workspace approval. HTTP/SSE MCP servers are not supported by this transport yet.
721
+
722
+ Create a reusable skill and expose it as a slash command with:
723
+
724
+ ```sh
725
+ ultrac skills create project-check --description "Run project checks" --command project-check
726
+ ```
727
+
728
+ Edit the generated `SKILL.md` instructions, approve the project workspace, and invoke
729
+ `/project-check` in the terminal. The agent can also write a new `SKILL.md` with its file tools and load it with
730
+ `skill`; normal write and tool permissions still apply.