@pi-unipi/unipi 3.0.0-alpha.30 → 3.0.0-alpha.32

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 (172) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +0 -0
  3. package/package.json +22 -21
  4. package/packages/app-bridge/README.md +17 -0
  5. package/packages/app-bridge/index.ts +14 -0
  6. package/packages/app-bridge/package.json +51 -0
  7. package/packages/app-bridge/src/bridge.ts +592 -0
  8. package/packages/app-bridge/src/dialogs.ts +161 -0
  9. package/packages/app-bridge/src/remote.ts +7 -0
  10. package/packages/app-bridge/src/snapshot.ts +160 -0
  11. package/packages/app-bridge/src/wire.ts +171 -0
  12. package/packages/ask-user/config.ts +0 -0
  13. package/packages/ask-user/handoff.ts +0 -0
  14. package/packages/ask-user/index.ts +2 -2
  15. package/packages/ask-user/package.json +2 -2
  16. package/packages/ask-user/skills/ask-user/SKILL.md +0 -0
  17. package/packages/ask-user/tools.ts +42 -4
  18. package/packages/ask-user/types.ts +0 -0
  19. package/packages/autocomplete/package.json +1 -1
  20. package/packages/autocomplete/src/index.ts +0 -0
  21. package/packages/autocomplete/src/provider.ts +0 -0
  22. package/packages/autocomplete/src/settings.ts +0 -0
  23. package/packages/autocomplete/src/sorting.ts +0 -0
  24. package/packages/background-tasks/package.json +2 -2
  25. package/packages/btw/package.json +2 -2
  26. package/packages/btw/skills/btw/SKILL.md +0 -0
  27. package/packages/compactor/index.ts +0 -0
  28. package/packages/compactor/package.json +3 -3
  29. package/packages/compactor/skills/compactor/SKILL.md +0 -0
  30. package/packages/compactor/src/compaction/brief.ts +0 -0
  31. package/packages/compactor/src/compaction/content.ts +0 -0
  32. package/packages/compactor/src/compaction/extract/commits.ts +0 -0
  33. package/packages/compactor/src/compaction/extract/files.ts +0 -0
  34. package/packages/compactor/src/compaction/filter-noise.ts +0 -0
  35. package/packages/compactor/src/compaction/hooks.ts +2 -2
  36. package/packages/compactor/src/compaction/normalize.ts +0 -0
  37. package/packages/compactor/src/compaction/sanitize.ts +0 -0
  38. package/packages/compactor/src/compaction/search-entries.ts +0 -0
  39. package/packages/compactor/src/display/diff-width-safety.ts +0 -0
  40. package/packages/compactor/src/index.ts +2 -2
  41. package/packages/compactor/src/session/recall-blocks.ts +0 -0
  42. package/packages/compactor/src/tools/context-budget.ts +0 -0
  43. package/packages/compactor/src/tools/register.ts +0 -0
  44. package/packages/compactor/src/tools/vcc-recall.ts +0 -0
  45. package/packages/core/README.md +12 -4
  46. package/packages/core/bus.ts +260 -0
  47. package/packages/core/events.ts +69 -108
  48. package/packages/core/global-types.ts +0 -0
  49. package/packages/core/index.ts +3 -5
  50. package/packages/core/kanboard-label.ts +31 -0
  51. package/packages/core/model-cache.ts +0 -0
  52. package/packages/core/package.json +1 -1
  53. package/packages/core/remote-dialogs.ts +51 -0
  54. package/packages/core/src/hints/index.ts +4 -0
  55. package/packages/core/src/hints/lines.ts +0 -12
  56. package/packages/core/utils.ts +9 -10
  57. package/packages/footer/index.ts +0 -0
  58. package/packages/footer/package.json +3 -3
  59. package/packages/footer/src/index.ts +24 -36
  60. package/packages/footer/src/registry/index.ts +2 -3
  61. package/packages/footer/src/segments/long-horizon.ts +13 -2
  62. package/packages/footer/types.ts +0 -0
  63. package/packages/fusion/package.json +4 -4
  64. package/packages/fusion/src/index.ts +4 -4
  65. package/packages/info-screen/index.ts +7 -8
  66. package/packages/info-screen/package.json +2 -2
  67. package/packages/input-shortcuts/package.json +2 -2
  68. package/packages/input-shortcuts/src/index.ts +2 -2
  69. package/packages/kanboard/index.ts +46 -12
  70. package/packages/kanboard/package.json +7 -7
  71. package/packages/kanboard/src/bus-hooks.ts +28 -0
  72. package/packages/long-horizon/index.ts +34 -22
  73. package/packages/long-horizon/package.json +2 -2
  74. package/packages/long-horizon/src/commands.ts +5 -5
  75. package/packages/long-horizon/src/engine/continuation.ts +14 -5
  76. package/packages/long-horizon/src/gate.ts +36 -6
  77. package/packages/long-horizon/src/lh-state.ts +38 -0
  78. package/packages/long-horizon/src/owner.ts +15 -18
  79. package/packages/long-horizon/src/runtime.ts +2 -2
  80. package/packages/long-horizon/src/tools/todo.ts +0 -5
  81. package/packages/mcp/package.json +2 -2
  82. package/packages/mcp/skills/mcp/SKILL.md +0 -0
  83. package/packages/mcp/src/bridge/registry.ts +12 -20
  84. package/packages/mcp/src/bridge/translator.ts +0 -0
  85. package/packages/mcp/src/index.ts +3 -7
  86. package/packages/mcp/src/tui/add-overlay.ts +0 -0
  87. package/packages/mcp/src/tui/settings-overlay.ts +0 -0
  88. package/packages/memory/index.ts +4 -4
  89. package/packages/memory/package.json +3 -3
  90. package/packages/memory/skills/memory/SKILL.md +0 -0
  91. package/packages/memory/tools.ts +3 -3
  92. package/packages/notify/ask-user-prompt-message.ts +0 -0
  93. package/packages/notify/commands.ts +0 -0
  94. package/packages/notify/events.ts +8 -10
  95. package/packages/notify/index.ts +2 -2
  96. package/packages/notify/ntfy-config.ts +0 -0
  97. package/packages/notify/package.json +2 -2
  98. package/packages/notify/platforms/focus-win.ts +0 -0
  99. package/packages/notify/platforms/focus.ts +0 -0
  100. package/packages/notify/platforms/gotify.ts +0 -0
  101. package/packages/notify/platforms/native.ts +0 -0
  102. package/packages/notify/platforms/node-notifier.d.ts +0 -0
  103. package/packages/notify/platforms/ntfy.ts +0 -0
  104. package/packages/notify/platforms/telegram.ts +0 -0
  105. package/packages/notify/settings.ts +16 -6
  106. package/packages/notify/skills/notify/SKILL.md +0 -0
  107. package/packages/notify/summarize.ts +0 -0
  108. package/packages/notify/tools.ts +0 -0
  109. package/packages/skill-registry/index.ts +3 -6
  110. package/packages/skill-registry/package.json +2 -2
  111. package/packages/subagents/package.json +3 -3
  112. package/packages/subagents/src/agents.ts +2 -2
  113. package/packages/subagents/src/index.ts +4 -4
  114. package/packages/subagents/src/model-resolver.ts +0 -0
  115. package/packages/unipi/bundled.js +1266 -413
  116. package/packages/unipi/index.ts +2 -0
  117. package/packages/updater/index.ts +0 -0
  118. package/packages/updater/package.json +2 -2
  119. package/packages/updater/skills/configure-updater/SKILL.md +0 -0
  120. package/packages/updater/src/cache.ts +0 -0
  121. package/packages/updater/src/changelog.ts +0 -0
  122. package/packages/updater/src/checker.ts +0 -0
  123. package/packages/updater/src/index.ts +7 -21
  124. package/packages/updater/src/installer.ts +0 -0
  125. package/packages/updater/src/markdown.ts +0 -0
  126. package/packages/updater/src/settings.ts +0 -0
  127. package/packages/updater/src/tui/changelog-overlay.ts +0 -0
  128. package/packages/updater/src/tui/readme-overlay.ts +0 -0
  129. package/packages/updater/src/tui/update-overlay.ts +0 -0
  130. package/packages/updater/src/version.ts +0 -0
  131. package/packages/updater/types.ts +0 -0
  132. package/packages/utility/package.json +2 -2
  133. package/packages/utility/src/diagnostics/engine.ts +0 -0
  134. package/packages/utility/src/index.ts +2 -2
  135. package/packages/utility/src/lifecycle/cleanup.ts +0 -0
  136. package/packages/utility/src/types.ts +0 -0
  137. package/packages/watchdog/package.json +3 -3
  138. package/packages/web-api/package.json +2 -2
  139. package/packages/web-api/skills/web/SKILL.md +0 -0
  140. package/packages/web-api/src/cache.ts +0 -0
  141. package/packages/web-api/src/commands.ts +0 -0
  142. package/packages/web-api/src/engine/constants.ts +0 -0
  143. package/packages/web-api/src/engine/dependencies.ts +0 -0
  144. package/packages/web-api/src/engine/dom.ts +0 -0
  145. package/packages/web-api/src/engine/extract.ts +0 -0
  146. package/packages/web-api/src/engine/format.ts +0 -0
  147. package/packages/web-api/src/engine/profiles.ts +0 -0
  148. package/packages/web-api/src/engine/types.ts +0 -0
  149. package/packages/web-api/src/index.ts +2 -2
  150. package/packages/web-api/src/providers/base.ts +0 -0
  151. package/packages/web-api/src/providers/duckduckgo.ts +0 -0
  152. package/packages/web-api/src/providers/firecrawl.ts +0 -0
  153. package/packages/web-api/src/providers/jina-reader.ts +0 -0
  154. package/packages/web-api/src/providers/jina-search.ts +0 -0
  155. package/packages/web-api/src/providers/perplexity.ts +0 -0
  156. package/packages/web-api/src/providers/registry.ts +0 -0
  157. package/packages/web-api/src/providers/serpapi.ts +0 -0
  158. package/packages/web-api/src/providers/tavily.ts +0 -0
  159. package/packages/web-api/src/settings.ts +0 -0
  160. package/packages/web-api/src/tools.ts +0 -0
  161. package/packages/web-api/src/tui/provider-selector.ts +0 -0
  162. package/packages/workflow/index.ts +2 -2
  163. package/packages/workflow/package.json +2 -2
  164. package/packages/workflow/src/permission/index.ts +7 -8
  165. package/packages/workflow/src/plan/index.ts +8 -7
  166. package/packages/workflow/src/status.ts +14 -0
  167. package/packages/core/fusion-status.ts +0 -49
  168. package/packages/core/kanboard-status.ts +0 -49
  169. package/packages/core/long-horizon-owner-status.ts +0 -46
  170. package/packages/core/long-horizon-status.ts +0 -33
  171. package/packages/core/plan-permission-status.ts +0 -34
  172. package/packages/footer/src/events.ts +0 -83
package/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [3.0.0-alpha.32] — 2026-10-07
10
+
11
+ ### Fixed
12
+ - `app-bridge`: long sessions no longer fail to open on the phone with "hello message too large". Run logs inside tool and custom-message details (sidekick event lists, diffs) are dropped from what the phone gets, and the history is sized in UTF-8 bytes with room left for the command and model lists. (UNI-113)
13
+
14
+ ## [3.0.0-alpha.31] — 2026-10-07
15
+
16
+ ### Added
17
+ - `app-bridge` (new module): **the UniPi phone app can chat with a pi running in herdr, live in both directions.** Each pi listens on `~/.unipi/bridge/<pid>.sock` (owner-only) and keeps `~/.unipi/bridge/<pid>.json` current (session file, cwd, herdr pane), so `unipi-host` can find the pi behind a herdr pane. The phone sees text, thinking, tool calls and unipi events as they stream, and what you send from the phone shows in the TUI as a normal message (it steers while pi works, or waits until it finishes). `/model`, `/thinking` and `/compact` work from the phone. TUI mode only; off in subagent children and with `UNIPI_APP_BRIDGE=0`. (UNI-113)
18
+ - Dialogs (`select`, `confirm`, `input`, `editor`) can be answered from the phone: the TUI dialog and the phone race, the first answer wins and the other side closes. (UNI-113)
19
+ - `ask_user`: answerable from the phone, including options that end the turn or start a new session; a phone answer closes the TUI panel. (UNI-113)
20
+
9
21
  ## [3.0.0-alpha.30] — 2026-10-05
10
22
 
11
23
  ### Changed
package/LICENSE CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/unipi",
3
- "version": "3.0.0-alpha.30",
3
+ "version": "3.0.0-alpha.32",
4
4
  "description": "All-in-one extension suite for Pi coding agent",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -83,26 +83,27 @@
83
83
  "typebox": "^1.1.38"
84
84
  },
85
85
  "dependencies": {
86
- "@pi-unipi/ask-user": "3.0.0-alpha.30",
87
- "@pi-unipi/background-tasks": "3.0.0-alpha.30",
88
- "@pi-unipi/btw": "3.0.0-alpha.30",
89
- "@pi-unipi/command-enchantment": "3.0.0-alpha.30",
90
- "@pi-unipi/compactor": "3.0.0-alpha.30",
91
- "@pi-unipi/core": "3.0.0-alpha.30",
92
- "@pi-unipi/footer": "3.0.0-alpha.30",
93
- "@pi-unipi/fusion": "3.0.0-alpha.30",
94
- "@pi-unipi/info-screen": "3.0.0-alpha.30",
95
- "@pi-unipi/input-shortcuts": "3.0.0-alpha.30",
96
- "@pi-unipi/kanboard": "3.0.0-alpha.30",
97
- "@pi-unipi/mcp": "3.0.0-alpha.30",
98
- "@pi-unipi/memory": "3.0.0-alpha.30",
99
- "@pi-unipi/notify": "3.0.0-alpha.30",
100
- "@pi-unipi/skill-registry": "3.0.0-alpha.30",
101
- "@pi-unipi/subagents": "3.0.0-alpha.30",
102
- "@pi-unipi/updater": "3.0.0-alpha.30",
103
- "@pi-unipi/utility": "3.0.0-alpha.30",
104
- "@pi-unipi/web-api": "3.0.0-alpha.30",
105
- "@pi-unipi/workflow": "3.0.0-alpha.30"
86
+ "@pi-unipi/app-bridge": "3.0.0-alpha.32",
87
+ "@pi-unipi/ask-user": "3.0.0-alpha.32",
88
+ "@pi-unipi/background-tasks": "3.0.0-alpha.32",
89
+ "@pi-unipi/btw": "3.0.0-alpha.32",
90
+ "@pi-unipi/command-enchantment": "3.0.0-alpha.32",
91
+ "@pi-unipi/compactor": "3.0.0-alpha.32",
92
+ "@pi-unipi/core": "3.0.0-alpha.32",
93
+ "@pi-unipi/footer": "3.0.0-alpha.32",
94
+ "@pi-unipi/fusion": "3.0.0-alpha.32",
95
+ "@pi-unipi/info-screen": "3.0.0-alpha.32",
96
+ "@pi-unipi/input-shortcuts": "3.0.0-alpha.32",
97
+ "@pi-unipi/kanboard": "3.0.0-alpha.32",
98
+ "@pi-unipi/mcp": "3.0.0-alpha.32",
99
+ "@pi-unipi/memory": "3.0.0-alpha.32",
100
+ "@pi-unipi/notify": "3.0.0-alpha.32",
101
+ "@pi-unipi/skill-registry": "3.0.0-alpha.32",
102
+ "@pi-unipi/subagents": "3.0.0-alpha.32",
103
+ "@pi-unipi/updater": "3.0.0-alpha.32",
104
+ "@pi-unipi/utility": "3.0.0-alpha.32",
105
+ "@pi-unipi/web-api": "3.0.0-alpha.32",
106
+ "@pi-unipi/workflow": "3.0.0-alpha.32"
106
107
  },
107
108
  "devDependencies": {
108
109
  "@earendil-works/pi-agent-core": "^0.87.1",
@@ -0,0 +1,17 @@
1
+ # @pi-unipi/app-bridge
2
+
3
+ Lets the UniPi phone app mirror a pi session that runs in a herdr pane, live,
4
+ and talk to it: what you type on the phone shows in the TUI as a normal
5
+ message, and everything pi streams in the TUI streams on the phone.
6
+
7
+ - TUI mode only. Each pi listens on `~/.unipi/bridge/<pid>.sock` (owner-only)
8
+ and writes `~/.unipi/bridge/<pid>.json` (session file, cwd, herdr pane), so
9
+ `unipi-host` can find the pi behind a herdr pane.
10
+ - Sending while pi works steers it (like Enter in the TUI); the app can also
11
+ queue a follow-up.
12
+ - Dialogs (`ctx.ui.select / confirm / input / editor`) and `ask_user` can be
13
+ answered from the phone; the first answer wins and the other side closes.
14
+ - `/model`, `/thinking` and `/compact` are mapped to bridge calls.
15
+ - Off switch: `UNIPI_APP_BRIDGE=0`. Subagent children never open a bridge.
16
+
17
+ Protocol: `unipi-app/docs/m5/PROTOCOL.md`.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @pi-unipi/app-bridge — live bridge between this pi session and the UniPi
3
+ * phone app (via unipi-host). See README.md.
4
+ */
5
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
6
+ import { createBridge } from "./src/bridge.js";
7
+
8
+ export default function appBridge(pi: ExtensionAPI): void {
9
+ createBridge(pi);
10
+ }
11
+
12
+ export { createBridge, bridgeDir, sweepDead, BRIDGE_VERSION } from "./src/bridge.js";
13
+ export { DialogHub, wrapUi } from "./src/dialogs.js";
14
+ export * from "./src/wire.js";
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@pi-unipi/app-bridge",
3
+ "version": "3.0.0-alpha.32",
4
+ "description": "Live bridge between a pi TUI session and the UniPi phone app — streaming chat, prompts, steering and dialogs from the phone",
5
+ "type": "module",
6
+ "main": "index.ts",
7
+ "license": "MIT",
8
+ "author": "Neuron Mr White",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/Neuron-Mr-White/unipi.git",
12
+ "directory": "packages/app-bridge"
13
+ },
14
+ "keywords": [
15
+ "pi-package",
16
+ "pi-extension",
17
+ "pi-coding-agent",
18
+ "unipi",
19
+ "mobile",
20
+ "bridge"
21
+ ],
22
+ "files": [
23
+ "index.ts",
24
+ "src/**/*.ts",
25
+ "README.md"
26
+ ],
27
+ "scripts": {
28
+ "test": "npx tsx --test tests/*.test.ts"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "dependencies": {
34
+ "@pi-unipi/core": "3.0.0-alpha.32"
35
+ },
36
+ "peerDependencies": {
37
+ "@earendil-works/pi-coding-agent": "^0.87.1"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^25.6.0",
41
+ "typescript": "^6.0.0"
42
+ },
43
+ "pi": {
44
+ "extensions": [
45
+ "./index.ts"
46
+ ],
47
+ "skills": [],
48
+ "prompts": [],
49
+ "themes": []
50
+ }
51
+ }