tandem-mode 0.0.1 → 0.1.1

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,20 +1,24 @@
1
1
  # Tandem Mode
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/tandem-mode.svg)](https://www.npmjs.com/package/tandem-mode)
4
+ [![license](https://img.shields.io/npm/l/tandem-mode.svg)](./LICENSE)
5
+ [![node](https://img.shields.io/node/v/tandem-mode.svg)](./package.json)
6
+ [![good first issues](https://img.shields.io/github/issues/zdrave08/Tandem-Mode/good%20first%20issue)](https://github.com/zdrave08/Tandem-Mode/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
7
+
3
8
  **English** | [Srpski](./README.sr.md)
4
9
 
5
10
  A terminal coding agent built specifically for the DeepSeek API — not a generic
6
11
  LLM harness with DeepSeek bolted on. Interactive REPL, planner/worker/reviewer
7
- orchestration, cache-aware prompt architecture, and Windows-first from the
8
- start.
12
+ orchestration, cache-aware prompt architecture, and first-class support for
13
+ Windows, macOS, and Linux.
9
14
 
10
15
  > **Independent open-source project. Not affiliated with or endorsed by
11
16
  > DeepSeek.**
12
17
 
13
18
  ## Status
14
19
 
15
- Early stage (M0–M3 of the [development plan](./deepseek-cli-development-plan.md)
16
- are done, M4 in progress). Usable today for real coding tasks against a local
17
- repo.
20
+ M0–M4 of the [development plan](./deepseek-cli-development-plan.md) are done.
21
+ Published on npm, usable today for real coding tasks against a local repo.
18
22
 
19
23
  First benchmark run is in — see [full results](./docs/benchmark-results.md).
20
24
  Headline: all three configurations (Pro-only, Flash-only, orchestration)
@@ -42,7 +46,8 @@ test. Reported as-is, not adjusted to fit expectations.
42
46
  cache actually hits. Measured live: cache-hit tokens grew call over call
43
47
  within a single `/plan` run.
44
48
  - **Vision** — `view_image` lets the agent look at a screenshot you point it
45
- to; `/paste` grabs an image straight from the Windows clipboard.
49
+ to; `/paste` grabs an image straight from the clipboard (Windows, macOS,
50
+ and Linux via X11/`xclip` or Wayland/`wl-clipboard`).
46
51
  - **Web search** — isolated calls to DeepSeek's Responses API when the agent
47
52
  needs something outside the repo (an error message, a library's docs).
48
53
  - **Session persistence** — every session is a JSONL file; `/resume` continues
@@ -59,12 +64,21 @@ test. Reported as-is, not adjusted to fit expectations.
59
64
  startup if you're currently in a peak-pricing window.
60
65
  - **ESC to interrupt** — cancels the in-flight call (and any running shell
61
66
  command) cleanly, keeping whatever was generated so far.
62
- - **Windows-first** — the shell tool runs PowerShell natively, file edits
63
- preserve the original CRLF/LF line ending style, paths are handled with
64
- `path.resolve` throughout.
67
+ - **Cross-platform** — the shell tool runs PowerShell natively on Windows and
68
+ `sh` on macOS/Linux, file edits preserve the original CRLF/LF line ending
69
+ style, paths are handled with `path.resolve` throughout.
65
70
 
66
71
  ## Quick start
67
72
 
73
+ ```bash
74
+ npm install -g tandem-mode
75
+ tandem # interactive REPL
76
+ tandem "explain what this repo does" --yes # one-shot
77
+ ```
78
+
79
+ Or from source (useful for contributing, or to track `main` instead of the
80
+ latest npm release):
81
+
68
82
  ```bash
69
83
  git clone https://github.com/zdrave08/Tandem-Mode.git
70
84
  cd Tandem-Mode
@@ -73,26 +87,18 @@ pnpm dev # interactive REPL
73
87
  pnpm dev "explain what this repo does" --yes # one-shot
74
88
  ```
75
89
 
76
- (Not yet published to npm — `npm install -g tandem-mode` is a launch-day step,
77
- not available today.)
78
-
79
- To try it as a real installed `tandem` command instead of `pnpm dev` (useful
80
- before publishing, or to use it in another project without cloning next to
81
- it):
82
-
83
- ```bash
84
- pnpm build
85
- npm link # registers `tandem` globally, pointing at this checkout
86
- tandem # now works from any directory
87
- ```
88
-
89
90
  On first run you'll be asked for a DeepSeek API key (get one at
90
91
  [platform.deepseek.com](https://platform.deepseek.com)) and a default
91
- model/reasoning effort. On Windows the key is stored DPAPI-encrypted
92
- (tied to your OS user account, same protection Credential Manager itself
93
- relies on) in `%LOCALAPPDATA%\TandemMode\credentials.dat` — never in a
94
- config file or log. Linux/macOS storage isn't implemented yet (`DEEPSEEK_API_KEY`
95
- works everywhere in the meantime) — see good-first-issues.
92
+ model/reasoning effort. The key is stored in your OS's own secure credential
93
+ store — never in a config file or log:
94
+
95
+ - **Windows** — DPAPI-encrypted (tied to your OS user account) in
96
+ `%LOCALAPPDATA%\TandemMode\credentials.dat`.
97
+ - **macOS** — the login Keychain, via the built-in `security` CLI.
98
+ - **Linux** — the Secret Service (gnome-keyring, KWallet, or similar), via
99
+ `secret-tool` (install `libsecret-tools` if it's missing).
100
+
101
+ `DEEPSEEK_API_KEY` works everywhere and always takes priority, for CI use.
96
102
 
97
103
  ## Usage
98
104
 
@@ -127,7 +133,7 @@ tandem "task" --model deepseek-v4-flash --effort low --budget 0.50 --yes
127
133
  | `/new` | Start a fresh session |
128
134
  | `/fork` | New session, carrying over the current history |
129
135
  | `/resume [id]` | Continue the latest (or a named) session |
130
- | `/paste [message]` | Send a Windows-clipboard image to the agent |
136
+ | `/paste [message]` | Send a clipboard image to the agent |
131
137
  | `/clear` | Clear the screen |
132
138
  | `/help` | This list |
133
139
  | `/exit` | Quit |
@@ -168,8 +174,8 @@ in the current directory) > **global** (`~/.tandem/config.json`).
168
174
  }
169
175
  ```
170
176
 
171
- The API key is never stored in these files — it lives DPAPI-encrypted on
172
- Windows (or `DEEPSEEK_API_KEY` env var, which takes priority, for CI use).
177
+ The API key is never stored in these files — it lives in the OS credential
178
+ store (or `DEEPSEEK_API_KEY` env var, which takes priority, for CI use).
173
179
 
174
180
  ## Development
175
181
 
package/README.sr.md CHANGED
@@ -1,19 +1,24 @@
1
1
  # Tandem Mode
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/tandem-mode.svg)](https://www.npmjs.com/package/tandem-mode)
4
+ [![license](https://img.shields.io/npm/l/tandem-mode.svg)](./LICENSE)
5
+ [![node](https://img.shields.io/node/v/tandem-mode.svg)](./package.json)
6
+ [![good first issues](https://img.shields.io/github/issues/zdrave08/Tandem-Mode/good%20first%20issue)](https://github.com/zdrave08/Tandem-Mode/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
7
+
3
8
  [English](./README.md) | **Srpski**
4
9
 
5
10
  Terminalski coding agent napravljen posebno za DeepSeek API — ne generički
6
11
  LLM harness u koji je DeepSeek naknadno ugurana. Interaktivni REPL,
7
12
  planner/worker/reviewer orkestracija, cache-aware arhitektura prompta, i
8
- Windows kao prioritet od prvog dana.
13
+ podjednaka podrška za Windows, macOS i Linux.
9
14
 
10
15
  > **Nezavisan open-source projekat. Nije povezan sa DeepSeek-om niti od
11
16
  > njega podržan.**
12
17
 
13
18
  ## Status
14
19
 
15
- Rana faza (M0–M3 iz [plana razvoja](./deepseek-cli-development-plan.md) su
16
- gotovi, M4 u toku). Upotrebljiv već danas za stvarne coding zadatke nad
20
+ M0–M4 iz [plana razvoja](./deepseek-cli-development-plan.md) su gotovi.
21
+ Objavljen na npm-u, upotrebljiv već danas za stvarne coding zadatke nad
17
22
  lokalnim repozitorijumom.
18
23
 
19
24
  Prvi benchmark je gotov — pun izveštaj u
@@ -44,7 +49,8 @@ Prijavljeno onako kako jeste, ne prilagođeno očekivanjima.
44
49
  DeepSeek-ov keš stvarno pogađa. Izmereno uživo: cache-hit tokeni su rasli
45
50
  iz poziva u poziv unutar jednog `/plan` pokretanja.
46
51
  - **Vision** — `view_image` omogućava agentu da pogleda screenshot na koji
47
- ga uputiš; `/paste` uzima sliku direktno iz Windows clipboard-a.
52
+ ga uputiš; `/paste` uzima sliku direktno iz clipboard-a (Windows, macOS,
53
+ i Linux preko X11/`xclip` ili Wayland/`wl-clipboard`).
48
54
  - **Web search** — izolovani pozivi ka DeepSeek Responses API-ju kad agentu
49
55
  treba nešto van repozitorijuma (error poruka, dokumentacija biblioteke).
50
56
  - **Perzistencija sesije** — svaka sesija je JSONL fajl; `/resume` nastavlja
@@ -60,12 +66,21 @@ Prijavljeno onako kako jeste, ne prilagođeno očekivanjima.
60
66
  startu ako si trenutno u peak periodu.
61
67
  - **ESC za prekid** — čisto prekida poziv u toku (i bilo koju shell komandu
62
68
  koja radi), čuvajući ono što je do tada generisano.
63
- - **Windows prioritet** — shell alat pokreće PowerShell nativno, izmene
64
- fajlova čuvaju originalni CRLF/LF stil, putanje se svuda tretiraju preko
65
- `path.resolve`.
69
+ - **Cross-platform** — shell alat pokreće PowerShell nativno na Windows-u i
70
+ `sh` na macOS/Linux-u, izmene fajlova čuvaju originalni CRLF/LF stil,
71
+ putanje se svuda tretiraju preko `path.resolve`.
66
72
 
67
73
  ## Brzi početak
68
74
 
75
+ ```bash
76
+ npm install -g tandem-mode
77
+ tandem # interaktivni REPL
78
+ tandem "objasni sta radi ovaj repo" --yes # jedan potez
79
+ ```
80
+
81
+ Ili iz izvornog koda (korisno za doprinose, ili da pratiš `main` umesto
82
+ poslednje npm verzije):
83
+
69
84
  ```bash
70
85
  git clone https://github.com/zdrave08/Tandem-Mode.git
71
86
  cd Tandem-Mode
@@ -74,26 +89,18 @@ pnpm dev # interaktivni REPL
74
89
  pnpm dev "objasni sta radi ovaj repo" --yes # jedan potez
75
90
  ```
76
91
 
77
- (Još nije objavljeno na npm-u — `npm install -g tandem-mode` je korak za
78
- dan lansiranja, danas nije dostupan.)
79
-
80
- Da probaš kao pravu instaliranu `tandem` komandu umesto `pnpm dev` (korisno
81
- pre objave, ili da koristiš alat u drugom projektu bez kloniranja pored
82
- njega):
83
-
84
- ```bash
85
- pnpm build
86
- npm link # registruje `tandem` globalno, pokazuje na ovaj checkout
87
- tandem # sad radi iz bilo kog direktorijuma
88
- ```
89
-
90
92
  Pri prvom pokretanju bićeš pitan za DeepSeek API ključ (napravi ga na
91
93
  [platform.deepseek.com](https://platform.deepseek.com)) i podrazumevani
92
- model/reasoning effort. Na Windows-u se ključ čuva DPAPI-šifrovan (vezan za
93
- tvoj OS nalog, ista zaštita na kojoj se zasniva i sam Credential Manager) u
94
- `%LOCALAPPDATA%\TandemMode\credentials.dat` — nikad u config fajlu ili logu.
95
- Linux/macOS čuvanje još nije implementirano (`DEEPSEEK_API_KEY` radi svuda
96
- u međuvremenu) — videti good-first-issues.
94
+ model/reasoning effort. Ključ se čuva u OS-ovom bezbednom skladištu
95
+ kredencijala — nikad u config fajlu ili logu:
96
+
97
+ - **Windows** — DPAPI-šifrovan (vezan za tvoj OS nalog) u
98
+ `%LOCALAPPDATA%\TandemMode\credentials.dat`.
99
+ - **macOS** — login Keychain, preko ugrađenog `security` CLI-ja.
100
+ - **Linux** — Secret Service (gnome-keyring, KWallet ili slično), preko
101
+ `secret-tool` (instaliraj `libsecret-tools` ako nedostaje).
102
+
103
+ `DEEPSEEK_API_KEY` radi svuda i uvek ima prioritet, za CI upotrebu.
97
104
 
98
105
  ## Upotreba
99
106
 
@@ -128,7 +135,7 @@ tandem "task" --model deepseek-v4-flash --effort low --budget 0.50 --yes
128
135
  | `/new` | Nova sesija |
129
136
  | `/fork` | Nova sesija sa kopijom trenutne istorije |
130
137
  | `/resume [id]` | Nastavi poslednju (ili navedenu) sesiju |
131
- | `/paste [poruka]` | Pošalji sliku iz Windows clipboard-a agentu |
138
+ | `/paste [poruka]` | Pošalji sliku iz clipboard-a agentu |
132
139
  | `/clear` | Očisti ekran |
133
140
  | `/help` | Ova lista |
134
141
  | `/exit` | Izlaz |
@@ -170,9 +177,9 @@ Slojevito: **sesija** (komande u REPL-u) > **projekat**
170
177
  }
171
178
  ```
172
179
 
173
- API ključ se nikad ne čuva u ovim fajlovima — živi DPAPI-šifrovan na
174
- Windows-u (ili u `DEEPSEEK_API_KEY` env promenljivoj, koja ima prioritet,
175
- za CI upotrebu).
180
+ API ključ se nikad ne čuva u ovim fajlovima — živi u OS-ovom skladištu
181
+ kredencijala (ili u `DEEPSEEK_API_KEY` env promenljivoj, koja ima
182
+ prioritet, za CI upotrebu).
176
183
 
177
184
  ## Razvoj
178
185
 
@@ -1,14 +1,8 @@
1
- import { execFile } from "node:child_process";
1
+ import { execFile, spawn } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
+ import { unlink } from "node:fs/promises";
3
4
  const execFileAsync = promisify(execFile);
4
- /**
5
- * Samo Windows za sada — Linux/macOS clipboard pristup ide u good-first-issues
6
- * (xclip/pngpaste), u duhu "Windows first-class" principa iz plana.
7
- */
8
- export async function saveClipboardImage(destPath) {
9
- if (process.platform !== "win32") {
10
- throw new Error("Clipboard paste slike je trenutno podržan samo na Windows-u.");
11
- }
5
+ async function saveClipboardImageWindows(destPath) {
12
6
  const escapedPath = destPath.replace(/'/g, "''");
13
7
  const script = `
14
8
  Add-Type -AssemblyName System.Windows.Forms
@@ -23,4 +17,98 @@ if ([System.Windows.Forms.Clipboard]::ContainsImage()) {
23
17
  const { stdout } = await execFileAsync("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script]);
24
18
  return stdout.trim() === "OK";
25
19
  }
20
+ /**
21
+ * Ne postoji ugrađen Node/OS API za sliku sa clipboard-a na macOS-u, ali
22
+ * AppleScript ume da upiše sirove podatke sa clipboard-a direktno u fajl —
23
+ * bez trećih alata (pngpaste i sl.). Aplikacije obično stave PNG na
24
+ * clipboard; screenshot alati i neki editori stave TIFF, pa se u tom
25
+ * slučaju konvertuje u PNG preko `sips` (takođe ugrađen u macOS).
26
+ */
27
+ async function saveClipboardImageMac(destPath) {
28
+ const escapedDest = destPath.replace(/"/g, '\\"');
29
+ const tmpTiff = `${destPath}.tmp.tiff`;
30
+ const escapedTmpTiff = tmpTiff.replace(/"/g, '\\"');
31
+ const script = `
32
+ try
33
+ set imgData to the clipboard as «class PNGf»
34
+ set fileRef to open for access (POSIX file "${escapedDest}") with write permission
35
+ set eof of fileRef to 0
36
+ write imgData to fileRef
37
+ close access fileRef
38
+ return "OK"
39
+ on error
40
+ try
41
+ set imgData to the clipboard as «class TIFF»
42
+ set fileRef to open for access (POSIX file "${escapedTmpTiff}") with write permission
43
+ set eof of fileRef to 0
44
+ write imgData to fileRef
45
+ close access fileRef
46
+ return "TIFF"
47
+ on error
48
+ return "NO_IMAGE"
49
+ end try
50
+ end try`;
51
+ const { stdout } = await execFileAsync("osascript", ["-e", script]);
52
+ const result = stdout.trim();
53
+ if (result === "NO_IMAGE")
54
+ return false;
55
+ if (result === "TIFF") {
56
+ await execFileAsync("sips", ["-s", "format", "png", tmpTiff, "--out", destPath]);
57
+ await unlink(tmpTiff).catch(() => { });
58
+ }
59
+ return true;
60
+ }
61
+ /** Čita binarni stdout komande; razlikuje "komanda ne postoji" od "nema šta da vrati". */
62
+ function readBinaryStdout(cmd, args) {
63
+ return new Promise((resolve) => {
64
+ const child = spawn(cmd, args);
65
+ const chunks = [];
66
+ child.stdout.on("data", (d) => chunks.push(d));
67
+ child.on("error", (err) => {
68
+ resolve(err.code === "ENOENT" ? { kind: "not-found" } : { kind: "empty" });
69
+ });
70
+ child.on("close", (code) => {
71
+ if (code !== 0 || chunks.length === 0)
72
+ resolve({ kind: "empty" });
73
+ else
74
+ resolve({ kind: "data", buf: Buffer.concat(chunks) });
75
+ });
76
+ });
77
+ }
78
+ /**
79
+ * Linux nema jedinstven clipboard API — bira se alat prema session tipu:
80
+ * `wl-paste` (wl-clipboard) na Wayland-u, `xclip` na X11. Nijedan nije
81
+ * garantovano instaliran; jasna greška upućuje korisnika koji paket da doda.
82
+ */
83
+ async function saveClipboardImageLinux(destPath) {
84
+ const isWayland = Boolean(process.env["WAYLAND_DISPLAY"]);
85
+ const cmd = isWayland ? "wl-paste" : "xclip";
86
+ const args = isWayland
87
+ ? ["--type", "image/png", "--no-newline"]
88
+ : ["-selection", "clipboard", "-t", "image/png", "-o"];
89
+ const result = await readBinaryStdout(cmd, args);
90
+ if (result.kind === "not-found") {
91
+ const hint = isWayland
92
+ ? "Instaliraj wl-clipboard (npr. sudo apt install wl-clipboard)."
93
+ : "Instaliraj xclip (npr. sudo apt install xclip).";
94
+ throw new Error(`Komanda "${cmd}" nije pronađena. ${hint}`);
95
+ }
96
+ if (result.kind === "empty")
97
+ return false;
98
+ const { writeFile } = await import("node:fs/promises");
99
+ await writeFile(destPath, result.buf);
100
+ return true;
101
+ }
102
+ export async function saveClipboardImage(destPath) {
103
+ switch (process.platform) {
104
+ case "win32":
105
+ return saveClipboardImageWindows(destPath);
106
+ case "darwin":
107
+ return saveClipboardImageMac(destPath);
108
+ case "linux":
109
+ return saveClipboardImageLinux(destPath);
110
+ default:
111
+ throw new Error(`Clipboard paste slike nije podržan na platformi "${process.platform}".`);
112
+ }
113
+ }
26
114
  //# sourceMappingURL=clipboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/agent/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG;;;;;eAKF,WAAW;;;;EAIxB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAChH,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/agent/clipboard.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -4,7 +4,8 @@ import { useEffect, useState } from "react";
4
4
  import { render, Text, Box, useApp } from "ink";
5
5
  import readline from "node:readline";
6
6
  import path from "node:path";
7
- import { mkdir } from "node:fs/promises";
7
+ import { fileURLToPath } from "node:url";
8
+ import { mkdir, readFile } from "node:fs/promises";
8
9
  import { resolveApiKey, resolveBaseUrl } from "./config/env.js";
9
10
  import { loadConfig } from "./config/store.js";
10
11
  import { DEFAULT_CONFIG } from "./config/schema.js";
@@ -74,7 +75,7 @@ function TurnView({ state, turn, askApproval, onDone, }) {
74
75
  break;
75
76
  case "usage": {
76
77
  const total = state.usage.totals();
77
- setUsageLine(`tokens: ${total.promptTokens} in (${total.promptCacheHitTokens} cached) / ${total.completionTokens} out · ~$${state.usage.estimatedCostUsd().toFixed(4)} · ${state.usage.callCount} poziva`);
78
+ setUsageLine(`tokens: ${total.promptTokens} in (${total.promptCacheHitTokens} cached) / ${total.completionTokens} out · ~$${state.usage.estimatedCostUsd().toFixed(4)} · ${state.usage.callCount} calls`);
78
79
  break;
79
80
  }
80
81
  case "final":
@@ -102,7 +103,7 @@ function TurnView({ state, turn, askApproval, onDone, }) {
102
103
  });
103
104
  // eslint-disable-next-line react-hooks/exhaustive-deps
104
105
  }, []);
105
- return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [reasoning.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "\u273B Razmi\u0161ljam\u2026" }), _jsx(Text, { dimColor: true, children: reasoning })] })), toolLog.map((t) => {
106
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [reasoning.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "\u273B Thinking\u2026" }), _jsx(Text, { dimColor: true, children: reasoning })] })), toolLog.map((t) => {
106
107
  const lines = t.output?.split("\n") ?? [];
107
108
  const preview = lines.slice(0, 3).join("\n");
108
109
  const more = lines.length > 3;
@@ -358,9 +359,19 @@ function parseArgv(argv) {
358
359
  parsed.maxReviewLoops = maxReviewLoops;
359
360
  return parsed;
360
361
  }
362
+ async function printVersion() {
363
+ const packageJsonPath = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "package.json");
364
+ const { version } = JSON.parse(await readFile(packageJsonPath, "utf8"));
365
+ console.log(version);
366
+ }
361
367
  async function main() {
368
+ const rawArgv = process.argv.slice(2);
369
+ if (rawArgv.includes("--version") || rawArgv.includes("-v")) {
370
+ await printVersion();
371
+ return;
372
+ }
362
373
  const cwd = process.cwd();
363
- const parsed = parseArgv(process.argv.slice(2));
374
+ const parsed = parseArgv(rawArgv);
364
375
  const config = await loadConfig(cwd);
365
376
  let apiKey = await resolveApiKey();
366
377
  if (!apiKey) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +1,58 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
+ const SERVICE_NAME = "TandemMode";
5
+ const ACCOUNT_NAME = os.userInfo().username;
4
6
  const CRED_PATH = path.join(os.homedir(), "AppData", "Local", "TandemMode", "credentials.dat");
5
7
  // Nije tajna — samo dodatni ulaz pomešan sa DPAPI ključem vezanim za OS nalog,
6
8
  // koji je stvarna zaštita.
7
9
  const ENTROPY = "tandem-mode-v1";
8
10
  /**
9
- * DPAPI-šifrovan fajl umesto punog Windows Credential Manager-a — isti
11
+ * Windows: DPAPI-šifrovan fajl umesto punog Windows Credential Manager-a — isti
10
12
  * mehanizam (samo ovaj OS nalog može dešifrovati), ali direktan .NET poziv
11
- * bez multi-platform auto-detekcije. `cross-keychain` je probana prva
12
- * (M2) i odbačena: 15-18s po pozivu na ovoj mašini čak i sa native
13
- * bindingom, jer njena detekcija backend-a proba sve platforme redom.
14
- * Linux/macOS ide u good-first-issues, isto obrazloženje kao clipboard.ts.
13
+ * bez multi-platform auto-detekcije.
14
+ * macOS: Keychain preko ugrađenog `security` CLI-ja.
15
+ * Linux: Secret Service (gnome-keyring/kwallet) preko `secret-tool` (libsecret).
15
16
  *
16
- * Ključ se ISKLJUČIVO prosleđuje kroz stdin, nikad kroz argumente komande —
17
- * argumenti su vidljivi u listi procesa (Task Manager i sl.) dok proces traje.
17
+ * `cross-keychain` je probana prva (M2) i odbačena: 15-18s po pozivu na
18
+ * ovoj mašini čak i sa native bindingom, jer njena detekcija backend-a
19
+ * proba sve platforme redom — otud direktni pozivi po platformi ovde.
20
+ *
21
+ * Ključ se na Windows-u i Linux-u prosleđuje ISKLJUČIVO kroz stdin, nikad
22
+ * kroz argumente komande — argumenti su vidljivi u listi procesa dok proces
23
+ * traje. `security` na macOS-u nema stdin-varijantu za `-w`, pa ključ tu
24
+ * kratkotrajno prolazi kroz argv; poznat i prihvaćen kompromis (isto važi
25
+ * za većinu CLI alata koji wrap-uju Keychain).
18
26
  */
19
- function assertWindows() {
20
- if (process.platform !== "win32") {
21
- throw new Error("Čuvanje API ključa je trenutno podržano samo na Windows-u.");
22
- }
27
+ function run(cmd, args, stdin) {
28
+ return new Promise((resolve, reject) => {
29
+ const child = spawn(cmd, args);
30
+ let stdout = "";
31
+ let stderr = "";
32
+ child.stdout.on("data", (d) => (stdout += d.toString("utf8")));
33
+ child.stderr.on("data", (d) => (stderr += d.toString("utf8")));
34
+ child.on("error", (err) => {
35
+ if (err.code === "ENOENT") {
36
+ reject(new Error(`Komanda "${cmd}" nije pronađena. ${MISSING_TOOL_HINT[cmd] ?? ""}`));
37
+ }
38
+ else {
39
+ reject(err);
40
+ }
41
+ });
42
+ child.on("close", (code) => {
43
+ if (code === 0)
44
+ resolve({ stdout: stdout.trim(), code });
45
+ else
46
+ reject(new Error(`${cmd} exited with code ${code}: ${stderr.trim()}`));
47
+ });
48
+ if (stdin !== undefined)
49
+ child.stdin.write(stdin, "utf8");
50
+ child.stdin.end();
51
+ });
23
52
  }
53
+ const MISSING_TOOL_HINT = {
54
+ "secret-tool": "Instaliraj libsecret-tools (Debian/Ubuntu: sudo apt install libsecret-tools) i pokreni gnome-keyring ili drugi Secret Service provider.",
55
+ };
24
56
  function runPs(script, stdin) {
25
57
  return new Promise((resolve, reject) => {
26
58
  const child = spawn("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script]);
@@ -40,8 +72,7 @@ function runPs(script, stdin) {
40
72
  child.stdin.end();
41
73
  });
42
74
  }
43
- export async function getStoredApiKey() {
44
- assertWindows();
75
+ async function getStoredApiKeyWindows() {
45
76
  const script = `
46
77
  Add-Type -AssemblyName System.Security
47
78
  $path = '${CRED_PATH.replace(/'/g, "''")}'
@@ -57,8 +88,7 @@ try {
57
88
  const result = await runPs(script);
58
89
  return result === "__NULL__" || result === "" ? null : result;
59
90
  }
60
- export async function setStoredApiKey(key) {
61
- assertWindows();
91
+ async function setStoredApiKeyWindows(key) {
62
92
  const dir = path.dirname(CRED_PATH);
63
93
  const script = `
64
94
  Add-Type -AssemblyName System.Security
@@ -70,11 +100,92 @@ $protected = [System.Security.Cryptography.ProtectedData]::Protect($bytes, $entr
70
100
  [System.IO.File]::WriteAllBytes('${CRED_PATH.replace(/'/g, "''")}', $protected)`;
71
101
  await runPs(script, key);
72
102
  }
73
- export async function deleteStoredApiKey() {
74
- assertWindows();
103
+ async function deleteStoredApiKeyWindows() {
75
104
  const script = `
76
105
  $path = '${CRED_PATH.replace(/'/g, "''")}'
77
106
  if (Test-Path $path) { Remove-Item $path -Force }`;
78
107
  await runPs(script);
79
108
  }
109
+ async function getStoredApiKeyMac() {
110
+ try {
111
+ const { stdout } = await run("security", ["find-generic-password", "-a", ACCOUNT_NAME, "-s", SERVICE_NAME, "-w"]);
112
+ return stdout === "" ? null : stdout;
113
+ }
114
+ catch {
115
+ return null;
116
+ }
117
+ }
118
+ async function setStoredApiKeyMac(key) {
119
+ await run("security", [
120
+ "add-generic-password",
121
+ "-a", ACCOUNT_NAME,
122
+ "-s", SERVICE_NAME,
123
+ "-w", key,
124
+ "-U",
125
+ ]);
126
+ }
127
+ async function deleteStoredApiKeyMac() {
128
+ try {
129
+ await run("security", ["delete-generic-password", "-a", ACCOUNT_NAME, "-s", SERVICE_NAME]);
130
+ }
131
+ catch {
132
+ // ništa nije bilo sačuvano — u redu je
133
+ }
134
+ }
135
+ async function getStoredApiKeyLinux() {
136
+ try {
137
+ const { stdout } = await run("secret-tool", ["lookup", "service", SERVICE_NAME, "account", ACCOUNT_NAME]);
138
+ return stdout === "" ? null : stdout;
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ }
144
+ async function setStoredApiKeyLinux(key) {
145
+ await run("secret-tool", ["store", "--label", "Tandem Mode API key", "service", SERVICE_NAME, "account", ACCOUNT_NAME], key);
146
+ }
147
+ async function deleteStoredApiKeyLinux() {
148
+ try {
149
+ await run("secret-tool", ["clear", "service", SERVICE_NAME, "account", ACCOUNT_NAME]);
150
+ }
151
+ catch {
152
+ // ništa nije bilo sačuvano — u redu je
153
+ }
154
+ }
155
+ export async function getStoredApiKey() {
156
+ switch (process.platform) {
157
+ case "win32":
158
+ return getStoredApiKeyWindows();
159
+ case "darwin":
160
+ return getStoredApiKeyMac();
161
+ case "linux":
162
+ return getStoredApiKeyLinux();
163
+ default:
164
+ throw new Error(`Čuvanje API ključa nije podržano na platformi "${process.platform}".`);
165
+ }
166
+ }
167
+ export async function setStoredApiKey(key) {
168
+ switch (process.platform) {
169
+ case "win32":
170
+ return setStoredApiKeyWindows(key);
171
+ case "darwin":
172
+ return setStoredApiKeyMac(key);
173
+ case "linux":
174
+ return setStoredApiKeyLinux(key);
175
+ default:
176
+ throw new Error(`Čuvanje API ključa nije podržano na platformi "${process.platform}".`);
177
+ }
178
+ }
179
+ export async function deleteStoredApiKey() {
180
+ switch (process.platform) {
181
+ case "win32":
182
+ return deleteStoredApiKeyWindows();
183
+ case "darwin":
184
+ return deleteStoredApiKeyMac();
185
+ case "linux":
186
+ return deleteStoredApiKeyLinux();
187
+ default:
188
+ throw new Error(`Čuvanje API ključa nije podržano na platformi "${process.platform}".`);
189
+ }
190
+ }
80
191
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tandem-mode",
3
- "version": "0.0.1",
3
+ "version": "0.1.1",
4
4
  "description": "DeepSeek coding CLI — planner/worker/reviewer agentic loop",
5
5
  "type": "module",
6
6
  "license": "MIT",