gm-skill 2.0.1602 → 2.0.1604

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
- 0.1.681
1
+ 0.1.682
@@ -1 +1 @@
1
- 69cc8f062da496978b9e57d72e9b5f45e8e771c5a7e6d2dc95d4e6d200abdbe4 plugkit.wasm
1
+ ff2469ddd1475ff5d7cff2b8d76c67334f3afb69ccb67adde544370ed62b35a2 plugkit.wasm
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1602",
3
+ "version": "2.0.1604",
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": {
@@ -308,6 +308,18 @@ function capInstructionPacks(parsed) {
308
308
  }
309
309
  }
310
310
 
311
+ function injectUpdateWarning(parsed) {
312
+ if (!parsed || typeof parsed !== 'object') return;
313
+ let upd;
314
+ try {
315
+ upd = JSON.parse(fs.readFileSync(path.join(spoolDir, '.update-available.json'), 'utf-8'));
316
+ } catch (_) { return; }
317
+ if (!upd || !upd.installed || !upd.latest || upd.installed === upd.latest) return;
318
+ const target = (parsed.data && typeof parsed.data === 'object') ? parsed.data : parsed;
319
+ target.update_available = { installed: upd.installed, latest: upd.latest, update_url: upd.update_url || null };
320
+ target.update_warning = `STALE RUNTIME: running plugkit ${upd.installed} but ${upd.latest} is published and not yet running. Restart onto the new version now: bun x gm-plugkit@latest --kill-stale-watchers; bun x gm-plugkit@latest spool. This warning repeats every turn until the running version catches up.`;
321
+ }
322
+
311
323
  function mergeAutoRecallIntoInstructionResponse(resultStr, autoRecall) {
312
324
  if (!autoRecall) return resultStr;
313
325
  let parsed;
@@ -3089,11 +3101,19 @@ async function runSpoolWatcher(instance, spoolDir) {
3089
3101
 
3090
3102
  if (autoRecallPayload) {
3091
3103
  resultStr = mergeAutoRecallIntoInstructionResponse(resultStr, autoRecallPayload);
3092
- } else if (verb === 'instruction' || verb === 'transition') {
3104
+ try {
3105
+ const parsed = JSON.parse(resultStr);
3106
+ if (parsed && typeof parsed === 'object') {
3107
+ injectUpdateWarning(parsed);
3108
+ resultStr = JSON.stringify(parsed);
3109
+ }
3110
+ } catch (_) {}
3111
+ } else if (verb === 'instruction' || verb === 'transition' || verb === 'phase-status') {
3093
3112
  try {
3094
3113
  const parsed = JSON.parse(resultStr);
3095
3114
  if (parsed && typeof parsed === 'object') {
3096
3115
  capInstructionPacks(parsed);
3116
+ injectUpdateWarning(parsed);
3097
3117
  resultStr = JSON.stringify(parsed);
3098
3118
  }
3099
3119
  } catch (_) {}
@@ -1 +1 @@
1
- 0.1.681
1
+ 0.1.682
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1602",
3
+ "version": "2.0.1604",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -17,5 +17,5 @@
17
17
  "publishConfig": {
18
18
  "access": "public"
19
19
  },
20
- "plugkitVersion": "0.1.681"
20
+ "plugkitVersion": "0.1.682"
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1602",
3
+ "version": "2.0.1604",
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",