instar 0.28.114 → 0.28.116
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/core/frameworkSessionLaunch.d.ts +2 -2
- package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
- package/dist/core/frameworkSessionLaunch.js +18 -12
- package/dist/core/frameworkSessionLaunch.js.map +1 -1
- package/dist/providers/parity/registry.d.ts +23 -0
- package/dist/providers/parity/registry.d.ts.map +1 -0
- package/dist/providers/parity/registry.js +39 -0
- package/dist/providers/parity/registry.js.map +1 -0
- package/dist/providers/parity/rules/skillParityRule.d.ts +47 -0
- package/dist/providers/parity/rules/skillParityRule.d.ts.map +1 -0
- package/dist/providers/parity/rules/skillParityRule.js +618 -0
- package/dist/providers/parity/rules/skillParityRule.js.map +1 -0
- package/dist/providers/parity/types.d.ts +100 -0
- package/dist/providers/parity/types.d.ts.map +1 -0
- package/dist/providers/parity/types.js +13 -0
- package/dist/providers/parity/types.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/0.28.115.md +38 -0
- package/upgrades/0.28.116.md +48 -0
- package/upgrades/side-effects/feat-codex-session-resume.md +84 -0
- package/upgrades/side-effects/feat-skill-prototype.md +103 -0
|
@@ -36,8 +36,8 @@ export interface InteractiveLaunchOptions {
|
|
|
36
36
|
/** Absolute path to the CLI binary for the selected framework. */
|
|
37
37
|
binaryPath: string;
|
|
38
38
|
/**
|
|
39
|
-
* Optional session ID to resume into. Claude uses `--resume <id
|
|
40
|
-
* Codex uses
|
|
39
|
+
* Optional session ID to resume into. Claude uses `--resume <id>` (flag).
|
|
40
|
+
* Codex uses `resume <id>` (subcommand inserted right after the binary);
|
|
41
41
|
* unsupported frameworks may ignore.
|
|
42
42
|
*/
|
|
43
43
|
resumeSessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CA0BpB;AAED,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IAC1E;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS,CA0BpB;AAED,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IAC1E;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAsGD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,wBAAwB,GAChC,qBAAqB,CAMvB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC7C,GAAG,qBAAqB,CAExB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IAC1E;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAiED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAMpB"}
|
|
@@ -104,8 +104,26 @@ const codexCliBuilder = (options) => {
|
|
|
104
104
|
const resolvedModel = isLocal
|
|
105
105
|
? (options.defaultModel ?? 'llama3.2:latest')
|
|
106
106
|
: (resolveModelForFramework('codex-cli', options.defaultModel) ?? 'gpt-5.3-codex');
|
|
107
|
+
// Codex's `resume` is a subcommand (`codex resume <SESSION_ID>`), not a
|
|
108
|
+
// flag. When resuming, insert it as the first argument after the binary
|
|
109
|
+
// path — every other flag (`--model`, `--sandbox`, etc.) is accepted by
|
|
110
|
+
// the `resume` subcommand and behaves the same as on a fresh launch
|
|
111
|
+
// (verified against codex 0.130 `codex resume --help`). When not
|
|
112
|
+
// resuming, argv stays in the original fresh-launch shape.
|
|
113
|
+
//
|
|
114
|
+
// Stale-id handling: if the tracked SESSION_ID no longer exists in
|
|
115
|
+
// Codex's session store (~/.codex/sessions/...), `codex resume` exits
|
|
116
|
+
// non-zero at startup and the tmux pane shows an error. SessionManager's
|
|
117
|
+
// respawn logic catches the dead pane and the route handler can clear
|
|
118
|
+
// the stale resume id (per existing PR #248 framework-swap pattern).
|
|
119
|
+
// We don't pre-validate filesystem presence here to avoid coupling the
|
|
120
|
+
// launch helper to Codex's on-disk session layout.
|
|
121
|
+
const resumePrefix = options.resumeSessionId
|
|
122
|
+
? ['resume', options.resumeSessionId]
|
|
123
|
+
: [];
|
|
107
124
|
const argv = [
|
|
108
125
|
options.binaryPath,
|
|
126
|
+
...resumePrefix,
|
|
109
127
|
'--model', resolvedModel,
|
|
110
128
|
];
|
|
111
129
|
if (isLocal) {
|
|
@@ -117,18 +135,6 @@ const codexCliBuilder = (options) => {
|
|
|
117
135
|
else {
|
|
118
136
|
argv.push('--dangerously-bypass-approvals-and-sandbox');
|
|
119
137
|
}
|
|
120
|
-
// Codex's `resume` is a subcommand (`codex resume <id>`), not a flag.
|
|
121
|
-
// For the interactive launch path, callers who want to resume should
|
|
122
|
-
// use the subcommand form; we keep the flag-style behavior off for
|
|
123
|
-
// now since the legacy v0.x Claude code passes `--resume <id>` flat
|
|
124
|
-
// and we want consistent argv shape. Resume support for Codex lands
|
|
125
|
-
// when the topic-resume map is generalized.
|
|
126
|
-
if (options.resumeSessionId) {
|
|
127
|
-
// Best-effort: pass the id as the first non-flag positional under
|
|
128
|
-
// the hood would require the `resume` subcommand. For now, skip
|
|
129
|
-
// resume for Codex and start fresh; the warning helps users notice.
|
|
130
|
-
console.warn(`[frameworkSessionLaunch] Codex resume requested (id=${options.resumeSessionId}) but codex CLI's "resume" is a subcommand, not a flag — starting fresh. Will be supported when TopicResumeMap is generalized.`);
|
|
131
|
-
}
|
|
132
138
|
return {
|
|
133
139
|
argv,
|
|
134
140
|
envOverrides: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAgC,EAChC,WAA+B;IAE/B,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAEtC,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,iEAAiE;QACjE,kEAAkE;QAClE,8DAA8D;QAC9D,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC;QACnC,IAAI,GAAG,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC;QACxC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,iEAAiE;QACjE,+DAA+D;QAC/D,4DAA4D;QAC5D,0DAA0D;QAC1D,6DAA6D;QAC7D,2BAA2B;QAC3B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,eAAe,CAAC;QACnE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC1D,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AA8CD,MAAM,iBAAiB,GAAY,CAAC,OAAO,EAAE,EAAE;IAC7C,MAAM,IAAI,GAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gCAAgC,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,OAAO;QACL,IAAI;QACJ,YAAY,EAAE;YACZ,qEAAqE;YACrE,UAAU,EAAE,EAAE;SACf;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAY,CAAC,OAAO,EAAE,EAAE;IAC3C,oEAAoE;IACpE,mEAAmE;IACnE,8DAA8D;IAC9D,kEAAkE;IAClE,kEAAkE;IAClE,2DAA2D;IAC3D,+DAA+D;IAC/D,iEAAiE;IACjE,gEAAgE;IAChE,gEAAgE;IAChE,kEAAkE;IAClE,kEAAkE;IAClE,qCAAqC;IACrC,qEAAqE;IACrE,iEAAiE;IACjE,2DAA2D;IAC3D,qEAAqE;IACrE,kEAAkE;IAClE,uDAAuD;IACvD,oEAAoE;IACpE,kEAAkE;IAClE,oEAAoE;IACpE,oBAAoB;IACpB,mEAAmE;IACnE,mEAAmE;IACnE,qEAAqE;IACrE,gEAAgE;IAChE,kEAAkE;IAClE,4DAA4D;IAC5D,gEAAgE;IAChE,oCAAoC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC;IACzD,MAAM,aAAa,GAAG,OAAO;QAC3B,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,iBAAiB,CAAC;QAC7C,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ParityRegistry — registry of all active parity rules.
|
|
3
|
+
*
|
|
4
|
+
* Spec: specs/instar-foundations/framework-functional-parity.md
|
|
5
|
+
* specs/provider-portability/13-framework-parity-sentinel.md
|
|
6
|
+
*
|
|
7
|
+
* Skill prototype shape (this PR): one rule (skillParityRule). Hook, Agent,
|
|
8
|
+
* Tool, Memory primitives add their rules later. The FrameworkParitySentinel
|
|
9
|
+
* (separate spec) consumes this registry to drive its scan + remediate loop.
|
|
10
|
+
*
|
|
11
|
+
* Registry is a plain in-memory map seeded at boot. No persistence needed —
|
|
12
|
+
* rules are code; registration is declarative.
|
|
13
|
+
*/
|
|
14
|
+
import type { ParityRule, FunctionalPrimitive } from './types.js';
|
|
15
|
+
export declare function getParityRule(primitive: FunctionalPrimitive): ParityRule | undefined;
|
|
16
|
+
export declare function listParityRules(): ReadonlyArray<ParityRule>;
|
|
17
|
+
/**
|
|
18
|
+
* Test-only seam — replace the rule for a primitive (used in unit tests to
|
|
19
|
+
* inject mock rules without rebuilding the import graph).
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare function _replaceParityRuleForTest(primitive: FunctionalPrimitive, rule: ParityRule): () => void;
|
|
23
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/providers/parity/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOlE,wBAAgB,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,UAAU,GAAG,SAAS,CAEpF;AAED,wBAAgB,eAAe,IAAI,aAAa,CAAC,UAAU,CAAC,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,IAAI,CAOtG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ParityRegistry — registry of all active parity rules.
|
|
3
|
+
*
|
|
4
|
+
* Spec: specs/instar-foundations/framework-functional-parity.md
|
|
5
|
+
* specs/provider-portability/13-framework-parity-sentinel.md
|
|
6
|
+
*
|
|
7
|
+
* Skill prototype shape (this PR): one rule (skillParityRule). Hook, Agent,
|
|
8
|
+
* Tool, Memory primitives add their rules later. The FrameworkParitySentinel
|
|
9
|
+
* (separate spec) consumes this registry to drive its scan + remediate loop.
|
|
10
|
+
*
|
|
11
|
+
* Registry is a plain in-memory map seeded at boot. No persistence needed —
|
|
12
|
+
* rules are code; registration is declarative.
|
|
13
|
+
*/
|
|
14
|
+
import { skillParityRule } from './rules/skillParityRule.js';
|
|
15
|
+
const RULES = new Map([
|
|
16
|
+
[skillParityRule.primitive, skillParityRule],
|
|
17
|
+
]);
|
|
18
|
+
export function getParityRule(primitive) {
|
|
19
|
+
return RULES.get(primitive);
|
|
20
|
+
}
|
|
21
|
+
export function listParityRules() {
|
|
22
|
+
return [...RULES.values()];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Test-only seam — replace the rule for a primitive (used in unit tests to
|
|
26
|
+
* inject mock rules without rebuilding the import graph).
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function _replaceParityRuleForTest(primitive, rule) {
|
|
30
|
+
const prior = RULES.get(primitive);
|
|
31
|
+
RULES.set(primitive, rule);
|
|
32
|
+
return () => {
|
|
33
|
+
if (prior)
|
|
34
|
+
RULES.set(primitive, prior);
|
|
35
|
+
else
|
|
36
|
+
RULES.delete(primitive);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/providers/parity/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,KAAK,GAAyC,IAAI,GAAG,CAAC;IAC1D,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,SAA8B;IAC1D,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAA8B,EAAE,IAAgB;IACxF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,GAAG,EAAE;QACV,IAAI,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;;YAClC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skillParityRule — parity rule for the Skill functional primitive.
|
|
3
|
+
*
|
|
4
|
+
* Specs:
|
|
5
|
+
* - specs/instar-concepts/skill.md (canonical shape)
|
|
6
|
+
* - specs/frameworks/claude-code/skills.md (Claude rendering contract)
|
|
7
|
+
* - specs/frameworks/codex-cli/skills.md (Codex rendering contract)
|
|
8
|
+
*
|
|
9
|
+
* Reads canonical skills from `.instar/skills/<name>/` and verifies each
|
|
10
|
+
* framework's rendering is in sync. On drift, the sentinel can call
|
|
11
|
+
* remediate() to re-render from canonical.
|
|
12
|
+
*
|
|
13
|
+
* Convergence-round-1 hardening applied:
|
|
14
|
+
* - C1: strict slug grammar enforced at every entry point (path traversal
|
|
15
|
+
* and arbitrary-write are no longer reachable from canonical content).
|
|
16
|
+
* - C2: YAML parsing via js-yaml; fail-loud on parse error rather than
|
|
17
|
+
* silent truncation by regex.
|
|
18
|
+
* - C5: symmetric verify — orphan rendered files surfaced as
|
|
19
|
+
* `orphan-rendering-found`; remediate cleans them.
|
|
20
|
+
* - C7: rendered files carry an `x-instar-stamp` tag recording the
|
|
21
|
+
* canonical body hash that produced them. user-edits to renderings are
|
|
22
|
+
* detected and surfaced as `user-edit-conflict`; auto-remediate
|
|
23
|
+
* refuses to overwrite without explicit force.
|
|
24
|
+
* - C8: description length capped + control chars stripped at parse time
|
|
25
|
+
* to bound prompt-injection surface.
|
|
26
|
+
* - H1: directory name vs frontmatter `name` mismatch surfaced as
|
|
27
|
+
* `name-directory-mismatch`.
|
|
28
|
+
* - H5: canonical-read errors tagged with `framework: 'canonical'` rather
|
|
29
|
+
* than misleadingly attributing to a framework.
|
|
30
|
+
*
|
|
31
|
+
* Deferred to follow-up issues (tracked, not in this PR):
|
|
32
|
+
* - C3: render `allowed-tools` → Claude frontmatter + Codex
|
|
33
|
+
* `dependencies.tools`. Removed from canonical for v0.1 to avoid
|
|
34
|
+
* promise-without-delivery drift; will land with the Tool primitive.
|
|
35
|
+
* - C6: atomic-write tempfile+rename. Single-sentinel-pass + single-
|
|
36
|
+
* machine narrows the race window for v0.1; will add when sentinel
|
|
37
|
+
* ships.
|
|
38
|
+
* - H2/H3: BackupManager defaults + CLAUDE.md template — separate PRs.
|
|
39
|
+
* - H4: git-sync conflict-marker detection — operator-facing; surfaced
|
|
40
|
+
* in this PR as fail-loud `canonical-parse-error`.
|
|
41
|
+
*/
|
|
42
|
+
import type { ParityRule } from '../types.js';
|
|
43
|
+
export declare class CanonicalSkillError extends Error {
|
|
44
|
+
constructor(message: string);
|
|
45
|
+
}
|
|
46
|
+
export declare const skillParityRule: ParityRule;
|
|
47
|
+
//# sourceMappingURL=skillParityRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillParityRule.d.ts","sourceRoot":"","sources":["../../../../src/providers/parity/rules/skillParityRule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAOH,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,aAAa,CAAC;AAiCrB,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAuhBD,eAAO,MAAM,eAAe,EAAE,UA2E7B,CAAC"}
|