@xingular/harness 1.6.0-unstable → 2.0.1-unstable
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/CHANGELOG.md +43 -0
- package/dist/cli.js +23375 -19883
- package/dist/sdk/cli.js +16 -1
- package/dist/sdk/harness.js +2 -1
- package/dist/sdk/prompt/reporting.d.ts +1 -1
- package/dist/sdk/prompt/reporting.js +8 -3
- package/dist/sdk/server/methods.js +12 -3
- package/dist/sdk/server/serve.d.ts +5 -2
- package/dist/sdk/server/serve.js +10 -3
- package/dist/sdk/server/socket.d.ts +28 -0
- package/dist/sdk/server/socket.js +122 -0
- package/dist/sdk/sessions/contracts.d.ts +14 -1
- package/dist/sdk/sessions/contracts.js +9 -0
- package/dist/sdk/sessions/extensionUi.js +4 -4
- package/dist/sdk/sessions/live.d.ts +101 -0
- package/dist/sdk/sessions/live.js +265 -0
- package/dist/sdk/sessions/registry.d.ts +12 -0
- package/dist/sdk/sessions/registry.js +3 -0
- package/dist/sdk/sessions/runner.d.ts +25 -3
- package/dist/sdk/sessions/runner.js +171 -31
- package/dist/sdk/sessions/sessions.d.ts +49 -0
- package/dist/sdk/sessions/sessions.js +165 -8
- package/dist/sdk/{terminal → sessions}/stallWatch.d.ts +4 -0
- package/dist/sdk/{terminal → sessions}/stallWatch.js +10 -4
- package/dist/sdk/sessions/subagentService.js +1 -1
- package/dist/sdk/terminal/controller.js +1 -3
- package/dist/sdk/terminal/daemon.d.ts +44 -0
- package/dist/sdk/terminal/daemon.js +264 -0
- package/dist/sdk/terminal/liveTerminal.d.ts +96 -0
- package/dist/sdk/terminal/liveTerminal.js +436 -0
- package/dist/sdk/terminal/standalone.d.ts +19 -1
- package/dist/sdk/terminal/standalone.js +75 -25
- package/dist/sdk/terminal/terminals.d.ts +43 -0
- package/dist/sdk/terminal/terminals.js +171 -14
- package/dist/sdk/terminal/tui/commands.d.ts +2 -0
- package/dist/sdk/terminal/tui/commands.js +24 -2
- package/dist/sdk/terminal/tui/harnessRuntime.d.ts +8 -0
- package/dist/sdk/terminal/tui/harnessRuntime.js +771 -0
- package/dist/sdk/terminal/tui/thinkingLevels.d.ts +11 -0
- package/dist/sdk/terminal/tui/thinkingLevels.js +31 -0
- package/dist/terminal-opentui.js +2013 -975
- package/dist/terminal-pi.js +9 -0
- package/docs/architecture/02-sessions-and-runs.md +61 -3
- package/docs/architecture/04-prompt.md +8 -6
- package/docs/architecture/10-server-protocol.md +23 -1
- package/docs/architecture/11-terminal.md +67 -3
- package/docs/architecture/12-storage.md +3 -1
- package/docs/architecture/14-surfaces-and-parity.md +4 -0
- package/docs/architecture/15-remote-control.md +3 -1
- package/docs/architecture/README.md +5 -0
- package/docs/decisions/ADR-0001-owned-terminal.md +9 -2
- package/docs/decisions/ADR-0083-one-live-session-runtime.md +256 -0
- package/docs/parity.md +4 -3
- package/docs/releases/2.0.1-unstable.md +63 -0
- package/docs/terminal-tui.md +10 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
- **One session runtime: the terminal is now a client of the harness (ADR-0083).**
|
|
6
|
+
- A conversation keeps one open Pi session across turns (`sessions.run { live: true }`), so
|
|
7
|
+
steering, queued follow-ups and plugin state carry from one turn to the next. `sessions.live`,
|
|
8
|
+
`sessions.close`, `sessions.followUp` and `sessions.followUp.clear` manage them. App chat turns
|
|
9
|
+
use it.
|
|
10
|
+
- `xagent` runs no agent loop in its window any more: every turn is a harness run, with the same
|
|
11
|
+
gate, records, plan mode, goals and subagents as a host's. `XINGULAR_TERMINAL_RUNTIME=inprocess`
|
|
12
|
+
runs the previous in-process runtime. Plugins in the new terminal get the host's interface
|
|
13
|
+
(dialogs, notices, status lines and text widgets); custom terminal components, key handlers,
|
|
14
|
+
renderers, shortcuts and themes need the in-process runtime.
|
|
15
|
+
- `xagent daemon start|stop|status` runs one long-lived harness per state folder; `xagent --daemon`
|
|
16
|
+
windows use it, so a reply keeps running when its window closes, and `xagent attach` reconnects a
|
|
17
|
+
window to it. The protocol is also served on an owner-only socket (`server/socket.ts`).
|
|
18
|
+
- Terminal runs now record Pi's session id as `nativeSessionId`, as host runs do; in-process
|
|
19
|
+
terminal runs keep recording their history file.
|
|
20
|
+
- `/session` takes a saved conversation's session id as well as its file.
|
|
21
|
+
- **Every harness run ends when it stops making progress.** A reply that produces nothing for fifteen
|
|
22
|
+
minutes (thirty with a tool running; a pending approval or a wait for subagents does not count) is
|
|
23
|
+
interrupted with reason `stalled`, whatever front end started it, and its live session is closed
|
|
24
|
+
rather than reused. Every run now sends the 30-second `heartbeat`, not only runs with a work slice,
|
|
25
|
+
so a long quiet tool is no longer settled as `owner_gone`.
|
|
26
|
+
- **Switching accounts starts on the new account's model.** A conversation resumed on another
|
|
27
|
+
account that names a model this account cannot use now starts on this account's own latest choice
|
|
28
|
+
(with a notice), as the in-process terminal did, instead of showing and sending the old account's
|
|
29
|
+
model. If nothing on the account is usable, no model is named and the harness picks one.
|
|
30
|
+
- **Plan and normal mode keep their own model and effort in the new terminal.** A mode that never
|
|
31
|
+
chose an effort starts on the model's or account's default instead of keeping the other mode's; a
|
|
32
|
+
mode switch during a reply waits for it to settle; a one-shot `/plan` shows and runs the plan
|
|
33
|
+
mode's choice, then returns to the normal one.
|
|
34
|
+
- **The new terminal offers every effort level the model supports.** It stopped at `high`; it now
|
|
35
|
+
lists `xhigh` and `max` where the model maps them, as the in-process terminal did, and runs a
|
|
36
|
+
model at the nearest level it supports when asked for one it does not.
|
|
37
|
+
- **A reply whose provider request timed out and was retried successfully is now recorded as
|
|
38
|
+
completed**, not failed.
|
|
39
|
+
- **A terminal window whose terminal closed no longer leaves its process running.** The frontend is
|
|
40
|
+
ended three seconds after the hang-up if it has not exited by itself.
|
|
41
|
+
|
|
42
|
+
- **Make fenced code easier to read in the terminal.** Code blocks now use a bordered panel labeled
|
|
43
|
+
from the fence language, with bundled tree-sitter highlighting where available and lightweight
|
|
44
|
+
Python, shell and JSON fallback highlighting. The final-answer prompt asks for language-labeled
|
|
45
|
+
fences and `bash` fences for commands the person must run; this changes the stable prompt prefix
|
|
46
|
+
once.
|
|
47
|
+
|
|
5
48
|
- **Connect the agent to your own signed-in Brave profile (ADR-0082).**
|
|
6
49
|
- A device-local browser backend. `/settings` → Browser offers **Isolated browser** or **Brave
|
|
7
50
|
profile**; choosing Brave asks first, naming the extension's `debugger` permission, that a
|