rhachet 1.19.3 ā 1.19.6
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/contract/cli/invokeRolesInit.js +7 -3
- package/dist/contract/cli/invokeRolesInit.js.map +1 -1
- package/dist/contract/cli/invokeRun.js +15 -4
- package/dist/contract/cli/invokeRun.js.map +1 -1
- package/dist/domain.operations/invoke/executeInit.d.ts +3 -0
- package/dist/domain.operations/invoke/executeInit.js +10 -3
- package/dist/domain.operations/invoke/executeInit.js.map +1 -1
- package/dist/domain.operations/invoke/executeSkill.d.ts +11 -2
- package/dist/domain.operations/invoke/executeSkill.js +33 -27
- package/dist/domain.operations/invoke/executeSkill.js.map +1 -1
- package/package.json +1 -1
|
@@ -70,14 +70,18 @@ const invokeRolesInit = ({ command, registries, }) => {
|
|
|
70
70
|
console.log(``);
|
|
71
71
|
console.log(`š§ Init role "${role.slug}" from repo "${repo.slug}"`);
|
|
72
72
|
console.log(``);
|
|
73
|
-
// execute each command sequentially
|
|
73
|
+
// execute each command sequentially with explicit stdin passthrough
|
|
74
74
|
for (const { cmd } of execCmds) {
|
|
75
75
|
console.log(` āø ${cmd}`);
|
|
76
|
-
(0, node_child_process_1.
|
|
76
|
+
const result = (0, node_child_process_1.spawnSync)(cmd, [], {
|
|
77
77
|
cwd: process.cwd(),
|
|
78
|
-
stdio:
|
|
78
|
+
stdio: [process.stdin, process.stdout, process.stderr],
|
|
79
79
|
shell: '/bin/bash',
|
|
80
80
|
});
|
|
81
|
+
// propagate non-zero exit codes
|
|
82
|
+
if (result.status !== 0) {
|
|
83
|
+
process.exit(result.status ?? 1);
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
console.log(``);
|
|
83
87
|
console.log(`⨠Role "${role.slug}" initialized successfully.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeRolesInit.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesInit.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAGjD,iFAA8E;AAC9E,2EAAwE;AACxE,qGAAkG;AAClG,mFAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"invokeRolesInit.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRolesInit.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,10 +86,21 @@ const invokeRun = ({ program, registries, brains, }) => {
|
|
|
86
86
|
brains,
|
|
87
87
|
});
|
|
88
88
|
// š command-mode: discover and execute shell skill
|
|
89
|
-
if (isCommandMode)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
if (isCommandMode) {
|
|
90
|
+
try {
|
|
91
|
+
return performRunViaCommandMode({
|
|
92
|
+
opts: { skill: opts.skill, repo: opts.repo, role: opts.role },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
// handle skill failures cleanly without stack trace
|
|
97
|
+
if (error instanceof executeSkill_1.SkillExecutionError) {
|
|
98
|
+
console.error(`\nāļø ${error.message}`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
93
104
|
// neither mode matched - unexpected
|
|
94
105
|
throw new helpful_errors_1.UnexpectedCodePathError('invokeRun: neither actor-mode nor command-mode matched', { opts });
|
|
95
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeRun.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRun.ts"],"names":[],"mappings":";;;AACA,mDAA0E;AAK1E,oEAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"invokeRun.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeRun.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import type { RoleInitExecutable } from '../../domain.objects/RoleInitExecutable
|
|
|
2
2
|
/**
|
|
3
3
|
* .what = executes an init script with passthrough args
|
|
4
4
|
* .why = runs the discovered init with full arg passthrough
|
|
5
|
+
*
|
|
6
|
+
* .note = uses spawnSync with explicit stdin passthrough to ensure input
|
|
7
|
+
* reaches the script (Commander.js may consume stdin before execSync)
|
|
5
8
|
*/
|
|
6
9
|
export declare const executeInit: (input: {
|
|
7
10
|
init: RoleInitExecutable;
|
|
@@ -5,6 +5,9 @@ const node_child_process_1 = require("node:child_process");
|
|
|
5
5
|
/**
|
|
6
6
|
* .what = executes an init script with passthrough args
|
|
7
7
|
* .why = runs the discovered init with full arg passthrough
|
|
8
|
+
*
|
|
9
|
+
* .note = uses spawnSync with explicit stdin passthrough to ensure input
|
|
10
|
+
* reaches the script (Commander.js may consume stdin before execSync)
|
|
8
11
|
*/
|
|
9
12
|
const executeInit = (input) => {
|
|
10
13
|
// build command with args
|
|
@@ -16,12 +19,16 @@ const executeInit = (input) => {
|
|
|
16
19
|
return arg;
|
|
17
20
|
})
|
|
18
21
|
.join(' ');
|
|
19
|
-
// execute with
|
|
20
|
-
(0, node_child_process_1.
|
|
22
|
+
// execute with explicit stdin passthrough to ensure data reaches script
|
|
23
|
+
const result = (0, node_child_process_1.spawnSync)(command, [], {
|
|
21
24
|
cwd: process.cwd(),
|
|
22
|
-
stdio:
|
|
25
|
+
stdio: [process.stdin, process.stdout, process.stderr],
|
|
23
26
|
shell: '/bin/bash',
|
|
24
27
|
});
|
|
28
|
+
// propagate non-zero exit codes
|
|
29
|
+
if (result.status !== 0) {
|
|
30
|
+
process.exit(result.status ?? 1);
|
|
31
|
+
}
|
|
25
32
|
};
|
|
26
33
|
exports.executeInit = executeInit;
|
|
27
34
|
//# sourceMappingURL=executeInit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeInit.js","sourceRoot":"","sources":["../../../src/domain.operations/invoke/executeInit.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"executeInit.js","sourceRoot":"","sources":["../../../src/domain.operations/invoke/executeInit.ts"],"names":[],"mappings":";;;AAEA,2DAA+C;AAE/C;;;;;;GAMG;AACI,MAAM,WAAW,GAAG,CAAC,KAG3B,EAAQ,EAAE;IACT,0BAA0B;IAC1B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;SAC7C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,yBAAyB;QACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,GAAG,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,wEAAwE;IACxE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,OAAO,EAAE,EAAE,EAAE;QACpC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;QACtD,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;IAEH,gCAAgC;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,WAAW,eAwBtB"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
import { HelpfulError } from 'helpful-errors';
|
|
1
2
|
import type { RoleSkillExecutable } from '../../domain.objects/RoleSkillExecutable';
|
|
3
|
+
/**
|
|
4
|
+
* .what = error thrown when a skill script exits with non-zero status
|
|
5
|
+
* .why = enables callers to catch and handle skill failures gracefully
|
|
6
|
+
*/
|
|
7
|
+
export declare class SkillExecutionError extends HelpfulError {
|
|
8
|
+
}
|
|
2
9
|
/**
|
|
3
10
|
* .what = executes a skill script with passthrough args
|
|
4
11
|
* .why = runs the discovered skill with full arg passthrough
|
|
5
12
|
*
|
|
6
|
-
* .note = when stream=true (default),
|
|
7
|
-
* .note = when stream=false, captures stdout and parses JSON
|
|
13
|
+
* .note = when stream=true (default), stdout/stderr stream progressively
|
|
14
|
+
* .note = when stream=false, captures stdout and parses as JSON
|
|
15
|
+
* .note = uses spawnSync with explicit stdin passthrough to ensure input
|
|
16
|
+
* reaches the script (Commander.js may consume stdin before execSync)
|
|
8
17
|
*/
|
|
9
18
|
export declare const executeSkill: (input: {
|
|
10
19
|
skill: RoleSkillExecutable;
|
|
@@ -1,51 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeSkill = void 0;
|
|
3
|
+
exports.executeSkill = exports.SkillExecutionError = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
4
5
|
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
/**
|
|
7
|
+
* .what = error thrown when a skill script exits with non-zero status
|
|
8
|
+
* .why = enables callers to catch and handle skill failures gracefully
|
|
9
|
+
*/
|
|
10
|
+
class SkillExecutionError extends helpful_errors_1.HelpfulError {
|
|
11
|
+
}
|
|
12
|
+
exports.SkillExecutionError = SkillExecutionError;
|
|
5
13
|
/**
|
|
6
14
|
* .what = executes a skill script with passthrough args
|
|
7
15
|
* .why = runs the discovered skill with full arg passthrough
|
|
8
16
|
*
|
|
9
|
-
* .note = when stream=true (default),
|
|
10
|
-
* .note = when stream=false, captures stdout and parses JSON
|
|
17
|
+
* .note = when stream=true (default), stdout/stderr stream progressively
|
|
18
|
+
* .note = when stream=false, captures stdout and parses as JSON
|
|
19
|
+
* .note = uses spawnSync with explicit stdin passthrough to ensure input
|
|
20
|
+
* reaches the script (Commander.js may consume stdin before execSync)
|
|
11
21
|
*/
|
|
12
22
|
const executeSkill = (input) => {
|
|
13
|
-
// default to streaming (backwards compatible with CLI behavior)
|
|
14
23
|
const stream = input.stream ?? true;
|
|
15
24
|
// build command with args
|
|
16
25
|
const command = [input.skill.path, ...input.args]
|
|
17
|
-
.map((arg) => {
|
|
18
|
-
// quote args with spaces
|
|
19
|
-
if (arg.includes(' '))
|
|
20
|
-
return `"${arg}"`;
|
|
21
|
-
return arg;
|
|
22
|
-
})
|
|
26
|
+
.map((arg) => (arg.includes(' ') ? `"${arg}"` : arg))
|
|
23
27
|
.join(' ');
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
(0, node_child_process_1.execSync)(command, {
|
|
27
|
-
cwd: process.cwd(),
|
|
28
|
-
shell: '/bin/bash',
|
|
29
|
-
stdio: 'inherit',
|
|
30
|
-
});
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
// capture mode: capture stdout for JSON parsing
|
|
34
|
-
const stdout = (0, node_child_process_1.execSync)(command, {
|
|
28
|
+
// run skill: stream mode passes through stdio, capture mode pipes stdout
|
|
29
|
+
const result = (0, node_child_process_1.spawnSync)(command, [], {
|
|
35
30
|
cwd: process.cwd(),
|
|
36
31
|
shell: '/bin/bash',
|
|
37
32
|
encoding: 'utf-8',
|
|
33
|
+
stdio: stream
|
|
34
|
+
? [process.stdin, process.stdout, process.stderr]
|
|
35
|
+
: ['inherit', 'pipe', 'inherit'],
|
|
38
36
|
});
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
// throw on non-zero exit
|
|
38
|
+
if (result.status !== 0)
|
|
39
|
+
throw new SkillExecutionError('skill execution failed', {
|
|
40
|
+
skill: input.skill.slug,
|
|
41
|
+
path: input.skill.path,
|
|
42
|
+
});
|
|
43
|
+
// stream mode has no return value
|
|
44
|
+
if (stream)
|
|
45
|
+
return undefined;
|
|
46
|
+
// capture mode: parse JSON output if present
|
|
47
|
+
const stdout = (result.stdout ?? '').trim();
|
|
48
|
+
if (!stdout)
|
|
42
49
|
return undefined;
|
|
43
50
|
try {
|
|
44
|
-
return JSON.parse(
|
|
51
|
+
return JSON.parse(stdout);
|
|
45
52
|
}
|
|
46
53
|
catch {
|
|
47
|
-
|
|
48
|
-
return trimmed;
|
|
54
|
+
return stdout;
|
|
49
55
|
}
|
|
50
56
|
};
|
|
51
57
|
exports.executeSkill = executeSkill;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeSkill.js","sourceRoot":"","sources":["../../../src/domain.operations/invoke/executeSkill.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"executeSkill.js","sourceRoot":"","sources":["../../../src/domain.operations/invoke/executeSkill.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAI9C,2DAA+C;AAE/C;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,6BAAY;CAAG;AAAxD,kDAAwD;AAExD;;;;;;;;GAQG;AACI,MAAM,YAAY,GAAG,CAAC,KAI5B,EAAW,EAAE;IACZ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;IAEpC,0BAA0B;IAC1B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;SAC9C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACpD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,OAAO,EAAE,EAAE,EAAE;QACpC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,MAAM;YACX,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACjD,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;KACnC,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,EAAE;YACtD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACvB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;SACvB,CAAC,CAAC;IAEL,kCAAkC;IAClC,IAAI,MAAM;QAAE,OAAO,SAAS,CAAC;IAE7B,6CAA6C;IAC7C,MAAM,MAAM,GAAG,CAAE,MAAM,CAAC,MAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAzCW,QAAA,YAAY,gBAyCvB"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "rhachet",
|
|
3
3
|
"author": "ehmpathy",
|
|
4
4
|
"description": "A framework for reliable, thorough thought. Weave threads of thought via stitches.",
|
|
5
|
-
"version": "1.19.
|
|
5
|
+
"version": "1.19.6",
|
|
6
6
|
"repository": "ehmpathy/rhachet",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/rhachet",
|
|
8
8
|
"keywords": [
|