@sabaiway/agent-workflow-memory 8.1.0 → 8.1.1
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/CHANGELOG.md +8 -0
- package/SKILL.md +1 -1
- package/capability.json +1 -1
- package/package.json +1 -1
- package/references/scripts/migrate-gates.mjs +11 -9
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to the memory substrate. Versions are this **package's** npm
|
|
|
4
4
|
they are distinct from the **deployment-lineage** stamp written into a project's
|
|
5
5
|
`docs/ai/.memory-version` (which tracks the shared `agent-workflow` lineage, head `4.0.0`).
|
|
6
6
|
|
|
7
|
+
## 8.1.1 — the gate-migration's checker screen takes an argument tail (AD-158)
|
|
8
|
+
|
|
9
|
+
`references/scripts/migrate-gates.mjs`: the guarded `checker-claim canon` region is byte-identical to the kit's
|
|
10
|
+
`tools/checker-claim.mjs` again. `checkerClaimTool` gains an optional third parameter, the exact argument tail
|
|
11
|
+
(default `--check`), matched as literal space-separated tokens at the end of the command; every existing call passes
|
|
12
|
+
two arguments and matches exactly as before. The kit's new declare verb (kit 14.12.0) uses the tail for
|
|
13
|
+
`--check --in-flight` and `--all`. PATCH: no migration result changes.
|
|
14
|
+
|
|
7
15
|
## 8.1.0 — the deployment-lineage head moves to 4.0.0 (AD-157)
|
|
8
16
|
|
|
9
17
|
`scripts/stamp-takeover.mjs`: `LINEAGE_HEAD` is `4.0.0`, so a memory bootstrap stamps `docs/ai/.memory-version` with
|
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: agent-workflow-memory
|
|
|
3
3
|
description: Deploy or upgrade a portable AI-agent memory substrate in any project — an entry-point `AGENTS.md` (+ `CLAUDE.md` alias) and a structured `docs/ai/` context store with cap/archive/index enforcement. Use when the user wants to bootstrap `docs/ai/`, set up the Memory Map and session protocols, install the docs-rotation pre-commit hook, or run `/agent-workflow-memory` / `/agent-workflow-memory upgrade`. Triggers on "set up the memory system", "deploy the AI memory here", "bootstrap docs/ai", "upgrade the memory substrate". This is the substrate only — the workflow methodology (plan→execute→review, queue, Cleanup) is owned elsewhere and injected into AGENTS.md by the family composition root.
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
metadata:
|
|
6
|
-
version: '8.1.
|
|
6
|
+
version: '8.1.1'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# agent-workflow-memory
|
package/capability.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sabaiway/agent-workflow-memory",
|
|
3
|
-
"version": "8.1.
|
|
3
|
+
"version": "8.1.1",
|
|
4
4
|
"description": "Portable, cross-agent memory substrate for AI coding agents — an AGENTS.md entry point + docs/ai context with cap/archive/index enforcement, deployable standalone or as part of the agent-workflow family. The memory layer of the agent-workflow family.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agents",
|
|
@@ -157,7 +157,7 @@ export const isCoverageProducerGate = (gate) => {
|
|
|
157
157
|
// A cmd makes exactly ONE of three claims about a given tool, and collapsing them into a boolean is
|
|
158
158
|
// what makes a VENDORED copy of the tool read as "the tool is not declared at all" — a false
|
|
159
159
|
// absence, with a remedy (adopt it) that then collides with the entry already there:
|
|
160
|
-
// • canonical — this tool's `--check`
|
|
160
|
+
// • canonical — this tool's invocation with its tail (`--check` by default), resolving to THIS copy
|
|
161
161
|
// • tool-elsewhere — the same invocation shape, resolving to a DIFFERENT real copy
|
|
162
162
|
// • not-the-tool — anything else: another command, a masked form, an inadmissible token, or a
|
|
163
163
|
// path nothing can resolve
|
|
@@ -195,16 +195,18 @@ const bareTokenSafe = (text) => text.length > 0 && ![...text].some((ch) => {
|
|
|
195
195
|
|
|
196
196
|
const RE_META = /[.*+?^${}()|[\]\\]/g;
|
|
197
197
|
|
|
198
|
-
// checkerClaimTool(basename, canonicalPath) → the screen for ONE tool. The shape is the STRICT
|
|
199
|
-
// command — `node` + ONE (quoted or bare) path token + the exact basename +
|
|
200
|
-
// masked form (`--check --help`, `--check || true`, a prefix
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
//
|
|
204
|
-
|
|
198
|
+
// checkerClaimTool(basename, canonicalPath, tail) → the screen for ONE tool. The shape is the STRICT
|
|
199
|
+
// full command — `node` + ONE (quoted or bare) path token + the exact basename + the exact argument
|
|
200
|
+
// tail (`--check` by default) + END — so a masked form (`--check --help`, `--check || true`, a prefix
|
|
201
|
+
// command) or a reordered tail is never any claim at all. Separators are PLAIN SPACES, not \s: a
|
|
202
|
+
// newline between the tokens is not a command a runner would execute as written. The basename and
|
|
203
|
+
// every tail token are regex-escaped here, never by the caller — a caller-escaped literal is one
|
|
204
|
+
// forgotten backslash away from a dot matching any byte.
|
|
205
|
+
export const checkerClaimTool = (basename, canonicalPath, tail = '--check') => {
|
|
205
206
|
const safe = basename.replace(RE_META, '\\$&');
|
|
207
|
+
const args = tail.split(' ').map((token) => token.replace(RE_META, '\\$&')).join(' +');
|
|
206
208
|
return Object.freeze({
|
|
207
|
-
re: new RegExp(`^node +(?:"((?:[^"]*[/\\\\])?${safe})"|((?:[^\\s"]*[/\\\\])?${safe}))
|
|
209
|
+
re: new RegExp(`^node +(?:"((?:[^"]*[/\\\\])?${safe})"|((?:[^\\s"]*[/\\\\])?${safe})) +${args}$`),
|
|
208
210
|
canonical: canonicalPath,
|
|
209
211
|
});
|
|
210
212
|
};
|