gm-skill 2.0.1230 → 2.0.1232
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 +1 -1
- package/bin/bootstrap.js +3 -0
- package/gm-plugkit/bootstrap.js +3 -0
- package/gm-plugkit/plugkit-wasm-wrapper.js +21 -4
- package/gm.json +1 -1
- package/lib/daemon-bootstrap.js +13 -2
- package/lib/skill-bootstrap.js +10 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ An earlier generation fanned out fifteen per-platform downstream repos (gm-cc, g
|
|
|
35
35
|
|
|
36
36
|
## Version
|
|
37
37
|
|
|
38
|
-
`2.0.
|
|
38
|
+
`2.0.1232` — auto-bumped from the canonical `gm` repo. Every push to `AnEntrypoint/gm` (or any cascading sibling crate) republishes this package.
|
|
39
39
|
|
|
40
40
|
## Source of truth
|
|
41
41
|
|
package/bin/bootstrap.js
CHANGED
|
@@ -264,6 +264,9 @@ async function extractNpmPackageWasm(destPath, version) {
|
|
|
264
264
|
timeout: ATTEMPT_TIMEOUT_MS,
|
|
265
265
|
encoding: 'utf8',
|
|
266
266
|
windowsHide: true,
|
|
267
|
+
// CREATE_NO_WINDOW — inherited by all .cmd shims npm/npx spawn
|
|
268
|
+
// during package extraction, so no conhost flash during install.
|
|
269
|
+
...(process.platform === 'win32' ? { creationFlags: 0x08000000 } : {}),
|
|
267
270
|
}
|
|
268
271
|
);
|
|
269
272
|
|
package/gm-plugkit/bootstrap.js
CHANGED
|
@@ -211,6 +211,9 @@ async function extractNpmPackageWasm(destPath, version) {
|
|
|
211
211
|
timeout: ATTEMPT_TIMEOUT_MS,
|
|
212
212
|
encoding: 'utf8',
|
|
213
213
|
windowsHide: true,
|
|
214
|
+
// CREATE_NO_WINDOW — inherited by .cmd shims npm spawns during
|
|
215
|
+
// package install, so no conhost flash during the extract step.
|
|
216
|
+
...(process.platform === 'win32' ? { creationFlags: 0x08000000 } : {}),
|
|
214
217
|
});
|
|
215
218
|
|
|
216
219
|
if (result.error) throw result.error;
|
|
@@ -797,15 +797,22 @@ function ensureAcptoapi() {
|
|
|
797
797
|
}
|
|
798
798
|
// Resolve `bun` to its actual .exe on Windows so the spawned daemon
|
|
799
799
|
// doesn't enter conhost via a bun.cmd shim. See
|
|
800
|
-
// [[windows-spawn-cmd-shim-flash]]
|
|
801
|
-
//
|
|
802
|
-
//
|
|
800
|
+
// [[windows-spawn-cmd-shim-flash]].
|
|
801
|
+
//
|
|
802
|
+
// Use CREATE_NO_WINDOW (0x08000000) | DETACHED_PROCESS (0x00000008)
|
|
803
|
+
// creationFlags so the suppression is INHERITED by every descendant
|
|
804
|
+
// bun-x downloads and launches (acptoapi itself spawns 11 ACP sub-
|
|
805
|
+
// daemons via .cmd shims; without this flag each one pops a conhost
|
|
806
|
+
// window). windowsHide:true alone only hides the immediate child.
|
|
807
|
+
const CREATE_NO_WINDOW = 0x08000000;
|
|
808
|
+
const DETACHED_PROCESS = 0x00000008;
|
|
803
809
|
const cmd = resolveWindowsExeLocal('bun');
|
|
804
810
|
const child = spawn(cmd, ['x', 'acptoapi@latest'], {
|
|
805
811
|
detached: true,
|
|
806
812
|
stdio: 'ignore',
|
|
807
813
|
windowsHide: true,
|
|
808
814
|
shell: false,
|
|
815
|
+
creationFlags: CREATE_NO_WINDOW | DETACHED_PROCESS,
|
|
809
816
|
});
|
|
810
817
|
child.unref();
|
|
811
818
|
_acptoapiBoot.spawned_at = Date.now();
|
|
@@ -906,7 +913,17 @@ function getOrCreateBrowserSession(cwd, claudeSessionId, pw) {
|
|
|
906
913
|
'--no-default-browser-check',
|
|
907
914
|
'--disable-features=Translate',
|
|
908
915
|
];
|
|
909
|
-
|
|
916
|
+
// Chrome itself is GUI but its remote-debugging port creates conhost
|
|
917
|
+
// when launched from a console-attached parent. CREATE_NO_WINDOW
|
|
918
|
+
// (0x08000000) | DETACHED_PROCESS (0x00000008) prevents the helper
|
|
919
|
+
// processes (sandbox, GPU, network service) from allocating consoles.
|
|
920
|
+
// Inherited by the entire chrome subprocess tree on Windows.
|
|
921
|
+
const child = spawn(chrome, chromeArgs, {
|
|
922
|
+
detached: true,
|
|
923
|
+
stdio: 'ignore',
|
|
924
|
+
windowsHide: true,
|
|
925
|
+
...(process.platform === 'win32' ? { creationFlags: 0x08000000 | 0x00000008 } : {}),
|
|
926
|
+
});
|
|
910
927
|
const chromePid = child.pid;
|
|
911
928
|
child.unref();
|
|
912
929
|
const deadline = Date.now() + 10000;
|
package/gm.json
CHANGED
package/lib/daemon-bootstrap.js
CHANGED
|
@@ -181,11 +181,16 @@ async function ensureRsLearningDaemonRunning() {
|
|
|
181
181
|
CLAUDE_SESSION_ID: sessionId,
|
|
182
182
|
});
|
|
183
183
|
|
|
184
|
+
// CREATE_NO_WINDOW (0x08000000) is inherited by all descendants —
|
|
185
|
+
// .cmd shims that bun-x downloads/launches never get a console window.
|
|
186
|
+
// DETACHED_PROCESS (0x00000008) detaches the process group. Windows-only;
|
|
187
|
+
// Node ignores creationFlags on POSIX.
|
|
184
188
|
const proc = spawn(resolveWindowsExe('bun'), ['x', 'rs-learn@latest'], {
|
|
185
189
|
detached: true,
|
|
186
190
|
stdio: 'ignore',
|
|
187
191
|
windowsHide: true,
|
|
188
192
|
env,
|
|
193
|
+
creationFlags: 0x08000000 | 0x00000008,
|
|
189
194
|
});
|
|
190
195
|
|
|
191
196
|
const pid = proc.pid;
|
|
@@ -235,11 +240,15 @@ async function ensureAcptoapiRunning() {
|
|
|
235
240
|
});
|
|
236
241
|
|
|
237
242
|
try {
|
|
243
|
+
// CREATE_NO_WINDOW | DETACHED_PROCESS — see ensureRsLearningDaemonRunning
|
|
244
|
+
// above. Inherited by acptoapi's 11 ACP sub-daemons so they don't pop
|
|
245
|
+
// conhost windows when bun-x launches their .cmd shims.
|
|
238
246
|
const child = spawn(resolveWindowsExe('bun'), ['x', 'acptoapi@latest'], {
|
|
239
247
|
detached: true,
|
|
240
248
|
stdio: 'ignore',
|
|
241
249
|
windowsHide: true,
|
|
242
250
|
env,
|
|
251
|
+
creationFlags: 0x08000000 | 0x00000008,
|
|
243
252
|
});
|
|
244
253
|
child.unref();
|
|
245
254
|
emitDaemonEvent('acptoapi', 'info', 'Daemon spawned', { pid: child.pid, port, sessionId });
|
|
@@ -283,11 +292,12 @@ async function ensureRsCodeinsightDaemonRunning() {
|
|
|
283
292
|
CLAUDE_SESSION_ID: sessionId,
|
|
284
293
|
});
|
|
285
294
|
|
|
286
|
-
const proc = spawn('bun', ['x', 'rs-codeinsight@latest'], {
|
|
295
|
+
const proc = spawn(resolveWindowsExe('bun'), ['x', 'rs-codeinsight@latest'], {
|
|
287
296
|
detached: true,
|
|
288
297
|
stdio: 'ignore',
|
|
289
298
|
windowsHide: true,
|
|
290
299
|
env,
|
|
300
|
+
creationFlags: 0x08000000 | 0x00000008,
|
|
291
301
|
});
|
|
292
302
|
|
|
293
303
|
const pid = proc.pid;
|
|
@@ -328,11 +338,12 @@ async function ensureRsSearchDaemonRunning() {
|
|
|
328
338
|
CLAUDE_SESSION_ID: sessionId,
|
|
329
339
|
});
|
|
330
340
|
|
|
331
|
-
const proc = spawn('bun', ['x', 'rs-search@latest'], {
|
|
341
|
+
const proc = spawn(resolveWindowsExe('bun'), ['x', 'rs-search@latest'], {
|
|
332
342
|
detached: true,
|
|
333
343
|
stdio: 'ignore',
|
|
334
344
|
windowsHide: true,
|
|
335
345
|
env,
|
|
346
|
+
creationFlags: 0x08000000 | 0x00000008,
|
|
336
347
|
});
|
|
337
348
|
|
|
338
349
|
const pid = proc.pid;
|
package/lib/skill-bootstrap.js
CHANGED
|
@@ -735,11 +735,17 @@ async function spawnPlugkitWatcher(wasmPath) {
|
|
|
735
735
|
const logFd = openWatcherLog(projectDir);
|
|
736
736
|
|
|
737
737
|
const runtime = process.platform === 'win32' ? 'bun.exe' : 'bun';
|
|
738
|
+
// CREATE_NO_WINDOW (0x08000000) | DETACHED_PROCESS (0x00000008) —
|
|
739
|
+
// inherited by all descendants so bun.exe → spool watcher → any
|
|
740
|
+
// downstream spawn never allocates a console window. Without this,
|
|
741
|
+
// windowsHide:true only hides the immediate bun.exe child while
|
|
742
|
+
// .cmd shims it later spawns each pop their own conhost.
|
|
738
743
|
const proc = spawn(runtime, [wrapperPath, 'spool'], {
|
|
739
744
|
detached: true,
|
|
740
745
|
stdio: ['ignore', logFd, logFd],
|
|
741
746
|
windowsHide: true,
|
|
742
747
|
env: { ...process.env, CLAUDE_PROJECT_DIR: projectDir },
|
|
748
|
+
...(process.platform === 'win32' ? { creationFlags: 0x08000000 | 0x00000008 } : {}),
|
|
743
749
|
});
|
|
744
750
|
|
|
745
751
|
try { fs.closeSync(logFd); } catch (_) {}
|
|
@@ -927,10 +933,14 @@ async function bootstrapAcptoapi() {
|
|
|
927
933
|
|
|
928
934
|
emitBootstrapEvent('info', 'Spawning acptoapi daemon');
|
|
929
935
|
try {
|
|
936
|
+
// CREATE_NO_WINDOW | DETACHED_PROCESS — see windows-spawn-cmd-shim-flash
|
|
937
|
+
// memory. acptoapi spawns 11 ACP sub-daemons via .cmd shims; without
|
|
938
|
+
// the inherited CREATE_NO_WINDOW flag each one pops a conhost window.
|
|
930
939
|
const child = spawn('bun', ['x', 'acptoapi@latest'], {
|
|
931
940
|
detached: true,
|
|
932
941
|
stdio: 'ignore',
|
|
933
942
|
windowsHide: true,
|
|
943
|
+
...(process.platform === 'win32' ? { creationFlags: 0x08000000 | 0x00000008 } : {}),
|
|
934
944
|
});
|
|
935
945
|
child.unref();
|
|
936
946
|
emitBootstrapEvent('info', 'acptoapi spawned', { pid: child.pid });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1232",
|
|
4
4
|
"description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
|
|
5
5
|
"author": "AnEntrypoint",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"gm.json"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"gm-plugkit": "^2.0.
|
|
42
|
+
"gm-plugkit": "^2.0.1232"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=16.0.0"
|