@agtlantis/core 0.5.0 → 0.6.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 +18 -5
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/types.d.ts +69 -0
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +116 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/errors/utils.d.ts +17 -0
- package/dist/errors/utils.d.ts.map +1 -0
- package/dist/errors/utils.js +16 -0
- package/dist/errors/utils.js.map +1 -0
- package/dist/execution/constants.d.ts +7 -0
- package/dist/execution/constants.d.ts.map +1 -0
- package/dist/execution/constants.js +7 -0
- package/dist/execution/constants.js.map +1 -0
- package/dist/execution/index.d.ts +8 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +7 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/mapping.d.ts +17 -0
- package/dist/execution/mapping.d.ts.map +1 -0
- package/dist/execution/mapping.js +197 -0
- package/dist/execution/mapping.js.map +1 -0
- package/dist/execution/shared.d.ts +86 -0
- package/dist/execution/shared.d.ts.map +1 -0
- package/dist/execution/shared.js +100 -0
- package/dist/execution/shared.js.map +1 -0
- package/dist/execution/simple-host.d.ts +56 -0
- package/dist/execution/simple-host.d.ts.map +1 -0
- package/dist/execution/simple-host.js +126 -0
- package/dist/execution/simple-host.js.map +1 -0
- package/dist/execution/streaming-host.d.ts +79 -0
- package/dist/execution/streaming-host.d.ts.map +1 -0
- package/dist/execution/streaming-host.js +276 -0
- package/dist/execution/streaming-host.js.map +1 -0
- package/dist/execution/testing/fixtures.d.ts +67 -0
- package/dist/execution/testing/fixtures.d.ts.map +1 -0
- package/dist/execution/testing/fixtures.js +145 -0
- package/dist/execution/testing/fixtures.js.map +1 -0
- package/dist/execution/testing/helpers.d.ts +218 -0
- package/dist/execution/testing/helpers.d.ts.map +1 -0
- package/dist/execution/testing/helpers.js +327 -0
- package/dist/execution/testing/helpers.js.map +1 -0
- package/dist/execution/testing/host-configs.d.ts +56 -0
- package/dist/execution/testing/host-configs.d.ts.map +1 -0
- package/dist/execution/testing/host-configs.js +154 -0
- package/dist/execution/testing/host-configs.js.map +1 -0
- package/dist/execution/testing/vitest-assertions.d.ts +102 -0
- package/dist/execution/testing/vitest-assertions.d.ts.map +1 -0
- package/dist/execution/testing/vitest-assertions.js +142 -0
- package/dist/execution/testing/vitest-assertions.js.map +1 -0
- package/dist/execution/types.d.ts +432 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +2 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/execution/utils.d.ts +68 -0
- package/dist/execution/utils.d.ts.map +1 -0
- package/dist/execution/utils.js +93 -0
- package/dist/execution/utils.js.map +1 -0
- package/dist/index.d.ts +10 -1506
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -2979
- package/dist/index.js.map +1 -1
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +2 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +161 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +31 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/types.d.ts +46 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +2 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/patterns/index.d.ts +2 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +2 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/progressive/index.d.ts +2 -0
- package/dist/patterns/progressive/index.d.ts.map +1 -0
- package/dist/patterns/progressive/index.js +2 -0
- package/dist/patterns/progressive/index.js.map +1 -0
- package/dist/patterns/progressive/progressive-pattern.d.ts +174 -0
- package/dist/patterns/progressive/progressive-pattern.d.ts.map +1 -0
- package/dist/patterns/progressive/progressive-pattern.js +260 -0
- package/dist/patterns/progressive/progressive-pattern.js.map +1 -0
- package/dist/pricing/calculator.d.ts +71 -0
- package/dist/pricing/calculator.d.ts.map +1 -0
- package/dist/pricing/calculator.js +127 -0
- package/dist/pricing/calculator.js.map +1 -0
- package/dist/pricing/config.d.ts +61 -0
- package/dist/pricing/config.d.ts.map +1 -0
- package/dist/pricing/config.js +87 -0
- package/dist/pricing/config.js.map +1 -0
- package/dist/pricing/defaults.d.ts +29 -0
- package/dist/pricing/defaults.d.ts.map +1 -0
- package/dist/pricing/defaults.js +139 -0
- package/dist/pricing/defaults.js.map +1 -0
- package/dist/pricing/index.d.ts +40 -0
- package/dist/pricing/index.d.ts.map +1 -0
- package/dist/pricing/index.js +43 -0
- package/dist/pricing/index.js.map +1 -0
- package/dist/pricing/types.d.ts +96 -0
- package/dist/pricing/types.d.ts.map +1 -0
- package/dist/pricing/types.js +7 -0
- package/dist/pricing/types.js.map +1 -0
- package/dist/pricing/validator.d.ts +55 -0
- package/dist/pricing/validator.d.ts.map +1 -0
- package/dist/pricing/validator.js +84 -0
- package/dist/pricing/validator.js.map +1 -0
- package/dist/prompt/errors.d.ts +112 -0
- package/dist/prompt/errors.d.ts.map +1 -0
- package/dist/prompt/errors.js +174 -0
- package/dist/prompt/errors.js.map +1 -0
- package/dist/prompt/file-prompt-repository.d.ts +80 -0
- package/dist/prompt/file-prompt-repository.d.ts.map +1 -0
- package/dist/prompt/file-prompt-repository.js +287 -0
- package/dist/prompt/file-prompt-repository.js.map +1 -0
- package/dist/prompt/index.d.ts +34 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +37 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/prompt-template.d.ts +64 -0
- package/dist/prompt/prompt-template.d.ts.map +1 -0
- package/dist/prompt/prompt-template.js +90 -0
- package/dist/prompt/prompt-template.js.map +1 -0
- package/dist/prompt/template.d.ts +23 -0
- package/dist/prompt/template.d.ts.map +1 -0
- package/dist/prompt/template.js +70 -0
- package/dist/prompt/template.js.map +1 -0
- package/dist/prompt/types.d.ts +148 -0
- package/dist/prompt/types.d.ts.map +1 -0
- package/dist/prompt/types.js +7 -0
- package/dist/prompt/types.js.map +1 -0
- package/dist/provider/base-file-manager.d.ts +14 -0
- package/dist/provider/base-file-manager.d.ts.map +1 -0
- package/dist/provider/base-file-manager.js +91 -0
- package/dist/provider/base-file-manager.js.map +1 -0
- package/dist/provider/base-provider.d.ts +41 -0
- package/dist/provider/base-provider.d.ts.map +1 -0
- package/dist/provider/base-provider.js +21 -0
- package/dist/provider/base-provider.js.map +1 -0
- package/dist/provider/file-cache.d.ts +14 -0
- package/dist/provider/file-cache.d.ts.map +1 -0
- package/dist/provider/file-cache.js +29 -0
- package/dist/provider/file-cache.js.map +1 -0
- package/dist/provider/file-source.d.ts +32 -0
- package/dist/provider/file-source.d.ts.map +1 -0
- package/dist/provider/file-source.js +180 -0
- package/dist/provider/file-source.js.map +1 -0
- package/dist/provider/file-utils.d.ts +5 -0
- package/dist/provider/file-utils.d.ts.map +1 -0
- package/dist/provider/file-utils.js +15 -0
- package/dist/provider/file-utils.js.map +1 -0
- package/dist/provider/google/factory.d.ts +107 -0
- package/dist/provider/google/factory.d.ts.map +1 -0
- package/dist/provider/google/factory.js +143 -0
- package/dist/provider/google/factory.js.map +1 -0
- package/dist/provider/google/file-manager.d.ts +10 -0
- package/dist/provider/google/file-manager.d.ts.map +1 -0
- package/dist/provider/google/file-manager.js +93 -0
- package/dist/provider/google/file-manager.js.map +1 -0
- package/dist/provider/google/index.d.ts +8 -0
- package/dist/provider/google/index.d.ts.map +1 -0
- package/dist/provider/google/index.js +10 -0
- package/dist/provider/google/index.js.map +1 -0
- package/dist/provider/hash.d.ts +3 -0
- package/dist/provider/hash.d.ts.map +1 -0
- package/dist/provider/hash.js +34 -0
- package/dist/provider/hash.js.map +1 -0
- package/dist/provider/index.d.ts +10 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +12 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/noop-file-manager.d.ts +9 -0
- package/dist/provider/noop-file-manager.d.ts.map +1 -0
- package/dist/provider/noop-file-manager.js +28 -0
- package/dist/provider/noop-file-manager.js.map +1 -0
- package/dist/provider/openai/factory.d.ts +67 -0
- package/dist/provider/openai/factory.d.ts.map +1 -0
- package/dist/provider/openai/factory.js +100 -0
- package/dist/provider/openai/factory.js.map +1 -0
- package/dist/provider/openai/file-manager.d.ts +17 -0
- package/dist/provider/openai/file-manager.d.ts.map +1 -0
- package/dist/provider/openai/file-manager.js +108 -0
- package/dist/provider/openai/file-manager.js.map +1 -0
- package/dist/provider/openai/index.d.ts +8 -0
- package/dist/provider/openai/index.d.ts.map +1 -0
- package/dist/provider/openai/index.js +8 -0
- package/dist/provider/openai/index.js.map +1 -0
- package/dist/provider/types.d.ts +105 -0
- package/dist/provider/types.d.ts.map +1 -0
- package/dist/provider/types.js +19 -0
- package/dist/provider/types.js.map +1 -0
- package/dist/session/index.d.ts +7 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +5 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/simple-session.d.ts +98 -0
- package/dist/session/simple-session.d.ts.map +1 -0
- package/dist/session/simple-session.js +299 -0
- package/dist/session/simple-session.js.map +1 -0
- package/dist/session/streaming-session.d.ts +90 -0
- package/dist/session/streaming-session.d.ts.map +1 -0
- package/dist/session/streaming-session.js +151 -0
- package/dist/session/streaming-session.js.map +1 -0
- package/dist/session/test-utils.d.ts +19 -0
- package/dist/session/test-utils.d.ts.map +1 -0
- package/dist/session/test-utils.js +65 -0
- package/dist/session/test-utils.js.map +1 -0
- package/dist/session/types.d.ts +219 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +181 -0
- package/dist/session/types.js.map +1 -0
- package/dist/session/usage-extractors.d.ts +7 -0
- package/dist/session/usage-extractors.d.ts.map +1 -0
- package/dist/session/usage-extractors.js +71 -0
- package/dist/session/usage-extractors.js.map +1 -0
- package/dist/testing/fixtures.d.ts +34 -0
- package/dist/testing/fixtures.d.ts.map +1 -0
- package/dist/testing/fixtures.js +65 -0
- package/dist/testing/fixtures.js.map +1 -0
- package/dist/testing/helpers.d.ts +20 -0
- package/dist/testing/helpers.d.ts.map +1 -0
- package/dist/testing/helpers.js +32 -0
- package/dist/testing/helpers.js.map +1 -0
- package/dist/testing/index.d.ts +7 -519
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +21 -2123
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mock-provider.d.ts +79 -0
- package/dist/testing/mock-provider.d.ts.map +1 -0
- package/dist/testing/mock-provider.js +152 -0
- package/dist/testing/mock-provider.js.map +1 -0
- package/dist/testing/mock.d.ts +29 -0
- package/dist/testing/mock.d.ts.map +1 -0
- package/dist/testing/mock.js +154 -0
- package/dist/testing/mock.js.map +1 -0
- package/dist/testing/test-execution.d.ts +14 -0
- package/dist/testing/test-execution.d.ts.map +1 -0
- package/dist/testing/test-execution.js +108 -0
- package/dist/testing/test-execution.js.map +1 -0
- package/dist/utils/deep-merge.d.ts +6 -0
- package/dist/utils/deep-merge.d.ts.map +1 -0
- package/dist/utils/deep-merge.js +24 -0
- package/dist/utils/deep-merge.js.map +1 -0
- package/dist/validation/errors.d.ts +28 -0
- package/dist/validation/errors.d.ts.map +1 -0
- package/dist/validation/errors.js +38 -0
- package/dist/validation/errors.js.map +1 -0
- package/dist/validation/index.d.ts +5 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +4 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +49 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +2 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validation-history.d.ts +12 -0
- package/dist/validation/validation-history.d.ts.map +1 -0
- package/dist/validation/validation-history.js +29 -0
- package/dist/validation/validation-history.js.map +1 -0
- package/dist/validation/with-validation.d.ts +38 -0
- package/dist/validation/with-validation.d.ts.map +1 -0
- package/dist/validation/with-validation.js +58 -0
- package/dist/validation/with-validation.js.map +1 -0
- package/package.json +71 -75
- package/dist/base-provider-2TTw5HAa.d.cts +0 -1254
- package/dist/base-provider-2TTw5HAa.d.ts +0 -1254
- package/dist/index.cjs +0 -3085
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -1506
- package/dist/testing/index.cjs +0 -2167
- package/dist/testing/index.cjs.map +0 -1
- package/dist/testing/index.d.cts +0 -520
package/README.md
CHANGED
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
```bash
|
|
21
|
+
pnpm add @agtlantis/core
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Peer dependencies:
|
|
21
25
|
|
|
22
26
|
```bash
|
|
23
|
-
|
|
24
|
-
cd agtlantis
|
|
25
|
-
pnpm install
|
|
26
|
-
pnpm build
|
|
27
|
+
pnpm add ai @ai-sdk/openai @ai-sdk/google zod
|
|
27
28
|
```
|
|
28
29
|
|
|
29
30
|
## Quick Start
|
|
@@ -162,6 +163,18 @@ const execution = provider.simpleExecution(async (session) => {
|
|
|
162
163
|
});
|
|
163
164
|
```
|
|
164
165
|
|
|
166
|
+
The same API works with OpenAI — just swap the provider:
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
import { createOpenAIProvider, InMemoryFileCache } from '@agtlantis/core';
|
|
170
|
+
|
|
171
|
+
const provider = createOpenAIProvider({
|
|
172
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
173
|
+
})
|
|
174
|
+
.withDefaultModel('gpt-4o')
|
|
175
|
+
.withFileCache(new InMemoryFileCache({ defaultTTL: 30 * 60 * 1000 }));
|
|
176
|
+
```
|
|
177
|
+
|
|
165
178
|
### Validation Module
|
|
166
179
|
|
|
167
180
|
Validate and retry LLM outputs with custom logic:
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ExecutionErrorCode, ConfigurationErrorCode, FileErrorCode, type AgtlantisErrorCode, } from './types.js';
|
|
2
|
+
export type { AgtlantisErrorOptions, ExecutionErrorOptions, ConfigurationErrorOptions, FileErrorOptions, } from './types.js';
|
|
3
|
+
export { AgtlantisError, ExecutionError, ConfigurationError, FileError, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,GAEd,MAAM,YAAY,CAAC;AASpB,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export declare enum ExecutionErrorCode {
|
|
2
|
+
EXECUTION_ERROR = "EXECUTION_ERROR",
|
|
3
|
+
STREAM_ERROR = "STREAM_ERROR",
|
|
4
|
+
RESULT_EXTRACTION_ERROR = "RESULT_EXTRACTION_ERROR",
|
|
5
|
+
CANCELLED = "CANCELLED",
|
|
6
|
+
VALIDATION_ERROR = "VALIDATION_ERROR"
|
|
7
|
+
}
|
|
8
|
+
export declare enum ConfigurationErrorCode {
|
|
9
|
+
CONFIG_ERROR = "CONFIG_ERROR",
|
|
10
|
+
MISSING_API_KEY = "MISSING_API_KEY",
|
|
11
|
+
INVALID_CONFIG = "INVALID_CONFIG",
|
|
12
|
+
MISSING_REQUIRED = "MISSING_REQUIRED"
|
|
13
|
+
}
|
|
14
|
+
export declare enum FileErrorCode {
|
|
15
|
+
FILE_ERROR = "FILE_ERROR",
|
|
16
|
+
UPLOAD_ERROR = "UPLOAD_ERROR",
|
|
17
|
+
DELETE_ERROR = "DELETE_ERROR",
|
|
18
|
+
NOT_FOUND = "NOT_FOUND",
|
|
19
|
+
TOO_LARGE = "TOO_LARGE",
|
|
20
|
+
UNSUPPORTED_TYPE = "UNSUPPORTED_TYPE"
|
|
21
|
+
}
|
|
22
|
+
export type AgtlantisErrorCode = ExecutionErrorCode | ConfigurationErrorCode | FileErrorCode;
|
|
23
|
+
export interface AgtlantisErrorOptions<TCode extends AgtlantisErrorCode = AgtlantisErrorCode> {
|
|
24
|
+
code: TCode;
|
|
25
|
+
cause?: Error;
|
|
26
|
+
context?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface ErrorOptions<TCode extends AgtlantisErrorCode> {
|
|
29
|
+
code?: TCode;
|
|
30
|
+
cause?: Error;
|
|
31
|
+
context?: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
export type ExecutionErrorOptions = ErrorOptions<ExecutionErrorCode>;
|
|
34
|
+
export type ConfigurationErrorOptions = ErrorOptions<ConfigurationErrorCode>;
|
|
35
|
+
export type FileErrorOptions = ErrorOptions<FileErrorCode>;
|
|
36
|
+
/**
|
|
37
|
+
* Base error class for all Agtlantis errors.
|
|
38
|
+
* Provides structured error information including error code and optional context.
|
|
39
|
+
*/
|
|
40
|
+
export declare class AgtlantisError<TCode extends AgtlantisErrorCode = AgtlantisErrorCode> extends Error {
|
|
41
|
+
readonly code: TCode;
|
|
42
|
+
readonly cause?: Error;
|
|
43
|
+
readonly context?: Record<string, unknown>;
|
|
44
|
+
constructor(message: string, options: AgtlantisErrorOptions<TCode>);
|
|
45
|
+
get isRetryable(): boolean;
|
|
46
|
+
toJSON(): Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error thrown during agent execution (streaming failures, result extraction, cancellation).
|
|
50
|
+
*/
|
|
51
|
+
export declare class ExecutionError extends AgtlantisError<ExecutionErrorCode> {
|
|
52
|
+
constructor(message: string, options?: ExecutionErrorOptions);
|
|
53
|
+
static from(error: unknown, code?: ExecutionErrorCode, context?: Record<string, unknown>): ExecutionError;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Error thrown when configuration is invalid or missing (API keys, model names).
|
|
57
|
+
*/
|
|
58
|
+
export declare class ConfigurationError extends AgtlantisError<ConfigurationErrorCode> {
|
|
59
|
+
constructor(message: string, options?: ConfigurationErrorOptions);
|
|
60
|
+
static from(error: unknown, code?: ConfigurationErrorCode, context?: Record<string, unknown>): ConfigurationError;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Error thrown during file operations (upload, delete, not found, size limits).
|
|
64
|
+
*/
|
|
65
|
+
export declare class FileError extends AgtlantisError<FileErrorCode> {
|
|
66
|
+
constructor(message: string, options?: FileErrorOptions);
|
|
67
|
+
static from(error: unknown, code?: FileErrorCode, context?: Record<string, unknown>): FileError;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/errors/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { wrapAsError } from './utils.js';
|
|
2
|
+
export var ExecutionErrorCode;
|
|
3
|
+
(function (ExecutionErrorCode) {
|
|
4
|
+
ExecutionErrorCode["EXECUTION_ERROR"] = "EXECUTION_ERROR";
|
|
5
|
+
ExecutionErrorCode["STREAM_ERROR"] = "STREAM_ERROR";
|
|
6
|
+
ExecutionErrorCode["RESULT_EXTRACTION_ERROR"] = "RESULT_EXTRACTION_ERROR";
|
|
7
|
+
ExecutionErrorCode["CANCELLED"] = "CANCELLED";
|
|
8
|
+
ExecutionErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
9
|
+
})(ExecutionErrorCode || (ExecutionErrorCode = {}));
|
|
10
|
+
export var ConfigurationErrorCode;
|
|
11
|
+
(function (ConfigurationErrorCode) {
|
|
12
|
+
ConfigurationErrorCode["CONFIG_ERROR"] = "CONFIG_ERROR";
|
|
13
|
+
ConfigurationErrorCode["MISSING_API_KEY"] = "MISSING_API_KEY";
|
|
14
|
+
ConfigurationErrorCode["INVALID_CONFIG"] = "INVALID_CONFIG";
|
|
15
|
+
ConfigurationErrorCode["MISSING_REQUIRED"] = "MISSING_REQUIRED";
|
|
16
|
+
})(ConfigurationErrorCode || (ConfigurationErrorCode = {}));
|
|
17
|
+
export var FileErrorCode;
|
|
18
|
+
(function (FileErrorCode) {
|
|
19
|
+
FileErrorCode["FILE_ERROR"] = "FILE_ERROR";
|
|
20
|
+
FileErrorCode["UPLOAD_ERROR"] = "UPLOAD_ERROR";
|
|
21
|
+
FileErrorCode["DELETE_ERROR"] = "DELETE_ERROR";
|
|
22
|
+
FileErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
23
|
+
FileErrorCode["TOO_LARGE"] = "TOO_LARGE";
|
|
24
|
+
FileErrorCode["UNSUPPORTED_TYPE"] = "UNSUPPORTED_TYPE";
|
|
25
|
+
})(FileErrorCode || (FileErrorCode = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Base error class for all Agtlantis errors.
|
|
28
|
+
* Provides structured error information including error code and optional context.
|
|
29
|
+
*/
|
|
30
|
+
export class AgtlantisError extends Error {
|
|
31
|
+
code;
|
|
32
|
+
cause;
|
|
33
|
+
context;
|
|
34
|
+
constructor(message, options) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.name = 'AgtlantisError';
|
|
37
|
+
this.code = options.code;
|
|
38
|
+
this.cause = options.cause;
|
|
39
|
+
this.context = options.context;
|
|
40
|
+
// V8-specific stack trace capture
|
|
41
|
+
const ErrorWithCapture = Error;
|
|
42
|
+
ErrorWithCapture.captureStackTrace?.(this, this.constructor);
|
|
43
|
+
}
|
|
44
|
+
get isRetryable() {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
toJSON() {
|
|
48
|
+
return {
|
|
49
|
+
name: this.name,
|
|
50
|
+
message: this.message,
|
|
51
|
+
code: this.code,
|
|
52
|
+
isRetryable: this.isRetryable,
|
|
53
|
+
context: this.context,
|
|
54
|
+
cause: this.cause?.message,
|
|
55
|
+
stack: this.stack,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Error thrown during agent execution (streaming failures, result extraction, cancellation).
|
|
61
|
+
*/
|
|
62
|
+
export class ExecutionError extends AgtlantisError {
|
|
63
|
+
constructor(message, options = {}) {
|
|
64
|
+
super(message, {
|
|
65
|
+
code: options.code ?? ExecutionErrorCode.EXECUTION_ERROR,
|
|
66
|
+
cause: options.cause,
|
|
67
|
+
context: options.context,
|
|
68
|
+
});
|
|
69
|
+
this.name = 'ExecutionError';
|
|
70
|
+
}
|
|
71
|
+
static from(error, code = ExecutionErrorCode.EXECUTION_ERROR, context) {
|
|
72
|
+
if (error instanceof ExecutionError) {
|
|
73
|
+
return error;
|
|
74
|
+
}
|
|
75
|
+
return wrapAsError(error, ExecutionError, { code, context });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Error thrown when configuration is invalid or missing (API keys, model names).
|
|
80
|
+
*/
|
|
81
|
+
export class ConfigurationError extends AgtlantisError {
|
|
82
|
+
constructor(message, options = {}) {
|
|
83
|
+
super(message, {
|
|
84
|
+
code: options.code ?? ConfigurationErrorCode.CONFIG_ERROR,
|
|
85
|
+
cause: options.cause,
|
|
86
|
+
context: options.context,
|
|
87
|
+
});
|
|
88
|
+
this.name = 'ConfigurationError';
|
|
89
|
+
}
|
|
90
|
+
static from(error, code = ConfigurationErrorCode.CONFIG_ERROR, context) {
|
|
91
|
+
if (error instanceof ConfigurationError) {
|
|
92
|
+
return error;
|
|
93
|
+
}
|
|
94
|
+
return wrapAsError(error, ConfigurationError, { code, context });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Error thrown during file operations (upload, delete, not found, size limits).
|
|
99
|
+
*/
|
|
100
|
+
export class FileError extends AgtlantisError {
|
|
101
|
+
constructor(message, options = {}) {
|
|
102
|
+
super(message, {
|
|
103
|
+
code: options.code ?? FileErrorCode.FILE_ERROR,
|
|
104
|
+
cause: options.cause,
|
|
105
|
+
context: options.context,
|
|
106
|
+
});
|
|
107
|
+
this.name = 'FileError';
|
|
108
|
+
}
|
|
109
|
+
static from(error, code = FileErrorCode.FILE_ERROR, context) {
|
|
110
|
+
if (error instanceof FileError) {
|
|
111
|
+
return error;
|
|
112
|
+
}
|
|
113
|
+
return wrapAsError(error, FileError, { code, context });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/errors/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AgtlantisError, AgtlantisErrorCode, AgtlantisErrorOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps an unknown error as a specific AgtlantisError subclass.
|
|
4
|
+
* Internal utility - not part of public API.
|
|
5
|
+
*
|
|
6
|
+
* @param error - The unknown error to wrap
|
|
7
|
+
* @param ErrorClass - The error class constructor to use
|
|
8
|
+
* @param options - Error options including code and optional context
|
|
9
|
+
* @returns A new instance of the specified error class
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function wrapAsError<T extends AgtlantisError<TCode>, TCode extends AgtlantisErrorCode>(error: unknown, ErrorClass: new (message: string, options: AgtlantisErrorOptions<TCode>) => T, options: {
|
|
14
|
+
code: TCode;
|
|
15
|
+
context?: Record<string, unknown>;
|
|
16
|
+
}): T;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/errors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,EAC/B,KAAK,SAAS,kBAAkB,EAEhC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,EAC7E,OAAO,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1D,CAAC,CAGH"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps an unknown error as a specific AgtlantisError subclass.
|
|
3
|
+
* Internal utility - not part of public API.
|
|
4
|
+
*
|
|
5
|
+
* @param error - The unknown error to wrap
|
|
6
|
+
* @param ErrorClass - The error class constructor to use
|
|
7
|
+
* @param options - Error options including code and optional context
|
|
8
|
+
* @returns A new instance of the specified error class
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export function wrapAsError(error, ErrorClass, options) {
|
|
13
|
+
const cause = error instanceof Error ? error : new Error(String(error));
|
|
14
|
+
return new ErrorClass(cause.message, { ...options, cause });
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/errors/utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAIzB,KAAc,EACd,UAA6E,EAC7E,OAA2D;IAE3D,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const ERRORS: {
|
|
2
|
+
readonly ALREADY_CONSUMED: 'Execution already consumed';
|
|
3
|
+
readonly METADATA_NOT_AVAILABLE: 'Metadata not available yet. Consume the execution first.';
|
|
4
|
+
readonly NO_RESULT: 'No result available';
|
|
5
|
+
readonly UNKNOWN_ERROR: 'Execution failed with unknown error';
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/execution/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;aACjB,gBAAgB,EAAE,4BAA4B;aAC9C,sBAAsB,EACpB,0DAA0D;aAC5D,SAAS,EAAE,qBAAqB;aAChC,aAAa,EAAE,qCAAqC;CAC5C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const ERRORS = {
|
|
2
|
+
ALREADY_CONSUMED: 'Execution already consumed',
|
|
3
|
+
METADATA_NOT_AVAILABLE: 'Metadata not available yet. Consume the execution first.',
|
|
4
|
+
NO_RESULT: 'No result available',
|
|
5
|
+
UNKNOWN_ERROR: 'Execution failed with unknown error',
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/execution/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,gBAAgB,EAAE,4BAA4B;IAC9C,sBAAsB,EACpB,0DAA0D;IAC5D,SAAS,EAAE,qBAAqB;IAChC,aAAa,EAAE,qCAAqC;CAC5C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { Execution, ExecutionOptions, SimpleExecution, StreamingExecution, SessionStreamGeneratorFn, ExecutionStatus, ExecutionResult, SimpleResult, StreamingResult, DistributiveOmit, SessionEvent, SessionEventInput, EmittableEventInput, ReservedEventType, CompletionEvent, ErrorEvent, ExtractResult, } from './types.js';
|
|
2
|
+
export { StreamingExecutionHost } from './streaming-host.js';
|
|
3
|
+
export { SimpleExecutionHost } from './simple-host.js';
|
|
4
|
+
export { ERRORS } from './constants.js';
|
|
5
|
+
export { getDuration, combineSignals } from './utils.js';
|
|
6
|
+
export { isAbortError, normalizeError, determineResultStatus, createHookRunner, type HookRunner } from './shared.js';
|
|
7
|
+
export { mapExecution, mapExecutionResult, type ReplaceResult } from './mapping.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EAExB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EAEf,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EAEjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAErH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { StreamingExecutionHost } from './streaming-host.js';
|
|
2
|
+
export { SimpleExecutionHost } from './simple-host.js';
|
|
3
|
+
export { ERRORS } from './constants.js';
|
|
4
|
+
export { getDuration, combineSignals } from './utils.js';
|
|
5
|
+
export { isAbortError, normalizeError, determineResultStatus, createHookRunner } from './shared.js';
|
|
6
|
+
export { mapExecution, mapExecutionResult } from './mapping.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAErH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StreamingExecution, SimpleExecution, CompletionEvent, ExtractResult } from './types.js';
|
|
2
|
+
export type ReplaceResult<TEvent extends {
|
|
3
|
+
type: string;
|
|
4
|
+
}, U> = Exclude<TEvent, {
|
|
5
|
+
type: 'complete';
|
|
6
|
+
}> | CompletionEvent<U>;
|
|
7
|
+
export declare function mapExecution<TEvent extends {
|
|
8
|
+
type: string;
|
|
9
|
+
}, UEvent extends {
|
|
10
|
+
type: string;
|
|
11
|
+
}>(execution: StreamingExecution<TEvent>, fn: (event: TEvent) => UEvent | Promise<UEvent>): StreamingExecution<UEvent>;
|
|
12
|
+
export declare function mapExecution<A, B>(execution: SimpleExecution<A>, fn: (result: A) => B | Promise<B>): SimpleExecution<B>;
|
|
13
|
+
export declare function mapExecutionResult<TEvent extends {
|
|
14
|
+
type: string;
|
|
15
|
+
}, U>(execution: StreamingExecution<TEvent>, fn: (result: ExtractResult<TEvent>) => U | Promise<U>): StreamingExecution<ReplaceResult<TEvent, U>>;
|
|
16
|
+
export declare function mapExecutionResult<A, B>(execution: SimpleExecution<A>, fn: (result: A) => B | Promise<B>): SimpleExecution<B>;
|
|
17
|
+
//# sourceMappingURL=mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/execution/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,eAAe,EAIf,eAAe,EAEf,aAAa,EAChB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,IACtD,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GACrC,eAAe,CAAC,CAAC,CAAC,CAAC;AAMzB,wBAAgB,YAAY,CAAC,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACzF,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACrC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAChD,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAE9B,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC7B,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,CAAC,CAAC;AAgBtB,wBAAgB,kBAAkB,CAAC,MAAM,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EACjE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACrC,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACtD,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EACnC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAC7B,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAClC,eAAe,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { normalizeError } from './shared.js';
|
|
2
|
+
export function mapExecution(execution, fn) {
|
|
3
|
+
if ('stream' in execution) {
|
|
4
|
+
return mapStreamingExecution(execution, fn);
|
|
5
|
+
}
|
|
6
|
+
return mapSimpleExecution(execution, fn);
|
|
7
|
+
}
|
|
8
|
+
export function mapExecutionResult(execution, fn) {
|
|
9
|
+
if ('stream' in execution) {
|
|
10
|
+
return mapStreamingExecutionResult(execution, fn);
|
|
11
|
+
}
|
|
12
|
+
return mapSimpleExecution(execution, fn);
|
|
13
|
+
}
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Internal: Streaming — full event mapping
|
|
16
|
+
// ============================================================================
|
|
17
|
+
function mapStreamingExecution(execution, fn) {
|
|
18
|
+
return {
|
|
19
|
+
stream() {
|
|
20
|
+
const original = execution.stream();
|
|
21
|
+
return {
|
|
22
|
+
[Symbol.asyncIterator]() {
|
|
23
|
+
const iter = original[Symbol.asyncIterator]();
|
|
24
|
+
return {
|
|
25
|
+
async next() {
|
|
26
|
+
const { value, done } = await iter.next();
|
|
27
|
+
if (done)
|
|
28
|
+
return { value: undefined, done: true };
|
|
29
|
+
const event = value;
|
|
30
|
+
if (event.type === 'error') {
|
|
31
|
+
return { value: event, done: false };
|
|
32
|
+
}
|
|
33
|
+
const { metrics, ...pureEvent } = event;
|
|
34
|
+
try {
|
|
35
|
+
const mapped = await fn(pureEvent);
|
|
36
|
+
return {
|
|
37
|
+
value: { ...mapped, metrics },
|
|
38
|
+
done: false,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
const errorEvent = {
|
|
43
|
+
type: 'error',
|
|
44
|
+
error: normalizeError(err),
|
|
45
|
+
metrics,
|
|
46
|
+
};
|
|
47
|
+
return { value: errorEvent, done: false };
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
async result() {
|
|
55
|
+
const original = await execution.result();
|
|
56
|
+
if (original.status !== 'succeeded') {
|
|
57
|
+
return original;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const mappedEvents = [];
|
|
61
|
+
for (const event of original.events) {
|
|
62
|
+
if (event.type === 'error') {
|
|
63
|
+
mappedEvents.push(event);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const { metrics, ...pureEvent } = event;
|
|
67
|
+
const mapped = await fn(pureEvent);
|
|
68
|
+
mappedEvents.push({ ...mapped, metrics });
|
|
69
|
+
}
|
|
70
|
+
const completionEvent = mappedEvents.find(e => e.type === 'complete');
|
|
71
|
+
return {
|
|
72
|
+
status: 'succeeded',
|
|
73
|
+
value: completionEvent.data,
|
|
74
|
+
events: mappedEvents,
|
|
75
|
+
summary: original.summary,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
return {
|
|
80
|
+
status: 'failed',
|
|
81
|
+
error: normalizeError(err),
|
|
82
|
+
events: original.events,
|
|
83
|
+
summary: original.summary,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
cancel: () => execution.cancel(),
|
|
88
|
+
cleanup: () => execution.cleanup(),
|
|
89
|
+
[Symbol.asyncDispose]: () => execution[Symbol.asyncDispose](),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// ============================================================================
|
|
93
|
+
// Internal: Streaming — result-only mapping
|
|
94
|
+
// ============================================================================
|
|
95
|
+
function mapStreamingExecutionResult(execution, fn) {
|
|
96
|
+
return {
|
|
97
|
+
stream() {
|
|
98
|
+
const original = execution.stream();
|
|
99
|
+
return {
|
|
100
|
+
[Symbol.asyncIterator]() {
|
|
101
|
+
const iter = original[Symbol.asyncIterator]();
|
|
102
|
+
return {
|
|
103
|
+
async next() {
|
|
104
|
+
const { value, done } = await iter.next();
|
|
105
|
+
if (done)
|
|
106
|
+
return { value: undefined, done: true };
|
|
107
|
+
const event = value;
|
|
108
|
+
if (event.type === 'complete') {
|
|
109
|
+
const { metrics, ...rest } = event;
|
|
110
|
+
try {
|
|
111
|
+
const mapped = await fn(rest.data);
|
|
112
|
+
return {
|
|
113
|
+
value: { type: 'complete', data: mapped, summary: rest.summary, metrics },
|
|
114
|
+
done: false,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
const errorEvent = {
|
|
119
|
+
type: 'error',
|
|
120
|
+
error: normalizeError(err),
|
|
121
|
+
metrics,
|
|
122
|
+
};
|
|
123
|
+
return { value: errorEvent, done: false };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return { value: event, done: false };
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
},
|
|
132
|
+
async result() {
|
|
133
|
+
const original = await execution.result();
|
|
134
|
+
if (original.status !== 'succeeded') {
|
|
135
|
+
return original;
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const mapped = await fn(original.value);
|
|
139
|
+
const mappedEvents = original.events.map(event => {
|
|
140
|
+
if (event.type === 'complete') {
|
|
141
|
+
return { ...event, data: mapped };
|
|
142
|
+
}
|
|
143
|
+
return event;
|
|
144
|
+
});
|
|
145
|
+
return {
|
|
146
|
+
status: 'succeeded',
|
|
147
|
+
value: mapped,
|
|
148
|
+
events: mappedEvents,
|
|
149
|
+
summary: original.summary,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
return {
|
|
154
|
+
status: 'failed',
|
|
155
|
+
error: normalizeError(err),
|
|
156
|
+
events: original.events,
|
|
157
|
+
summary: original.summary,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
cancel: () => execution.cancel(),
|
|
162
|
+
cleanup: () => execution.cleanup(),
|
|
163
|
+
[Symbol.asyncDispose]: () => execution[Symbol.asyncDispose](),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
// ============================================================================
|
|
167
|
+
// Internal: Simple execution mapping (shared by both mapExecution and mapExecutionResult)
|
|
168
|
+
// ============================================================================
|
|
169
|
+
function mapSimpleExecution(execution, fn) {
|
|
170
|
+
return {
|
|
171
|
+
async result() {
|
|
172
|
+
const original = await execution.result();
|
|
173
|
+
if (original.status !== 'succeeded') {
|
|
174
|
+
return original;
|
|
175
|
+
}
|
|
176
|
+
try {
|
|
177
|
+
const mapped = await fn(original.value);
|
|
178
|
+
return {
|
|
179
|
+
status: 'succeeded',
|
|
180
|
+
value: mapped,
|
|
181
|
+
summary: original.summary,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
return {
|
|
186
|
+
status: 'failed',
|
|
187
|
+
error: normalizeError(err),
|
|
188
|
+
summary: original.summary,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
cancel: () => execution.cancel(),
|
|
193
|
+
cleanup: () => execution.cleanup(),
|
|
194
|
+
[Symbol.asyncDispose]: () => execution[Symbol.asyncDispose](),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/execution/mapping.ts"],"names":[],"mappings":"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"}
|