@mikode13/harness 0.1.0 → 1.0.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 +35 -26
- package/dist/agent/domain/agent.d.ts +5 -0
- package/dist/agent/domain/agent.d.ts.map +1 -1
- package/dist/agent/domain/errors.d.ts +6 -0
- package/dist/agent/domain/errors.d.ts.map +1 -1
- package/dist/agent/domain/errors.js +6 -0
- package/dist/agent/domain/errors.js.map +1 -1
- package/dist/agent/domain/providerFailure.d.ts +6 -0
- package/dist/agent/domain/providerFailure.d.ts.map +1 -1
- package/dist/agent/domain/providerFailure.js +13 -0
- package/dist/agent/domain/providerFailure.js.map +1 -1
- package/dist/engines/claude/infrastructure/model/claudeAgent.d.ts +14 -4
- package/dist/engines/claude/infrastructure/model/claudeAgent.d.ts.map +1 -1
- package/dist/engines/claude/infrastructure/model/claudeAgent.js +130 -25
- package/dist/engines/claude/infrastructure/model/claudeAgent.js.map +1 -1
- package/dist/engines/codex/infrastructure/model/codexAgent.d.ts +8 -8
- package/dist/engines/codex/infrastructure/model/codexAgent.d.ts.map +1 -1
- package/dist/engines/codex/infrastructure/model/codexAgent.js +35 -8
- package/dist/engines/codex/infrastructure/model/codexAgent.js.map +1 -1
- package/dist/factory/infrastructure/agentFactory.d.ts +50 -0
- package/dist/factory/infrastructure/agentFactory.d.ts.map +1 -0
- package/dist/factory/infrastructure/agentFactory.js +91 -0
- package/dist/factory/infrastructure/agentFactory.js.map +1 -0
- package/dist/index.d.ts +2 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/orchestration/domain/model/orchestratorAgent.d.ts +11 -1
- package/dist/orchestration/domain/model/orchestratorAgent.d.ts.map +1 -1
- package/dist/orchestration/domain/model/orchestratorAgent.js +13 -1
- package/dist/orchestration/domain/model/orchestratorAgent.js.map +1 -1
- package/dist/retry/domain/model/retryingAgent.d.ts +7 -1
- package/dist/retry/domain/model/retryingAgent.d.ts.map +1 -1
- package/dist/retry/domain/model/retryingAgent.js +13 -3
- package/dist/retry/domain/model/retryingAgent.js.map +1 -1
- package/dist/shared/domain/isOneOf.d.ts +3 -0
- package/dist/shared/domain/isOneOf.d.ts.map +1 -0
- package/dist/shared/domain/isOneOf.js +5 -0
- package/dist/shared/domain/isOneOf.js.map +1 -0
- package/dist/shared/domain/logger.d.ts +0 -2
- package/dist/shared/domain/logger.d.ts.map +1 -1
- package/dist/shared/infrastructure/logger.d.ts +5 -0
- package/dist/shared/infrastructure/logger.d.ts.map +1 -0
- package/dist/shared/infrastructure/logger.js +6 -0
- package/dist/shared/infrastructure/logger.js.map +1 -0
- package/package.json +60 -57
package/README.md
CHANGED
|
@@ -58,17 +58,12 @@ chat loop itself never knows the difference.
|
|
|
58
58
|
|
|
59
59
|
## Where it is going
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
error messages) — explicitly deferred until the above is solid.
|
|
68
|
-
- Dynamic routing (deciding which flow/agent a request needs, instead of
|
|
69
|
-
always running the fixed plan → execute → review workflow) — deliberately
|
|
70
|
-
built _after_ that fixed flow, not alongside it, so the routing decision
|
|
71
|
-
reuses a technique already proven on a simpler problem.
|
|
61
|
+
Open work is tracked in GitHub issues:
|
|
62
|
+
|
|
63
|
+
- [#17](https://github.com/Mikode13/harness/issues/17): dynamic routing —
|
|
64
|
+
deciding which flow or agent a request needs, instead of always running the
|
|
65
|
+
fixed plan → execute → review workflow. It reuses the structured-decision
|
|
66
|
+
technique already proven on the reviewer.
|
|
72
67
|
|
|
73
68
|
Deliberately out of scope for now: MCP, long-term memory, graph execution, and
|
|
74
69
|
file-based agent registries — each waits for a real need.
|
|
@@ -97,17 +92,14 @@ comment on `Agent` in `src/agent/domain/agent.ts`.
|
|
|
97
92
|
pnpm add @mikode13/harness
|
|
98
93
|
```
|
|
99
94
|
|
|
100
|
-
An agent is
|
|
95
|
+
An agent is built by a factory, then driven. The only output the package produces
|
|
96
|
+
on its own is diagnostic warnings on stderr, from a default logger that both
|
|
97
|
+
factories let you replace through their `logger` option:
|
|
101
98
|
|
|
102
99
|
```ts
|
|
103
|
-
import {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
UnrecoverableError,
|
|
107
|
-
type ProgressEvent,
|
|
108
|
-
} from '@mikode13/harness';
|
|
109
|
-
|
|
110
|
-
const agent = new RetryingAgent(new ClaudeAgent('sonnet'));
|
|
100
|
+
import { createAgent, UnrecoverableError, type ProgressEvent } from '@mikode13/harness';
|
|
101
|
+
|
|
102
|
+
const agent = createAgent('claude', { model: 'sonnet' });
|
|
111
103
|
const controller = new AbortController();
|
|
112
104
|
|
|
113
105
|
const render = (event: ProgressEvent) => {
|
|
@@ -124,9 +116,18 @@ try {
|
|
|
124
116
|
|
|
125
117
|
`ProgressEvent` is the public seam for live activity; rendering it is the
|
|
126
118
|
consumer's decision, not the harness's. `cli/progressEventFormatter.ts` is one
|
|
127
|
-
terminal-shaped implementation to copy from.
|
|
128
|
-
|
|
129
|
-
|
|
119
|
+
terminal-shaped implementation to copy from. New event types can arrive in minor
|
|
120
|
+
releases, so render the ones you know and ignore the rest. Swapping the agent for
|
|
121
|
+
`createAgent('codex')`, or for `createOrchestrator()` and its planner → executor →
|
|
122
|
+
reviewer workflow, changes nothing else in the snippet above.
|
|
123
|
+
`createOrchestrator({ provider: 'claude' })` runs every role on one provider, for
|
|
124
|
+
example when the other one is out of quota.
|
|
125
|
+
|
|
126
|
+
Every agent a factory returns already retries recoverable failures. A model or
|
|
127
|
+
reasoning effort the chosen provider does not support throws
|
|
128
|
+
`InvalidAgentConfigError` when the agent is built. Building a Codex agent throws
|
|
129
|
+
`UnrecoverableError` if the Codex CLI binary cannot be found, which happens when
|
|
130
|
+
optional dependencies were skipped at install time.
|
|
130
131
|
|
|
131
132
|
## Tests
|
|
132
133
|
|
|
@@ -153,14 +154,22 @@ This maps to each provider's permission-bypass mode and grants those processes
|
|
|
153
154
|
unrestricted command access. Keep it disabled when the host may receive untrusted
|
|
154
155
|
prompts, or provide an approval workflow from the entry point.
|
|
155
156
|
|
|
156
|
-
Real consumers (a future REST/WebSocket server, a chatbot UI)
|
|
157
|
-
|
|
158
|
-
their own
|
|
157
|
+
Real consumers (a future REST/WebSocket server, a chatbot UI) build agents
|
|
158
|
+
through `createAgent` and `createOrchestrator` and bring their own I/O, and
|
|
159
|
+
optionally their own `ILogger` adapter. `ConversationLoop`/`IPromptEmitter` are not
|
|
159
160
|
part of the published package — they encode one specific interactive,
|
|
160
161
|
turn-by-turn consumption pattern (see `cli/`), not the harness seam itself; a
|
|
161
162
|
consumer that wants that same loop can use `cli/`'s implementation as a
|
|
162
163
|
reference rather than depend on it as a library.
|
|
163
164
|
|
|
165
|
+
## Releases
|
|
166
|
+
|
|
167
|
+
Versions follow Semantic Versioning and are published to npm automatically from
|
|
168
|
+
`main`. npm, the `v<version>` Git tags, and GitHub Releases are the release
|
|
169
|
+
history; the `version` in this repository stays at `0.0.0-development`. New
|
|
170
|
+
`ProgressEvent` types, models, and reasoning efforts ship in minor releases;
|
|
171
|
+
removing any of them is a major release.
|
|
172
|
+
|
|
164
173
|
## License
|
|
165
174
|
|
|
166
175
|
This project is source-available under the MIT License with the
|
|
@@ -5,6 +5,11 @@ export interface AgentResponse {
|
|
|
5
5
|
duration: number;
|
|
6
6
|
}
|
|
7
7
|
export type Callback = (item: ProgressEvent) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Live activity during a run, for narration only: the result travels in `AgentResponse`.
|
|
10
|
+
* New event types can arrive in a minor release, so render the types you know and ignore
|
|
11
|
+
* the rest instead of switching over them exhaustively with a `never` check.
|
|
12
|
+
*/
|
|
8
13
|
export type ProgressEvent = {
|
|
9
14
|
type: 'command';
|
|
10
15
|
command: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/agent.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAErD,MAAM,MAAM,aAAa,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,EAAE,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,KAAK;IACrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACjG"}
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/agent.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,EAAE,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,KAAK;IACrB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACjG"}
|
|
@@ -10,4 +10,10 @@ export declare class UnrecoverableError extends Error {
|
|
|
10
10
|
cause: string;
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* An agent was requested with something its provider does not support, such as another
|
|
15
|
+
* provider's model. Thrown while the agent is built, never by `run()`.
|
|
16
|
+
*/
|
|
17
|
+
export declare class InvalidAgentConfigError extends Error {
|
|
18
|
+
}
|
|
13
19
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;IACjC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAIvD;AACD,qBAAa,kBAAmB,SAAQ,KAAK;IACnC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAIvD"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;IACjC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAIvD;AACD,qBAAa,kBAAmB,SAAQ,KAAK;IACnC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;CAIvD;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;CAAG"}
|
|
@@ -12,4 +12,10 @@ export class UnrecoverableError extends Error {
|
|
|
12
12
|
this.cause = options.cause;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* An agent was requested with something its provider does not support, such as another
|
|
17
|
+
* provider's model. Thrown while the agent is built, never by `run()`.
|
|
18
|
+
*/
|
|
19
|
+
export class InvalidAgentConfigError extends Error {
|
|
20
|
+
}
|
|
15
21
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/agent/domain/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACjC,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,OAA0B;QACtD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACD;AACD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACnC,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,OAA0B;QACtD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/agent/domain/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACjC,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,OAA0B;QACtD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACD;AACD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACnC,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,OAA0B;QACtD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;CAAG"}
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
export declare function classifyProviderFailure(error: unknown, context: string): Error;
|
|
7
7
|
/** A host failure cannot be retried safely because the provider turn may already have side effects. */
|
|
8
8
|
export declare function classifyHostFailure(error: unknown, context: string): Error;
|
|
9
|
+
/**
|
|
10
|
+
* Runs host code — a logger, for example — and classifies whatever it throws with the
|
|
11
|
+
* classifier the caller chooses. The host code stays unaware of classification, and the
|
|
12
|
+
* failure cannot escape the `Agent` unclassified.
|
|
13
|
+
*/
|
|
14
|
+
export declare function treatErrors<T>(operation: () => T, classify: (error: unknown, context: string) => Error, context: string): T;
|
|
9
15
|
/** Preserves deliberate domain errors while making unexpected local failures fatal. */
|
|
10
16
|
export declare function classifyLocalFailure(error: unknown, context: string): Error;
|
|
11
17
|
/** The message alone: a stack or serialized object could expose unstable implementation details. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerFailure.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/providerFailure.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK9E;AAED,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK1E;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK3E;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMtD;AAED;;;;;GAKG;AACH,wBAAuB,wBAAwB,CAAC,CAAC,EAChD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,MAAM,GACb,cAAc,CAAC,CAAC,CAAC,CAsCnB"}
|
|
1
|
+
{"version":3,"file":"providerFailure.d.ts","sourceRoot":"","sources":["../../../src/agent/domain/providerFailure.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK9E;AAED,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,SAAS,EAAE,MAAM,CAAC,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,EACpD,OAAO,EAAE,MAAM,GACb,CAAC,CAMH;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAK3E;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMtD;AAED;;;;;GAKG;AACH,wBAAuB,wBAAwB,CAAC,CAAC,EAChD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,MAAM,GACb,cAAc,CAAC,CAAC,CAAC,CAsCnB"}
|
|
@@ -20,6 +20,19 @@ export function classifyHostFailure(error, context) {
|
|
|
20
20
|
return error;
|
|
21
21
|
return new UnrecoverableError(context, { cause: describeFailure(error) });
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Runs host code — a logger, for example — and classifies whatever it throws with the
|
|
25
|
+
* classifier the caller chooses. The host code stays unaware of classification, and the
|
|
26
|
+
* failure cannot escape the `Agent` unclassified.
|
|
27
|
+
*/
|
|
28
|
+
export function treatErrors(operation, classify, context) {
|
|
29
|
+
try {
|
|
30
|
+
return operation();
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw classify(error, context);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
23
36
|
/** Preserves deliberate domain errors while making unexpected local failures fatal. */
|
|
24
37
|
export function classifyLocalFailure(error, context) {
|
|
25
38
|
if (isAbortError(error))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerFailure.js","sourceRoot":"","sources":["../../../src/agent/domain/providerFailure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providerFailure.js","sourceRoot":"","sources":["../../../src/agent/domain/providerFailure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,27 @@
|
|
|
1
|
-
import type { EffortLevel } from '@anthropic-ai/claude-agent-sdk';
|
|
2
1
|
import type { Agent, AgentResponse, Callback } from '../../../../agent/domain/agent.ts';
|
|
3
|
-
type
|
|
2
|
+
import type { ILogger } from '../../../../shared/domain/logger.ts';
|
|
3
|
+
export declare const claudeModels: readonly ["haiku", "sonnet", "opus", "fable"];
|
|
4
|
+
export type ClaudeModel = (typeof claudeModels)[number];
|
|
5
|
+
export declare const claudeReasoningEfforts: readonly ["low", "medium", "high", "xhigh", "max"];
|
|
6
|
+
export type ClaudeReasoningEffort = (typeof claudeReasoningEfforts)[number];
|
|
4
7
|
export declare class ClaudeAgent implements Agent {
|
|
5
8
|
private model;
|
|
6
9
|
private autoApprove;
|
|
7
10
|
private reasoningEffort;
|
|
8
11
|
private sessionId?;
|
|
9
|
-
|
|
12
|
+
private logger;
|
|
13
|
+
constructor({ model, autoApprove, reasoningEffort, logger, }: {
|
|
14
|
+
model: string;
|
|
15
|
+
autoApprove?: boolean;
|
|
16
|
+
reasoningEffort?: string;
|
|
17
|
+
logger: ILogger;
|
|
18
|
+
});
|
|
10
19
|
run(prompt: string, signal: AbortSignal, callback: Callback): Promise<AgentResponse | undefined>;
|
|
11
20
|
private parseResponse;
|
|
21
|
+
private handleSystemMessage;
|
|
12
22
|
private handleAssistantMessage;
|
|
13
23
|
private handleUserMessage;
|
|
14
24
|
private handleCompletedTool;
|
|
25
|
+
private warn;
|
|
15
26
|
}
|
|
16
|
-
export {};
|
|
17
27
|
//# sourceMappingURL=claudeAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeAgent.d.ts","sourceRoot":"","sources":["../../../../../src/engines/claude/infrastructure/model/claudeAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claudeAgent.d.ts","sourceRoot":"","sources":["../../../../../src/engines/claude/infrastructure/model/claudeAgent.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACX,KAAK,EACL,aAAa,EACb,QAAQ,EAER,MAAM,mCAAmC,CAAC;AAS3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAInE,eAAO,MAAM,YAAY,+CAAgD,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,sBAAsB,oDAMQ,CAAC;AAC5C,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AA+H5E,qBAAa,WAAY,YAAW,KAAK;IACxC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAU;gBAIZ,EACX,KAAK,EACL,WAAmB,EACnB,eAAwB,EACxB,MAAM,GACN,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,OAAO,CAAC;KAChB;IAkBK,GAAG,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YA+BvB,aAAa;IAmE3B,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,sBAAsB;IAoD9B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,IAAI;CASZ"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
|
-
import { RecoverableError } from "../../../../agent/domain/errors.js";
|
|
3
|
-
import { classifiedProviderStream, classifyHostFailure, classifyLocalFailure, classifyProviderFailure, } from "../../../../agent/domain/providerFailure.js";
|
|
2
|
+
import { InvalidAgentConfigError, RecoverableError } from "../../../../agent/domain/errors.js";
|
|
3
|
+
import { classifiedProviderStream, classifyHostFailure, classifyLocalFailure, classifyProviderFailure, treatErrors, } from "../../../../agent/domain/providerFailure.js";
|
|
4
|
+
import { isOneOf } from "../../../../shared/domain/isOneOf.js";
|
|
5
|
+
// The SDK types `model` as a plain string, so this list is maintained by hand.
|
|
6
|
+
export const claudeModels = ['haiku', 'sonnet', 'opus', 'fable'];
|
|
7
|
+
export const claudeReasoningEfforts = [
|
|
8
|
+
'low',
|
|
9
|
+
'medium',
|
|
10
|
+
'high',
|
|
11
|
+
'xhigh',
|
|
12
|
+
'max',
|
|
13
|
+
];
|
|
4
14
|
function emitProgress(callback, event) {
|
|
5
15
|
try {
|
|
6
16
|
callback(event);
|
|
@@ -61,6 +71,8 @@ function mcpTool(tool, result) {
|
|
|
61
71
|
status: result.is_error ? 'failed' : 'completed',
|
|
62
72
|
};
|
|
63
73
|
}
|
|
74
|
+
// Tools without narration (Read, Grep, Task, ...) are a presentation choice, not an unknown:
|
|
75
|
+
// the tool set is open-ended, so warning here would only produce noise.
|
|
64
76
|
function describeCompletedTool(tool, result, output) {
|
|
65
77
|
if (tool.name === 'Bash') {
|
|
66
78
|
const exitCode = asRecord(output)?.exitCode ?? asRecord(output)?.exit_code;
|
|
@@ -90,10 +102,20 @@ export class ClaudeAgent {
|
|
|
90
102
|
autoApprove;
|
|
91
103
|
reasoningEffort;
|
|
92
104
|
sessionId;
|
|
93
|
-
|
|
105
|
+
logger;
|
|
106
|
+
// `model` and `reasoningEffort` are untyped on purpose: this adapter is the one that knows
|
|
107
|
+
// what Claude supports, so it validates them instead of trusting the caller.
|
|
108
|
+
constructor({ model, autoApprove = false, reasoningEffort = 'high', logger, }) {
|
|
109
|
+
if (!isOneOf(claudeModels, model)) {
|
|
110
|
+
throw new InvalidAgentConfigError(`"${model}" is not a Claude model; expected one of: ${claudeModels.join(', ')}`);
|
|
111
|
+
}
|
|
112
|
+
if (!isOneOf(claudeReasoningEfforts, reasoningEffort)) {
|
|
113
|
+
throw new InvalidAgentConfigError(`"${reasoningEffort}" is not a Claude reasoning effort; expected one of: ${claudeReasoningEfforts.join(', ')}`);
|
|
114
|
+
}
|
|
94
115
|
this.model = model;
|
|
95
116
|
this.autoApprove = autoApprove;
|
|
96
117
|
this.reasoningEffort = reasoningEffort;
|
|
118
|
+
this.logger = logger;
|
|
97
119
|
}
|
|
98
120
|
async run(prompt, signal, callback) {
|
|
99
121
|
let stream;
|
|
@@ -149,6 +171,24 @@ export class ClaudeAgent {
|
|
|
149
171
|
});
|
|
150
172
|
}
|
|
151
173
|
break;
|
|
174
|
+
case 'system':
|
|
175
|
+
this.handleSystemMessage(message);
|
|
176
|
+
break;
|
|
177
|
+
// Known messages with nothing to narrate or report.
|
|
178
|
+
case 'stream_event':
|
|
179
|
+
case 'tool_progress':
|
|
180
|
+
case 'tool_use_summary':
|
|
181
|
+
case 'auth_status':
|
|
182
|
+
case 'rate_limit_event':
|
|
183
|
+
case 'prompt_suggestion':
|
|
184
|
+
case 'conversation_reset':
|
|
185
|
+
break;
|
|
186
|
+
default: {
|
|
187
|
+
// `never` breaks the build when an SDK upgrade adds a message type; the
|
|
188
|
+
// warning covers a CLI binary that is newer than the types.
|
|
189
|
+
const unknownMessage = message;
|
|
190
|
+
this.warn(unknownMessage, 'Unknown Claude message type');
|
|
191
|
+
}
|
|
152
192
|
}
|
|
153
193
|
}
|
|
154
194
|
catch (error) {
|
|
@@ -165,32 +205,92 @@ export class ClaudeAgent {
|
|
|
165
205
|
duration: resultMessage.duration_ms / 1000,
|
|
166
206
|
};
|
|
167
207
|
}
|
|
208
|
+
handleSystemMessage(message) {
|
|
209
|
+
switch (message.subtype) {
|
|
210
|
+
// Failures the SDK handled without failing the turn: only a warning makes them visible.
|
|
211
|
+
case 'api_retry':
|
|
212
|
+
case 'model_refusal_fallback':
|
|
213
|
+
case 'model_refusal_no_fallback':
|
|
214
|
+
case 'permission_denied':
|
|
215
|
+
case 'mirror_error':
|
|
216
|
+
this.warn(message, 'Claude reported a failure without failing the turn');
|
|
217
|
+
return;
|
|
218
|
+
// Known messages with nothing to narrate or report.
|
|
219
|
+
case 'init':
|
|
220
|
+
case 'compact_boundary':
|
|
221
|
+
case 'status':
|
|
222
|
+
case 'control_request_progress':
|
|
223
|
+
case 'local_command_output':
|
|
224
|
+
case 'hook_started':
|
|
225
|
+
case 'hook_progress':
|
|
226
|
+
case 'hook_response':
|
|
227
|
+
case 'plugin_install':
|
|
228
|
+
case 'task_notification':
|
|
229
|
+
case 'task_started':
|
|
230
|
+
case 'task_updated':
|
|
231
|
+
case 'task_progress':
|
|
232
|
+
case 'background_tasks_changed':
|
|
233
|
+
case 'thinking_tokens':
|
|
234
|
+
case 'session_state_changed':
|
|
235
|
+
case 'worker_shutting_down':
|
|
236
|
+
case 'commands_changed':
|
|
237
|
+
case 'notification':
|
|
238
|
+
case 'files_persisted':
|
|
239
|
+
case 'memory_recall':
|
|
240
|
+
case 'elicitation_complete':
|
|
241
|
+
case 'informational':
|
|
242
|
+
return;
|
|
243
|
+
default: {
|
|
244
|
+
const unknownMessage = message;
|
|
245
|
+
this.warn(unknownMessage, 'Unknown Claude system message');
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
168
249
|
handleAssistantMessage(message, pendingTools, callback) {
|
|
169
250
|
for (const block of message.message.content) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
251
|
+
switch (block.type) {
|
|
252
|
+
case 'text':
|
|
253
|
+
emitProgress(callback, { type: 'agentMessage', message: block.text });
|
|
254
|
+
break;
|
|
255
|
+
case 'thinking':
|
|
256
|
+
emitProgress(callback, { type: 'reasoning', message: block.thinking });
|
|
257
|
+
break;
|
|
258
|
+
case 'tool_use':
|
|
259
|
+
case 'server_tool_use':
|
|
260
|
+
case 'mcp_tool_use': {
|
|
261
|
+
const input = asRecord(block.input);
|
|
262
|
+
if (input) {
|
|
263
|
+
pendingTools.set(block.id, {
|
|
264
|
+
name: block.name === 'web_search' ? 'WebSearch' : block.name,
|
|
265
|
+
input,
|
|
266
|
+
...('server_name' in block && typeof block.server_name === 'string'
|
|
267
|
+
? { server: block.server_name }
|
|
268
|
+
: parseMcpServer(block.name)),
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
case 'web_search_tool_result':
|
|
274
|
+
case 'web_fetch_tool_result':
|
|
275
|
+
case 'advisor_tool_result':
|
|
276
|
+
case 'code_execution_tool_result':
|
|
277
|
+
case 'bash_code_execution_tool_result':
|
|
278
|
+
case 'text_editor_code_execution_tool_result':
|
|
279
|
+
case 'tool_search_tool_result':
|
|
280
|
+
case 'mcp_tool_result':
|
|
281
|
+
this.handleCompletedTool(block, pendingTools, callback);
|
|
282
|
+
break;
|
|
283
|
+
// Known blocks with nothing to narrate.
|
|
284
|
+
case 'redacted_thinking':
|
|
285
|
+
case 'container_upload':
|
|
286
|
+
case 'compaction':
|
|
287
|
+
case 'fallback':
|
|
288
|
+
break;
|
|
289
|
+
default: {
|
|
290
|
+
const unknownBlock = block;
|
|
291
|
+
this.warn(unknownBlock, 'Unknown Claude content block');
|
|
190
292
|
}
|
|
191
|
-
continue;
|
|
192
293
|
}
|
|
193
|
-
this.handleCompletedTool(block, pendingTools, callback);
|
|
194
294
|
}
|
|
195
295
|
}
|
|
196
296
|
handleUserMessage(message, pendingTools, callback) {
|
|
@@ -215,6 +315,11 @@ export class ClaudeAgent {
|
|
|
215
315
|
if (description)
|
|
216
316
|
emitProgress(callback, description);
|
|
217
317
|
}
|
|
318
|
+
warn(...args) {
|
|
319
|
+
treatErrors(() => {
|
|
320
|
+
this.logger.warn(...args);
|
|
321
|
+
}, classifyHostFailure, 'Claude logger failed while reporting progress');
|
|
322
|
+
}
|
|
218
323
|
}
|
|
219
324
|
function parseMcpServer(name) {
|
|
220
325
|
if (!name.startsWith('mcp__'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeAgent.js","sourceRoot":"","sources":["../../../../../src/engines/claude/infrastructure/model/claudeAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claudeAgent.js","sourceRoot":"","sources":["../../../../../src/engines/claude/infrastructure/model/claudeAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type { Codex, ModelReasoningEffort } from '@openai/codex-sdk';
|
|
2
1
|
import { type Agent, type AgentResponse, type Callback } from '../../../../agent/domain/agent.ts';
|
|
3
2
|
import type { ILogger } from '../../../../shared/domain/logger.ts';
|
|
4
|
-
|
|
3
|
+
export declare const codexModels: readonly ["gpt-6-astra", "gpt-5.6-sol", "gpt-5.6-luna", "gpt-5.6-terra"];
|
|
4
|
+
export type CodexModel = (typeof codexModels)[number];
|
|
5
|
+
export declare const codexReasoningEfforts: readonly ["low", "medium", "high", "xhigh", "max", "ultra"];
|
|
6
|
+
export type CodexReasoningEffort = (typeof codexReasoningEfforts)[number];
|
|
5
7
|
export declare class CodexAgent implements Agent {
|
|
6
8
|
private thread;
|
|
7
9
|
private logger;
|
|
8
|
-
constructor({
|
|
9
|
-
|
|
10
|
-
model: Model;
|
|
11
|
-
logger: ILogger;
|
|
10
|
+
constructor({ model, autoApprove, reasoningEffort, logger, }: {
|
|
11
|
+
model: string;
|
|
12
12
|
autoApprove?: boolean;
|
|
13
|
-
reasoningEffort?:
|
|
13
|
+
reasoningEffort?: string;
|
|
14
|
+
logger: ILogger;
|
|
14
15
|
});
|
|
15
16
|
run(prompt: string, signal: AbortSignal, callback: Callback): Promise<AgentResponse | undefined>;
|
|
16
17
|
private parseResponse;
|
|
17
18
|
}
|
|
18
|
-
export {};
|
|
19
19
|
//# sourceMappingURL=codexAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexAgent.d.ts","sourceRoot":"","sources":["../../../../../src/engines/codex/infrastructure/model/codexAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codexAgent.d.ts","sourceRoot":"","sources":["../../../../../src/engines/codex/infrastructure/model/codexAgent.ts"],"names":[],"mappings":"AAQA,OAAO,EACN,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,MAAM,mCAAmC,CAAC;AAc3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAInE,eAAO,MAAM,WAAW,0EAA2E,CAAC;AACpG,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKtD,eAAO,MAAM,qBAAqB,6DAOkB,CAAC;AACrD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAoD1E,qBAAa,UAAW,YAAW,KAAK;IACvC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAU;gBAIZ,EACX,KAAK,EACL,WAAmB,EACnB,eAAwB,EACxB,MAAM,GACN,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,OAAO,CAAC;KAChB;IAwCK,GAAG,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YAYvB,aAAa;CAgD3B"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
import { Codex, } from '@openai/codex-sdk';
|
|
1
2
|
import {} from "../../../../agent/domain/agent.js";
|
|
2
|
-
import { RecoverableError, UnrecoverableError } from "../../../../agent/domain/errors.js";
|
|
3
|
-
import { classifiedProviderStream, classifyHostFailure, classifyLocalFailure, classifyProviderFailure, describeFailure, } from "../../../../agent/domain/providerFailure.js";
|
|
3
|
+
import { InvalidAgentConfigError, RecoverableError, UnrecoverableError, } from "../../../../agent/domain/errors.js";
|
|
4
|
+
import { classifiedProviderStream, classifyHostFailure, classifyLocalFailure, classifyProviderFailure, describeFailure, treatErrors, } from "../../../../agent/domain/providerFailure.js";
|
|
5
|
+
import { isOneOf } from "../../../../shared/domain/isOneOf.js";
|
|
6
|
+
// The SDK types `model` as a plain string, so this list is maintained by hand.
|
|
7
|
+
export const codexModels = ['gpt-6-astra', 'gpt-5.6-sol', 'gpt-5.6-luna', 'gpt-5.6-terra'];
|
|
8
|
+
// The efforts Codex's model catalog lists; the SDK also types 'minimal' and 'persistent', which
|
|
9
|
+
// none of the models above supports. `satisfies` only proves this is a subset of the SDK's type,
|
|
10
|
+
// so an SDK upgrade that adds an effort has to be reconciled here by hand.
|
|
11
|
+
export const codexReasoningEfforts = [
|
|
12
|
+
'low',
|
|
13
|
+
'medium',
|
|
14
|
+
'high',
|
|
15
|
+
'xhigh',
|
|
16
|
+
'max',
|
|
17
|
+
'ultra',
|
|
18
|
+
];
|
|
4
19
|
function convertEventToItem(event) {
|
|
5
20
|
if (event.type === 'error')
|
|
6
21
|
throw new UnrecoverableError('Codex stream error', { cause: event.message });
|
|
@@ -33,20 +48,32 @@ function describeItem(item, logger) {
|
|
|
33
48
|
case 'error':
|
|
34
49
|
throw new RecoverableError('error while using the codex tools', { cause: item.message });
|
|
35
50
|
default:
|
|
36
|
-
|
|
51
|
+
treatErrors(() => {
|
|
37
52
|
logger.warn(item, 'new type');
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
throw classifyHostFailure(error, 'Codex logger failed while reporting progress');
|
|
41
|
-
}
|
|
53
|
+
}, classifyHostFailure, 'Codex logger failed while reporting progress');
|
|
42
54
|
return undefined;
|
|
43
55
|
}
|
|
44
56
|
}
|
|
45
57
|
export class CodexAgent {
|
|
46
58
|
thread;
|
|
47
59
|
logger;
|
|
48
|
-
|
|
60
|
+
// `model` and `reasoningEffort` are untyped on purpose: this adapter is the one that knows
|
|
61
|
+
// what Codex supports, so it validates them instead of trusting the caller.
|
|
62
|
+
constructor({ model, autoApprove = false, reasoningEffort = 'high', logger, }) {
|
|
63
|
+
// Checked before the SDK is involved: an unsupported value is the caller's mistake, not
|
|
64
|
+
// a configuration Codex rejected.
|
|
65
|
+
if (!isOneOf(codexModels, model)) {
|
|
66
|
+
throw new InvalidAgentConfigError(`"${model}" is not a Codex model; expected one of: ${codexModels.join(', ')}`);
|
|
67
|
+
}
|
|
68
|
+
if (!isOneOf(codexReasoningEfforts, reasoningEffort)) {
|
|
69
|
+
throw new InvalidAgentConfigError(`"${reasoningEffort}" is not a Codex reasoning effort; expected one of: ${codexReasoningEfforts.join(', ')}`);
|
|
70
|
+
}
|
|
71
|
+
// The one per-model gap in Codex's catalog.
|
|
72
|
+
if (model === 'gpt-5.6-luna' && reasoningEffort === 'ultra') {
|
|
73
|
+
throw new InvalidAgentConfigError('"gpt-5.6-luna" does not support the "ultra" reasoning effort');
|
|
74
|
+
}
|
|
49
75
|
try {
|
|
76
|
+
const sdk = new Codex();
|
|
50
77
|
this.thread = sdk.startThread({
|
|
51
78
|
model,
|
|
52
79
|
modelReasoningEffort: reasoningEffort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexAgent.js","sourceRoot":"","sources":["../../../../../src/engines/codex/infrastructure/model/codexAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codexAgent.js","sourceRoot":"","sources":["../../../../../src/engines/codex/infrastructure/model/codexAgent.ts"],"names":[],"mappings":"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"}
|