@blade-ai/orca 0.5.12 → 0.5.13-win32-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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # Orca
2
2
 
3
+ [![Latest release](https://img.shields.io/github/v/release/echoVic/orca-agent)](https://github.com/echoVic/orca-agent/releases/latest)
4
+ [![npm](https://img.shields.io/npm/v/@blade-ai/orca)](https://www.npmjs.com/package/@blade-ai/orca)
5
+ [![MIT license](https://img.shields.io/github/license/echoVic/orca-agent)](LICENSE)
6
+ [![Linux CI](https://img.shields.io/github/actions/workflow/status/echoVic/orca-agent/runtime-contract.yml?branch=main&label=linux)](https://github.com/echoVic/orca-agent/actions/workflows/runtime-contract.yml)
7
+ [![Windows CI](https://img.shields.io/github/actions/workflow/status/echoVic/orca-agent/windows-ci.yml?branch=main&label=windows)](https://github.com/echoVic/orca-agent/actions/workflows/windows-ci.yml)
8
+ [![GitHub stars](https://img.shields.io/github/stars/echoVic/orca-agent)](https://github.com/echoVic/orca-agent/stargazers)
9
+
3
10
  A DeepSeek-native coding agent for your terminal.
4
11
 
5
12
  Give Orca a task and it reads code, edits files, runs commands, verifies the
@@ -11,6 +18,8 @@ runs locally, and is MIT licensed.
11
18
 
12
19
  [Website](https://orcaagent.dev/) · [Changelog](https://orcaagent.dev/changelog/) · [Releases](https://github.com/echoVic/orca-agent/releases/latest) · [npm](https://www.npmjs.com/package/@blade-ai/orca)
13
20
 
21
+ ![Orca's first run: trust the workspace, then enter a DeepSeek API key](docs/demo.gif)
22
+
14
23
  ## Install
15
24
 
16
25
  ```bash
@@ -217,6 +226,18 @@ and normalize to `deepseek-flash`, including Flash pricing. DeepSeek thinking is
217
226
  enabled explicitly: set `reasoning_effort` to `low`, `high`, or `max` (the
218
227
  default) in `config.toml`, or use `ORCA_REASONING_EFFORT`.
219
228
 
229
+ Cost estimates follow DeepSeek's published prices, including the peak rate
230
+ that applies Monday to Friday from 01:00 to 04:00 and from 06:00 to 10:00 UTC
231
+ (Chinese public holidays are off-peak all day). Orca ships with the prices
232
+ current at release. At session startup, each process checks once whether cached
233
+ prices are missing or at least 24 hours old and, if needed, refreshes them from
234
+ [models.dev](https://models.dev) in the background. Set `refresh = false` under
235
+ `[pricing]` in `~/.orca/config.toml` to disable pricing refresh. To price a model
236
+ yourself, for example one served by another endpoint, set `input_cache_miss`,
237
+ `input_cache_hit`, and `output` (US dollars per million tokens) under
238
+ `[models."<name>".pricing]`; those prices apply at every hour. Both settings
239
+ are read only from the user configuration.
240
+
220
241
  JPEG, PNG, GIF, and WebP inputs are accepted from ACP clients and the TUI with
221
242
  every model selection. Flash consumes images directly; Pro uses Flash for
222
243
  task-aware visual analysis before continuing with Pro. In the TUI, use `Ctrl+V`
@@ -294,6 +315,16 @@ More detail:
294
315
  - QQ group: `472309526`
295
316
  - [Telegram](https://t.me/+11No1w5ZbTMyZTQ1)
296
317
 
318
+ ## Related projects
319
+
320
+ - [blade-code](https://github.com/echoVic/blade-code) is a TypeScript coding
321
+ agent with a CLI, a web UI, and a headless mode.
322
+ - [boss-skill](https://github.com/echoVic/boss-skill) turns one coding agent
323
+ into an auditable team workflow, from PM through DevOps.
324
+ - [blade-agent-sdk](https://github.com/echoVic/blade-agent-sdk) is a
325
+ session-first TypeScript SDK for multi-turn agents, streaming tools, MCP,
326
+ and subagents.
327
+
297
328
  ## Contributing
298
329
 
299
330
  Read [CONTRIBUTING.md](CONTRIBUTING.md) before contributing. Open an issue first
package/package.json CHANGED
@@ -1,33 +1,25 @@
1
1
  {
2
- "name": "@blade-ai/orca",
3
- "version": "0.5.12",
4
- "description": "Orca CLI: a DeepSeek-native coding agent.",
5
- "homepage": "https://orcaagent.dev/",
6
2
  "license": "MIT",
7
- "bin": {
8
- "orca": "bin/orca.js"
9
- },
10
- "type": "module",
11
- "engines": {
12
- "node": ">=16"
13
- },
3
+ "homepage": "https://orcaagent.dev/",
14
4
  "files": [
15
- "bin/orca.js",
16
- "bin/signals.js",
5
+ "vendor",
17
6
  "README.md",
18
7
  "LICENSE"
19
8
  ],
20
9
  "repository": {
21
10
  "type": "git",
22
- "url": "git+https://github.com/echoVic/orca-agent.git",
23
- "directory": "npm/orca"
11
+ "url": "git+https://github.com/echoVic/orca-agent.git"
12
+ },
13
+ "engines": {
14
+ "node": ">=16"
24
15
  },
25
- "optionalDependencies": {
26
- "@blade-ai/orca-darwin-arm64": "npm:@blade-ai/orca@0.5.12-darwin-arm64",
27
- "@blade-ai/orca-darwin-x64": "npm:@blade-ai/orca@0.5.12-darwin-x64",
28
- "@blade-ai/orca-linux-arm64": "npm:@blade-ai/orca@0.5.12-linux-arm64",
29
- "@blade-ai/orca-linux-x64": "npm:@blade-ai/orca@0.5.12-linux-x64",
30
- "@blade-ai/orca-win32-arm64": "npm:@blade-ai/orca@0.5.12-win32-arm64",
31
- "@blade-ai/orca-win32-x64": "npm:@blade-ai/orca@0.5.12-win32-x64"
32
- }
16
+ "name": "@blade-ai/orca",
17
+ "version": "0.5.13-win32-arm64",
18
+ "description": "Native Orca binary for win32/arm64.",
19
+ "os": [
20
+ "win32"
21
+ ],
22
+ "cpu": [
23
+ "arm64"
24
+ ]
33
25
  }
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/vendor/aarch64-pc-windows-msvc/bin/orca.exe
3
+ size: 54856704 bytes
4
+ sha256: 8280360c77c5ae957c6b920b365e353ec40ce3a6dda38a3e30949919deace2fc
package/bin/orca.js DELETED
@@ -1,124 +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, pathToFileURL } 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
- // Run through npm's `.bin` link with `node --preserve-symlinks-main`, as the
14
- // release smoke runs it, this module's own URL is the link's: a module beside
15
- // it is found from the real file's directory, not the link's.
16
- const { signalDispositions } = await import(
17
- pathToFileURL(path.join(path.dirname(realpathSync(__filename)), "signals.js")).href
18
- );
19
-
20
- const TARGETS = {
21
- "darwin:arm64": {
22
- packageName: "@blade-ai/orca-darwin-arm64",
23
- targetTriple: "aarch64-apple-darwin",
24
- binaryName: "orca"
25
- },
26
- "darwin:x64": {
27
- packageName: "@blade-ai/orca-darwin-x64",
28
- targetTriple: "x86_64-apple-darwin",
29
- binaryName: "orca"
30
- },
31
- "linux:arm64": {
32
- packageName: "@blade-ai/orca-linux-arm64",
33
- targetTriple: "aarch64-unknown-linux-gnu",
34
- binaryName: "orca"
35
- },
36
- "linux:x64": {
37
- packageName: "@blade-ai/orca-linux-x64",
38
- targetTriple: "x86_64-unknown-linux-gnu",
39
- binaryName: "orca"
40
- },
41
- "win32:arm64": {
42
- packageName: "@blade-ai/orca-win32-arm64",
43
- targetTriple: "aarch64-pc-windows-msvc",
44
- binaryName: "orca.exe"
45
- },
46
- "win32:x64": {
47
- packageName: "@blade-ai/orca-win32-x64",
48
- targetTriple: "x86_64-pc-windows-msvc",
49
- binaryName: "orca.exe"
50
- }
51
- };
52
-
53
- const target = TARGETS[`${process.platform}:${process.arch}`];
54
- if (!target) {
55
- throw new Error(`Unsupported platform: ${process.platform} (${process.arch})`);
56
- }
57
-
58
- function findExecutable() {
59
- let vendorRoot;
60
- try {
61
- const packageJsonPath = require.resolve(`${target.packageName}/package.json`);
62
- vendorRoot = path.join(path.dirname(packageJsonPath), "vendor");
63
- } catch {
64
- vendorRoot = path.join(__dirname, "..", "vendor");
65
- }
66
-
67
- const executable = path.join(vendorRoot, target.targetTriple, "bin", target.binaryName);
68
- if (existsSync(executable)) {
69
- return executable;
70
- }
71
-
72
- throw new Error(
73
- `Missing optional dependency ${target.packageName}. Reinstall with: npm install -g @blade-ai/orca`
74
- );
75
- }
76
-
77
- const binaryPath = findExecutable();
78
- const env = {
79
- ...process.env,
80
- ORCA_MANAGED_BY_NPM: "1",
81
- ORCA_MANAGED_PACKAGE_ROOT: realpathSync(path.join(__dirname, "..")),
82
- ORCA_NODE_PATH: process.env.ORCA_NODE_PATH || process.execPath
83
- };
84
-
85
- const child = spawn(binaryPath, process.argv.slice(2), {
86
- stdio: "inherit",
87
- env
88
- });
89
-
90
- child.on("error", (error) => {
91
- console.error(error);
92
- process.exit(1);
93
- });
94
-
95
- const dispositions = signalDispositions(process.platform);
96
- const handledSignals = Object.keys(dispositions);
97
- const forwardSignal = (signal) => {
98
- if (!child.killed) {
99
- child.kill(signal);
100
- }
101
- };
102
-
103
- for (const signal of handledSignals) {
104
- process.on(signal, dispositions[signal] === "forward" ? () => forwardSignal(signal) : () => {});
105
- }
106
-
107
- const result = await new Promise((resolve) => {
108
- child.on("exit", (code, signal) => {
109
- if (signal) {
110
- resolve({ type: "signal", signal });
111
- } else {
112
- resolve({ type: "code", exitCode: code ?? 1 });
113
- }
114
- });
115
- });
116
-
117
- if (result.type === "signal") {
118
- for (const signal of handledSignals) {
119
- process.removeAllListeners(signal);
120
- }
121
- process.kill(process.pid, result.signal);
122
- } else {
123
- process.exit(result.exitCode);
124
- }
package/bin/signals.js DELETED
@@ -1,14 +0,0 @@
1
- // What the launcher does with each signal it takes over while the native
2
- // binary runs, on `platform` (a `process.platform` value): "forward" passes
3
- // the signal on to the binary, "ignore" only keeps it from ending the launcher.
4
- //
5
- // On Windows child.kill() is TerminateProcess whatever the signal, which would
6
- // end orca.exe before it can stop its run and exit with 130. Ctrl+C is left to
7
- // the console, which delivers it to orca.exe too, as it shares the launcher's
8
- // console; the launcher stays up and exits with orca.exe's code.
9
- export function signalDispositions(platform) {
10
- if (platform === "win32") {
11
- return { SIGINT: "ignore", SIGTERM: "forward" };
12
- }
13
- return { SIGINT: "forward", SIGTERM: "forward", SIGHUP: "forward" };
14
- }