gm-skill 2.0.1555 → 2.0.1556
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/gm-plugkit/package.json +1 -1
- package/gm.json +1 -1
- package/lib/spool-dispatch.js +22 -0
- package/package.json +1 -1
package/gm-plugkit/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1556",
|
|
4
4
|
"description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
package/gm.json
CHANGED
package/lib/spool-dispatch.js
CHANGED
|
@@ -230,6 +230,23 @@ function isSpoolPollCommand(command) {
|
|
|
230
230
|
return null;
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
+
const NATIVE_SEARCH_PATTERNS = [
|
|
234
|
+
/\bgrep\s+-(?!-)[A-Za-z]*[rR][A-Za-z]*(?:[=\s]|$)/,
|
|
235
|
+
/\bgrep\s+--recursive\b/,
|
|
236
|
+
/(?:^|[\n;&|]|&&)\s*rg\s+(?!-{1,2}(?:version|help)\b)/,
|
|
237
|
+
];
|
|
238
|
+
|
|
239
|
+
const NATIVE_SEARCH_REASON = 'native code/file/symbol search (grep -r / rg over the tree) is forbidden -- route the lookup through the codesearch verb so it hits the committed code-search index and stays in the spool ledger. Write .gm/exec-spool/in/codesearch/<N>.txt with {"query":"..."} and Read the response; use the recall verb for prior knowledge. A pipe-filter on command output (cmd | grep X) and grep on a single named file are fine; what this gate denies is searching the tree natively (grep -r/-R/-rl/-rn, ripgrep), which bypasses the index and is non-portable across harnesses.';
|
|
240
|
+
|
|
241
|
+
function isNativeSearchCommand(command) {
|
|
242
|
+
if (!command) return null;
|
|
243
|
+
const stripped = stripHeredocsAndStringLiterals(command);
|
|
244
|
+
for (const re of NATIVE_SEARCH_PATTERNS) {
|
|
245
|
+
if (re.test(stripped)) return re.source;
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
|
|
233
250
|
const DEFER_MARKERS = [
|
|
234
251
|
'next pass', 'next session', 'next turn',
|
|
235
252
|
'defer to later', 'deferred to later', 'deferred for later',
|
|
@@ -377,6 +394,11 @@ function checkDispatchGates(sessionId, operation, extra) {
|
|
|
377
394
|
logDeviation('deviation.spool-poll', { operation, pattern, command_excerpt: String(extra.command).slice(0, 200) });
|
|
378
395
|
return { allowed: false, reason: SPOOL_POLL_REASON };
|
|
379
396
|
}
|
|
397
|
+
const searchPattern = isNativeSearchCommand(extra.command);
|
|
398
|
+
if (searchPattern) {
|
|
399
|
+
logDeviation('deviation.native-search-bash', { operation, pattern: searchPattern, command_excerpt: String(extra.command).slice(0, 200) });
|
|
400
|
+
return { allowed: false, reason: NATIVE_SEARCH_REASON };
|
|
401
|
+
}
|
|
380
402
|
}
|
|
381
403
|
|
|
382
404
|
if (operation === 'mutable-resolve' && extra && (!extra.witness_evidence || String(extra.witness_evidence).trim() === '')) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1556",
|
|
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",
|