@blade-ai/orca 0.2.16 → 0.2.17-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 +3 -1
- package/package.json +15 -20
- package/vendor/aarch64-apple-darwin/bin/orca +0 -0
- package/bin/orca.js +0 -102
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ Set `INSTALL_DIR` to choose a destination and `ORCA_VERSION` to pin a version:
|
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
curl -fsSL https://orcaagent.dev/install.sh | \
|
|
36
|
-
INSTALL_DIR=/usr/local/bin ORCA_VERSION=0.2.
|
|
36
|
+
INSTALL_DIR=/usr/local/bin ORCA_VERSION=0.2.17 sh
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### GitHub Releases
|
|
@@ -222,6 +222,8 @@ TUI sessions support persistent goals with `/goal`. A goal is stored by session
|
|
|
222
222
|
|
|
223
223
|
While a goal is active, Orca automatically starts another turn after a successful turn and injects goal-mode instructions as pinned context. The loop stops when the goal is paused, cleared, blocked, completed, budget-limited, interrupted, or reaches the continuation cap. Goal turns expose `get_goal`, `create_goal`, and `update_goal`; the model can only use `update_goal` to mark the active goal `complete` or `blocked`, while `/goal` commands own pause, resume, edit, and clear.
|
|
224
224
|
|
|
225
|
+
The running timer for an active Goal is cumulative: Orca displays persisted time from completed Goal turns plus the elapsed time of the current turn. Time between turns, while the Goal is paused, or while Orca is closed is excluded. `/goal resume` preserves the elapsed time, tokens used, token budget, objective, and original creation timestamp instead of starting the Goal's accounting over.
|
|
226
|
+
|
|
225
227
|
Persistent goals require recorded history. If history is disabled with `--no-history`, `/goal` reports an error instead of creating ephemeral goal state.
|
|
226
228
|
|
|
227
229
|
## Tools
|
package/package.json
CHANGED
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@blade-ai/orca",
|
|
3
|
-
"version": "0.2.16",
|
|
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
|
],
|
|
18
8
|
"repository": {
|
|
19
9
|
"type": "git",
|
|
20
|
-
"url": "git+https://github.com/echoVic/blade-deepseek.git"
|
|
21
|
-
|
|
10
|
+
"url": "git+https://github.com/echoVic/blade-deepseek.git"
|
|
11
|
+
},
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=16"
|
|
22
14
|
},
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
15
|
+
"name": "@blade-ai/orca",
|
|
16
|
+
"version": "0.2.17-darwin-arm64",
|
|
17
|
+
"description": "Native Orca binary for darwin/arm64.",
|
|
18
|
+
"os": [
|
|
19
|
+
"darwin"
|
|
20
|
+
],
|
|
21
|
+
"cpu": [
|
|
22
|
+
"arm64"
|
|
23
|
+
]
|
|
29
24
|
}
|
|
Binary file
|
package/bin/orca.js
DELETED
|
@@ -1,102 +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
|
-
},
|
|
18
|
-
"darwin:x64": {
|
|
19
|
-
packageName: "@blade-ai/orca-darwin-x64",
|
|
20
|
-
targetTriple: "x86_64-apple-darwin"
|
|
21
|
-
},
|
|
22
|
-
"linux:arm64": {
|
|
23
|
-
packageName: "@blade-ai/orca-linux-arm64",
|
|
24
|
-
targetTriple: "aarch64-unknown-linux-gnu"
|
|
25
|
-
},
|
|
26
|
-
"linux:x64": {
|
|
27
|
-
packageName: "@blade-ai/orca-linux-x64",
|
|
28
|
-
targetTriple: "x86_64-unknown-linux-gnu"
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const target = TARGETS[`${process.platform}:${process.arch}`];
|
|
33
|
-
if (!target) {
|
|
34
|
-
throw new Error(`Unsupported platform: ${process.platform} (${process.arch})`);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function findExecutable() {
|
|
38
|
-
let vendorRoot;
|
|
39
|
-
try {
|
|
40
|
-
const packageJsonPath = require.resolve(`${target.packageName}/package.json`);
|
|
41
|
-
vendorRoot = path.join(path.dirname(packageJsonPath), "vendor");
|
|
42
|
-
} catch {
|
|
43
|
-
vendorRoot = path.join(__dirname, "..", "vendor");
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const executable = path.join(vendorRoot, target.targetTriple, "bin", "orca");
|
|
47
|
-
if (existsSync(executable)) {
|
|
48
|
-
return executable;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
throw new Error(
|
|
52
|
-
`Missing optional dependency ${target.packageName}. Reinstall with: npm install -g @blade-ai/orca`
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const binaryPath = findExecutable();
|
|
57
|
-
const env = {
|
|
58
|
-
...process.env,
|
|
59
|
-
ORCA_MANAGED_BY_NPM: "1",
|
|
60
|
-
ORCA_MANAGED_PACKAGE_ROOT: realpathSync(path.join(__dirname, "..")),
|
|
61
|
-
ORCA_NODE_PATH: process.env.ORCA_NODE_PATH || process.execPath
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
const child = spawn(binaryPath, process.argv.slice(2), {
|
|
65
|
-
stdio: "inherit",
|
|
66
|
-
env
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
child.on("error", (error) => {
|
|
70
|
-
console.error(error);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
const handledSignals = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
75
|
-
const forwardSignal = (signal) => {
|
|
76
|
-
if (!child.killed) {
|
|
77
|
-
child.kill(signal);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
for (const signal of handledSignals) {
|
|
82
|
-
process.on(signal, () => forwardSignal(signal));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const result = await new Promise((resolve) => {
|
|
86
|
-
child.on("exit", (code, signal) => {
|
|
87
|
-
if (signal) {
|
|
88
|
-
resolve({ type: "signal", signal });
|
|
89
|
-
} else {
|
|
90
|
-
resolve({ type: "code", exitCode: code ?? 1 });
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
if (result.type === "signal") {
|
|
96
|
-
for (const signal of handledSignals) {
|
|
97
|
-
process.removeAllListeners(signal);
|
|
98
|
-
}
|
|
99
|
-
process.kill(process.pid, result.signal);
|
|
100
|
-
} else {
|
|
101
|
-
process.exit(result.exitCode);
|
|
102
|
-
}
|