martty 0.2.40 → 0.3.0

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 CHANGED
@@ -11,7 +11,7 @@
11
11
  ---
12
12
 
13
13
  Native binaries are packaged for macOS arm64, macOS x64, Linux x64, and Windows
14
- x64. Requires Node.js 18+.
14
+ x64. Requires Node.js 22.19+.
15
15
 
16
16
  > **Rename note:** the project and recommended npm package have moved from
17
17
  > DeepSeek Harness TUI / `martty` to **Martty** / `martty`.
@@ -19,6 +19,19 @@ import { downloadFile } from './download.js'
19
19
 
20
20
  export const ACP_REGISTRY_URL = 'https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json'
21
21
 
22
+ const OPENMA_PI_ACP = '@openma/pi-acp@0.1.3'
23
+
24
+ function preferMarttyPiAcp(records) {
25
+ return records.map((record) => record.id === 'pi-acp' ? {
26
+ ...record,
27
+ label: 'Pi (OpenMA)',
28
+ version: '0.1.3',
29
+ distributions: [{
30
+ type: 'npx', command: 'npx', args: [OPENMA_PI_ACP], env: {},
31
+ }],
32
+ } : record)
33
+ }
34
+
22
35
  function registryCachePath(options) {
23
36
  return typeof options.settingsPath === 'string'
24
37
  ? path.join(path.dirname(options.settingsPath), 'cache', 'acp-registry.json') : undefined
@@ -32,11 +45,11 @@ export function readAcpRegistrySnapshot(options = {}) {
32
45
  if (statSync(cachePath).size > 16 * 1024 * 1024) throw new Error('oversized cache')
33
46
  const cached = JSON.parse(readFileSync(cachePath, 'utf8'))
34
47
  if (cached.source === (options.registryUrl ?? ACP_REGISTRY_URL) && Array.isArray(cached.catalog?.agents)) {
35
- return normalizeAcpRegistry(cached.catalog, options)
48
+ return preferMarttyPiAcp(normalizeAcpRegistry(cached.catalog, options))
36
49
  }
37
50
  } catch { /* Missing/corrupt cache cannot block the bundled catalog. */ }
38
51
  }
39
- return normalizeAcpRegistry(JSON.parse(readFileSync(new URL('./acp-registry.snapshot.json', import.meta.url), 'utf8')), options)
52
+ return preferMarttyPiAcp(normalizeAcpRegistry(JSON.parse(readFileSync(new URL('./acp-registry.snapshot.json', import.meta.url), 'utf8')), options))
40
53
  }
41
54
 
42
55
  function cacheRegistry(value, options) {
@@ -240,7 +253,7 @@ export async function fetchAcpRegistry(options = {}) {
240
253
  throw new Error('ACP Registry has no distributions for this platform')
241
254
  }
242
255
  cacheRegistry(value, options)
243
- return records
256
+ return preferMarttyPiAcp(records)
244
257
  } catch (error) {
245
258
  if (timeout.signal.aborted) throw timeout.signal.reason
246
259
  if (error instanceof Error && error.message.startsWith('ACP Registry')) throw error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "martty",
3
- "version": "0.2.40",
3
+ "version": "0.3.0",
4
4
  "description": "Terminal-native ACP client UI; Cordis client tree, any ACP agent",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -86,7 +86,7 @@
86
86
  "@deepseek-ai/dsh": "0.1.7-rc.2"
87
87
  },
88
88
  "engines": {
89
- "node": ">=18"
89
+ "node": ">=22.19.0"
90
90
  },
91
91
  "keywords": [
92
92
  "deepseek",
Binary file
Binary file
Binary file
Binary file
Binary file