@blade-ai/orca 0.4.7 → 0.4.8-darwin-arm64
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 +15 -5
- package/package.json +15 -22
- package/vendor/aarch64-apple-darwin/bin/orca +0 -0
- package/bin/orca.js +0 -118
package/README.md
CHANGED
|
@@ -73,11 +73,14 @@ compatibility alias for `/new`. `Ctrl+L` clears only the displayed transcript
|
|
|
73
73
|
and terminal scrollback, keeping the current conversation context. On exit,
|
|
74
74
|
Orca prints the exact `orca --resume <SESSION_ID>` command for the session.
|
|
75
75
|
|
|
76
|
-
Use `/plan` for read-only planning, `/goal` for a persistent objective,
|
|
77
|
-
`/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
Use `/plan` for read-only planning, `/goal` for a persistent objective, and
|
|
77
|
+
`/tasks` for the unified workspace containing subagents, background commands,
|
|
78
|
+
monitors, and workflow children. `/agents` is an alias for `/tasks`, while
|
|
79
|
+
`/workflows` keeps the workflow-specific run tree. Use `/trust` to manage the
|
|
80
|
+
current folder's sandbox permissions. Automatic project memory is enabled for
|
|
81
|
+
recorded sessions by default; use `/remember` for explicit user or project
|
|
82
|
+
facts. See [Memory](docs/memory.md) for capture, recall, storage, privacy, and
|
|
83
|
+
deletion.
|
|
81
84
|
|
|
82
85
|
## What it does
|
|
83
86
|
|
|
@@ -103,6 +106,10 @@ by default; use `/remember` for explicit user or project facts. See
|
|
|
103
106
|
a new prompt to the same durable child conversation. Task/status output on
|
|
104
107
|
TUI, ACP, JSONL, and headless surfaces includes the current attempt,
|
|
105
108
|
checkpoint, resumable, and indeterminate state.
|
|
109
|
+
- Keeps up to four active child summaries visible in the conversation and up to
|
|
110
|
+
eight durable activity entries per child. `/tasks` opens live transcripts and
|
|
111
|
+
exposes only controls the selected child can safely perform: stop, resume,
|
|
112
|
+
retry, or a revision-fenced follow-up.
|
|
106
113
|
- Learns a bounded set of durable project facts after successfully committed
|
|
107
114
|
turns and retrieves only prompt-relevant facts on later turns.
|
|
108
115
|
- Runs with no implicit turn ceiling; optional `[budget]` limits
|
|
@@ -166,6 +173,9 @@ More detail:
|
|
|
166
173
|
status.
|
|
167
174
|
- Cancelling a foreground turn also stops the subagent task tree it owns;
|
|
168
175
|
unrelated detached work is left alone.
|
|
176
|
+
- Escape-driven cancellation commits one terminal child state and ignores late
|
|
177
|
+
activity from the cancelled attempt, so a stopped subagent cannot flood the
|
|
178
|
+
terminal while its parent returns to an interactive prompt.
|
|
169
179
|
- Continuation recovery is deliberately fail-closed. Orca restores only a
|
|
170
180
|
digest-verified conversation checkpoint, never a Rust future or process
|
|
171
181
|
stack. A tool admitted with unknown external side effects makes the
|
package/package.json
CHANGED
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@blade-ai/orca",
|
|
3
|
-
"version": "0.4.7",
|
|
4
|
-
"description": "Orca CLI: a DeepSeek-native coding agent.",
|
|
5
|
-
"homepage": "https://orcaagent.dev/",
|
|
6
2
|
"license": "MIT",
|
|
7
|
-
"
|
|
8
|
-
"orca": "bin/orca.js"
|
|
9
|
-
},
|
|
10
|
-
"type": "module",
|
|
11
|
-
"engines": {
|
|
12
|
-
"node": ">=16"
|
|
13
|
-
},
|
|
3
|
+
"homepage": "https://orcaagent.dev/",
|
|
14
4
|
"files": [
|
|
15
|
-
"
|
|
5
|
+
"vendor",
|
|
16
6
|
"README.md",
|
|
17
7
|
"LICENSE"
|
|
18
8
|
],
|
|
19
9
|
"repository": {
|
|
20
10
|
"type": "git",
|
|
21
|
-
"url": "git+https://github.com/echoVic/
|
|
22
|
-
|
|
11
|
+
"url": "git+https://github.com/echoVic/blade-deepseek.git"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=16"
|
|
23
15
|
},
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
16
|
+
"name": "@blade-ai/orca",
|
|
17
|
+
"version": "0.4.8-darwin-arm64",
|
|
18
|
+
"description": "Native Orca binary for darwin/arm64.",
|
|
19
|
+
"os": [
|
|
20
|
+
"darwin"
|
|
21
|
+
],
|
|
22
|
+
"cpu": [
|
|
23
|
+
"arm64"
|
|
24
|
+
]
|
|
32
25
|
}
|
|
Binary file
|
package/bin/orca.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { spawn } from "node:child_process";
|
|
4
|
-
import { existsSync, realpathSync } from "node:fs";
|
|
5
|
-
import { createRequire } from "node:module";
|
|
6
|
-
import path from "node:path";
|
|
7
|
-
import { fileURLToPath } from "node:url";
|
|
8
|
-
|
|
9
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
-
const __dirname = path.dirname(__filename);
|
|
11
|
-
const require = createRequire(import.meta.url);
|
|
12
|
-
|
|
13
|
-
const TARGETS = {
|
|
14
|
-
"darwin:arm64": {
|
|
15
|
-
packageName: "@blade-ai/orca-darwin-arm64",
|
|
16
|
-
targetTriple: "aarch64-apple-darwin",
|
|
17
|
-
binaryName: "orca"
|
|
18
|
-
},
|
|
19
|
-
"darwin:x64": {
|
|
20
|
-
packageName: "@blade-ai/orca-darwin-x64",
|
|
21
|
-
targetTriple: "x86_64-apple-darwin",
|
|
22
|
-
binaryName: "orca"
|
|
23
|
-
},
|
|
24
|
-
"linux:arm64": {
|
|
25
|
-
packageName: "@blade-ai/orca-linux-arm64",
|
|
26
|
-
targetTriple: "aarch64-unknown-linux-gnu",
|
|
27
|
-
binaryName: "orca"
|
|
28
|
-
},
|
|
29
|
-
"linux:x64": {
|
|
30
|
-
packageName: "@blade-ai/orca-linux-x64",
|
|
31
|
-
targetTriple: "x86_64-unknown-linux-gnu",
|
|
32
|
-
binaryName: "orca"
|
|
33
|
-
},
|
|
34
|
-
"win32:arm64": {
|
|
35
|
-
packageName: "@blade-ai/orca-win32-arm64",
|
|
36
|
-
targetTriple: "aarch64-pc-windows-msvc",
|
|
37
|
-
binaryName: "orca.exe"
|
|
38
|
-
},
|
|
39
|
-
"win32:x64": {
|
|
40
|
-
packageName: "@blade-ai/orca-win32-x64",
|
|
41
|
-
targetTriple: "x86_64-pc-windows-msvc",
|
|
42
|
-
binaryName: "orca.exe"
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const target = TARGETS[`${process.platform}:${process.arch}`];
|
|
47
|
-
if (!target) {
|
|
48
|
-
throw new Error(`Unsupported platform: ${process.platform} (${process.arch})`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function findExecutable() {
|
|
52
|
-
let vendorRoot;
|
|
53
|
-
try {
|
|
54
|
-
const packageJsonPath = require.resolve(`${target.packageName}/package.json`);
|
|
55
|
-
vendorRoot = path.join(path.dirname(packageJsonPath), "vendor");
|
|
56
|
-
} catch {
|
|
57
|
-
vendorRoot = path.join(__dirname, "..", "vendor");
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const executable = path.join(vendorRoot, target.targetTriple, "bin", target.binaryName);
|
|
61
|
-
if (existsSync(executable)) {
|
|
62
|
-
return executable;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
throw new Error(
|
|
66
|
-
`Missing optional dependency ${target.packageName}. Reinstall with: npm install -g @blade-ai/orca`
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const binaryPath = findExecutable();
|
|
71
|
-
const env = {
|
|
72
|
-
...process.env,
|
|
73
|
-
ORCA_MANAGED_BY_NPM: "1",
|
|
74
|
-
ORCA_MANAGED_PACKAGE_ROOT: realpathSync(path.join(__dirname, "..")),
|
|
75
|
-
ORCA_NODE_PATH: process.env.ORCA_NODE_PATH || process.execPath
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const child = spawn(binaryPath, process.argv.slice(2), {
|
|
79
|
-
stdio: "inherit",
|
|
80
|
-
env
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
child.on("error", (error) => {
|
|
84
|
-
console.error(error);
|
|
85
|
-
process.exit(1);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
const handledSignals = process.platform === "win32"
|
|
89
|
-
? ["SIGINT", "SIGTERM"]
|
|
90
|
-
: ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
91
|
-
const forwardSignal = (signal) => {
|
|
92
|
-
if (!child.killed) {
|
|
93
|
-
child.kill(signal);
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
for (const signal of handledSignals) {
|
|
98
|
-
process.on(signal, () => forwardSignal(signal));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const result = await new Promise((resolve) => {
|
|
102
|
-
child.on("exit", (code, signal) => {
|
|
103
|
-
if (signal) {
|
|
104
|
-
resolve({ type: "signal", signal });
|
|
105
|
-
} else {
|
|
106
|
-
resolve({ type: "code", exitCode: code ?? 1 });
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
if (result.type === "signal") {
|
|
112
|
-
for (const signal of handledSignals) {
|
|
113
|
-
process.removeAllListeners(signal);
|
|
114
|
-
}
|
|
115
|
-
process.kill(process.pid, result.signal);
|
|
116
|
-
} else {
|
|
117
|
-
process.exit(result.exitCode);
|
|
118
|
-
}
|