@reppo/cli 0.1.2 → 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.
@@ -1,31 +1,28 @@
1
1
  /**
2
2
  * `reppo register-agent --name <s> --description <s>` — register a new
3
3
  * agent identity on the Reppo platform. Returns a persistent agent
4
- * id + accessToken + walletAddress on Base.
4
+ * id + apiKey (Bearer token).
5
5
  *
6
6
  * Endpoint: `POST https://reppo.ai/api/v1/agents/register` (no auth).
7
+ * Spec: https://docs.reppo.ai/api/agent/custom-agents
7
8
  *
8
- * The Reppo platform exposes two distinct agent auth surfaces:
9
- * - `reppo.ai/api/v1/agents/...` — uses the persistent `accessToken`
10
- * returned by this command (Bearer header). Used for pod-metadata
11
- * submissions and agent-scoped reads.
12
- * - `api.reppo.xyz/...` — uses an EIP-191 wallet-signed 24h session
13
- * token (separate `reppo auth` flow, lands in v0.2 of this CLI).
9
+ * Two distinct agent auth surfaces on the platform:
10
+ * - `reppo.ai/api/v1/agents/...` — uses the persistent `apiKey`
11
+ * returned by this command (Bearer header). Used for the
12
+ * agent-scoped endpoints (POST /agents/[id]/subnets, /pods).
13
+ * - `api.reppo.xyz/...` — Privy / wallet-auth flow (`reppo auth`).
14
14
  *
15
- * Each call to /agents/register creates a NEW identity with a NEW
16
- * walletAddress. Re-registering does NOT recover a previous agent —
17
- * pods minted by the prior agent stay attributed to that prior
18
- * id/wallet. Save the returned credentials.
15
+ * Each call to /agents/register creates a NEW identity. Re-registering
16
+ * does NOT recover a previous agent — save the returned credentials.
19
17
  *
20
- * The new walletAddress starts unfunded. Send ETH (gas) and REPPO
21
- * (publishing fee) to it before the agent attempts on-chain mints.
18
+ * No private key required for registration itself it's permissionless.
19
+ * The agent's on-chain wallet for minting is the user's own
20
+ * REPPO_PRIVATE_KEY; the platform no longer provisions one server-side.
21
+ * After an on-chain mint, the agent calls the agent-scoped /pods or
22
+ * /subnets endpoint with the resulting txHash to register metadata.
22
23
  *
23
24
  * Output schema:
24
- * { id, accessToken, walletAddress }
25
- *
26
- * No private key required — registration is permissionless. The CLI's
27
- * REPPO_PRIVATE_KEY is unused here; the agent's wallet is provisioned
28
- * server-side and its credentials live in the accessToken.
25
+ * { id, apiKey }
29
26
  */
30
27
  import { Option } from 'clipanion';
31
28
  import { BaseCommand } from './_base.js';
@@ -83,27 +80,26 @@ export class RegisterAgentCommand extends BaseCommand {
83
80
  throw cliError('PLATFORM_API_ERROR', `Registration failed: ${platformMsg}`, `If the error persists, file an issue with the request body (name + description) and the HTTP status (${response.status}).`);
84
81
  }
85
82
  const data = body?.data;
86
- if (!data?.id || !data.accessToken || !data.walletAddress) {
87
- throw cliError('PLATFORM_API_INVALID_RESPONSE', `Reppo platform returned 200 but the response is missing expected fields (id, accessToken, walletAddress).`, 'Capture the full HTTP response and file an issue.');
83
+ if (!data?.id || !data.apiKey) {
84
+ throw cliError('PLATFORM_API_INVALID_RESPONSE', `Reppo platform returned 200 but the response is missing expected fields (id, apiKey).`, 'Capture the full HTTP response and file an issue.');
88
85
  }
89
86
  const result = {
90
87
  id: data.id,
91
- accessToken: data.accessToken,
92
- walletAddress: data.walletAddress,
88
+ apiKey: data.apiKey,
93
89
  };
94
90
  emit(result, [
95
91
  `✓ Registered new agent "${trimmedName}"`,
96
92
  ``,
97
- ` id: ${data.id}`,
98
- ` walletAddress: ${data.walletAddress}`,
99
- ` accessToken: ${data.accessToken}`,
93
+ ` id: ${data.id}`,
94
+ ` apiKey: ${data.apiKey}`,
100
95
  ``,
101
96
  `⚠ SAVE THESE CREDENTIALS NOW.`,
102
- ` - The accessToken is the agent's persistent credential — don't share it.`,
103
- ` - Re-running register-agent creates a NEW agent identity with a NEW walletAddress.`,
104
- ` Pods previously minted by an old agent stay attributed to the old wallet.`,
105
- ` - Fund ${data.walletAddress} with ETH (for gas) and REPPO (for publishing fees)`,
106
- ` before the agent attempts on-chain mints.`,
97
+ ` - The apiKey is the agent's persistent Bearer token — don't share it.`,
98
+ ` - Re-running register-agent creates a NEW agent identity. Pods previously`,
99
+ ` registered by an old agent stay attributed to that old id.`,
100
+ ` - On-chain mints use your REPPO_PRIVATE_KEY wallet. After minting, the`,
101
+ ` platform expects an /agents/${data.id}/{pods,subnets} call with the`,
102
+ ` resulting txHash to register the metadata.`,
107
103
  ]);
108
104
  return 0;
109
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register-agent.js","sourceRoot":"","sources":["../../src/commands/register-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-agent.js","sourceRoot":"","sources":["../../src/commands/register-agent.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare class VoteCommand extends BaseCommand {
3
3
  static paths: string[][];
4
4
  static usage: import("clipanion").Usage;
5
5
  pod: string;
6
- subnet: string;
6
+ votes: string;
7
7
  like: boolean;
8
8
  dislike: boolean;
9
9
  idempotencyKey: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"vote.d.ts","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASzC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAgB,KAAK,aAAc;IAEnC,OAAgB,KAAK,4BAUlB;IAEH,GAAG,SAA2E;IAC9E,MAAM,SAA2E;IACjF,IAAI,UAAmC;IACvC,OAAO,UAAsC;IAC7C,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA2JjC"}
1
+ {"version":3,"file":"vote.d.ts","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASzC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAgB,KAAK,aAAc;IAEnC,OAAgB,KAAK,4BAUlB;IAEH,GAAG,SAA2E;IAC9E,KAAK,SAAyG;IAC9G,IAAI,UAAmC;IACvC,OAAO,UAAsC;IAC7C,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA2KjC"}
@@ -1,12 +1,19 @@
1
1
  /**
2
- * `reppo vote --pod <id> --subnet <id> --like|--dislike` — cast an
2
+ * `reppo vote --pod <id> --votes <n> --like|--dislike` — cast an
3
3
  * on-chain vote against a creative pod. Uses REPPO_VOTER_PRIVATE_KEY
4
4
  * if set (separates voter and publisher EOAs since publishers cannot
5
5
  * vote on their own pods), else falls back to REPPO_PRIVATE_KEY.
6
6
  *
7
+ * On PodManager V2 the second arg to `vote(podId, votes, upVote)` is
8
+ * the amount of voting power to spend, NOT a subnetId. The caller's
9
+ * subnet access is enforced inside the contract via the pod's parent
10
+ * subnet — the CLI no longer needs a subnetId here; if the voter
11
+ * lacks access the contract reverts with `VoterLacksSubnetAccess` and
12
+ * the decoder surfaces a structured hint.
13
+ *
7
14
  * Pre-flight checks (read-only) before sending:
8
- * 1. Voter has voting power (veREPPO > 0)
9
- * 2. Voter has subnet access
15
+ * 1. Pod is valid for the current epoch (PodManager.podValid)
16
+ * 2. Voter has at least `--votes` voting power (veREPPO)
10
17
  * Both produce structured errors with recovery hints.
11
18
  *
12
19
  * Idempotency two-phase write protocol:
@@ -18,25 +25,25 @@ import { Option } from 'clipanion';
18
25
  import { BaseCommand } from './_base.js';
19
26
  import { cliError, emit } from '../output/format.js';
20
27
  import { createClients, nextNonce } from '../chain/clients.js';
21
- import { podManager, subnetManager, veReppo } from '../chain/contracts.js';
28
+ import { podManager, veReppo } from '../chain/contracts.js';
22
29
  import { decodeRevert } from '../chain/errors.js';
23
30
  import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent } from '../state/idempotency.js';
24
31
  const COMMAND = 'vote';
25
32
  export class VoteCommand extends BaseCommand {
26
33
  static paths = [['vote']];
27
34
  static usage = BaseCommand.Usage({
28
- description: 'Cast a vote on a Reppo pod (testnet or mainnet).',
35
+ description: 'Cast a vote on a Reppo pod, spending voting power.',
29
36
  examples: [
30
- ['Like pod 34 in subnet 19',
31
- 'reppo vote --pod 34 --subnet 19 --like'],
37
+ ['Like pod 34 with 100 voting power',
38
+ 'reppo vote --pod 34 --votes 100 --like'],
32
39
  ['Dislike with idempotency key',
33
- 'reppo vote --pod 35 --subnet 19 --dislike --idempotency-key job-3858-B'],
40
+ 'reppo vote --pod 35 --votes 50 --dislike --idempotency-key job-3858-B'],
34
41
  ['Dry-run (simulate only)',
35
- 'reppo vote --pod 34 --subnet 19 --like --dry-run'],
42
+ 'reppo vote --pod 34 --votes 100 --like --dry-run'],
36
43
  ],
37
44
  });
38
45
  pod = Option.String('--pod', { required: true, description: 'Pod token ID' });
39
- subnet = Option.String('--subnet', { required: true, description: 'Subnet ID' });
46
+ votes = Option.String('--votes', { required: true, description: 'Voting power to spend (positive integer)' });
40
47
  like = Option.Boolean('--like', false);
41
48
  dislike = Option.Boolean('--dislike', false);
42
49
  idempotencyKey = Option.String('--idempotency-key');
@@ -52,13 +59,22 @@ export class VoteCommand extends BaseCommand {
52
59
  throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_VOTER_PRIVATE_KEY (preferred) or REPPO_PRIVATE_KEY in env.');
53
60
  }
54
61
  const podId = BigInt(this.pod);
55
- const subnetId = BigInt(this.subnet);
62
+ let votes;
63
+ try {
64
+ votes = BigInt(this.votes);
65
+ }
66
+ catch {
67
+ throw cliError('INVALID_VOTES', `--votes must be a positive integer; got "${this.votes}".`);
68
+ }
69
+ if (votes <= 0n) {
70
+ throw cliError('INVALID_VOTES', `--votes must be >= 1; got "${this.votes}".`);
71
+ }
56
72
  const likeBool = this.like;
57
73
  // Args fingerprint baked into the cache so re-using one key with
58
- // different (--pod, --subnet, --like) is rejected with
74
+ // different (--pod, --votes, --like) is rejected with
59
75
  // IDEMPOTENCY_ARGS_MISMATCH instead of silently returning the
60
76
  // wrong cached result.
61
- const args = { podId: podId.toString(), subnetId: subnetId.toString(), like: likeBool };
77
+ const args = { podId: podId.toString(), votes: votes.toString(), like: likeBool };
62
78
  // Dry-run NEVER consults or mutates the idempotency cache. A
63
79
  // simulation is read-only by definition; returning a cached real
64
80
  // tx hash with `simulated: true` would be a lie, and writing
@@ -82,26 +98,27 @@ export class VoteCommand extends BaseCommand {
82
98
  ...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
83
99
  });
84
100
  const pm = podManager(cfg.network);
85
- const sm = subnetManager(cfg.network);
86
101
  const vr = veReppo(cfg.network);
87
- // Pre-flight: voting power
88
- const power = (await clients.publicClient.readContract({
89
- address: vr.address, abi: vr.abi, functionName: 'votingPowerOf', args: [clients.account.address],
90
- }));
91
- if (power === 0n) {
92
- throw cliError('INSUFFICIENT_VOTING_POWER', 'Voter has zero voting power.', 'Run `reppo lock <amount> --duration <seconds>` first.');
102
+ // Pre-flight: pod must be valid for the current epoch. Cheaper
103
+ // to fail here than to send a tx that will revert with
104
+ // PodNotValidForEpoch.
105
+ const podOk = await clients.publicClient.readContract({
106
+ address: pm.address, abi: pm.abi, functionName: 'podValid', args: [podId],
107
+ });
108
+ if (!podOk) {
109
+ throw cliError('POD_NOT_VALID_FOR_EPOCH', `Pod ${podId} is not valid for the current voting epoch.`, 'Check `reppo query pod <id>` to verify validity; pod publishers may need to republish.');
93
110
  }
94
- // Pre-flight: subnet access
95
- const hasAccess = (await clients.publicClient.readContract({
96
- address: sm.address, abi: sm.abi, functionName: 'hasSubnetAccess', args: [subnetId, clients.account.address],
97
- }));
98
- if (!hasAccess) {
99
- throw cliError('VOTER_LACKS_SUBNET_ACCESS', `Voter lacks subnet ${subnetId} access.`, `Run \`reppo grant-access --subnet ${subnetId}\` first.`);
111
+ // Pre-flight: voting power must cover `--votes`.
112
+ const power = await clients.publicClient.readContract({
113
+ address: vr.address, abi: vr.abi, functionName: 'votingPowerOf', args: [clients.account.address],
114
+ });
115
+ if (power < votes) {
116
+ throw cliError('INSUFFICIENT_VOTING_POWER', `Voter has ${power} voting power but --votes is ${votes}.`, 'Lock more REPPO with `reppo lock <amount> --duration <seconds>` to increase voting power, or pass a smaller --votes.');
100
117
  }
101
118
  if (this.dryRun) {
102
119
  const sim = await clients.publicClient.simulateContract({
103
120
  address: pm.address, abi: pm.abi, functionName: 'vote',
104
- args: [podId, subnetId, likeBool], account: clients.account,
121
+ args: [podId, votes, likeBool], account: clients.account,
105
122
  }).catch((e) => {
106
123
  const decoded = decodeRevert(e);
107
124
  throw cliError(decoded.code, 'Simulation reverted', decoded.hint);
@@ -109,7 +126,7 @@ export class VoteCommand extends BaseCommand {
109
126
  emit({
110
127
  simulated: true,
111
128
  podId: podId.toString(),
112
- subnetId: subnetId.toString(),
129
+ votes: votes.toString(),
113
130
  like: likeBool,
114
131
  voterPower: power.toString(),
115
132
  gas: sim.request.gas?.toString() ?? null,
@@ -124,7 +141,7 @@ export class VoteCommand extends BaseCommand {
124
141
  const nonce = await nextNonce(clients.publicClient, clients.account.address);
125
142
  tx = await clients.walletClient.writeContract({
126
143
  address: pm.address, abi: pm.abi, functionName: 'vote',
127
- args: [podId, subnetId, likeBool],
144
+ args: [podId, votes, likeBool],
128
145
  chain: clients.walletClient.chain, account: clients.account, nonce,
129
146
  });
130
147
  }
@@ -149,7 +166,7 @@ export class VoteCommand extends BaseCommand {
149
166
  const result = {
150
167
  txHash: tx,
151
168
  podId: podId.toString(),
152
- subnetId: subnetId.toString(),
169
+ votes: votes.toString(),
153
170
  like: likeBool,
154
171
  voterPower: power.toString(),
155
172
  block: receipt.blockNumber.toString(),
@@ -160,7 +177,7 @@ export class VoteCommand extends BaseCommand {
160
177
  if (this.idempotencyKey)
161
178
  await markConfirmed(this.idempotencyKey, COMMAND, args, result, tx);
162
179
  emit(result, [
163
- `✓ Voted on pod ${podId} (${likeBool ? 'like' : 'dislike'})`,
180
+ `✓ Voted on pod ${podId} (${likeBool ? 'like' : 'dislike'}, ${votes} votes)`,
164
181
  ` tx: ${result.basescanUrl}`,
165
182
  ` block: ${receipt.blockNumber}`,
166
183
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"vote.js","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vote.js","sourceRoot":"","sources":["../../src/commands/vote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reppo/cli",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "description": "Command-line interface for Reppo — mint pods, vote, lock REPPO, manage datanets. Built for AI agents.",
5
5
  "license": "MIT",
6
6
  "author": "Reppo Labs",