@hivecommons/promptargs 0.6.0

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/dist/ui.js ADDED
@@ -0,0 +1,85 @@
1
+ import { createServer } from 'node:http';
2
+ import { readFileSync } from 'node:fs';
3
+ import { join, dirname } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { autodetect, AUTODETECT_VARS } from './autodetect.js';
6
+ const DEFAULT_PORT = 3700;
7
+ const OPEN_DELAY_MS = 500;
8
+ const DIFF_PREVIEW_MAX_CHARS = 60;
9
+ const ENV_VAL_PREVIEW_MAX_CHARS = 80;
10
+ const SKIP_ENV_PREFIXES = [
11
+ 'npm_', 'LESS', 'LS_COLORS', 'LSCOLORS', 'TERM_', 'XPC_', 'SECURITYSESSION',
12
+ 'COMMAND_MODE', 'LaunchInstanceID', 'ITERM', '__CF', '__NEXT', 'VSCODE',
13
+ 'ELECTRON', 'CHROME', 'COLORTERM', 'SHLVL', 'LOGNAME', 'OLDPWD', '_',
14
+ ];
15
+ const SKIP_ENV_EXACT = new Set([
16
+ 'HOME', 'PWD', 'SHELL', 'TERM', 'TMPDIR', 'LANG', 'LC_ALL', 'LC_CTYPE',
17
+ 'PAGER', 'MANPATH', 'INFOPATH', 'DISPLAY', 'SSH_AUTH_SOCK', 'TERM_PROGRAM',
18
+ 'TERM_PROGRAM_VERSION', 'TERM_SESSION_ID', 'Apple_PubSub_Socket_Render',
19
+ 'MallocNanoZone', 'ORIGINAL_XDG_CURRENT_DESKTOP', 'GIT_ASKPASS',
20
+ ]);
21
+ function shouldSkipEnv(key) {
22
+ if (SKIP_ENV_EXACT.has(key))
23
+ return true;
24
+ return SKIP_ENV_PREFIXES.some(p => key.startsWith(p));
25
+ }
26
+ function truncateValue(val, max) {
27
+ return val.length > max ? val.slice(0, max) + '...' : val;
28
+ }
29
+ function collectEnvVars() {
30
+ const git = {};
31
+ for (const name of AUTODETECT_VARS) {
32
+ const value = autodetect(name);
33
+ if (value !== undefined) {
34
+ git[name] = name === 'diff'
35
+ ? truncateValue(value, DIFF_PREVIEW_MAX_CHARS)
36
+ : value;
37
+ }
38
+ }
39
+ const terminal = {};
40
+ for (const [key, val] of Object.entries(process.env)) {
41
+ if (!val || shouldSkipEnv(key))
42
+ continue;
43
+ terminal[key] = truncateValue(val, ENV_VAL_PREVIEW_MAX_CHARS);
44
+ }
45
+ return { git, terminal };
46
+ }
47
+ export function startUI(port = DEFAULT_PORT) {
48
+ const __dirname = dirname(fileURLToPath(import.meta.url));
49
+ const htmlPath = join(__dirname, 'ui.html');
50
+ let rawHtml;
51
+ try {
52
+ rawHtml = readFileSync(htmlPath, 'utf-8');
53
+ }
54
+ catch {
55
+ console.error('UI file not found. Reinstall @hivecommons/promptargs.');
56
+ process.exit(1);
57
+ }
58
+ const envVars = collectEnvVars();
59
+ const envScript = `<script>window.__PROMPTARGS_ENV__ = ${JSON.stringify(envVars)};</script>`;
60
+ const html = rawHtml.replace('<script>', envScript + '\n<script>');
61
+ const server = createServer((_req, res) => {
62
+ res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
63
+ res.end(html);
64
+ });
65
+ server.listen(port, () => {
66
+ const url = `http://localhost:${port}`;
67
+ console.log(`promptargs builder running at ${url}`);
68
+ console.log('Press Ctrl+C to stop.\n');
69
+ setTimeout(() => {
70
+ import('node:child_process').then(({ exec }) => {
71
+ const cmd = process.platform === 'darwin' ? 'open' :
72
+ process.platform === 'win32' ? 'start' : 'xdg-open';
73
+ exec(`${cmd} ${url}`);
74
+ });
75
+ }, OPEN_DELAY_MS);
76
+ });
77
+ server.on('error', (err) => {
78
+ if (err.code === 'EADDRINUSE') {
79
+ console.error(`Port ${port} is in use. Try: promptargs ui --port=${port + 1}`);
80
+ process.exit(1);
81
+ }
82
+ throw err;
83
+ });
84
+ }
85
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@hivecommons/promptargs",
3
+ "version": "0.6.0",
4
+ "description": "Template arguments for AI prompts — variable substitution for Claude Code, Copilot, and more",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "promptargs": "dist/cli.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc && cp src/ui.html dist/ui.html",
12
+ "dev": "tsc --watch",
13
+ "test": "node --test dist/**/*.test.js",
14
+ "lint": "tsc --noEmit"
15
+ },
16
+ "keywords": [
17
+ "prompt",
18
+ "template",
19
+ "ai",
20
+ "claude",
21
+ "copilot",
22
+ "args",
23
+ "cli"
24
+ ],
25
+ "author": "hivecommons",
26
+ "license": "Apache-2.0",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/hivecommons/promptargs.git"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/hivecommons/promptargs/issues"
33
+ },
34
+ "homepage": "https://github.com/hivecommons/promptargs#readme",
35
+ "engines": {
36
+ "node": ">=18"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "README.md",
41
+ "LICENSE"
42
+ ],
43
+ "devDependencies": {
44
+ "@types/mustache": "^4.2.6",
45
+ "@types/node": "^26.1.0",
46
+ "typescript": "^6.0.3"
47
+ },
48
+ "dependencies": {
49
+ "mustache": "^4.2.0"
50
+ }
51
+ }