@herdctl/core 0.0.1 → 0.0.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/dist/config/__tests__/agent.test.js +31 -13
- package/dist/config/__tests__/agent.test.js.map +1 -1
- package/dist/config/__tests__/merge.test.js +9 -2
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/__tests__/schema.test.js +350 -1
- package/dist/config/__tests__/schema.test.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +828 -24
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +118 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/fleet-manager/__tests__/coverage.test.js +11 -332
- package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/errors.test.js +1 -49
- package/dist/fleet-manager/__tests__/errors.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/integration.test.js +109 -0
- package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/reload.test.js +1 -1
- package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
- package/dist/fleet-manager/config-reload.d.ts +164 -0
- package/dist/fleet-manager/config-reload.d.ts.map +1 -0
- package/dist/fleet-manager/config-reload.js +445 -0
- package/dist/fleet-manager/config-reload.js.map +1 -0
- package/dist/fleet-manager/context.d.ts +76 -0
- package/dist/fleet-manager/context.d.ts.map +1 -0
- package/dist/fleet-manager/context.js +11 -0
- package/dist/fleet-manager/context.js.map +1 -0
- package/dist/fleet-manager/errors.d.ts +0 -25
- package/dist/fleet-manager/errors.d.ts.map +1 -1
- package/dist/fleet-manager/errors.js +0 -38
- package/dist/fleet-manager/errors.js.map +1 -1
- package/dist/fleet-manager/event-emitters.d.ts +123 -0
- package/dist/fleet-manager/event-emitters.d.ts.map +1 -0
- package/dist/fleet-manager/event-emitters.js +136 -0
- package/dist/fleet-manager/event-emitters.js.map +1 -0
- package/dist/fleet-manager/event-types.d.ts +0 -15
- package/dist/fleet-manager/event-types.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts +40 -653
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +95 -1720
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/fleet-manager/index.d.ts +13 -2
- package/dist/fleet-manager/index.d.ts.map +1 -1
- package/dist/fleet-manager/index.js +19 -6
- package/dist/fleet-manager/index.js.map +1 -1
- package/dist/fleet-manager/job-control.d.ts +64 -0
- package/dist/fleet-manager/job-control.d.ts.map +1 -0
- package/dist/fleet-manager/job-control.js +296 -0
- package/dist/fleet-manager/job-control.js.map +1 -0
- package/dist/fleet-manager/log-streaming.d.ts +171 -0
- package/dist/fleet-manager/log-streaming.d.ts.map +1 -0
- package/dist/fleet-manager/log-streaming.js +503 -0
- package/dist/fleet-manager/log-streaming.js.map +1 -0
- package/dist/fleet-manager/schedule-executor.d.ts +63 -0
- package/dist/fleet-manager/schedule-executor.d.ts.map +1 -0
- package/dist/fleet-manager/schedule-executor.js +209 -0
- package/dist/fleet-manager/schedule-executor.js.map +1 -0
- package/dist/fleet-manager/schedule-management.d.ts +71 -0
- package/dist/fleet-manager/schedule-management.d.ts.map +1 -0
- package/dist/fleet-manager/schedule-management.js +171 -0
- package/dist/fleet-manager/schedule-management.js.map +1 -0
- package/dist/fleet-manager/status-queries.d.ts +105 -0
- package/dist/fleet-manager/status-queries.d.ts.map +1 -0
- package/dist/fleet-manager/status-queries.js +247 -0
- package/dist/fleet-manager/status-queries.js.map +1 -0
- package/dist/fleet-manager/types.d.ts +0 -39
- package/dist/fleet-manager/types.d.ts.map +1 -1
- package/dist/runner/__tests__/job-executor.test.js +206 -1
- package/dist/runner/__tests__/job-executor.test.js.map +1 -1
- package/dist/runner/job-executor.d.ts +9 -0
- package/dist/runner/job-executor.d.ts.map +1 -1
- package/dist/runner/job-executor.js +78 -4
- package/dist/runner/job-executor.js.map +1 -1
- package/dist/runner/types.d.ts +2 -0
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/scheduler/__tests__/cron.test.d.ts +2 -0
- package/dist/scheduler/__tests__/cron.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/cron.test.js +867 -0
- package/dist/scheduler/__tests__/cron.test.js.map +1 -0
- package/dist/scheduler/__tests__/scheduler.test.js +164 -5
- package/dist/scheduler/__tests__/scheduler.test.js.map +1 -1
- package/dist/scheduler/cron.d.ts +126 -0
- package/dist/scheduler/cron.d.ts.map +1 -0
- package/dist/scheduler/cron.js +390 -0
- package/dist/scheduler/cron.js.map +1 -0
- package/dist/scheduler/errors.d.ts +81 -1
- package/dist/scheduler/errors.d.ts.map +1 -1
- package/dist/scheduler/errors.js +81 -6
- package/dist/scheduler/errors.js.map +1 -1
- package/dist/scheduler/index.d.ts +1 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +2 -0
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/schedule-runner.d.ts +2 -2
- package/dist/scheduler/schedule-runner.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.js +20 -8
- package/dist/scheduler/schedule-runner.js.map +1 -1
- package/dist/scheduler/scheduler.d.ts +4 -4
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/scheduler/scheduler.js +86 -20
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/state/schemas/job-metadata.d.ts +2 -2
- package/package.json +33 -8
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test.log +0 -219
- package/.turbo/turbo-typecheck.log +0 -4
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -51
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -251
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/config/index.html +0 -191
- package/coverage/src/config/index.ts.html +0 -442
- package/coverage/src/config/interpolate.ts.html +0 -652
- package/coverage/src/config/loader.ts.html +0 -1501
- package/coverage/src/config/merge.ts.html +0 -823
- package/coverage/src/config/parser.ts.html +0 -1213
- package/coverage/src/config/schema.ts.html +0 -1123
- package/coverage/src/fleet-manager/errors.ts.html +0 -2326
- package/coverage/src/fleet-manager/event-types.ts.html +0 -1219
- package/coverage/src/fleet-manager/fleet-manager.ts.html +0 -7030
- package/coverage/src/fleet-manager/index.html +0 -206
- package/coverage/src/fleet-manager/index.ts.html +0 -469
- package/coverage/src/fleet-manager/job-manager.ts.html +0 -2074
- package/coverage/src/fleet-manager/job-queue.ts.html +0 -2479
- package/coverage/src/fleet-manager/types.ts.html +0 -2602
- package/coverage/src/index.html +0 -116
- package/coverage/src/index.ts.html +0 -181
- package/coverage/src/runner/errors.ts.html +0 -1006
- package/coverage/src/runner/index.html +0 -191
- package/coverage/src/runner/index.ts.html +0 -256
- package/coverage/src/runner/job-executor.ts.html +0 -1429
- package/coverage/src/runner/message-processor.ts.html +0 -1150
- package/coverage/src/runner/sdk-adapter.ts.html +0 -658
- package/coverage/src/runner/types.ts.html +0 -559
- package/coverage/src/scheduler/errors.ts.html +0 -388
- package/coverage/src/scheduler/index.html +0 -206
- package/coverage/src/scheduler/index.ts.html +0 -244
- package/coverage/src/scheduler/interval.ts.html +0 -652
- package/coverage/src/scheduler/schedule-runner.ts.html +0 -1411
- package/coverage/src/scheduler/schedule-state.ts.html +0 -718
- package/coverage/src/scheduler/scheduler.ts.html +0 -1795
- package/coverage/src/scheduler/types.ts.html +0 -733
- package/coverage/src/state/directory.ts.html +0 -736
- package/coverage/src/state/errors.ts.html +0 -376
- package/coverage/src/state/fleet-state.ts.html +0 -937
- package/coverage/src/state/index.html +0 -221
- package/coverage/src/state/index.ts.html +0 -322
- package/coverage/src/state/job-metadata.ts.html +0 -1420
- package/coverage/src/state/job-output.ts.html +0 -1033
- package/coverage/src/state/schemas/fleet-state.ts.html +0 -445
- package/coverage/src/state/schemas/index.html +0 -176
- package/coverage/src/state/schemas/index.ts.html +0 -286
- package/coverage/src/state/schemas/job-metadata.ts.html +0 -628
- package/coverage/src/state/schemas/job-output.ts.html +0 -616
- package/coverage/src/state/schemas/session-info.ts.html +0 -361
- package/coverage/src/state/session.ts.html +0 -844
- package/coverage/src/state/types.ts.html +0 -262
- package/coverage/src/state/utils/atomic.ts.html +0 -748
- package/coverage/src/state/utils/index.html +0 -146
- package/coverage/src/state/utils/index.ts.html +0 -103
- package/coverage/src/state/utils/reads.ts.html +0 -1621
- package/coverage/src/work-sources/adapters/github.ts.html +0 -3583
- package/coverage/src/work-sources/adapters/index.html +0 -131
- package/coverage/src/work-sources/adapters/index.ts.html +0 -277
- package/coverage/src/work-sources/errors.ts.html +0 -298
- package/coverage/src/work-sources/index.html +0 -176
- package/coverage/src/work-sources/index.ts.html +0 -529
- package/coverage/src/work-sources/manager.ts.html +0 -1324
- package/coverage/src/work-sources/registry.ts.html +0 -619
- package/coverage/src/work-sources/types.ts.html +0 -568
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +0 -7
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +0 -1
- package/dist/fleet-manager/__tests__/event-helpers.test.js +0 -368
- package/dist/fleet-manager/__tests__/event-helpers.test.js.map +0 -1
- package/src/config/__tests__/agent.test.ts +0 -864
- package/src/config/__tests__/interpolate.test.ts +0 -644
- package/src/config/__tests__/loader.test.ts +0 -784
- package/src/config/__tests__/merge.test.ts +0 -751
- package/src/config/__tests__/parser.test.ts +0 -533
- package/src/config/__tests__/schema.test.ts +0 -873
- package/src/config/index.ts +0 -119
- package/src/config/interpolate.ts +0 -189
- package/src/config/loader.ts +0 -472
- package/src/config/merge.ts +0 -246
- package/src/config/parser.ts +0 -376
- package/src/config/schema.ts +0 -346
- package/src/fleet-manager/__tests__/coverage.test.ts +0 -2869
- package/src/fleet-manager/__tests__/errors.test.ts +0 -660
- package/src/fleet-manager/__tests__/event-helpers.test.ts +0 -448
- package/src/fleet-manager/__tests__/integration.test.ts +0 -1209
- package/src/fleet-manager/__tests__/job-control.test.ts +0 -283
- package/src/fleet-manager/__tests__/job-manager.test.ts +0 -869
- package/src/fleet-manager/__tests__/job-queue.test.ts +0 -401
- package/src/fleet-manager/__tests__/reload.test.ts +0 -751
- package/src/fleet-manager/__tests__/status-queries.test.ts +0 -595
- package/src/fleet-manager/__tests__/trigger.test.ts +0 -601
- package/src/fleet-manager/errors.ts +0 -747
- package/src/fleet-manager/event-types.ts +0 -378
- package/src/fleet-manager/fleet-manager.ts +0 -2315
- package/src/fleet-manager/index.ts +0 -128
- package/src/fleet-manager/job-manager.ts +0 -663
- package/src/fleet-manager/job-queue.ts +0 -798
- package/src/fleet-manager/types.ts +0 -839
- package/src/index.ts +0 -32
- package/src/runner/__tests__/errors.test.ts +0 -382
- package/src/runner/__tests__/job-executor.test.ts +0 -1708
- package/src/runner/__tests__/message-processor.test.ts +0 -960
- package/src/runner/__tests__/sdk-adapter.test.ts +0 -626
- package/src/runner/errors.ts +0 -307
- package/src/runner/index.ts +0 -57
- package/src/runner/job-executor.ts +0 -448
- package/src/runner/message-processor.ts +0 -355
- package/src/runner/sdk-adapter.ts +0 -191
- package/src/runner/types.ts +0 -158
- package/src/scheduler/__tests__/errors.test.ts +0 -159
- package/src/scheduler/__tests__/interval.test.ts +0 -515
- package/src/scheduler/__tests__/schedule-runner.test.ts +0 -798
- package/src/scheduler/__tests__/schedule-state.test.ts +0 -671
- package/src/scheduler/__tests__/scheduler.test.ts +0 -1280
- package/src/scheduler/errors.ts +0 -101
- package/src/scheduler/index.ts +0 -53
- package/src/scheduler/interval.ts +0 -189
- package/src/scheduler/schedule-runner.ts +0 -442
- package/src/scheduler/schedule-state.ts +0 -211
- package/src/scheduler/scheduler.ts +0 -570
- package/src/scheduler/types.ts +0 -216
- package/src/state/__tests__/directory.test.ts +0 -595
- package/src/state/__tests__/fleet-state.test.ts +0 -868
- package/src/state/__tests__/job-metadata-schema.test.ts +0 -414
- package/src/state/__tests__/job-metadata.test.ts +0 -831
- package/src/state/__tests__/job-output.test.ts +0 -856
- package/src/state/__tests__/session-schema.test.ts +0 -378
- package/src/state/__tests__/session.test.ts +0 -604
- package/src/state/directory.ts +0 -217
- package/src/state/errors.ts +0 -97
- package/src/state/fleet-state.ts +0 -284
- package/src/state/index.ts +0 -79
- package/src/state/job-metadata.ts +0 -445
- package/src/state/job-output.ts +0 -316
- package/src/state/schemas/__tests__/job-output.test.ts +0 -338
- package/src/state/schemas/fleet-state.ts +0 -120
- package/src/state/schemas/index.ts +0 -67
- package/src/state/schemas/job-metadata.ts +0 -181
- package/src/state/schemas/job-output.ts +0 -177
- package/src/state/schemas/session-info.ts +0 -92
- package/src/state/session.ts +0 -253
- package/src/state/types.ts +0 -59
- package/src/state/utils/__tests__/atomic.test.ts +0 -723
- package/src/state/utils/__tests__/reads.test.ts +0 -1071
- package/src/state/utils/atomic.ts +0 -221
- package/src/state/utils/index.ts +0 -6
- package/src/state/utils/reads.ts +0 -512
- package/src/work-sources/__tests__/github.test.ts +0 -1800
- package/src/work-sources/__tests__/manager.test.ts +0 -529
- package/src/work-sources/__tests__/registry.test.ts +0 -477
- package/src/work-sources/__tests__/types.test.ts +0 -479
- package/src/work-sources/adapters/github.ts +0 -1166
- package/src/work-sources/adapters/index.ts +0 -64
- package/src/work-sources/errors.ts +0 -71
- package/src/work-sources/index.ts +0 -148
- package/src/work-sources/manager.ts +0 -413
- package/src/work-sources/registry.ts +0 -178
- package/src/work-sources/types.ts +0 -161
- package/tsconfig.json +0 -9
- package/vitest.config.ts +0 -19
package/src/runner/errors.ts
DELETED
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error classes for runner module
|
|
3
|
-
*
|
|
4
|
-
* Provides typed errors with descriptive messages for SDK and execution failures.
|
|
5
|
-
* All errors include context such as job ID and agent name for debugging.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// =============================================================================
|
|
9
|
-
// Base Error Class
|
|
10
|
-
// =============================================================================
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Base error class for all runner errors
|
|
14
|
-
*/
|
|
15
|
-
export class RunnerError extends Error {
|
|
16
|
-
/** The job ID associated with this error, if available */
|
|
17
|
-
public readonly jobId?: string;
|
|
18
|
-
/** The agent name associated with this error, if available */
|
|
19
|
-
public readonly agentName?: string;
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
message: string,
|
|
23
|
-
options?: { jobId?: string; agentName?: string; cause?: Error }
|
|
24
|
-
) {
|
|
25
|
-
super(message);
|
|
26
|
-
this.name = "RunnerError";
|
|
27
|
-
this.jobId = options?.jobId;
|
|
28
|
-
this.agentName = options?.agentName;
|
|
29
|
-
this.cause = options?.cause;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// =============================================================================
|
|
34
|
-
// SDK Initialization Errors
|
|
35
|
-
// =============================================================================
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Error thrown when SDK initialization fails
|
|
39
|
-
*
|
|
40
|
-
* Common causes:
|
|
41
|
-
* - Missing API key (ANTHROPIC_API_KEY not set)
|
|
42
|
-
* - Invalid API key
|
|
43
|
-
* - Network connectivity issues
|
|
44
|
-
* - SDK configuration errors
|
|
45
|
-
*/
|
|
46
|
-
export class SDKInitializationError extends RunnerError {
|
|
47
|
-
/** The underlying error code if available */
|
|
48
|
-
public readonly code?: string;
|
|
49
|
-
|
|
50
|
-
constructor(
|
|
51
|
-
message: string,
|
|
52
|
-
options?: { jobId?: string; agentName?: string; cause?: Error; code?: string }
|
|
53
|
-
) {
|
|
54
|
-
super(message, options);
|
|
55
|
-
this.name = "SDKInitializationError";
|
|
56
|
-
this.code = options?.code ?? (options?.cause as NodeJS.ErrnoException)?.code;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Check if this error is due to a missing API key
|
|
61
|
-
*/
|
|
62
|
-
isMissingApiKey(): boolean {
|
|
63
|
-
const msg = this.message.toLowerCase();
|
|
64
|
-
return (
|
|
65
|
-
msg.includes("api key") ||
|
|
66
|
-
msg.includes("api_key") ||
|
|
67
|
-
msg.includes("authentication") ||
|
|
68
|
-
msg.includes("unauthorized") ||
|
|
69
|
-
this.code === "ENOKEY"
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Check if this error is due to network connectivity
|
|
75
|
-
*/
|
|
76
|
-
isNetworkError(): boolean {
|
|
77
|
-
return (
|
|
78
|
-
this.code === "ECONNREFUSED" ||
|
|
79
|
-
this.code === "ENOTFOUND" ||
|
|
80
|
-
this.code === "ETIMEDOUT" ||
|
|
81
|
-
this.code === "ECONNRESET"
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// =============================================================================
|
|
87
|
-
// SDK Streaming Errors
|
|
88
|
-
// =============================================================================
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Error thrown during SDK streaming execution
|
|
92
|
-
*
|
|
93
|
-
* Represents errors that occur while receiving messages from the SDK,
|
|
94
|
-
* such as connection drops, rate limits, or API errors.
|
|
95
|
-
*/
|
|
96
|
-
export class SDKStreamingError extends RunnerError {
|
|
97
|
-
/** The underlying error code if available */
|
|
98
|
-
public readonly code?: string;
|
|
99
|
-
/** Number of messages received before the error */
|
|
100
|
-
public readonly messagesReceived?: number;
|
|
101
|
-
|
|
102
|
-
constructor(
|
|
103
|
-
message: string,
|
|
104
|
-
options?: {
|
|
105
|
-
jobId?: string;
|
|
106
|
-
agentName?: string;
|
|
107
|
-
cause?: Error;
|
|
108
|
-
code?: string;
|
|
109
|
-
messagesReceived?: number;
|
|
110
|
-
}
|
|
111
|
-
) {
|
|
112
|
-
super(message, options);
|
|
113
|
-
this.name = "SDKStreamingError";
|
|
114
|
-
this.code = options?.code ?? (options?.cause as NodeJS.ErrnoException)?.code;
|
|
115
|
-
this.messagesReceived = options?.messagesReceived;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Check if this error is due to rate limiting
|
|
120
|
-
*/
|
|
121
|
-
isRateLimited(): boolean {
|
|
122
|
-
const msg = this.message.toLowerCase();
|
|
123
|
-
return (
|
|
124
|
-
msg.includes("rate limit") ||
|
|
125
|
-
msg.includes("too many requests") ||
|
|
126
|
-
this.code === "ERATELIMIT" ||
|
|
127
|
-
this.code === "429"
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Check if this error is a connection error
|
|
133
|
-
*/
|
|
134
|
-
isConnectionError(): boolean {
|
|
135
|
-
return (
|
|
136
|
-
this.code === "ECONNREFUSED" ||
|
|
137
|
-
this.code === "ECONNRESET" ||
|
|
138
|
-
this.code === "EPIPE" ||
|
|
139
|
-
this.code === "ETIMEDOUT"
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Check if this error is recoverable (could retry)
|
|
145
|
-
*/
|
|
146
|
-
isRecoverable(): boolean {
|
|
147
|
-
return this.isRateLimited() || this.isConnectionError();
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// =============================================================================
|
|
152
|
-
// Malformed Response Error
|
|
153
|
-
// =============================================================================
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Error thrown when the SDK returns a malformed or unexpected response
|
|
157
|
-
*
|
|
158
|
-
* This error helps identify issues with SDK responses that don't match
|
|
159
|
-
* expected formats, allowing graceful handling instead of crashes.
|
|
160
|
-
*/
|
|
161
|
-
export class MalformedResponseError extends RunnerError {
|
|
162
|
-
/** The raw response that caused the error */
|
|
163
|
-
public readonly rawResponse?: unknown;
|
|
164
|
-
/** Description of what was expected */
|
|
165
|
-
public readonly expected?: string;
|
|
166
|
-
|
|
167
|
-
constructor(
|
|
168
|
-
message: string,
|
|
169
|
-
options?: {
|
|
170
|
-
jobId?: string;
|
|
171
|
-
agentName?: string;
|
|
172
|
-
cause?: Error;
|
|
173
|
-
rawResponse?: unknown;
|
|
174
|
-
expected?: string;
|
|
175
|
-
}
|
|
176
|
-
) {
|
|
177
|
-
super(message, options);
|
|
178
|
-
this.name = "MalformedResponseError";
|
|
179
|
-
this.rawResponse = options?.rawResponse;
|
|
180
|
-
this.expected = options?.expected;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// =============================================================================
|
|
185
|
-
// Error Context Builder
|
|
186
|
-
// =============================================================================
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Build a descriptive error message with context
|
|
190
|
-
*/
|
|
191
|
-
export function buildErrorMessage(
|
|
192
|
-
baseMessage: string,
|
|
193
|
-
context?: { jobId?: string; agentName?: string }
|
|
194
|
-
): string {
|
|
195
|
-
const parts: string[] = [baseMessage];
|
|
196
|
-
|
|
197
|
-
if (context?.agentName) {
|
|
198
|
-
parts.push(`Agent: ${context.agentName}`);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
if (context?.jobId) {
|
|
202
|
-
parts.push(`Job: ${context.jobId}`);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return parts.join(" | ");
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// =============================================================================
|
|
209
|
-
// Error Classification Helpers
|
|
210
|
-
// =============================================================================
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Determine the exit reason based on error type
|
|
214
|
-
*/
|
|
215
|
-
export type ErrorExitReason = "error" | "timeout" | "cancelled" | "max_turns";
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Classify an error to determine the appropriate exit reason
|
|
219
|
-
*/
|
|
220
|
-
export function classifyError(error: Error): ErrorExitReason {
|
|
221
|
-
const msg = error.message.toLowerCase();
|
|
222
|
-
|
|
223
|
-
// Check for timeout
|
|
224
|
-
if (
|
|
225
|
-
msg.includes("timeout") ||
|
|
226
|
-
msg.includes("timed out") ||
|
|
227
|
-
(error as NodeJS.ErrnoException).code === "ETIMEDOUT"
|
|
228
|
-
) {
|
|
229
|
-
return "timeout";
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// Check for cancellation
|
|
233
|
-
if (
|
|
234
|
-
msg.includes("abort") ||
|
|
235
|
-
msg.includes("cancel") ||
|
|
236
|
-
error.name === "AbortError"
|
|
237
|
-
) {
|
|
238
|
-
return "cancelled";
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Check for max turns
|
|
242
|
-
if (msg.includes("max turns") || msg.includes("max_turns") || msg.includes("turn limit") || msg.includes("maximum turns")) {
|
|
243
|
-
return "max_turns";
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// Default to generic error
|
|
247
|
-
return "error";
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* Wrap an unknown error in an appropriate RunnerError type
|
|
252
|
-
*/
|
|
253
|
-
export function wrapError(
|
|
254
|
-
error: unknown,
|
|
255
|
-
context: { jobId?: string; agentName?: string; phase?: "init" | "streaming" }
|
|
256
|
-
): RunnerError {
|
|
257
|
-
// Already a RunnerError
|
|
258
|
-
if (error instanceof RunnerError) {
|
|
259
|
-
return error;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Convert to Error if needed
|
|
263
|
-
const baseError =
|
|
264
|
-
error instanceof Error ? error : new Error(String(error));
|
|
265
|
-
|
|
266
|
-
// Determine error type based on phase and characteristics
|
|
267
|
-
const message = baseError.message.toLowerCase();
|
|
268
|
-
const phase = context.phase ?? "streaming";
|
|
269
|
-
|
|
270
|
-
if (phase === "init") {
|
|
271
|
-
return new SDKInitializationError(
|
|
272
|
-
buildErrorMessage(baseError.message, context),
|
|
273
|
-
{
|
|
274
|
-
jobId: context.jobId,
|
|
275
|
-
agentName: context.agentName,
|
|
276
|
-
cause: baseError,
|
|
277
|
-
}
|
|
278
|
-
);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
// Check for malformed response indicators
|
|
282
|
-
if (
|
|
283
|
-
message.includes("unexpected") ||
|
|
284
|
-
message.includes("invalid json") ||
|
|
285
|
-
message.includes("parse error") ||
|
|
286
|
-
message.includes("malformed")
|
|
287
|
-
) {
|
|
288
|
-
return new MalformedResponseError(
|
|
289
|
-
buildErrorMessage(baseError.message, context),
|
|
290
|
-
{
|
|
291
|
-
jobId: context.jobId,
|
|
292
|
-
agentName: context.agentName,
|
|
293
|
-
cause: baseError,
|
|
294
|
-
}
|
|
295
|
-
);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
// Default to streaming error for runtime errors
|
|
299
|
-
return new SDKStreamingError(
|
|
300
|
-
buildErrorMessage(baseError.message, context),
|
|
301
|
-
{
|
|
302
|
-
jobId: context.jobId,
|
|
303
|
-
agentName: context.agentName,
|
|
304
|
-
cause: baseError,
|
|
305
|
-
}
|
|
306
|
-
);
|
|
307
|
-
}
|
package/src/runner/index.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Runner module
|
|
3
|
-
*
|
|
4
|
-
* Provides functionality to execute agents using the Claude Agent SDK
|
|
5
|
-
* with proper configuration, permissions, MCP server support, and output handling.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Export types
|
|
9
|
-
export type {
|
|
10
|
-
RunnerOptions,
|
|
11
|
-
RunnerOptionsWithCallbacks,
|
|
12
|
-
RunnerResult,
|
|
13
|
-
RunnerErrorDetails,
|
|
14
|
-
SDKMessage,
|
|
15
|
-
MessageCallback,
|
|
16
|
-
SDKQueryOptions,
|
|
17
|
-
SDKMcpServerConfig,
|
|
18
|
-
SDKSystemPrompt,
|
|
19
|
-
ProcessedMessage,
|
|
20
|
-
} from "./types.js";
|
|
21
|
-
|
|
22
|
-
// Export error types and utilities
|
|
23
|
-
export {
|
|
24
|
-
RunnerError,
|
|
25
|
-
SDKInitializationError,
|
|
26
|
-
SDKStreamingError,
|
|
27
|
-
MalformedResponseError,
|
|
28
|
-
buildErrorMessage,
|
|
29
|
-
classifyError,
|
|
30
|
-
wrapError,
|
|
31
|
-
type ErrorExitReason,
|
|
32
|
-
} from "./errors.js";
|
|
33
|
-
|
|
34
|
-
// Export SDK adapter functions
|
|
35
|
-
export {
|
|
36
|
-
toSDKOptions,
|
|
37
|
-
transformMcpServers,
|
|
38
|
-
transformMcpServer,
|
|
39
|
-
buildSystemPrompt,
|
|
40
|
-
type ToSDKOptionsParams,
|
|
41
|
-
} from "./sdk-adapter.js";
|
|
42
|
-
|
|
43
|
-
// Export message processor functions
|
|
44
|
-
export {
|
|
45
|
-
processSDKMessage,
|
|
46
|
-
isTerminalMessage,
|
|
47
|
-
extractSummary,
|
|
48
|
-
} from "./message-processor.js";
|
|
49
|
-
|
|
50
|
-
// Export job executor
|
|
51
|
-
export {
|
|
52
|
-
JobExecutor,
|
|
53
|
-
executeJob,
|
|
54
|
-
type JobExecutorLogger,
|
|
55
|
-
type JobExecutorOptions,
|
|
56
|
-
type SDKQueryFunction,
|
|
57
|
-
} from "./job-executor.js";
|