@vinkius-core/mcp-fusion 1.8.0 → 1.10.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/CHANGELOG.md +40 -0
- package/dist/core/builder/GroupedToolBuilder.d.ts +1 -0
- package/dist/core/builder/GroupedToolBuilder.d.ts.map +1 -1
- package/dist/core/builder/GroupedToolBuilder.js +23 -2
- package/dist/core/builder/GroupedToolBuilder.js.map +1 -1
- package/dist/core/execution/MutationSerializer.d.ts +78 -0
- package/dist/core/execution/MutationSerializer.d.ts.map +1 -0
- package/dist/core/execution/MutationSerializer.js +106 -0
- package/dist/core/execution/MutationSerializer.js.map +1 -0
- package/dist/core/execution/index.d.ts +1 -0
- package/dist/core/execution/index.d.ts.map +1 -1
- package/dist/core/execution/index.js +1 -0
- package/dist/core/execution/index.js.map +1 -1
- package/dist/prompt/HydrationSandbox.d.ts +55 -0
- package/dist/prompt/HydrationSandbox.d.ts.map +1 -0
- package/dist/prompt/HydrationSandbox.js +122 -0
- package/dist/prompt/HydrationSandbox.js.map +1 -0
- package/dist/prompt/PromptRegistry.d.ts +20 -0
- package/dist/prompt/PromptRegistry.d.ts.map +1 -1
- package/dist/prompt/PromptRegistry.js +30 -1
- package/dist/prompt/PromptRegistry.js.map +1 -1
- package/dist/prompt/definePrompt.d.ts +4 -0
- package/dist/prompt/definePrompt.d.ts.map +1 -1
- package/dist/prompt/definePrompt.js +6 -0
- package/dist/prompt/definePrompt.js.map +1 -1
- package/dist/prompt/types.d.ts +31 -0
- package/dist/prompt/types.d.ts.map +1 -1
- package/llms.txt +35 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,46 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.10.0] - 2026-02-23
|
|
9
|
+
|
|
10
|
+
### Hydration Timeout Sandbox — Graceful Degradation for Prompt Hydration
|
|
11
|
+
|
|
12
|
+
**MCP Fusion** now protects prompt handlers from slow/failing external data sources via the **Hydration Timeout Sandbox**. When a handler fetches data from Jira, Stripe, databases, or any external source and the call hangs, the framework enforces a strict deadline, unblocks the UI immediately, and returns a structured SYSTEM ALERT.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`HydrationSandbox` module** (`src/prompt/HydrationSandbox.ts`): Core timeout mechanism using `Promise.race`. Wraps handler execution with a strict deadline and catches both timeouts and handler errors, converting them to graceful `<hydration_alert>` XML-structured messages.
|
|
17
|
+
- **`hydrationTimeout` config** on `definePrompt()`: Per-prompt deadline in milliseconds. Example: `definePrompt('briefing', { hydrationTimeout: 3000, handler: ... })`.
|
|
18
|
+
- **`setDefaultHydrationTimeout(ms)`** on `PromptRegistry`: Global safety net for ALL prompts. Individual prompt timeouts override the registry default.
|
|
19
|
+
- **Three-scenario coverage**: Handler completes → normal result. Handler exceeds deadline → TIMEOUT alert. Handler throws → ERROR alert. The UI ALWAYS unblocks.
|
|
20
|
+
- **Timer cleanup**: `clearTimeout` via `finally` block — no resource leaks, no dangling timers keeping Node.js alive.
|
|
21
|
+
- **Zero overhead**: When no timeout is configured, no timer is created, no `Promise.race` wrapping — the handler runs directly.
|
|
22
|
+
- **Interceptor composition**: Prompt Interceptors still execute after a timeout, ensuring compliance headers and tenant context are always injected.
|
|
23
|
+
- **`getHydrationTimeout()`** on `PromptBuilder` interface: Read the configured timeout for introspection and testing.
|
|
24
|
+
- **17 new tests**: Unit tests covering timeout, early completion, error-as-degradation, timer cleanup, non-Error throws, plus integration tests for per-prompt config, registry defaults, override precedence, backward compatibility, and interceptor composition after timeout.
|
|
25
|
+
|
|
26
|
+
### Design Influences
|
|
27
|
+
|
|
28
|
+
- Go's `context.WithDeadline` (structured cancellation)
|
|
29
|
+
- gRPC deadline propagation (strict, per-RPC)
|
|
30
|
+
- Resilience4j TimeLimiter (JVM circuit breaker pattern)
|
|
31
|
+
|
|
32
|
+
## [1.9.0] - 2026-02-23
|
|
33
|
+
|
|
34
|
+
### Intent Mutex (Anti-Race Condition)
|
|
35
|
+
|
|
36
|
+
**MCP Fusion** now provides automatic transactional isolation for AI agents via the **Intent Mutex**. When an LLM hallucinates and fires identical destructive calls in the exact same millisecond (e.g., double-deleting a user), the framework serializes them to guarantee isolation.
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- **`MutationSerializer` class:** Implements an idiomatic JS async mutex using per-key promise-chaining. Strict FIFO queue order without external locks, Redis, or OS primitives.
|
|
41
|
+
- **Zero-Configuration Setup:** Automatically enabled strictly for actions marked with `destructive: true`. Fast-path bypass for all other actions (zero overhead).
|
|
42
|
+
- **Per-Action Serialization:** `billing.refund` and `billing.delete` run independently, but concurrent `billing.refund` requests are strictly serialized.
|
|
43
|
+
- **Cooperative Cancellation:** Waiters queued in the mutex instantly abort if the request `AbortSignal` fires before they acquire the lock.
|
|
44
|
+
- **Automatic Garbage Collection:** Completed promise chains are aggressively pruned to prevent memory leaks.
|
|
45
|
+
- **Builder Integration:** Handled inside `_executePipeline` seamlessly; `GroupedToolBuilder` manages the mutex internally.
|
|
46
|
+
- **14 New Tests:** Unit tests covering chain GC, error recovery, signal abortion, parallel execution, and builder integration with other guards.
|
|
47
|
+
|
|
8
48
|
## [1.8.0] - 2026-02-23
|
|
9
49
|
|
|
10
50
|
### Runtime Guards — Concurrency Bulkhead & Egress Limiter
|
|
@@ -134,6 +134,7 @@ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<
|
|
|
134
134
|
private _tracer?;
|
|
135
135
|
private _concurrencyGuard?;
|
|
136
136
|
private _egressMaxBytes?;
|
|
137
|
+
private _mutationSerializer?;
|
|
137
138
|
private _cachedTool?;
|
|
138
139
|
private _executionContext?;
|
|
139
140
|
constructor(name: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACvD,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AAMnF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"GroupedToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ import { parseDiscriminator, resolveAction, validateArgs, runChain, } from '../e
|
|
|
54
54
|
import {} from '../execution/ProgressHelper.js';
|
|
55
55
|
import { ConcurrencyGuard } from '../execution/ConcurrencyGuard.js';
|
|
56
56
|
import { applyEgressGuard } from '../execution/EgressGuard.js';
|
|
57
|
+
import { MutationSerializer } from '../execution/MutationSerializer.js';
|
|
57
58
|
import { computeResponseSize } from '../execution/PipelineHooks.js';
|
|
58
59
|
import { compileToolDefinition } from './ToolDefinitionCompiler.js';
|
|
59
60
|
import { ActionGroupBuilder, mapConfigToActionFields, } from './ActionGroupBuilder.js';
|
|
@@ -146,6 +147,7 @@ export class GroupedToolBuilder {
|
|
|
146
147
|
_tracer;
|
|
147
148
|
_concurrencyGuard;
|
|
148
149
|
_egressMaxBytes;
|
|
150
|
+
_mutationSerializer;
|
|
149
151
|
// Cached build result
|
|
150
152
|
_cachedTool;
|
|
151
153
|
_executionContext;
|
|
@@ -480,6 +482,13 @@ export class GroupedToolBuilder {
|
|
|
480
482
|
this._executionContext = result.executionContext;
|
|
481
483
|
this._frozen = true;
|
|
482
484
|
Object.freeze(this._actions);
|
|
485
|
+
// Auto-create MutationSerializer if any action is destructive.
|
|
486
|
+
// Converts `destructive: true` from a manifest hint into a
|
|
487
|
+
// transactional isolation guarantee — concurrent mutations to
|
|
488
|
+
// the same action key are serialized in FIFO order.
|
|
489
|
+
if (this._actions.some(a => a.destructive === true)) {
|
|
490
|
+
this._mutationSerializer = new MutationSerializer();
|
|
491
|
+
}
|
|
483
492
|
return result.tool;
|
|
484
493
|
}
|
|
485
494
|
// ── Debug (opt-in observability) ──────────────────────
|
|
@@ -689,14 +698,26 @@ export class GroupedToolBuilder {
|
|
|
689
698
|
hooks?.onMiddleware?.(actionName, chainLength);
|
|
690
699
|
}
|
|
691
700
|
// Step 5: Execute
|
|
701
|
+
// If the action is destructive and a MutationSerializer exists,
|
|
702
|
+
// wrap the execution in a per-key mutex to prevent concurrent
|
|
703
|
+
// mutations (LLM hallucination anti-race-condition guard).
|
|
704
|
+
const executeChain = () => runChain(execCtx, resolved.value, ctx, validated.value, progressSink, hooks?.rethrow, signal);
|
|
692
705
|
try {
|
|
693
|
-
const
|
|
706
|
+
const isDestructive = resolved.value.action.destructive === true;
|
|
707
|
+
const response = (isDestructive && this._mutationSerializer)
|
|
708
|
+
? await this._mutationSerializer.serialize(actionName, executeChain, signal)
|
|
709
|
+
: await executeChain();
|
|
694
710
|
hooks?.onExecuteOk?.(actionName, response);
|
|
695
711
|
return hooks?.wrapResponse?.(response) ?? response;
|
|
696
712
|
}
|
|
697
713
|
catch (err) {
|
|
698
714
|
hooks?.onExecuteError?.(actionName, err);
|
|
699
|
-
|
|
715
|
+
if (hooks?.rethrow)
|
|
716
|
+
throw err;
|
|
717
|
+
// Convert MutationSerializer abort (or unexpected throws) to error response
|
|
718
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
719
|
+
const response = error(`[${execCtx.toolName}/${actionName}] ${message}`);
|
|
720
|
+
return hooks?.wrapResponse?.(response) ?? response;
|
|
700
721
|
}
|
|
701
722
|
}
|
|
702
723
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupedToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GroupedToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MutationSerializer — Per-Action Intent Mutex for Destructive Operations
|
|
3
|
+
*
|
|
4
|
+
* When an LLM hallucinates and fires two `delete_user` calls for the same ID
|
|
5
|
+
* in the same millisecond, this serializer ensures they execute sequentially —
|
|
6
|
+
* not concurrently. Transactional isolation at the framework level.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* ┌────────────────────────────────────────────────────┐
|
|
10
|
+
* │ delete_user(id: "42") ──► serialize("delete") │
|
|
11
|
+
* │ delete_user(id: "42") ──► queue behind first │
|
|
12
|
+
* │ list_users() ──► pass-through (readOnly)│
|
|
13
|
+
* │ create_user(...) ──► pass-through (not destr)│
|
|
14
|
+
* └────────────────────────────────────────────────────┘
|
|
15
|
+
*
|
|
16
|
+
* Mechanism:
|
|
17
|
+
* Uses promise-chaining per action key. Each destructive call
|
|
18
|
+
* awaits the previous call's completion before starting.
|
|
19
|
+
* This is the idiomatic async mutex pattern in JavaScript:
|
|
20
|
+
* no external locks, no shared memory, no OS primitives.
|
|
21
|
+
*
|
|
22
|
+
* Properties:
|
|
23
|
+
* - Zero overhead for non-destructive actions (never called)
|
|
24
|
+
* - O(1) setup per serialized call (promise chain append)
|
|
25
|
+
* - Automatic GC: completed chains are pruned from the map
|
|
26
|
+
* - Cooperative with AbortSignal: cancelled while waiting
|
|
27
|
+
* - Per action-key isolation: `billing.delete` ≠ `users.delete`
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* An async mutex that serializes destructive operations by action key.
|
|
34
|
+
*
|
|
35
|
+
* Created once per builder during `buildToolDefinition()` — only when
|
|
36
|
+
* at least one action is marked `destructive: true`. Otherwise the
|
|
37
|
+
* field stays `undefined` (zero overhead).
|
|
38
|
+
*
|
|
39
|
+
* Used by `_executePipeline()` to wrap `runChain()` for destructive actions.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```
|
|
43
|
+
* // Concurrent calls to `billing.delete`:
|
|
44
|
+
* // Call A → executes immediately
|
|
45
|
+
* // Call B → waits for A to complete → then executes
|
|
46
|
+
* // Call C → waits for B to complete → then executes
|
|
47
|
+
* //
|
|
48
|
+
* // Concurrent calls to `billing.list` (readOnly):
|
|
49
|
+
* // All execute in parallel (serializer not invoked)
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class MutationSerializer {
|
|
53
|
+
/**
|
|
54
|
+
* Active promise chains keyed by action key.
|
|
55
|
+
* Each entry represents the "tail" of the serialization queue.
|
|
56
|
+
* When the tail resolves, the next waiter starts.
|
|
57
|
+
*/
|
|
58
|
+
private readonly _chains;
|
|
59
|
+
/**
|
|
60
|
+
* Serialize execution of `fn` for the given action key.
|
|
61
|
+
*
|
|
62
|
+
* Concurrent calls with the **same key** are queued and executed
|
|
63
|
+
* strictly in FIFO order. Different keys are fully independent.
|
|
64
|
+
*
|
|
65
|
+
* @param key - Action key (e.g., `"delete"` or `"billing.refund"`)
|
|
66
|
+
* @param fn - The async function to serialize (typically `runChain()`)
|
|
67
|
+
* @param signal - Optional AbortSignal for cooperative cancellation while waiting
|
|
68
|
+
* @returns The result of `fn()`
|
|
69
|
+
* @throws Error if the AbortSignal fires while waiting in queue
|
|
70
|
+
*/
|
|
71
|
+
serialize<T>(key: string, fn: () => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Number of action keys with active serialization chains.
|
|
74
|
+
* Used for testing and debugging — should be 0 when idle.
|
|
75
|
+
*/
|
|
76
|
+
get activeChains(): number;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=MutationSerializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationSerializer.d.ts","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAI5D;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,CAAC,CAAC;IA+Bb;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CACJ"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MutationSerializer — Per-Action Intent Mutex for Destructive Operations
|
|
3
|
+
*
|
|
4
|
+
* When an LLM hallucinates and fires two `delete_user` calls for the same ID
|
|
5
|
+
* in the same millisecond, this serializer ensures they execute sequentially —
|
|
6
|
+
* not concurrently. Transactional isolation at the framework level.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* ┌────────────────────────────────────────────────────┐
|
|
10
|
+
* │ delete_user(id: "42") ──► serialize("delete") │
|
|
11
|
+
* │ delete_user(id: "42") ──► queue behind first │
|
|
12
|
+
* │ list_users() ──► pass-through (readOnly)│
|
|
13
|
+
* │ create_user(...) ──► pass-through (not destr)│
|
|
14
|
+
* └────────────────────────────────────────────────────┘
|
|
15
|
+
*
|
|
16
|
+
* Mechanism:
|
|
17
|
+
* Uses promise-chaining per action key. Each destructive call
|
|
18
|
+
* awaits the previous call's completion before starting.
|
|
19
|
+
* This is the idiomatic async mutex pattern in JavaScript:
|
|
20
|
+
* no external locks, no shared memory, no OS primitives.
|
|
21
|
+
*
|
|
22
|
+
* Properties:
|
|
23
|
+
* - Zero overhead for non-destructive actions (never called)
|
|
24
|
+
* - O(1) setup per serialized call (promise chain append)
|
|
25
|
+
* - Automatic GC: completed chains are pruned from the map
|
|
26
|
+
* - Cooperative with AbortSignal: cancelled while waiting
|
|
27
|
+
* - Per action-key isolation: `billing.delete` ≠ `users.delete`
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
// ── Serializer Implementation ────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* An async mutex that serializes destructive operations by action key.
|
|
35
|
+
*
|
|
36
|
+
* Created once per builder during `buildToolDefinition()` — only when
|
|
37
|
+
* at least one action is marked `destructive: true`. Otherwise the
|
|
38
|
+
* field stays `undefined` (zero overhead).
|
|
39
|
+
*
|
|
40
|
+
* Used by `_executePipeline()` to wrap `runChain()` for destructive actions.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```
|
|
44
|
+
* // Concurrent calls to `billing.delete`:
|
|
45
|
+
* // Call A → executes immediately
|
|
46
|
+
* // Call B → waits for A to complete → then executes
|
|
47
|
+
* // Call C → waits for B to complete → then executes
|
|
48
|
+
* //
|
|
49
|
+
* // Concurrent calls to `billing.list` (readOnly):
|
|
50
|
+
* // All execute in parallel (serializer not invoked)
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export class MutationSerializer {
|
|
54
|
+
/**
|
|
55
|
+
* Active promise chains keyed by action key.
|
|
56
|
+
* Each entry represents the "tail" of the serialization queue.
|
|
57
|
+
* When the tail resolves, the next waiter starts.
|
|
58
|
+
*/
|
|
59
|
+
_chains = new Map();
|
|
60
|
+
// ── Public API ───────────────────────────────────────
|
|
61
|
+
/**
|
|
62
|
+
* Serialize execution of `fn` for the given action key.
|
|
63
|
+
*
|
|
64
|
+
* Concurrent calls with the **same key** are queued and executed
|
|
65
|
+
* strictly in FIFO order. Different keys are fully independent.
|
|
66
|
+
*
|
|
67
|
+
* @param key - Action key (e.g., `"delete"` or `"billing.refund"`)
|
|
68
|
+
* @param fn - The async function to serialize (typically `runChain()`)
|
|
69
|
+
* @param signal - Optional AbortSignal for cooperative cancellation while waiting
|
|
70
|
+
* @returns The result of `fn()`
|
|
71
|
+
* @throws Error if the AbortSignal fires while waiting in queue
|
|
72
|
+
*/
|
|
73
|
+
async serialize(key, fn, signal) {
|
|
74
|
+
// Append to the chain for this key
|
|
75
|
+
const prev = this._chains.get(key) ?? Promise.resolve();
|
|
76
|
+
let releaseLock;
|
|
77
|
+
const lock = new Promise(resolve => { releaseLock = resolve; });
|
|
78
|
+
this._chains.set(key, lock);
|
|
79
|
+
try {
|
|
80
|
+
// Wait for previous operation on this key to complete
|
|
81
|
+
await prev;
|
|
82
|
+
// Check if cancelled while waiting in the serialization queue
|
|
83
|
+
if (signal?.aborted) {
|
|
84
|
+
throw new Error('Request cancelled while waiting for mutation lock.');
|
|
85
|
+
}
|
|
86
|
+
return await fn();
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
releaseLock();
|
|
90
|
+
// GC: if this was the last link in the chain, prune the entry
|
|
91
|
+
// so the map doesn't grow unboundedly with resolved promises.
|
|
92
|
+
if (this._chains.get(key) === lock) {
|
|
93
|
+
this._chains.delete(key);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// ── Diagnostics ──────────────────────────────────────
|
|
98
|
+
/**
|
|
99
|
+
* Number of action keys with active serialization chains.
|
|
100
|
+
* Used for testing and debugging — should be 0 when idle.
|
|
101
|
+
*/
|
|
102
|
+
get activeChains() {
|
|
103
|
+
return this._chains.size;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=MutationSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationSerializer.js","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,4DAA4D;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,kBAAkB;IAC3B;;;;OAIG;IACc,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,wDAAwD;IAExD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CACX,GAAW,EACX,EAAoB,EACpB,MAAoB;QAEpB,mCAAmC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAExD,IAAI,WAAwB,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC;YACD,sDAAsD;YACtD,MAAM,IAAI,CAAC;YAEX,8DAA8D;YAC9D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,MAAM,EAAE,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACP,WAAW,EAAE,CAAC;YAEd,8DAA8D;YAC9D,8DAA8D;YAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IAED,wDAAwD;IAExD;;;OAGG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -5,4 +5,5 @@ export { progress, isProgressEvent, type ProgressEvent, type ProgressSink } from
|
|
|
5
5
|
export { computeResponseSize, type PipelineHooks } from './PipelineHooks.js';
|
|
6
6
|
export { ConcurrencyGuard, type ConcurrencyConfig, createConcurrencyGuard } from './ConcurrencyGuard.js';
|
|
7
7
|
export { applyEgressGuard, type EgressConfig } from './EgressGuard.js';
|
|
8
|
+
export { MutationSerializer } from './MutationSerializer.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/execution/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EACH,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EACzD,KAAK,gBAAgB,EAAE,KAAK,uBAAuB,GACtD,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/execution/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EACH,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EACzD,KAAK,gBAAgB,EAAE,KAAK,uBAAuB,GACtD,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -5,4 +5,5 @@ export { progress, isProgressEvent } from './ProgressHelper.js';
|
|
|
5
5
|
export { computeResponseSize } from './PipelineHooks.js';
|
|
6
6
|
export { ConcurrencyGuard, createConcurrencyGuard } from './ConcurrencyGuard.js';
|
|
7
7
|
export { applyEgressGuard } from './EgressGuard.js';
|
|
8
|
+
export { MutationSerializer } from './MutationSerializer.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/execution/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EACH,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,GAE5D,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAsB,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAyC,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAsB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAA0B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/execution/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EACH,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,GAE5D,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAsB,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAyC,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAsB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAA0B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HydrationSandbox — Structured Deadline for Prompt Server-Side Hydration
|
|
3
|
+
*
|
|
4
|
+
* When a user invokes `/morning_briefing`, the prompt handler performs
|
|
5
|
+
* server-side hydration: fetching Jira tickets, Stripe invoices, database
|
|
6
|
+
* queries. If any external source hangs (15s Jira timeout, API 500),
|
|
7
|
+
* the user stares at a frozen UI.
|
|
8
|
+
*
|
|
9
|
+
* This sandbox wraps the handler in a strict `Promise.race` deadline:
|
|
10
|
+
*
|
|
11
|
+
* ┌─────────────────────────────────────────────────┐
|
|
12
|
+
* │ Promise.race([ │
|
|
13
|
+
* │ handler(ctx, args), ← the real work │
|
|
14
|
+
* │ deadlinePromise(3s), ← the safety net │
|
|
15
|
+
* │ ]) │
|
|
16
|
+
* │ │
|
|
17
|
+
* │ Winner: │
|
|
18
|
+
* │ handler → return result (happy path) │
|
|
19
|
+
* │ deadline → return SYSTEM ALERT (graceful) │
|
|
20
|
+
* │ handler throws → return ERROR ALERT (catch) │
|
|
21
|
+
* └─────────────────────────────────────────────────┘
|
|
22
|
+
*
|
|
23
|
+
* Three guarantees:
|
|
24
|
+
* 1. The UI unblocks within `deadlineMs` — always.
|
|
25
|
+
* 2. Handler errors become graceful alerts, not -32603 crashes.
|
|
26
|
+
* 3. Timers are cleaned via `finally` — no resource leaks.
|
|
27
|
+
*
|
|
28
|
+
* Design influenced by:
|
|
29
|
+
* - Go's `context.WithDeadline` (structured cancellation)
|
|
30
|
+
* - gRPC deadline propagation (strict, per-call)
|
|
31
|
+
* - Resilience4j's TimeLimiter (JVM circuit breaker pattern)
|
|
32
|
+
*
|
|
33
|
+
* @module
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
import { type PromptResult } from './types.js';
|
|
37
|
+
/**
|
|
38
|
+
* Execute a prompt hydration function within a strict deadline.
|
|
39
|
+
*
|
|
40
|
+
* Uses `Promise.race` between the handler and a timeout promise.
|
|
41
|
+
* Three scenarios:
|
|
42
|
+
*
|
|
43
|
+
* 1. **Handler wins** (completes before deadline) → returns result
|
|
44
|
+
* 2. **Deadline wins** (handler too slow) → returns TIMEOUT alert
|
|
45
|
+
* 3. **Handler throws** (API error, crash) → returns ERROR alert
|
|
46
|
+
*
|
|
47
|
+
* In ALL cases, the caller receives a valid `PromptResult`.
|
|
48
|
+
* The UI never freezes. The user never sees `-32603`.
|
|
49
|
+
*
|
|
50
|
+
* @param fn - The prompt hydration function to execute
|
|
51
|
+
* @param deadlineMs - Maximum time in milliseconds (must be > 0)
|
|
52
|
+
* @returns Always returns a valid PromptResult
|
|
53
|
+
*/
|
|
54
|
+
export declare function runWithHydrationDeadline(fn: () => Promise<PromptResult>, deadlineMs: number): Promise<PromptResult>;
|
|
55
|
+
//# sourceMappingURL=HydrationSandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HydrationSandbox.d.ts","sourceRoot":"","sources":["../../src/prompt/HydrationSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAmE/C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,wBAAwB,CAC1C,EAAE,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EAC/B,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CAwBvB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HydrationSandbox — Structured Deadline for Prompt Server-Side Hydration
|
|
3
|
+
*
|
|
4
|
+
* When a user invokes `/morning_briefing`, the prompt handler performs
|
|
5
|
+
* server-side hydration: fetching Jira tickets, Stripe invoices, database
|
|
6
|
+
* queries. If any external source hangs (15s Jira timeout, API 500),
|
|
7
|
+
* the user stares at a frozen UI.
|
|
8
|
+
*
|
|
9
|
+
* This sandbox wraps the handler in a strict `Promise.race` deadline:
|
|
10
|
+
*
|
|
11
|
+
* ┌─────────────────────────────────────────────────┐
|
|
12
|
+
* │ Promise.race([ │
|
|
13
|
+
* │ handler(ctx, args), ← the real work │
|
|
14
|
+
* │ deadlinePromise(3s), ← the safety net │
|
|
15
|
+
* │ ]) │
|
|
16
|
+
* │ │
|
|
17
|
+
* │ Winner: │
|
|
18
|
+
* │ handler → return result (happy path) │
|
|
19
|
+
* │ deadline → return SYSTEM ALERT (graceful) │
|
|
20
|
+
* │ handler throws → return ERROR ALERT (catch) │
|
|
21
|
+
* └─────────────────────────────────────────────────┘
|
|
22
|
+
*
|
|
23
|
+
* Three guarantees:
|
|
24
|
+
* 1. The UI unblocks within `deadlineMs` — always.
|
|
25
|
+
* 2. Handler errors become graceful alerts, not -32603 crashes.
|
|
26
|
+
* 3. Timers are cleaned via `finally` — no resource leaks.
|
|
27
|
+
*
|
|
28
|
+
* Design influenced by:
|
|
29
|
+
* - Go's `context.WithDeadline` (structured cancellation)
|
|
30
|
+
* - gRPC deadline propagation (strict, per-call)
|
|
31
|
+
* - Resilience4j's TimeLimiter (JVM circuit breaker pattern)
|
|
32
|
+
*
|
|
33
|
+
* @module
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
import {} from './types.js';
|
|
37
|
+
// ── Alert Formatters ─────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Build an XML-structured SYSTEM ALERT for the LLM.
|
|
40
|
+
*
|
|
41
|
+
* Uses XML semantic boundaries so the LLM can parse the
|
|
42
|
+
* alert deterministically — same pattern as our self-healing
|
|
43
|
+
* tool errors (`<tool_error>`, `<validation_error>`).
|
|
44
|
+
*/
|
|
45
|
+
function formatHydrationAlert(status, deadlineMs, errorMessage) {
|
|
46
|
+
const parts = ['<hydration_alert>'];
|
|
47
|
+
parts.push(` <status>${status}</status>`);
|
|
48
|
+
parts.push(` <deadline_ms>${deadlineMs}</deadline_ms>`);
|
|
49
|
+
if (status === 'TIMEOUT') {
|
|
50
|
+
parts.push(` <message>Prompt hydration did not complete within ${(deadlineMs / 1000).toFixed(1)}s. ` +
|
|
51
|
+
`External data sources (APIs, databases) did not respond within the deadline.</message>`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
parts.push(` <message>Prompt hydration failed: ${errorMessage ?? 'Unknown error'}.</message>`);
|
|
55
|
+
}
|
|
56
|
+
parts.push(' <guidance>Proceed with the conversation using available context. ' +
|
|
57
|
+
'The user\'s request is still valid — answer with your general knowledge ' +
|
|
58
|
+
'and inform the user that live data could not be fetched at this time. ' +
|
|
59
|
+
'Do NOT retry the same prompt automatically.</guidance>');
|
|
60
|
+
parts.push('</hydration_alert>');
|
|
61
|
+
return parts.join('\n');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Wrap a hydration alert as a valid `PromptResult`.
|
|
65
|
+
*
|
|
66
|
+
* Returns a single `user` message with the XML alert.
|
|
67
|
+
* MCP `PromptMessage` only supports `user`|`assistant` roles.
|
|
68
|
+
*/
|
|
69
|
+
function alertAsPromptResult(status, deadlineMs, errorMessage) {
|
|
70
|
+
return {
|
|
71
|
+
messages: [{
|
|
72
|
+
role: 'user',
|
|
73
|
+
content: {
|
|
74
|
+
type: 'text',
|
|
75
|
+
text: formatHydrationAlert(status, deadlineMs, errorMessage),
|
|
76
|
+
},
|
|
77
|
+
}],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// ── Sandbox Execution ────────────────────────────────────
|
|
81
|
+
/**
|
|
82
|
+
* Execute a prompt hydration function within a strict deadline.
|
|
83
|
+
*
|
|
84
|
+
* Uses `Promise.race` between the handler and a timeout promise.
|
|
85
|
+
* Three scenarios:
|
|
86
|
+
*
|
|
87
|
+
* 1. **Handler wins** (completes before deadline) → returns result
|
|
88
|
+
* 2. **Deadline wins** (handler too slow) → returns TIMEOUT alert
|
|
89
|
+
* 3. **Handler throws** (API error, crash) → returns ERROR alert
|
|
90
|
+
*
|
|
91
|
+
* In ALL cases, the caller receives a valid `PromptResult`.
|
|
92
|
+
* The UI never freezes. The user never sees `-32603`.
|
|
93
|
+
*
|
|
94
|
+
* @param fn - The prompt hydration function to execute
|
|
95
|
+
* @param deadlineMs - Maximum time in milliseconds (must be > 0)
|
|
96
|
+
* @returns Always returns a valid PromptResult
|
|
97
|
+
*/
|
|
98
|
+
export async function runWithHydrationDeadline(fn, deadlineMs) {
|
|
99
|
+
let timer;
|
|
100
|
+
// Deadline promise: resolves with TIMEOUT alert after deadline
|
|
101
|
+
const deadlinePromise = new Promise((resolve) => {
|
|
102
|
+
timer = setTimeout(() => {
|
|
103
|
+
resolve(alertAsPromptResult('TIMEOUT', deadlineMs));
|
|
104
|
+
}, deadlineMs);
|
|
105
|
+
});
|
|
106
|
+
// Handler promise: wraps fn() to catch errors → ERROR alert
|
|
107
|
+
const handlerPromise = fn().catch((err) => {
|
|
108
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
109
|
+
return alertAsPromptResult('ERROR', deadlineMs, message);
|
|
110
|
+
});
|
|
111
|
+
try {
|
|
112
|
+
// First to finish wins. UI unblocks immediately.
|
|
113
|
+
return await Promise.race([handlerPromise, deadlinePromise]);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
// Always clean up the timer — prevents resource leaks
|
|
117
|
+
// and keeps Node.js from staying alive unnecessarily.
|
|
118
|
+
if (timer !== undefined)
|
|
119
|
+
clearTimeout(timer);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=HydrationSandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HydrationSandbox.js","sourceRoot":"","sources":["../../src/prompt/HydrationSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAqB,MAAM,YAAY,CAAC;AAE/C,4DAA4D;AAE5D;;;;;;GAMG;AACH,SAAS,oBAAoB,CACzB,MAA2B,EAC3B,UAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAa,CAAC,mBAAmB,CAAC,CAAC;IAE9C,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,WAAW,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,gBAAgB,CAAC,CAAC;IAEzD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACN,uDAAuD,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YAC1F,wFAAwF,CAC3F,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CACN,uCAAuC,YAAY,IAAI,eAAe,aAAa,CACtF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CACN,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,wDAAwD,CAC3D,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CACxB,MAA2B,EAC3B,UAAkB,EAClB,YAAqB;IAErB,OAAO;QACH,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;iBAC/D;aACJ,CAAC;KACL,CAAC;AACN,CAAC;AAED,4DAA4D;AAE5D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,EAA+B,EAC/B,UAAkB;IAElB,IAAI,KAAgD,CAAC;IAErD,+DAA+D;IAC/D,MAAM,eAAe,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE;QAC1D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACxD,CAAC,EAAE,UAAU,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,MAAM,cAAc,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAgB,EAAE;QACpD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,iDAAiD;QACjD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IACjE,CAAC;YAAS,CAAC;QACP,sDAAsD;QACtD,sDAAsD;QACtD,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;AACL,CAAC"}
|
|
@@ -63,6 +63,26 @@ export declare class PromptRegistry<TContext = void> {
|
|
|
63
63
|
private readonly _interceptors;
|
|
64
64
|
private _notificationSink?;
|
|
65
65
|
private _notifyDebounceTimer;
|
|
66
|
+
private _defaultHydrationTimeout;
|
|
67
|
+
/**
|
|
68
|
+
* Set a global hydration timeout for ALL prompts in this registry.
|
|
69
|
+
*
|
|
70
|
+
* Individual prompts can override with their own `hydrationTimeout`.
|
|
71
|
+
* If neither is set, no timeout is applied (backward compatible).
|
|
72
|
+
*
|
|
73
|
+
* **Enterprise use case**: The platform team sets a 5s global deadline.
|
|
74
|
+
* Critical prompts like `morning_briefing` set their own 3s deadline.
|
|
75
|
+
* Simple prompts (no external I/O) inherit the 5s safety net.
|
|
76
|
+
*
|
|
77
|
+
* @param ms - Maximum hydration time in milliseconds (must be > 0)
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const promptRegistry = new PromptRegistry<AppContext>();
|
|
82
|
+
* promptRegistry.setDefaultHydrationTimeout(5000); // 5s global safety net
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
setDefaultHydrationTimeout(ms: number): void;
|
|
66
86
|
/**
|
|
67
87
|
* Register a single prompt builder.
|
|
68
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptRegistry.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAG3B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"PromptRegistry.d.ts","sourceRoot":"","sources":["../../src/prompt/PromptRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAG3B,MAAM,YAAY,CAAC;AAKpB,iDAAiD;AACjD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACN;AAED,mDAAmD;AACnD,MAAM,WAAW,YAAY;IACzB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC;AAkBhD,qBAAa,cAAc,CAAC,QAAQ,GAAG,IAAI;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,iBAAiB,CAAC,CAAyB;IACnD,OAAO,CAAC,oBAAoB,CAA4C;IACxE,OAAO,CAAC,wBAAwB,CAAqB;IAErD;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;IAShD;;OAEG;IACH,WAAW,CAAC,GAAG,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI;IAMzD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIhE;;;;OAIG;IACH,aAAa,IAAI,YAAY,EAAE;IAQ/B;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE;IAkChD;;;;;;;;;;OAUG;IACG,QAAQ,CACV,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC;IAoFxB;;;;;;;OAOG;IACH,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI;IAIvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,IAAI,IAAI;IAerB,2DAA2D;IAC3D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAE1B,qCAAqC;IACrC,KAAK,IAAI,IAAI;IAEb,oCAAoC;IACpC,IAAI,IAAI,IAAI,MAAM,CAAgC;CACrD"}
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
* @module
|
|
35
35
|
*/
|
|
36
36
|
import {} from './types.js';
|
|
37
|
+
import { runWithHydrationDeadline } from './HydrationSandbox.js';
|
|
37
38
|
// ── MX Helpers ───────────────────────────────────────────
|
|
38
39
|
/**
|
|
39
40
|
* Format key-value data into an XML semantic block.
|
|
@@ -52,6 +53,28 @@ export class PromptRegistry {
|
|
|
52
53
|
_interceptors = [];
|
|
53
54
|
_notificationSink;
|
|
54
55
|
_notifyDebounceTimer;
|
|
56
|
+
_defaultHydrationTimeout;
|
|
57
|
+
/**
|
|
58
|
+
* Set a global hydration timeout for ALL prompts in this registry.
|
|
59
|
+
*
|
|
60
|
+
* Individual prompts can override with their own `hydrationTimeout`.
|
|
61
|
+
* If neither is set, no timeout is applied (backward compatible).
|
|
62
|
+
*
|
|
63
|
+
* **Enterprise use case**: The platform team sets a 5s global deadline.
|
|
64
|
+
* Critical prompts like `morning_briefing` set their own 3s deadline.
|
|
65
|
+
* Simple prompts (no external I/O) inherit the 5s safety net.
|
|
66
|
+
*
|
|
67
|
+
* @param ms - Maximum hydration time in milliseconds (must be > 0)
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const promptRegistry = new PromptRegistry<AppContext>();
|
|
72
|
+
* promptRegistry.setDefaultHydrationTimeout(5000); // 5s global safety net
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
setDefaultHydrationTimeout(ms) {
|
|
76
|
+
this._defaultHydrationTimeout = ms;
|
|
77
|
+
}
|
|
55
78
|
/**
|
|
56
79
|
* Register a single prompt builder.
|
|
57
80
|
*
|
|
@@ -174,7 +197,13 @@ export class PromptRegistry {
|
|
|
174
197
|
}],
|
|
175
198
|
};
|
|
176
199
|
}
|
|
177
|
-
|
|
200
|
+
// ── Hydration Deadline ───────────────────────────
|
|
201
|
+
// Per-prompt timeout overrides registry default.
|
|
202
|
+
// Zero overhead when no timeout configured.
|
|
203
|
+
const effectiveTimeout = builder.getHydrationTimeout() ?? this._defaultHydrationTimeout;
|
|
204
|
+
const result = effectiveTimeout && effectiveTimeout > 0
|
|
205
|
+
? await runWithHydrationDeadline(() => builder.execute(ctx, args), effectiveTimeout)
|
|
206
|
+
: await builder.execute(ctx, args);
|
|
178
207
|
// ── Prompt Interceptors ──────────────────────────
|
|
179
208
|
// Zero overhead when no interceptors registered.
|
|
180
209
|
if (this._interceptors.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptRegistry.js","sourceRoot":"","sources":["../../src/prompt/PromptRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAMN,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"PromptRegistry.js","sourceRoot":"","sources":["../../src/prompt/PromptRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAMN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAiCjE,4DAA4D;AAE5D;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,IAA+C;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,IAAI,GAAG,cAAc,OAAO,OAAO,GAAG,WAAW,CAAC;AAC7D,CAAC;AAED,4DAA4D;AAE5D,MAAM,OAAO,cAAc;IACN,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IACvD,aAAa,GAAoC,EAAE,CAAC;IAC7D,iBAAiB,CAA0B;IAC3C,oBAAoB,CAA4C;IAChE,wBAAwB,CAAqB;IAErD;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAA0B,CAAC,EAAU;QACjC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAgC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,GAAG,QAAmC;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,CAAC,WAA0C;QACrD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACT,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAoB;QAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACtD,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACrD,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC3D,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1C,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAEtC,YAAY;YACZ,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,SAAS;YACb,CAAC;YAED,WAAW;YACX,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,SAAS;YACb,CAAC;YAED,UAAU;YACV,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,SAAS;YACb,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,QAAQ,CACV,GAAa,EACb,IAAY,EACZ,IAA4B;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO;gBACH,QAAQ,EAAE,CAAC;wBACP,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACL,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oBAAoB,IAAI,yBAAyB,SAAS,EAAE;yBACrE;qBACJ,CAAC;aACL,CAAC;QACN,CAAC;QAED,oDAAoD;QACpD,iDAAiD;QACjD,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,wBAAwB,CAAC;QAExF,MAAM,MAAM,GAAG,gBAAgB,IAAI,gBAAgB,GAAG,CAAC;YACnD,CAAC,CAAC,MAAM,wBAAwB,CAC5B,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAChC,gBAAgB,CACnB;YACD,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvC,oDAAoD;QACpD,iDAAiD;QACjD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEnD,0DAA0D;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAe;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;SAC1B,CAAC;QAEF,gCAAgC;QAChC,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,MAAM,kBAAkB,GAAG;YACvB,aAAa,CAAC,IAAY;gBACtB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,WAAW,CAAC,IAAY;gBACpB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,YAAY,CAAC,IAAY;gBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,UAAU,CAAC,IAAY;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,eAAe,CAAC,IAAY;gBACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,cAAc,CAAC,GAAW,EAAE,IAA+C;gBACvE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,aAAa,CAAC,GAAW,EAAE,IAA+C;gBACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/F,CAAC;SACJ,CAAC;QAEF,6CAA6C;QAC7C,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,qDAAqD;QACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAEnE,qCAAqC;QACrC,OAAO;YACH,GAAG,MAAM;YACT,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC;SAC5D,CAAC;IACN,CAAC;IAED,wDAAwD;IAExD;;;;;;;OAOG;IACH,mBAAmB,CAAC,IAA4B;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEpC,4DAA4D;QAC5D,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACxC,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QAC1C,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,2DAA2D;IAC3D,GAAG,CAAC,IAAY,IAAa,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/D,qCAAqC;IACrC,KAAK,KAAW,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEzC,oCAAoC;IACpC,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;CACrD"}
|
|
@@ -26,6 +26,7 @@ export declare class PromptBuilderImpl<TContext = void> implements PromptBuilder
|
|
|
26
26
|
private readonly _middlewares;
|
|
27
27
|
private readonly _schema;
|
|
28
28
|
private readonly _handler;
|
|
29
|
+
private readonly _hydrationTimeout;
|
|
29
30
|
constructor(name: string, config: {
|
|
30
31
|
title?: string;
|
|
31
32
|
description?: string;
|
|
@@ -37,11 +38,13 @@ export declare class PromptBuilderImpl<TContext = void> implements PromptBuilder
|
|
|
37
38
|
middleware?: MiddlewareFn<TContext>[];
|
|
38
39
|
schema?: ZodObject<ZodRawShape>;
|
|
39
40
|
handler: (ctx: TContext & LoopbackContext, args: Record<string, unknown>) => Promise<PromptResult>;
|
|
41
|
+
hydrationTimeout?: number;
|
|
40
42
|
});
|
|
41
43
|
getName(): string;
|
|
42
44
|
getDescription(): string | undefined;
|
|
43
45
|
getTags(): string[];
|
|
44
46
|
hasMiddleware(): boolean;
|
|
47
|
+
getHydrationTimeout(): number | undefined;
|
|
45
48
|
buildPromptDefinition(): {
|
|
46
49
|
name: string;
|
|
47
50
|
title?: string;
|
|
@@ -67,6 +70,7 @@ interface PromptConfigBase<TContext> {
|
|
|
67
70
|
};
|
|
68
71
|
tags?: string[];
|
|
69
72
|
middleware?: MiddlewareFn<TContext>[];
|
|
73
|
+
hydrationTimeout?: number;
|
|
70
74
|
}
|
|
71
75
|
/**
|
|
72
76
|
* Overload 1: Zod schema — full type inference via `z.infer<>`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definePrompt.d.ts","sourceRoot":"","sources":["../../src/prompt/definePrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACvD,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqCrD,qBAAa,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAE,YAAW,aAAa,CAAC,QAAQ,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4F;
|
|
1
|
+
{"version":3,"file":"definePrompt.d.ts","sourceRoot":"","sources":["../../src/prompt/definePrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ export class PromptBuilderImpl {
|
|
|
54
54
|
_middlewares;
|
|
55
55
|
_schema;
|
|
56
56
|
_handler;
|
|
57
|
+
_hydrationTimeout;
|
|
57
58
|
constructor(name, config) {
|
|
58
59
|
this._name = name;
|
|
59
60
|
this._title = config.title;
|
|
@@ -63,6 +64,7 @@ export class PromptBuilderImpl {
|
|
|
63
64
|
this._middlewares = config.middleware ?? [];
|
|
64
65
|
this._schema = config.schema;
|
|
65
66
|
this._handler = config.handler;
|
|
67
|
+
this._hydrationTimeout = config.hydrationTimeout;
|
|
66
68
|
}
|
|
67
69
|
getName() {
|
|
68
70
|
return this._name;
|
|
@@ -76,6 +78,9 @@ export class PromptBuilderImpl {
|
|
|
76
78
|
hasMiddleware() {
|
|
77
79
|
return this._middlewares.length > 0;
|
|
78
80
|
}
|
|
81
|
+
getHydrationTimeout() {
|
|
82
|
+
return this._hydrationTimeout;
|
|
83
|
+
}
|
|
79
84
|
buildPromptDefinition() {
|
|
80
85
|
const def = { name: this._name };
|
|
81
86
|
if (this._title) {
|
|
@@ -118,6 +123,7 @@ export function definePrompt(name, config) {
|
|
|
118
123
|
middleware: config.middleware,
|
|
119
124
|
schema,
|
|
120
125
|
handler: config.handler,
|
|
126
|
+
hydrationTimeout: config.hydrationTimeout,
|
|
121
127
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
128
|
});
|
|
123
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definePrompt.js","sourceRoot":"","sources":["../../src/prompt/definePrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAoC,MAAM,KAAK,CAAC;AACvD,OAAO,EAON,MAAM,YAAY,CAAC;AACpB,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAkB,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,mBAAmB,CACxB,MAA8B;IAE9B,MAAM,IAAI,GAAsE,EAAE,CAAC;IAEnF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,8DAA8D;QAC9D,MAAM,GAAG,GAAI,KAAa,CAAC,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,EAAE,QAAQ,KAAK,aAAa,IAAI,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;QACrF,MAAM,WAAW,GAAI,KAAkC,CAAC,WAAW,IAAI,GAAG,EAAE,WAAW,CAAC;QAExF,MAAM,OAAO,GAA+D;YACxE,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,UAAU;SACxB,CAAC;QACF,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,4DAA4D;AAE5D,MAAM,OAAO,iBAAiB;IACT,KAAK,CAAS;IACd,MAAM,CAAqB;IAC3B,YAAY,CAAqB;IACjC,MAAM,CAAgD;IACtD,KAAK,CAAW;IAChB,YAAY,CAAoC;IAChD,OAAO,CAAqC;IAC5C,QAAQ,CAA4F;
|
|
1
|
+
{"version":3,"file":"definePrompt.js","sourceRoot":"","sources":["../../src/prompt/definePrompt.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt/types.d.ts
CHANGED
|
@@ -347,6 +347,16 @@ export interface PromptBuilder<TContext = void> {
|
|
|
347
347
|
* @returns The hydrated prompt result with messages
|
|
348
348
|
*/
|
|
349
349
|
execute(ctx: TContext, args: Record<string, string>): Promise<PromptResult>;
|
|
350
|
+
/**
|
|
351
|
+
* Get the configured hydration timeout (in milliseconds).
|
|
352
|
+
*
|
|
353
|
+
* When set, the handler is wrapped in a strict deadline.
|
|
354
|
+
* If the handler doesn't complete within this time, a
|
|
355
|
+
* SYSTEM ALERT is returned instead of freezing the UI.
|
|
356
|
+
*
|
|
357
|
+
* @returns Timeout in ms, or `undefined` if no deadline is configured
|
|
358
|
+
*/
|
|
359
|
+
getHydrationTimeout(): number | undefined;
|
|
350
360
|
}
|
|
351
361
|
/**
|
|
352
362
|
* Configuration for `definePrompt()`.
|
|
@@ -379,6 +389,27 @@ export interface PromptConfig<TContext, TArgs extends Record<string, unknown> =
|
|
|
379
389
|
tags?: string[];
|
|
380
390
|
/** Middleware chain (same signature as tool middleware) */
|
|
381
391
|
middleware?: MiddlewareFn<TContext>[];
|
|
392
|
+
/**
|
|
393
|
+
* Maximum hydration time in milliseconds.
|
|
394
|
+
*
|
|
395
|
+
* When set, the handler is wrapped in a strict deadline. If external
|
|
396
|
+
* data sources (APIs, databases) don't respond within this time,
|
|
397
|
+
* the framework cuts the Promise and returns a graceful SYSTEM ALERT.
|
|
398
|
+
* The UI unblocks immediately — the user never sees a frozen screen.
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```typescript
|
|
402
|
+
* definePrompt('morning_briefing', {
|
|
403
|
+
* hydrationTimeout: 3000, // 3 seconds strict
|
|
404
|
+
* handler: async (ctx, args) => {
|
|
405
|
+
* // If Jira takes 15s, the framework cuts at 3s
|
|
406
|
+
* const tickets = await ctx.invokeTool('jira.get_assigned');
|
|
407
|
+
* return { messages: [...] };
|
|
408
|
+
* },
|
|
409
|
+
* });
|
|
410
|
+
* ```
|
|
411
|
+
*/
|
|
412
|
+
hydrationTimeout?: number;
|
|
382
413
|
/**
|
|
383
414
|
* The hydration handler.
|
|
384
415
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prompt/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/prompt/types.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -292,9 +292,18 @@ const analytics = createTool<AppContext>('analytics')
|
|
|
292
292
|
name: 'query',
|
|
293
293
|
handler: async (ctx, args) => success(await ctx.db.$queryRaw(args.sql)),
|
|
294
294
|
});
|
|
295
|
+
|
|
296
|
+
// Intent Mutex — anti-race condition guard
|
|
297
|
+
const users = createTool<AppContext>('users')
|
|
298
|
+
.action({
|
|
299
|
+
name: 'delete',
|
|
300
|
+
destructive: true, // Automatically serializes concurrent calls to this action key
|
|
301
|
+
handler: async (ctx, args) => success(await ctx.db.users.delete(args.id)),
|
|
302
|
+
});
|
|
295
303
|
```
|
|
296
304
|
|
|
297
|
-
Load shedding returns `toolError('SERVER_BUSY')` — a self-healing error that causes the LLM to reduce its cadence. Egress truncation injects `[SYSTEM INTERVENTION: Payload truncated. You MUST use pagination.]`. Zero overhead when not configured.
|
|
305
|
+
Load shedding returns `toolError('SERVER_BUSY')` — a self-healing error that causes the LLM to reduce its cadence. Egress truncation injects `[SYSTEM INTERVENTION: Payload truncated. You MUST use pagination.]`. Intent Mutex prevents LLM double-firing hallucinations. Zero overhead when not configured.
|
|
306
|
+
|
|
298
307
|
|
|
299
308
|
## Dynamic Manifest
|
|
300
309
|
|
|
@@ -402,6 +411,29 @@ const SummarizePrompt = definePrompt<AppContext>('summarize', {
|
|
|
402
411
|
});
|
|
403
412
|
```
|
|
404
413
|
|
|
414
|
+
## Hydration Timeout Sandbox
|
|
415
|
+
|
|
416
|
+
Prompt handlers fetch data from external sources (APIs, databases). If any source hangs, the UI freezes. The Hydration Timeout Sandbox wraps the handler in a strict `Promise.race` deadline. Three guarantees: (1) handler completes → normal result, (2) handler exceeds deadline → `<hydration_alert><status>TIMEOUT</status>` alert, (3) handler throws → `<hydration_alert><status>ERROR</status>` alert. The UI ALWAYS unblocks.
|
|
417
|
+
|
|
418
|
+
```typescript
|
|
419
|
+
// Per-prompt deadline
|
|
420
|
+
const Briefing = definePrompt<AppContext>('morning_briefing', {
|
|
421
|
+
hydrationTimeout: 3000, // 3 seconds strict
|
|
422
|
+
handler: async (ctx, args) => {
|
|
423
|
+
// If Jira takes 15s, framework cuts at 3s → returns SYSTEM ALERT
|
|
424
|
+
const tickets = await ctx.invokeTool('jira.get_assigned');
|
|
425
|
+
return { messages: [PromptMessage.user(tickets.text)] };
|
|
426
|
+
},
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
// Registry-level default (global safety net)
|
|
430
|
+
const prompts = new PromptRegistry<AppContext>();
|
|
431
|
+
prompts.setDefaultHydrationTimeout(5000); // 5s for all prompts
|
|
432
|
+
prompts.register(Briefing); // overrides with 3s
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Zero overhead when no timeout configured. Timer cleanup via `finally` — no resource leaks. Interceptors still run after timeout.
|
|
436
|
+
|
|
405
437
|
## MVA-Driven Prompts — fromView()
|
|
406
438
|
|
|
407
439
|
Bridge your Presenter layer into Prompts with zero duplication. `PromptMessage.fromView()` decomposes a `ResponseBuilder` into XML-tagged prompt messages (`<domain_rules>`, `<dataset>`, `<visual_context>`, `<system_guidance>`) optimized for frontier LLMs. Domain rules, UI blocks, and action suggestions from the Presenter are automatically extracted — single source of truth.
|
|
@@ -493,7 +525,7 @@ const AuditPrompt = definePrompt<AppContext>('audit', {
|
|
|
493
525
|
- `PromptMessage.audio(role, data, mimeType)` → PromptMessagePayload
|
|
494
526
|
- `PromptMessage.resource(role, uri, options?)` → PromptMessagePayload
|
|
495
527
|
- `PromptMessage.fromView(builder)` → PromptMessagePayload[] — decomposes ResponseBuilder into XML-tagged messages (<domain_rules>, <dataset>, <visual_context>, <system_guidance>)
|
|
496
|
-
- `PromptRegistry<TContext>` — .register(), .registerAll(), .getAllPrompts(), .getPrompts(filter), .routeGet(), .notifyChanged(), .has(), .clear(), .size
|
|
528
|
+
- `PromptRegistry<TContext>` — .register(), .registerAll(), .getAllPrompts(), .getPrompts(filter), .routeGet(), .setDefaultHydrationTimeout(), .notifyChanged(), .has(), .clear(), .size
|
|
497
529
|
|
|
498
530
|
### Result Monad
|
|
499
531
|
- `succeed<T>(value)` → Success<T>
|
|
@@ -540,7 +572,7 @@ const AuditPrompt = definePrompt<AppContext>('audit', {
|
|
|
540
572
|
- `PromptMessagePayload` — { role: 'user' | 'assistant', content: PromptContentBlock }
|
|
541
573
|
- `PromptContentBlock` — PromptTextContent | PromptImageContent | PromptAudioContent | PromptResourceContent
|
|
542
574
|
- `PromptBuilder<TContext>` — DIP interface: .name, .getDefinition(), .handleGet(), .tags
|
|
543
|
-
- `PromptConfig<TContext>` — { title?, description?, args?, tags?, middleware?, handler }
|
|
575
|
+
- `PromptConfig<TContext>` — { title?, description?, args?, tags?, middleware?, hydrationTimeout?, handler }
|
|
544
576
|
|
|
545
577
|
### Domain Models
|
|
546
578
|
- `BaseModel` — abstract base (name, title, description, meta, icons)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vinkius-core/mcp-fusion",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "MVA (Model-View-Agent) framework for the Model Context Protocol. Structured perception packages with Presenters, cognitive guardrails, self-healing errors, action consolidation, and tRPC-style type safety — so AI agents perceive and act on your data deterministically.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|