@stoneforge/smithy 1.0.0 → 1.0.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EAExB,MAAM,aAAa,CAAC;AAuFrB;;GAEG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACnE,QAAQ,CAAC,IAAI,wBAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,cAAc,SAAW;IAI/B,KAAK,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4DpE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,OAAO,CAAC,SAAS;CAkBlB"}
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
|
+
import { chmodSync, existsSync, readdirSync } from 'node:fs';
|
|
11
|
+
import { dirname, join } from 'node:path';
|
|
12
|
+
import { createRequire } from 'node:module';
|
|
10
13
|
import * as pty from 'node-pty';
|
|
11
14
|
// ============================================================================
|
|
12
15
|
// Helpers
|
|
@@ -17,6 +20,36 @@ import * as pty from 'node-pty';
|
|
|
17
20
|
function shellQuote(s) {
|
|
18
21
|
return "'" + s.replace(/'/g, "'\\''") + "'";
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Ensures node-pty's spawn-helper binary has execute permissions.
|
|
25
|
+
* Package managers (especially bun) can strip the execute bit from native
|
|
26
|
+
* binaries, and bun doesn't run postinstall scripts by default.
|
|
27
|
+
* Only runs once per process.
|
|
28
|
+
*/
|
|
29
|
+
let spawnHelperFixed = false;
|
|
30
|
+
function ensureSpawnHelperPermissions() {
|
|
31
|
+
if (spawnHelperFixed || process.platform === 'win32')
|
|
32
|
+
return;
|
|
33
|
+
spawnHelperFixed = true;
|
|
34
|
+
try {
|
|
35
|
+
const require = createRequire(import.meta.url);
|
|
36
|
+
const nodePtyDir = dirname(require.resolve('node-pty/package.json'));
|
|
37
|
+
const prebuildsDir = join(nodePtyDir, 'prebuilds');
|
|
38
|
+
if (!existsSync(prebuildsDir))
|
|
39
|
+
return;
|
|
40
|
+
for (const entry of readdirSync(prebuildsDir, { withFileTypes: true })) {
|
|
41
|
+
if (!entry.isDirectory())
|
|
42
|
+
continue;
|
|
43
|
+
const helper = join(prebuildsDir, entry.name, 'spawn-helper');
|
|
44
|
+
if (existsSync(helper))
|
|
45
|
+
chmodSync(helper, 0o755);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Best-effort — if we can't fix permissions, pty.spawn() will throw
|
|
50
|
+
// a clear error anyway.
|
|
51
|
+
}
|
|
52
|
+
}
|
|
20
53
|
// ============================================================================
|
|
21
54
|
// Claude Interactive Session
|
|
22
55
|
// ============================================================================
|
|
@@ -93,6 +126,7 @@ export class ClaudeInteractiveProvider {
|
|
|
93
126
|
: options.initialPrompt
|
|
94
127
|
? ['-l', '-c', claudeCommand + ' "$1"', '_', options.initialPrompt]
|
|
95
128
|
: ['-l', '-c', claudeCommand];
|
|
129
|
+
ensureSpawnHelperPermissions();
|
|
96
130
|
const ptyProcess = pty.spawn(shell, shellArgs, {
|
|
97
131
|
name: 'xterm-256color',
|
|
98
132
|
cols,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/providers/claude/interactive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/providers/claude/interactive.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stoneforge/smithy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Orchestrator SDK for Stoneforge - AI agent orchestration library extending the core SDK",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"files": [
|
|
67
67
|
"dist",
|
|
68
68
|
"web",
|
|
69
|
+
"scripts",
|
|
69
70
|
"README.md"
|
|
70
71
|
],
|
|
71
72
|
"repository": {
|
|
@@ -92,10 +93,10 @@
|
|
|
92
93
|
"hono": "^4.7.0",
|
|
93
94
|
"node-pty": "^1.1.0",
|
|
94
95
|
"ws": "^8.18.0",
|
|
95
|
-
"@stoneforge/core": "1.0.
|
|
96
|
-
"@stoneforge/quarry": "1.0.
|
|
97
|
-
"@stoneforge/shared-routes": "1.0.
|
|
98
|
-
"@stoneforge/storage": "1.0.
|
|
96
|
+
"@stoneforge/core": "1.0.2",
|
|
97
|
+
"@stoneforge/quarry": "1.0.2",
|
|
98
|
+
"@stoneforge/shared-routes": "1.0.2",
|
|
99
|
+
"@stoneforge/storage": "1.0.2"
|
|
99
100
|
},
|
|
100
101
|
"optionalDependencies": {
|
|
101
102
|
"@opencode-ai/sdk": "^1.1.64"
|
|
@@ -115,6 +116,7 @@
|
|
|
115
116
|
"test:orchestration": "bun run src/cli/commands/test-orchestration.ts",
|
|
116
117
|
"lint": "tsc --noEmit",
|
|
117
118
|
"typecheck": "tsc --noEmit",
|
|
118
|
-
"clean": "rm -rf dist"
|
|
119
|
+
"clean": "rm -rf dist",
|
|
120
|
+
"postinstall": "node scripts/fix-node-pty-permissions.cjs"
|
|
119
121
|
}
|
|
120
122
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Fix node-pty spawn-helper permissions
|
|
4
|
+
*
|
|
5
|
+
* Package managers sometimes lose execute permissions on native binaries.
|
|
6
|
+
* The spawn-helper binary in node-pty needs execute permission for PTY
|
|
7
|
+
* spawning to work on macOS/Linux.
|
|
8
|
+
*
|
|
9
|
+
* Uses require.resolve to find node-pty regardless of package manager
|
|
10
|
+
* (npm, pnpm, yarn, bun).
|
|
11
|
+
*
|
|
12
|
+
* Runs as a postinstall hook from both the smithy package (for NPM consumers)
|
|
13
|
+
* and the monorepo root (for local development).
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const { chmodSync, existsSync } = require('node:fs');
|
|
17
|
+
const { join, dirname } = require('node:path');
|
|
18
|
+
|
|
19
|
+
if (process.platform === 'win32') {
|
|
20
|
+
process.exit(0);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let nodePtyDir;
|
|
24
|
+
try {
|
|
25
|
+
const pkgPath = require.resolve('node-pty/package.json');
|
|
26
|
+
nodePtyDir = dirname(pkgPath);
|
|
27
|
+
} catch {
|
|
28
|
+
// node-pty not installed — nothing to fix
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const prebuildsDir = join(nodePtyDir, 'prebuilds');
|
|
33
|
+
if (!existsSync(prebuildsDir)) {
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const { readdirSync } = require('node:fs');
|
|
38
|
+
let fixed = 0;
|
|
39
|
+
|
|
40
|
+
for (const platformDir of readdirSync(prebuildsDir, { withFileTypes: true })) {
|
|
41
|
+
if (!platformDir.isDirectory()) continue;
|
|
42
|
+
const helperPath = join(prebuildsDir, platformDir.name, 'spawn-helper');
|
|
43
|
+
if (existsSync(helperPath)) {
|
|
44
|
+
try {
|
|
45
|
+
chmodSync(helperPath, 0o755);
|
|
46
|
+
fixed++;
|
|
47
|
+
console.log(`[postinstall] Fixed permissions: node-pty/prebuilds/${platformDir.name}/spawn-helper`);
|
|
48
|
+
} catch (err) {
|
|
49
|
+
console.warn(`[postinstall] Could not fix permissions for ${helperPath}: ${err.message}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (fixed === 0) {
|
|
55
|
+
console.log('[postinstall] No spawn-helper binaries found to fix');
|
|
56
|
+
}
|