@heyanon-arp/cli 0.0.28 → 0.0.29

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/dist/cli.js CHANGED
@@ -736,7 +736,7 @@ var import_commander = require("commander");
736
736
  // package.json
737
737
  var package_default = {
738
738
  name: "@heyanon-arp/cli",
739
- version: "0.0.28",
739
+ version: "0.0.29",
740
740
  description: "Command-line client for the Agent Relationship Protocol \u2014 register agents, sign envelopes, run escrowed work cycles on Solana.",
741
741
  license: "MIT",
742
742
  keywords: ["arp", "agent-relationship-protocol", "did", "solana", "escrow", "ed25519", "agents", "a2a", "cli"],
@@ -1114,6 +1114,15 @@ function updateAgentLocal(serverOverride, did, patch) {
1114
1114
  server.agents[did] = { ...server.agents[did], ...patch };
1115
1115
  return writeStateFile(state);
1116
1116
  }
1117
+ function deleteAgent(serverOverride, did) {
1118
+ const key = resolveServerUrl(serverOverride);
1119
+ const state = readStateFile();
1120
+ const server = state.servers[key];
1121
+ if (!server || !server.agents[did]) return { removed: false, chmodOk: true };
1122
+ delete server.agents[did];
1123
+ const { chmodOk } = writeStateFile(state);
1124
+ return { removed: true, chmodOk };
1125
+ }
1117
1126
  function toKeyBundle(agent, exportedAt) {
1118
1127
  return {
1119
1128
  did: agent.did,
@@ -6971,8 +6980,11 @@ function accumulate3(value, previous) {
6971
6980
  }
6972
6981
  var defaultRegisterDeps = {
6973
6982
  makeApi: (serverOverride) => new ArpApiClient(serverOverride),
6974
- save: saveAgent
6983
+ save: saveAgent,
6984
+ deleteAgent,
6985
+ loadAgent
6975
6986
  };
6987
+ var AGENT_ALREADY_REGISTERED_CODE = "AGENT_ALREADY_REGISTERED";
6976
6988
  async function runRegister(opts, deps = defaultRegisterDeps) {
6977
6989
  assertJsonRequiresYes(opts);
6978
6990
  const api = deps.makeApi(opts.server);
@@ -7051,6 +7063,7 @@ async function runRegister(opts, deps = defaultRegisterDeps) {
7051
7063
  tags: answers.tags.length > 0 ? answers.tags : void 0,
7052
7064
  registeredAt: (/* @__PURE__ */ new Date()).toISOString()
7053
7065
  };
7066
+ const hadLocalRecordBeforeRegister = deps.loadAgent(opts.server, did) != null;
7054
7067
  deps.save(opts.server, durableState);
7055
7068
  let result;
7056
7069
  try {
@@ -7061,6 +7074,13 @@ async function runRegister(opts, deps = defaultRegisterDeps) {
7061
7074
  `register: the stored login token for ${api.serverUrl} was rejected (${err.payload.message}) \u2014 run 'heyarp login' again. Your keys are saved locally; re-running register with --from-keys is safe.`
7062
7075
  );
7063
7076
  }
7077
+ const provesServerDidNotRegister = err instanceof ApiError && err.status >= 400 && err.status < 500 && err.payload.code !== AGENT_ALREADY_REGISTERED_CODE;
7078
+ if (provesServerDidNotRegister && !hadLocalRecordBeforeRegister) {
7079
+ try {
7080
+ deps.deleteAgent(opts.server, did);
7081
+ } catch {
7082
+ }
7083
+ }
7064
7084
  throw err;
7065
7085
  }
7066
7086
  if (result.did !== did) {