@xingular/harness 1.3.1-unstable.3 → 1.3.1-unstable.5

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 (129) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/cli.js +3418 -1780
  3. package/dist/sdk/cli.js +2 -0
  4. package/dist/sdk/commands/extensionOwners.d.ts +4 -0
  5. package/dist/sdk/commands/extensionOwners.js +17 -0
  6. package/dist/sdk/commands/list.js +15 -2
  7. package/dist/sdk/commands/promptLoader.d.ts +5 -0
  8. package/dist/sdk/commands/promptLoader.js +76 -0
  9. package/dist/sdk/commands/promptRoutes.d.ts +13 -0
  10. package/dist/sdk/commands/promptRoutes.js +46 -0
  11. package/dist/sdk/commands/registry.d.ts +15 -0
  12. package/dist/sdk/commands/registry.js +2 -0
  13. package/dist/sdk/commands/runtimeRouter.d.ts +4 -0
  14. package/dist/sdk/commands/runtimeRouter.js +48 -0
  15. package/dist/sdk/computer/boundary.d.ts +40 -0
  16. package/dist/sdk/computer/boundary.js +79 -0
  17. package/dist/sdk/computer/contracts.d.ts +127 -0
  18. package/dist/sdk/computer/contracts.js +13 -0
  19. package/dist/sdk/computer/control.d.ts +34 -0
  20. package/dist/sdk/computer/control.js +112 -0
  21. package/dist/sdk/computer/terminalCapture.d.ts +26 -0
  22. package/dist/sdk/computer/terminalCapture.js +64 -0
  23. package/dist/sdk/computer/volatileImages.d.ts +9 -0
  24. package/dist/sdk/computer/volatileImages.js +50 -0
  25. package/dist/sdk/context/runDetails.d.ts +16 -0
  26. package/dist/sdk/context/runDetails.js +22 -0
  27. package/dist/sdk/doctor/checks.js +3 -0
  28. package/dist/sdk/doctor/probe.js +8 -6
  29. package/dist/sdk/history/trajectory.js +2 -0
  30. package/dist/sdk/hub/schema.d.ts +2 -2
  31. package/dist/sdk/plugins/manifest.d.ts +2 -0
  32. package/dist/sdk/plugins/manifest.js +1 -0
  33. package/dist/sdk/prompt/compile.d.ts +2 -0
  34. package/dist/sdk/prompt/compile.js +4 -2
  35. package/dist/sdk/refine/trajectory.js +7 -2
  36. package/dist/sdk/remote/addresses.d.ts +19 -0
  37. package/dist/sdk/remote/addresses.js +52 -0
  38. package/dist/sdk/remote/pairing.d.ts +59 -0
  39. package/dist/sdk/remote/pairing.js +160 -0
  40. package/dist/sdk/remote/seal.d.ts +28 -0
  41. package/dist/sdk/remote/seal.js +84 -0
  42. package/dist/sdk/remote/server.d.ts +28 -0
  43. package/dist/sdk/remote/server.js +158 -0
  44. package/dist/sdk/remote/service.d.ts +125 -0
  45. package/dist/sdk/remote/service.js +330 -0
  46. package/dist/sdk/remote/webClient.d.ts +4 -0
  47. package/dist/sdk/remote/webClient.js +448 -0
  48. package/dist/sdk/server/methods.js +2 -0
  49. package/dist/sdk/sessions/contracts.d.ts +124 -2
  50. package/dist/sdk/sessions/contracts.js +114 -3
  51. package/dist/sdk/sessions/planMode.d.ts +26 -1
  52. package/dist/sdk/sessions/planMode.js +48 -1
  53. package/dist/sdk/sessions/registry.d.ts +6 -2
  54. package/dist/sdk/sessions/registry.js +16 -13
  55. package/dist/sdk/sessions/runStore.d.ts +3 -1
  56. package/dist/sdk/sessions/runStore.js +25 -8
  57. package/dist/sdk/sessions/runner.d.ts +7 -5
  58. package/dist/sdk/sessions/runner.js +94 -16
  59. package/dist/sdk/sessions/sessions.js +29 -21
  60. package/dist/sdk/sessions/workSlice.d.ts +7 -9
  61. package/dist/sdk/sessions/workSlice.js +12 -152
  62. package/dist/sdk/terminal/client.d.ts +5 -0
  63. package/dist/sdk/terminal/client.js +15 -0
  64. package/dist/sdk/terminal/controller.d.ts +13 -0
  65. package/dist/sdk/terminal/controller.js +66 -7
  66. package/dist/sdk/terminal/piExtension.js +144 -16
  67. package/dist/sdk/terminal/stallWatch.d.ts +13 -0
  68. package/dist/sdk/terminal/stallWatch.js +16 -0
  69. package/dist/sdk/terminal/standalone.d.ts +2 -0
  70. package/dist/sdk/terminal/standalone.js +9 -2
  71. package/dist/sdk/terminal/terminals.d.ts +13 -1
  72. package/dist/sdk/terminal/terminals.js +107 -7
  73. package/dist/sdk/terminal/trajectory.js +2 -2
  74. package/dist/sdk/terminal/tui/commandPages.d.ts +4 -1
  75. package/dist/sdk/terminal/tui/commandPages.js +15 -1
  76. package/dist/sdk/terminal/tui/commands.d.ts +2 -0
  77. package/dist/sdk/terminal/tui/commands.js +25 -64
  78. package/dist/sdk/terminal/tui/markdown.d.ts +16 -0
  79. package/dist/sdk/terminal/tui/markdown.js +55 -0
  80. package/dist/sdk/terminal/tui/pages/contextPage.d.ts +38 -1
  81. package/dist/sdk/terminal/tui/pages/contextPage.js +239 -47
  82. package/dist/sdk/terminal/tui/pages/remoteControlPage.d.ts +32 -0
  83. package/dist/sdk/terminal/tui/pages/remoteControlPage.js +170 -0
  84. package/dist/sdk/terminal/tui/pages/trajectoryPage.d.ts +1 -0
  85. package/dist/sdk/terminal/tui/pages/trajectoryPage.js +12 -3
  86. package/dist/sdk/terminal/tui/qr.d.ts +4 -0
  87. package/dist/sdk/terminal/tui/qr.js +35 -0
  88. package/dist/sdk/terminal/tui/runtime.js +15 -2
  89. package/dist/sdk/terminal/tui/sideQuestion.d.ts +4 -0
  90. package/dist/sdk/terminal/tui/sideQuestion.js +15 -4
  91. package/dist/sdk/terminal/tui/theme.d.ts +9 -0
  92. package/dist/sdk/terminal/tui/theme.js +9 -0
  93. package/dist/sdk/tools/definitions.js +1 -1
  94. package/dist/sdk/tools/dispatch.d.ts +1 -1
  95. package/dist/sdk/tools/dispatch.js +17 -3
  96. package/dist/sdk/world/actions.js +1 -1
  97. package/dist/terminal-opentui.js +2080 -672
  98. package/dist/terminal-pi.js +258 -133
  99. package/docs/architecture/02-sessions-and-runs.md +51 -24
  100. package/docs/architecture/04-prompt.md +15 -3
  101. package/docs/architecture/06-plugins-and-capabilities.md +13 -2
  102. package/docs/architecture/07-tools-and-gate.md +17 -1
  103. package/docs/architecture/08-memory-and-history.md +7 -3
  104. package/docs/architecture/10-server-protocol.md +37 -1
  105. package/docs/architecture/11-terminal.md +64 -18
  106. package/docs/architecture/12-storage.md +5 -2
  107. package/docs/architecture/13-world-tools.md +19 -0
  108. package/docs/architecture/14-surfaces-and-parity.md +7 -3
  109. package/docs/architecture/15-remote-control.md +118 -0
  110. package/docs/architecture/README.md +3 -0
  111. package/docs/architecture/proposals/PROP-0049-context-attribution.md +35 -2
  112. package/docs/architecture/proposals/PROP-0050-run-stop-codes-and-refusals.md +30 -0
  113. package/docs/architecture/proposals/README.md +3 -2
  114. package/docs/decisions/ADR-0039-progress-aware-stall-guards.md +4 -0
  115. package/docs/decisions/ADR-0053-no-repeated-work-guard.md +45 -0
  116. package/docs/decisions/ADR-0054-terminal-reply-heartbeat-and-stall.md +52 -0
  117. package/docs/decisions/ADR-0055-plan-output-repair.md +51 -0
  118. package/docs/decisions/ADR-0056-remote-control.md +53 -0
  119. package/docs/decisions/ADR-0057-structured-plan-outcomes.md +39 -0
  120. package/docs/decisions/ADR-0058-ask-user-only-plan-clarification.md +36 -0
  121. package/docs/decisions/ADR-0059-run-diagnostic-evidence.md +35 -0
  122. package/docs/decisions/ADR-0060-approvals-are-controls.md +40 -0
  123. package/docs/decisions/ADR-0061-strict-plugin-command-namespaces.md +41 -0
  124. package/docs/doctor.md +2 -0
  125. package/docs/parity.md +23 -8
  126. package/docs/releases/1.3.1-unstable.4.md +56 -0
  127. package/docs/releases/1.3.1-unstable.5.md +53 -0
  128. package/docs/terminal-tui.md +30 -12
  129. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,70 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ - Require owner-prefixed plugin commands on terminal and structured sessions. Plugin-owned prompt
6
+ templates join extension commands under `/<owner-prefix>:<name>`, with no bare plugin aliases.
7
+ A package can select a root template with `harness.defaultPrompt`; owner and route collisions fail
8
+ closed. Standalone templates, `/skill:<name>` and core commands remain (ADR-0061).
9
+
10
+ - Make an approval a control, never a typed permission. The compiled guidance now tells the model to
11
+ call the tool, the Harness pauses that exact call (`waiting_for_approval`), and Allow resumes it in
12
+ the same turn; a denial returns a tool result on the still-running turn and says so, instead of
13
+ inviting another prose request. Nothing outside the workspace changes before the click, and Full
14
+ Permission remains the standing bypass (INV-GATE-9, ADR-0060).
15
+
16
+ - Record structured tool refusals and run stop codes, and expose them in trajectory search and the
17
+ terminal trajectory page. Compaction events include available token measurements; older run
18
+ records remain readable without these fields.
19
+
20
+ - Keep a refused question answer in the terminal. A choice, note or typed answer that the Harness
21
+ would reject now stays in the dock with an inline reason, instead of closing the form and losing the
22
+ draft; the reason names the question and the field (selection, typed answer or note), and the answer
23
+ is checked against the server rule before it is sent. The terminal was previously reopening an empty
24
+ question after any rejection, so a second Continue skipped everything.
25
+
26
+ - Scroll a `/btw` answer taller than its block. PageUp/PageDown now reach the side-question dock
27
+ while it is open, and the mouse wheel over the block browses it too; before this the transcript
28
+ consumed those keys, so the block's `PgUp/PgDn/wheel browse` hint did nothing. When the answer fits, the
29
+ keys scroll the transcript as before.
30
+
31
+ - Drop the context-use reading from the terminal's composer status line, so it no longer ends the
32
+ token group with a figure such as `6.6%/?`. The line keeps the project and branch, account, model
33
+ and effort, and input/cache hit rate/output tokens; the share of the window stays on the `/context`
34
+ page. Both the OpenTUI status bar and the exported `tui/status` band lose the reading.
35
+
36
+ - Render the `/btw` side answer as Markdown instead of plain text. Headings, emphasis, lists,
37
+ quotes, links, tables and fenced code use the theme's markdown colours, and a streaming answer
38
+ re-renders in place. Terminal control sequences in model output are still removed.
39
+
40
+ - Add `/remote-control` (alias `/rc`): continue a terminal session from a phone or iPad, as Claude
41
+ Code's `/rc` does, without a cloud relay. The harness serves a small phone page on the computer's
42
+ Tailscale address, or its private Wi-Fi address, and the terminal shows a QR code for a one-device
43
+ pairing link. The person at the terminal allows each device; a paired phone then sends messages,
44
+ watches the reply stream, stops it, and answers approvals and questions through the same paths
45
+ the terminal uses. Every body is sealed with a key that reaches the phone only in the QR code's
46
+ fragment, keys live in memory, and remote control ends with the session. `xagent --remote-control`
47
+ turns it on at start; `/rc off` stops it. Terminal runs now also record streamed `message.delta`
48
+ events. New dependencies: `tweetnacl`, `uqr` (ADR-0056, page 15).
49
+
50
+ - Recover a plan run whose reply loses its plan block. An attended top-level plan run now makes one
51
+ hidden format-repair turn in the same run, asking the model to re-send its own plan in one complete
52
+ block; a failed repair leaves the run completed and the terminal shows a warning instead of a plan
53
+ choice. The plan-research children, commands, probes, improvers, reflections and other unattended
54
+ runs are unchanged (ADR-0055).
55
+
56
+ - A live terminal reply now reports a heartbeat every 30 seconds, and one that produces nothing but
57
+ heartbeats for 15 minutes is ended as `interrupted` with reason `stalled` instead of showing a run
58
+ that never settles. A running tool gets 30 minutes and an unanswered approval or question is never
59
+ cut short. Before this, a terminal reply reported no heartbeat at all, so the run sweep waited the
60
+ full 30-minute silence window and recorded `owner_gone` while the process was alive (ADR-0054).
61
+
62
+ - Stop refusing repeated work. A reply is no longer refused, or ended, for calling the same tool
63
+ with the same arguments three times, for a Bash check that keeps failing, or for editing one path
64
+ more than four times: those calls are ordinary work, and the reply budget is the single bound. The
65
+ 320-call/60-minute budget, its checkpoint handoff, slice continuation and the three-compaction
66
+ thrash rule are unchanged, and the `stuck` checkpoint reason stays readable in existing runs
67
+ (ADR-0053).
68
+
5
69
  - Make a skill named in a message required for that request. `$name` is a skill invocation at any
6
70
  word start, not only as the first token: `Launch.requiredSkills` carries it and the compiler
7
71
  renders a built-in dynamic `required-skills` section (order 52, 12,000 characters) from the pinned