@twelvehart/orcats 0.2.3 → 0.3.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 +3 -3
- package/dist/backends/claude-run.d.ts.map +1 -1
- package/dist/backends/codex-jsonl.d.ts +2 -1
- package/dist/backends/codex-jsonl.d.ts.map +1 -1
- package/dist/backends/codex-run.d.ts +2 -1
- package/dist/backends/codex-run.d.ts.map +1 -1
- package/dist/backends/codex.d.ts.map +1 -1
- package/dist/backends/pi-run.d.ts.map +1 -1
- package/dist/backends/select.d.ts +1 -1
- package/dist/backends/select.d.ts.map +1 -1
- package/dist/backends/subprocess-run.d.ts +4 -5
- package/dist/backends/subprocess-run.d.ts.map +1 -1
- package/dist/backends/subprocess-termination.d.ts +4 -0
- package/dist/backends/subprocess-termination.d.ts.map +1 -0
- package/dist/cli/version.d.ts +1 -1
- package/dist/conversation/conversation.d.ts +2 -0
- package/dist/conversation/conversation.d.ts.map +1 -1
- package/dist/conversation/settlement-reservation.d.ts +10 -0
- package/dist/conversation/settlement-reservation.d.ts.map +1 -0
- package/dist/model/backend-config.d.ts +2 -0
- package/dist/model/backend-config.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/backends/claude-run.ts +7 -2
- package/src/backends/codex-jsonl.ts +5 -0
- package/src/backends/codex-run.ts +15 -1
- package/src/backends/codex.ts +4 -1
- package/src/backends/pi-run.ts +8 -2
- package/src/backends/select.ts +4 -1
- package/src/backends/subprocess-run.ts +534 -58
- package/src/backends/subprocess-termination.ts +56 -0
- package/src/cli/main.ts +2 -1
- package/src/cli/version.ts +1 -1
- package/src/conversation/conversation.ts +92 -7
- package/src/conversation/settlement-reservation.ts +127 -0
- package/src/model/backend-config.ts +8 -0
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Use Orcats when you want coding-agent work to be expressed as code instead of a
|
|
|
8
8
|
|
|
9
9
|
## Status
|
|
10
10
|
|
|
11
|
-
The package is version `0.
|
|
11
|
+
The package is version `0.3.0`. Install the public npm package for normal project use:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
npm i @twelvehart/orcats
|
|
@@ -63,8 +63,8 @@ curl -fsSL https://github.com/ASRagab/orca-ts/releases/latest/download/install.s
|
|
|
63
63
|
Pin a version or change the install directory with environment variables:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
ORCA_VERSION=0.
|
|
67
|
-
bash <(curl -fsSL https://github.com/ASRagab/orca-ts/releases/download/v0.
|
|
66
|
+
ORCA_VERSION=0.3.0 ORCA_INSTALL_DIR="$HOME/.local/bin" \
|
|
67
|
+
bash <(curl -fsSL https://github.com/ASRagab/orca-ts/releases/download/v0.3.0/install.sh)
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
The standalone binary embeds the runtime API, so it can run a flow that imports from `@twelvehart/orcats` even when the flow project has no `node_modules`. If the project has its own `@twelvehart/orcats` package dependency, that project copy wins.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-run.d.ts","sourceRoot":"","sources":["../../src/backends/claude-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAU7B,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-run.d.ts","sourceRoot":"","sources":["../../src/backends/claude-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAU7B,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzF,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC9C,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,aAAa,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAC;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,UAAU,oBAAoB,CAAC,MAAM;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAepG;AASD,wBAAsB,qBAAqB,CAAC,MAAM,EAChD,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC5C,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAC3C,OAAO,CAAC,IAAI,CAAC,CAgCf;AA6BD,wBAAgB,MAAM,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,CAAC,QAAQ,CAAC,CA0E/E"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { z } from "zod";
|
|
2
2
|
import { StreamConversation, type ConversationCapture } from "../conversation/index.ts";
|
|
3
|
-
import { type BackendApprovalPolicy, type BackendSandboxMode } from "../model/index.ts";
|
|
3
|
+
import { type BackendApprovalPolicy, type BackendSandboxMode, type CodexReasoningEffort } from "../model/index.ts";
|
|
4
4
|
export type CodexParseResult = ConversationCapture<"codex">;
|
|
5
5
|
export interface CodexExecArgs {
|
|
6
6
|
readonly model?: string;
|
|
7
|
+
readonly reasoningEffort?: CodexReasoningEffort;
|
|
7
8
|
readonly approvalPolicy?: BackendApprovalPolicy;
|
|
8
9
|
readonly sandbox?: BackendSandboxMode;
|
|
9
10
|
readonly readOnly?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/codex-jsonl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAEL,kBAAkB,EAClB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"codex-jsonl.d.ts","sourceRoot":"","sources":["../../src/backends/codex-jsonl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAEL,kBAAkB,EAClB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAG1B,MAAM,mBAAmB,CAAC;AA6B3B,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,aAAkB,GAAG,SAAS,MAAM,EAAE,CAmC9E;AAED,MAAM,WAAW,iBAAiB,CAAC,MAAM,GAAG,OAAO;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC;;;;qFAIiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EACtD,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,iBAAiB,CAAC,MAAM,CAAM,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EACtD,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACzC,OAAO,GAAE,iBAAiB,CAAC,MAAM,CAAM,GACtC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,GAAG,OAAO,EACvD,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACzC,OAAO,GAAE,iBAAiB,CAAC,MAAM,CAAM,GACtC,kBAAkB,CAgHpB"}
|
|
@@ -3,7 +3,7 @@ import { type CodexExecArgs } from "./codex-jsonl.ts";
|
|
|
3
3
|
import { type SubprocessProcess, type SubprocessSpawner } from "./subprocess-run.ts";
|
|
4
4
|
import type { AutonomousRequest } from "./types.ts";
|
|
5
5
|
import { type AskUserMcpServer, type AskUserMcpServerOptions, type AskUserResponder, type StreamConversation } from "../conversation/index.ts";
|
|
6
|
-
import { type BackendApprovalPolicy, type BackendConfig, type BackendSandboxMode } from "../model/index.ts";
|
|
6
|
+
import { type BackendApprovalPolicy, type BackendConfig, type BackendSandboxMode, type CodexReasoningEffort } from "../model/index.ts";
|
|
7
7
|
export interface CodexBackendOptions extends Omit<CodexExecArgs, "prompt" | "outputSchemaPath" | "resumeSessionId" | "mcpServerUrl"> {
|
|
8
8
|
readonly command?: string;
|
|
9
9
|
readonly cwd?: string;
|
|
@@ -22,6 +22,7 @@ export type CodexProcess = SubprocessProcess;
|
|
|
22
22
|
export type CodexProcessSpawner = SubprocessSpawner;
|
|
23
23
|
export interface ResolvedCodexConfig<Output> {
|
|
24
24
|
model?: string;
|
|
25
|
+
reasoningEffort?: CodexReasoningEffort;
|
|
25
26
|
systemPrompt?: string;
|
|
26
27
|
approvalPolicy?: BackendApprovalPolicy;
|
|
27
28
|
sandbox?: BackendSandboxMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-run.d.ts","sourceRoot":"","sources":["../../src/backends/codex-run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"codex-run.d.ts","sourceRoot":"","sources":["../../src/backends/codex-run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,CAAC;IAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,gBAAgB,CAAC;IACtF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;6EAC6E;AAC7E,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAEpD,MAAM,WAAW,mBAAmB,CAAC,MAAM;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAC/C,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACzC,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAC1C,OAAO,CAAC,IAAI,CAAC,CA2Ef;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EACvC,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,OAAO,EAAE,mBAAmB,GAC3B,mBAAmB,CAAC,MAAM,CAAC,CAmC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/backends/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAMhE,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/backends/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAMhE,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;AAIxB,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,KAAK,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAAC,OAAO,CAAC,CAiE5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-run.d.ts","sourceRoot":"","sources":["../../src/backends/pi-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pi-run.d.ts","sourceRoot":"","sources":["../../src/backends/pi-run.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAC1C,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AA2BD,wBAAsB,iBAAiB,CAAC,MAAM,EAC5C,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,EACxC,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,EACtC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,GACvC,OAAO,CAAC,IAAI,CAAC,CAuCf;AA6BD,wBAAgB,EAAE,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CA4BnE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BackendConfig, type BackendTag } from "../model/index.ts";
|
|
2
2
|
import type { LlmBackend } from "./types.ts";
|
|
3
|
-
export type PortableBackendConfig = Omit<BackendConfig, "resumeSessionId" | "structuredOutput">;
|
|
3
|
+
export type PortableBackendConfig = Omit<BackendConfig, "reasoningEffort" | "resumeSessionId" | "structuredOutput">;
|
|
4
4
|
export interface SelectBackendOptions {
|
|
5
5
|
readonly default: BackendTag;
|
|
6
6
|
readonly config?: PortableBackendConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/backends/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/backends/select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,aAAa,EACb,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,CAC3D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAqD5E"}
|
|
@@ -55,11 +55,10 @@ export interface RunSubprocessOptions<B extends BackendTag> {
|
|
|
55
55
|
* timeout settlement; the per-backend command/args builder and line consumer
|
|
56
56
|
* plug in.
|
|
57
57
|
*
|
|
58
|
-
* The helper
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* {@link backendFailed} in that catch. */
|
|
58
|
+
* The helper propagates spawn / stream / consumer exceptions unless a timeout
|
|
59
|
+
* has already reserved settlement. In that case timeout termination owns the
|
|
60
|
+
* outcome. Each driver wraps propagated errors so failure and resource teardown
|
|
61
|
+
* stay ordered; use {@link errorMessage} + {@link backendFailed} there. */
|
|
63
62
|
export declare function runSubprocessConversation<B extends BackendTag>(options: RunSubprocessOptions<B>): Promise<void>;
|
|
64
63
|
export declare function spawnSubprocess(command: string, args: readonly string[], options: SubprocessSpawnOptions): SubprocessProcess;
|
|
65
64
|
export declare function splitLines(chunks: AsyncIterable<string | Uint8Array>): AsyncIterable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subprocess-run.d.ts","sourceRoot":"","sources":["../../src/backends/subprocess-run.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"subprocess-run.d.ts","sourceRoot":"","sources":["../../src/backends/subprocess-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SubprocessProcess } from "./subprocess-run.ts";
|
|
2
|
+
export declare function registerSubprocessExitWaitCancellation(process: SubprocessProcess, cancel: (error: unknown) => void): void;
|
|
3
|
+
export declare function terminateSubprocess(process: SubprocessProcess, gracefulMs?: number, forceMs?: number): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=subprocess-termination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subprocess-termination.d.ts","sourceRoot":"","sources":["../../src/backends/subprocess-termination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU7D,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC/B,IAAI,CAEN;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,SAAsC,EAChD,OAAO,SAAgC,GACtC,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ORCA_VERSION = "0.
|
|
1
|
+
export declare const ORCA_VERSION = "0.3.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -33,6 +33,7 @@ export declare class StreamConversation<B extends BackendTag> implements Convers
|
|
|
33
33
|
private readonly outcome;
|
|
34
34
|
private settle;
|
|
35
35
|
private settled;
|
|
36
|
+
private cancellation;
|
|
36
37
|
constructor(options: StreamConversationOptions<B>);
|
|
37
38
|
get backend(): B;
|
|
38
39
|
events(): AsyncIterable<ConversationEvent>;
|
|
@@ -42,5 +43,6 @@ export declare class StreamConversation<B extends BackendTag> implements Convers
|
|
|
42
43
|
fail(error: RuntimeError): void;
|
|
43
44
|
cancel(reason?: string): Promise<void>;
|
|
44
45
|
private complete;
|
|
46
|
+
private completeCancellationFailure;
|
|
45
47
|
}
|
|
46
48
|
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/conversation/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/conversation/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,UAAU;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/D;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAYlE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,cAA+B;IAE9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA4B;gBAEnB,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAQlE,IAAI,OAAO,IAAI,CAAC,CAEf;IAED,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC;IAI1C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI5B,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAmBzE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAiBvC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAiB/B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CtC,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,2BAA2B;CAkBpC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type SettlementKind = "success" | "cancellation" | "failure" | "cancellation_failure";
|
|
2
|
+
export declare function observeConversationCancellationCompletion(conversation: object): Promise<void>;
|
|
3
|
+
export declare function markConversationCancellationComplete(conversation: object): void;
|
|
4
|
+
export declare function registerConversationCancellationFailureHandler(conversation: object, handler: (error: unknown) => void): void;
|
|
5
|
+
export declare function reportConversationCancellationFailure(conversation: object, error: unknown): boolean;
|
|
6
|
+
export declare function reserveConversationSettlement(conversation: object): () => void;
|
|
7
|
+
export declare function isConversationSettlementReserved(conversation: object): boolean;
|
|
8
|
+
export declare function deferConversationSettlement(conversation: object, kind: SettlementKind, publish: () => void): boolean;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=settlement-reservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settlement-reservation.d.ts","sourceRoot":"","sources":["../../src/conversation/settlement-reservation.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,sBAAsB,CAAC;AAgDtF,wBAAgB,yCAAyC,CACvD,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED,wBAAgB,8CAA8C,CAC5D,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAChC,IAAI,CAEN;AAED,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,OAAO,CAOT;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,IAAI,CAqB9E;AAED,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,IAAI,GAClB,OAAO,CAaT"}
|
|
@@ -3,6 +3,7 @@ import type { BackendTag, LlmResult } from "./schemas.ts";
|
|
|
3
3
|
import type { SessionId } from "./brand.ts";
|
|
4
4
|
export type BackendApprovalPolicy = "never" | "on-request" | "on-failure" | "granular" | "untrusted";
|
|
5
5
|
export type BackendSandboxMode = "read-only" | "workspace-write" | "danger-full-access";
|
|
6
|
+
export type CodexReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max" | "ultra";
|
|
6
7
|
export interface BackendRetryConfig {
|
|
7
8
|
readonly attempts: number;
|
|
8
9
|
}
|
|
@@ -13,6 +14,7 @@ export interface StructuredOutputConfig<Output = unknown> {
|
|
|
13
14
|
}
|
|
14
15
|
export interface BackendConfig<B extends BackendTag = BackendTag, Output = unknown> {
|
|
15
16
|
readonly model?: string;
|
|
17
|
+
readonly reasoningEffort?: B extends "codex" ? CodexReasoningEffort : never;
|
|
16
18
|
readonly systemPrompt?: string;
|
|
17
19
|
readonly approvalPolicy?: BackendApprovalPolicy;
|
|
18
20
|
readonly readOnly?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-config.d.ts","sourceRoot":"","sources":["../../src/model/backend-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AACrG,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"backend-config.d.ts","sourceRoot":"","sources":["../../src/model/backend-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AACrG,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AACxF,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,GAAG,OAAO;IACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,GAAG,OAAO;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,SAAS,OAAO,GAAG,oBAAoB,GAAG,KAAK,CAAC;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG;IAC3F,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twelvehart/orcats",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "TypeScript-native reimagining of Orca: deterministic coding-agent flows with author-time type feedback.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "bun build src/cli/main.ts --target bun --outfile dist/orcats",
|
|
56
|
-
"build:binary": "bun build src/cli/main.ts --compile --outfile dist/orcats",
|
|
56
|
+
"build:binary": "bun build src/cli/main.ts --compile --compile-autoload-package-json --outfile dist/orcats",
|
|
57
57
|
"build:types": "tsc -p tsconfig.build.json",
|
|
58
58
|
"build:release": "bun run scripts/build-release-binaries.ts",
|
|
59
59
|
"lint": "bun run docs:site:prepare && eslint .",
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
type SubprocessProcess,
|
|
15
15
|
type SubprocessSpawner
|
|
16
16
|
} from "./subprocess-run.ts";
|
|
17
|
+
import { terminateSubprocess } from "./subprocess-termination.ts";
|
|
17
18
|
import type { AutonomousRequest, LlmBackend } from "./types.ts";
|
|
18
19
|
import { StreamConversation } from "../conversation/index.ts";
|
|
19
20
|
import { backendFailed, jsonSchemaFromZod, type BackendConfig } from "../model/index.ts";
|
|
@@ -154,11 +155,15 @@ export function claude(options: ClaudeBackendOptions = {}): LlmBackend<"claude">
|
|
|
154
155
|
try {
|
|
155
156
|
await cancelAcp();
|
|
156
157
|
} catch (error) {
|
|
157
|
-
|
|
158
|
+
throw new Error(`Claude ACP cancellation failed: ${errorMessage(error)}`, {
|
|
159
|
+
cause: error
|
|
160
|
+
});
|
|
158
161
|
}
|
|
159
162
|
return;
|
|
160
163
|
}
|
|
161
|
-
child
|
|
164
|
+
if (child) {
|
|
165
|
+
await terminateSubprocess(child);
|
|
166
|
+
}
|
|
162
167
|
}
|
|
163
168
|
});
|
|
164
169
|
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
unsupportedFeature,
|
|
13
13
|
type BackendApprovalPolicy,
|
|
14
14
|
type BackendSandboxMode,
|
|
15
|
+
type CodexReasoningEffort,
|
|
15
16
|
type RuntimeError,
|
|
16
17
|
type Usage
|
|
17
18
|
} from "../model/index.ts";
|
|
@@ -47,6 +48,7 @@ export type CodexParseResult = ConversationCapture<"codex">;
|
|
|
47
48
|
|
|
48
49
|
export interface CodexExecArgs {
|
|
49
50
|
readonly model?: string;
|
|
51
|
+
readonly reasoningEffort?: CodexReasoningEffort;
|
|
50
52
|
readonly approvalPolicy?: BackendApprovalPolicy;
|
|
51
53
|
readonly sandbox?: BackendSandboxMode;
|
|
52
54
|
readonly readOnly?: boolean;
|
|
@@ -64,6 +66,9 @@ export function codexExecJsonlArgs(args: CodexExecArgs = {}): readonly string[]
|
|
|
64
66
|
"--json",
|
|
65
67
|
...(args.ignoreUserConfig ? ["--ignore-user-config"] : []),
|
|
66
68
|
...(args.model ? ["--model", args.model] : []),
|
|
69
|
+
...(args.reasoningEffort
|
|
70
|
+
? ["-c", `model_reasoning_effort="${args.reasoningEffort}"`]
|
|
71
|
+
: []),
|
|
67
72
|
...(args.approvalPolicy ? ["-c", `approval_policy="${args.approvalPolicy}"`] : []),
|
|
68
73
|
...(args.mcpServerUrl ? ["-c", `mcp_servers.orcats.url=${JSON.stringify(args.mcpServerUrl)}`] : []),
|
|
69
74
|
...(args.outputSchemaPath ? ["--output-schema", args.outputSchemaPath] : [])
|
|
@@ -27,7 +27,8 @@ import {
|
|
|
27
27
|
jsonSchemaFromZod,
|
|
28
28
|
type BackendApprovalPolicy,
|
|
29
29
|
type BackendConfig,
|
|
30
|
-
type BackendSandboxMode
|
|
30
|
+
type BackendSandboxMode,
|
|
31
|
+
type CodexReasoningEffort
|
|
31
32
|
} from "../model/index.ts";
|
|
32
33
|
|
|
33
34
|
export interface CodexBackendOptions
|
|
@@ -52,6 +53,7 @@ export type CodexProcessSpawner = SubprocessSpawner;
|
|
|
52
53
|
|
|
53
54
|
export interface ResolvedCodexConfig<Output> {
|
|
54
55
|
model?: string;
|
|
56
|
+
reasoningEffort?: CodexReasoningEffort;
|
|
55
57
|
systemPrompt?: string;
|
|
56
58
|
approvalPolicy?: BackendApprovalPolicy;
|
|
57
59
|
sandbox?: BackendSandboxMode;
|
|
@@ -98,9 +100,16 @@ export async function runCodexConversation<Output>(
|
|
|
98
100
|
);
|
|
99
101
|
}
|
|
100
102
|
|
|
103
|
+
if (conversation.signal.aborted) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
101
107
|
const args = codexExecJsonlArgs({
|
|
102
108
|
prompt: composeBackendPrompt(request.prompt, config),
|
|
103
109
|
...(config.model === undefined ? {} : { model: config.model }),
|
|
110
|
+
...(config.reasoningEffort === undefined
|
|
111
|
+
? {}
|
|
112
|
+
: { reasoningEffort: config.reasoningEffort }),
|
|
104
113
|
...(config.approvalPolicy === undefined ? {} : { approvalPolicy: config.approvalPolicy }),
|
|
105
114
|
...(config.sandbox === undefined ? {} : { sandbox: config.sandbox }),
|
|
106
115
|
...(config.readOnly === undefined ? {} : { readOnly: config.readOnly }),
|
|
@@ -150,6 +159,11 @@ export function resolveCodexConfig<Output>(
|
|
|
150
159
|
const config: ResolvedCodexConfig<Output> = {};
|
|
151
160
|
const model = requestConfig?.model ?? optionConfig?.model ?? options.model;
|
|
152
161
|
if (model !== undefined) config.model = model;
|
|
162
|
+
const reasoningEffort =
|
|
163
|
+
requestConfig?.reasoningEffort ??
|
|
164
|
+
optionConfig?.reasoningEffort ??
|
|
165
|
+
options.reasoningEffort;
|
|
166
|
+
if (reasoningEffort !== undefined) config.reasoningEffort = reasoningEffort;
|
|
153
167
|
const systemPrompt = requestConfig?.systemPrompt ?? optionConfig?.systemPrompt;
|
|
154
168
|
if (systemPrompt !== undefined) config.systemPrompt = systemPrompt;
|
|
155
169
|
const approvalPolicy =
|
package/src/backends/codex.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
type CodexProcess
|
|
12
12
|
} from "./codex-run.ts";
|
|
13
13
|
import { StreamConversation } from "../conversation/index.ts";
|
|
14
|
+
import { terminateSubprocess } from "./subprocess-termination.ts";
|
|
14
15
|
|
|
15
16
|
export type {
|
|
16
17
|
CodexBackendOptions,
|
|
@@ -34,7 +35,9 @@ export function codex(options: CodexBackendOptions = {}): LlmBackend<"codex"> {
|
|
|
34
35
|
await cancelAcp();
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
37
|
-
child
|
|
38
|
+
if (child) {
|
|
39
|
+
await terminateSubprocess(child);
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
42
|
});
|
|
40
43
|
|
package/src/backends/pi-run.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
type SubprocessProcess,
|
|
11
11
|
type SubprocessSpawner
|
|
12
12
|
} from "./subprocess-run.ts";
|
|
13
|
+
import { terminateSubprocess } from "./subprocess-termination.ts";
|
|
13
14
|
import type { AutonomousRequest, LlmBackend } from "./types.ts";
|
|
14
15
|
import { StreamConversation } from "../conversation/index.ts";
|
|
15
16
|
import { backendFailed, type BackendConfig } from "../model/index.ts";
|
|
@@ -137,12 +138,17 @@ export function pi(options: PiBackendOptions = {}): LlmBackend<"pi"> {
|
|
|
137
138
|
backend: "pi",
|
|
138
139
|
capacity: options.capacity ?? 256,
|
|
139
140
|
canAskUser: false,
|
|
140
|
-
onCancel: () => {
|
|
141
|
-
child
|
|
141
|
+
onCancel: async () => {
|
|
142
|
+
if (child) {
|
|
143
|
+
await terminateSubprocess(child);
|
|
144
|
+
}
|
|
142
145
|
}
|
|
143
146
|
});
|
|
144
147
|
|
|
145
148
|
queueMicrotask(() => {
|
|
149
|
+
if (conversation.signal.aborted) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
146
152
|
void runPiConversation(request, options, conversation, (process) => {
|
|
147
153
|
child = process;
|
|
148
154
|
});
|
package/src/backends/select.ts
CHANGED
|
@@ -5,7 +5,10 @@ import { opencode } from "./opencode-run.ts";
|
|
|
5
5
|
import { pi } from "./pi-run.ts";
|
|
6
6
|
import type { LlmBackend } from "./types.ts";
|
|
7
7
|
|
|
8
|
-
export type PortableBackendConfig = Omit<
|
|
8
|
+
export type PortableBackendConfig = Omit<
|
|
9
|
+
BackendConfig,
|
|
10
|
+
"reasoningEffort" | "resumeSessionId" | "structuredOutput"
|
|
11
|
+
>;
|
|
9
12
|
|
|
10
13
|
export interface SelectBackendOptions {
|
|
11
14
|
readonly default: BackendTag;
|