@reppo/cli 0.3.0 → 0.5.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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Command-line interface for [Reppo](https://reppo.ai) — mint pods, vote, lock REPPO, manage datanets. Built for **AI agents** as the primary user, but humans can use it too.
4
4
 
5
- > **Status:** v0.3.0 — fully wired against PodManager V2 on mainnet. Shipped: `auth`, `query balance`, `query datanet`, `query emissions-due`, `query pod`, `query voting-power`, `list datanets`, `list pods`, `claim-emissions`, `extend-lock`, `grant-access`, `lock`, `mint-pod`, `register-agent`, `unlock`, `vote`. Remaining 2 commands (`create-datanet`, `swap`) are scaffolded but not yet wired.
5
+ > **Status:** v0.4.0 — fully wired against PodManager V2 on mainnet. Shipped: `approve`, `auth`, `query balance`, `query datanet`, `query emissions-due`, `query pod`, `query voting-power`, `list datanets`, `list pods` (incl. `--all`), `claim-emissions`, `extend-lock`, `grant-access`, `lock`, `mint-pod`, `register-agent`, `unlock`, `vote`. Remaining 2 commands (`create-datanet`, `swap`) are scaffolded but not yet wired.
6
6
 
7
7
  ## Install
8
8
 
@@ -51,9 +51,11 @@ Errors **always** emit JSON on stderr regardless of mode, with a stable `code` f
51
51
 
52
52
  - `reppo list datanets [--status ACTIVE|ALL] [--token-symbol <sym>] [--limit <n>]` — list all datanets on the platform (public endpoint, no auth required)
53
53
  - `reppo list pods [--datanet <id>] [--include-emissions] [--limit <n>]` — list pods owned by the configured wallet, optionally scoped to a single datanet (uses platform API)
54
+ - `reppo list pods --all [--datanet <id>] [--limit <n>]` — list pods published by *any* wallet, so a voter can discover pods to vote on (public endpoint, no auth required); each row's `podId` feeds straight into `reppo vote --pod <podId>`
54
55
 
55
56
  ### Write
56
57
 
58
+ - `reppo approve --spender <pod-manager|subnet-manager|ve-reppo|0x…> [--amount <units|max>] [--token reppo|usdc]` — set an ERC20 allowance so subsequent writes (lock, grant-access, mint-pod) don't fail with INSUFFICIENT_ALLOWANCE. Defaults to unlimited (`max`); reads the current allowance first and emits `{status:'no-op'}` if it already covers the request.
57
59
  - `reppo vote --pod <id> --votes <n> --like|--dislike` — cast a vote on a pod, spending `<n>` voting power
58
60
  - `reppo mint-pod --datanet <id> [--token reppo|primary] [--to <addr>]` — mint a pod into a datanet
59
61
  - `reppo lock <amount> --duration <seconds>` — lock REPPO into veREPPO for voting power
package/dist/bin.js CHANGED
@@ -4,6 +4,7 @@
4
4
  * via clipanion's runExit.
5
5
  */
6
6
  import { Cli, Builtins } from 'clipanion';
7
+ import { ApproveCommand } from './commands/approve.js';
7
8
  import { AuthCommand } from './commands/auth.js';
8
9
  import { ClaimEmissionsCommand } from './commands/claim-emissions.js';
9
10
  import { ExtendLockCommand } from './commands/extend-lock.js';
@@ -23,11 +24,12 @@ import { VoteCommand } from './commands/vote.js';
23
24
  const cli = new Cli({
24
25
  binaryLabel: 'Reppo CLI',
25
26
  binaryName: 'reppo',
26
- binaryVersion: '0.3.0',
27
+ binaryVersion: '0.5.0',
27
28
  enableCapture: false,
28
29
  });
29
30
  cli.register(Builtins.HelpCommand);
30
31
  cli.register(Builtins.VersionCommand);
32
+ cli.register(ApproveCommand);
31
33
  cli.register(AuthCommand);
32
34
  cli.register(ClaimEmissionsCommand);
33
35
  cli.register(ExtendLockCommand);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from './_base.js';
2
+ export declare class ApproveCommand extends BaseCommand {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ spender: string;
6
+ amount: string;
7
+ token: string;
8
+ idempotencyKey: string | undefined;
9
+ dryRun: boolean;
10
+ execute(): Promise<number>;
11
+ }
12
+ //# sourceMappingURL=approve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2CzC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAgB,KAAK,aAAiB;IAEtC,OAAgB,KAAK,4BAclB;IAEH,OAAO,SAAuH;IAC9H,MAAM,SAAwH;IAC9H,KAAK,SAAiF;IACtF,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAiLjC"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * `reppo approve --spender <alias|0x...> [--amount <units|max>] [--token reppo|usdc]`
3
+ * — set an ERC20 allowance so subsequent write commands (lock, grant-access,
4
+ * mint-pod) don't fail with INSUFFICIENT_ALLOWANCE.
5
+ *
6
+ * Most agent flows want unlimited approval once, so `--amount` defaults to
7
+ * `max` (MaxUint256). Pass a numeric value (in human REPPO/USDC units) for a
8
+ * bounded approval.
9
+ *
10
+ * Spender aliases resolve per network:
11
+ * - pod-manager → PodManager (mintPodWithREPPO, mintPodWithPrimaryToken)
12
+ * - subnet-manager → SubnetManager (grantAccess REPPO fee — pulled here)
13
+ * - ve-reppo → veREPPO (lock, extendLockup)
14
+ * - 0x… → raw address (validated with viem isAddress)
15
+ *
16
+ * Pre-flight: reads the current allowance and SHORT-CIRCUITS if it's already
17
+ * ≥ the requested amount, emitting `{ status: 'no-op' }` with no tx. This
18
+ * matches the idempotent re-runnability that agents expect.
19
+ *
20
+ * Two-phase write protocol identical to vote.ts; args fingerprint
21
+ * (token, spender, amount) prevents same-key reuse with different intent.
22
+ */
23
+ import { Option } from 'clipanion';
24
+ import { isAddress, parseUnits, formatUnits, maxUint256 } from 'viem';
25
+ import { BaseCommand } from './_base.js';
26
+ import { cliError, emit } from '../output/format.js';
27
+ import { createClients, nextNonce } from '../chain/clients.js';
28
+ import { podManager, subnetManager, veReppo, reppoToken, usdcToken, } from '../chain/contracts.js';
29
+ import { decodeRevert } from '../chain/errors.js';
30
+ import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent, } from '../state/idempotency.js';
31
+ const COMMAND = 'approve';
32
+ const SPENDER_ALIASES = new Set(['pod-manager', 'subnet-manager', 've-reppo']);
33
+ const TOKEN_NAMES = new Set(['reppo', 'usdc']);
34
+ function resolveSpender(spender, network) {
35
+ if (SPENDER_ALIASES.has(spender)) {
36
+ switch (spender) {
37
+ case 'pod-manager': return podManager(network).address;
38
+ case 'subnet-manager': return subnetManager(network).address;
39
+ case 've-reppo': return veReppo(network).address;
40
+ }
41
+ }
42
+ if (isAddress(spender))
43
+ return spender;
44
+ throw cliError('INVALID_SPENDER', `--spender must be one of pod-manager|subnet-manager|ve-reppo or a 0x-prefixed address; got "${spender}".`);
45
+ }
46
+ export class ApproveCommand extends BaseCommand {
47
+ static paths = [['approve']];
48
+ static usage = BaseCommand.Usage({
49
+ description: 'Approve a Reppo contract to spend your REPPO (or USDC) tokens.',
50
+ examples: [
51
+ ['Unlimited REPPO approval for veREPPO (default amount=max)',
52
+ 'reppo approve --spender ve-reppo'],
53
+ ['Bounded approval (100 REPPO) for SubnetManager',
54
+ 'reppo approve --spender subnet-manager --amount 100'],
55
+ ['USDC approval for PodManager (mintPodWithPrimaryToken)',
56
+ 'reppo approve --spender pod-manager --token usdc --amount 50'],
57
+ ['Raw spender address + idempotency key',
58
+ 'reppo approve --spender 0xabc...def --amount max --idempotency-key approve-veReppo-once'],
59
+ ['Dry-run',
60
+ 'reppo approve --spender ve-reppo --dry-run'],
61
+ ],
62
+ });
63
+ spender = Option.String('--spender', { required: true, description: 'pod-manager | subnet-manager | ve-reppo | 0x-address' });
64
+ amount = Option.String('--amount', 'max', { description: 'Token amount in human units, or "max" for MaxUint256 (default).' });
65
+ token = Option.String('--token', 'reppo', { description: 'reppo (default) or usdc' });
66
+ idempotencyKey = Option.String('--idempotency-key');
67
+ dryRun = Option.Boolean('--dry-run', false);
68
+ async execute() {
69
+ try {
70
+ // Validate token + spender BEFORE loadConfig (cheapest path).
71
+ if (!TOKEN_NAMES.has(this.token)) {
72
+ throw cliError('INVALID_TOKEN', `--token must be reppo or usdc; got "${this.token}".`);
73
+ }
74
+ const tokenName = this.token;
75
+ const decimals = tokenName === 'reppo' ? 18 : 6;
76
+ const cfg = this.loadConfig();
77
+ const pk = cfg.privateKey;
78
+ if (!pk) {
79
+ throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_PRIVATE_KEY in env.');
80
+ }
81
+ const spenderAddr = resolveSpender(this.spender, cfg.network);
82
+ let amount;
83
+ if (this.amount === 'max') {
84
+ amount = maxUint256;
85
+ }
86
+ else {
87
+ try {
88
+ amount = parseUnits(this.amount, decimals);
89
+ }
90
+ catch {
91
+ throw cliError('INVALID_AMOUNT', `--amount must be a positive decimal number or "max"; got "${this.amount}".`);
92
+ }
93
+ if (amount <= 0n) {
94
+ throw cliError('INVALID_AMOUNT', `--amount must be > 0 or "max"; got "${this.amount}".`);
95
+ }
96
+ }
97
+ // Args fingerprint baked into the cache so re-using one key with a
98
+ // different (token, spender, amount) → IDEMPOTENCY_ARGS_MISMATCH.
99
+ const args = {
100
+ token: tokenName,
101
+ spender: spenderAddr.toLowerCase(),
102
+ amount: amount.toString(),
103
+ };
104
+ // Dry-run NEVER consults or mutates the cache (peekIdempotent enforces
105
+ // this with its 4th arg). Cached real-tx returns vs simulation results
106
+ // must not be conflated.
107
+ const decision = await peekIdempotent(this.idempotencyKey, COMMAND, args, this.dryRun);
108
+ if (decision.kind === 'return-confirmed') {
109
+ emit({ ...decision.result, idempotent: true, status: 'confirmed' }, [`(cached, confirmed) tx: ${decision.txHash ?? 'n/a'}`]);
110
+ return 0;
111
+ }
112
+ if (decision.kind === 'return-submitted') {
113
+ emit({ ...decision.result, idempotent: true, status: 'submitted' }, [`(cached, submitted but not confirmed yet) tx: ${decision.txHash ?? 'n/a'}`,
114
+ `Re-run after the tx confirms, or check the explorer.`]);
115
+ return 0;
116
+ }
117
+ const clients = createClients({
118
+ network: cfg.network,
119
+ privateKey: pk,
120
+ ...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
121
+ });
122
+ const token = tokenName === 'reppo' ? reppoToken(cfg.network) : usdcToken(cfg.network);
123
+ // Pre-flight: skip the tx entirely if the existing allowance already
124
+ // covers the request. Saves gas and matches agent re-runnability.
125
+ const currentAllowance = await clients.publicClient.readContract({
126
+ address: token.address, abi: token.abi, functionName: 'allowance',
127
+ args: [clients.account.address, spenderAddr],
128
+ });
129
+ const fmtAmt = (a) => a === maxUint256
130
+ ? { raw: a.toString(), formatted: 'max' }
131
+ : { raw: a.toString(), formatted: formatUnits(a, decimals) };
132
+ if (currentAllowance >= amount) {
133
+ const result = {
134
+ token: tokenName,
135
+ spender: spenderAddr,
136
+ owner: clients.account.address,
137
+ requested: fmtAmt(amount),
138
+ currentAllowance: fmtAmt(currentAllowance),
139
+ status: 'no-op',
140
+ reason: 'allowance already sufficient',
141
+ };
142
+ // No tx, so we intentionally skip writing the idempotency cache —
143
+ // `markConfirmed` requires a real txHash. Re-reading the chain
144
+ // allowance on retry is cheap and authoritative.
145
+ emit(result, [
146
+ `= No-op: ${tokenName.toUpperCase()} allowance from ${clients.account.address} to ${spenderAddr}`,
147
+ ` is already ${fmtAmt(currentAllowance).formatted} (>= requested ${fmtAmt(amount).formatted}).`,
148
+ ]);
149
+ return 0;
150
+ }
151
+ if (this.dryRun) {
152
+ const sim = await clients.publicClient.simulateContract({
153
+ address: token.address, abi: token.abi, functionName: 'approve',
154
+ args: [spenderAddr, amount], account: clients.account,
155
+ }).catch((e) => {
156
+ const decoded = decodeRevert(e);
157
+ throw cliError(decoded.code, 'Simulation reverted', decoded.hint);
158
+ });
159
+ emit({
160
+ simulated: true,
161
+ token: tokenName,
162
+ spender: spenderAddr,
163
+ owner: clients.account.address,
164
+ requested: fmtAmt(amount),
165
+ currentAllowance: fmtAmt(currentAllowance),
166
+ gas: sim.request.gas?.toString() ?? null,
167
+ });
168
+ return 0;
169
+ }
170
+ // Two-phase write: begin → submit → markSubmitted → wait → markConfirmed.
171
+ if (this.idempotencyKey)
172
+ await begin(this.idempotencyKey, COMMAND, args);
173
+ let tx;
174
+ try {
175
+ const nonce = await nextNonce(clients.publicClient, clients.account.address);
176
+ tx = await clients.walletClient.writeContract({
177
+ address: token.address, abi: token.abi, functionName: 'approve',
178
+ args: [spenderAddr, amount],
179
+ chain: clients.walletClient.chain, account: clients.account, nonce,
180
+ });
181
+ }
182
+ catch (e) {
183
+ const decoded = decodeRevert(e);
184
+ if (this.idempotencyKey)
185
+ await markFailed(this.idempotencyKey, COMMAND, args, decoded.code);
186
+ throw cliError(decoded.code, 'Approve tx failed to submit', decoded.hint);
187
+ }
188
+ // Persist 'submitted' BEFORE waiting for receipt — closes the
189
+ // retry-resend window an agent could otherwise hit.
190
+ if (this.idempotencyKey)
191
+ await markSubmitted(this.idempotencyKey, COMMAND, args, tx);
192
+ const receipt = await clients.publicClient.waitForTransactionReceipt({ hash: tx, timeout: 120_000 });
193
+ if (receipt.status === 'reverted') {
194
+ if (this.idempotencyKey)
195
+ await markFailed(this.idempotencyKey, COMMAND, args, 'TX_REVERTED', tx);
196
+ throw cliError('TX_REVERTED', `Approve tx reverted: ${tx}`);
197
+ }
198
+ const result = {
199
+ txHash: tx,
200
+ token: tokenName,
201
+ spender: spenderAddr,
202
+ owner: clients.account.address,
203
+ requested: fmtAmt(amount),
204
+ previousAllowance: fmtAmt(currentAllowance),
205
+ block: receipt.blockNumber.toString(),
206
+ basescanUrl: cfg.network === 'mainnet'
207
+ ? `https://basescan.org/tx/${tx}`
208
+ : `https://sepolia.basescan.org/tx/${tx}`,
209
+ };
210
+ if (this.idempotencyKey)
211
+ await markConfirmed(this.idempotencyKey, COMMAND, args, result, tx);
212
+ emit(result, [
213
+ `✓ Approved ${spenderAddr} to spend ${fmtAmt(amount).formatted} ${tokenName.toUpperCase()}`,
214
+ ` tx: ${result.basescanUrl}`,
215
+ ` block: ${receipt.blockNumber}`,
216
+ ]);
217
+ return 0;
218
+ }
219
+ catch (err) {
220
+ this.handleError(err);
221
+ }
222
+ }
223
+ }
224
+ //# sourceMappingURL=approve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { BaseCommand } from '../_base.js';
2
2
  export declare class ListPodsCommand extends BaseCommand {
3
3
  static paths: string[][];
4
4
  static usage: import("clipanion").Usage;
5
+ all: boolean;
5
6
  includeEmissions: boolean;
6
7
  datanet: string | undefined;
7
8
  limit: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"pods.d.ts","sourceRoot":"","sources":["../../../src/commands/list/pods.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA4C1C,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAgB,KAAK,aAAsB;IAE3C,OAAgB,KAAK,4BAclB;IAEH,gBAAgB,UAEb;IAEH,OAAO,qBAEJ;IAEH,KAAK,qBAAwF;IAEvF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAmNjC;AAiBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKtE"}
1
+ {"version":3,"file":"pods.d.ts","sourceRoot":"","sources":["../../../src/commands/list/pods.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6C1C,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAgB,KAAK,aAAsB;IAE3C,OAAgB,KAAK,4BAgBlB;IAEH,GAAG,UAEA;IAEH,gBAAgB,UAEb;IAEH,OAAO,qBAEJ;IAEH,KAAK,qBAAwF;IAEvF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAmOjC;AAiBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAKtE"}
@@ -1,32 +1,42 @@
1
1
  /**
2
- * `reppo list pods` — list pods owned by the authenticated wallet.
2
+ * `reppo list pods` — list pods, in one of two scopes.
3
3
  *
4
- * Hits the platform API `GET /pods` on `cfg.apiUrl` (mainnet defaults to
4
+ * DEFAULT (owner scope): pods owned by the authenticated wallet. Hits the
5
+ * platform API `GET /pods` on `cfg.apiUrl` (mainnet defaults to
5
6
  * https://api.reppo.xyz). The platform API only returns pods for the
6
- * authenticated wallet — there is NO `?owner=0xOther` query param, so
7
- * "list someone else's pods" is intentionally out of scope (it would
8
- * require an event scan or a new platform endpoint that doesn't exist
9
- * yet). Switching wallets requires switching REPPO_PRIVATE_KEY.
7
+ * authenticated wallet — there is NO `?owner=0xOther` query param.
8
+ * Switching wallets requires switching REPPO_PRIVATE_KEY. Auth: auto-
9
+ * acquires a platform session token via getOrRefreshSession, same flow as
10
+ * `reppo auth`. Requires REPPO_PRIVATE_KEY. Testnet without REPPO_API_URL
11
+ * surfaces PLATFORM_API_NOT_CONFIGURED inside getOrRefreshSession.
10
12
  *
11
- * Optional `--include-emissions` follows up with `GET /pods/{podId}/emissions`
12
- * per pod (matches the `query emissions-due` shape) and appends a per-pod
13
- * `unclaimedEmissionsREPPO` plus a top-level `totalUnclaimedREPPO`. Off by
14
- * default because it's N+1 against the platform.
13
+ * `--all` (community scope): pods published by ANY wallet — the discovery
14
+ * primitive for finding pods to vote on. Hits the UNAUTHENTICATED public
15
+ * endpoint at https://reppo.ai/api/v1/public/pods (no private key, no
16
+ * Bearer token), the same host/auth model as `list datanets`. Public pods
17
+ * carry `privateSubnetId` (a CUID) rather than the numeric datanet id, so
18
+ * `--all` also fetches `/api/v1/public/subnets` to translate CUID ↔
19
+ * numeric id (for the `--datanet` filter and per-row `datanetId`). Each
20
+ * row's `podId` feeds straight into `reppo vote --pod <podId>`. `--all` is
21
+ * incompatible with `--include-emissions` (the public API has no
22
+ * per-wallet emissions data).
15
23
  *
16
- * Auth: auto-acquires a platform session token via getOrRefreshSession,
17
- * same flow as `reppo auth` / `reppo query emissions-due`. Requires
18
- * REPPO_PRIVATE_KEY. Testnet without REPPO_API_URL surfaces
19
- * PLATFORM_API_NOT_CONFIGURED via requireApiUrl inside getOrRefreshSession.
24
+ * Optional `--include-emissions` (owner scope only) follows up with
25
+ * `GET /pods/{podId}/emissions` per pod (matches the `query emissions-due`
26
+ * shape) and appends a per-pod `unclaimedEmissionsREPPO` plus a top-level
27
+ * `totalUnclaimedREPPO`. Off by default because it's N+1 against the
28
+ * platform.
20
29
  */
21
30
  import { Option } from 'clipanion';
22
31
  import { formatUnits } from 'viem';
23
32
  import { BaseCommand } from '../_base.js';
24
33
  import { cliError, emit } from '../../output/format.js';
25
34
  import { getOrRefreshSession, platformGet } from '../../api/platform.js';
35
+ import { publicGet, DEFAULT_PUBLIC_API_URL } from '../../api/public.js';
26
36
  export class ListPodsCommand extends BaseCommand {
27
37
  static paths = [['list', 'pods']];
28
38
  static usage = BaseCommand.Usage({
29
- description: 'List pods owned by the authenticated wallet (REPPO_PRIVATE_KEY).',
39
+ description: 'List pods owned by the authenticated wallet, or (with --all) every published pod.',
30
40
  examples: [
31
41
  ['List my pods',
32
42
  'reppo list pods'],
@@ -36,12 +46,17 @@ export class ListPodsCommand extends BaseCommand {
36
46
  'reppo list pods --include-emissions'],
37
47
  ['Cap at 5 rows',
38
48
  'reppo list pods --limit 5'],
39
- ['Only pods in datanet 19',
49
+ ['Only my pods in datanet 19',
40
50
  'reppo list pods --datanet 19 --json'],
51
+ ['Discover pods from any wallet to vote on (public, no auth)',
52
+ 'reppo list pods --all --datanet 19 --json'],
41
53
  ],
42
54
  });
55
+ all = Option.Boolean('--all', false, {
56
+ description: 'List pods published by ANY wallet (public, unauthenticated) — for discovering pods to vote on. Incompatible with --include-emissions.',
57
+ });
43
58
  includeEmissions = Option.Boolean('--include-emissions', false, {
44
- description: 'Also fetch unclaimed emissions per pod (N+1 against platform; off by default)',
59
+ description: 'Also fetch unclaimed emissions per pod (N+1 against platform; off by default; owner scope only)',
45
60
  });
46
61
  datanet = Option.String('--datanet', {
47
62
  description: 'Only list pods belonging to this datanet (subnet) id.',
@@ -50,10 +65,6 @@ export class ListPodsCommand extends BaseCommand {
50
65
  async execute() {
51
66
  try {
52
67
  const cfg = this.loadConfig();
53
- const pk = cfg.privateKey;
54
- if (!pk) {
55
- throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_PRIVATE_KEY in env. The platform API requires a wallet signature to enumerate pods.');
56
- }
57
68
  // Parse --limit up front so a bad value fails before any network call.
58
69
  let limit;
59
70
  if (this.limit !== undefined) {
@@ -75,6 +86,20 @@ export class ListPodsCommand extends BaseCommand {
75
86
  }
76
87
  datanetFilter = n.toString();
77
88
  }
89
+ // --all switches to the public, unauthenticated community view: pods
90
+ // published by any wallet. Distinct endpoint, distinct output shape.
91
+ if (this.all) {
92
+ if (this.includeEmissions) {
93
+ throw cliError('INCOMPATIBLE_FLAGS', '--all cannot be combined with --include-emissions.', 'Per-pod emissions come from the wallet-authed platform API; --all uses the public API, which has no emissions data. Drop one flag.');
94
+ }
95
+ await listCommunityPods(cfg.network, datanetFilter, limit);
96
+ return 0;
97
+ }
98
+ // Owner scope below — requires a signing key for the platform API.
99
+ const pk = cfg.privateKey;
100
+ if (!pk) {
101
+ throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_PRIVATE_KEY in env. The platform API requires a wallet signature to enumerate pods.');
102
+ }
78
103
  // Auto-acquire/refresh the session token. Same flow `reppo auth` runs.
79
104
  // requireApiUrl inside getOrRefreshSession surfaces PLATFORM_API_NOT_CONFIGURED
80
105
  // for testnet without REPPO_API_URL.
@@ -265,4 +290,101 @@ export function parseWei(v) {
265
290
  return 0n;
266
291
  }
267
292
  }
293
+ /**
294
+ * `list pods --all` body: enumerate pods published by any wallet via the
295
+ * public API. `datanetFilter` is the already-validated numeric datanet id
296
+ * (string form) or undefined; `limit` is the already-parsed row cap.
297
+ */
298
+ async function listCommunityPods(network, datanetFilter, limit) {
299
+ const baseUrl = process.env.REPPO_PUBLIC_API_URL ?? DEFAULT_PUBLIC_API_URL;
300
+ // Fetch subnets first: needed to build the CUID → numeric-id map and to
301
+ // resolve the --datanet filter to the CUID the pods carry.
302
+ const subnetsResp = await publicGet(baseUrl, '/api/v1/public/subnets');
303
+ const rawSubnets = subnetsResp.data?.subnets ?? subnetsResp.subnets ?? [];
304
+ const cuidToDatanetId = new Map();
305
+ for (const s of rawSubnets) {
306
+ if (s.id && s.tokenId !== undefined && s.tokenId !== null) {
307
+ cuidToDatanetId.set(s.id, s.tokenId.toString());
308
+ }
309
+ }
310
+ // Resolve --datanet to the CUID pods reference. Erroring on an unknown
311
+ // id (rather than returning empty) tells an agent it passed a bad id,
312
+ // not that the datanet is empty.
313
+ let datanetCuid;
314
+ if (datanetFilter !== undefined) {
315
+ for (const [cuid, id] of cuidToDatanetId) {
316
+ if (id === datanetFilter) {
317
+ datanetCuid = cuid;
318
+ break;
319
+ }
320
+ }
321
+ if (datanetCuid === undefined) {
322
+ throw cliError('DATANET_NOT_FOUND', `No datanet with id ${datanetFilter} exists.`, 'Run `reppo list datanets` to see valid datanet ids.');
323
+ }
324
+ }
325
+ const podsResp = await publicGet(baseUrl, '/api/v1/public/pods');
326
+ const rawPods = podsResp.data?.pods ?? podsResp.pods ?? [];
327
+ // Filter by datanet CUID before limiting so the cap reflects the
328
+ // user's filtered view, not the raw API page.
329
+ const filtered = datanetCuid !== undefined
330
+ ? rawPods.filter((p) => p.privateSubnetId === datanetCuid)
331
+ : rawPods;
332
+ const limited = limit !== undefined ? filtered.slice(0, limit) : filtered;
333
+ const pods = limited.map((p) => {
334
+ const cuid = p.privateSubnetId;
335
+ return {
336
+ podId: p.tokenId !== undefined && p.tokenId !== null ? p.tokenId.toString() : '',
337
+ name: p.name ?? '',
338
+ creator: p.creator?.username ?? '',
339
+ datanetId: cuid ? cuidToDatanetId.get(cuid) ?? null : null,
340
+ upVotes: numericToString(p.cumulativeUpVotesVolume),
341
+ downVotes: numericToString(p.cumulativeDownVotesVolume),
342
+ validityEpoch: numericToString(p.podValidityEpoch),
343
+ url: p.url ?? '',
344
+ };
345
+ });
346
+ const result = {
347
+ scope: 'community',
348
+ network,
349
+ pods,
350
+ count: pods.length,
351
+ };
352
+ if (datanetFilter !== undefined)
353
+ result.datanet = datanetFilter;
354
+ const lines = [
355
+ `Network: ${network}`,
356
+ `Scope: community (pods from any wallet)`,
357
+ ];
358
+ if (datanetFilter !== undefined)
359
+ lines.push(`Datanet: ${datanetFilter}`);
360
+ lines.push(`Pods: ${pods.length}${limit !== undefined && filtered.length > pods.length ? ` (of ${filtered.length}; limited)` : ''}`, ``);
361
+ if (pods.length === 0) {
362
+ lines.push(datanetFilter !== undefined
363
+ ? '(no pods published in this datanet yet)'
364
+ : '(no community pods found)');
365
+ }
366
+ else {
367
+ for (const p of pods) {
368
+ const datanet = p.datanetId !== null ? ` datanet=${p.datanetId}` : '';
369
+ lines.push(` pod ${p.podId}${datanet} ↑${p.upVotes} ↓${p.downVotes} ${p.name}`);
370
+ }
371
+ }
372
+ emit(result, lines);
373
+ }
374
+ /**
375
+ * Convert a JSON number/string from the public API into a string suitable
376
+ * for downstream BigInt parsing. Missing or non-numeric values render as
377
+ * "0" rather than "NaN"/"undefined" so the output shape stays consistent.
378
+ */
379
+ function numericToString(v) {
380
+ if (v === undefined || v === null)
381
+ return '0';
382
+ if (typeof v === 'number') {
383
+ if (!Number.isFinite(v))
384
+ return '0';
385
+ return Math.trunc(v).toString();
386
+ }
387
+ const s = v.trim();
388
+ return s === '' ? '0' : s;
389
+ }
268
390
  //# sourceMappingURL=pods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pods.js","sourceRoot":"","sources":["../../../src/commands/list/pods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pods.js","sourceRoot":"","sources":["../../../src/commands/list/pods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA0CxE,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,MAAM,CAAU,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QACxC,WAAW,EAAE,mFAAmF;QAChG,QAAQ,EAAE;YACR,CAAC,cAAc;gBACb,iBAAiB,CAAC;YACpB,CAAC,+BAA+B;gBAC9B,wBAAwB,CAAC;YAC3B,CAAC,oDAAoD;gBACnD,qCAAqC,CAAC;YACxC,CAAC,eAAe;gBACd,2BAA2B,CAAC;YAC9B,CAAC,4BAA4B;gBAC3B,qCAAqC,CAAC;YACxC,CAAC,4DAA4D;gBAC3D,2CAA2C,CAAC;SAC/C;KACF,CAAC,CAAC;IAEH,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE;QACnC,WAAW,EAAE,uIAAuI;KACrJ,CAAC,CAAC;IAEH,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE;QAC9D,WAAW,EAAE,iGAAiG;KAC/G,CAAC,CAAC;IAEH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,uDAAuD;KACrE,CAAC,CAAC;IAEH,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC,CAAC;IAE7F,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAE9B,uEAAuE;YACvE,IAAI,KAAyB,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,QAAQ,CACZ,eAAe,EACf,gDAAgD,IAAI,CAAC,KAAK,IAAI,CAC/D,CAAC;gBACJ,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;YAED,iEAAiE;YACjE,oEAAoE;YACpE,iDAAiD;YACjD,IAAI,aAAiC,CAAC;YACtC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;oBACpD,MAAM,QAAQ,CACZ,iBAAiB,EACjB,kDAAkD,IAAI,CAAC,OAAO,IAAI,CACnE,CAAC;gBACJ,CAAC;gBACD,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC;YAED,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,MAAM,QAAQ,CACZ,oBAAoB,EACpB,oDAAoD,EACpD,oIAAoI,CACrI,CAAC;gBACJ,CAAC;gBACD,MAAM,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC3D,OAAO,CAAC,CAAC;YACX,CAAC;YAED,mEAAmE;YACnE,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,QAAQ,CACZ,qBAAqB,EACrB,2BAA2B,EAC3B,+FAA+F,CAChG,CAAC;YACJ,CAAC;YAED,uEAAuE;YACvE,gFAAgF;YAChF,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAkB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAE3D,yEAAyE;YACzE,MAAM,UAAU,GAAG,OAAO;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,MAAM,GAAG,GAML,EAAE,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;oBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC1F,IAAI,CAAC,CAAC,QAAQ;oBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;qBACrC,IAAI,CAAC,CAAC,SAAS;oBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC;gBACjD,IAAI,CAAC,CAAC,QAAQ;oBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC1C,IAAI,CAAC,CAAC,WAAW;oBAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;gBACnD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEzD,gEAAgE;YAChE,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,aAAa,KAAK,SAAS;gBAC1C,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC;gBACxD,CAAC,CAAC,UAAU,CAAC;YAEf,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE5E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG;oBACb,OAAO,EAAE,OAAO,CAAC,aAAa;oBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,EAAe;oBACrB,KAAK,EAAE,CAAC;iBACT,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,YAAY,OAAO,CAAC,aAAa,EAAE;oBACnC,YAAY,GAAG,CAAC,OAAO,EAAE;iBAC1B,CAAC;gBACF,IAAI,aAAa,KAAK,SAAS;oBAAE,UAAU,CAAC,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;gBAC9E,IAAI,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzD,UAAU,CAAC,IAAI,CAAC,wCAAwC,UAAU,CAAC,MAAM,iBAAiB,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CACb,+BAA+B,EAC/B,6CAA6C,CAC9C,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACzB,OAAO,CAAC,CAAC;YACX,CAAC;YAID,IAAI,cAA0C,CAAC;YAE/C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;oBACjE,IAAI,CAAC;wBACH,MAAM,CAAC,GAAG,MAAM,WAAW,CACzB,GAAG,CAAC,MAAM,EACV,SAAS,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAChD,OAAO,CAAC,WAAW,CACpB,CAAC;wBACF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;wBACzB,gEAAgE;wBAChE,mDAAmD;wBACnD,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAC9C,IAAI,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gCAC5B,IAAI,CAAC,CAAC,CAAC,OAAO;oCAAE,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BAClD,CAAC;wBACH,CAAC;wBACD,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;oBACvD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,GAAG,GAAG,CAAwC,CAAC;wBACrD,OAAO;4BACL,KAAK,EAAE,CAAC,CAAC,KAAK;4BACd,cAAc,EAAE,EAAE;4BAClB,KAAK,EAAE;gCACL,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,oBAAoB;gCACtC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC;6BAClC;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBACjC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;wBACtD,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACzD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACzD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACzD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;oBAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;gBAClE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,EAAE,CAAC;wBACN,IAAI,CAAC,uBAAuB,GAAG;4BAC7B,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE;4BAChC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;yBAC7C,CAAC;wBACF,IAAI,CAAC,CAAC,KAAK;4BAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,cAAc;gBACnC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;gBACpF,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,MAAM,GAA4B;gBACtC,OAAO,EAAE,OAAO,CAAC,aAAa;gBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI;gBACJ,KAAK,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC;YACF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,mBAAmB,GAAG;oBAC3B,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE;oBAC9B,SAAS,EAAE,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;iBAC3C,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG;gBACZ,YAAY,OAAO,CAAC,aAAa,EAAE;gBACnC,YAAY,GAAG,CAAC,OAAO,EAAE;aAC1B,CAAC;YACF,IAAI,aAAa,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,IAAI,CACR,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5H,CAAC;YACF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,IAAI,aAAa,GAAG,EAAE,CAAC;gBACvB,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC;oBAChD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;wBACb,aAAa,GAAG,mBAAmB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;oBACrD,CAAC;yBAAM,IAAI,CAAC,EAAE,CAAC;wBACb,aAAa,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAe,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;;AAGH,0EAA0E;AAC1E,KAAK,UAAU,iBAAiB,CAC9B,KAAU,EACV,WAAmB,EACnB,EAA2B;IAE3B,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAqC;IAC5D,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACjF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAChD,CAAC;AAgCD;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,aAAiC,EACjC,KAAyB;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,sBAAsB,CAAC;IAE3E,wEAAwE;IACxE,2DAA2D;IAC3D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAwB,OAAO,EAAE,wBAAwB,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;IAE1E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1D,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,iCAAiC;IACjC,IAAI,WAA+B,CAAC;IACpC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;gBAAC,WAAW,GAAG,IAAI,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC1D,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,QAAQ,CACZ,mBAAmB,EACnB,sBAAsB,aAAa,UAAU,EAC7C,qDAAqD,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAqB,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAE3D,iEAAiE;IACjE,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,WAAW,KAAK,SAAS;QACxC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,WAAW,CAAC;QAC1D,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE1E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;YAChF,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;YAClC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;YAC1D,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACnD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACvD,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAClD,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,WAAW;QAClB,OAAO;QACP,IAAI;QACJ,KAAK,EAAE,IAAI,CAAC,MAAM;KACnB,CAAC;IACF,IAAI,aAAa,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;IAEhE,MAAM,KAAK,GAAG;QACZ,YAAY,OAAO,EAAE;QACrB,2CAA2C;KAC5C,CAAC;IACF,IAAI,aAAa,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CACR,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAC3H,EAAE,CACH,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;YACpC,CAAC,CAAC,yCAAyC;YAC3C,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,CAA8B;IACrD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reppo/cli",
3
- "version": "0.3.0",
3
+ "version": "0.5.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",