Commit Graph

120 Commits

Author SHA1 Message Date
Ollie Agent cbc4eb4f48 u/complete: use /complete endpoint instead of copilot session 2026-07-18 23:24:23 +02:00
Ollie Agent 8fe10813ee b: use /generate endpoint for foreground mode, sessions only for -bg 2026-07-18 23:20:15 +02:00
Ollie Agent 83ca936c8c elevate: streaming protocol for real-time output
Replace the batch JSON request/response protocol with a streaming
frame protocol. The adapter now uses superpowerd ExecuteCommandStreaming
with SCM_RIGHTS fd-passing to stream stdout/stderr in real-time.

Protocol: client sends {cmd,cwd}+newline, server streams frames
(type byte + 4-byte length + payload). This enables elevated+detach
to capture live output in the ring buffer.

Also updates core submodule with elevated+detach support.
2026-07-18 00:16:32 +02:00
Levi Neely ab3c32be92 update core (kiro backend fixes), fix prime path resolution
- core: port kiro backend fixes from goq (endpoint, content encoding,
  retry logic, auth robustness, reasoning support)
- scripts/x/prime: handle colon-separated OLLIE_PROMPTS_PATH
2026-07-10 11:43:29 +02:00
Ollie Agent f11031221e remove $OLLIE mount dependency from agent startup path
- agent JSONs: $OLLIE/x/ -> $OLLIE_CFG_PATH/scripts/x/
- x/prime: use $OLLIE_PROMPTS_PATH instead of $OLLIE/p/
- x/elevate-adapter-start: use $OLLIE_CFG_PATH/scripts/x/
- Update core and 9p submodules

olliesrv and agent sessions now work without FUSE. Mount remains
available as an enhancement when present.
2026-06-16 12:30:48 +02:00
Levi Neely e3dd73ca21 ollie-watchdog: simplify, use ollie-remount 2026-06-15 13:33:09 +02:00
Levi Neely 0c95854c73 move mount ownership to ollie-watchdog 2026-06-15 13:31:12 +02:00
Ollie Agent 68082ad2a6 front-ends: transparent FUSE remount on I/O errors
All front-ends (sh, b, ls, kill, cleanup, ellie.el, ollie-acme, Kmpl)
now retry file operations after running ollie-remount on failure.
contrib target added to 'all' so ollie-remount is always installed.
2026-05-21 09:00:13 +02:00
Ollie Agent 7418114e44 add escalate tools 2026-05-19 15:27:22 +02:00
Levi Neely 2b30e3cc3e add orchestrator/worker agents; update cascade defaults to deepseek v4 2026-05-17 15:04:06 +02:00
Levi Neely e31d1abd1e u/cascade: add session name to results; sync schema with actual fields 2026-05-17 13:36:59 +02:00
Levi Neely 204e0e7a9d u/cascade: validate -retries; add attempts field to results
- Reject non-positive-integer -retries early
- Each worker records attempt count; results JSON includes
  'attempts' field for retry observability
2026-05-17 13:35:39 +02:00
Levi Neely 8895150f94 u/cascade: add -retries N for transient worker failure recovery
Workers retry with linear backoff (attempt*2s). Each retry uses a
unique session name suffix (-r2, -r3, ...) to avoid collisions.
Default: 1 (no retry).
2026-05-17 13:34:37 +02:00
Levi Neely 7f8421691f u/cascade: validate -max-workers; truncate large worker outputs
- Reject non-positive-integer -max-workers early
- Per-worker output capped at OLLIE_CASCADE_MAX_OUTPUT (default 8000 chars)
  to prevent synthesis prompt blowup
2026-05-17 13:33:25 +02:00
Levi Neely 42929b4c57 u/cascade: pass JSON results directly to planner synthesis prompt 2026-05-17 13:32:43 +02:00
Levi Neely 04bed6189f u/cascade: structured JSON results, worker throttling via -max-workers
- Results gathered as JSON array [{id, status, output}]
- Default output is pretty-printed JSON (no synthesis)
- -max-workers N (default 8) throttles concurrent workers
- Synthesis renders JSON to text for planner prompt
2026-05-17 13:31:23 +02:00
Levi Neely 9ca6b9de8a u/cascade: strict plan schema validation; clarify exit code contract
- Validate all entries have non-empty string id and instruction
- No synthesis: exit 1 on worker failures (partial results)
- Synthesis: exit 0 — planner accounts for failures in its answer
2026-05-17 13:27:56 +02:00
Levi Neely 664b9e7f93 u/cascade: invert synthesis default — off unless -synthesize is passed 2026-05-17 13:25:17 +02:00
Levi Neely 77efded76d u/cascade: add -json-output flag for structured synthesis output
Schema: {summary, answer, worker_results[], errors[]}
2026-05-17 13:24:28 +02:00
Levi Neely 8d78c6a7bc u/cascade: validate plan schema (require .id and .instruction per entry) 2026-05-17 13:22:14 +02:00
Levi Neely c29cf7dcdc u/cascade: track per-worker failures, annotate status, exit non-zero 2026-05-17 13:22:00 +02:00
Levi Neely 87fb50f207 u/cascade: use private tmpdir for worker output isolation 2026-05-17 13:21:34 +02:00
Levi Neely 3d513790f9 u/cascade: add -no-synthesize flag to skip expensive synthesis step 2026-05-17 13:21:10 +02:00
Levi Neely b4be3a01d9 add cascade tool and script-driven orchestrator
tools/cascade: fire-and-forget delegation to cheap model; worker
reports back to parent prompt when done. Parallelizable.

scripts/u/cascade: script-driven hub-and-spoke orchestrator for
terminal use — planner decomposes, workers execute in parallel,
planner synthesizes.
2026-05-17 13:16:18 +02:00
Levi Neely 4888db8e12 u/complete: add -cwd flag; acme submodule update (type resolution) 2026-05-11 16:50:43 +02:00
Levi Neely 6ae476355a u/complete: stronger prompt (no reasoning output); drop :: echo to stderr 2026-05-11 16:15:27 +02:00
Levi Neely bb13c24ef2 u/complete: prompt says implement, not complete; reject stub echoing 2026-05-11 15:48:52 +02:00
Levi Neely 51fc98ccdf u/complete: add -context flag, increase prefix to 12K chars 2026-05-11 14:07:58 +02:00
Levi Neely 1c26a19c0a update acme, scripts 2026-05-08 17:41:55 +02:00
Levi Neely 767a6ab64f sh: simplify sigint handler - just send stop, let rc resume 2026-05-08 14:59:21 +02:00
Levi Neely 2a98363b99 sh: fix signal handler name: sigint not sigintr 2026-05-08 14:58:20 +02:00
Levi Neely 2c4d8a0782 sh: remove statewait read before poll loop 2026-05-08 14:56:45 +02:00
Levi Neely b07fcec765 sh: read state file directly instead of parsing cfg 2026-05-08 14:55:35 +02:00
Levi Neely 284f1969d8 sh: on Ctrl-C during turn, send stop and re-exec to resume 2026-05-08 14:53:27 +02:00
Levi Neely 7265c8202d sh: redefine sigintr during agent turn to interrupt without exiting 2026-05-08 14:46:41 +02:00
Levi Neely dd4e5a677a sh: Ctrl-C interrupts running turn instead of exiting 2026-05-08 14:45:02 +02:00
Levi Neely fb29487a1f revert chatwait changes in sh and acme frontends 2026-05-08 12:45:05 +02:00
Levi Neely ecbb9e240c use chatwait for responsive streaming in sh and acme frontends 2026-05-08 12:08:54 +02:00
Levi Neely ba8f7948bb s/sh: fix case patterns for argument-taking commands
Quoted '*' in rc switch cases is a literal character, not a wildcard.
Replace '/cmd *' patterns with /cmd?* so rc treats them as globs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 08:18:15 +02:00
Levi Neely 3186bb12f2 s/sh: replace readmulti with inline bash readline; fix /model feedback
Replace the Python raw-mode multiline hack (readmulti) with an inline
bash read -e loop using backslash continuation. Add show_new to display
the server response after /model, /agent, /backend cfg writes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 22:47:20 +02:00
Levi Neely 45d1b6b77e readme: add "What you get" section; update submodules
- README.md: add feature summary with bulleted list
- acme: add README documenting ollie-acme and Kmpl
- el: refactor completion to shell out to u/complete
- u/complete: improve prompt and strip leaked tags
2026-05-03 22:03:01 +02:00
Levi Neely ed178dfad0 u/complete: prompt to complete logical unit, not just minimal insertion 2026-05-03 21:32:40 +02:00
Levi Neely 410335cb51 u/complete: split into completion engine + acme glue (Kmpl)
u/complete is now acme-free: reads prefix from stdin, takes -suffix,
-file, -model, -backend flags. Prints completion to stdout.

acme/scripts/Kmpl is the thin acme wrapper that extracts prefix/suffix
from the window and pipes to u/complete.

Also fixes prefix truncation bug (bash substring returning empty when
string is shorter than offset) and updates core submodule with
interrupt handling improvements.
2026-05-03 21:10:57 +02:00
Levi Neely 2f7107d44c u/complete: strip markdown fences, insert at cursor, info to stderr
Also set tools:false on copilot agent and update core submodule
with the new tools config field.
2026-05-03 14:59:05 +02:00
Levi Neely ebea90d5f7 u/complete: fix TOCTOU race spawning duplicate copilot sessions
Use deterministic session ID derived from cwd hash instead of
timestamp. Concurrent invocations for the same directory now
converge on the same session name, and the server rejects the
duplicate atomically.
2026-05-03 14:08:15 +02:00
Levi Neely 3c03faed3a u/complete: persistent copilot session per cwd; add freeloader hook
- Replace per-invocation s/bfg calls with a persistent *-copilot session
  looked up from s/idx; first call in a cwd spawns the session, subsequent
  calls reuse it, skipping s/new overhead
- Clear context after each completion so inference stays fast
- Fix session lookup to read s/idx instead of globbing the 9P mount
- Add x/freeloader turnError hook to copilot.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 13:54:29 +02:00
Levi Neely cddda76a3f u/complete: add model/backend flags and env var support; fix winid=0
- Add -model and -backend flags; read OLLIE_COMPLETE_MODEL /
  OLLIE_COMPLETE_BACKEND as defaults; error if neither is set
- Guard against winid=0 (acme column tag / +Errors window)
- Document OLLIE_COMPLETE_MODEL and OLLIE_COMPLETE_BACKEND in
  README.md and doc/env.sample

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 13:43:30 +02:00
Levi Neely 2c8e59e7f5 acme: add u/complete for AI ghost-text code completion
Adds a u/complete script that reads prefix/suffix from the current acme
window via dot position, submits a fill-in-the-middle prompt to ollie
via s/bfg, and writes the completion to a new ollie/complete window.

Also adds a minimal copilot agent config (no system prompt, no tools)
for use by u/complete, and wires both into the install target in mkfile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 13:30:26 +02:00
Levi Neely 5682065bbd restore readmulti, update s/sh command reference in USAGE.md 2026-05-01 10:41:07 +02:00
Levi Neely cfe367bca1 docs: sync documentation with current implementation
- Update agent config docs (prompt array, hooks, mcpServers)
- Add new session files (context, cost, env, plan, prompt.prev)
- Document httpgw daemon subcommands
- Update tool scripts list
- Move readmulti to tui submodule
2026-04-30 09:07:59 +02:00