@spinalfluid/ultrac 0.1.6 → 0.1.11

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 +77 -6
  2. package/dist/cli.js +1945 -513
  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
 
@@ -141,13 +141,34 @@ ultrac "Find the main entry points and summarize the architecture"
141
141
  Inside a session:
142
142
 
143
143
  - Type to talk to Ultrac; it inspects the repository with tools as needed.
144
+ - On supported terminals, the full-width input box stays at the bottom while tools and replies
145
+ run above it. The footer shows the current model, elapsed task time, reported token usage,
146
+ and estimated context usage. Unreported token counts appear as unknown.
147
+ - Type `/` to browse built-in commands and available skills. Type to filter, use arrow keys
148
+ to select, and press Tab or Enter to fill the command. Press Enter again to run it;
149
+ Esc dismisses the menu. `/skill <name> [args]` runs a skill without a custom command.
150
+ - Multiple-choice questions accept arrow keys and Enter, or a mouse click where the terminal
151
+ supports mouse reporting. You can also type a number or your own answer.
144
152
  - 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.
153
+ tool call finishes, before the next model request. Remaining tools in that batch are skipped.
154
+ Slash commands wait for the main prompt instead of entering model context.
155
+ - Esc stops the current turn at a safe boundary and returns to the prompt. Ctrl-C exits and saves
156
+ the session.
148
157
  - Gated tools (file writes, shell, network) prompt for approval: `once` / `always` / `no`.
158
+ - `/mcp` shows the connected servers in this session; `/doctor` checks local setup.
159
+ - `/continue [focus]` continues an unfinished task using its current transcript. `/autonomous on`
160
+ enables up to five rounds when a task reaches its step ceiling. Checkpoints, a six-hour elapsed
161
+ limit, stall detection, and Esc cancellation remain active. `/autonomous off` restores one round.
162
+ Failed rounds are not automatically replayed; provider retry/failover handles request failures.
163
+ - The agent can use `create_skill` in default/coding modes (or with `--tools all`) to create a
164
+ project playbook with full instructions and an optional slash command. It requires write
165
+ permission, refuses overwrites, and retains the workspace trust requirement for loading.
149
166
  - Coding commands: `/plan [task]`, `/coding`, `/review [focus]`, `/diff [--staged]`,
150
167
  `/test [instructions]`, `/init`, `/max-steps [number]`.
168
+ - Quiet output: `/ghost [on|off|status]` hides activity headers and progress for the current
169
+ session. Answers, errors, permission prompts, and private diagnostics remain visible or
170
+ recorded. `/logs` shows the current diagnostic log path. Ghost mode does not change
171
+ network routing, identities, or permissions.
151
172
  - Context and sessions: `/context`, `/compact [focus]`, `/usage`, `/status`, `/save`,
152
173
  `/sessions`, `/resume <id>`, `/new`, `/clear`.
153
174
  - Controls: `/help`, `/model [name]`, `/mode [name]`, `/permissions [readonly|workspace|full]`,
@@ -168,6 +189,15 @@ Inside a session:
168
189
  rules or automatically delete session data: exclude `.ultrac/sessions/` from version control and
169
190
  manage retention yourself.
170
191
 
192
+ Tool activity stays compact. Interactive sessions keep successful tool bodies out of the
193
+ main conversation. Use `/output` to inspect the latest saved tool result, `/output list`
194
+ to find its number, or `/output 3` to inspect a particular result. This display preference
195
+ does not shorten model answers or alter the tool results stored in the session.
196
+
197
+ One-shot runs and `tools run` show at most six preview lines per result, with a hidden-line
198
+ count. Failed results retain the end of the log. Pass `--verbose-tools` for complete
199
+ results; `run --json` and `tools run --result-json` also keep their complete structured output.
200
+
171
201
  Non-interactive, scriptable one-shot runs:
172
202
 
173
203
  ```bash
@@ -388,7 +418,12 @@ Successful `ask_user` answers are kept whole so a constraint at the end is not l
388
418
  count against the context window, so an oversized request fails locally before it reaches the API.
389
419
 
390
420
  **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
421
+ serialised tools, and the transcript. During longer tasks, the harness also attempts a
422
+ periodic summary every 12 completed steps when eligible older evidence exceeds 12,000
423
+ characters. Set `ULTRAC_SUMMARY_INTERVAL_STEPS` to an integer from 0 to 1000; 0 disables
424
+ periodic summaries. Every user instruction and the latest two complete assistant/tool
425
+ units are retained. Failed summaries leave the transcript intact. Checkpoints preserve
426
+ successful summaries across resume, while archived tool results remain available. Over 60% of the window, the harness first tries to compact
392
427
  the oldest turns that would otherwise be dropped into a bounded `[compacted-context]` summary.
393
428
  If summarising fails or there is not enough room, it falls back to dropping whole old turns, so an
394
429
  assistant `tool_calls` entry and its `tool` replies are removed together. The system prompt, pinned
@@ -496,7 +531,7 @@ custom skills. Each skill is a folder with a `SKILL.md` (YAML frontmatter + Mark
496
531
  ```
497
532
 
498
533
  ```bash
499
- ultrac skills create open-pr --description "Open a pull request" \
534
+ ultrac skills create open-pr --description "Open a pull request" --command open-pr \
500
535
  --when "the user asks to open a PR" --permissions shell,network
501
536
  ultrac skills list
502
537
  ultrac skills show open-pr
@@ -673,3 +708,39 @@ revocable, non-transferable right to *run* the published build - nothing more. C
673
708
  modification, redistribution, and reverse engineering are reserved. The full terms are in the
674
709
  `LICENSE` file that ships inside the package, and they are the whole agreement: nothing on this
675
710
  page grants a right the licence withholds.
711
+
712
+ ### Recovery during unattended tasks
713
+
714
+ Autonomous runs resume from completed-step checkpoints, use cancellation-aware exponential
715
+ backoff for transient failed rounds (1 second up to 30 seconds), and stop on permanent
716
+ provider failures or repeated unchanged progress. Recovery defaults to five rounds and a
717
+ six-hour elapsed budget. Diagnostics record round timing, retry categories, summary events,
718
+ and stop reasons without prompts or tool bodies. Checkpoints do not guarantee rollback or
719
+ exactly-once execution for a tool interrupted before its completed result was saved.
720
+
721
+ ### Configuring MCP servers
722
+
723
+ The harness connects to local stdio MCP servers, discovers their tools, and makes them
724
+ available to agent turns after workspace approval. Add and inspect a server with:
725
+
726
+ ```sh
727
+ ultrac mcp add my-server node -- /absolute/path/to/server.js
728
+ ultrac trust
729
+ ultrac mcp list
730
+ ultrac mcp call my-server tool-name --input '{"query":"example"}'
731
+ ultrac mcp remove my-server
732
+ ```
733
+
734
+ Use `--env-pass TOKEN_VARIABLE` to forward a named environment variable without writing
735
+ its value to configuration. Setup changes preserve unrelated settings and require renewed
736
+ workspace approval. HTTP/SSE MCP servers are not supported by this transport yet.
737
+
738
+ Create a reusable skill and expose it as a slash command with:
739
+
740
+ ```sh
741
+ ultrac skills create project-check --description "Run project checks" --command project-check
742
+ ```
743
+
744
+ Edit the generated `SKILL.md` instructions, approve the project workspace, and invoke
745
+ `/project-check` in the terminal. The agent can also write a new `SKILL.md` with its file tools and load it with
746
+ `skill`; normal write and tool permissions still apply.