@haven_ai/mcp 0.6.0-alpha.0 → 0.8.0-alpha.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 +19 -20
- package/dist/cli.cjs +222 -53
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +223 -54
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +225 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -10
- package/dist/index.d.ts +82 -10
- package/dist/index.js +224 -55
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -66,24 +66,30 @@ declare function loadCredentials(source?: string | HavenCredentialSource | undef
|
|
|
66
66
|
* which is where URL-hardening would matter.)
|
|
67
67
|
*/
|
|
68
68
|
|
|
69
|
-
type HavenMcpToolName = 'haven_send' | 'haven_pay_mcp_tool' | 'haven_quote_x402' | 'haven_pay_x402_quote' | 'haven_pay_x402' | 'haven_resume_x402_payment' | 'haven_get_payment_status' | 'haven_get_resume_state' | 'haven_get_agent' | 'haven_get_allowances' | 'haven_list_receipts' | 'haven_verify_receipt' | 'haven_sweep_delegate' | 'haven_discover_tools' | 'haven_submit_catalog_entry' | 'haven_open_task_budget' | 'haven_close_task_budget' | 'haven_submit';
|
|
69
|
+
type HavenMcpToolName = 'haven_send' | 'haven_pay_mcp_tool' | 'haven_quote_x402' | 'haven_pay_x402_quote' | 'haven_pay_x402' | 'haven_resume_x402_payment' | 'haven_get_payment_status' | 'haven_get_resume_state' | 'haven_get_agent' | 'haven_get_allowances' | 'haven_list_receipts' | 'haven_verify_receipt' | 'haven_sweep_delegate' | 'haven_discover_tools' | 'haven_submit_catalog_entry' | 'haven_open_task_budget' | 'haven_close_task_budget' | 'haven_get_task_budget' | 'haven_submit';
|
|
70
70
|
declare const toolSchemas: {
|
|
71
71
|
readonly haven_send: {
|
|
72
72
|
readonly asset: z.ZodEnum<["ETH", "USDC"]>;
|
|
73
73
|
readonly recipient: z.ZodString;
|
|
74
74
|
readonly amount: z.ZodString;
|
|
75
75
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
76
|
-
/**
|
|
76
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
77
77
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
78
78
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
79
79
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
80
|
+
/**
|
|
81
|
+
* #3330: spend against an open sub-budget this agent HOLDS (it is the
|
|
82
|
+
* sub-agent B) instead of the agent's own budget. Mutually exclusive
|
|
83
|
+
* with task_budget_id — the backend refuses a body naming both.
|
|
84
|
+
*/
|
|
85
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
80
86
|
};
|
|
81
87
|
readonly haven_pay_mcp_tool: {
|
|
82
88
|
readonly merchant_url: z.ZodString;
|
|
83
89
|
readonly tool_name: z.ZodString;
|
|
84
90
|
readonly arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
85
91
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
86
|
-
/**
|
|
92
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
87
93
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
88
94
|
};
|
|
89
95
|
readonly haven_quote_x402: {
|
|
@@ -92,16 +98,18 @@ declare const toolSchemas: {
|
|
|
92
98
|
readonly headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
93
99
|
readonly body: z.ZodOptional<z.ZodString>;
|
|
94
100
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
95
|
-
/**
|
|
101
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
96
102
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
97
103
|
};
|
|
98
104
|
readonly haven_pay_x402_quote: {
|
|
99
105
|
readonly quote: z.ZodUnknown;
|
|
100
106
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
101
|
-
/**
|
|
107
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
102
108
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
103
109
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
104
110
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
111
|
+
/** #3330: spend against an open sub-budget this agent holds (it is sub-agent B). Mutually exclusive with task_budget_id. */
|
|
112
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
105
113
|
};
|
|
106
114
|
readonly haven_pay_x402: {
|
|
107
115
|
readonly url: z.ZodString;
|
|
@@ -109,10 +117,12 @@ declare const toolSchemas: {
|
|
|
109
117
|
readonly headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
110
118
|
readonly body: z.ZodOptional<z.ZodString>;
|
|
111
119
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
112
|
-
/**
|
|
120
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
113
121
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
114
122
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
115
123
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
124
|
+
/** #3330: spend against an open sub-budget this agent holds (it is sub-agent B). Mutually exclusive with task_budget_id. */
|
|
125
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
116
126
|
};
|
|
117
127
|
readonly haven_resume_x402_payment: {
|
|
118
128
|
readonly payment_id: z.ZodOptional<z.ZodString>;
|
|
@@ -141,6 +151,8 @@ declare const toolSchemas: {
|
|
|
141
151
|
readonly limit: z.ZodOptional<z.ZodNumber>;
|
|
142
152
|
/** #3128: the previous page's next_cursor (a receipt id). */
|
|
143
153
|
readonly cursor: z.ZodOptional<z.ZodString>;
|
|
154
|
+
/** #3423: drop each row's payload echoes; the default shape is unchanged. */
|
|
155
|
+
readonly compact: z.ZodOptional<z.ZodBoolean>;
|
|
144
156
|
};
|
|
145
157
|
readonly haven_verify_receipt: {
|
|
146
158
|
readonly receipt: z.ZodUnknown;
|
|
@@ -155,8 +167,12 @@ declare const toolSchemas: {
|
|
|
155
167
|
readonly haven_close_task_budget: {
|
|
156
168
|
readonly task_budget_id: z.ZodString;
|
|
157
169
|
};
|
|
170
|
+
readonly haven_get_task_budget: {
|
|
171
|
+
readonly task_budget_id: z.ZodString;
|
|
172
|
+
};
|
|
158
173
|
readonly haven_submit: {
|
|
159
174
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
175
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
160
176
|
readonly payment_id: z.ZodOptional<z.ZodString>;
|
|
161
177
|
readonly signature: z.ZodString;
|
|
162
178
|
};
|
|
@@ -183,7 +199,9 @@ interface ToolSuccess<T> {
|
|
|
183
199
|
/**
|
|
184
200
|
* #3303: the backend's `client_update` hint when this package is behind the
|
|
185
201
|
* version the deployment recommends (`required: false`) or below its
|
|
186
|
-
* minimum (`required: true`).
|
|
202
|
+
* minimum (`required: true`). `upgrade_command` starts the update: for the
|
|
203
|
+
* connector-installed packages it is the connector doctor, which prints the
|
|
204
|
+
* repair line to run next (#3412).
|
|
187
205
|
*/
|
|
188
206
|
client_update?: HavenClientUpdate;
|
|
189
207
|
}
|
|
@@ -275,6 +293,20 @@ interface ConsentInput {
|
|
|
275
293
|
/** Chain the agent operates on. */
|
|
276
294
|
chainId?: number;
|
|
277
295
|
toolNames: readonly HavenMcpToolName[];
|
|
296
|
+
/**
|
|
297
|
+
* #3410: every amount here is ATOMIC (smallest on-chain units, e.g. 6
|
|
298
|
+
* decimals for USDC — `1000000` is one USDC, never "1000000 tokens"). Both
|
|
299
|
+
* producers agree: the live read takes `onchain.amount`, and the seed takes
|
|
300
|
+
* the credential file's `allowance_amount` — both atomic. `renderConsentBlock`
|
|
301
|
+
* converts for display through the token registry and falls back to an
|
|
302
|
+
* explicit `(atomic units)` label when the token is unknown; the consent
|
|
303
|
+
* hash deliberately covers the atomic string, so a display change alone
|
|
304
|
+
* never re-prompts the operator.
|
|
305
|
+
*
|
|
306
|
+
* Known limitation (#3410, stated not fixed): the seed is setup-time data.
|
|
307
|
+
* If the wallet owner edits the budget after setup AND the live read then
|
|
308
|
+
* fails, the screen shows the stale seed budget as if it were current.
|
|
309
|
+
*/
|
|
278
310
|
allowanceSummary: readonly {
|
|
279
311
|
token: string;
|
|
280
312
|
amount: string;
|
|
@@ -315,7 +347,12 @@ interface CredentialIdentitySeed {
|
|
|
315
347
|
delegateAddress?: string;
|
|
316
348
|
/** Chain from the credential file, used as a fallback. */
|
|
317
349
|
chainId?: number;
|
|
318
|
-
/**
|
|
350
|
+
/**
|
|
351
|
+
* Intended agent budget from the setup flow, used before on-chain approval
|
|
352
|
+
* is visible. #3410: every amount is ATOMIC — the connector writes the
|
|
353
|
+
* credential file's `allowance_amount` straight from the setup response's
|
|
354
|
+
* `agent_budget`, and the backend puts `budget_atomic` there.
|
|
355
|
+
*/
|
|
319
356
|
allowanceSummary?: readonly {
|
|
320
357
|
token: string;
|
|
321
358
|
amount: string;
|
|
@@ -374,7 +411,7 @@ declare function createHavenMcpServer(options?: HavenMcpServerOptions): Promise<
|
|
|
374
411
|
* `agent_tool_invocations` rows are always attributed to the right tool.
|
|
375
412
|
*/
|
|
376
413
|
declare const MCP_NAME = "@haven_ai/mcp";
|
|
377
|
-
declare const MCP_VERSION = "0.
|
|
414
|
+
declare const MCP_VERSION = "0.8.0-alpha.0";
|
|
378
415
|
/**
|
|
379
416
|
* Refuse to start on an unsupported Node (#1161).
|
|
380
417
|
*
|
|
@@ -387,4 +424,39 @@ declare const MCP_VERSION = "0.6.0-alpha.0";
|
|
|
387
424
|
declare function assertSupportedNodeVersion(nodeVersion?: string): void;
|
|
388
425
|
declare function runStdioServer(options?: HavenMcpServerOptions): Promise<void>;
|
|
389
426
|
|
|
390
|
-
|
|
427
|
+
/**
|
|
428
|
+
* The first `@haven_ai/signer` release whose `haven_sign` accepts the
|
|
429
|
+
* `task_budget_id` argument form (#3329). ONE constant on this surface, with
|
|
430
|
+
* exactly one job: the value `signer_compatibility.min_signer_version`
|
|
431
|
+
* reports on the two task-budget handoffs below. The hosted package exports
|
|
432
|
+
* `TASK_BUDGET_MIN_SIGNER_VERSION` with the same value, tied to the same
|
|
433
|
+
* release record (`client-releases.data.ts`) by its cross-package pin.
|
|
434
|
+
*/
|
|
435
|
+
declare const TASK_BUDGET_MIN_SIGNER_VERSION = "0.6.0-alpha.0";
|
|
436
|
+
/** The capability key both runtimes report in `signer_compatibility.signer_capability`. */
|
|
437
|
+
declare const SIGNER_CAPABILITY_KEY = "haven/signer-compatibility";
|
|
438
|
+
/**
|
|
439
|
+
* The recovery notice every result that hands off to
|
|
440
|
+
* `haven_sign { task_budget_id }` carries — the local twin of the hosted
|
|
441
|
+
* `taskSignerCompatibilityNotice()`. Field-for-field the same shape:
|
|
442
|
+
*
|
|
443
|
+
* - `task_sign_context_version` — from the SDK's single source;
|
|
444
|
+
* - `min_signer_version` — the constant above;
|
|
445
|
+
* - `signer_capability` — the existing capability key;
|
|
446
|
+
* - `check` / `fallback` — the recovery sentence as prose and as data: the
|
|
447
|
+
* trigger substring (the generic refusal every pre-0.6.0 signer answers,
|
|
448
|
+
* both historic lines begin with it), then close the pending budget, update
|
|
449
|
+
* via the connector doctor and its printed repair line, reopen. No relay
|
|
450
|
+
* fallback exists for this signing context (an `eip712_delegation` payload
|
|
451
|
+
* the 0.5.x unbound allowlist refuses and a 0.4.x signer must not be
|
|
452
|
+
* steered into), so none is named.
|
|
453
|
+
*/
|
|
454
|
+
declare function taskSignerCompatibilityNotice(): {
|
|
455
|
+
task_sign_context_version: number;
|
|
456
|
+
min_signer_version: string;
|
|
457
|
+
signer_capability: string;
|
|
458
|
+
check: string;
|
|
459
|
+
fallback: string;
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
export { type ConsentDecision, type ConsentInput, type ConsentOptions, type CredentialIdentitySeed, type HavenCredentialAllowance, type HavenCredentialFile, type HavenCredentialSource, type HavenMcpServerOptions, type HavenMcpToolName, MCP_NAME, MCP_VERSION, SIGNER_CAPABILITY_KEY, TASK_BUDGET_MIN_SIGNER_VERSION, type ToolFailure, type ToolPayload, type ToolSuccess, assertSupportedNodeVersion, computeConsentHash, consentInputFromClient, createHavenClient, createHavenMcpServer, createToolHandlers, ensureConsent, loadCredentials, registeredToolNames, renderConsentBlock, resolveHavenClient, runStdioServer, taskSignerCompatibilityNotice, toolDescriptions, toolSchemas };
|
package/dist/index.d.ts
CHANGED
|
@@ -66,24 +66,30 @@ declare function loadCredentials(source?: string | HavenCredentialSource | undef
|
|
|
66
66
|
* which is where URL-hardening would matter.)
|
|
67
67
|
*/
|
|
68
68
|
|
|
69
|
-
type HavenMcpToolName = 'haven_send' | 'haven_pay_mcp_tool' | 'haven_quote_x402' | 'haven_pay_x402_quote' | 'haven_pay_x402' | 'haven_resume_x402_payment' | 'haven_get_payment_status' | 'haven_get_resume_state' | 'haven_get_agent' | 'haven_get_allowances' | 'haven_list_receipts' | 'haven_verify_receipt' | 'haven_sweep_delegate' | 'haven_discover_tools' | 'haven_submit_catalog_entry' | 'haven_open_task_budget' | 'haven_close_task_budget' | 'haven_submit';
|
|
69
|
+
type HavenMcpToolName = 'haven_send' | 'haven_pay_mcp_tool' | 'haven_quote_x402' | 'haven_pay_x402_quote' | 'haven_pay_x402' | 'haven_resume_x402_payment' | 'haven_get_payment_status' | 'haven_get_resume_state' | 'haven_get_agent' | 'haven_get_allowances' | 'haven_list_receipts' | 'haven_verify_receipt' | 'haven_sweep_delegate' | 'haven_discover_tools' | 'haven_submit_catalog_entry' | 'haven_open_task_budget' | 'haven_close_task_budget' | 'haven_get_task_budget' | 'haven_submit';
|
|
70
70
|
declare const toolSchemas: {
|
|
71
71
|
readonly haven_send: {
|
|
72
72
|
readonly asset: z.ZodEnum<["ETH", "USDC"]>;
|
|
73
73
|
readonly recipient: z.ZodString;
|
|
74
74
|
readonly amount: z.ZodString;
|
|
75
75
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
76
|
-
/**
|
|
76
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
77
77
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
78
78
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
79
79
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
80
|
+
/**
|
|
81
|
+
* #3330: spend against an open sub-budget this agent HOLDS (it is the
|
|
82
|
+
* sub-agent B) instead of the agent's own budget. Mutually exclusive
|
|
83
|
+
* with task_budget_id — the backend refuses a body naming both.
|
|
84
|
+
*/
|
|
85
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
80
86
|
};
|
|
81
87
|
readonly haven_pay_mcp_tool: {
|
|
82
88
|
readonly merchant_url: z.ZodString;
|
|
83
89
|
readonly tool_name: z.ZodString;
|
|
84
90
|
readonly arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
85
91
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
86
|
-
/**
|
|
92
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
87
93
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
88
94
|
};
|
|
89
95
|
readonly haven_quote_x402: {
|
|
@@ -92,16 +98,18 @@ declare const toolSchemas: {
|
|
|
92
98
|
readonly headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
93
99
|
readonly body: z.ZodOptional<z.ZodString>;
|
|
94
100
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
95
|
-
/**
|
|
101
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
96
102
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
97
103
|
};
|
|
98
104
|
readonly haven_pay_x402_quote: {
|
|
99
105
|
readonly quote: z.ZodUnknown;
|
|
100
106
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
101
|
-
/**
|
|
107
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
102
108
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
103
109
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
104
110
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
111
|
+
/** #3330: spend against an open sub-budget this agent holds (it is sub-agent B). Mutually exclusive with task_budget_id. */
|
|
112
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
105
113
|
};
|
|
106
114
|
readonly haven_pay_x402: {
|
|
107
115
|
readonly url: z.ZodString;
|
|
@@ -109,10 +117,12 @@ declare const toolSchemas: {
|
|
|
109
117
|
readonly headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
110
118
|
readonly body: z.ZodOptional<z.ZodString>;
|
|
111
119
|
readonly idempotency_key: z.ZodOptional<z.ZodString>;
|
|
112
|
-
/**
|
|
120
|
+
/** REMOVED (#3411): declared only so the resolver can refuse it by name, never accepted. */
|
|
113
121
|
readonly idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
114
122
|
/** #3329: spend against an open task budget instead of the agent's period budget. */
|
|
115
123
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
124
|
+
/** #3330: spend against an open sub-budget this agent holds (it is sub-agent B). Mutually exclusive with task_budget_id. */
|
|
125
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
116
126
|
};
|
|
117
127
|
readonly haven_resume_x402_payment: {
|
|
118
128
|
readonly payment_id: z.ZodOptional<z.ZodString>;
|
|
@@ -141,6 +151,8 @@ declare const toolSchemas: {
|
|
|
141
151
|
readonly limit: z.ZodOptional<z.ZodNumber>;
|
|
142
152
|
/** #3128: the previous page's next_cursor (a receipt id). */
|
|
143
153
|
readonly cursor: z.ZodOptional<z.ZodString>;
|
|
154
|
+
/** #3423: drop each row's payload echoes; the default shape is unchanged. */
|
|
155
|
+
readonly compact: z.ZodOptional<z.ZodBoolean>;
|
|
144
156
|
};
|
|
145
157
|
readonly haven_verify_receipt: {
|
|
146
158
|
readonly receipt: z.ZodUnknown;
|
|
@@ -155,8 +167,12 @@ declare const toolSchemas: {
|
|
|
155
167
|
readonly haven_close_task_budget: {
|
|
156
168
|
readonly task_budget_id: z.ZodString;
|
|
157
169
|
};
|
|
170
|
+
readonly haven_get_task_budget: {
|
|
171
|
+
readonly task_budget_id: z.ZodString;
|
|
172
|
+
};
|
|
158
173
|
readonly haven_submit: {
|
|
159
174
|
readonly task_budget_id: z.ZodOptional<z.ZodString>;
|
|
175
|
+
readonly sub_budget_id: z.ZodOptional<z.ZodString>;
|
|
160
176
|
readonly payment_id: z.ZodOptional<z.ZodString>;
|
|
161
177
|
readonly signature: z.ZodString;
|
|
162
178
|
};
|
|
@@ -183,7 +199,9 @@ interface ToolSuccess<T> {
|
|
|
183
199
|
/**
|
|
184
200
|
* #3303: the backend's `client_update` hint when this package is behind the
|
|
185
201
|
* version the deployment recommends (`required: false`) or below its
|
|
186
|
-
* minimum (`required: true`).
|
|
202
|
+
* minimum (`required: true`). `upgrade_command` starts the update: for the
|
|
203
|
+
* connector-installed packages it is the connector doctor, which prints the
|
|
204
|
+
* repair line to run next (#3412).
|
|
187
205
|
*/
|
|
188
206
|
client_update?: HavenClientUpdate;
|
|
189
207
|
}
|
|
@@ -275,6 +293,20 @@ interface ConsentInput {
|
|
|
275
293
|
/** Chain the agent operates on. */
|
|
276
294
|
chainId?: number;
|
|
277
295
|
toolNames: readonly HavenMcpToolName[];
|
|
296
|
+
/**
|
|
297
|
+
* #3410: every amount here is ATOMIC (smallest on-chain units, e.g. 6
|
|
298
|
+
* decimals for USDC — `1000000` is one USDC, never "1000000 tokens"). Both
|
|
299
|
+
* producers agree: the live read takes `onchain.amount`, and the seed takes
|
|
300
|
+
* the credential file's `allowance_amount` — both atomic. `renderConsentBlock`
|
|
301
|
+
* converts for display through the token registry and falls back to an
|
|
302
|
+
* explicit `(atomic units)` label when the token is unknown; the consent
|
|
303
|
+
* hash deliberately covers the atomic string, so a display change alone
|
|
304
|
+
* never re-prompts the operator.
|
|
305
|
+
*
|
|
306
|
+
* Known limitation (#3410, stated not fixed): the seed is setup-time data.
|
|
307
|
+
* If the wallet owner edits the budget after setup AND the live read then
|
|
308
|
+
* fails, the screen shows the stale seed budget as if it were current.
|
|
309
|
+
*/
|
|
278
310
|
allowanceSummary: readonly {
|
|
279
311
|
token: string;
|
|
280
312
|
amount: string;
|
|
@@ -315,7 +347,12 @@ interface CredentialIdentitySeed {
|
|
|
315
347
|
delegateAddress?: string;
|
|
316
348
|
/** Chain from the credential file, used as a fallback. */
|
|
317
349
|
chainId?: number;
|
|
318
|
-
/**
|
|
350
|
+
/**
|
|
351
|
+
* Intended agent budget from the setup flow, used before on-chain approval
|
|
352
|
+
* is visible. #3410: every amount is ATOMIC — the connector writes the
|
|
353
|
+
* credential file's `allowance_amount` straight from the setup response's
|
|
354
|
+
* `agent_budget`, and the backend puts `budget_atomic` there.
|
|
355
|
+
*/
|
|
319
356
|
allowanceSummary?: readonly {
|
|
320
357
|
token: string;
|
|
321
358
|
amount: string;
|
|
@@ -374,7 +411,7 @@ declare function createHavenMcpServer(options?: HavenMcpServerOptions): Promise<
|
|
|
374
411
|
* `agent_tool_invocations` rows are always attributed to the right tool.
|
|
375
412
|
*/
|
|
376
413
|
declare const MCP_NAME = "@haven_ai/mcp";
|
|
377
|
-
declare const MCP_VERSION = "0.
|
|
414
|
+
declare const MCP_VERSION = "0.8.0-alpha.0";
|
|
378
415
|
/**
|
|
379
416
|
* Refuse to start on an unsupported Node (#1161).
|
|
380
417
|
*
|
|
@@ -387,4 +424,39 @@ declare const MCP_VERSION = "0.6.0-alpha.0";
|
|
|
387
424
|
declare function assertSupportedNodeVersion(nodeVersion?: string): void;
|
|
388
425
|
declare function runStdioServer(options?: HavenMcpServerOptions): Promise<void>;
|
|
389
426
|
|
|
390
|
-
|
|
427
|
+
/**
|
|
428
|
+
* The first `@haven_ai/signer` release whose `haven_sign` accepts the
|
|
429
|
+
* `task_budget_id` argument form (#3329). ONE constant on this surface, with
|
|
430
|
+
* exactly one job: the value `signer_compatibility.min_signer_version`
|
|
431
|
+
* reports on the two task-budget handoffs below. The hosted package exports
|
|
432
|
+
* `TASK_BUDGET_MIN_SIGNER_VERSION` with the same value, tied to the same
|
|
433
|
+
* release record (`client-releases.data.ts`) by its cross-package pin.
|
|
434
|
+
*/
|
|
435
|
+
declare const TASK_BUDGET_MIN_SIGNER_VERSION = "0.6.0-alpha.0";
|
|
436
|
+
/** The capability key both runtimes report in `signer_compatibility.signer_capability`. */
|
|
437
|
+
declare const SIGNER_CAPABILITY_KEY = "haven/signer-compatibility";
|
|
438
|
+
/**
|
|
439
|
+
* The recovery notice every result that hands off to
|
|
440
|
+
* `haven_sign { task_budget_id }` carries — the local twin of the hosted
|
|
441
|
+
* `taskSignerCompatibilityNotice()`. Field-for-field the same shape:
|
|
442
|
+
*
|
|
443
|
+
* - `task_sign_context_version` — from the SDK's single source;
|
|
444
|
+
* - `min_signer_version` — the constant above;
|
|
445
|
+
* - `signer_capability` — the existing capability key;
|
|
446
|
+
* - `check` / `fallback` — the recovery sentence as prose and as data: the
|
|
447
|
+
* trigger substring (the generic refusal every pre-0.6.0 signer answers,
|
|
448
|
+
* both historic lines begin with it), then close the pending budget, update
|
|
449
|
+
* via the connector doctor and its printed repair line, reopen. No relay
|
|
450
|
+
* fallback exists for this signing context (an `eip712_delegation` payload
|
|
451
|
+
* the 0.5.x unbound allowlist refuses and a 0.4.x signer must not be
|
|
452
|
+
* steered into), so none is named.
|
|
453
|
+
*/
|
|
454
|
+
declare function taskSignerCompatibilityNotice(): {
|
|
455
|
+
task_sign_context_version: number;
|
|
456
|
+
min_signer_version: string;
|
|
457
|
+
signer_capability: string;
|
|
458
|
+
check: string;
|
|
459
|
+
fallback: string;
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
export { type ConsentDecision, type ConsentInput, type ConsentOptions, type CredentialIdentitySeed, type HavenCredentialAllowance, type HavenCredentialFile, type HavenCredentialSource, type HavenMcpServerOptions, type HavenMcpToolName, MCP_NAME, MCP_VERSION, SIGNER_CAPABILITY_KEY, TASK_BUDGET_MIN_SIGNER_VERSION, type ToolFailure, type ToolPayload, type ToolSuccess, assertSupportedNodeVersion, computeConsentHash, consentInputFromClient, createHavenClient, createHavenMcpServer, createToolHandlers, ensureConsent, loadCredentials, registeredToolNames, renderConsentBlock, resolveHavenClient, runStdioServer, taskSignerCompatibilityNotice, toolDescriptions, toolSchemas };
|