tenzro-sdk 0.2.0 → 0.4.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.
Files changed (141) hide show
  1. package/README.md +11 -1
  2. package/dist/adaptive-burn.js +4 -4
  3. package/dist/adaptive-burn.js.map +1 -1
  4. package/dist/agent.d.ts +119 -11
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +162 -13
  7. package/dist/agent.js.map +1 -1
  8. package/dist/api-key.d.ts +128 -0
  9. package/dist/api-key.d.ts.map +1 -0
  10. package/dist/api-key.js +94 -0
  11. package/dist/api-key.js.map +1 -0
  12. package/dist/app.js +1 -1
  13. package/dist/app.js.map +1 -1
  14. package/dist/auth.d.ts +37 -0
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +11 -0
  17. package/dist/auth.js.map +1 -1
  18. package/dist/axelar.d.ts +54 -0
  19. package/dist/axelar.d.ts.map +1 -0
  20. package/dist/axelar.js +30 -0
  21. package/dist/axelar.js.map +1 -0
  22. package/dist/babylon.d.ts +46 -0
  23. package/dist/babylon.d.ts.map +1 -0
  24. package/dist/babylon.js +37 -0
  25. package/dist/babylon.js.map +1 -0
  26. package/dist/caip.d.ts +43 -0
  27. package/dist/caip.d.ts.map +1 -0
  28. package/dist/caip.js +29 -0
  29. package/dist/caip.js.map +1 -0
  30. package/dist/canton.d.ts +16 -18
  31. package/dist/canton.d.ts.map +1 -1
  32. package/dist/canton.js +16 -18
  33. package/dist/canton.js.map +1 -1
  34. package/dist/capital.d.ts +167 -0
  35. package/dist/capital.d.ts.map +1 -0
  36. package/dist/capital.js +117 -0
  37. package/dist/capital.js.map +1 -0
  38. package/dist/client.d.ts +108 -1
  39. package/dist/client.d.ts.map +1 -1
  40. package/dist/client.js +136 -0
  41. package/dist/client.js.map +1 -1
  42. package/dist/eip7702.d.ts +110 -0
  43. package/dist/eip7702.d.ts.map +1 -0
  44. package/dist/eip7702.js +73 -0
  45. package/dist/eip7702.js.map +1 -0
  46. package/dist/erc7683.d.ts +79 -0
  47. package/dist/erc7683.d.ts.map +1 -0
  48. package/dist/erc7683.js +82 -0
  49. package/dist/erc7683.js.map +1 -0
  50. package/dist/events.d.ts +45 -15
  51. package/dist/events.d.ts.map +1 -1
  52. package/dist/events.js +38 -8
  53. package/dist/events.js.map +1 -1
  54. package/dist/hyperlane.d.ts +47 -0
  55. package/dist/hyperlane.d.ts.map +1 -0
  56. package/dist/hyperlane.js +27 -0
  57. package/dist/hyperlane.js.map +1 -0
  58. package/dist/identity.d.ts +1 -1
  59. package/dist/identity.js +1 -1
  60. package/dist/index.d.ts +44 -4
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +55 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/iroh.d.ts +104 -0
  65. package/dist/iroh.d.ts.map +1 -0
  66. package/dist/iroh.js +102 -0
  67. package/dist/iroh.js.map +1 -0
  68. package/dist/marketplace.d.ts +2 -2
  69. package/dist/marketplace.js +2 -2
  70. package/dist/memory.d.ts +78 -0
  71. package/dist/memory.d.ts.map +1 -0
  72. package/dist/memory.js +60 -0
  73. package/dist/memory.js.map +1 -0
  74. package/dist/multimodal.d.ts +294 -0
  75. package/dist/multimodal.d.ts.map +1 -0
  76. package/dist/multimodal.js +160 -0
  77. package/dist/multimodal.js.map +1 -0
  78. package/dist/passkey.d.ts +193 -0
  79. package/dist/passkey.d.ts.map +1 -0
  80. package/dist/passkey.js +481 -0
  81. package/dist/passkey.js.map +1 -0
  82. package/dist/permit2.d.ts +49 -0
  83. package/dist/permit2.d.ts.map +1 -0
  84. package/dist/permit2.js +30 -0
  85. package/dist/permit2.js.map +1 -0
  86. package/dist/provider.d.ts +5 -4
  87. package/dist/provider.d.ts.map +1 -1
  88. package/dist/provider.js +8 -5
  89. package/dist/provider.js.map +1 -1
  90. package/dist/rpc.d.ts.map +1 -1
  91. package/dist/rpc.js +16 -0
  92. package/dist/rpc.js.map +1 -1
  93. package/dist/secure-mint.d.ts +39 -0
  94. package/dist/secure-mint.d.ts.map +1 -0
  95. package/dist/secure-mint.js +44 -0
  96. package/dist/secure-mint.js.map +1 -0
  97. package/dist/seed-agent.js +7 -7
  98. package/dist/seed-agent.js.map +1 -1
  99. package/dist/settlement.d.ts +23 -6
  100. package/dist/settlement.d.ts.map +1 -1
  101. package/dist/settlement.js +30 -7
  102. package/dist/settlement.js.map +1 -1
  103. package/dist/signer.d.ts +181 -0
  104. package/dist/signer.d.ts.map +1 -0
  105. package/dist/signer.js +69 -0
  106. package/dist/signer.js.map +1 -0
  107. package/dist/sla.d.ts +95 -0
  108. package/dist/sla.d.ts.map +1 -0
  109. package/dist/sla.js +70 -0
  110. package/dist/sla.js.map +1 -0
  111. package/dist/snapshot.d.ts +122 -0
  112. package/dist/snapshot.d.ts.map +1 -0
  113. package/dist/snapshot.js +80 -0
  114. package/dist/snapshot.js.map +1 -0
  115. package/dist/staking.d.ts +5 -5
  116. package/dist/staking.d.ts.map +1 -1
  117. package/dist/staking.js +8 -6
  118. package/dist/staking.js.map +1 -1
  119. package/dist/task.d.ts +56 -22
  120. package/dist/task.d.ts.map +1 -1
  121. package/dist/task.js +65 -31
  122. package/dist/task.js.map +1 -1
  123. package/dist/token.d.ts +41 -11
  124. package/dist/token.d.ts.map +1 -1
  125. package/dist/token.js.map +1 -1
  126. package/dist/training.d.ts +108 -0
  127. package/dist/training.d.ts.map +1 -0
  128. package/dist/training.js +53 -0
  129. package/dist/training.js.map +1 -0
  130. package/dist/types.d.ts +165 -38
  131. package/dist/types.d.ts.map +1 -1
  132. package/dist/types.js.map +1 -1
  133. package/dist/validator.d.ts +76 -0
  134. package/dist/validator.d.ts.map +1 -0
  135. package/dist/validator.js +47 -0
  136. package/dist/validator.js.map +1 -0
  137. package/dist/workflow.d.ts +98 -0
  138. package/dist/workflow.d.ts.map +1 -0
  139. package/dist/workflow.js +131 -0
  140. package/dist/workflow.js.map +1 -0
  141. package/package.json +2 -1
package/README.md CHANGED
@@ -178,7 +178,7 @@ const result = await app.sponsorInference(user.address, 'gemma3-270m', 'Hello');
178
178
  | `auth` | `onboardHuman()`, `onboardDelegatedAgent()`, `onboardAutonomousAgent()`, `revokeJwt()`, `revokeDid()`, `listPendingApprovals()`, `decideApproval()` |
179
179
  | `wallet` | `createWallet()`, `getBalance()`, `sendTransaction()` |
180
180
  | `identity` | `registerHuman()`, `resolveDid()`, `setUsername()` |
181
- | `agent` | `register()`, `spawnAgent()`, `createSwarm()`, `delegateTask()` |
181
+ | `agent` | `register(name, creator, capabilities)` (server-provisioned hybrid wallet), `registerWithKeys(name, creator, capabilities, publicKey, pqPublicKey)` (BYOK), `sendMessage(from, to, message)`, `sendMessageSigned({from, to, message, signature, pqSignature, messageType?, replyTo?})`, `spawnAgent()`, `createSwarm()`, `delegateTask()` |
182
182
  | `inference` | `listModels()`, `request()`, `estimateCost()`, plus multi-modal helpers for forecast, vision embed/similarity, text embedding, segmentation, detection, audio ASR, video embed (modality-aware routing via `tenzro_forecast`, `tenzro_visionEmbed`, `tenzro_textEmbed`, `tenzro_segment`, `tenzro_detect`, `tenzro_transcribe`, `tenzro_videoEmbed`) |
183
183
  | `token` | `createToken()`, `listTokens()`, `crossVmTransfer()` |
184
184
  | `nft` | `createCollection()`, `mintNft()`, `transferNft()` |
@@ -220,6 +220,16 @@ const result = await app.sponsorInference(user.address, 'gemma3-270m', 'Hello');
220
220
  | `skill` | `listSkills()`, `registerSkill()` |
221
221
  | `tool` | `listTools()`, `registerTool()` |
222
222
  | `svm-cross-vm` | Tenzro Cross-VM SVM-native program: `TENZRO_CROSS_VM_PROGRAM_ID_BASE58`, `encodeBridgeToEvm()`, `encodeBridgeFromEvm()`, `encodeRegisterTokenPointer()`, `encodeTransferCrossVm()`, `decodeCrossVmInstruction()` |
223
+ | `capital` | Regulated capital-allocation intents: `openCapitalIntent()`, `quoteCapitalIntent()`, `assignCapitalIntent()`, `executeCapitalLeg()`, `verifyCapitalLeg()`, `compensateCapitalLeg()`, `settleCapitalIntent()`, `getCapitalIntent()`, `submitReserveAttestation()`, `getReserve()`, `attestedMint()` |
224
+ | `workflow` | Multi-party saga workflows with AP2 / x402 / MPP / Stripe SPT / Visa TAP / Mastercard Agent Pay mandate binding: `openWorkflow()`, `executeStep()`, `verifyStep()`, `compensateStep()`, `finalizeWorkflow()`, `mirrorToCanton()`, `verifyDidEnvelope()`, `getWorkflow()`, `getWorkflowSaga()`, `getWorkflowLifecycle()`, `getWorkflowReceipt()`, `getWorkflowOperationalMetrics()`, `listWorkflowsByCreator()`, `listWorkflowsByParticipant()`, `listWorkflowsByStatus()`, `listWorkflowReceipts()` |
225
+ | `eip7702` | Pectra Type-4 delegation registry: `install7702Delegation()`, `get7702Delegation()`, `revoke7702Delegation()` |
226
+ | `erc7683` | Cross-chain intents origin opener + destination fill registry: `open7683Order()`, `get7683Order()`, `list7683Orders()`, `recordFill7683()`, `getFill7683()`, `listFills7683()` |
227
+ | `permit2` | Permit2 `SignatureTransfer`: `domainSeparator()`, `digest()`, `verifyAndConsume()`, `nonceUsed()` (optional witness binding for ERC-7683 origin opens) |
228
+ | `secureMint` | Per-token 1:1 reserve-attestation invariant for tokenized RWAs: `setPolicy()`, `getPolicy()`, `clearPolicy()`, `check()`, `apply()`, `recordBurn()` |
229
+ | `hyperlane` | Hyperlane V3 messaging with sovereign Tenzro-validator-set ISM: `listChains()`, `quoteDispatch()`, `dispatch()`, `getMessage()` |
230
+ | `axelar` | Axelar GMP — Cosmos / Move / Stellar / XRPL reach: `listChains()`, `callContract()`, `payGas()`, `getMessage()` |
231
+ | `babylon` | Babylon Bitcoin staking finality-providers + EOTS delegations: `registerFinalityProvider()`, `submitFinalitySignature()`, `totalStakeForProvider()`, `listDelegations()` |
232
+ | `caip` | Tenzro CAIP namespace identifiers per `ChainAgnostic/namespaces#184`: `caip2()`, `caip10()`, `caip19()` |
223
233
 
224
234
  ## Auth (OAuth 2.1 + DPoP Onboarding)
225
235
 
@@ -22,7 +22,7 @@ class AdaptiveBurnClient {
22
22
  * @returns Active burn-rate configuration
23
23
  */
24
24
  async getBurnRateConfig() {
25
- return this.rpc.call("tenzro_getBurnRateConfig", []);
25
+ return this.rpc.call("tenzro_getBurnRateConfig", [{}]);
26
26
  }
27
27
  /**
28
28
  * Returns the latest rolling supply metrics snapshot — circulating
@@ -30,7 +30,7 @@ class AdaptiveBurnClient {
30
30
  * @returns Latest `SupplyMetricsSnapshot`
31
31
  */
32
32
  async getSupplyMetrics() {
33
- return this.rpc.call("tenzro_getSupplyMetrics", []);
33
+ return this.rpc.call("tenzro_getSupplyMetrics", [{}]);
34
34
  }
35
35
  /**
36
36
  * Computes the recommended adaptive-burn action from the current
@@ -39,14 +39,14 @@ class AdaptiveBurnClient {
39
39
  * @returns `BurnRateRecommendation`
40
40
  */
41
41
  async getBurnRateRecommendation() {
42
- return this.rpc.call("tenzro_getBurnRateRecommendation", []);
42
+ return this.rpc.call("tenzro_getBurnRateRecommendation", [{}]);
43
43
  }
44
44
  /**
45
45
  * List in-flight adaptive-burn governance proposals.
46
46
  * @returns Array of proposal records
47
47
  */
48
48
  async listAdaptiveBurnProposals() {
49
- return this.rpc.call("tenzro_listAdaptiveBurnProposals", []);
49
+ return this.rpc.call("tenzro_listAdaptiveBurnProposals", [{}]);
50
50
  }
51
51
  }
52
52
  exports.AdaptiveBurnClient = AdaptiveBurnClient;
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive-burn.js","sourceRoot":"","sources":["../src/adaptive-burn.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;GAUG;AACH,MAAa,kBAAkB;IACT;IAApB,YAAoB,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAEtC;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAQ,kCAAkC,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;CACF;AArCD,gDAqCC"}
1
+ {"version":3,"file":"adaptive-burn.js","sourceRoot":"","sources":["../src/adaptive-burn.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;GAUG;AACH,MAAa,kBAAkB;IACT;IAApB,YAAoB,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAEtC;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAQ,kCAAkC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;CACF;AArCD,gDAqCC"}
package/dist/agent.d.ts CHANGED
@@ -8,20 +8,68 @@ export declare class AgentClient {
8
8
  private rpc;
9
9
  constructor(rpc: RpcClient);
10
10
  /**
11
- * Register a new AI agent on the network.
12
- * @param agentId - Unique identifier for the agent
13
- * @param name - Human-readable name
14
- * @param capabilities - List of agent capabilities
15
- * @returns Registration response with agent ID and status
11
+ * Register a new AI agent on the network. The node provisions a server-
12
+ * side hybrid (FROST Ed25519 + ML-DSA-65) wallet and binds it to a
13
+ * fresh `did:tenzro:machine:` identity. Returns the agent's `agent_id`,
14
+ * `wallet_address`, `tenzro_did`, the agent's `classical_public_key`
15
+ * (32-byte Ed25519 hex) and the `pq_verifying_key_len`.
16
+ *
17
+ * For self-custodial registration (no server-held keys), see
18
+ * {@link registerWithKeys}.
19
+ *
20
+ * @param name - Human-readable agent name
21
+ * @param creator - Hex-encoded address that will own this agent
22
+ * @param capabilities - Capability short names: `nlp`, `vision`, `code`,
23
+ * `data`, `blockchain`, `smart_contract`, `api_integration`,
24
+ * `coordination`. Anything else becomes a `Custom` capability.
16
25
  */
17
- register(agentId: string, name: string, capabilities: string[]): Promise<RegisterAgentResponse>;
26
+ register(name: string, creator: string, capabilities: string[]): Promise<RegisterAgentResponse>;
18
27
  /**
19
- * Send a message to another agent.
20
- * @param agentId - Target agent identifier
21
- * @param message - Message content
22
- * @returns Message response with payload and message ID
28
+ * BYOK registration: register an agent self-custodially with a
29
+ * caller-supplied hybrid keypair. Both `publicKey` (32 bytes, Ed25519)
30
+ * and `pqPublicKey` (1952 bytes, ML-DSA-65) must be supplied as hex
31
+ * (with or without `0x` prefix). The node performs no wallet
32
+ * provisioning; the caller retains full control of the signing keys
33
+ * and is responsible for producing all `sendAgentMessage` signatures
34
+ * off-node. The returned envelope sets `byok: true` and omits the
35
+ * `classical_public_key` / `pq_verifying_key_len` fields (the caller
36
+ * already has them).
37
+ */
38
+ registerWithKeys(name: string, creator: string, capabilities: string[], publicKey: string, pqPublicKey: string): Promise<RegisterAgentResponse>;
39
+ /**
40
+ * Send an unsigned `AgentMessage` from one registered agent to another.
41
+ * Only valid when the local node's `MessageRouter` has
42
+ * `enable_signing == false` (test/dev configs). On the production
43
+ * router this call is rejected with a signature-required error — use
44
+ * {@link sendMessageSigned} instead.
45
+ */
46
+ sendMessage(from: string, to: string, message: string): Promise<AgentMessageResponse>;
47
+ /**
48
+ * Send a hybrid-signed `AgentMessage`. Both signature legs are required
49
+ * when the router enforces signing (production default); half-signed
50
+ * messages are rejected to prevent downgrade attacks.
51
+ *
52
+ * The signing preimage is `SHA-256(AgentMessage::signing_data())`,
53
+ * which depends on `from`, `to`, the resolved sender/recipient wallet
54
+ * addresses, the message body, the message type, and the optional
55
+ * `replyTo`. Callers must construct the same preimage off-node and
56
+ * produce both an Ed25519 (64-byte) and an ML-DSA-65 (3309-byte)
57
+ * signature. Both signatures are passed as hex (with or without `0x`
58
+ * prefix).
59
+ *
60
+ * `replyTo` (if used) MUST be set on the message before signing,
61
+ * because it is part of `signing_data` — the SDK forwards it verbatim
62
+ * so the server reconstructs the same preimage the caller signed.
23
63
  */
24
- sendMessage(agentId: string, message: string): Promise<AgentMessageResponse>;
64
+ sendMessageSigned(params: {
65
+ from: string;
66
+ to: string;
67
+ message: string;
68
+ signature: string;
69
+ pqSignature: string;
70
+ messageType?: "task_request" | "task_response" | "query" | "query_response" | "notification" | "coordination" | "error";
71
+ replyTo?: string;
72
+ }): Promise<AgentMessageResponse>;
25
73
  /**
26
74
  * Delegate a task to an agent using the A2A protocol.
27
75
  * @param agentId - Target agent identifier
@@ -180,5 +228,65 @@ export declare class AgentClient {
180
228
  * @returns Current gas policy
181
229
  */
182
230
  getGasPolicy(agentId: string): Promise<GasPolicy>;
231
+ /**
232
+ * Operational suspend (Active → Suspended). The reversible counterpart of
233
+ * `resumeAgent`. Distinct from the kill-switch `pauseAgent` /
234
+ * `quarantineAgent` axes (those require signed transactions).
235
+ * @param agentId - The agent identifier
236
+ * @param reason - Free-form audit reason
237
+ */
238
+ suspendAgent(agentId: string, reason: string): Promise<unknown>;
239
+ /**
240
+ * Recover a Suspended agent back to Active. Used to recover from auto-
241
+ * suspend (heartbeat monitor) or a manual `suspendAgent`.
242
+ * @param agentId - The agent identifier
243
+ */
244
+ resumeAgent(agentId: string): Promise<unknown>;
245
+ /**
246
+ * Send a liveness heartbeat for an agent. The heartbeat monitor uses
247
+ * `last_heartbeat` to decide whether to auto-suspend on the next sweep.
248
+ * @param agentId - The agent identifier
249
+ */
250
+ agentHeartbeat(agentId: string): Promise<unknown>;
251
+ /**
252
+ * Fetch every capability attestation registered on this node for
253
+ * `capability`. `capability` accepts the same short-form tags as
254
+ * `register` (`nlp`, `vision`, `code`, `data`, `blockchain`,
255
+ * `smart_contract`, `api_integration`, `coordination`) — anything else
256
+ * is treated as a `Custom` capability with that name.
257
+ *
258
+ * When `verifiedOnly` is `true` the node re-runs query-time signature
259
+ * + expiry checks before returning (defence in depth on top of
260
+ * submit-time verification per #52). Default is `false`.
261
+ *
262
+ * Returns `{capability, verified_only, attestations: [...], total}`.
263
+ *
264
+ * @param capability - Capability short-form or custom name
265
+ * @param verifiedOnly - Force query-time re-verification before returning
266
+ */
267
+ getCapabilityAttestations(capability: string, verifiedOnly?: boolean): Promise<unknown>;
268
+ /**
269
+ * Fetch every capability attestation issued for a specific agent. The
270
+ * reply includes the agent's registered capability list, the full
271
+ * attestation envelopes, and the agent's registered wallet address
272
+ * (used by the self-attestation guard).
273
+ *
274
+ * Returns `{agent_id, capabilities, attestations: [...],
275
+ * total_attestations, registered_address}`.
276
+ *
277
+ * @param agentId - The agent ID to look up
278
+ */
279
+ getAgentCapabilityAttestations(agentId: string): Promise<unknown>;
280
+ /**
281
+ * Pick the "best" agent on this node for `capability`. Selection prefers
282
+ * the most recent TEE-backed attestation, falling back to any agent that
283
+ * has registered the capability. `capability` is parsed with the same
284
+ * short-form/`Custom` rules as `getCapabilityAttestations`.
285
+ *
286
+ * Returns `{capability, best_agent: string | null, total_candidates}`.
287
+ *
288
+ * @param capability - Capability short-form or custom name
289
+ */
290
+ findBestAgentForCapability(capability: string): Promise<unknown>;
183
291
  }
184
292
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -19,35 +19,98 @@ class AgentClient {
19
19
  this.rpc = rpc;
20
20
  }
21
21
  /**
22
- * Register a new AI agent on the network.
23
- * @param agentId - Unique identifier for the agent
24
- * @param name - Human-readable name
25
- * @param capabilities - List of agent capabilities
26
- * @returns Registration response with agent ID and status
22
+ * Register a new AI agent on the network. The node provisions a server-
23
+ * side hybrid (FROST Ed25519 + ML-DSA-65) wallet and binds it to a
24
+ * fresh `did:tenzro:machine:` identity. Returns the agent's `agent_id`,
25
+ * `wallet_address`, `tenzro_did`, the agent's `classical_public_key`
26
+ * (32-byte Ed25519 hex) and the `pq_verifying_key_len`.
27
+ *
28
+ * For self-custodial registration (no server-held keys), see
29
+ * {@link registerWithKeys}.
30
+ *
31
+ * @param name - Human-readable agent name
32
+ * @param creator - Hex-encoded address that will own this agent
33
+ * @param capabilities - Capability short names: `nlp`, `vision`, `code`,
34
+ * `data`, `blockchain`, `smart_contract`, `api_integration`,
35
+ * `coordination`. Anything else becomes a `Custom` capability.
27
36
  */
28
- async register(agentId, name, capabilities) {
37
+ async register(name, creator, capabilities) {
29
38
  return this.rpc.call("tenzro_registerAgent", [
30
39
  {
31
- agent_id: agentId,
32
40
  name,
41
+ creator,
33
42
  capabilities,
34
43
  },
35
44
  ]);
36
45
  }
37
46
  /**
38
- * Send a message to another agent.
39
- * @param agentId - Target agent identifier
40
- * @param message - Message content
41
- * @returns Message response with payload and message ID
47
+ * BYOK registration: register an agent self-custodially with a
48
+ * caller-supplied hybrid keypair. Both `publicKey` (32 bytes, Ed25519)
49
+ * and `pqPublicKey` (1952 bytes, ML-DSA-65) must be supplied as hex
50
+ * (with or without `0x` prefix). The node performs no wallet
51
+ * provisioning; the caller retains full control of the signing keys
52
+ * and is responsible for producing all `sendAgentMessage` signatures
53
+ * off-node. The returned envelope sets `byok: true` and omits the
54
+ * `classical_public_key` / `pq_verifying_key_len` fields (the caller
55
+ * already has them).
42
56
  */
43
- async sendMessage(agentId, message) {
57
+ async registerWithKeys(name, creator, capabilities, publicKey, pqPublicKey) {
58
+ return this.rpc.call("tenzro_registerAgent", [
59
+ {
60
+ name,
61
+ creator,
62
+ capabilities,
63
+ public_key: publicKey,
64
+ pq_public_key: pqPublicKey,
65
+ },
66
+ ]);
67
+ }
68
+ /**
69
+ * Send an unsigned `AgentMessage` from one registered agent to another.
70
+ * Only valid when the local node's `MessageRouter` has
71
+ * `enable_signing == false` (test/dev configs). On the production
72
+ * router this call is rejected with a signature-required error — use
73
+ * {@link sendMessageSigned} instead.
74
+ */
75
+ async sendMessage(from, to, message) {
44
76
  return this.rpc.call("tenzro_sendAgentMessage", [
45
77
  {
46
- agent_id: agentId,
78
+ from,
79
+ to,
47
80
  message,
48
81
  },
49
82
  ]);
50
83
  }
84
+ /**
85
+ * Send a hybrid-signed `AgentMessage`. Both signature legs are required
86
+ * when the router enforces signing (production default); half-signed
87
+ * messages are rejected to prevent downgrade attacks.
88
+ *
89
+ * The signing preimage is `SHA-256(AgentMessage::signing_data())`,
90
+ * which depends on `from`, `to`, the resolved sender/recipient wallet
91
+ * addresses, the message body, the message type, and the optional
92
+ * `replyTo`. Callers must construct the same preimage off-node and
93
+ * produce both an Ed25519 (64-byte) and an ML-DSA-65 (3309-byte)
94
+ * signature. Both signatures are passed as hex (with or without `0x`
95
+ * prefix).
96
+ *
97
+ * `replyTo` (if used) MUST be set on the message before signing,
98
+ * because it is part of `signing_data` — the SDK forwards it verbatim
99
+ * so the server reconstructs the same preimage the caller signed.
100
+ */
101
+ async sendMessageSigned(params) {
102
+ return this.rpc.call("tenzro_sendAgentMessage", [
103
+ {
104
+ from: params.from,
105
+ to: params.to,
106
+ message: params.message,
107
+ signature: params.signature,
108
+ pq_signature: params.pqSignature,
109
+ message_type: params.messageType,
110
+ reply_to: params.replyTo,
111
+ },
112
+ ]);
113
+ }
51
114
  /**
52
115
  * Delegate a task to an agent using the A2A protocol.
53
116
  * @param agentId - Target agent identifier
@@ -307,6 +370,92 @@ class AgentClient {
307
370
  { agent_id: agentId },
308
371
  ]);
309
372
  }
373
+ /**
374
+ * Operational suspend (Active → Suspended). The reversible counterpart of
375
+ * `resumeAgent`. Distinct from the kill-switch `pauseAgent` /
376
+ * `quarantineAgent` axes (those require signed transactions).
377
+ * @param agentId - The agent identifier
378
+ * @param reason - Free-form audit reason
379
+ */
380
+ async suspendAgent(agentId, reason) {
381
+ return this.rpc.call("tenzro_suspendAgent", {
382
+ agent_id: agentId,
383
+ reason,
384
+ });
385
+ }
386
+ /**
387
+ * Recover a Suspended agent back to Active. Used to recover from auto-
388
+ * suspend (heartbeat monitor) or a manual `suspendAgent`.
389
+ * @param agentId - The agent identifier
390
+ */
391
+ async resumeAgent(agentId) {
392
+ return this.rpc.call("tenzro_resumeAgent", {
393
+ agent_id: agentId,
394
+ });
395
+ }
396
+ /**
397
+ * Send a liveness heartbeat for an agent. The heartbeat monitor uses
398
+ * `last_heartbeat` to decide whether to auto-suspend on the next sweep.
399
+ * @param agentId - The agent identifier
400
+ */
401
+ async agentHeartbeat(agentId) {
402
+ return this.rpc.call("tenzro_agentHeartbeat", {
403
+ agent_id: agentId,
404
+ });
405
+ }
406
+ /**
407
+ * Fetch every capability attestation registered on this node for
408
+ * `capability`. `capability` accepts the same short-form tags as
409
+ * `register` (`nlp`, `vision`, `code`, `data`, `blockchain`,
410
+ * `smart_contract`, `api_integration`, `coordination`) — anything else
411
+ * is treated as a `Custom` capability with that name.
412
+ *
413
+ * When `verifiedOnly` is `true` the node re-runs query-time signature
414
+ * + expiry checks before returning (defence in depth on top of
415
+ * submit-time verification per #52). Default is `false`.
416
+ *
417
+ * Returns `{capability, verified_only, attestations: [...], total}`.
418
+ *
419
+ * @param capability - Capability short-form or custom name
420
+ * @param verifiedOnly - Force query-time re-verification before returning
421
+ */
422
+ async getCapabilityAttestations(capability, verifiedOnly = false) {
423
+ return this.rpc.call("tenzro_getCapabilityAttestations", {
424
+ capability,
425
+ verified_only: verifiedOnly,
426
+ });
427
+ }
428
+ /**
429
+ * Fetch every capability attestation issued for a specific agent. The
430
+ * reply includes the agent's registered capability list, the full
431
+ * attestation envelopes, and the agent's registered wallet address
432
+ * (used by the self-attestation guard).
433
+ *
434
+ * Returns `{agent_id, capabilities, attestations: [...],
435
+ * total_attestations, registered_address}`.
436
+ *
437
+ * @param agentId - The agent ID to look up
438
+ */
439
+ async getAgentCapabilityAttestations(agentId) {
440
+ return this.rpc.call("tenzro_getAgentCapabilityAttestations", {
441
+ agent_id: agentId,
442
+ });
443
+ }
444
+ /**
445
+ * Pick the "best" agent on this node for `capability`. Selection prefers
446
+ * the most recent TEE-backed attestation, falling back to any agent that
447
+ * has registered the capability. `capability` is parsed with the same
448
+ * short-form/`Custom` rules as `getCapabilityAttestations`.
449
+ *
450
+ * Returns `{capability, best_agent: string | null, total_candidates}`.
451
+ *
452
+ * @param capability - Capability short-form or custom name
453
+ */
454
+ async findBestAgentForCapability(capability) {
455
+ return this.rpc.call("tenzro_findBestAgentForCapability", {
456
+ capability,
457
+ });
458
+ }
310
459
  }
311
460
  exports.AgentClient = AgentClient;
312
461
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;;AAkBA,0DAA0D;AAC1D,SAAS,YAAY;IACnB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAa,WAAW;IACF;IAApB,YAAoB,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAEtC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,IAAY,EACZ,YAAsB;QAEtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAwB,sBAAsB,EAAE;YAClE;gBACE,QAAQ,EAAE,OAAO;gBACjB,IAAI;gBACJ,YAAY;aACb;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAuB,yBAAyB,EAAE;YACpE;gBACE,QAAQ,EAAE,OAAO;gBACjB,OAAO;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAuB,MAAM,EAAE;YACjD,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,EAAE,EAAE,YAAY,EAAE;gBAClB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;iBACjD;aACF;YACD,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAkB,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,IAAY,EACZ,YAAsB;QAEtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAqB,mBAAmB,EAAE;YAC5D,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,IAAY,EACZ,YAAqB;QAErB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAuB,qBAAqB,EAAE;YAChE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CACf,cAAsB,EACtB,OAAwD,EACxD,OAAkF;QAElF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAsB,oBAAoB,EAAE;YAC9D,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAc,uBAAuB,EAAE;YACzD,EAAE,QAAQ,EAAE,OAAO,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAyB,uBAAuB,EAAE;YACpE,EAAE,QAAQ,EAAE,OAAO,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,WAAoB,EACpB,OAAgC,EAChC,gBAAyB;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAA6B,2BAA2B,EAAE;YAC5E;gBACE,WAAW,EAAE,UAAU;gBACvB,YAAY,EAAE,WAAW;gBACzB,OAAO;gBACP,kBAAkB,EAAE,gBAAgB;aACrC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,aAAsB,EACtB,MAAgB;QAEhB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAyB,yBAAyB,EAAE;YACtE,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;SACtE,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAgB,8BAA8B,EAAE;YAClE,EAAE,WAAW,EAAE,UAAU,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CACvB,UAAkB,EAClB,MAAiC;QAEjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAgB,4BAA4B,EAAE;YAChE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAE/E;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAIpB;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC5C;gBACE,QAAQ,EAAE,OAAO,EAAE,QAAQ;gBAC3B,YAAY,EAAE,OAAO,EAAE,WAAW;gBAClC,KAAK,EAAE,OAAO,EAAE,KAAK;aACtB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,UAAmB;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,mBAAmB,CACvB,QAAgB,EAChB,IAAY,EACZ,OAAe,EACf,YAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACjD;gBACE,SAAS,EAAE,QAAQ;gBACnB,IAAI;gBACJ,QAAQ,EAAE,OAAO;gBACjB,YAAY;aACb;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,OAAe,EACf,WAAmB,EACnB,UAAkB;QAElB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACvC;gBACE,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,UAAU;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CACb,OAAe,EACf,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,KAAc;QAEd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACvC;gBACE,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO;gBACjB,MAAM;gBACN,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,OAAe,EACf,MAAc,EACd,SAAkB;QAElB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAClD;gBACE,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,OAAO;gBACjB,MAAM;gBACN,UAAU,EAAE,SAAS;aACtB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,MAAiB;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,0BAA0B,EAAE;YAC1D,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,0BAA0B,EAAE;YAC1D,EAAE,QAAQ,EAAE,OAAO,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;CACF;AApXD,kCAoXC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import type { RpcClient } from "./rpc";
2
+ /**
3
+ * Key class — controls who can revoke the key.
4
+ *
5
+ * - `subject`: default. Subject can self-revoke via `revokeMine`; admin
6
+ * can revoke via `revoke`.
7
+ * - `operator_internal`: operator-only ops key. Admin can revoke; subject
8
+ * path does not apply.
9
+ * - `operator_protected`: operator-only locked-down key. Not revokable
10
+ * via RPC by anyone (including admin). Rotate by updating the operator
11
+ * secret + restarting the node.
12
+ */
13
+ export type KeyClass = "subject" | "operator_internal" | "operator_protected";
14
+ /** Parameters for {@link ApiKeyClient.create}. */
15
+ export interface CreateApiKeyParams {
16
+ /** Free-form label shown in `list`. */
17
+ label: string;
18
+ /**
19
+ * Optional subject identifier — typically a Tenzro DID. Required if
20
+ * the operator wants the holder to self-revoke later.
21
+ */
22
+ subject?: string;
23
+ /** Scopes to grant. Defaults to `["canton"]` server-side when empty. */
24
+ scopes?: string[];
25
+ /** Revocability class. Defaults to `subject` when omitted. */
26
+ class?: KeyClass;
27
+ }
28
+ /**
29
+ * Response from {@link ApiKeyClient.create}. The `key` field is the
30
+ * plaintext `tnz_...` token and is shown exactly once — persist it
31
+ * immediately.
32
+ */
33
+ export interface CreatedApiKey {
34
+ key: string;
35
+ key_id: string;
36
+ label: string;
37
+ subject?: string | null;
38
+ scopes: string[];
39
+ class?: string | null;
40
+ created_at: number;
41
+ note?: string | null;
42
+ }
43
+ /** One row of the keyring as returned by `list` / `listMine`. */
44
+ export interface ApiKeyRecord {
45
+ key_id: string;
46
+ subject?: string | null;
47
+ label: string;
48
+ scopes: string[];
49
+ class?: string | null;
50
+ created_at: number;
51
+ revoked_at?: number | null;
52
+ active: boolean;
53
+ }
54
+ /** Response from {@link ApiKeyClient.list}. */
55
+ export interface ApiKeyList {
56
+ keys: ApiKeyRecord[];
57
+ }
58
+ /** Response from {@link ApiKeyClient.listMine}. */
59
+ export interface MyApiKeyList {
60
+ keys: ApiKeyRecord[];
61
+ subject: string;
62
+ }
63
+ /** Response from {@link ApiKeyClient.revoke} / {@link ApiKeyClient.revokeMine}. */
64
+ export interface RevokeApiKeyResult {
65
+ key_id: string;
66
+ revoked: boolean;
67
+ }
68
+ /**
69
+ * API-key management client.
70
+ *
71
+ * Two control planes:
72
+ *
73
+ * 1. **Operator** (`X-Tenzro-Admin-Token`): {@link create} / {@link list}
74
+ * / {@link revoke} any key on the operator's own node. Sourced from
75
+ * the `TENZRO_ADMIN_TOKEN` env var by the underlying `RpcClient`.
76
+ * 2. **Subject** (`X-Tenzro-Api-Key`): {@link listMine} / {@link revokeMine}
77
+ * keys belonging to the caller's own subject. Sourced from `TENZRO_API_KEY`.
78
+ *
79
+ * Every Tenzro node operator holds their own admin token for *their
80
+ * own* node. There is no global "Tenzro Labs token," and admin
81
+ * capabilities do not extend to network-wide state (validator set,
82
+ * treasury, fee schedule, system contracts — those flow through
83
+ * on-chain governance via `tenzro-token`). See `docs/api-keys.md`.
84
+ */
85
+ export declare class ApiKeyClient {
86
+ private readonly rpc;
87
+ constructor(rpc: RpcClient);
88
+ /**
89
+ * Mint a new API key on this node. Requires `TENZRO_ADMIN_TOKEN` in
90
+ * the environment.
91
+ *
92
+ * `class` controls revocability:
93
+ * - `subject` (default): subject can self-revoke, admin can revoke.
94
+ * - `operator_internal`: admin-only revoke.
95
+ * - `operator_protected`: not revokable via RPC — rotate by updating
96
+ * the operator secret and restarting the node. The SDK injects the
97
+ * `confirm_operator_protected` interlock automatically.
98
+ */
99
+ create(params: CreateApiKeyParams): Promise<CreatedApiKey>;
100
+ /**
101
+ * List every API key the node has issued — active and revoked.
102
+ * Admin-token-gated.
103
+ */
104
+ list(): Promise<ApiKeyList>;
105
+ /**
106
+ * Revoke an API key by its non-secret `key_id`. Admin-token-gated.
107
+ *
108
+ * Fails with `-32004` if the target is an `operator_protected` key
109
+ * (those cannot be revoked via RPC, by anyone, including an admin).
110
+ * Rotate that class by updating the operator secret + restart.
111
+ */
112
+ revoke(keyId: string): Promise<RevokeApiKeyResult>;
113
+ /**
114
+ * List every API key belonging to the caller's own subject.
115
+ * Requires `TENZRO_API_KEY` in the environment.
116
+ */
117
+ listMine(): Promise<MyApiKeyList>;
118
+ /**
119
+ * Revoke an API key belonging to the caller's own subject.
120
+ * Requires `TENZRO_API_KEY` in the environment.
121
+ *
122
+ * Only `subject`-class keys are eligible. The error for "no such key"
123
+ * and "not your key" is intentionally the same so ownership cannot be
124
+ * probed.
125
+ */
126
+ revokeMine(keyId: string): Promise<RevokeApiKeyResult>;
127
+ }
128
+ //# sourceMappingURL=api-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../src/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;AAE9E,kDAAkD;AAClD,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAI3C;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAehE;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjC;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQxD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAIvC;;;;;;;OAOG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAK7D"}