prompsit-cli 26.612.1400 → 26.612.1525
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 +2 -2
- package/assets/skills/prompsit-setup/SKILL.md +1 -1
- package/dist/runtime/clipboard.d.ts.map +1 -1
- package/dist/runtime/clipboard.js +8 -5
- package/dist/runtime/clipboard.js.map +1 -1
- package/package.json +4 -9
- package/dist/runtime/clipboard-win32.d.ts +0 -13
- package/dist/runtime/clipboard-win32.d.ts.map +0 -1
- package/dist/runtime/clipboard-win32.js +0 -132
- package/dist/runtime/clipboard-win32.js.map +0 -1
- package/scripts/check-node-version.cjs +0 -39
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ prompsit # Interactive REPL
|
|
|
23
23
|
> Run `prompsit` with no arguments to enter the **interactive REPL** with tab completion, command history, and bundled example files in `~/.prompsit/examples/`.
|
|
24
24
|
|
|
25
25
|
> [!IMPORTANT]
|
|
26
|
-
> Requires Node.js 22+. On Linux, use a Node version manager such as `nvm` or configure npm to use a user-owned prefix; do not use `sudo npm install -g`.
|
|
26
|
+
> Requires Node.js 22.19+. On Linux, use a Node version manager such as `nvm` or configure npm to use a user-owned prefix; do not use `sudo npm install -g`.
|
|
27
27
|
|
|
28
28
|
**Update:** `npm install -g prompsit-cli@latest`
|
|
29
29
|
**Uninstall:** `npm uninstall -g prompsit-cli`
|
|
@@ -141,7 +141,7 @@ Run `prompsit login` without arguments. The CLI starts the Google device-flow si
|
|
|
141
141
|
<details>
|
|
142
142
|
<summary><b>Linux install fails with EACCES?</b></summary>
|
|
143
143
|
|
|
144
|
-
This is usually an npm prefix permissions issue, not a Prompsit CLI issue. The preferred fix is to install Node.js 22+ with a version manager such as `nvm`, `fnm`, or Volta. If you use system Node/npm, configure a user-owned npm prefix:
|
|
144
|
+
This is usually an npm prefix permissions issue, not a Prompsit CLI issue. The preferred fix is to install Node.js 22.19+ with a version manager such as `nvm`, `fnm`, or Volta. If you use system Node/npm, configure a user-owned npm prefix:
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
147
|
mkdir -p ~/.local
|
|
@@ -60,7 +60,7 @@ prompsit login -a "EMAIL" -s "SECRET"
|
|
|
60
60
|
|
|
61
61
|
### Linux Install Notes
|
|
62
62
|
|
|
63
|
-
Prompsit CLI requires Node.js 22+. Prefer a Node version manager (`nvm`, `fnm`, or Volta). If a system Node/npm install raises `EACCES` on global install, configure a user-owned prefix and retry without sudo:
|
|
63
|
+
Prompsit CLI requires Node.js 22.19+. Prefer a Node version manager (`nvm`, `fnm`, or Volta). If a system Node/npm install raises `EACCES` on global install, configure a user-owned prefix and retry without sudo:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
mkdir -p ~/.local
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/runtime/clipboard.ts"],"names":[],"mappings":"AAyGA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAK7C;AAED,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAC5B;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACnB;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,CAAC;AAE5D;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA8B1E;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/runtime/clipboard.ts"],"names":[],"mappings":"AAyGA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAK7C;AAED,2DAA2D;AAC3D,MAAM,MAAM,oBAAoB,GAC5B;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACnB;IAAE,SAAS,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,CAAC;AAE5D;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA8B1E;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsB/D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBrE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// See API-502: Cross-platform clipboard access.
|
|
2
2
|
//
|
|
3
3
|
// Leaf module -- no internal repl/ imports.
|
|
4
|
-
// Windows:
|
|
4
|
+
// Windows: clip.exe (write) + powershell.exe Get-Clipboard (read).
|
|
5
5
|
// WSL: clip.exe (write) + powershell.exe Get-Clipboard (read).
|
|
6
6
|
// macOS: pbpaste / pbcopy.
|
|
7
7
|
// Linux: wl-paste / wl-copy (Wayland) → xclip → xsel (X11).
|
|
@@ -145,8 +145,11 @@ export async function probeSystemClipboard() {
|
|
|
145
145
|
export async function getClipboardText() {
|
|
146
146
|
try {
|
|
147
147
|
if (isWindowsPlatform()) {
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
return await runClipboardCommand("powershell.exe", [
|
|
149
|
+
"-NoProfile",
|
|
150
|
+
"-Command",
|
|
151
|
+
"Get-Clipboard",
|
|
152
|
+
]);
|
|
150
153
|
}
|
|
151
154
|
if (isWSL()) {
|
|
152
155
|
return await runClipboardCommand("powershell.exe", ["-NoProfile", "-c", "Get-Clipboard"]);
|
|
@@ -168,8 +171,8 @@ export async function getClipboardText() {
|
|
|
168
171
|
export async function setClipboardText(text) {
|
|
169
172
|
try {
|
|
170
173
|
if (isWindowsPlatform()) {
|
|
171
|
-
|
|
172
|
-
return
|
|
174
|
+
await runClipboardCommand("clip.exe", [], text);
|
|
175
|
+
return true;
|
|
173
176
|
}
|
|
174
177
|
if (isWSL()) {
|
|
175
178
|
await runClipboardCommand("clip.exe", [], text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/runtime/clipboard.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,4CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/runtime/clipboard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prompsit-cli",
|
|
3
|
-
"version": "26.612.
|
|
3
|
+
"version": "26.612.1525",
|
|
4
4
|
"description": "CLI for the Prompsit Translation API",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Prompsit Language Engineering, S.L.",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"type": "module",
|
|
24
24
|
"engines": {
|
|
25
|
-
"node": ">=22"
|
|
25
|
+
"node": ">=22.19.0"
|
|
26
26
|
},
|
|
27
27
|
"bin": {
|
|
28
28
|
"prompsit": "./dist/index.js"
|
|
@@ -30,14 +30,12 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist",
|
|
32
32
|
"examples",
|
|
33
|
-
"assets"
|
|
34
|
-
"scripts/check-node-version.cjs"
|
|
33
|
+
"assets"
|
|
35
34
|
],
|
|
36
35
|
"publishConfig": {
|
|
37
36
|
"access": "public"
|
|
38
37
|
},
|
|
39
38
|
"scripts": {
|
|
40
|
-
"preinstall": "node scripts/check-node-version.cjs",
|
|
41
39
|
"prepare": "node -e \"const p=require('path');const f=require('fs');const t=p.join('node_modules','.bin','tsc');f.existsSync(p.join('node_modules','typescript'))?require('child_process').execSync(t+' --build',{stdio:'inherit'}):void 0\"",
|
|
42
40
|
"build": "tsc --build",
|
|
43
41
|
"release": "npm version --no-git-tag-version \"$(date +%y.%m%d.%H%M)\" --allow-same-version && npm run build && npm publish",
|
|
@@ -61,7 +59,7 @@
|
|
|
61
59
|
},
|
|
62
60
|
"dependencies": {
|
|
63
61
|
"@commander-js/extra-typings": "^14.0.0",
|
|
64
|
-
"@earendil-works/pi-tui": "^0.
|
|
62
|
+
"@earendil-works/pi-tui": "^0.75.5",
|
|
65
63
|
"chalk": "^5.6.2",
|
|
66
64
|
"cli-table3": "^0.6.5",
|
|
67
65
|
"eventsource-client": "^1.2.0",
|
|
@@ -72,9 +70,6 @@
|
|
|
72
70
|
"smol-toml": "^1.6.0",
|
|
73
71
|
"zod": "^4.3.6"
|
|
74
72
|
},
|
|
75
|
-
"optionalDependencies": {
|
|
76
|
-
"koffi": "^2.15.1"
|
|
77
|
-
},
|
|
78
73
|
"devDependencies": {
|
|
79
74
|
"@eslint/js": "^10.0.1",
|
|
80
75
|
"@types/node": "^25.3.1",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Read text from system clipboard using Win32 API via koffi FFI.
|
|
3
|
-
* Returns `null` if koffi is unavailable (caller should fall back).
|
|
4
|
-
* Returns `""` if clipboard is empty or has no text format.
|
|
5
|
-
*/
|
|
6
|
-
export declare function readClipboardNative(): string | null;
|
|
7
|
-
/**
|
|
8
|
-
* Write text to system clipboard using Win32 API via koffi FFI.
|
|
9
|
-
* Returns `null` if koffi is unavailable (caller should fall back).
|
|
10
|
-
* Returns `true`/`false` for success/failure.
|
|
11
|
-
*/
|
|
12
|
-
export declare function writeClipboardNative(text: string): boolean | null;
|
|
13
|
-
//# sourceMappingURL=clipboard-win32.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-win32.d.ts","sourceRoot":"","sources":["../../src/runtime/clipboard-win32.ts"],"names":[],"mappings":"AAoFA;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAmBnD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CA+BjE"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
// Native Windows clipboard read/write via koffi FFI.
|
|
2
|
-
// Eliminates ~1000ms PowerShell startup overhead.
|
|
3
|
-
// Pattern: same as pi-tui's enableWindowsVTInput() in terminal.js —
|
|
4
|
-
// dynamic require("koffi"), lazy init, try/catch wrapper.
|
|
5
|
-
// Uses createRequire because the project is ESM-only.
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-unsafe-return */
|
|
7
|
-
import { createRequire } from "node:module";
|
|
8
|
-
let _initialized = false;
|
|
9
|
-
let _koffi = null;
|
|
10
|
-
// Shared
|
|
11
|
-
let _OpenClipboard = null;
|
|
12
|
-
let _CloseClipboard = null;
|
|
13
|
-
let _GlobalLock = null;
|
|
14
|
-
let _GlobalUnlock = null;
|
|
15
|
-
// Read
|
|
16
|
-
let _GetClipboardData = null;
|
|
17
|
-
// Write
|
|
18
|
-
let _EmptyClipboard = null;
|
|
19
|
-
let _SetClipboardData = null;
|
|
20
|
-
let _GlobalAlloc = null;
|
|
21
|
-
let _GlobalFree = null;
|
|
22
|
-
let _RtlMoveMemory = null;
|
|
23
|
-
const CF_UNICODETEXT = 13;
|
|
24
|
-
const GMEM_MOVEABLE = 0x00_02;
|
|
25
|
-
function init() {
|
|
26
|
-
if (_initialized)
|
|
27
|
-
return _OpenClipboard !== null;
|
|
28
|
-
_initialized = true;
|
|
29
|
-
try {
|
|
30
|
-
const esmRequire = createRequire(import.meta.url);
|
|
31
|
-
const koffi = esmRequire("koffi");
|
|
32
|
-
_koffi = koffi;
|
|
33
|
-
const user32 = koffi.load("user32.dll");
|
|
34
|
-
const kernel32 = koffi.load("kernel32.dll");
|
|
35
|
-
// Shared
|
|
36
|
-
_OpenClipboard = user32.func("bool __stdcall OpenClipboard(void *)");
|
|
37
|
-
_CloseClipboard = user32.func("bool __stdcall CloseClipboard()");
|
|
38
|
-
_GlobalLock = kernel32.func("void * __stdcall GlobalLock(void *)");
|
|
39
|
-
_GlobalUnlock = kernel32.func("bool __stdcall GlobalUnlock(void *)");
|
|
40
|
-
// Read
|
|
41
|
-
_GetClipboardData = user32.func("void * __stdcall GetClipboardData(uint32_t)");
|
|
42
|
-
// Write
|
|
43
|
-
_EmptyClipboard = user32.func("bool __stdcall EmptyClipboard()");
|
|
44
|
-
_SetClipboardData = user32.func("void * __stdcall SetClipboardData(uint32_t, void *)");
|
|
45
|
-
_GlobalAlloc = kernel32.func("void * __stdcall GlobalAlloc(uint32_t, size_t)");
|
|
46
|
-
_GlobalFree = kernel32.func("void * __stdcall GlobalFree(void *)");
|
|
47
|
-
_RtlMoveMemory = kernel32.func("void __stdcall RtlMoveMemory(void *, const void *, size_t)");
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/** Guard: all FFI functions loaded. */
|
|
55
|
-
function ready() {
|
|
56
|
-
return !!(init() &&
|
|
57
|
-
_koffi &&
|
|
58
|
-
_OpenClipboard &&
|
|
59
|
-
_CloseClipboard &&
|
|
60
|
-
_GlobalLock &&
|
|
61
|
-
_GlobalUnlock &&
|
|
62
|
-
_GetClipboardData &&
|
|
63
|
-
_EmptyClipboard &&
|
|
64
|
-
_SetClipboardData &&
|
|
65
|
-
_GlobalAlloc &&
|
|
66
|
-
_GlobalFree &&
|
|
67
|
-
_RtlMoveMemory);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Read text from system clipboard using Win32 API via koffi FFI.
|
|
71
|
-
* Returns `null` if koffi is unavailable (caller should fall back).
|
|
72
|
-
* Returns `""` if clipboard is empty or has no text format.
|
|
73
|
-
*/
|
|
74
|
-
export function readClipboardNative() {
|
|
75
|
-
if (!ready())
|
|
76
|
-
return null;
|
|
77
|
-
if (!_OpenClipboard(null))
|
|
78
|
-
return null;
|
|
79
|
-
try {
|
|
80
|
-
const hData = _GetClipboardData(CF_UNICODETEXT);
|
|
81
|
-
if (!hData)
|
|
82
|
-
return "";
|
|
83
|
-
const ptr = _GlobalLock(hData);
|
|
84
|
-
if (!ptr)
|
|
85
|
-
return "";
|
|
86
|
-
try {
|
|
87
|
-
return _koffi.decode(ptr, "char16", -1);
|
|
88
|
-
}
|
|
89
|
-
finally {
|
|
90
|
-
_GlobalUnlock(hData);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
finally {
|
|
94
|
-
_CloseClipboard();
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Write text to system clipboard using Win32 API via koffi FFI.
|
|
99
|
-
* Returns `null` if koffi is unavailable (caller should fall back).
|
|
100
|
-
* Returns `true`/`false` for success/failure.
|
|
101
|
-
*/
|
|
102
|
-
export function writeClipboardNative(text) {
|
|
103
|
-
if (!ready())
|
|
104
|
-
return null;
|
|
105
|
-
const buf = Buffer.from(text + "\0", "utf16le");
|
|
106
|
-
if (!_OpenClipboard(null))
|
|
107
|
-
return null;
|
|
108
|
-
try {
|
|
109
|
-
_EmptyClipboard();
|
|
110
|
-
const hMem = _GlobalAlloc(GMEM_MOVEABLE, buf.length);
|
|
111
|
-
if (!hMem)
|
|
112
|
-
return false;
|
|
113
|
-
const ptr = _GlobalLock(hMem);
|
|
114
|
-
if (!ptr) {
|
|
115
|
-
_GlobalFree(hMem);
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
_RtlMoveMemory(ptr, buf, buf.length);
|
|
119
|
-
_GlobalUnlock(hMem);
|
|
120
|
-
const result = _SetClipboardData(CF_UNICODETEXT, hMem);
|
|
121
|
-
if (!result) {
|
|
122
|
-
_GlobalFree(hMem);
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
// SetClipboardData success → clipboard owns the memory, do NOT GlobalFree
|
|
126
|
-
return true;
|
|
127
|
-
}
|
|
128
|
-
finally {
|
|
129
|
-
_CloseClipboard();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=clipboard-win32.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-win32.js","sourceRoot":"","sources":["../../src/runtime/clipboard-win32.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// Preinstall gate: abort npm install if Node.js version is too old.
|
|
2
|
-
// Must be plain CJS with var-only syntax to parse on ANY Node.js version.
|
|
3
|
-
// No dependencies available at preinstall time — ANSI codes for color.
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
var REQUIRED_MAJOR = 22;
|
|
7
|
-
var current = process.versions.node;
|
|
8
|
-
var major = parseInt(current.split(".")[0], 10);
|
|
9
|
-
|
|
10
|
-
if (major < REQUIRED_MAJOR) {
|
|
11
|
-
var RED = "\x1b[31m";
|
|
12
|
-
var YELLOW = "\x1b[33m";
|
|
13
|
-
var BOLD = "\x1b[1m";
|
|
14
|
-
var RESET = "\x1b[0m";
|
|
15
|
-
|
|
16
|
-
var lines = [
|
|
17
|
-
"",
|
|
18
|
-
RED + BOLD + "ERROR: Node.js " + REQUIRED_MAJOR + "+ is required to install prompsit-cli" + RESET,
|
|
19
|
-
RED + " Current version: " + current + RESET,
|
|
20
|
-
"",
|
|
21
|
-
YELLOW + "How to upgrade:" + RESET,
|
|
22
|
-
];
|
|
23
|
-
|
|
24
|
-
if (process.platform === "win32") {
|
|
25
|
-
lines.push(" winget install OpenJS.NodeJS.LTS");
|
|
26
|
-
lines.push(" -- or download from https://nodejs.org/");
|
|
27
|
-
} else if (process.platform === "darwin") {
|
|
28
|
-
lines.push(" brew install node@22");
|
|
29
|
-
lines.push(" -- or: nvm install 22");
|
|
30
|
-
} else {
|
|
31
|
-
lines.push(" nvm install 22");
|
|
32
|
-
lines.push(" -- or: curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -");
|
|
33
|
-
lines.push(" sudo apt-get install -y nodejs");
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
lines.push("");
|
|
37
|
-
process.stderr.write(lines.join("\n") + "\n");
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|