@jean.gnc/harness-kit 0.14.1 → 0.14.2

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.
@@ -6,4 +6,30 @@ export interface Bypass {
6
6
  readonly offset: number;
7
7
  }
8
8
  export declare function detectBypasses(body: string, haystacks: BypassHaystacks): readonly Bypass[];
9
+ export interface Span {
10
+ readonly start: number;
11
+ readonly end: number;
12
+ }
13
+ export interface LeafHandle {
14
+ readonly handle: string;
15
+ readonly prefix: ReferencePrefix;
16
+ }
17
+ export type LeafIndex = ReadonlyMap<string, readonly LeafHandle[]>;
18
+ export declare function buildLeafIndex(haystacks: BypassHaystacks): LeafIndex;
19
+ export interface BarewordBypass {
20
+ readonly leaf: string;
21
+ readonly candidates: readonly LeafHandle[];
22
+ readonly offset: number;
23
+ }
24
+ export interface BarewordContext {
25
+ readonly ownLeaf: string | null;
26
+ }
27
+ export declare function nonReferenceSpans(body: string): readonly Span[];
28
+ export declare function detectBarewordBypasses(body: string, index: LeafIndex, context: BarewordContext, skip?: readonly Span[]): readonly BarewordBypass[];
29
+ export interface RefBypass {
30
+ readonly path: string;
31
+ readonly suggestion: string;
32
+ readonly offset: number;
33
+ }
34
+ export declare function detectRefBypasses(body: string, sourceDir: string, rootDir: string, skip?: readonly Span[]): Promise<readonly RefBypass[]>;
9
35
  //# sourceMappingURL=bypass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bypass.d.ts","sourceRoot":"","sources":["../../src/check/bypass.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAY1F"}
1
+ {"version":3,"file":"bypass.d.ts","sourceRoot":"","sources":["../../src/check/bypass.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAY1F;AAWD,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAUD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;AAEnE,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,CAWpE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAYD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,IAAI,EAAE,CAE/D;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,SAAS,IAAI,EAA4B,GAC9C,SAAS,cAAc,EAAE,CAiB3B;AAQD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAID,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,SAAS,IAAI,EAA4B,GAC9C,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAW/B"}
@@ -1,3 +1,6 @@
1
+ import { dirname, relative, resolve } from "node:path";
2
+ import { pathExists } from "../fs.js";
3
+ import { unemittedSegment } from "../compile/emit-paths.js";
1
4
  import { parsePlaceholders } from "../placeholders/index.js";
2
5
  import { REFERENCE_PREFIXES } from "./kinds.js";
3
6
  const SIGIL_PATTERNS = [
@@ -31,4 +34,114 @@ function placeholderSpans(body) {
31
34
  function within(offset, spans) {
32
35
  return spans.some((span) => offset >= span.start && offset < span.end);
33
36
  }
37
+ export function buildLeafIndex(haystacks) {
38
+ const index = new Map();
39
+ for (const prefix of REFERENCE_PREFIXES) {
40
+ for (const handle of haystacks[prefix]) {
41
+ const leaf = handle.slice(handle.indexOf(":") + 1);
42
+ const bucket = index.get(leaf) ?? [];
43
+ bucket.push({ handle, prefix });
44
+ index.set(leaf, bucket);
45
+ }
46
+ }
47
+ return index;
48
+ }
49
+ const LANG_SKILL_LEAVES = new Set([
50
+ "ruby",
51
+ "rails",
52
+ "rspec",
53
+ "typescript",
54
+ "react",
55
+ ]);
56
+ const BACKTICK_LEAF = /`([a-z][a-z0-9-]*)`/g;
57
+ export function nonReferenceSpans(body) {
58
+ return [...placeholderSpans(body), ...codeSpans(body)];
59
+ }
60
+ export function detectBarewordBypasses(body, index, context, skip = nonReferenceSpans(body)) {
61
+ const out = [];
62
+ for (const match of body.matchAll(BACKTICK_LEAF)) {
63
+ const leaf = match[1];
64
+ if (leaf === undefined)
65
+ continue;
66
+ if (within(match.index, skip))
67
+ continue;
68
+ if (LANG_SKILL_LEAVES.has(leaf))
69
+ continue;
70
+ if (context.ownLeaf !== null && leaf === context.ownLeaf)
71
+ continue;
72
+ const candidates = index.get(leaf);
73
+ if (candidates === undefined)
74
+ continue;
75
+ out.push({
76
+ leaf,
77
+ candidates: sortCandidates(candidates),
78
+ offset: match.index,
79
+ });
80
+ }
81
+ return out;
82
+ }
83
+ function sortCandidates(candidates) {
84
+ return [...candidates].sort((a, b) => a.prefix.localeCompare(b.prefix) || a.handle.localeCompare(b.handle));
85
+ }
86
+ const BACKTICK_MD = /`([a-z0-9][a-z0-9.-]*\.md)`/gi;
87
+ export async function detectRefBypasses(body, sourceDir, rootDir, skip = nonReferenceSpans(body)) {
88
+ const out = [];
89
+ for (const match of body.matchAll(BACKTICK_MD)) {
90
+ const path = match[1];
91
+ if (path === undefined)
92
+ continue;
93
+ if (within(match.index, skip))
94
+ continue;
95
+ const [suggestion, ...rest] = await reachableTargets(path, sourceDir, rootDir);
96
+ if (suggestion === undefined || rest.length > 0)
97
+ continue;
98
+ out.push({ path, suggestion, offset: match.index });
99
+ }
100
+ return out;
101
+ }
102
+ async function reachableTargets(filename, sourceDir, rootDir) {
103
+ const found = [];
104
+ for (const dir of [sourceDir, ...ancestorDirs(sourceDir, rootDir)]) {
105
+ const candidate = resolve(dir, filename);
106
+ if (!(await pathExists(candidate)))
107
+ continue;
108
+ const rel = relative(sourceDir, candidate);
109
+ if (unemittedSegment(rel) === undefined)
110
+ found.push(rel);
111
+ }
112
+ return found;
113
+ }
114
+ function ancestorDirs(sourceDir, rootDir) {
115
+ const dirs = [];
116
+ let dir = dirname(sourceDir);
117
+ let prev = sourceDir;
118
+ while (dir !== prev && dir.startsWith(rootDir)) {
119
+ dirs.push(dir);
120
+ prev = dir;
121
+ dir = dirname(dir);
122
+ }
123
+ return dirs;
124
+ }
125
+ const FENCE = /^[ \t]*(`{3,}|~{3,})/;
126
+ function codeSpans(body) {
127
+ const spans = [];
128
+ let fenceStart = null;
129
+ let offset = 0;
130
+ for (const line of body.split("\n")) {
131
+ const lineEnd = Math.min(offset + line.length + 1, body.length);
132
+ if (FENCE.test(line)) {
133
+ if (fenceStart === null) {
134
+ fenceStart = offset;
135
+ }
136
+ else {
137
+ spans.push({ start: fenceStart, end: lineEnd });
138
+ fenceStart = null;
139
+ }
140
+ }
141
+ offset = lineEnd;
142
+ }
143
+ if (fenceStart !== null)
144
+ spans.push({ start: fenceStart, end: body.length });
145
+ return spans;
146
+ }
34
147
  //# sourceMappingURL=bypass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bypass.js","sourceRoot":"","sources":["../../src/check/bypass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAwB,MAAM,YAAY,CAAC;AAqBtE,MAAM,cAAc,GAA4B;IAC9C,EAAE,OAAO,EAAE,sCAAsC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;IACvE,EAAE,OAAO,EAAE,qCAAqC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;IACpE,EAAE,OAAO,EAAE,iDAAiD,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAC1F,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,SAA0B;IACrE,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;YAAE,SAAS;QACxC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CACnD,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAOD,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,KAAsB;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"bypass.js","sourceRoot":"","sources":["../../src/check/bypass.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface CheckOptions {
7
7
  readonly mode?: CheckMode;
8
8
  readonly sources?: readonly PluginSource[];
9
9
  }
10
- export type ReferenceViolationKind = "malformed" | "unresolved";
10
+ export type ReferenceViolationKind = "malformed" | "unresolved" | "bareword" | "ref-bareword";
11
11
  export interface ReferenceViolation {
12
12
  readonly kind: ReferenceViolationKind;
13
13
  readonly token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAepB,eAAO,MAAM,WAAW,wCAAyC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,YAAY,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CACnD;AASD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAepB,eAAO,MAAM,WAAW,wCAAyC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;AAE9F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CACnD;AAeD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAoDvE"}
@@ -1,12 +1,12 @@
1
1
  import { readFile, readdir } from "node:fs/promises";
2
- import { join } from "node:path";
2
+ import { basename, dirname, join } from "node:path";
3
3
  import { pathExists } from "../fs.js";
4
4
  import { FQ_ID } from "../ids.js";
5
5
  import { offsetToLineCol, parsePlaceholders } from "../placeholders/index.js";
6
6
  import { checkCompanionFiles, findSkillFile, formatLoadSkillError, loadSkill, } from "../skill/index.js";
7
7
  import { collectLocalIds, loadLayout, } from "../layout/index.js";
8
8
  import { defaultSources, discoverInstalled, indexInstalled, } from "../installed.js";
9
- import { detectBypasses } from "./bypass.js";
9
+ import { buildLeafIndex, detectBarewordBypasses, detectBypasses, detectRefBypasses, nonReferenceSpans, } from "./bypass.js";
10
10
  import { unifiedKindConfigs, } from "./kinds.js";
11
11
  import { closestMatch } from "./suggest.js";
12
12
  const EMPTY_LOCAL_IDS = {
@@ -44,6 +44,7 @@ export async function check(options) {
44
44
  }
45
45
  const kinds = unifiedKindConfigs(localIds, installedIndex, mode);
46
46
  const haystacks = bypassHaystacks(kinds);
47
+ const leafIndex = buildLeafIndex(haystacks);
47
48
  const sources = await collectBodySources({
48
49
  srcRoot: options.srcRoot,
49
50
  mode,
@@ -52,9 +53,16 @@ export async function check(options) {
52
53
  const violations = [];
53
54
  const warnings = [];
54
55
  for (const source of sources) {
56
+ const skip = nonReferenceSpans(source.body);
55
57
  for (const violation of validateBody(source, kinds)) {
56
58
  violations.push(violation);
57
59
  }
60
+ for (const violation of findBarewordBypasses(source, leafIndex, skip)) {
61
+ violations.push(violation);
62
+ }
63
+ for (const violation of await findRefBypasses(source, options.srcRoot, skip)) {
64
+ violations.push(violation);
65
+ }
58
66
  for (const warning of findBypasses(source, haystacks)) {
59
67
  warnings.push(warning);
60
68
  }
@@ -82,27 +90,69 @@ function findBypasses(source, haystacks) {
82
90
  };
83
91
  });
84
92
  }
93
+ function findBarewordBypasses(source, index, skip) {
94
+ if (source.origin.role === "command")
95
+ return [];
96
+ const ownLeaf = source.origin.role === "skill" ? source.origin.ownLeaf : null;
97
+ return detectBarewordBypasses(source.body, index, { ownLeaf }, skip).map((bypass) => {
98
+ const { line, column } = offsetToLineCol(source.fileText, source.bodyOffset + bypass.offset);
99
+ return {
100
+ kind: "bareword",
101
+ token: bypass.leaf,
102
+ file: source.filePath,
103
+ line,
104
+ column,
105
+ message: barewordMessage(bypass),
106
+ };
107
+ });
108
+ }
109
+ function barewordMessage(bypass) {
110
+ const nouns = [...new Set(bypass.candidates.map((c) => c.prefix))].join(" and ");
111
+ const forms = bypass.candidates.map((c) => `{{${c.prefix}:${c.handle}}}`).join(" or ");
112
+ return `\`${bypass.leaf}\` names a known ${nouns} but isn't a tracked reference — use ${forms}`;
113
+ }
114
+ async function findRefBypasses(source, rootDir, skip) {
115
+ const sourceDir = dirname(source.filePath);
116
+ const bypasses = await detectRefBypasses(source.body, sourceDir, rootDir, skip);
117
+ return bypasses.map((bypass) => {
118
+ const { line, column } = offsetToLineCol(source.fileText, source.bodyOffset + bypass.offset);
119
+ return {
120
+ kind: "ref-bareword",
121
+ token: bypass.path,
122
+ file: source.filePath,
123
+ line,
124
+ column,
125
+ message: `\`${bypass.path}\` is a companion file referenced directly — use \`{{ref:${bypass.suggestion}}}\` so harness-kit can track it`,
126
+ };
127
+ });
128
+ }
85
129
  async function collectBodySources(opts) {
86
130
  const seen = new Set();
87
131
  const out = [];
88
- const push = async (filePath, body, bodyOffset) => {
89
- if (seen.has(filePath))
132
+ const push = async (file) => {
133
+ if (seen.has(file.filePath))
90
134
  return;
91
- seen.add(filePath);
92
- const fileText = await readFile(filePath, "utf8");
93
- out.push({ body, bodyOffset, fileText, filePath });
135
+ seen.add(file.filePath);
136
+ const fileText = await readFile(file.filePath, "utf8");
137
+ out.push({
138
+ body: file.body,
139
+ bodyOffset: file.bodyOffset,
140
+ fileText,
141
+ filePath: file.filePath,
142
+ origin: file.origin,
143
+ });
94
144
  };
95
145
  if (opts.mode === "installed" || opts.mode === "all") {
96
146
  for await (const skillDir of findSkillDirs(opts.srcRoot)) {
97
147
  for (const file of await loadSkillBodies(skillDir)) {
98
- await push(file.filePath, file.body, file.bodyOffset);
148
+ await push(file);
99
149
  }
100
150
  }
101
151
  }
102
152
  if ((opts.mode === "local" || opts.mode === "all") && opts.adapter) {
103
153
  for (const plugin of opts.adapter.plugins) {
104
154
  for (const file of await collectPluginBodies(plugin)) {
105
- await push(file.filePath, file.body, file.bodyOffset);
155
+ await push(file);
106
156
  }
107
157
  }
108
158
  }
@@ -121,26 +171,34 @@ async function collectPluginBodies(plugin) {
121
171
  out.push(...(await loadSkillBodies(skillDir)));
122
172
  }
123
173
  }
124
- for (const dir of [plugin.commandsDir, plugin.agentsDir]) {
125
- if (!(await pathExists(dir)))
174
+ for await (const filePath of walkMarkdown(plugin.pluginDir)) {
175
+ if (filePath.startsWith(plugin.skillsDir))
126
176
  continue;
127
- for (const entry of await readdir(dir, { withFileTypes: true })) {
128
- if (!entry.isFile() || !entry.name.endsWith(".md"))
129
- continue;
130
- const filePath = join(dir, entry.name);
131
- const body = await readFile(filePath, "utf8");
132
- out.push({ filePath, body, bodyOffset: 0 });
133
- }
177
+ const body = await readFile(filePath, "utf8");
178
+ const role = filePath.startsWith(plugin.commandsDir) ? "command" : "doc";
179
+ out.push({ filePath, body, bodyOffset: 0, origin: { role } });
134
180
  }
135
181
  return out;
136
182
  }
183
+ async function* walkMarkdown(dir) {
184
+ if (!(await pathExists(dir)))
185
+ return;
186
+ for (const entry of await readdir(dir, { withFileTypes: true })) {
187
+ const full = join(dir, entry.name);
188
+ if (entry.isDirectory())
189
+ yield* walkMarkdown(full);
190
+ else if (entry.isFile() && entry.name.endsWith(".md"))
191
+ yield full;
192
+ }
193
+ }
137
194
  async function loadSkillBodies(skillDir) {
138
195
  const loaded = await loadSkill(skillDir);
139
196
  if (!loaded.ok) {
140
197
  throw new Error(`failed to load skill at ${skillDir}:\n - ${formatLoadSkillError(loaded.error).join("\n - ")}`);
141
198
  }
142
199
  const { skill, body, bodyFilePath, bodyOffset, skillDir: dir } = loaded.value;
143
- const primary = { filePath: bodyFilePath, body, bodyOffset };
200
+ const origin = { role: "skill", ownLeaf: basename(dir) };
201
+ const primary = { filePath: bodyFilePath, body, bodyOffset, origin };
144
202
  const declared = skill.companions ?? [];
145
203
  const present = await Promise.all(declared.map(async (c) => pathExists(join(dir, c.file))));
146
204
  const missing = checkCompanionFiles(declared, declared.filter((_, i) => present[i]).map((c) => c.file));
@@ -149,7 +207,7 @@ async function loadSkillBodies(skillDir) {
149
207
  }
150
208
  const companions = await Promise.all(declared.map(async (companion) => {
151
209
  const filePath = join(dir, companion.file);
152
- return { filePath, body: await readFile(filePath, "utf8"), bodyOffset: 0 };
210
+ return { filePath, body: await readFile(filePath, "utf8"), bodyOffset: 0, origin };
153
211
  }));
154
212
  return [primary, ...companions];
155
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jean.gnc/harness-kit",
3
- "version": "0.14.1",
3
+ "version": "0.14.2",
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",