@promus/cli 0.24.17 → 0.24.19
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
|
@@ -1,18 +1,35 @@
|
|
|
1
|
-
# promus
|
|
1
|
+
# @promus/cli
|
|
2
2
|
|
|
3
|
-
CLI binary for **
|
|
3
|
+
CLI binary for **Promus**: sovereign AI agents on Arbitrum.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
promus
|
|
8
|
+
# npm
|
|
9
|
+
npm i -g @promus/cli
|
|
10
|
+
|
|
11
|
+
# yarn
|
|
12
|
+
yarn global add @promus/cli
|
|
13
|
+
|
|
14
|
+
# bun
|
|
15
|
+
bun add -g @promus/cli
|
|
10
16
|
```
|
|
11
17
|
|
|
12
|
-
Requires [
|
|
18
|
+
Requires [Node.js](https://nodejs.org) ≥ 18 or [Bun](https://bun.sh) ≥ 1.1.
|
|
19
|
+
|
|
20
|
+
## Quick start
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
promus init
|
|
24
|
+
```
|
|
13
25
|
|
|
14
|
-
|
|
26
|
+
The wizard mints an iNFT, encrypts your API key, and sets up the agent. Then:
|
|
15
27
|
|
|
16
|
-
|
|
28
|
+
```bash
|
|
29
|
+
promus # chat with your agent
|
|
30
|
+
promus status # health check
|
|
31
|
+
promus logs # follow gateway logs
|
|
32
|
+
promus topup # add ETH to agent wallet
|
|
33
|
+
```
|
|
17
34
|
|
|
18
35
|
See the [root README](https://github.com/JemIIahh/promus#readme) for architecture, concepts, and the full command reference.
|
package/package.json
CHANGED
package/src/commands/chat.tsx
CHANGED
|
@@ -138,7 +138,7 @@ export async function runChat(opts?: { cwd?: string; yolo?: boolean; resume?: st
|
|
|
138
138
|
let _socketExisted = existsSync(_gatewaySock)
|
|
139
139
|
if (_socketExisted) {
|
|
140
140
|
// v0.23.2: if the running daemon's version differs from the on-disk
|
|
141
|
-
// CLI binary's version, the operator just ran `
|
|
141
|
+
// CLI binary's version, the operator just ran `npm i -g @promus/cli@N`
|
|
142
142
|
// and expects the new behavior. Auto-restart the daemon so resume always
|
|
143
143
|
// resolves to the latest version.
|
|
144
144
|
const { ensureGatewayVersionMatchesCli } = await import('../util/gateway-version')
|
|
@@ -60,7 +60,7 @@ export async function runGatewayStart(opts: GatewayStartOpts): Promise<void> {
|
|
|
60
60
|
// v0.23.2: if the socket exists, check for version drift. If the running
|
|
61
61
|
// daemon's version differs from the on-disk CLI binary, auto-restart so
|
|
62
62
|
// operators don't have to remember `promus gateway restart` after every
|
|
63
|
-
// `
|
|
63
|
+
// `npm i -g @promus/cli@N`. If versions match, bail with the
|
|
64
64
|
// legacy "already running" error.
|
|
65
65
|
if (existsSync(socketPath)) {
|
|
66
66
|
const { createHash } = await import('node:crypto')
|
package/src/commands/init.ts
CHANGED
|
@@ -415,7 +415,7 @@ export async function runInit(opts?: { cwd?: string; resume?: boolean }): Promis
|
|
|
415
415
|
// re-derivation).
|
|
416
416
|
// - First sync after init can encrypt + anchor the PROFILE slot
|
|
417
417
|
// transparently — operator never needs to run `promus profile init`.
|
|
418
|
-
// requiredScopesForAgent now returns ['keystore', '
|
|
418
|
+
// requiredScopesForAgent now returns ['keystore', 'anima-profile-v1']
|
|
419
419
|
// because seedStarterMemoryFiles just wrote user/profile.md.
|
|
420
420
|
try {
|
|
421
421
|
const sess = buildOperatorSession({ agent: agent.address as Address, keys: operatorKeys })
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* and a running gateway daemon.
|
|
4
4
|
*
|
|
5
5
|
* Scenario this fixes:
|
|
6
|
-
* 1. Operator runs `
|
|
6
|
+
* 1. Operator runs `npm i -g @promus/cli@<new>` — global binary
|
|
7
7
|
* swaps on disk.
|
|
8
8
|
* 2. The previously-running gateway daemon was spawned from the OLD binary
|
|
9
9
|
* and pinned its node_modules at boot. `/healthz` reports the old version
|
|
@@ -4,19 +4,19 @@ import { checkTagExists, parseGitHubRepoUrl, resolveLatestRelease } from './gith
|
|
|
4
4
|
describe('parseGitHubRepoUrl', () => {
|
|
5
5
|
it('handles https URL with .git suffix', () => {
|
|
6
6
|
expect(parseGitHubRepoUrl('https://github.com/JemIIahh/promus.git')).toEqual({
|
|
7
|
-
owner: '
|
|
7
|
+
owner: 'JemIIahh',
|
|
8
8
|
repo: 'promus',
|
|
9
9
|
})
|
|
10
10
|
})
|
|
11
11
|
it('handles https URL without .git suffix', () => {
|
|
12
12
|
expect(parseGitHubRepoUrl('https://github.com/JemIIahh/promus')).toEqual({
|
|
13
|
-
owner: '
|
|
13
|
+
owner: 'JemIIahh',
|
|
14
14
|
repo: 'promus',
|
|
15
15
|
})
|
|
16
16
|
})
|
|
17
17
|
it('handles SSH URL form', () => {
|
|
18
18
|
expect(parseGitHubRepoUrl('git@github.com:JemIIahh/promus.git')).toEqual({
|
|
19
|
-
owner: '
|
|
19
|
+
owner: 'JemIIahh',
|
|
20
20
|
repo: 'promus',
|
|
21
21
|
})
|
|
22
22
|
})
|