@blade-ai/orca 0.2.36 → 0.2.43-darwin-x64
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 +24 -1
- package/package.json +15 -20
- package/vendor/x86_64-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.43 sh
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### GitHub Releases
|
|
@@ -45,6 +45,15 @@ Download the archive for your platform from the latest GitHub Release, extract i
|
|
|
45
45
|
- QQ group: `472309526`
|
|
46
46
|
- Telegram: https://t.me/+11No1w5ZbTMyZTQ1
|
|
47
47
|
|
|
48
|
+
## Contributing and Support
|
|
49
|
+
|
|
50
|
+
- Read [CONTRIBUTING.md](CONTRIBUTING.md) before contributing. Open an issue first for large or compatibility-sensitive changes.
|
|
51
|
+
- Report bugs with the [bug report form](https://github.com/echoVic/blade-deepseek/issues/new?template=bug_report.yml).
|
|
52
|
+
- Propose features with the [feature request form](https://github.com/echoVic/blade-deepseek/issues/new?template=feature_request.yml).
|
|
53
|
+
- Suggest documentation improvements with the [documentation form](https://github.com/echoVic/blade-deepseek/issues/new?template=documentation.yml).
|
|
54
|
+
- Use [SUPPORT.md](SUPPORT.md) for questions and help.
|
|
55
|
+
- Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
|
|
56
|
+
|
|
48
57
|
## Quick Start
|
|
49
58
|
|
|
50
59
|
```sh
|
|
@@ -118,6 +127,19 @@ api_key = "sk-..."
|
|
|
118
127
|
base_url = "https://api.deepseek.com"
|
|
119
128
|
```
|
|
120
129
|
|
|
130
|
+
Project-local `.orca/config.toml`, `AGENTS.md`, `.orca/rules`, project skills,
|
|
131
|
+
and named project workflows are loaded only after the folder is trusted. New
|
|
132
|
+
folders use a strict read-only, no-network default sandbox. Manage trust with:
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
orca trust show --cwd /path/to/project
|
|
136
|
+
orca trust add --cwd /path/to/project
|
|
137
|
+
orca trust remove --cwd /path/to/project
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The TUI exposes the same state through `/trust`, `/trust add`, and
|
|
141
|
+
`/trust remove`.
|
|
142
|
+
|
|
121
143
|
### Updates
|
|
122
144
|
|
|
123
145
|
When `update_check` is enabled, Orca checks for a newer release before opening the interactive TUI. If a newer release is available, Orca shows a startup prompt with `Update now`, `Skip`, and `Skip until next version`. Choosing `Update now` updates the currently running install: npm-managed launches run the npm upgrade command, while direct binary launches rerun the curl installer into the current executable's directory. Choosing either skip option continues into the TUI.
|
|
@@ -167,6 +189,7 @@ output_truncation = { mode = "tokens", limit = 2000 }
|
|
|
167
189
|
```sh
|
|
168
190
|
orca exec [options] <prompt>
|
|
169
191
|
orca --mode=server
|
|
192
|
+
orca trust [show|add|remove] --cwd <path>
|
|
170
193
|
```
|
|
171
194
|
|
|
172
195
|
For headless harnesses, `orca exec` also accepts prompt input from stdin:
|
package/package.json
CHANGED
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@blade-ai/orca",
|
|
3
|
-
"version": "0.2.36",
|
|
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/blade-deepseek.git"
|
|
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
|
-
|
|
16
|
+
"name": "@blade-ai/orca",
|
|
17
|
+
"version": "0.2.43-darwin-x64",
|
|
18
|
+
"description": "Native Orca binary for darwin/x64.",
|
|
19
|
+
"os": [
|
|
20
|
+
"darwin"
|
|
21
|
+
],
|
|
22
|
+
"cpu": [
|
|
23
|
+
"x64"
|
|
24
|
+
]
|
|
30
25
|
}
|
|
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
|
-
}
|