beam-protocol-cli 0.5.2 → 0.6.1
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 +11 -7
- package/dist/commands/keys-list.d.ts +7 -0
- package/dist/commands/keys-list.d.ts.map +1 -0
- package/dist/commands/keys-list.js +33 -0
- package/dist/commands/keys-list.js.map +1 -0
- package/dist/commands/keys-revoke.d.ts +7 -0
- package/dist/commands/keys-revoke.d.ts.map +1 -0
- package/dist/commands/keys-revoke.js +36 -0
- package/dist/commands/keys-revoke.js.map +1 -0
- package/dist/commands/keys-rotate.d.ts +7 -0
- package/dist/commands/keys-rotate.d.ts.map +1 -0
- package/dist/commands/keys-rotate.js +48 -0
- package/dist/commands/keys-rotate.js.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# beam-protocol-cli
|
|
2
2
|
|
|
3
|
-
Command-line client for generating Beam identities, registering agents, searching the directory, and sending
|
|
3
|
+
Command-line client for generating Beam identities, registering agents, searching the directory, and sending verified partner handoffs.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -11,12 +11,16 @@ npm install -g beam-protocol-cli
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
beam init --agent
|
|
15
|
-
beam register --display-name "Acme
|
|
16
|
-
beam lookup
|
|
17
|
-
beam talk
|
|
14
|
+
beam init --agent procurement --org acme
|
|
15
|
+
beam register --display-name "Acme Procurement Desk" --capabilities "conversation.message,quote.request"
|
|
16
|
+
beam lookup partner-desk@northwind.beam.directory
|
|
17
|
+
beam talk partner-desk@northwind.beam.directory "Need 240 inverters for Mannheim by Friday."
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
## Compatibility
|
|
21
|
+
|
|
22
|
+
This CLI targets `beam/1`. New optional response fields may appear in JSON output, but breaking protocol changes require a new protocol family.
|
|
23
|
+
|
|
20
24
|
## Commands
|
|
21
25
|
|
|
22
26
|
### `beam init`
|
|
@@ -120,7 +124,7 @@ beam send <to> <intent> [params-json] [--timeout <seconds>] [--directory <url>]
|
|
|
120
124
|
Example:
|
|
121
125
|
|
|
122
126
|
```bash
|
|
123
|
-
beam send
|
|
127
|
+
beam send partner-desk@northwind.beam.directory quote.request '{"sku":"INV-240","quantity":240,"shipTo":"Mannheim, DE"}'
|
|
124
128
|
```
|
|
125
129
|
|
|
126
130
|
### `beam talk`
|
|
@@ -134,7 +138,7 @@ beam talk <to> <message> [--timeout <seconds>] [--language <code>] [--context <j
|
|
|
134
138
|
Example:
|
|
135
139
|
|
|
136
140
|
```bash
|
|
137
|
-
beam talk
|
|
141
|
+
beam talk partner-desk@northwind.beam.directory "Need 240 inverters for Mannheim by Friday."
|
|
138
142
|
```
|
|
139
143
|
|
|
140
144
|
## Files
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-list.d.ts","sourceRoot":"","sources":["../../src/commands/keys-list.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCrG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { BeamDirectory } from 'beam-protocol-sdk';
|
|
3
|
+
import { loadOptionalConfig, resolveDirectoryUrl } from '../config.js';
|
|
4
|
+
export async function cmdKeysList(beamId, options) {
|
|
5
|
+
const config = loadOptionalConfig();
|
|
6
|
+
const resolvedBeamId = beamId ?? config?.identity.beamId;
|
|
7
|
+
if (!resolvedBeamId) {
|
|
8
|
+
throw new Error('keys list requires <beamId> or a local .beam/identity.json');
|
|
9
|
+
}
|
|
10
|
+
const directory = new BeamDirectory({
|
|
11
|
+
baseUrl: resolveDirectoryUrl(options.directory),
|
|
12
|
+
});
|
|
13
|
+
const keyState = await directory.listKeys(resolvedBeamId);
|
|
14
|
+
if (options.json) {
|
|
15
|
+
console.log(JSON.stringify({ beamId: resolvedBeamId, keyState }, null, 2));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
console.log(chalk.bold(`Keys for ${resolvedBeamId}`));
|
|
19
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
20
|
+
if (!keyState.active && keyState.revoked.length === 0) {
|
|
21
|
+
console.log(chalk.yellow('No keys recorded'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (keyState.active) {
|
|
25
|
+
console.log(`${chalk.green('ACTIVE')} ${keyState.active.publicKey}`);
|
|
26
|
+
console.log(chalk.dim(` created ${new Date(keyState.active.createdAt).toLocaleString()}`));
|
|
27
|
+
}
|
|
28
|
+
for (const revoked of keyState.revoked) {
|
|
29
|
+
console.log(`${chalk.red('REVOKED')} ${revoked.publicKey}`);
|
|
30
|
+
console.log(chalk.dim(` created ${new Date(revoked.createdAt).toLocaleString()} revoked ${revoked.revokedAt ? new Date(revoked.revokedAt).toLocaleString() : 'unknown'}`));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=keys-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-list.js","sourceRoot":"","sources":["../../src/commands/keys-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAOtE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAA0B,EAAE,OAAwB;IACpF,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAA;IACnC,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAA;IACxD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;QAClC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC;KAChD,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,cAA8B,CAAC,CAAA;IAEzE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAA;QAC7C,OAAM;IACR,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;IACpG,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,aAAa,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACrL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-revoke.d.ts","sourceRoot":"","sources":["../../src/commands/keys-revoke.ts"],"names":[],"mappings":"AAKA,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { BeamClient } from 'beam-protocol-sdk';
|
|
4
|
+
import { loadConfig, resolveDirectoryUrl } from '../config.js';
|
|
5
|
+
export async function cmdKeysRevoke(publicKey, options) {
|
|
6
|
+
const config = loadConfig();
|
|
7
|
+
const directoryUrl = resolveDirectoryUrl(options.directory);
|
|
8
|
+
const trimmedKey = publicKey.trim();
|
|
9
|
+
if (!trimmedKey) {
|
|
10
|
+
throw new Error('publicKey is required');
|
|
11
|
+
}
|
|
12
|
+
const spinner = ora(`Revoking key for ${chalk.bold(config.identity.beamId)}...`).start();
|
|
13
|
+
try {
|
|
14
|
+
const client = new BeamClient({
|
|
15
|
+
identity: config.identity,
|
|
16
|
+
directoryUrl,
|
|
17
|
+
});
|
|
18
|
+
const result = await client.revokeKey(trimmedKey);
|
|
19
|
+
spinner.succeed('Key revoked');
|
|
20
|
+
if (options.json) {
|
|
21
|
+
console.log(JSON.stringify(result, null, 2));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
console.log('');
|
|
25
|
+
console.log(chalk.bold('🧾 Key Revoked'));
|
|
26
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
27
|
+
console.log(`${chalk.cyan('Beam ID:')} ${config.identity.beamId}`);
|
|
28
|
+
console.log(`${chalk.cyan('Revoked key:')} ${result.revokedKey?.publicKey ?? trimmedKey}`);
|
|
29
|
+
console.log(`${chalk.cyan('Active key:')} ${result.keyState.active?.publicKey ?? chalk.dim('none')}`);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
spinner.fail('Key revocation failed');
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=keys-revoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-revoke.js","sourceRoot":"","sources":["../../src/commands/keys-revoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAO9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,OAA0B;IAC/E,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;IAExF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE9B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC,CAAA;QAC1F,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACrC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-rotate.d.ts","sourceRoot":"","sources":["../../src/commands/keys-rotate.ts"],"names":[],"mappings":"AAKA,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD7E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { BeamClient, BeamIdentity } from 'beam-protocol-sdk';
|
|
4
|
+
import { loadConfig, resolveDirectoryUrl, saveConfig } from '../config.js';
|
|
5
|
+
export async function cmdKeysRotate(options) {
|
|
6
|
+
const config = loadConfig();
|
|
7
|
+
const directoryUrl = resolveDirectoryUrl(options.directory);
|
|
8
|
+
const parsed = BeamIdentity.parseBeamId(config.identity.beamId);
|
|
9
|
+
if (!parsed) {
|
|
10
|
+
throw new Error('Invalid Beam ID in local config');
|
|
11
|
+
}
|
|
12
|
+
const replacementIdentity = BeamIdentity.generate({
|
|
13
|
+
agentName: parsed.agent,
|
|
14
|
+
...(parsed.org ? { orgName: parsed.org } : {}),
|
|
15
|
+
});
|
|
16
|
+
const spinner = ora(`Rotating signing key for ${chalk.bold(config.identity.beamId)}...`).start();
|
|
17
|
+
try {
|
|
18
|
+
const client = new BeamClient({
|
|
19
|
+
identity: config.identity,
|
|
20
|
+
directoryUrl,
|
|
21
|
+
});
|
|
22
|
+
const result = await client.rotateKeys(replacementIdentity.export());
|
|
23
|
+
saveConfig({
|
|
24
|
+
...config,
|
|
25
|
+
identity: replacementIdentity.export(),
|
|
26
|
+
directoryUrl,
|
|
27
|
+
});
|
|
28
|
+
spinner.succeed('Key rotated');
|
|
29
|
+
if (options.json) {
|
|
30
|
+
console.log(JSON.stringify(result, null, 2));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
console.log('');
|
|
34
|
+
console.log(chalk.bold('🔐 Key Rotation Complete'));
|
|
35
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
36
|
+
console.log(`${chalk.cyan('Beam ID:')} ${config.identity.beamId}`);
|
|
37
|
+
console.log(`${chalk.cyan('New active key:')} ${replacementIdentity.publicKeyBase64}`);
|
|
38
|
+
if (result.previousKey) {
|
|
39
|
+
console.log(`${chalk.cyan('Revoked key:')} ${result.previousKey}`);
|
|
40
|
+
}
|
|
41
|
+
console.log(chalk.dim('The local .beam/identity.json has been updated to the new keypair.'));
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
spinner.fail('Key rotation failed');
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=keys-rotate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys-rotate.js","sourceRoot":"","sources":["../../src/commands/keys-rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAO1E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA0B;IAC5D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC,KAAK;QACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;IAEhG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY;SACb,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAA;QAEpE,UAAU,CAAC;YACT,GAAG,MAAM;YACT,QAAQ,EAAE,mBAAmB,CAAC,MAAM,EAAE;YACtC,YAAY;SACb,CAAC,CAAA;QAEF,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE9B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACzE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,mBAAmB,CAAC,eAAe,EAAE,CAAC,CAAA;QACtF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC,CAAA;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACnC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,9 @@ import { cmdStats } from './commands/stats.js';
|
|
|
15
15
|
import { cmdDelegate } from './commands/delegate.js';
|
|
16
16
|
import { cmdReport } from './commands/report.js';
|
|
17
17
|
import { cmdTalk } from './commands/talk.js';
|
|
18
|
+
import { cmdKeysList } from './commands/keys-list.js';
|
|
19
|
+
import { cmdKeysRotate } from './commands/keys-rotate.js';
|
|
20
|
+
import { cmdKeysRevoke } from './commands/keys-revoke.js';
|
|
18
21
|
const require = createRequire(import.meta.url);
|
|
19
22
|
const { version } = require('../package.json');
|
|
20
23
|
const program = new Command();
|
|
@@ -160,6 +163,31 @@ program
|
|
|
160
163
|
.action(async (to, message, opts) => {
|
|
161
164
|
await cmdTalk(to, message, opts);
|
|
162
165
|
});
|
|
166
|
+
const keys = program.command('keys').description('Signing key lifecycle commands');
|
|
167
|
+
keys
|
|
168
|
+
.command('list [beamId]')
|
|
169
|
+
.description('List active and revoked signing keys for an agent')
|
|
170
|
+
.option('-d, --directory <url>', 'Override directory URL')
|
|
171
|
+
.option('--json', 'Output raw JSON')
|
|
172
|
+
.action(async (beamId, opts) => {
|
|
173
|
+
await cmdKeysList(beamId, opts);
|
|
174
|
+
});
|
|
175
|
+
keys
|
|
176
|
+
.command('rotate')
|
|
177
|
+
.description('Rotate the local agent signing key and update .beam/identity.json')
|
|
178
|
+
.option('-d, --directory <url>', 'Override directory URL')
|
|
179
|
+
.option('--json', 'Output raw JSON')
|
|
180
|
+
.action(async (opts) => {
|
|
181
|
+
await cmdKeysRotate(opts);
|
|
182
|
+
});
|
|
183
|
+
keys
|
|
184
|
+
.command('revoke <publicKey>')
|
|
185
|
+
.description('Revoke a previously rotated-out signing key')
|
|
186
|
+
.option('-d, --directory <url>', 'Override directory URL')
|
|
187
|
+
.option('--json', 'Output raw JSON')
|
|
188
|
+
.action(async (publicKey, opts) => {
|
|
189
|
+
await cmdKeysRevoke(publicKey, opts);
|
|
190
|
+
});
|
|
163
191
|
program.configureOutput({
|
|
164
192
|
outputError: (str, write) => write(chalk.red(str))
|
|
165
193
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beam-protocol-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Beam Protocol CLI
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Beam Protocol CLI for verified B2B handoffs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"beam": "./dist/index.js"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"start": "node dist/index.js"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"beam-protocol-sdk": "^0.
|
|
18
|
+
"beam-protocol-sdk": "^0.6.1",
|
|
19
19
|
"chalk": "^5.3.0",
|
|
20
20
|
"commander": "^12.0.0",
|
|
21
21
|
"inquirer": "^9.2.15",
|