kibi-cli 0.11.1 → 0.11.3

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.
Files changed (62) hide show
  1. package/dist/commands/check.d.ts.map +1 -1
  2. package/dist/commands/check.js +1 -1
  3. package/dist/commands/init-helpers.d.ts.map +1 -1
  4. package/dist/commands/init-helpers.js +2 -3
  5. package/dist/commands/migrate.d.ts.map +1 -1
  6. package/dist/commands/migrate.js +7 -2
  7. package/dist/commands/skills.d.ts.map +1 -1
  8. package/dist/commands/sync/manifest.d.ts +1 -1
  9. package/dist/commands/sync/manifest.d.ts.map +1 -1
  10. package/dist/commands/sync/manifest.js +7 -4
  11. package/dist/commands/sync/staging.d.ts.map +1 -1
  12. package/dist/commands/sync/staging.js +2 -1
  13. package/dist/commands/sync.d.ts.map +1 -1
  14. package/dist/commands/sync.js +3 -1
  15. package/dist/extractors/manifest.d.ts.map +1 -1
  16. package/dist/extractors/manifest.js +3 -1
  17. package/dist/extractors/symbol-coordinates.d.ts.map +1 -1
  18. package/dist/extractors/symbol-coordinates.js +1 -1
  19. package/dist/extractors/symbols-coordinator.d.ts.map +1 -1
  20. package/dist/extractors/symbols-coordinator.js +2 -1
  21. package/dist/extractors/symbols-ts.d.ts.map +1 -1
  22. package/dist/extractors/symbols-ts.js +3 -1
  23. package/dist/prolog.d.ts.map +1 -1
  24. package/dist/prolog.js +14 -1
  25. package/dist/public/ignore-policy.d.ts.map +1 -1
  26. package/dist/public/ignore-policy.js +8 -4
  27. package/dist/public/operational-artifacts.d.ts.map +1 -1
  28. package/dist/public/operational-artifacts.js +1 -0
  29. package/dist/public/skills/kibi-usage/SKILL.md +80 -0
  30. package/dist/public/skills/kibi-usage/resources/fact-lanes.md +78 -0
  31. package/dist/public/skills/kibi-usage/resources/workflows.md +0 -7
  32. package/dist/public/skills.d.ts.map +1 -1
  33. package/dist/public/skills.js +12 -4
  34. package/dist/search-ranking.d.ts.map +1 -1
  35. package/dist/traceability/evidence-model.d.ts.map +1 -1
  36. package/dist/traceability/staged-diagnostics.d.ts.map +1 -1
  37. package/dist/traceability/staged-diagnostics.js +1 -1
  38. package/dist/traceability/staged-symbols-manifest.d.ts.map +1 -1
  39. package/dist/traceability/staged-symbols-manifest.js +8 -2
  40. package/dist/traceability/symbol-extract.d.ts.map +1 -1
  41. package/dist/traceability/symbol-extract.js +4 -1
  42. package/dist/utils/config.d.ts +3 -18
  43. package/dist/utils/config.d.ts.map +1 -1
  44. package/dist/utils/config.js +4 -40
  45. package/dist/utils/manifest-paths.d.ts.map +1 -1
  46. package/dist/utils/manifest-paths.js +3 -1
  47. package/dist/utils/schema-version.d.ts.map +1 -1
  48. package/dist/utils/strict-modeling.d.ts +1 -1
  49. package/dist/utils/strict-modeling.d.ts.map +1 -1
  50. package/dist/utils/strict-modeling.js +13 -3
  51. package/package.json +2 -12
  52. package/schema/config.json +0 -68
  53. package/src/public/ignore-policy.ts +26 -10
  54. package/src/public/operational-artifacts.ts +2 -1
  55. package/src/public/skills/kibi-usage/SKILL.md +80 -0
  56. package/src/public/skills/kibi-usage/resources/fact-lanes.md +78 -0
  57. package/src/public/skills/kibi-usage/resources/workflows.md +0 -7
  58. package/src/public/skills.ts +93 -25
  59. package/dist/public/brief-config.d.ts +0 -4
  60. package/dist/public/brief-config.d.ts.map +0 -1
  61. package/dist/public/brief-config.js +0 -21
  62. package/src/public/brief-config.ts +0 -25
@@ -51,6 +51,7 @@ export class SkillOversizeError extends Error {
51
51
  }
52
52
  }
53
53
  export function listBundledSkills() {
54
+ // implements REQ-001
54
55
  if (!existsSync(bundledSkillsDir)) {
55
56
  return [];
56
57
  }
@@ -62,6 +63,7 @@ export function listBundledSkills() {
62
63
  .sort((left, right) => left.id.localeCompare(right.id));
63
64
  }
64
65
  export function loadBundledSkill(id) {
66
+ // implements REQ-001
65
67
  const rootDir = findBundledSkillRoot(id);
66
68
  if (!rootDir) {
67
69
  throw new SkillNotFoundError(id);
@@ -69,6 +71,7 @@ export function loadBundledSkill(id) {
69
71
  return parseSkillBundle(rootDir);
70
72
  }
71
73
  export function readBundledSkillResource(id, resourcePath) {
74
+ // implements REQ-001
72
75
  const bundle = loadBundledSkill(id);
73
76
  const declaredResource = normalizeResourcePath(resourcePath);
74
77
  if (!declaredResource || isPathOutOfBounds(resourcePath)) {
@@ -94,6 +97,7 @@ export function readBundledSkillResource(id, resourcePath) {
94
97
  return readFileSync(candidatePath, "utf8");
95
98
  }
96
99
  export function validateSkillBundle(pathLike) {
100
+ // implements REQ-001
97
101
  const skillFilePath = resolveSkillFilePath(pathLike);
98
102
  const errors = [];
99
103
  if (!existsSync(skillFilePath)) {
@@ -190,7 +194,8 @@ function validateManifestData(data) {
190
194
  errors.push(new SkillValidationError(field, `Missing required skill field: ${field}`));
191
195
  }
192
196
  }
193
- if (typeof data.version === "string" && !/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(data.version)) {
197
+ if (typeof data.version === "string" &&
198
+ !/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(data.version)) {
194
199
  errors.push(new SkillValidationError("version", `Invalid skill version: ${data.version}`));
195
200
  }
196
201
  if (data.tags !== undefined && !isStringArray(data.tags)) {
@@ -228,7 +233,7 @@ function coerceManifest(data) {
228
233
  return manifest;
229
234
  }
230
235
  function isStringArray(value) {
231
- return Array.isArray(value) && value.every((item) => typeof item === "string");
236
+ return (Array.isArray(value) && value.every((item) => typeof item === "string"));
232
237
  }
233
238
  function normalizeResourcePath(pathLike) {
234
239
  return normalize(pathLike).replaceAll("\\", "/");
@@ -245,7 +250,8 @@ function isDeclaredResource(manifest, resourcePath) {
245
250
  }
246
251
  function isWithinRoot(rootDir, candidatePath) {
247
252
  const relativePath = relative(rootDir, candidatePath);
248
- return relativePath === "" || (!relativePath.startsWith("..") && !isAbsolute(relativePath));
253
+ return (relativePath === "" ||
254
+ (!relativePath.startsWith("..") && !isAbsolute(relativePath)));
249
255
  }
250
256
  function assertMaxBytes(pathLike, maxBytes) {
251
257
  const size = statSync(pathLike).size;
@@ -258,5 +264,7 @@ function resolveSkillFilePath(pathLike) {
258
264
  if (existsSync(resolved) && statSync(resolved).isDirectory()) {
259
265
  return join(resolved, SKILL_FILE_NAME);
260
266
  }
261
- return resolved.endsWith(SKILL_FILE_NAME) ? resolved : join(resolved, SKILL_FILE_NAME);
267
+ return resolved.endsWith(SKILL_FILE_NAME)
268
+ ? resolved
269
+ : join(resolved, SKILL_FILE_NAME);
262
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search-ranking.d.ts","sourceRoot":"","sources":["../src/search-ranking.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgDD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxB;AAmGD,wBAAsB,gBAAgB,CAEpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB"}
1
+ {"version":3,"file":"search-ranking.d.ts","sourceRoot":"","sources":["../src/search-ranking.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgDD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxB;AAsGD,wBAAsB,gBAAgB,CAEpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-model.d.ts","sourceRoot":"","sources":["../../src/traceability/evidence-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence-model.d.ts","sourceRoot":"","sources":["../../src/traceability/evidence-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"staged-diagnostics.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAC9B,8BAA8B,GAC9B,wBAAwB,GACxB,wCAAwC,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,EAAE,EAAE,sBAAsB,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gDAAgD;IAChD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAsDD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,GAC3B,oBAAoB,EAAE,CAoCxB"}
1
+ {"version":3,"file":"staged-diagnostics.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EAIxB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,sBAAsB,GAC9B,8BAA8B,GAC9B,wBAAwB,GACxB,wCAAwC,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,EAAE,EAAE,sBAAsB,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gDAAgD;IAChD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAsDD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,GAC3B,oBAAoB,EAAE,CAoCxB"}
@@ -1,4 +1,4 @@
1
- import { KIBI_ENTITY_SCHEMA_DOC, KIBI_SYMBOL_COORDINATES_PATH, KIBI_SYMBOLS_MANIFEST_PATH, getBehaviorSourcePaths, getMissingBehaviorSourcePaths, hasOverrideRationale, } from "./evidence-model.js";
1
+ import { KIBI_ENTITY_SCHEMA_DOC, KIBI_SYMBOLS_MANIFEST_PATH, KIBI_SYMBOL_COORDINATES_PATH, getBehaviorSourcePaths, getMissingBehaviorSourcePaths, hasOverrideRationale, } from "./evidence-model.js";
2
2
  function formatFileList(paths) {
3
3
  return paths.join(", ");
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"staged-symbols-manifest.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-symbols-manifest.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA8BlD,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC7D;AAmQD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,+BAA+B,CA0ElC;AAoBD,wBAAgB,4CAA4C,CAAC,OAAO,EAAE;IACpE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,qCAAqC,CA6CxC"}
1
+ {"version":3,"file":"staged-symbols-manifest.d.ts","sourceRoot":"","sources":["../../src/traceability/staged-symbols-manifest.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA8BlD,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;IACtD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC7D;AA8QD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,+BAA+B,CA8ElC;AAoBD,wBAAgB,4CAA4C,CAAC,OAAO,EAAE;IACpE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,qCAAqC,CAmDxC"}
@@ -135,7 +135,9 @@ function normalizeAuthoredManifestSymbolsForSourceFile(records, sourceFile) {
135
135
  links: normalizeLinks(record.links),
136
136
  relationships: normalizeRelationships(record.relationships),
137
137
  tags: Array.isArray(record.tags)
138
- ? record.tags.filter((tag) => typeof tag === "string").sort()
138
+ ? record.tags
139
+ .filter((tag) => typeof tag === "string")
140
+ .sort()
139
141
  : [],
140
142
  owner: typeof record.owner === "string" ? record.owner : null,
141
143
  priority: typeof record.priority === "string" ? record.priority : null,
@@ -218,7 +220,11 @@ export function assessStagedSymbolsManifest(options) {
218
220
  }
219
221
  const sourcePaths = uniqueSorted(requiredRefreshPaths);
220
222
  if (sourcePaths.length === 0) {
221
- return { state: "not_required", sourcePaths: [], path: paths.coordinatesPath };
223
+ return {
224
+ state: "not_required",
225
+ sourcePaths: [],
226
+ path: paths.coordinatesPath,
227
+ };
222
228
  }
223
229
  if (sourcePaths.every((sourcePath) => freshPaths.has(sourcePath))) {
224
230
  return { state: "fresh", sourcePaths, path: paths.coordinatesPath };
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-extract.d.ts","sourceRoot":"","sources":["../../src/traceability/symbol-extract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAU7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG5E;AA+ND,wBAAgB,4BAA4B,CAE1C,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,cAAc,GAC9B,eAAe,EAAE,CA+JnB"}
1
+ {"version":3,"file":"symbol-extract.d.ts","sourceRoot":"","sources":["../../src/traceability/symbol-extract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAU7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG5E;AAkOD,wBAAgB,4BAA4B,CAE1C,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,cAAc,GAC9B,eAAe,EAAE,CA+JnB"}
@@ -92,7 +92,10 @@ function extractRelationshipsFromManifestRecord(record) {
92
92
  if (relationship &&
93
93
  typeof relationship.type === "string" &&
94
94
  typeof relationship.target === "string") {
95
- relationships.push({ type: relationship.type, to: relationship.target });
95
+ relationships.push({
96
+ type: relationship.type,
97
+ to: relationship.target,
98
+ });
96
99
  }
97
100
  }
98
101
  }
@@ -12,23 +12,6 @@ export interface KbConfigPaths {
12
12
  facts?: string;
13
13
  symbols?: string;
14
14
  }
15
- export interface BriefsConfig {
16
- enabled: boolean;
17
- retention?: {
18
- maxPerBranch?: number;
19
- maxAgeDays?: number;
20
- keepUnread?: boolean;
21
- };
22
- channels: {
23
- vscode: boolean;
24
- tui: boolean;
25
- };
26
- tui: {
27
- toast: boolean;
28
- appendPrompt: boolean;
29
- idleDelayMs?: number;
30
- };
31
- }
32
15
  /**
33
16
  * Shared configuration for Kibi.
34
17
  * Stored in .kb/config.json
@@ -36,7 +19,6 @@ export interface BriefsConfig {
36
19
  export interface KbConfig {
37
20
  paths: KbConfigPaths;
38
21
  schemaVersion?: number | string;
39
- briefs?: BriefsConfig;
40
22
  /**
41
23
  * @deprecated defaultBranch is deprecated. Branch lifecycle now follows git naturally
42
24
  * without requiring a configured default. This field is ignored but kept for compatibility.
@@ -45,6 +27,9 @@ export interface KbConfig {
45
27
  checks?: ChecksConfig;
46
28
  }
47
29
  export type { ChecksConfig, SymbolTraceabilityOptions };
30
+ /**
31
+ * Default configuration values for new repositories.
32
+ */
48
33
  export declare const DEFAULT_CONFIG: KbConfig & {
49
34
  $schema: string;
50
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,GAAG,EAAE;QACH,KAAK,EAAE,OAAO,CAAC;QACf,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAwBxD,eAAO,MAAM,cAAc,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAgBxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAShC,CAAC;AA8CF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAiChE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAiCpE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAExD;;GAEG;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAgBxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAUhC,CAAC;AA4BF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAgChE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAsB,GAAG,QAAQ,CAgCpE"}
@@ -22,25 +22,9 @@ import { LATEST_KB_SCHEMA_VERSION } from "./schema-version.js";
22
22
  /**
23
23
  * Default configuration values for new repositories.
24
24
  */
25
- const DEFAULT_BRIEFS_CONFIG = {
26
- enabled: true,
27
- retention: {
28
- maxPerBranch: 200,
29
- maxAgeDays: 14,
30
- keepUnread: true,
31
- },
32
- channels: {
33
- vscode: true,
34
- tui: true,
35
- },
36
- tui: {
37
- toast: true,
38
- appendPrompt: true,
39
- idleDelayMs: 1500,
40
- },
41
- };
42
25
  // implements REQ-003
43
26
  export const DEFAULT_CONFIG = {
27
+ // implements REQ-003
44
28
  $schema: "https://raw.githubusercontent.com/Looted/kibi/master/packages/cli/schema/config.json",
45
29
  schemaVersion: LATEST_KB_SCHEMA_VERSION,
46
30
  paths: {
@@ -53,13 +37,13 @@ export const DEFAULT_CONFIG = {
53
37
  facts: "documentation/facts",
54
38
  symbols: "documentation/symbols.yaml",
55
39
  },
56
- briefs: DEFAULT_BRIEFS_CONFIG,
57
40
  checks: DEFAULT_CHECKS_CONFIG,
58
41
  };
59
42
  /**
60
43
  * Default paths used by sync command (backward compatible glob patterns).
61
44
  */
62
45
  export const DEFAULT_SYNC_PATHS = {
46
+ // implements REQ-003
63
47
  requirements: "requirements/**/*.md",
64
48
  scenarios: "scenarios/**/*.md",
65
49
  tests: "tests/**/*.md",
@@ -69,24 +53,6 @@ export const DEFAULT_SYNC_PATHS = {
69
53
  facts: "facts/**/*.md",
70
54
  symbols: "symbols.yaml",
71
55
  };
72
- function mergeBriefsConfig(userBriefs) {
73
- return {
74
- ...DEFAULT_BRIEFS_CONFIG,
75
- ...userBriefs,
76
- channels: {
77
- ...DEFAULT_BRIEFS_CONFIG.channels,
78
- ...userBriefs?.channels,
79
- },
80
- tui: {
81
- ...DEFAULT_BRIEFS_CONFIG.tui,
82
- ...userBriefs?.tui,
83
- },
84
- retention: {
85
- ...DEFAULT_BRIEFS_CONFIG.retention,
86
- ...userBriefs?.retention,
87
- },
88
- };
89
- }
90
56
  function readUserConfig(configPath) {
91
57
  if (!existsSync(configPath)) {
92
58
  return {
@@ -124,12 +90,11 @@ export function loadConfig(cwd = process.cwd()) {
124
90
  ...DEFAULT_CONFIG.paths,
125
91
  ...userConfig.paths,
126
92
  },
127
- ...((userConfig.schemaVersion !== undefined || useDefaultSchemaVersion)
93
+ ...(userConfig.schemaVersion !== undefined || useDefaultSchemaVersion
128
94
  ? {
129
95
  schemaVersion: userConfig.schemaVersion ?? DEFAULT_CONFIG.schemaVersion,
130
96
  }
131
97
  : {}),
132
- briefs: mergeBriefsConfig(userConfig.briefs),
133
98
  ...(userConfig.defaultBranch !== undefined
134
99
  ? { defaultBranch: userConfig.defaultBranch }
135
100
  : {}),
@@ -164,12 +129,11 @@ export function loadSyncConfig(cwd = process.cwd()) {
164
129
  ...DEFAULT_SYNC_PATHS,
165
130
  ...userConfig.paths,
166
131
  },
167
- ...((userConfig.schemaVersion !== undefined || useDefaultSchemaVersion)
132
+ ...(userConfig.schemaVersion !== undefined || useDefaultSchemaVersion
168
133
  ? {
169
134
  schemaVersion: userConfig.schemaVersion ?? DEFAULT_CONFIG.schemaVersion,
170
135
  }
171
136
  : {}),
172
- briefs: mergeBriefsConfig(userConfig.briefs),
173
137
  ...(userConfig.defaultBranch !== undefined
174
138
  ? { defaultBranch: userConfig.defaultBranch }
175
139
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-paths.d.ts","sourceRoot":"","sources":["../../src/utils/manifest-paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAuEhF,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CASlD;AAGD,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAER"}
1
+ {"version":3,"file":"manifest-paths.d.ts","sourceRoot":"","sources":["../../src/utils/manifest-paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAkFhF,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CASlD;AAGD,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAER"}
@@ -42,7 +42,9 @@ function resolveDefaultSymbolsPath(workspaceRoot) {
42
42
  path.join(workspaceRoot, "symbols.yaml"),
43
43
  path.join(workspaceRoot, "symbols.yml"),
44
44
  ];
45
- return candidates.find((candidate) => existsSync(candidate)) ?? candidates[0] ?? path.join(workspaceRoot, DEFAULT_SYMBOLS_PATH);
45
+ return (candidates.find((candidate) => existsSync(candidate)) ??
46
+ candidates[0] ??
47
+ path.join(workspaceRoot, DEFAULT_SYMBOLS_PATH));
46
48
  }
47
49
  function deriveCoordinatesPath(symbolsPath) {
48
50
  return path.join(path.dirname(symbolsPath), path.basename(DEFAULT_COORDINATES_PATH));
@@ -1 +1 @@
1
- {"version":3,"file":"schema-version.d.ts","sourceRoot":"","sources":["../../src/utils/schema-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAG9E,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAChD,MAAM,GAAG,IAAI,CAgBf;AAGD,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,mBAAmB,CA8CrB"}
1
+ {"version":3,"file":"schema-version.d.ts","sourceRoot":"","sources":["../../src/utils/schema-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAG9E,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAChD,MAAM,GAAG,IAAI,CAgBf;AAGD,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,mBAAmB,CA6CrB"}
@@ -1,6 +1,6 @@
1
- import { type KbConfigPaths } from "./config.js";
2
1
  import type { BaseEntity, FactFields } from "../types/entities.js";
3
2
  import type { BaseRelationship } from "../types/relationships.js";
3
+ import { type KbConfigPaths } from "./config.js";
4
4
  export interface SemanticClaim {
5
5
  source: string;
6
6
  subjectKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strict-modeling.d.ts","sourceRoot":"","sources":["../../src/utils/strict-modeling.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,11 @@ export function buildStrictWriteSet(input) {
90
90
  status: "active",
91
91
  source: buildEntitySourcePath(sourcePaths.facts, ids.observationFactId),
92
92
  text_ref: textRef,
93
- tags: buildUniqueTags([...metadataTags, "lane:observation", "review:required"]),
93
+ tags: buildUniqueTags([
94
+ ...metadataTags,
95
+ "lane:observation",
96
+ "review:required",
97
+ ]),
94
98
  fact_kind: "observation",
95
99
  subject_key: ids.normalizedSubjectKey,
96
100
  property_key: ids.normalizedPropertyKey,
@@ -138,7 +142,11 @@ export function buildStrictWriteSet(input) {
138
142
  status: "active",
139
143
  source: buildEntitySourcePath(sourcePaths.facts, ids.propertyFactId),
140
144
  text_ref: textRef,
141
- tags: buildUniqueTags([...metadataTags, "lane:strict", "fact:property_value"]),
145
+ tags: buildUniqueTags([
146
+ ...metadataTags,
147
+ "lane:strict",
148
+ "fact:property_value",
149
+ ]),
142
150
  fact_kind: "property_value",
143
151
  subject_key: ids.normalizedSubjectKey,
144
152
  property_key: ids.normalizedPropertyKey,
@@ -176,7 +184,9 @@ export function modelRequirementClaims(inputs) {
176
184
  const modeled = [];
177
185
  for (const input of inputs) {
178
186
  const writeSet = buildStrictWriteSet(input);
179
- const stableId = writeSet.isStrict ? writeSet.req.id : writeSet.observationFact.id;
187
+ const stableId = writeSet.isStrict
188
+ ? writeSet.req.id
189
+ : writeSet.observationFact.id;
180
190
  if (seen.has(stableId)) {
181
191
  continue;
182
192
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kibi-cli",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "type": "module",
5
5
  "description": "Kibi CLI for knowledge base management",
6
6
  "engines": {
@@ -11,13 +11,7 @@
11
11
  "bin": {
12
12
  "kibi": "bin/kibi"
13
13
  },
14
- "files": [
15
- "dist",
16
- "bin",
17
- "schema",
18
- "src/schemas",
19
- "src/public"
20
- ],
14
+ "files": ["dist", "bin", "schema", "src/schemas", "src/public"],
21
15
  "scripts": {
22
16
  "build": "tsc -p tsconfig.json && mkdir -p dist/public/skills && cp -r src/public/skills/. dist/public/skills/",
23
17
  "prepack": "npm run build"
@@ -75,10 +69,6 @@
75
69
  "types": "./dist/public/check-types.d.ts",
76
70
  "default": "./dist/public/check-types.js"
77
71
  },
78
- "./brief-config": {
79
- "types": "./dist/public/brief-config.d.ts",
80
- "default": "./dist/public/brief-config.js"
81
- },
82
72
  "./schema-version": {
83
73
  "types": "./dist/public/schema-version.d.ts",
84
74
  "default": "./dist/public/schema-version.js"
@@ -61,74 +61,6 @@
61
61
  "description": "[DEPRECATED] No longer used. Branch lifecycle now follows git naturally without requiring a configured default. This field is ignored but kept for backward compatibility.",
62
62
  "deprecated": true
63
63
  },
64
- "briefs": {
65
- "type": "object",
66
- "description": "Configuration for shared brief delivery defaults",
67
- "properties": {
68
- "enabled": {
69
- "type": "boolean",
70
- "default": true
71
- },
72
- "retention": {
73
- "type": "object",
74
- "properties": {
75
- "maxPerBranch": {
76
- "type": "integer",
77
- "minimum": 1,
78
- "maximum": 10000,
79
- "default": 200
80
- },
81
- "maxAgeDays": {
82
- "type": "integer",
83
- "minimum": 1,
84
- "maximum": 3650,
85
- "default": 14
86
- },
87
- "keepUnread": {
88
- "type": "boolean",
89
- "default": true
90
- }
91
- },
92
- "additionalProperties": false
93
- },
94
- "channels": {
95
- "type": "object",
96
- "properties": {
97
- "vscode": {
98
- "type": "boolean",
99
- "default": true
100
- },
101
- "tui": {
102
- "type": "boolean",
103
- "default": true
104
- }
105
- },
106
- "additionalProperties": false
107
- },
108
- "tui": {
109
- "type": "object",
110
- "properties": {
111
- "toast": {
112
- "type": "boolean",
113
- "default": true
114
- },
115
- "appendPrompt": {
116
- "type": "boolean",
117
- "default": true
118
- },
119
- "idleDelayMs": {
120
- "type": "integer",
121
- "minimum": 0,
122
- "maximum": 60000,
123
- "default": 1500,
124
- "description": "Delay in milliseconds after session.idle before idle-brief generation is attempted"
125
- }
126
- },
127
- "additionalProperties": false
128
- }
129
- },
130
- "additionalProperties": false
131
- },
132
64
  "checks": {
133
65
  "type": "object",
134
66
  "description": "Configuration for KB validation rules",
@@ -1,4 +1,10 @@
1
- import { readFileSync, existsSync, readdirSync, statSync } from "node:fs";
1
+ import {
2
+ type Dirent,
3
+ existsSync,
4
+ readFileSync,
5
+ readdirSync,
6
+ statSync,
7
+ } from "node:fs";
2
8
  import * as path from "node:path";
3
9
  import ignore from "ignore";
4
10
 
@@ -51,7 +57,7 @@ export function createRepoIgnorePolicy(workspaceRoot: string): IgnorePolicy {
51
57
  const nestedPatterns = new Map<string, string[]>();
52
58
 
53
59
  function walk(dirAbs: string) {
54
- let entries;
60
+ let entries: Dirent[];
55
61
  try {
56
62
  entries = readdirSync(dirAbs, { withFileTypes: true });
57
63
  } catch {
@@ -95,7 +101,9 @@ export function createRepoIgnorePolicy(workspaceRoot: string): IgnorePolicy {
95
101
  }
96
102
 
97
103
  // Prepare nested directories sorted by specificity (longest first)
98
- const nestedDirsSorted = Array.from(nestedIgnoreMap.keys()).sort((a, b) => b.length - a.length);
104
+ const nestedDirsSorted = Array.from(nestedIgnoreMap.keys()).sort(
105
+ (a, b) => b.length - a.length,
106
+ );
99
107
 
100
108
  function isPathOutsideWorkspace(absPath: string): boolean {
101
109
  const rel = path.relative(root, absPath);
@@ -111,9 +119,14 @@ export function createRepoIgnorePolicy(workspaceRoot: string): IgnorePolicy {
111
119
  return false;
112
120
  }
113
121
 
114
- function isIgnoredInternal(inputPath: string): { ignored: boolean; reason?: string } {
122
+ function isIgnoredInternal(inputPath: string): {
123
+ ignored: boolean;
124
+ reason?: string;
125
+ } {
115
126
  // Resolve to absolute and relative path inside workspace
116
- const abs = path.isAbsolute(inputPath) ? path.resolve(inputPath) : path.resolve(root, inputPath);
127
+ const abs = path.isAbsolute(inputPath)
128
+ ? path.resolve(inputPath)
129
+ : path.resolve(root, inputPath);
117
130
 
118
131
  if (path.isAbsolute(inputPath) && isPathOutsideWorkspace(abs)) {
119
132
  return { ignored: true, reason: "outside_workspace" };
@@ -123,7 +136,8 @@ export function createRepoIgnorePolicy(workspaceRoot: string): IgnorePolicy {
123
136
  const relPosix = toPosix(rel);
124
137
 
125
138
  // Hard denylist always wins
126
- if (matchesHardDeny(relPosix)) return { ignored: true, reason: "hard_deny" };
139
+ if (matchesHardDeny(relPosix))
140
+ return { ignored: true, reason: "hard_deny" };
127
141
 
128
142
  // Root .gitignore
129
143
  try {
@@ -147,11 +161,13 @@ export function createRepoIgnorePolicy(workspaceRoot: string): IgnorePolicy {
147
161
  for (const dirRel of nestedDirsSorted) {
148
162
  // dirRel is '.' for nested at root which we skipped, so dirRel will be like 'docs'
149
163
  if (dirRel === ".") continue;
150
- if (relPosix === dirRel || relPosix.startsWith(dirRel + "/")) {
151
- const sub = relPosix === dirRel ? "." : relPosix.slice(dirRel.length + 1);
152
- const ig = nestedIgnoreMap.get(dirRel)!;
164
+ if (relPosix === dirRel || relPosix.startsWith(`${dirRel}/`)) {
165
+ const sub =
166
+ relPosix === dirRel ? "." : relPosix.slice(dirRel.length + 1);
167
+ const ig = nestedIgnoreMap.get(dirRel);
168
+ if (!ig) continue;
153
169
  try {
154
- if (ig && ig.ignores(sub)) return { ignored: true, reason: "gitignored" };
170
+ if (ig.ignores(sub)) return { ignored: true, reason: "gitignored" };
155
171
  } catch (e) {
156
172
  // noop
157
173
  }
@@ -1,4 +1,5 @@
1
- export function isOperationalArtifactPath(pathLike: string): boolean { // implements REQ-001
1
+ export function isOperationalArtifactPath(pathLike: string): boolean {
2
+ // implements REQ-001
2
3
  const normalized = pathLike.replaceAll("\\", "/");
3
4
 
4
5
  return /(^|\/)\.sisyphus\//.test(normalized);