@skillstate/core 2.2.1 → 3.0.0
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/dist/hook-runtime.d.ts +16 -1
- package/dist/hook-runtime.d.ts.map +1 -1
- package/dist/hook-runtime.js +24 -2
- package/dist/hook-runtime.js.map +1 -1
- package/dist/prompt-contract.d.ts.map +1 -1
- package/dist/prompt-contract.js +2 -2
- package/dist/prompt-contract.js.map +1 -1
- package/dist/schemas/generic-procedure.d.ts +23 -2
- package/dist/schemas/generic-procedure.d.ts.map +1 -1
- package/dist/schemas/generic-procedure.js +23 -20
- package/dist/schemas/generic-procedure.js.map +1 -1
- package/package.json +1 -1
package/dist/hook-runtime.d.ts
CHANGED
|
@@ -36,7 +36,11 @@ export declare function sanitizeAgentId(agentId: string): string;
|
|
|
36
36
|
* Agent id from a host session id (Claude Code / Codex hook stdin carry
|
|
37
37
|
* `session_id`; opencode hooks carry `sessionID`): the short prefix — the
|
|
38
38
|
* first 8 characters — keeps agent directories bounded while remaining
|
|
39
|
-
* unique enough per session.
|
|
39
|
+
* unique enough per session. The prefix is sanitized through
|
|
40
|
+
* {@link sanitizeAgentId} so a hostile or garbage session id can never
|
|
41
|
+
* craft a traversal-prone directory name (the sanitizer collapses `///`,
|
|
42
|
+
* whitespace, and other junk into `-`/empty; empty resolves to `''` =
|
|
43
|
+
* "no agent"). Non-string/empty input yields `''`.
|
|
40
44
|
*/
|
|
41
45
|
export declare function resolveAgentIdFromSession(sessionId: unknown): string;
|
|
42
46
|
/**
|
|
@@ -143,6 +147,17 @@ export declare function findFencedPatch(text: string): PatchLookup;
|
|
|
143
147
|
* holding a non-object is an invalid attempt.
|
|
144
148
|
*/
|
|
145
149
|
export declare function findRawPatch(text: string): PatchLookup;
|
|
150
|
+
/**
|
|
151
|
+
* Existence guard for the generated hook scripts' INERT mode: `true` when
|
|
152
|
+
* the state file at `statePath` is accessible via the injected `fs` (real
|
|
153
|
+
* `node:fs` in hooks, mocks in tests). A missing file means the project has
|
|
154
|
+
* no skillstate state — the generated hooks then stay INERT (no context
|
|
155
|
+
* injection, no state-file creation). Plain JS — survives `fn.toString()`
|
|
156
|
+
* inlining.
|
|
157
|
+
*/
|
|
158
|
+
export declare function stateFileExists(statePath: string, fs: {
|
|
159
|
+
accessSync(path: string): void;
|
|
160
|
+
}): boolean;
|
|
146
161
|
/**
|
|
147
162
|
* Read the session-meta sidecar's status (`<dir>/.session-meta.json`,
|
|
148
163
|
* sibling of the state file). Plain JS — inlined into the generated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-runtime.d.ts","sourceRoot":"","sources":["../src/hook-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED
|
|
1
|
+
{"version":3,"file":"hook-runtime.d.ts","sourceRoot":"","sources":["../src/hook-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-runtime.js
CHANGED
|
@@ -43,12 +43,16 @@ export function sanitizeAgentId(agentId) {
|
|
|
43
43
|
* Agent id from a host session id (Claude Code / Codex hook stdin carry
|
|
44
44
|
* `session_id`; opencode hooks carry `sessionID`): the short prefix — the
|
|
45
45
|
* first 8 characters — keeps agent directories bounded while remaining
|
|
46
|
-
* unique enough per session.
|
|
46
|
+
* unique enough per session. The prefix is sanitized through
|
|
47
|
+
* {@link sanitizeAgentId} so a hostile or garbage session id can never
|
|
48
|
+
* craft a traversal-prone directory name (the sanitizer collapses `///`,
|
|
49
|
+
* whitespace, and other junk into `-`/empty; empty resolves to `''` =
|
|
50
|
+
* "no agent"). Non-string/empty input yields `''`.
|
|
47
51
|
*/
|
|
48
52
|
export function resolveAgentIdFromSession(sessionId) {
|
|
49
53
|
if (typeof sessionId !== 'string' || sessionId.length === 0)
|
|
50
54
|
return '';
|
|
51
|
-
return sessionId.slice(0, 8);
|
|
55
|
+
return sanitizeAgentId(sessionId.slice(0, 8));
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* Resolve the per-project state file for a working directory — the pure,
|
|
@@ -315,6 +319,23 @@ export function findRawPatch(text) {
|
|
|
315
319
|
}
|
|
316
320
|
return { absent: true };
|
|
317
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Existence guard for the generated hook scripts' INERT mode: `true` when
|
|
324
|
+
* the state file at `statePath` is accessible via the injected `fs` (real
|
|
325
|
+
* `node:fs` in hooks, mocks in tests). A missing file means the project has
|
|
326
|
+
* no skillstate state — the generated hooks then stay INERT (no context
|
|
327
|
+
* injection, no state-file creation). Plain JS — survives `fn.toString()`
|
|
328
|
+
* inlining.
|
|
329
|
+
*/
|
|
330
|
+
export function stateFileExists(statePath, fs) {
|
|
331
|
+
try {
|
|
332
|
+
fs.accessSync(statePath);
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
318
339
|
/**
|
|
319
340
|
* Read the session-meta sidecar's status (`<dir>/.session-meta.json`,
|
|
320
341
|
* sibling of the state file). Plain JS — inlined into the generated
|
|
@@ -356,6 +377,7 @@ export function hookRuntimeSnippet() {
|
|
|
356
377
|
findRawPatch,
|
|
357
378
|
sleepSync,
|
|
358
379
|
lockStateWrite,
|
|
380
|
+
stateFileExists,
|
|
359
381
|
readSessionMetaStatus,
|
|
360
382
|
]
|
|
361
383
|
.map((fn) => fn.toString())
|
package/dist/hook-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-runtime.js","sourceRoot":"","sources":["../src/hook-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,oDAAoD;AACpD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,OAAO;SACX,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"hook-runtime.js","sourceRoot":"","sources":["../src/hook-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-contract.d.ts","sourceRoot":"","sources":["../src/prompt-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,oHAC2E,CAAC;AAEpH,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,QAOzB,CAAC;AAEb,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,oIACqG,CAAC;AAEpI;;;GAGG;AACH,eAAO,MAAM,wBAAwB,uGAC4D,CAAC;AAElG;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAOrB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2JACsH,CAAC;AAE3J;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,+GACyE,CAAC;AAE/G;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ1D;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,uEAAuE;IACvE,IAAI,EAAE,cAAc,CAAC;IACrB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prompt-contract.d.ts","sourceRoot":"","sources":["../src/prompt-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,oHAC2E,CAAC;AAEpH,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,QAOzB,CAAC;AAEb,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,oIACqG,CAAC;AAEpI;;;GAGG;AACH,eAAO,MAAM,wBAAwB,uGAC4D,CAAC;AAElG;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAOrB,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2JACsH,CAAC;AAE3J;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,+GACyE,CAAC;AAE/G;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ1D;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,uEAAuE;IACvE,IAAI,EAAE,cAAc,CAAC;IACrB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA4E/D"}
|
package/dist/prompt-contract.js
CHANGED
|
@@ -9,7 +9,7 @@ export const STATE_PATCH_CONTRACT_HEADER = 'A JSON block containing both your St
|
|
|
9
9
|
export const STATE_PATCH_EXAMPLE_JSON = [
|
|
10
10
|
'```json',
|
|
11
11
|
'{',
|
|
12
|
-
' "state_patch": { "
|
|
12
|
+
' "state_patch": { "goal": "What this procedure achieves", "obsolete_step": null },',
|
|
13
13
|
' "action": "your_action_here"',
|
|
14
14
|
'}',
|
|
15
15
|
'```',
|
|
@@ -103,7 +103,7 @@ export function skillMdBody(options) {
|
|
|
103
103
|
if (patchHook !== undefined) {
|
|
104
104
|
body.push('- watch every Bash tool result and merge a fenced ```json block carrying', ` a \`state_patch\` into the state file (\`${patchHook}\`).`);
|
|
105
105
|
}
|
|
106
|
-
body.push('', 'Sub-
|
|
106
|
+
body.push('', 'One state file per session: the injected state and the skillstate MCP', 'tools address THE SAME file — never reconstruct or duplicate it.', 'Sub-agent sessions (spawned tasks) automatically get isolated copies', 'under agents/<parent>-<session>/ — merge them with `agent.merge` when', 'their task completes.', '', 'The injected state is authoritative — history is not reliable. Never', 'reconstruct execution context from the conversation.', '', '## Process', '', '1. Orient yourself: read the injected state, or call the skillstate MCP', ' tools `state.summary` (compact) / `state.get` (full dump).', '2. Observe the result of your last action.', '3. Reason about what to do next, given the state and the observation.', '4. Persist progress with the skillstate MCP tool `state.patch` (sparse', ' patch; set a key to `null` to delete it; dry-run first with', ' `state.validate` when unsure; `state.diff` shows what changed since', ' your last look)');
|
|
107
107
|
if (patchHook !== undefined) {
|
|
108
108
|
body.push(' , and/or emit a fenced JSON block with exactly two', ' keys inside a Bash tool call so the `PostToolUse` hook merges it:', '', STATE_PATCH_EXAMPLE_JSON, '', `- ${STATE_PATCH_RULES}`);
|
|
109
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-contract.js","sourceRoot":"","sources":["../src/prompt-contract.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,iHAAiH,CAAC;AAEpH,uEAAuE;AACvE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,GAAG;IACH,
|
|
1
|
+
{"version":3,"file":"prompt-contract.js","sourceRoot":"","sources":["../src/prompt-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Default neutral spec for `skillstate init`
|
|
2
|
+
* Default neutral spec for `skillstate init` -- domain-agnostic state-based
|
|
3
3
|
* execution. Projects differ; the task spec is the user's concern
|
|
4
4
|
* (`skillstate init --spec <path>`). This schema only fixes the universal
|
|
5
5
|
* bookkeeping fields every stateful procedure needs.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* --- Why the instructions are phrased the way they are --------------------
|
|
8
|
+
*
|
|
9
|
+
* The previous wording opened with "You are operating in state-based
|
|
10
|
+
* execution mode on an arbitrary task" and told the model to "Emit a JSON
|
|
11
|
+
* block with exactly two keys". Both are prompt overrides, and both caused
|
|
12
|
+
* real failures: an agent given a coding task started emitting state JSON
|
|
13
|
+
* instead of doing the work.
|
|
14
|
+
*
|
|
15
|
+
* Two properties matter, and both are asserted in
|
|
16
|
+
* `tests/schemas/generic-procedure.test.ts`:
|
|
17
|
+
*
|
|
18
|
+
* 1. **Descriptive, not prescriptive.** The text describes the fields and
|
|
19
|
+
* the tools. It never tells the model how to work, what to do first, or
|
|
20
|
+
* what to output.
|
|
21
|
+
* 2. **Consistent with the real tool schema.** It names the `patch`
|
|
22
|
+
* argument of the `state.patch` tool -- the name that actually exists.
|
|
23
|
+
* The old text said `state_patch`, which no tool accepts, so a model
|
|
24
|
+
* following it produced objects the server rejected.
|
|
25
|
+
*
|
|
26
|
+
* The CTF example remains available explicitly via `skillstate init
|
|
27
|
+
* --example ctf`, and is never a default: it is a task description, and
|
|
28
|
+
* serving it unasked is how an agent ends up hunting for a flag.
|
|
8
29
|
*/
|
|
9
30
|
import type { ProceduralSpec } from '../types.js';
|
|
10
31
|
export declare const GENERIC_PROCEDURE_SPEC: ProceduralSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-procedure.d.ts","sourceRoot":"","sources":["../../src/schemas/generic-procedure.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generic-procedure.d.ts","sourceRoot":"","sources":["../../src/schemas/generic-procedure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,sBAAsB,EAAE,cAiEpC,CAAC"}
|
|
@@ -3,30 +3,33 @@ export const GENERIC_PROCEDURE_SPEC = {
|
|
|
3
3
|
name: 'State-based Execution',
|
|
4
4
|
version: '1.0.0',
|
|
5
5
|
instructions: [
|
|
6
|
-
'
|
|
6
|
+
'Optional persistent notes for this project are kept in a state file and',
|
|
7
|
+
'are restored between steps. They are a side channel for carrying facts',
|
|
8
|
+
'across a reset, not a replacement for the task you were given.',
|
|
7
9
|
'',
|
|
8
|
-
'
|
|
9
|
-
'
|
|
10
|
-
'
|
|
11
|
-
'
|
|
10
|
+
'The state has six fields:',
|
|
11
|
+
'- goal what the work is trying to achieve',
|
|
12
|
+
'- progress steps or milestones already finished',
|
|
13
|
+
'- next_steps what is planned next',
|
|
14
|
+
'- artifacts files or paths produced or modified',
|
|
15
|
+
'- blockers open obstacles or unknowns',
|
|
16
|
+
'- notes anything else worth keeping',
|
|
12
17
|
'',
|
|
13
|
-
'
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'
|
|
18
|
+
'Tools that read and write it:',
|
|
19
|
+
'- state.get / state.summary read the current state',
|
|
20
|
+
'- state.patch merge a patch, e.g.',
|
|
21
|
+
' {"patch": {"next_steps": ["run the tests"]}}',
|
|
22
|
+
'- state.validate check a patch without writing it',
|
|
23
|
+
'- state.diff see what changed since your last call',
|
|
24
|
+
'- state.checkpoint save a snapshot that state.rollback restores',
|
|
19
25
|
'',
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'- Track unknowns and obstacles in `blockers` instead of memory.',
|
|
25
|
-
'- Use `notes` for anything else worth persisting.',
|
|
26
|
-
'- Set a key to null in state_patch to delete it.',
|
|
26
|
+
'A patch merges into the state: a null value deletes that key, and nested',
|
|
27
|
+
'objects merge recursively. Patches are validated against this schema',
|
|
28
|
+
'before anything is written; an invalid patch is rejected with the',
|
|
29
|
+
'offending field and changes nothing.',
|
|
27
30
|
'',
|
|
28
|
-
'
|
|
29
|
-
'
|
|
31
|
+
'Use these tools for facts that must survive a context reset, and skip',
|
|
32
|
+
'them otherwise. Keep doing what the user asked.',
|
|
30
33
|
].join('\n'),
|
|
31
34
|
schema: {
|
|
32
35
|
goal: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-procedure.js","sourceRoot":"","sources":["../../src/schemas/generic-procedure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generic-procedure.js","sourceRoot":"","sources":["../../src/schemas/generic-procedure.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IACpD,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE;QACZ,yEAAyE;QACzE,wEAAwE;QACxE,gEAAgE;QAChE,EAAE;QACF,2BAA2B;QAC3B,oDAAoD;QACpD,sDAAsD;QACtD,sCAAsC;QACtC,qDAAqD;QACrD,4CAA4C;QAC5C,6CAA6C;QAC7C,EAAE;QACF,+BAA+B;QAC/B,qDAAqD;QACrD,kDAAkD;QAClD,2EAA2E;QAC3E,+DAA+D;QAC/D,oEAAoE;QACpE,2EAA2E;QAC3E,EAAE;QACF,0EAA0E;QAC1E,sEAAsE;QACtE,mEAAmE;QACnE,sCAAsC;QACtC,EAAE;QACF,uEAAuE;QACvE,iDAAiD;KAClD,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,iDAAiD;SAC/D;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,+BAA+B;SAC7C;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,sBAAsB;SACpC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,4CAA4C;SAC1D;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,+BAA+B;SAC7C;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,iDAAiD;SAC/D;KACF;CACF,CAAC"}
|