gm-skill 2.0.1564 → 2.0.1566
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
|
@@ -26,13 +26,13 @@ This repo IS the published `gm-skill` npm package: repo root = package root, no
|
|
|
26
26
|
|
|
27
27
|
## WASM-only
|
|
28
28
|
|
|
29
|
-
The plugkit stack runs as a wasm cdylib loaded by `plugkit-wasm-wrapper.js` under Node/bun -- no native binaries built, downloaded, or published. The shipped `plugkit.wasm`
|
|
29
|
+
The plugkit stack runs as a wasm cdylib loaded by `plugkit-wasm-wrapper.js` under Node/bun -- no native binaries built, downloaded, or published. The shipped `plugkit.wasm` is fetched at bootstrap from `plugkit-wasm` npm / `plugkit-bin` gh-releases, sha256-pinned. Size (~149MB) + embedded-model (offline in-wasm embeddings) mechanics in rs-learn (`recall: WASM-only plugkit size mechanics`).
|
|
30
30
|
|
|
31
31
|
**Every wasm host-import `extern "C"` block carries `#[link(wasm_import_module = "env")]`** -- in rs-plugkit AND every dep crate linked into the cdylib (rs-learn) AND any sibling building wasm (rs-exec, rs-search); miss it anywhere and the cascade goes dark (local builds stay green, only Linux CI link fails). Incident + host-fn enumeration in rs-learn (`recall: cascade outage wasm import module link`, `recall: wasm host-import link-module trap`).
|
|
32
32
|
|
|
33
|
-
**`plugkit-wasm-wrapper.js` is ESM; import node builtins at module scope, never inline `require()`**
|
|
33
|
+
**`plugkit-wasm-wrapper.js` is ESM; import node builtins at module scope, never inline `require()`** -- silent throw under bun ESM. Incident + mechanics in rs-learn (`recall: wrapper require not defined under bun`).
|
|
34
34
|
|
|
35
|
-
**Every single-instance/lock guard is atomic** (
|
|
35
|
+
**Every single-instance/lock guard is atomic** (O_EXCL / atomic-rename), never check-then-act; count plugkit processes by executable Name. Mechanics + incident in rs-learn (`recall: supervisor churn TOCTOU atomic guard`).
|
|
36
36
|
|
|
37
37
|
## Spool dispatch ABI
|
|
38
38
|
|
|
@@ -4,7 +4,7 @@ YOU are the state machine. Plugkit is the synchronous library serving this prose
|
|
|
4
4
|
|
|
5
5
|
Your authorization = the request. Your receipt = the PRD you write. Trajectory PLAN -> EXECUTE -> EMIT -> VERIFY -> COMPLETE, one continuous flow, each transition a verb you dispatch. Scope = the closure of the destructive transform admissible over the session; your first emit = closure, not prefix.
|
|
6
6
|
|
|
7
|
-
**Continuation invariant (the brick wall).** A turn ending without a tool call is a stop -- the harness reads only tool calls, so a prose-only message ends the session. While in-flight (phase != COMPLETE OR prd_pending > 0) end every turn in a verb dispatch, never prose, never a summary/recap (summary is a stop) -- and never a turn-final sentence that names the next move instead of making it (it strands the chain where the prose pointed; take the move). Only this surface returning phase=COMPLETE AND prd_pending=0 authorizes stopping. Before any urge to stop, dispatch `phase-status`; non-terminal means drift, so dispatch `instruction` and keep walking. Depends only on the verb spool -- holds on every agent.
|
|
7
|
+
**Continuation invariant (the brick wall).** A turn ending without a tool call is a stop -- the harness reads only tool calls, so a prose-only message ends the session. While in-flight (phase != COMPLETE OR prd_pending > 0) end every turn in a verb dispatch, never prose, never a summary/recap (summary is a stop) -- and never a turn-final sentence that names the next move instead of making it (it strands the chain where the prose pointed; take the move). Only this surface returning phase=COMPLETE AND prd_pending=0 authorizes stopping. Before any urge to stop, dispatch `phase-status`; non-terminal means drift, so dispatch `instruction` and keep walking. Depends only on the verb spool -- holds on every agent. Inherited open rows (`prd_pending > 0` at entry, in `ready_wave`) are undone work to resume, never to orphan -- the chain is not done while a row you inherited sits pending.
|
|
8
8
|
|
|
9
9
|
## Admission Filter
|
|
10
10
|
|
|
@@ -12,6 +12,8 @@ First non-trivial dispatch = a single-message parallel fan-out of `recall` + `co
|
|
|
12
12
|
|
|
13
13
|
Write the PRD as the central plan-item store (`|F|=1`): enumerate every content node as the closure of the destructive transform admissible over the session, a dependency DAG partitioned along dependency edges, not schedule. Reach permits the next node; the next node is in-scope. Naming a smaller slice while a larger reachable shape exists is non-monotonic. Expand the PRD by dispatching `prd-add` on every in-spirit reachable residual you find, declaring the read in one line.
|
|
14
14
|
|
|
15
|
+
**Inherited rows resume first.** A non-empty `ready_wave` / `prd_pending > 0` at entry is undone work a prior turn or an abandoned session left mid-transform -- it is THIS cover's first slice, not someone else's problem. Resume each inherited row to `prd-resolve` (with witness) or an explicit re-scope/close before adding new rows; never plan a disjoint fresh cover that orphans them. A finishing agent that leaves inherited rows pending has stopped mid-transform, not completed.
|
|
16
|
+
|
|
15
17
|
"Every possible" is the load-bearing test -- apply it to every noun, surface, transform, and output the request reaches; each application yields rows. A single-digit count on a non-trivial request means you stopped early -- re-orient and re-enumerate. The closure is dense, not minimal; density at PLAN is the only protection against unreconcilable state at COMPLETE. An inline TODO in the response body violates `|F|=1`.
|
|
16
18
|
|
|
17
19
|
## Expansion
|
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.1566",
|
|
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": {
|
|
@@ -3551,6 +3551,7 @@ async function runSpoolWatcher(instance, spoolDir) {
|
|
|
3551
3551
|
try {
|
|
3552
3552
|
const fp = path.join(outDir, entry);
|
|
3553
3553
|
const s = fs.statSync(fp);
|
|
3554
|
+
if (!s.isFile()) continue;
|
|
3554
3555
|
if (s.mtimeMs < cutoff) { fs.unlinkSync(fp); swept++; }
|
|
3555
3556
|
} catch (e) { console.error(`[retention] failed to sweep ${entry}: ${e.message}`); }
|
|
3556
3557
|
}
|
package/gm.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1566",
|
|
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",
|