@jean.gnc/harness-kit 0.12.6 → 0.12.7

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.
@@ -7,9 +7,13 @@ export type IncludeError = {
7
7
  readonly path: string;
8
8
  readonly from: string;
9
9
  } | {
10
- readonly tag: "include-escapes-skill";
10
+ readonly tag: "include-escapes-roots";
11
11
  readonly path: string;
12
- readonly skillDir: string;
12
+ readonly roots: readonly string[];
13
+ } | {
14
+ readonly tag: "include-unknown-root";
15
+ readonly raw: string;
16
+ readonly name: string;
13
17
  } | {
14
18
  readonly tag: "include-not-md";
15
19
  readonly path: string;
@@ -20,10 +24,14 @@ export type IncludeError = {
20
24
  readonly tag: "include-empty";
21
25
  readonly raw: string;
22
26
  };
27
+ export interface IncludeRoots {
28
+ readonly self: string;
29
+ readonly named: Readonly<Record<string, string>>;
30
+ }
23
31
  export interface ExpandedBody {
24
32
  readonly body: string;
25
33
  readonly resolvedIncludes: ReadonlySet<string>;
26
34
  }
27
- export declare function expandIncludes(body: string, fromFile: string, skillDir: string): Promise<Result<ExpandedBody, readonly IncludeError[]>>;
35
+ export declare function expandIncludes(body: string, fromFile: string, roots: IncludeRoots): Promise<Result<ExpandedBody, readonly IncludeError[]>>;
28
36
  export declare function formatIncludeError(error: IncludeError): string;
29
37
  //# sourceMappingURL=includes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../src/skill/includes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3F;IAAE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CAMxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAe9D"}
1
+ {"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../src/skill/includes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjF;IACE,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,GACD;IAAE,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CAMxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAiB9D"}
@@ -2,10 +2,10 @@ import { readFile } from "node:fs/promises";
2
2
  import { dirname, isAbsolute, relative, resolve } from "node:path";
3
3
  import { parsePlaceholders } from "../placeholders/index.js";
4
4
  import { err, ok } from "../result.js";
5
- export async function expandIncludes(body, fromFile, skillDir) {
5
+ export async function expandIncludes(body, fromFile, roots) {
6
6
  const errors = [];
7
7
  const resolved = new Set();
8
- const expanded = await expand(body, fromFile, skillDir, [resolve(fromFile)], errors, resolved);
8
+ const expanded = await expand(body, fromFile, roots, [resolve(fromFile)], errors, resolved);
9
9
  if (errors.length > 0)
10
10
  return err(errors);
11
11
  return ok({ body: expanded, resolvedIncludes: resolved });
@@ -16,8 +16,10 @@ export function formatIncludeError(error) {
16
16
  return `include cycle: ${error.chain.join(" → ")}`;
17
17
  case "include-missing":
18
18
  return `include target not found: ${error.path} (from ${error.from})`;
19
- case "include-escapes-skill":
20
- return `include path "${error.path}" escapes the skill directory ${error.skillDir}`;
19
+ case "include-escapes-roots":
20
+ return `include path "${error.path}" escapes all allowed roots (${error.roots.join(", ")})`;
21
+ case "include-unknown-root":
22
+ return `include references unknown root "@${error.name}" in ${error.raw}`;
21
23
  case "include-not-md":
22
24
  return `include only supports .md files (got ${error.path})`;
23
25
  case "include-absolute":
@@ -26,10 +28,30 @@ export function formatIncludeError(error) {
26
28
  return `expected {{include:<relative-path>.md}} (got ${error.raw})`;
27
29
  }
28
30
  }
29
- async function expand(body, fromFile, skillDir, chain, errors, resolved) {
31
+ function resolveTarget(rel, fromFile, roots) {
32
+ if (!rel.startsWith("@")) {
33
+ return { target: resolve(dirname(fromFile), rel) };
34
+ }
35
+ const slash = rel.indexOf("/");
36
+ const name = slash === -1 ? rel.slice(1) : rel.slice(1, slash);
37
+ const sub = slash === -1 ? "" : rel.slice(slash + 1);
38
+ const rootPath = roots.named[name];
39
+ if (rootPath === undefined || sub === "") {
40
+ return { unknownRoot: name };
41
+ }
42
+ return { target: resolve(rootPath, sub) };
43
+ }
44
+ function isInsideAnyRoot(target, allowed) {
45
+ return allowed.some((root) => {
46
+ const rel = relative(root, target);
47
+ return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
48
+ });
49
+ }
50
+ async function expand(body, fromFile, roots, chain, errors, resolved) {
30
51
  const tokens = parsePlaceholders(body).filter((t) => t.prefix === "include");
31
52
  if (tokens.length === 0)
32
53
  return body;
54
+ const allowed = [roots.self, ...Object.values(roots.named)];
33
55
  let out = "";
34
56
  let cursor = 0;
35
57
  for (const token of tokens) {
@@ -51,10 +73,15 @@ async function expand(body, fromFile, skillDir, chain, errors, resolved) {
51
73
  out += token.raw;
52
74
  continue;
53
75
  }
54
- const target = resolve(dirname(fromFile), rel);
55
- const fromSkill = relative(skillDir, target);
56
- if (fromSkill.startsWith("..") || isAbsolute(fromSkill)) {
57
- errors.push({ tag: "include-escapes-skill", path: rel, skillDir });
76
+ const resolution = resolveTarget(rel, fromFile, roots);
77
+ if ("unknownRoot" in resolution) {
78
+ errors.push({ tag: "include-unknown-root", raw: token.raw, name: resolution.unknownRoot });
79
+ out += token.raw;
80
+ continue;
81
+ }
82
+ const { target } = resolution;
83
+ if (!isInsideAnyRoot(target, allowed)) {
84
+ errors.push({ tag: "include-escapes-roots", path: rel, roots: allowed });
58
85
  out += token.raw;
59
86
  continue;
60
87
  }
@@ -73,7 +100,7 @@ async function expand(body, fromFile, skillDir, chain, errors, resolved) {
73
100
  continue;
74
101
  }
75
102
  resolved.add(target);
76
- const expanded = await expand(raw, target, skillDir, [...chain, target], errors, resolved);
103
+ const expanded = await expand(raw, target, roots, [...chain, target], errors, resolved);
77
104
  out += expanded.endsWith("\n") ? expanded.slice(0, -1) : expanded;
78
105
  }
79
106
  out += body.slice(cursor);
@@ -1 +1 @@
1
- {"version":3,"file":"includes.js","sourceRoot":"","sources":["../../src/skill/includes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,cAAc,CAAC;AAepD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,QAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAmB;IACpD,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,kBAAkB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,KAAK,iBAAiB;YACpB,OAAO,6BAA6B,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC;QACxE,KAAK,uBAAuB;YAC1B,OAAO,iBAAiB,KAAK,CAAC,IAAI,iCAAiC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtF,KAAK,gBAAgB;YACnB,OAAO,wCAAwC,KAAK,CAAC,IAAI,GAAG,CAAC;QAC/D,KAAK,kBAAkB;YACrB,OAAO,sCAAsC,KAAK,CAAC,GAAG,GAAG,CAAC;QAC5D,KAAK,eAAe;YAClB,OAAO,gDAAgD,KAAK,CAAC,GAAG,GAAG,CAAC;IACxE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,IAAY,EACZ,QAAgB,EAChB,QAAgB,EAChB,KAAwB,EACxB,MAAsB,EACtB,QAAqB;IAErB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;QAEnB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACjE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;YACjB,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3F,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,CAAC;IACD,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"includes.js","sourceRoot":"","sources":["../../src/skill/includes.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ export { findSkillFile, formatLoadSkillError, loadSkill } from "./source.js";
4
4
  export type { FindSkillFileError, LoadSkillError, LoadedSkill, SkillFile, SkillSource, } from "./source.js";
5
5
  export { checkCompanionFiles } from "./invariants.js";
6
6
  export { expandIncludes, formatIncludeError } from "./includes.js";
7
- export type { ExpandedBody, IncludeError } from "./includes.js";
7
+ export type { ExpandedBody, IncludeError, IncludeRoots } from "./includes.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jean.gnc/harness-kit",
3
- "version": "0.12.6",
3
+ "version": "0.12.7",
4
4
  "type": "module",
5
5
  "description": "Build your own multi-agent harness: typed toolkit for authoring plugins (skills, agents, commands, hooks) and shipping them to Claude Code and Codex from a single source tree.",
6
6
  "license": "MIT",