martty 0.2.13 → 0.2.14
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/README.md +33 -1
- package/bin/dsh-tui.js +3 -1
- package/lib/native-cli.js +4 -0
- package/package.json +4 -3
- package/vendor/darwin-arm64/dsh-tui +0 -0
- package/vendor/darwin-x64/dsh-tui +0 -0
- package/vendor/linux-arm64/dsh-tui +0 -0
- package/vendor/linux-x64/dsh-tui +0 -0
- package/vendor/win32-x64/dsh-tui.exe +0 -0
package/README.md
CHANGED
|
@@ -53,6 +53,37 @@ retain both copies, but the TUI bundle replaces that surface's rows and mounts
|
|
|
53
53
|
only the plugin resolved from TUI's own dependency graph. The supported profile
|
|
54
54
|
shape never runs two ACP surfaces for one TUI.
|
|
55
55
|
|
|
56
|
+
Foreign agent plugins use the same Host composition:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
dsh plugin --profile tui add @openma/dsh-agents-plugins-bridge@latest
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The [Agent Plugins Bridge](https://github.com/openma-ai/dsh-agents-plugins-bridge)
|
|
63
|
+
projects imported commands and skills into TUI through ACP and keeps hooks,
|
|
64
|
+
MCP, agents, monitors, and Pi extensions on the Host. Browser-only management,
|
|
65
|
+
themes, and MCP Apps HTML rendering remain on the Web surface.
|
|
66
|
+
|
|
67
|
+
## Headless owner
|
|
68
|
+
|
|
69
|
+
`martty owner` keeps one real ACP Session and its Host plugin lifecycles alive
|
|
70
|
+
without starting the Node compositor or Rust TUI. Lifecycle commands are
|
|
71
|
+
repeatable, must be advertised by the Session, and run in order:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
martty owner \
|
|
75
|
+
--agent dsh \
|
|
76
|
+
--agent-arg --profile \
|
|
77
|
+
--agent-arg telegram-owner \
|
|
78
|
+
--startup-command /telegram-connect \
|
|
79
|
+
--shutdown-command /telegram-disconnect
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The client negotiates explicit `rpc` interaction mode. It does not auto-answer
|
|
83
|
+
permissions, authentication, or extension forms; perform one-time interactive
|
|
84
|
+
setup first and stop any existing owner of the same extension resource. Keep
|
|
85
|
+
the process alive with a process supervisor for continuous operation.
|
|
86
|
+
|
|
56
87
|
The package carries ACP as a runtime dependency and exports its Creator Host
|
|
57
88
|
overlay internally. The profile bundle mounts both on the Host Base tree;
|
|
58
89
|
neither enters the Client tree. Creator adds TUI plugin guidance to the
|
|
@@ -69,7 +100,8 @@ dsh-tui --demo
|
|
|
69
100
|
dsh-tui --demo-skin
|
|
70
101
|
```
|
|
71
102
|
|
|
72
|
-
`dsh-tui` is the
|
|
103
|
+
`dsh-tui` is the interactive command. `martty` is the product alias for the
|
|
104
|
+
same native program; `dsb` is a compatibility alias.
|
|
73
105
|
|
|
74
106
|
## Highlights
|
|
75
107
|
|
package/bin/dsh-tui.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from 'node:path'
|
|
|
5
5
|
import { spawnSync } from 'node:child_process'
|
|
6
6
|
import { fileURLToPath } from 'node:url'
|
|
7
7
|
import { bootClient, parseClientArgv, painterArgs } from '../lib/boot.js'
|
|
8
|
+
import { runsNativeOwner } from '../lib/native-cli.js'
|
|
8
9
|
|
|
9
10
|
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
|
10
11
|
const platformKey = process.platform + '-' + process.arch
|
|
@@ -21,6 +22,7 @@ const wantDemoSkin = argv.includes('--demo-skin')
|
|
|
21
22
|
const wantDemo = argv.includes('--demo')
|
|
22
23
|
const wantHelp = argv.includes('-h') || argv.includes('--help')
|
|
23
24
|
const wantVersion = argv.includes('-V') || argv.includes('--version')
|
|
25
|
+
const wantOwner = runsNativeOwner(argv)
|
|
24
26
|
|
|
25
27
|
if (!fs.existsSync(binaryPath)) {
|
|
26
28
|
let available = []
|
|
@@ -49,7 +51,7 @@ function exitFromSpawn(result) {
|
|
|
49
51
|
)
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
if (wantHelp || wantVersion || wantDemo) {
|
|
54
|
+
if (wantHelp || wantVersion || wantDemo || wantOwner) {
|
|
53
55
|
exitFromSpawn(spawnSync(binaryPath, argv, { stdio: 'inherit' }))
|
|
54
56
|
}
|
|
55
57
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "martty",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.14",
|
|
4
4
|
"description": "Terminal-native ACP client UI; Cordis client tree, any ACP agent",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"main": "lib/index.js",
|
|
16
16
|
"scripts": {
|
|
17
17
|
"pretest": "node --test ../scripts/workflow-release.test.mjs ../scripts/package-alias.test.mjs",
|
|
18
|
-
"test": "node --test ../scripts/package-native.test.mjs ../scripts/check-release-tag.test.mjs ../scripts/check-static-elf.test.mjs ../scripts/smoke-old-linux.test.mjs ../scripts/cargo-guard.test.mjs ../scripts/build-npm.test.mjs ../scripts/client-profile.test.mjs ../scripts/plugin-runner.test.mjs ../scripts/profile-link-resolution.test.mjs ../scripts/release.test.mjs ../scripts/jsonrpc-line-transport.test.mjs ../scripts/tui-theme.test.mjs ../scripts/tui-slots.test.mjs ../scripts/tui-commands.test.mjs ../scripts/tui-overlay.test.mjs ../scripts/mux.test.mjs ../scripts/acp-client.test.mjs ../scripts/acp-client-events.test.mjs ../scripts/acp-session-config.test.mjs ../scripts/acp-session-plan.test.mjs ../scripts/acp-session-stats.test.mjs ../scripts/plan-view.test.mjs ../scripts/stats-view.test.mjs ../scripts/runner.test.mjs ../scripts/inspect.test.mjs ../scripts/creator-overlay.test.mjs ../scripts/real-agent-e2e.test.mjs"
|
|
18
|
+
"test": "node --test ../scripts/owner-cli.test.mjs ../scripts/package-native.test.mjs ../scripts/check-release-tag.test.mjs ../scripts/check-static-elf.test.mjs ../scripts/smoke-old-linux.test.mjs ../scripts/cargo-guard.test.mjs ../scripts/build-npm.test.mjs ../scripts/client-profile.test.mjs ../scripts/plugin-runner.test.mjs ../scripts/profile-link-resolution.test.mjs ../scripts/release.test.mjs ../scripts/jsonrpc-line-transport.test.mjs ../scripts/tui-theme.test.mjs ../scripts/tui-slots.test.mjs ../scripts/tui-commands.test.mjs ../scripts/tui-overlay.test.mjs ../scripts/mux.test.mjs ../scripts/acp-client.test.mjs ../scripts/acp-client-events.test.mjs ../scripts/acp-session-config.test.mjs ../scripts/acp-session-plan.test.mjs ../scripts/acp-session-stats.test.mjs ../scripts/plan-view.test.mjs ../scripts/stats-view.test.mjs ../scripts/runner.test.mjs ../scripts/inspect.test.mjs ../scripts/creator-overlay.test.mjs ../scripts/real-agent-e2e.test.mjs"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
},
|
|
46
46
|
"bin": {
|
|
47
|
+
"martty": "bin/dsh-tui.js",
|
|
47
48
|
"dsh-tui": "bin/dsh-tui.js",
|
|
48
49
|
"dsb": "bin/dsh-tui.js"
|
|
49
50
|
},
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
},
|
|
65
66
|
"dependencies": {
|
|
66
67
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
67
|
-
"@openma/deepseek-harness-acp": "0.4.
|
|
68
|
+
"@openma/deepseek-harness-acp": "0.4.15"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
71
|
"@deepseek-ai/dsh": "0.1.0-rc.6"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/vendor/linux-x64/dsh-tui
CHANGED
|
Binary file
|
|
Binary file
|