@vinhnt-sdk/core 0.1.1 → 0.1.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.
- package/README.md +194 -12
- package/dist/event-bus/global-bus.d.ts +8 -0
- package/dist/event-bus/global-bus.d.ts.map +1 -1
- package/dist/event-bus/global-bus.js +48 -0
- package/dist/event-bus/global-bus.js.map +1 -1
- package/dist/event-bus/in-memory-bus.d.ts +14 -0
- package/dist/event-bus/in-memory-bus.d.ts.map +1 -1
- package/dist/event-bus/in-memory-bus.js +53 -0
- package/dist/event-bus/in-memory-bus.js.map +1 -1
- package/dist/event-bus/types.d.ts +17 -0
- package/dist/event-bus/types.d.ts.map +1 -1
- package/dist/index.d.ts +222 -105
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +180 -63
- package/dist/index.js.map +1 -1
- package/dist/kernel/circuit-breaker.d.ts +19 -1
- package/dist/kernel/circuit-breaker.d.ts.map +1 -1
- package/dist/kernel/circuit-breaker.js +50 -9
- package/dist/kernel/circuit-breaker.js.map +1 -1
- package/dist/kernel/kernel-error.d.ts +4 -2
- package/dist/kernel/kernel-error.d.ts.map +1 -1
- package/dist/kernel/kernel-error.js +7 -7
- package/dist/kernel/kernel-error.js.map +1 -1
- package/dist/kernel/kernel-types.d.ts +76 -1
- package/dist/kernel/kernel-types.d.ts.map +1 -1
- package/dist/kernel/kernel-types.js.map +1 -1
- package/dist/kernel/kernel.d.ts +34 -4
- package/dist/kernel/kernel.d.ts.map +1 -1
- package/dist/kernel/kernel.js +181 -12
- package/dist/kernel/kernel.js.map +1 -1
- package/dist/kernel/model-caller.d.ts +2 -0
- package/dist/kernel/model-caller.d.ts.map +1 -1
- package/dist/kernel/model-caller.js +8 -8
- package/dist/kernel/model-caller.js.map +1 -1
- package/dist/system-context/sources/instructions-source.js +1 -1
- package/dist/system-context/sources/instructions-source.js.map +1 -1
- package/package.json +8 -61
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,kDAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,kDAAkD;AAClD,EAAE;AACF,gDAAgD;AAChD,wDAAwD;AAExD;;;;;;;;;;;;;;;;GAgBG;AAEH,gCAAgC;AAEhC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAO9D,uBAAuB;AAEvB;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAOvD,oBAAoB;AAEpB;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE,6BAA6B;AAE7B;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOrE,yBAAyB;AAEzB;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,yBAAyB;AAEzB;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOnD,4BAA4B;AAE5B;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,oBAAoB;AAEpB;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,uBAAuB;AAEvB;;GAEG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,kBAAkB;AAElB;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,iBAAiB;AAEjB;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+BhE;;;;GAIG;AACH,OAAO,EACL,QAAQ,EACR,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAC/D,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAC3D,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAClD,uBAAuB,EAAE,cAAc,EACvC,qBAAqB,EAAE,eAAe,EAAE,YAAY,EACpD,YAAY,EAAE,cAAc,EAAE,mBAAmB,EACjD,kBAAkB,EAAE,WAAW,GAChC,MAAM,oBAAoB,CAAC;AAO5B,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQ7D,mDAAmD;AAEnD;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAOzE,kDAAkD;AAElD;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -4,6 +4,12 @@ export interface CircuitBreakerOptions {
|
|
|
4
4
|
successThreshold?: number;
|
|
5
5
|
resetTimeoutMs?: number;
|
|
6
6
|
isFailure?: (err: unknown) => boolean;
|
|
7
|
+
/** Maximum number of retries for transient failures. Default: 3 */
|
|
8
|
+
maxRetries?: number;
|
|
9
|
+
/** Base delay for exponential backoff in ms. Default: 1000 */
|
|
10
|
+
backoffMs?: number;
|
|
11
|
+
/** Maximum delay for backoff in ms. Default: 30000 */
|
|
12
|
+
maxBackoffMs?: number;
|
|
7
13
|
}
|
|
8
14
|
export declare class CircuitBreaker {
|
|
9
15
|
private state;
|
|
@@ -13,10 +19,22 @@ export declare class CircuitBreaker {
|
|
|
13
19
|
private readonly options;
|
|
14
20
|
constructor(options?: CircuitBreakerOptions);
|
|
15
21
|
getState(): CircuitState;
|
|
16
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Execute a function with circuit breaker and retry logic.
|
|
24
|
+
* Retries on transient failures with exponential backoff.
|
|
25
|
+
*
|
|
26
|
+
* @param fn - The async function to execute
|
|
27
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
28
|
+
* @returns The result of the function
|
|
29
|
+
* @throws CircuitBreakerOpenError if circuit is open
|
|
30
|
+
* @throws The original error if all retries fail
|
|
31
|
+
*/
|
|
32
|
+
call<T>(fn: () => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
17
33
|
private onSuccess;
|
|
18
34
|
private onFailure;
|
|
19
35
|
reset(): void;
|
|
36
|
+
/** Get the current configuration options. */
|
|
37
|
+
getOptions(): Readonly<Required<CircuitBreakerOptions>>;
|
|
20
38
|
}
|
|
21
39
|
export declare class CircuitBreakerOpenError extends Error {
|
|
22
40
|
readonly remainingMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/kernel/circuit-breaker.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/kernel/circuit-breaker.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAkBD,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAE9C,OAAO,CAAC,EAAE,qBAAqB;IAI3C,QAAQ,IAAI,YAAY;IAQxB;;;;;;;;;OASG;IACG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAoDrE,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;IAcjB,KAAK,IAAI,IAAI;IAOb,6CAA6C;IAC7C,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAGxD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,cAAc,EAAE,MAAM;CAKnC"}
|
|
@@ -2,6 +2,9 @@ const DEFAULT_OPTIONS = {
|
|
|
2
2
|
failureThreshold: 5,
|
|
3
3
|
successThreshold: 2,
|
|
4
4
|
resetTimeoutMs: 30_000,
|
|
5
|
+
maxRetries: 3,
|
|
6
|
+
backoffMs: 1000,
|
|
7
|
+
maxBackoffMs: 30_000,
|
|
5
8
|
isFailure: (err) => {
|
|
6
9
|
const msg = err instanceof Error ? err.message.toLowerCase() : String(err).toLowerCase();
|
|
7
10
|
if (msg.includes("auth") || msg.includes("unauthorized") || msg.includes("invalid api key"))
|
|
@@ -29,20 +32,54 @@ export class CircuitBreaker {
|
|
|
29
32
|
}
|
|
30
33
|
return this.state;
|
|
31
34
|
}
|
|
32
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Execute a function with circuit breaker and retry logic.
|
|
37
|
+
* Retries on transient failures with exponential backoff.
|
|
38
|
+
*
|
|
39
|
+
* @param fn - The async function to execute
|
|
40
|
+
* @param signal - Optional AbortSignal for cancellation
|
|
41
|
+
* @returns The result of the function
|
|
42
|
+
* @throws CircuitBreakerOpenError if circuit is open
|
|
43
|
+
* @throws The original error if all retries fail
|
|
44
|
+
*/
|
|
45
|
+
async call(fn, signal) {
|
|
33
46
|
const state = this.getState();
|
|
34
47
|
if (state === "open") {
|
|
35
48
|
throw new CircuitBreakerOpenError(this.options.resetTimeoutMs);
|
|
36
49
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
let lastError;
|
|
51
|
+
let attempt = 0;
|
|
52
|
+
while (attempt <= this.options.maxRetries) {
|
|
53
|
+
if (signal?.aborted) {
|
|
54
|
+
throw new DOMException("Aborted", "AbortError");
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const result = await fn();
|
|
58
|
+
this.onSuccess();
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
lastError = err;
|
|
63
|
+
// Check if error is retryable
|
|
64
|
+
if (!this.options.isFailure(err)) {
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
this.onFailure(err);
|
|
68
|
+
// Don't retry if we've hit the circuit breaker
|
|
69
|
+
if (this.getState() === "open") {
|
|
70
|
+
throw new CircuitBreakerOpenError(this.options.resetTimeoutMs);
|
|
71
|
+
}
|
|
72
|
+
// Don't retry on last attempt
|
|
73
|
+
if (attempt >= this.options.maxRetries) {
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
// Calculate delay with exponential backoff
|
|
77
|
+
const delay = Math.min(this.options.backoffMs * Math.pow(2, attempt), this.options.maxBackoffMs);
|
|
78
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
79
|
+
attempt++;
|
|
80
|
+
}
|
|
45
81
|
}
|
|
82
|
+
throw lastError;
|
|
46
83
|
}
|
|
47
84
|
onSuccess() {
|
|
48
85
|
if (this.state === "half_open") {
|
|
@@ -76,6 +113,10 @@ export class CircuitBreaker {
|
|
|
76
113
|
this.lastFailureTime = 0;
|
|
77
114
|
this.halfOpenSuccesses = 0;
|
|
78
115
|
}
|
|
116
|
+
/** Get the current configuration options. */
|
|
117
|
+
getOptions() {
|
|
118
|
+
return this.options;
|
|
119
|
+
}
|
|
79
120
|
}
|
|
80
121
|
export class CircuitBreakerOpenError extends Error {
|
|
81
122
|
remainingMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/kernel/circuit-breaker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/kernel/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { VntError } from "@vinhnt-sdk/schema";
|
|
2
2
|
export type KernelErrorCode = "session_busy" | "cancelled" | "max_steps_exceeded" | "max_tokens_exceeded" | "tool_failed" | "model_failed" | "session_store_failed" | "internal_error" | "timeout" | "model_unavailable";
|
|
3
3
|
export declare class KernelError extends VntError {
|
|
4
|
-
readonly code
|
|
5
|
-
|
|
4
|
+
readonly code = "KERNEL_ERROR";
|
|
5
|
+
readonly retryable = false;
|
|
6
|
+
readonly kernelCode: KernelErrorCode;
|
|
7
|
+
constructor(kernelCode: KernelErrorCode, message: string, cause?: unknown);
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=kernel-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-error.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,oBAAoB,GACpB,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,sBAAsB,GACtB,gBAAgB,GAChB,SAAS,GACT,mBAAmB,CAAC;AAExB,qBAAa,WAAY,SAAQ,QAAQ;IACvC,
|
|
1
|
+
{"version":3,"file":"kernel-error.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,oBAAoB,GACpB,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,sBAAsB,GACtB,gBAAgB,GAChB,SAAS,GACT,mBAAmB,CAAC;AAExB,qBAAa,WAAY,SAAQ,QAAQ;IACvC,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,SAAS,SAAS;IAClC,SAAgB,UAAU,EAAE,eAAe,CAAC;gBAEhC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAK1E"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { VntError } from "@vinhnt-sdk/schema";
|
|
2
2
|
export class KernelError extends VntError {
|
|
3
|
-
code;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
code = "KERNEL_ERROR";
|
|
4
|
+
retryable = false;
|
|
5
|
+
kernelCode;
|
|
6
|
+
constructor(kernelCode, message, cause) {
|
|
7
|
+
super(message, { cause });
|
|
8
|
+
this.kernelCode = kernelCode;
|
|
9
|
+
this.name = `KernelError.${kernelCode}`;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=kernel-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-error.js","sourceRoot":"","sources":["../../src/kernel/kernel-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAc9C,MAAM,OAAO,WAAY,SAAQ,QAAQ;
|
|
1
|
+
{"version":3,"file":"kernel-error.js","sourceRoot":"","sources":["../../src/kernel/kernel-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAc9C,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvB,IAAI,GAAG,cAAc,CAAC;IACtB,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,CAAkB;IAE5C,YAAY,UAA2B,EAAE,OAAe,EAAE,KAAe;QACvE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,eAAe,UAAU,EAAE,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RunId } from "@vinhnt-sdk/schema";
|
|
1
|
+
import type { RunId, AgentEvent } from "@vinhnt-sdk/schema";
|
|
2
2
|
import type { ModelProvider, ModelRegistry } from "../model.js";
|
|
3
3
|
import type { SessionRuntimeState } from "../session/session-state.js";
|
|
4
4
|
import type { RunEventStore, SessionStore } from "../session/store.js";
|
|
@@ -120,6 +120,12 @@ export interface AgentKernelConfig {
|
|
|
120
120
|
readonly circuitBreaker?: CircuitBreaker;
|
|
121
121
|
/** Circuit breaker configuration (used if no breaker provided). */
|
|
122
122
|
readonly circuitBreakerOptions?: CircuitBreakerOptions;
|
|
123
|
+
/** Maximum number of retries for transient model failures. Default: 3 */
|
|
124
|
+
readonly maxRetries?: number;
|
|
125
|
+
/** Base delay for exponential backoff in ms. Default: 1000 */
|
|
126
|
+
readonly retryBackoffMs?: number;
|
|
127
|
+
/** Maximum delay for retry backoff in ms. Default: 30000 */
|
|
128
|
+
readonly maxRetryBackoffMs?: number;
|
|
123
129
|
/** Doom loop detection threshold (consecutive identical outputs). Default: 3. */
|
|
124
130
|
readonly doomLoopThreshold?: number;
|
|
125
131
|
/** Workspace root directory for file operations. */
|
|
@@ -140,6 +146,8 @@ export interface AgentKernelConfig {
|
|
|
140
146
|
readonly hooks?: HookConfig;
|
|
141
147
|
/** Enterprise managed configuration. */
|
|
142
148
|
readonly managedConfig?: Record<string, unknown>;
|
|
149
|
+
/** Logger for kernel events. */
|
|
150
|
+
readonly logger?: import("../logger.js").Logger;
|
|
143
151
|
}
|
|
144
152
|
/** Handle for a running agent run — provides abort control and completion tracking. */
|
|
145
153
|
export interface RunHandle {
|
|
@@ -150,6 +158,73 @@ export interface RunHandle {
|
|
|
150
158
|
/** Abort the running agent. */
|
|
151
159
|
abort(): void;
|
|
152
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Enhanced run handle with lifecycle management.
|
|
163
|
+
*
|
|
164
|
+
* Provides methods to control and monitor an agent run.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* const handle = kernel.run("Write a hello world program");
|
|
169
|
+
*
|
|
170
|
+
* // Wait for completion
|
|
171
|
+
* await handle.completed;
|
|
172
|
+
*
|
|
173
|
+
* // Or cancel
|
|
174
|
+
* handle.cancel();
|
|
175
|
+
*
|
|
176
|
+
* // Listen to events
|
|
177
|
+
* for await (const event of handle.events()) {
|
|
178
|
+
* console.log(event.type);
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export interface AgentRunHandle {
|
|
183
|
+
/** Unique identifier for this run. */
|
|
184
|
+
readonly runId: RunId;
|
|
185
|
+
/** Promise that resolves when the run completes (or rejects on failure). */
|
|
186
|
+
readonly completed: Promise<AgentRunResult>;
|
|
187
|
+
/** Cancel the running agent. */
|
|
188
|
+
cancel(): void;
|
|
189
|
+
/** Check if the run is cancelled. */
|
|
190
|
+
readonly isCancelled: boolean;
|
|
191
|
+
/** Check if the run is completed. */
|
|
192
|
+
readonly isCompleted: boolean;
|
|
193
|
+
/** Check if the run is running. */
|
|
194
|
+
readonly isRunning: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Stream events from this run.
|
|
197
|
+
* @yields Agent events as they occur
|
|
198
|
+
*/
|
|
199
|
+
events(): AsyncIterable<AgentEvent>;
|
|
200
|
+
/**
|
|
201
|
+
* Subscribe to events from this run.
|
|
202
|
+
* @param handler - Event handler
|
|
203
|
+
* @returns Unsubscribe function
|
|
204
|
+
*/
|
|
205
|
+
onEvent(handler: (event: AgentEvent) => void): () => void;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Result of a completed agent run.
|
|
209
|
+
*/
|
|
210
|
+
export interface AgentRunResult {
|
|
211
|
+
/** Run identifier. */
|
|
212
|
+
readonly runId: RunId;
|
|
213
|
+
/** Final status. */
|
|
214
|
+
readonly status: "succeeded" | "failed" | "cancelled";
|
|
215
|
+
/** Output text if successful. */
|
|
216
|
+
readonly output?: string;
|
|
217
|
+
/** Error message if failed. */
|
|
218
|
+
readonly error?: string;
|
|
219
|
+
/** Total number of steps executed. */
|
|
220
|
+
readonly totalSteps: number;
|
|
221
|
+
/** Total duration in milliseconds. */
|
|
222
|
+
readonly durationMs?: number;
|
|
223
|
+
/** Input tokens used. */
|
|
224
|
+
readonly inputTokens?: number;
|
|
225
|
+
/** Output tokens used. */
|
|
226
|
+
readonly outputTokens?: number;
|
|
227
|
+
}
|
|
153
228
|
/**
|
|
154
229
|
* Normalize a legacy flat config object into the new nested structure.
|
|
155
230
|
* Supports backward compatibility for configs using flat permission/sandbox/modelRouting properties.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-types.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel-types.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-types.js","sourceRoot":"","sources":["../../src/kernel/kernel-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kernel-types.js","sourceRoot":"","sources":["../../src/kernel/kernel-types.ts"],"names":[],"mappings":"AA6OA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,MAAM,UAAU,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,UAAU,CAAC,OAAO,GAAG;YACnB,IAAI,EAAE,UAAU,CAAC,WAAW;YAC5B,KAAK,EAAE,UAAU,CAAC,YAAY;YAC9B,SAAS,EAAE,UAAU,CAAC,gBAAgB;SACvC,CAAC;QACF,OAAO,UAAU,CAAC,WAAW,CAAC;QAC9B,OAAO,UAAU,CAAC,YAAY,CAAC;QAC/B,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,UAAU,CAAC,WAAW,GAAG;YACvB,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;YACnD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;SAC5D,CAAC;QACF,OAAO,UAAU,CAAC,aAAa,CAAC;QAChC,OAAO,UAAU,CAAC,mBAAmB,CAAC;QACtC,OAAO,UAAU,CAAC,uBAAuB,CAAC;QAC1C,OAAO,UAAU,CAAC,qBAAqB,CAAC;QACxC,OAAO,UAAU,CAAC,sBAAsB,CAAC;QACzC,OAAO,UAAU,CAAC,uBAAuB,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC7B,UAAU,CAAC,YAAY,GAAG;YACxB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,aAAa,EAAE,UAAU,CAAC,aAAa;SACxC,CAAC;QACF,OAAO,UAAU,CAAC,cAAc,CAAC;QACjC,OAAO,UAAU,CAAC,YAAY,CAAC;QAC/B,OAAO,UAAU,CAAC,gBAAgB,CAAC;QACnC,OAAO,UAAU,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,UAAU,CAAC,KAAK,GAAG;YACjB,KAAK,EAAE,UAAU,CAAC,WAAW;SAC9B,CAAC;QACF,OAAO,UAAU,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,OAAO,UAA0C,CAAC;AACpD,CAAC"}
|
package/dist/kernel/kernel.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RequestContext, RunId, AgentId, AgentConfig, AgentBehaviourMode } from "@vinhnt-sdk/schema";
|
|
1
|
+
import type { RequestContext, RunId, AgentId, AgentConfig, AgentBehaviourMode, KnownRunEvent } from "@vinhnt-sdk/schema";
|
|
2
2
|
import type { MessageContentPart } from "../model.js";
|
|
3
3
|
import type { RunEventStore } from "../session/store.js";
|
|
4
4
|
import type { AgentRegistry } from "../agent/agent-registry.js";
|
|
@@ -13,7 +13,7 @@ import { CircuitBreaker } from "./circuit-breaker.js";
|
|
|
13
13
|
import { KernelError } from "./kernel-error.js";
|
|
14
14
|
import type { KernelErrorCode } from "./kernel-error.js";
|
|
15
15
|
import { type LifecycleResource } from "./lifecycle-manager.js";
|
|
16
|
-
import type { AgentKernelConfig, RunHandle } from "./kernel-types.js";
|
|
16
|
+
import type { AgentKernelConfig, RunHandle, AgentRunHandle } from "./kernel-types.js";
|
|
17
17
|
export type { AgentKernelConfig, RunState, KernelErrorCode };
|
|
18
18
|
export { CircuitBreaker, CircuitBreakerOpenError, type CircuitState, type CircuitBreakerOptions } from "./circuit-breaker.js";
|
|
19
19
|
export { KernelError } from "./kernel-error.js";
|
|
@@ -57,7 +57,7 @@ export declare class AgentKernel {
|
|
|
57
57
|
private readonly doomLoopThreshold;
|
|
58
58
|
private compactionThreshold;
|
|
59
59
|
private readonly termination;
|
|
60
|
-
private
|
|
60
|
+
private circuitBreaker;
|
|
61
61
|
private readonly sessionDeps;
|
|
62
62
|
private readonly subAgentDeps;
|
|
63
63
|
private readonly runSessionStates;
|
|
@@ -103,6 +103,36 @@ export declare class AgentKernel {
|
|
|
103
103
|
* asynchronously — the promise resolves when the run finishes (or fails).
|
|
104
104
|
*/
|
|
105
105
|
run(prompt: string, ctx: RequestContext, sessionId?: string, userContentParts?: readonly MessageContentPart[], agentOverride?: AgentConfig): RunHandle;
|
|
106
|
+
/**
|
|
107
|
+
* Start a new agent run with full lifecycle management.
|
|
108
|
+
* Returns an AgentRunHandle with cancel, status, and event streaming.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const handle = kernel.createRunHandle("Write a hello world program", ctx);
|
|
113
|
+
*
|
|
114
|
+
* // Wait for completion
|
|
115
|
+
* const result = await handle.completed;
|
|
116
|
+
* console.log(result.status); // "succeeded"
|
|
117
|
+
*
|
|
118
|
+
* // Or cancel
|
|
119
|
+
* handle.cancel();
|
|
120
|
+
*
|
|
121
|
+
* // Stream events
|
|
122
|
+
* for await (const event of handle.events()) {
|
|
123
|
+
* console.log(event.type);
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
createRunHandle(prompt: string, ctx: RequestContext, sessionId?: string, userContentParts?: readonly MessageContentPart[], agentOverride?: AgentConfig): AgentRunHandle;
|
|
128
|
+
/**
|
|
129
|
+
* Start a new agent run and stream events as an async iterable.
|
|
130
|
+
* Returns the run ID and an async iterable of run events.
|
|
131
|
+
*/
|
|
132
|
+
streamRun(prompt: string, ctx: RequestContext, sessionId?: string, userContentParts?: readonly MessageContentPart[], agentOverride?: AgentConfig): {
|
|
133
|
+
runId: RunId;
|
|
134
|
+
events: AsyncIterable<KnownRunEvent>;
|
|
135
|
+
};
|
|
106
136
|
private getRunSession;
|
|
107
137
|
/** Run multiple sub-agents concurrently. Returns combined output. */
|
|
108
138
|
runAgentsParallel(tasks: Array<{
|
|
@@ -137,7 +167,7 @@ export declare class AgentKernel {
|
|
|
137
167
|
* Supports both nested format (`permissions: { ... }`) and legacy flat format
|
|
138
168
|
* (`globalPermissionRules: ...`, `permissionRiskDefaults: ...`).
|
|
139
169
|
*/
|
|
140
|
-
reconfigure(partial: Partial<Pick<AgentKernelConfig, "model" | "maxTokens" | "maxSteps" | "stepTimeout" | "thinkingBudget" | "thinkingPrompt" | "compactionThreshold" | "permissions">> & Record<string, unknown>): void;
|
|
170
|
+
reconfigure(partial: Partial<Pick<AgentKernelConfig, "model" | "maxTokens" | "maxSteps" | "stepTimeout" | "thinkingBudget" | "thinkingPrompt" | "compactionThreshold" | "permissions" | "maxRetries" | "retryBackoffMs" | "maxRetryBackoffMs">> & Record<string, unknown>): void;
|
|
141
171
|
/** Get the permission gate for evaluating permission rules. */
|
|
142
172
|
getPermissionGate(): PermissionGate;
|
|
143
173
|
/** Current state of a run (pending/running/completed/failed/cancelled). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/kernel/kernel.ts"],"names":[],"mappings":"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"}
|