@qrafty-ai/opencode-kanban 0.0.6 → 0.0.7-linux-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 CHANGED
@@ -107,7 +107,13 @@ Only stable `vX.Y.Z` tags are supported (no alpha/pre-release variants).
107
107
  3. Add the **private key** as a GitHub Actions secret named `AUR_SSH_PRIVATE_KEY`:
108
108
  - Repository → Settings → Secrets and variables → Actions → New repository secret
109
109
  - Name: `AUR_SSH_PRIVATE_KEY`
110
- - Value: contents of `aur_deploy` (the private key file)
110
+ - Value: **base64-encoded** private key GitHub strips trailing newlines from secrets which corrupts PEM files; base64 avoids this:
111
+
112
+ ```bash
113
+ cat aur_deploy | base64 -w0
114
+ ```
115
+
116
+ Paste the single-line output as the secret value.
111
117
 
112
118
  4. Claim or create the `opencode-kanban` package on AUR (first publish does this automatically if the package doesn't exist yet).
113
119
 
package/package.json CHANGED
@@ -1,24 +1,22 @@
1
1
  {
2
2
  "name": "@qrafty-ai/opencode-kanban",
3
- "version": "0.0.6",
3
+ "version": "0.0.7-linux-x64",
4
4
  "description": "Terminal kanban board for managing OpenCode tmux sessions",
5
5
  "license": "MIT",
6
- "type": "module",
7
- "bin": {
8
- "opencode-kanban": "bin/opencode-kanban.js"
9
- },
10
- "engines": {
11
- "node": ">=18"
12
- },
6
+ "os": [
7
+ "linux"
8
+ ],
9
+ "cpu": [
10
+ "x64"
11
+ ],
13
12
  "files": [
14
- "bin"
13
+ "vendor"
15
14
  ],
16
15
  "repository": {
17
16
  "type": "git",
18
17
  "url": "https://github.com/qrafty-ai/opencode-kanban.git"
19
18
  },
20
- "optionalDependencies": {
21
- "@qrafty-ai/opencode-kanban-linux-x64": "npm:@qrafty-ai/opencode-kanban@0.0.6-linux-x64",
22
- "@qrafty-ai/opencode-kanban-darwin-arm64": "npm:@qrafty-ai/opencode-kanban@0.0.6-darwin-arm64"
19
+ "engines": {
20
+ "node": ">=18"
23
21
  }
24
22
  }
@@ -1,137 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { spawn } from "node:child_process";
4
- import { accessSync, chmodSync, constants, existsSync } 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 PLATFORM_PACKAGE_BY_TARGET = {
14
- "x86_64-unknown-linux-gnu": "@qrafty-ai/opencode-kanban-linux-x64",
15
- "aarch64-apple-darwin": "@qrafty-ai/opencode-kanban-darwin-arm64",
16
- };
17
-
18
- function detectTargetTriple() {
19
- const { platform, arch } = process;
20
-
21
- if (platform === "linux" && arch === "x64") {
22
- return "x86_64-unknown-linux-gnu";
23
- }
24
-
25
- if (platform === "darwin" && arch === "x64") {
26
- throw new Error("darwin-x64 is not supported. Please use macOS with Apple Silicon (arm64).");
27
- }
28
-
29
- if (platform === "darwin" && arch === "arm64") {
30
- return "aarch64-apple-darwin";
31
- }
32
-
33
- throw new Error(`Unsupported platform: ${platform} (${arch})`);
34
- }
35
-
36
- function detectPackageManager() {
37
- const userAgent = process.env.npm_config_user_agent || "";
38
- if (/\bbun\//.test(userAgent)) {
39
- return "bun";
40
- }
41
- return "npm";
42
- }
43
-
44
- const targetTriple = detectTargetTriple();
45
- const platformPackage = PLATFORM_PACKAGE_BY_TARGET[targetTriple];
46
- const binaryName = process.platform === "win32" ? "opencode-kanban.exe" : "opencode-kanban";
47
- const localVendorRoot = path.join(__dirname, "..", "vendor");
48
- const localBinaryPath = path.join(
49
- localVendorRoot,
50
- targetTriple,
51
- "opencode-kanban",
52
- binaryName,
53
- );
54
-
55
- let vendorRoot;
56
- try {
57
- const packageJsonPath = require.resolve(`${platformPackage}/package.json`);
58
- vendorRoot = path.join(path.dirname(packageJsonPath), "vendor");
59
- } catch {
60
- if (existsSync(localBinaryPath)) {
61
- vendorRoot = localVendorRoot;
62
- }
63
- }
64
-
65
- if (!vendorRoot) {
66
- const packageManager = detectPackageManager();
67
- const updateCommand =
68
- packageManager === "bun"
69
- ? "bun install -g @qrafty-ai/opencode-kanban@latest"
70
- : "npm install -g @qrafty-ai/opencode-kanban@latest";
71
- throw new Error(
72
- `Missing optional dependency ${platformPackage}. Reinstall opencode-kanban: ${updateCommand}`,
73
- );
74
- }
75
-
76
- const binaryPath = path.join(vendorRoot, targetTriple, "opencode-kanban", binaryName);
77
-
78
- function ensureExecutable(pathToBinary) {
79
- if (process.platform === "win32") {
80
- return;
81
- }
82
-
83
- try {
84
- accessSync(pathToBinary, constants.X_OK);
85
- return;
86
- } catch {
87
- }
88
-
89
- try {
90
- chmodSync(pathToBinary, 0o755);
91
- accessSync(pathToBinary, constants.X_OK);
92
- } catch (error) {
93
- throw new Error(`Binary is not executable: ${pathToBinary}`, { cause: error });
94
- }
95
- }
96
-
97
- ensureExecutable(binaryPath);
98
-
99
- const child = spawn(binaryPath, process.argv.slice(2), {
100
- stdio: "inherit",
101
- env: process.env,
102
- });
103
-
104
- child.on("error", (error) => {
105
- console.error(error);
106
- process.exit(1);
107
- });
108
-
109
- const forwardSignal = (signal) => {
110
- if (child.killed) {
111
- return;
112
- }
113
- try {
114
- child.kill(signal);
115
- } catch {
116
- }
117
- };
118
-
119
- ["SIGINT", "SIGTERM", "SIGHUP"].forEach((signal) => {
120
- process.on(signal, () => forwardSignal(signal));
121
- });
122
-
123
- const childResult = await new Promise((resolve) => {
124
- child.on("exit", (code, signal) => {
125
- if (signal) {
126
- resolve({ type: "signal", signal });
127
- return;
128
- }
129
- resolve({ type: "code", exitCode: code ?? 1 });
130
- });
131
- });
132
-
133
- if (childResult.type === "signal") {
134
- process.kill(process.pid, childResult.signal);
135
- } else {
136
- process.exit(childResult.exitCode);
137
- }