gm-skill 2.0.2541 → 2.0.2543

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/AGENTS.md CHANGED
@@ -28,7 +28,7 @@ Repo root = package root = published `gm-skill` npm package; no factory, no sepa
28
28
 
29
29
  ## WASM guest, one native host (agentplug-runner is the sole loader)
30
30
 
31
- Plugkit-core = the wasm cdylib guest (the gm brain), published as `plugkit.wasm`/`plugkit-slim.wasm` from `AnEntrypoint/plugkit-bin` by the cascade. It is host-agnostic, and `agentplug-runner` is the SOLE host that loads it. The JS wasm-host (`plugkit-wasm-wrapper.js` + `gm-plugkit/wrapper/`) and the redundant `gm-runner` native host are both retired -- there is no fallback loader; agentplug-runner is required.
31
+ Plugkit-core = the wasm cdylib guest (the gm brain), published as `plugkit.wasm`/`plugkit-slim.wasm` from `AnEntrypoint/plugkit-bin` by the cascade. It is host-agnostic, and `agentplug-runner` is the SOLE host that loads it. The JS wasm-host and the redundant `gm-runner` native host are both retired and removed from the tree -- there is no fallback loader; agentplug-runner is required.
32
32
 
33
33
  **`agentplug-runner`** (repo `AnEntrypoint/agentplug`, published to `AnEntrypoint/agentplug-bin`) is a real native wasmtime binary that loads gm.wasm as one plugin among siblings (`bert`/`libsql`/`treesitter`), routing gm.wasm's `host_plugin_call`/`host_vec_embed` to those shared plugins -- browser and task are both native in agentplug-host, needing nothing from the retired JS wrapper. Full mechanics: the recall store (`recall: agentplug-runner wasmtime plugin loading mechanics`).
34
34
 
@@ -46,7 +46,7 @@ Wasm host-import link-module rule (`#[link(wasm_import_module="env")]` on every
46
46
 
47
47
  Dispatch = Write `.gm/exec-spool/in/<verb>/<N>.txt`, Read `.gm/exec-spool/out/<verb>-<N>.json` (nested) or `out/<N>.json` (root). `<N>` is session-id-prefixed (`<session_id>-<local-counter>`), never a bare small integer -- the shared daemon claims and answers in-files by the literal `(verb, N)` pair with no per-session partition, so unprefixed sequential ids collide across concurrent sessions on the same project (recall: `gm spool dispatch id collision cross-session crosstalk`). Wasm orchestrator services every verb; harness never executes side effects directly.
48
48
 
49
- - **Orchestrator verbs**: `instruction`, `transition`, `phase-status`, `mutable-resolve`, `memorize-fire`, `residual-scan`, `auto-recall`.
49
+ - **Orchestrator verbs**: `instruction`, `transition`, `phase-status`, `mutable-resolve`, `mutable-add`, `mutable-list`, `memorize-fire`, `memorize-continue`, `discipline-note`, `residual-scan`, `auto-recall`, `prd-add`, `prd-resolve`, `prd-list`, `task-spawn`, `task-list`, `task-stop`, `task-output`, `fsm-vendor`, `fsm-validate`, `claim-audit`, `submodule-check`.
50
50
  - **Wasm-direct verbs**: fs/kv/exec/fetch/env, recall, codesearch, memorize(+prune), health, filter, full git verb family. Enumeration in the recall store (`recall: wasm-direct plugkit verbs full list`).
51
51
  - **Host-native verb**: `background-convert` (`{verb, task}`) detaches an already-in-flight dispatch so the daemon worker stops waiting on it -- agent-initiated only, never routed to gm.wasm. Detail: `.gm/daemon-config-reference.md`.
52
52
  - **memorize-prune**: prune bad/superseded memories; two-mode spec (key-remove vs query-review) in the recall store (`recall: memorize-prune verb two-mode spec`).
@@ -193,7 +193,7 @@ The `gm-runner` crate and its separate `gm-runner.yml` CI workflow are retired a
193
193
 
194
194
  | repo | role |
195
195
  | --- | --- |
196
- | agentplug, agentplug-bert, agentplug-libsql, agentplug-treesitter, gm-config, rs-codeinsight, rs-plugkit, rs-search | active-dependency (submodule) |
196
+ | agentplug, agentplug-bert, agentplug-libsql, agentplug-treesitter, gm-config, rs-codeinsight, rs-plugkit, rs-search, vendor/tencentdb-agent-memory | active-dependency (submodule) |
197
197
  | rs-codeinsight, rs-search, rs-plugkit, gm | active-sibling (cascade trigger) |
198
198
  | rs-learn, rs-exec, gm-runner-bin, 12 legacy gm-\<platform\> repos | retired-tombstone (archived, README points at rs-plugkit) |
199
199
 
@@ -735,14 +735,20 @@ async function resolveLatestRemoteVersionViaGit(timeoutMs) {
735
735
  tags.sort(compareDottedSemverAscending);
736
736
  for (let i = tags.length - 1; i >= 0; i--) {
737
737
  const version = tags[i];
738
- try {
739
- await httpHeadOk(`https://github.com/AnEntrypoint/plugkit-bin/releases/download/v${version}/plugkit.wasm`, timeoutMs || 3000);
740
- return version;
741
- } catch (_) { /* asset missing for this tag, try the next-newest */ }
738
+ if (await assetExistsForTag(version, timeoutMs)) return version;
742
739
  }
743
740
  return null;
744
741
  }
745
742
 
743
+ async function assetExistsForTag(version, timeoutMs) {
744
+ try {
745
+ await httpHeadOk(`https://github.com/AnEntrypoint/plugkit-bin/releases/download/v${version}/plugkit.wasm`, timeoutMs || 3000);
746
+ return true;
747
+ } catch (_) {
748
+ return false;
749
+ }
750
+ }
751
+
746
752
  async function resolveLatestRemoteVersion(timeoutMs) {
747
753
  try {
748
754
  const buf = await httpGetBuffer('https://api.github.com/repos/AnEntrypoint/plugkit-bin/releases?per_page=50', timeoutMs || 3000);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.2541",
3
+ "version": "2.0.2543",
4
4
  "description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform wasm, verifies SHA256, and launches agentplug-runner (the native wasm host) as the spool watcher daemon.",
5
5
  "main": "index.js",
6
6
  "bin": {
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.2541",
3
+ "version": "2.0.2543",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.2541",
3
+ "version": "2.0.2543",
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",
@@ -115,15 +115,12 @@ function listMemoryFiles(namespace) {
115
115
 
116
116
  function probeLegacyRsLearnDb() {
117
117
  if (!existsSync(RS_LEARN_DB)) return { present: false };
118
- // rs-learn.db is a retired sqlite/libsql file; rs-plugkit's own
119
- // legacy_reaper.rs deletes it outright on its next reap pass (no
120
- // migration path -- the crate implementing it is gone, its schema was
121
- // never documented, and nothing in the current codebase reads it). This
122
- // script only reports its presence/size so an operator knows it existed
123
- // and was NOT migrated (it predates the current .gm/memories corpus,
124
- // which is the actual source of truth this script migrates from).
125
118
  const size = statSync(RS_LEARN_DB).size;
126
- return { present: true, sizeBytes: size, note: "not migrated -- retired format with no readable schema; will be deleted by rs-plugkit's own legacy_reaper on its next pass" };
119
+ return {
120
+ present: true,
121
+ sizeBytes: size,
122
+ note: "not migrated -- retired sqlite/libsql format predating the .gm/memories corpus, undocumented schema, no reader in the current codebase; rs-plugkit's own legacy_reaper.rs deletes it outright on its next reap pass",
123
+ };
127
124
  }
128
125
 
129
126
  function dispatchVerb(verb, body, timeoutMs = 30_000) {