@the-ai-company/cbio-node-runtime 1.46.0 → 1.47.2

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 (115) hide show
  1. package/README.md +85 -239
  2. package/dist/clients/agent/client.d.ts +1 -0
  3. package/dist/clients/agent/client.js +25 -9
  4. package/dist/clients/agent/client.js.map +1 -1
  5. package/dist/clients/owner/client.d.ts +6 -4
  6. package/dist/clients/owner/client.js +41 -0
  7. package/dist/clients/owner/client.js.map +1 -1
  8. package/dist/clients/owner/contracts.d.ts +36 -0
  9. package/dist/clients/owner/index.d.ts +1 -1
  10. package/dist/runtime/bootstrap.d.ts +7 -7
  11. package/dist/runtime/bootstrap.js +2 -2
  12. package/dist/runtime/index.d.ts +3 -3
  13. package/dist/runtime/index.js +1 -1
  14. package/dist/runtime/index.js.map +1 -1
  15. package/dist/runtime/vault-metadata.js +1 -1
  16. package/dist/runtime/vault-metadata.js.map +1 -1
  17. package/dist/vault-core/contracts.d.ts +28 -2
  18. package/dist/vault-core/contracts.js +2 -0
  19. package/dist/vault-core/contracts.js.map +1 -1
  20. package/dist/vault-core/core.d.ts +10 -2
  21. package/dist/vault-core/core.js +24 -0
  22. package/dist/vault-core/core.js.map +1 -1
  23. package/dist/vault-core/defaults.d.ts +15 -3
  24. package/dist/vault-core/defaults.js +53 -14
  25. package/dist/vault-core/defaults.js.map +1 -1
  26. package/dist/vault-core/index.d.ts +1 -1
  27. package/dist/vault-core/index.js.map +1 -1
  28. package/dist/vault-core/persistence.js +5 -2
  29. package/dist/vault-core/persistence.js.map +1 -1
  30. package/dist/vault-core/ports.d.ts +6 -0
  31. package/dist/vault-ingress/index.d.ts +11 -2
  32. package/dist/vault-ingress/index.js +8 -0
  33. package/dist/vault-ingress/index.js.map +1 -1
  34. package/dist/vault-ingress/remote-transport.js +4 -1
  35. package/dist/vault-ingress/remote-transport.js.map +1 -1
  36. package/docs/ARCHITECTURE.md +34 -107
  37. package/docs/CUSTODY_MODEL.md +27 -129
  38. package/docs/IDENTITY_MODEL.md +34 -112
  39. package/docs/REFERENCE.md +57 -404
  40. package/docs/api/README.md +4 -3
  41. package/docs/api/classes/IdentityError.md +2 -2
  42. package/docs/api/classes/VaultCore.md +43 -1
  43. package/docs/api/classes/VaultCoreError.md +1 -1
  44. package/docs/api/enumerations/IdentityErrorCode.md +1 -1
  45. package/docs/api/functions/createAgentClient.md +1 -1
  46. package/docs/api/functions/createIdentity.md +1 -1
  47. package/docs/api/functions/createOwnerHttpFlowBoundary.md +1 -1
  48. package/docs/api/functions/createPersistentVaultCoreDependencies.md +1 -1
  49. package/docs/api/functions/createStandardAcquireBoundary.md +1 -1
  50. package/docs/api/functions/createStandardDispatchBoundary.md +1 -1
  51. package/docs/api/functions/createVault.md +3 -3
  52. package/docs/api/functions/createVaultClient.md +1 -1
  53. package/docs/api/functions/createVaultCore.md +1 -1
  54. package/docs/api/functions/createVaultCoreDependencies.md +1 -1
  55. package/docs/api/functions/createVaultService.md +1 -1
  56. package/docs/api/functions/createWorkspaceStorage.md +1 -1
  57. package/docs/api/functions/deriveIdentityId.md +1 -1
  58. package/docs/api/functions/deriveVaultWorkingKeyFromPassword.md +1 -1
  59. package/docs/api/functions/getDefaultWorkspaceDir.md +1 -1
  60. package/docs/api/functions/handleVaultHttpDispatch.md +1 -1
  61. package/docs/api/functions/initializeVaultCustody.md +1 -1
  62. package/docs/api/functions/listVaults.md +3 -3
  63. package/docs/api/functions/readVaultProfile.md +1 -1
  64. package/docs/api/functions/recoverVault.md +4 -4
  65. package/docs/api/functions/recoverVaultWorkingKey.md +1 -1
  66. package/docs/api/functions/restoreIdentity.md +1 -1
  67. package/docs/api/functions/updateVaultMetadata.md +1 -1
  68. package/docs/api/functions/wrapVaultCoreAsVaultService.md +1 -1
  69. package/docs/api/functions/writeVaultProfile.md +1 -1
  70. package/docs/api/interfaces/AgentClient.md +1 -1
  71. package/docs/api/interfaces/AgentDispatchIntent.md +1 -1
  72. package/docs/api/interfaces/AgentDispatchTransport.md +1 -1
  73. package/docs/api/interfaces/AgentIdentity.md +1 -1
  74. package/docs/api/interfaces/AgentSigner.md +1 -1
  75. package/docs/api/interfaces/CbioRuntime.md +8 -8
  76. package/docs/api/interfaces/CreateAgentClientOptions.md +7 -1
  77. package/docs/api/interfaces/CreateIdentityOptions.md +1 -1
  78. package/docs/api/interfaces/CreatePersistentVaultCoreDependenciesOptions.md +1 -1
  79. package/docs/api/interfaces/CreateVaultClientOptions.md +1 -1
  80. package/docs/api/interfaces/CreateVaultOptions.md +1 -1
  81. package/docs/api/interfaces/CreatedVault.md +1 -1
  82. package/docs/api/interfaces/DefaultPolicyEngineOptions.md +1 -1
  83. package/docs/api/interfaces/IStorageProvider.md +1 -1
  84. package/docs/api/interfaces/InitializeVaultCustodyOptions.md +1 -1
  85. package/docs/api/interfaces/InitializedVaultCustody.md +1 -1
  86. package/docs/api/interfaces/OwnerDefineSecretTargetsInput.md +1 -1
  87. package/docs/api/interfaces/OwnerSecretTargetBinding.md +1 -1
  88. package/docs/api/interfaces/OwnerStoreSecretInput.md +1 -1
  89. package/docs/api/interfaces/OwnerWriteSecretInput.md +1 -1
  90. package/docs/api/interfaces/RecoverVaultOptions.md +1 -1
  91. package/docs/api/interfaces/RecoveredVault.md +1 -1
  92. package/docs/api/interfaces/RestoreIdentityOptions.md +1 -1
  93. package/docs/api/interfaces/Signer.md +1 -1
  94. package/docs/api/interfaces/VaultAuditQueryInput.md +1 -1
  95. package/docs/api/interfaces/VaultClient.md +20 -3
  96. package/docs/api/interfaces/VaultCoreDependenciesOptions.md +1 -1
  97. package/docs/api/interfaces/VaultCreateAgentInput.md +29 -0
  98. package/docs/api/interfaces/VaultDeleteSecretInput.md +1 -1
  99. package/docs/api/interfaces/VaultExportSecretInput.md +1 -1
  100. package/docs/api/interfaces/VaultGrantCapabilityInput.md +1 -1
  101. package/docs/api/interfaces/VaultIdentity.md +1 -1
  102. package/docs/api/interfaces/VaultListAgentsInput.md +1 -1
  103. package/docs/api/interfaces/VaultListCapabilitiesInput.md +1 -1
  104. package/docs/api/interfaces/{VaultPublicMetadata.md → VaultMetadata.md} +2 -2
  105. package/docs/api/interfaces/VaultObject.md +1 -1
  106. package/docs/api/interfaces/VaultProfile.md +1 -1
  107. package/docs/api/interfaces/VaultRegisterAgentInput.md +19 -1
  108. package/docs/api/interfaces/VaultRegisterFlowInput.md +1 -1
  109. package/docs/api/interfaces/VaultRevokeCapabilityInput.md +1 -1
  110. package/docs/api/interfaces/VaultSigner.md +1 -1
  111. package/docs/api/type-aliases/AgentCapabilityEnvelope.md +1 -1
  112. package/docs/api/type-aliases/CbioRuntimeModule.md +1 -1
  113. package/docs/api/variables/DEFAULT_VAULT_KEY_CUSTODY_BLOB_KEY.md +1 -1
  114. package/docs/zh/README.md +64 -39
  115. package/package.json +1 -1
package/README.md CHANGED
@@ -1,32 +1,18 @@
1
1
  # cbio Vault Runtime
2
2
 
3
- Node.js vault runtime with a hard-cut architecture: vault core first, explicit clients second.
3
+ Node.js vault runtime with a **Sovereign Vault** architecture: authority is rooted in a master password, and agent identities are fully managed within the vault's encrypted storage.
4
4
 
5
5
  **Source:** [https://github.com/TheAICompany/cbio-node-runtime](https://github.com/TheAICompany/cbio-node-runtime)
6
6
 
7
- ## Documentation / 文档 / ドキュメント / 문서 / Docs
8
-
9
- - [English](README.md)
10
- - [Custody Model](docs/CUSTODY_MODEL.md)
11
- - [Identity Model](docs/IDENTITY_MODEL.md)
12
- - [Process Isolation (A/B Architecture)](docs/PROCESS_ISOLATION.md)
13
- - [中文](docs/zh/README.md)
14
- - [日本語](docs/ja/README.md)
15
- - [한국어](docs/ko/README.md)
16
- - [Español](docs/es/README.md)
17
- - [Português](docs/pt/README.md)
18
- - [Français](docs/fr/README.md)
19
-
20
7
  ---
21
8
 
22
- - No CLI
23
- - No TUI
9
+ ## Key Features
24
10
 
25
- Main export now centers on:
26
- - identity creation and recovery
27
- - persistent vault bootstrap and recovery
28
- - owner and agent clients
29
- - owner flow-boundary helpers
11
+ - **No CLI / No TUI**: Pure library for integration into Node.js applications.
12
+ - **Authority-centric**: Administrative control is tied to the vault's master password, not an external identity.
13
+ - **Managed Agent Custody**: Generate and store agent private keys securely inside the vault.
14
+ - **Process Isolation**: Hard separation between the Security Process (Master) and Agent Processes (Consumers).
15
+ - **Zero-Leak Discovery**: Vault metadata is fully encrypted and hidden until unlocked.
30
16
 
31
17
  ## Install
32
18
 
@@ -38,267 +24,127 @@ npm install @the-ai-company/cbio-node-runtime
38
24
 
39
25
  ## Usage
40
26
 
41
- ```ts
42
- import {
43
- createChildIdentity,
44
- createIdentity,
45
- createWorkspaceStorage,
46
- ensureIdentityPrivateVault,
47
- readIdentityPrivateVaultProfile,
48
- readIdentityPrivateVaultChildrenState,
49
- restoreIdentity,
50
- createVault,
51
- recoverVault,
52
- createOwnerHttpFlowBoundary,
53
- createStandardAcquireBoundary,
54
- createVaultClient,
55
- createAgentClient,
56
- FsStorageProvider,
57
- } from '@the-ai-company/cbio-node-runtime';
58
- ```
27
+ ### 1. Bootstrap a New Vault
59
28
 
60
- Identity restore example:
29
+ The Sovereign Vault requires only a storage provider and a master password.
61
30
 
62
31
  ```ts
63
- const identity = restoreIdentity(existingPrivateKey);
64
- ```
32
+ import {
33
+ createVault,
34
+ FsStorageProvider,
35
+ createWorkspaceStorage
36
+ } from '@the-ai-company/cbio-node-runtime';
65
37
 
66
- Child identity example:
38
+ const storage = new FsStorageProvider('./my-vaults');
67
39
 
68
- ```ts
69
- const rootIdentity = createIdentity({ nickname: 'root' });
70
- await ensureIdentityPrivateVault(storage, rootIdentity);
71
- const childIdentity = await createChildIdentity(storage, rootIdentity, {
72
- nickname: 'worker-1',
40
+ const myVault = await createVault(storage, {
41
+ vaultId: 'main-vault',
42
+ password: 'your-secure-password',
43
+ nickname: 'Production Vault'
73
44
  });
74
45
 
75
- // Enumerate Discovery
76
- const identities = await listIdentities(storage);
77
- const vaults = await listVaults(storage);
78
-
79
- const profile = await readIdentityMetadata(storage, identities[0].identityId); // Public Discovery
80
- const fullProfile = await readIdentityMetadata(storage, rootIdentity.identityId, rootIdentity.privateKey); // Full Authorized Profile
81
- const children = await readIdentityPrivateVaultChildrenState(storage, rootIdentity.privateKey);
46
+ console.log(`Vault created: ${myVault.nickname}`);
82
47
  ```
83
48
 
84
- Vaults also support standardized public metadata for discovery:
85
-
86
- ```ts
87
- import { type VaultPublicMetadata } from '@the-ai-company/cbio-node-runtime';
88
-
89
- const publicMetadata: VaultPublicMetadata = {
90
- displayName: 'Primary Vault',
91
- tags: ['production', 'main'],
92
- };
93
-
94
- const createdVault = await createVault({
95
- ownerIdentity: rootIdentity,
96
- nickname: 'main-vault',
97
- publicMetadata,
98
- });
99
- ```
100
-
101
- If you want to override the default workspace directory:
49
+ ### 2. Recover an Existing Vault
102
50
 
103
51
  ```ts
104
- const storage = createWorkspaceStorage('/tmp/cbio');
105
- const createdVault = await createVault(storage, {
106
- ownerIdentity: rootIdentity,
107
- nickname: 'main-vault',
52
+ import { recoverVault, FsStorageProvider } from '@the-ai-company/cbio-node-runtime';
53
+
54
+ const vault = await recoverVault(storage, {
55
+ vaultId: 'main-vault',
56
+ password: 'your-secure-password'
108
57
  });
109
58
  ```
110
59
 
111
- The workspace root can contain many vaults. Each vault is physically divided into `vault/sealed/` (encrypted)### Storage Management
112
-
113
- By default, the SDK uses a local directory (e.g., `~/cbio/`) as the **Workspace Root**.
114
- - `createVault({ ... })`: Automatically creates a sub-directory `vaults/<vault-id>/` and returns a **Prefixed Storage** anchored to that sub-directory.
115
- - **Important**: When you receive a `storage` object from `createVault`, it is already pointing *inside* the vault's own space. Subsequent calls to `recoverVault` or other high-level APIs using this storage will resolve paths correctly relative to this anchor.
116
-
117
- ### CRUD & Metadata
118
- The SDK provides a complete lifecycle for vaults and secrets:
119
- 1. **Creation**: `createVault`
120
- 2. **Discovery/Read**: `listVaults`, `recoverVault`
121
- 3. **Update**: `updateVaultMetadata` (e.g., for nicknames)
122
- 4. **Management**: `listAgents`, `listCapabilities`, `revokeCapability` (via Client)
123
- 5. **Deletion**: `deleteSecret` (via Client) or manual storage cleanup for entire vaults.
124
-
125
- and `vault/public/` (signed discovery).
126
-
127
- Every identity also has its own private namespace for encrypted metadata, and a companion discovery area for public information.
128
-
129
- ## Architecture
130
-
131
- Core terms:
132
-
133
- - `identity`
134
- An external principal represented by a public/private keypair.
135
- - `owner`
136
- The single admin role that a vault binds to one identity.
137
- - `agent`
138
- A delegated role that a vault binds to an identity registered by the owner.
139
-
140
- Important role rule:
141
-
142
- - outside the vault there are only identities
143
- - inside a specific vault, those identities may be bound to roles such as `owner` or `agent`
144
- - root identities are independent
145
- - child identities may be deterministically derived from a parent identity
146
-
147
- The public runtime surface follows four hard rules:
148
-
149
- 1. Secret plaintext lives only in vault core.
150
- 2. Only owner and vault-trusted acquisition paths may write secrets.
151
- 3. Secrets are dispatched only to owner-approved or issuer-bound targets.
152
- 4. Vault validates and audits everything.
153
-
154
- The current HTTP-facing interface distinguishes two supported secret-flow classes:
155
-
156
- - `A` / `acquire_secret`
157
- No secret leaves the vault. A secret is extracted from the response and stored into the vault. Agent-visible output includes only protocol metadata plus a redacted response shape.
158
- - `B` / `send_secret`
159
- A stored secret is sent to an owner-approved target. The response is treated as normal business output and may be returned to the agent.
160
-
161
- This is an intentional boundary choice:
162
-
163
- - acquisition responses are treated as sensitive because they may contain newly issued secret material
164
- - dispatch responses are treated as ordinary protocol results because the operation itself is a standard secret-backed HTTP call to an owner-approved target
60
+ ### 3. Managed Agent Identities
165
61
 
166
- The vault does not attempt to second-guess every remote protocol. If a target returns sensitive data during a normal dispatch flow, that is part of the target contract and the owner's authorization decision.
62
+ You can generate and register agents directly within the vault. The vault holds the private keys for full custody.
167
63
 
168
- The runtime does not claim to understand arbitrary remote protocols. The API boundary makes clear what is supported:
169
-
170
- - acquisition is explicit and redacted
171
- - secret-backed dispatch is explicit and capability-gated
172
- - unsupported `C` / `D` style flows are not part of the current surface
173
-
174
- Owner-defined HTTP boundaries share one factory layer:
175
-
176
- - `createOwnerHttpFlowBoundary(...)`
177
- - `createStandardAcquireBoundary(...)`
178
- - `createStandardDispatchBoundary(...)`
179
-
180
- An owner-defined exception path also exists for non-standard but intentional integrations:
181
-
182
- - owner may register a `custom_http` flow
183
- - the flow fixes mode, target, method, and response visibility inside the vault
184
- - agent may only invoke the registered `customFlowId`
185
- - this is an explicit escape hatch, not the default path
186
-
187
- ## Status
64
+ ```ts
65
+ import { createVaultClient } from '@the-ai-company/cbio-node-runtime';
188
66
 
189
- The old identity-centric runtime is no longer the intended public architecture.
190
- This package now exposes the production local vault runtime surface as the primary API.
67
+ const client = createVaultClient({ vault: vault.vault });
191
68
 
192
- ## Example Shape
69
+ // Generate and register a new agent in one step
70
+ const [agentRecord, agentPrivateKey] = await client.createAgent({
71
+ agentId: 'worker-1',
72
+ nickname: 'Background Worker'
73
+ });
193
74
 
194
- ```ts
195
- const ownerIdentity = createIdentity({ nickname: 'owner-main' });
196
- const agentIdentity = createIdentity({ nickname: 'agent-worker' });
197
- const createdVault = await createVault({ ownerIdentity });
198
- const client = createVaultClient({ ownerIdentity, vault: createdVault.vault });
199
- const agent = createAgentClient({ agentIdentity, capability, vault: createdVault.vault });
75
+ console.log(`Agent public key: ${agentRecord.publicKey}`);
76
+ // Private key is returned during creation and stored securely in the vault.
200
77
  ```
201
78
 
202
- Owner API example:
79
+ ### 4. Secret Management (Owner)
203
80
 
204
81
  ```ts
205
- const storedSecret = await client.storeSecret({
82
+ // Write a secret and bind it to a target site
83
+ const record = await client.writeSecret({
206
84
  alias: 'api-token',
207
- plaintext: 'secret-value',
85
+ plaintext: 'super-secret-value',
86
+ targetBindings: [{
87
+ kind: 'site',
88
+ targetId: 'my-api',
89
+ targetUrl: 'https://api.example.com/endpoint',
90
+ methods: ['POST']
91
+ }]
208
92
  });
209
93
 
210
- await client.defineSecretTargets({
211
- alias: storedSecret.alias.value,
212
- targetBindings: [
213
- {
214
- kind: 'site',
215
- targetId: 'api.example.com',
216
- targetUrl: 'https://api.example.com/endpoint',
217
- methods: ['POST'],
218
- },
219
- ],
94
+ // Grant the agent capability to use this secret
95
+ await client.grantCapability({
96
+ capability: {
97
+ vaultId: vault.vaultId,
98
+ capabilityId: 'cap-1',
99
+ agentId: 'worker-1',
100
+ secretAliases: ['api-token'],
101
+ operation: 'dispatch_http',
102
+ allowedTargets: ['https://api.example.com/endpoint'],
103
+ allowedMethods: ['POST'],
104
+ issuedAt: new Date().toISOString()
105
+ }
220
106
  });
221
107
  ```
222
108
 
223
- `writeSecret(...)` is the one-step variant and requires `targetBindings`.
224
-
225
- Capability example:
226
-
227
- ```ts
228
- const capability = {
229
- vaultId: vault.vaultId,
230
- capabilityId: 'cap-1',
231
- agentId: agentIdentity.identityId,
232
- secretAliases: ['api-token'],
233
- operation: 'dispatch_http',
234
- allowedTargets: ['https://api.example.com/endpoint'],
235
- allowedMethods: ['POST'],
236
- issuedAt: new Date().toISOString(),
237
- };
238
-
239
- await client.grantCapability({ capability });
240
- ```
109
+ ### 5. Consuming Secrets (Agent)
241
110
 
242
- Custom flow example:
111
+ Agents run in isolated processes and communicate with the vault via a transport.
243
112
 
244
113
  ```ts
245
- await client.registerFlow({
246
- flowId: 'custom-status-read',
247
- ...createOwnerHttpFlowBoundary({
248
- mode: 'send_secret',
249
- targetUrl: 'https://api.example.com/custom-status',
250
- method: 'POST',
251
- responseVisibility: 'shape_only',
252
- }),
253
- });
254
- ```
114
+ import { createAgentClient, LocalSigner } from '@the-ai-company/cbio-node-runtime';
255
115
 
256
- Acquisition example:
257
-
258
- ```ts
259
- const acquireBoundary = createStandardAcquireBoundary({
260
- targetUrl: 'https://issuer.example.com/token',
261
- responseField: 'access_token',
262
- storeAlias: 'issuer-token',
116
+ const agent = createAgentClient({
117
+ agentIdentity: { agentId: 'worker-1' },
118
+ capability: myCapability, // Shared with the agent
119
+ vault: vault.vault, // Remote or local transport
120
+ signer: new LocalSigner({ privateKey: agentPrivateKey })
263
121
  });
264
122
 
265
- const acquired = await vault.acquireSecret({
266
- alias: acquireBoundary.responseSecret.storeAlias,
267
- issuerId: 'issuer-1',
268
- url: acquireBoundary.targetUrl,
269
- flow: 'oauth_token_response.access_token',
270
- method: acquireBoundary.method,
123
+ const result = await agent.dispatch({
124
+ secretAlias: 'api-token',
125
+ targetUrl: 'https://api.example.com/endpoint',
126
+ method: 'POST',
127
+ body: '{"data": "..."}'
271
128
  });
129
+ ```
272
130
 
273
- console.log(acquired.responseShape);
274
- // { token_type: 'Bearer', expires_in: 3600, scope: 'read write' }
275
-
276
- const exported = await client.exportSecret({
277
- alias: 'issuer-token',
278
- });
131
+ ---
279
132
 
280
- console.log(exported.plaintext);
281
- ```
133
+ ## Documentation
282
134
 
283
- Persistent custody bootstrap example:
135
+ - [Custody Model](docs/CUSTODY_MODEL.md) - Understanding managed agency and key storage.
136
+ - [Process Isolation](docs/PROCESS_ISOLATION.md) - Guidelines for A/B architecture.
284
137
 
285
- ```ts
286
- const ownerIdentity = createIdentity({ nickname: 'owner-main' });
287
- const storage = new FsStorageProvider('/tmp/cbio-vault');
288
- const createdVault = await createVault(storage, {
289
- vaultId: 'vault-persistent',
290
- ownerIdentity,
291
- });
138
+ ## Architecture Rules
292
139
 
293
- const recoveredVault = await recoverVault(storage, {
294
- vaultId: 'vault-persistent',
295
- ownerIdentity,
296
- });
297
- ```
140
+ 1. **Secret Isolation**: Plane-text secrets never leave the Security Process.
141
+ 2. **Authority Root**: The master password is the only source of administrative authority.
142
+ 3. **Auditability**: Every administrative and agent action is recorded in the vault's audit log under the `vault-master` or agent principal.
143
+ 4. **Binary Discovery**: Either the vault is unlocked and visible, or it is a silent directory of encrypted shards.
298
144
 
299
- ## Build
145
+ ## Build & Test
300
146
 
301
147
  ```bash
302
148
  npm run build
303
- npm run test
149
+ npm test
304
150
  ```
@@ -34,6 +34,7 @@ export interface CreateAgentClientOptions {
34
34
  vault?: VaultService;
35
35
  transport?: AgentDispatchTransport;
36
36
  signer?: AgentSigner;
37
+ token?: string;
37
38
  clock?: Clock;
38
39
  }
39
40
  /**
@@ -19,17 +19,29 @@ class DefaultAgentClient {
19
19
  _signer;
20
20
  _transport;
21
21
  _clock;
22
- constructor(_identity, _capability, _signer, _transport, _clock) {
22
+ _token;
23
+ constructor(_identity, _capability, _signer, _transport, _clock, _token) {
23
24
  this._identity = _identity;
24
25
  this._capability = _capability;
25
26
  this._signer = _signer;
26
27
  this._transport = _transport;
27
28
  this._clock = _clock;
29
+ this._token = _token;
28
30
  }
29
31
  async dispatch(intent) {
30
32
  const requestedAt = intent.requestedAt ?? this._clock.nowIso();
31
33
  const requestId = `${this._identity.agentId}:${requestedAt}:${intent.secretAlias ?? "no-secret"}:${intent.method}`;
32
- const signature = await this._signer.sign(createDispatchBinding(requestId, requestedAt, this._identity.agentId, this._capability.capabilityId, intent.secretAlias, intent.targetUrl, intent.method, intent.body));
34
+ let signature;
35
+ if (this._token) {
36
+ // Use token-based authentication
37
+ }
38
+ else {
39
+ // Use signature-based authentication
40
+ if (!this._signer) {
41
+ throw new Error("AgentClient: signer required for signature-based authentication when no token is provided");
42
+ }
43
+ signature = await this._signer.sign(createDispatchBinding(requestId, requestedAt, this._identity.agentId, this._capability.capabilityId, intent.secretAlias, intent.targetUrl, intent.method, intent.body));
44
+ }
33
45
  return this._transport.dispatch({
34
46
  vaultId: this._capability.vaultId,
35
47
  requestId,
@@ -57,6 +69,7 @@ class DefaultAgentClient {
57
69
  proof: {
58
70
  agentId: this._identity.agentId,
59
71
  signature,
72
+ token: this._token,
60
73
  requestId,
61
74
  requestedAt,
62
75
  },
@@ -74,14 +87,17 @@ function isCreateAgentClientOptions(value) {
74
87
  function isCreatedIdentity(value) {
75
88
  return "privateKey" in value && "publicKey" in value;
76
89
  }
77
- function resolveAgentSigner(identity, signer) {
78
- if (signer) {
79
- return signer;
90
+ function resolveAgentSigner(options) {
91
+ if (options.signer) {
92
+ return options.signer;
80
93
  }
81
- if (isCreatedIdentity(identity)) {
82
- return new LocalSigner(identity);
94
+ if (isCreatedIdentity(options.agentIdentity)) {
95
+ return new LocalSigner(options.agentIdentity);
83
96
  }
84
- throw new Error("createAgentClient() requires signer when agentIdentity does not include keys");
97
+ if (options.token) {
98
+ return undefined; // No signer needed if token is present
99
+ }
100
+ throw new Error("createAgentClient() requires signer or private key when no session token is provided");
85
101
  }
86
102
  function resolveAgentIdentity(options) {
87
103
  return "agentId" in options.agentIdentity
@@ -116,6 +132,6 @@ export function createAgentClient(options) {
116
132
  if (!isCreateAgentClientOptions(options)) {
117
133
  throw new Error("createAgentClient() requires a single options object");
118
134
  }
119
- return new DefaultAgentClient(resolveAgentIdentity(options), options.capability, resolveAgentSigner(options.agentIdentity, options.signer), resolveAgentTransport(options), options.clock ?? new SystemClock());
135
+ return new DefaultAgentClient(resolveAgentIdentity(options), options.capability, resolveAgentSigner(options), resolveAgentTransport(options), options.clock ?? new SystemClock(), options.token);
120
136
  }
121
137
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/clients/agent/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/clients/agent/client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { CreatedIdentity } from "../../runtime/identity.js";
1
+ import { type CreatedIdentity } from "../../runtime/identity.js";
2
2
  import { type Clock } from "../../vault-core/index.js";
3
3
  import type { VaultService } from "../../vault-ingress/index.js";
4
- import type { VaultAuditQueryInput, OwnerDefineSecretTargetsInput, VaultExportSecretInput, VaultGrantCapabilityInput, VaultRegisterFlowInput, VaultRegisterAgentInput, OwnerStoreSecretInput, OwnerWriteSecretInput, VaultDeleteSecretInput, VaultListAgentsInput, VaultListCapabilitiesInput, VaultRevokeCapabilityInput } from "./contracts.js";
4
+ import type { VaultAuditQueryInput, OwnerDefineSecretTargetsInput, VaultExportSecretInput, VaultGrantCapabilityInput, VaultRegisterFlowInput, VaultRegisterAgentInput, VaultCreateAgentInput, OwnerStoreSecretInput, OwnerWriteSecretInput, VaultDeleteSecretInput, VaultListAgentsInput, VaultListCapabilitiesInput, VaultRevokeCapabilityInput } from "./contracts.js";
5
5
  export interface VaultIdentity {
6
6
  identityId: string;
7
7
  }
@@ -37,10 +37,12 @@ export interface VaultClient {
37
37
  * Reads the tamper-evident audit log for the vault.
38
38
  */
39
39
  readAudit(query?: VaultAuditQueryInput): Promise<readonly import("../../vault-core/index.js").AuditEntry[]>;
40
+ registerAgent(input: VaultRegisterAgentInput): Promise<void>;
40
41
  /**
41
- * Registers a new agent identity within the vault.
42
+ * Generates a new identity and registers it as an agent in one step.
43
+ * The private key is stored in the vault for managed custody.
42
44
  */
43
- registerAgent(input: VaultRegisterAgentInput): Promise<void>;
45
+ createAgent(input: VaultCreateAgentInput): Promise<readonly [import("../../vault-core/index.js").AgentIdentityRecord, string]>;
44
46
  /**
45
47
  * Registers a custom HTTP flow for complex secret usage.
46
48
  */
@@ -1,4 +1,5 @@
1
1
  import { LocalSigner } from "../../protocol/crypto.js";
2
+ import { createIdentity } from "../../runtime/identity.js";
2
3
  import { SystemClock } from "../../vault-core/index.js";
3
4
  const VAULT_MASTER_ID = "vault-master";
4
5
  class DefaultVaultClient {
@@ -100,6 +101,9 @@ class DefaultVaultClient {
100
101
  vaultId: this._vault.vaultId,
101
102
  agentId: input.agentId,
102
103
  publicKey: input.publicKey,
104
+ privateKey: input.privateKey,
105
+ metadata: input.metadata,
106
+ nickname: input.nickname,
103
107
  };
104
108
  await this._vault.registerAgentIdentity({
105
109
  vaultId: this._vault.vaultId,
@@ -112,6 +116,19 @@ class DefaultVaultClient {
112
116
  requestedAt,
113
117
  });
114
118
  }
119
+ async createAgent(input) {
120
+ const identity = createIdentity();
121
+ const record = {
122
+ vaultId: this._vault.vaultId,
123
+ agentId: input.agentId,
124
+ publicKey: identity.publicKey,
125
+ privateKey: identity.privateKey,
126
+ metadata: input.metadata,
127
+ nickname: input.nickname,
128
+ };
129
+ await this.registerAgent(record);
130
+ return [record, identity.privateKey];
131
+ }
115
132
  async grantCapability(input) {
116
133
  const requestedAt = input.requestedAt ?? this._clock.nowIso();
117
134
  const requestId = `${this._identityId}:${requestedAt}:${input.capability.capabilityId}:register_capability`;
@@ -208,6 +225,30 @@ class DefaultVaultClient {
208
225
  capabilityId: input.capabilityId,
209
226
  });
210
227
  }
228
+ async issueSessionToken(input) {
229
+ const requestedAt = input.requestedAt ?? this._clock.nowIso();
230
+ const requestId = `${this._identityId}:${requestedAt}:issue_session_token`;
231
+ return this._vault.issueSessionToken({
232
+ vaultId: this._vault.vaultId,
233
+ actor: {
234
+ kind: "owner",
235
+ id: this._identityId,
236
+ },
237
+ agentId: input.agentId,
238
+ requestId,
239
+ requestedAt,
240
+ });
241
+ }
242
+ async revokeSessionToken(input) {
243
+ return this._vault.revokeSessionToken({
244
+ vaultId: this._vault.vaultId,
245
+ actor: {
246
+ kind: "owner",
247
+ id: this._identityId,
248
+ },
249
+ token: input.token,
250
+ });
251
+ }
211
252
  }
212
253
  function isCreateVaultClientOptions(value) {
213
254
  return typeof value === "object" && value !== null && "vault" in value;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/clients/owner/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/clients/owner/client.ts"],"names":[],"mappings":"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"}