@skillsmith/core 0.11.5 → 0.11.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.
Files changed (145) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +2 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/api/client.d.ts.map +1 -1
  5. package/dist/src/api/client.js +5 -0
  6. package/dist/src/api/client.js.map +1 -1
  7. package/dist/src/api/client.test.js +39 -0
  8. package/dist/src/api/client.test.js.map +1 -1
  9. package/dist/src/compatibility/slugs.d.ts +7 -3
  10. package/dist/src/compatibility/slugs.d.ts.map +1 -1
  11. package/dist/src/compatibility/slugs.js +11 -4
  12. package/dist/src/compatibility/slugs.js.map +1 -1
  13. package/dist/src/db/drivers/sqljsDriver.d.ts +8 -0
  14. package/dist/src/db/drivers/sqljsDriver.d.ts.map +1 -1
  15. package/dist/src/db/drivers/sqljsDriver.js +24 -2
  16. package/dist/src/db/drivers/sqljsDriver.js.map +1 -1
  17. package/dist/src/db/migration-runner.d.ts.map +1 -1
  18. package/dist/src/db/migration-runner.js +23 -2
  19. package/dist/src/db/migration-runner.js.map +1 -1
  20. package/dist/src/db/schema.d.ts.map +1 -1
  21. package/dist/src/db/schema.js +29 -3
  22. package/dist/src/db/schema.js.map +1 -1
  23. package/dist/src/exports/services.d.ts +2 -1
  24. package/dist/src/exports/services.d.ts.map +1 -1
  25. package/dist/src/exports/services.js +6 -1
  26. package/dist/src/exports/services.js.map +1 -1
  27. package/dist/src/index.d.ts +2 -1
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/index.js +7 -1
  30. package/dist/src/index.js.map +1 -1
  31. package/dist/src/install/agent-config-merge.json-array.d.ts +8 -0
  32. package/dist/src/install/agent-config-merge.json-array.d.ts.map +1 -1
  33. package/dist/src/install/agent-config-merge.json-array.js +11 -2
  34. package/dist/src/install/agent-config-merge.json-array.js.map +1 -1
  35. package/dist/src/install/agent-harness-targets.d.ts +5 -0
  36. package/dist/src/install/agent-harness-targets.d.ts.map +1 -1
  37. package/dist/src/install/agent-harness-targets.js +19 -4
  38. package/dist/src/install/agent-harness-targets.js.map +1 -1
  39. package/dist/src/install/agent-pack-installer.cursor-hooks.d.ts +29 -0
  40. package/dist/src/install/agent-pack-installer.cursor-hooks.d.ts.map +1 -0
  41. package/dist/src/install/agent-pack-installer.cursor-hooks.js +114 -0
  42. package/dist/src/install/agent-pack-installer.cursor-hooks.js.map +1 -0
  43. package/dist/src/install/agent-pack-installer.cursor-hooks.test.d.ts +2 -0
  44. package/dist/src/install/agent-pack-installer.cursor-hooks.test.d.ts.map +1 -0
  45. package/dist/src/install/agent-pack-installer.cursor-hooks.test.js +80 -0
  46. package/dist/src/install/agent-pack-installer.cursor-hooks.test.js.map +1 -0
  47. package/dist/src/install/agent-pack-installer.d.ts +10 -5
  48. package/dist/src/install/agent-pack-installer.d.ts.map +1 -1
  49. package/dist/src/install/agent-pack-installer.harness.d.ts +2 -2
  50. package/dist/src/install/agent-pack-installer.harness.d.ts.map +1 -1
  51. package/dist/src/install/agent-pack-installer.harness.js +1 -1
  52. package/dist/src/install/agent-pack-installer.harness.js.map +1 -1
  53. package/dist/src/install/agent-pack-installer.js +15 -6
  54. package/dist/src/install/agent-pack-installer.js.map +1 -1
  55. package/dist/src/install/agent-pack-installer.test.js +3 -0
  56. package/dist/src/install/agent-pack-installer.test.js.map +1 -1
  57. package/dist/src/install/index.d.ts +2 -2
  58. package/dist/src/install/index.d.ts.map +1 -1
  59. package/dist/src/install/index.js +1 -1
  60. package/dist/src/install/index.js.map +1 -1
  61. package/dist/src/install/paths.d.ts +155 -1
  62. package/dist/src/install/paths.d.ts.map +1 -1
  63. package/dist/src/install/paths.js +235 -1
  64. package/dist/src/install/paths.js.map +1 -1
  65. package/dist/src/install/paths.test.js +174 -2
  66. package/dist/src/install/paths.test.js.map +1 -1
  67. package/dist/src/services/agent-pack/prompt-source.d.ts +15 -0
  68. package/dist/src/services/agent-pack/prompt-source.d.ts.map +1 -1
  69. package/dist/src/services/agent-pack/prompt-source.js +31 -0
  70. package/dist/src/services/agent-pack/prompt-source.js.map +1 -1
  71. package/dist/src/services/agent-pack/skill-md.d.ts.map +1 -1
  72. package/dist/src/services/agent-pack/skill-md.js +9 -1
  73. package/dist/src/services/agent-pack/skill-md.js.map +1 -1
  74. package/dist/src/services/context-words.d.ts +40 -0
  75. package/dist/src/services/context-words.d.ts.map +1 -0
  76. package/dist/src/services/context-words.js +178 -0
  77. package/dist/src/services/context-words.js.map +1 -0
  78. package/dist/src/services/context-words.test.d.ts +2 -0
  79. package/dist/src/services/context-words.test.d.ts.map +1 -0
  80. package/dist/src/services/context-words.test.js +94 -0
  81. package/dist/src/services/context-words.test.js.map +1 -0
  82. package/dist/src/services/recommend-guard.d.ts +19 -0
  83. package/dist/src/services/recommend-guard.d.ts.map +1 -1
  84. package/dist/src/services/recommend-guard.js +21 -0
  85. package/dist/src/services/recommend-guard.js.map +1 -1
  86. package/dist/src/services/recommend-guard.test.js +19 -3
  87. package/dist/src/services/recommend-guard.test.js.map +1 -1
  88. package/dist/src/services/skill-installation.content.d.ts +8 -0
  89. package/dist/src/services/skill-installation.content.d.ts.map +1 -1
  90. package/dist/src/services/skill-installation.content.js +2 -2
  91. package/dist/src/services/skill-installation.content.js.map +1 -1
  92. package/dist/src/services/skill-installation.helpers.d.ts.map +1 -1
  93. package/dist/src/services/skill-installation.helpers.js +24 -2
  94. package/dist/src/services/skill-installation.helpers.js.map +1 -1
  95. package/dist/src/services/skill-installation.helpers.test.js +76 -2
  96. package/dist/src/services/skill-installation.helpers.test.js.map +1 -1
  97. package/dist/src/services/skill-installation.io.d.ts +22 -1
  98. package/dist/src/services/skill-installation.io.d.ts.map +1 -1
  99. package/dist/src/services/skill-installation.io.js +36 -5
  100. package/dist/src/services/skill-installation.io.js.map +1 -1
  101. package/dist/src/services/skill-installation.service.d.ts +2 -0
  102. package/dist/src/services/skill-installation.service.d.ts.map +1 -1
  103. package/dist/src/services/skill-installation.service.js +4 -1
  104. package/dist/src/services/skill-installation.service.js.map +1 -1
  105. package/dist/src/services/skill-manifest.d.ts +21 -0
  106. package/dist/src/services/skill-manifest.d.ts.map +1 -1
  107. package/dist/src/services/skill-manifest.js +51 -6
  108. package/dist/src/services/skill-manifest.js.map +1 -1
  109. package/dist/src/services/skill-manifest.test.d.ts +2 -0
  110. package/dist/src/services/skill-manifest.test.d.ts.map +1 -0
  111. package/dist/src/services/skill-manifest.test.js +202 -0
  112. package/dist/src/services/skill-manifest.test.js.map +1 -0
  113. package/dist/src/types/skill.d.ts +10 -0
  114. package/dist/src/types/skill.d.ts.map +1 -1
  115. package/dist/src/types.d.ts +9 -5
  116. package/dist/src/types.d.ts.map +1 -1
  117. package/dist/tests/db/migration-runner-race.test.d.ts +2 -0
  118. package/dist/tests/db/migration-runner-race.test.d.ts.map +1 -0
  119. package/dist/tests/db/migration-runner-race.test.js +75 -0
  120. package/dist/tests/db/migration-runner-race.test.js.map +1 -0
  121. package/dist/tests/db/schema-async.test.js +37 -1
  122. package/dist/tests/db/schema-async.test.js.map +1 -1
  123. package/dist/tests/db/sqljsDriver.test.js +63 -1
  124. package/dist/tests/db/sqljsDriver.test.js.map +1 -1
  125. package/dist/tests/schema.test.js +43 -1
  126. package/dist/tests/schema.test.js.map +1 -1
  127. package/dist/tests/security/smi5879-corroboration.core.test.d.ts +31 -0
  128. package/dist/tests/security/smi5879-corroboration.core.test.d.ts.map +1 -0
  129. package/dist/tests/security/smi5879-corroboration.core.test.js +157 -0
  130. package/dist/tests/security/smi5879-corroboration.core.test.js.map +1 -0
  131. package/dist/tests/skill-md-cli-fallback-parity.test.d.ts +22 -0
  132. package/dist/tests/skill-md-cli-fallback-parity.test.d.ts.map +1 -0
  133. package/dist/tests/skill-md-cli-fallback-parity.test.js +92 -0
  134. package/dist/tests/skill-md-cli-fallback-parity.test.js.map +1 -0
  135. package/dist/tests/skill-scanner/allowlist.test.js +9 -1
  136. package/dist/tests/skill-scanner/allowlist.test.js.map +1 -1
  137. package/dist/tests/unit/services/skill-installation.io.client-agent-path.test.d.ts +34 -0
  138. package/dist/tests/unit/services/skill-installation.io.client-agent-path.test.d.ts.map +1 -0
  139. package/dist/tests/unit/services/skill-installation.io.client-agent-path.test.js +246 -0
  140. package/dist/tests/unit/services/skill-installation.io.client-agent-path.test.js.map +1 -0
  141. package/dist/tests/unit/services/skill-installation.service.companion-basedir.test.d.ts +17 -0
  142. package/dist/tests/unit/services/skill-installation.service.companion-basedir.test.d.ts.map +1 -0
  143. package/dist/tests/unit/services/skill-installation.service.companion-basedir.test.js +112 -0
  144. package/dist/tests/unit/services/skill-installation.service.companion-basedir.test.js.map +1 -0
  145. package/package.json +7 -7
@@ -0,0 +1,157 @@
1
+ /**
2
+ * SMI-5879 G-5 fixture-corpus corroboration — CORE twin.
3
+ * @module packages/core/tests/security/smi5879-corroboration.core
4
+ *
5
+ * Version-regression check: pre-port `SecurityScanner` (the committed golden,
6
+ * generated at `PRE_PORT_BASELINE_SHA` — see
7
+ * `docs/internal/implementation/smi-5879-g5-corroboration-spec.md` §0/§4) vs
8
+ * THIS branch's HEAD `SecurityScanner`, over the shared fixture corpus,
9
+ * asserting every non-AI `RiskScoreBreakdown` key is unchanged. It is NOT
10
+ * `scripts/tests/indexer/parity.test.ts`'s core/Node/Deno twin-parity check —
11
+ * see `scripts/indexer/smi5879-corroboration.types.ts`'s header for the full
12
+ * distinction.
13
+ *
14
+ * PRE-PORT VACUOUSNESS WARNING: PR #2192 (the evidence-tier port to the edge
15
+ * twin) has not merged as of this file's authorship. Until it does, "current
16
+ * HEAD" and "pre-port baseline" are the SAME scanner, so a green run here is
17
+ * NOT yet evidence the port preserved non-AI scoring — it is the scanner
18
+ * compared to itself. This check starts being meaningful the moment #2192
19
+ * lands; do not read a pre-merge green as validation of anything.
20
+ *
21
+ * `packages/core` never imports from `scripts/` (an established repo
22
+ * boundary — see `smi5879-corroboration.types.ts`'s own header), so this
23
+ * file duplicates the ~5-line content materialiser/hasher and the two small
24
+ * key-list constants below rather than importing
25
+ * `scripts/tests/indexer/smi5879-corroboration.fixtures.ts` /
26
+ * `scripts/indexer/smi5879-corroboration.types.ts` across that boundary.
27
+ * `contentSha256` re-verification (assertion 2 below) makes any divergence
28
+ * between the two copies a loud test failure, never a silent one.
29
+ */
30
+ import { createHash } from 'node:crypto';
31
+ import { readFileSync } from 'node:fs';
32
+ import { join } from 'node:path';
33
+ import { describe, expect, it } from 'vitest';
34
+ // Imported from the SCANNER submodule directly, NOT the `../../src/security/
35
+ // index.js` barrel other core security tests use — that barrel also
36
+ // re-exports typosquat/confusables/AuditLogger/rate-limiter/SkillSandbox
37
+ // (unrelated to RiskScoreBreakdown scoring; `SecurityScanner.scan()` never
38
+ // calls typosquat.ts, per this repo's `smi5879-corroboration.types.ts`
39
+ // header). The edge test's watch-list-closure assertion traces this file's
40
+ // OWN transitive import graph, so importing the wide barrel here would drag
41
+ // dozens of unrelated files into that closure for no behavioural reason.
42
+ import { SecurityScanner } from '../../src/security/scanner/SecurityScanner.js';
43
+ // ---------------------------------------------------------------------------
44
+ // Duplicated from scripts/indexer/smi5879-corroboration.types.ts — keep in
45
+ // sync; see this file's header for why it cannot be imported directly.
46
+ // ---------------------------------------------------------------------------
47
+ const PRE_PORT_BASELINE_SHA = 'a694a9f242197277fa69210e0241f84b883552e6';
48
+ const CORE_NON_AI_BREAKDOWN_KEYS = [
49
+ 'codeExecution',
50
+ 'dataExfiltration',
51
+ 'externalUrls',
52
+ 'obfuscatedDirective',
53
+ 'pii',
54
+ 'privilegeEscalation',
55
+ 'promptLeaking',
56
+ 'sensitivePaths',
57
+ 'socialEngineering',
58
+ 'ssrf',
59
+ 'suspiciousCode',
60
+ 'typosquat',
61
+ ];
62
+ const STRUCTURALLY_ZERO_CORE_KEYS = ['typosquat'];
63
+ // ---------------------------------------------------------------------------
64
+ // The ~5-line materialiser/hasher (deliberately duplicated — see header)
65
+ // ---------------------------------------------------------------------------
66
+ function materializeContent(content) {
67
+ if (content.kind === 'literal')
68
+ return content.text ?? '';
69
+ return (content.segments ?? []).map((s) => s.text.repeat(s.repeat)).join('');
70
+ }
71
+ function sha256Hex(text) {
72
+ return createHash('sha256').update(text, 'utf8').digest('hex');
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Fixtures — read by path from the repo root, not imported (see header)
76
+ // ---------------------------------------------------------------------------
77
+ const REPO_ROOT = join(import.meta.dirname, '../../../../');
78
+ const MANIFEST_PATH = join(REPO_ROOT, 'scripts/tests/indexer/smi5879-corroboration-corpus.json');
79
+ const GOLDEN_PATH = join(REPO_ROOT, 'scripts/tests/indexer/smi5879-corroboration-golden.core.json');
80
+ const manifestBytes = readFileSync(MANIFEST_PATH);
81
+ const manifest = JSON.parse(manifestBytes.toString('utf8'));
82
+ const golden = JSON.parse(readFileSync(GOLDEN_PATH, 'utf8'));
83
+ const manifestDigest = createHash('sha256').update(manifestBytes).digest('hex');
84
+ const coreCases = manifest.contentCases.filter((c) => c.twins.includes('core'));
85
+ const goldenByCaseId = new Map(golden.rows.map((r) => [r.caseId, r]));
86
+ const scanner = new SecurityScanner();
87
+ function projectCore(breakdown) {
88
+ return Object.fromEntries(CORE_NON_AI_BREAKDOWN_KEYS.map((k) => [k, breakdown[k]]));
89
+ }
90
+ describe('SMI-5879 G-5 fixture-corpus corroboration (core)', () => {
91
+ it('golden provenance binds to the pinned pre-port SHA and the committed manifest digest', () => {
92
+ expect(golden.provenance.sourceCommit).toBe(PRE_PORT_BASELINE_SHA);
93
+ expect(golden.provenance.manifestDigest).toBe(manifestDigest);
94
+ expect(golden.provenance.manifestVersion).toBe(manifest.manifestVersion);
95
+ expect(golden.provenance.projectionSchemaVersion).toBe(manifest.projectionSchemaVersion);
96
+ expect(golden.twin).toBe('core');
97
+ expect([...golden.projectedKeys].sort()).toEqual([...CORE_NON_AI_BREAKDOWN_KEYS].sort());
98
+ });
99
+ it('every non-AI RiskScoreBreakdown key is unchanged from the pre-port golden, for every corpus case', () => {
100
+ const offenses = [];
101
+ const contentMismatches = [];
102
+ for (const c of coreCases) {
103
+ const text = materializeContent(c.content);
104
+ const actualHash = sha256Hex(text);
105
+ if (actualHash !== c.contentSha256) {
106
+ contentMismatches.push(`${c.caseId}: manifest contentSha256=${c.contentSha256}, materialised=${actualHash}`);
107
+ continue;
108
+ }
109
+ const goldenRow = goldenByCaseId.get(c.caseId);
110
+ if (!goldenRow)
111
+ continue; // caught by the coverage test below, not here
112
+ const report = scanner.scan(c.skillId, text);
113
+ const actualProjection = projectCore(report.riskBreakdown);
114
+ for (const key of CORE_NON_AI_BREAKDOWN_KEYS) {
115
+ if (actualProjection[key] !== goldenRow.breakdown[key]) {
116
+ offenses.push({
117
+ caseId: c.caseId,
118
+ key,
119
+ golden: goldenRow.breakdown[key],
120
+ actual: actualProjection[key],
121
+ });
122
+ }
123
+ }
124
+ }
125
+ expect(contentMismatches, contentMismatches.join('\n')).toEqual([]);
126
+ expect(offenses, JSON.stringify(offenses, null, 2)).toEqual([]);
127
+ });
128
+ it('the golden covers every manifest case targeting this twin, and no others', () => {
129
+ const manifestIds = coreCases.map((c) => c.caseId).sort((a, b) => a.localeCompare(b, 'en'));
130
+ const goldenIds = golden.rows.map((r) => r.caseId).sort((a, b) => a.localeCompare(b, 'en'));
131
+ expect(goldenIds).toEqual(manifestIds);
132
+ });
133
+ it('every projected key except the structurally-zero ones is exercised non-zero by at least one case', () => {
134
+ const nonZeroSomewhere = new Set();
135
+ const zeroEverywhere = new Set(CORE_NON_AI_BREAKDOWN_KEYS);
136
+ for (const row of golden.rows) {
137
+ for (const key of CORE_NON_AI_BREAKDOWN_KEYS) {
138
+ if (row.breakdown[key] !== 0) {
139
+ nonZeroSomewhere.add(key);
140
+ zeroEverywhere.delete(key);
141
+ }
142
+ }
143
+ }
144
+ for (const key of CORE_NON_AI_BREAKDOWN_KEYS) {
145
+ if (STRUCTURALLY_ZERO_CORE_KEYS.includes(key)) {
146
+ expect(nonZeroSomewhere.has(key), `${key} was expected to be structurally zero`).toBe(false);
147
+ }
148
+ else {
149
+ expect(nonZeroSomewhere.has(key), `${key} is never non-zero in any golden row`).toBe(true);
150
+ }
151
+ }
152
+ for (const key of STRUCTURALLY_ZERO_CORE_KEYS) {
153
+ expect(zeroEverywhere.has(key), `${key} was expected to stay zero in every row`).toBe(true);
154
+ }
155
+ });
156
+ });
157
+ //# sourceMappingURL=smi5879-corroboration.core.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smi5879-corroboration.core.test.js","sourceRoot":"","sources":["../../../tests/security/smi5879-corroboration.core.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * SMI-5893 Wave 6 Step 5 — structural parity guard for the "CLI Fallback"
3
+ * section across the three independently-bundled SKILL.md assets:
4
+ *
5
+ * - packages/cli/assets/skillsmith-skill/SKILL.md (the original pattern —
6
+ * already had a working "## CLI Fallback" section before this wave)
7
+ * - packages/mcp-server/src/assets/agent-pack/SKILL.md (ported in this wave)
8
+ * - packages/mcp-server/src/assets/skills/skillsmith/SKILL.md (ported in
9
+ * this wave)
10
+ *
11
+ * Per the SMI-5893 plan doc's Wave 6 Step 5 (GPT-5.6-Sol plan review
12
+ * correction): "porting the same pattern by hand risks becoming a fourth
13
+ * independent copy that drifts again" — the exact reinvent-instead-of-reuse
14
+ * pattern this whole plan exists to eliminate. This test is the drift guard:
15
+ * it does NOT require byte-identical prose, only that each file has the same
16
+ * *structural* elements — an explicit "if MCP unavailable, use the CLI"
17
+ * heading, a fenced shell block, and at least one real `skillsmith` command
18
+ * inside it. If a future edit adds a fourth bundled SKILL.md, or an existing
19
+ * one loses its fallback section, this test fails.
20
+ */
21
+ export {};
22
+ //# sourceMappingURL=skill-md-cli-fallback-parity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-md-cli-fallback-parity.test.d.ts","sourceRoot":"","sources":["../../tests/skill-md-cli-fallback-parity.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * SMI-5893 Wave 6 Step 5 — structural parity guard for the "CLI Fallback"
3
+ * section across the three independently-bundled SKILL.md assets:
4
+ *
5
+ * - packages/cli/assets/skillsmith-skill/SKILL.md (the original pattern —
6
+ * already had a working "## CLI Fallback" section before this wave)
7
+ * - packages/mcp-server/src/assets/agent-pack/SKILL.md (ported in this wave)
8
+ * - packages/mcp-server/src/assets/skills/skillsmith/SKILL.md (ported in
9
+ * this wave)
10
+ *
11
+ * Per the SMI-5893 plan doc's Wave 6 Step 5 (GPT-5.6-Sol plan review
12
+ * correction): "porting the same pattern by hand risks becoming a fourth
13
+ * independent copy that drifts again" — the exact reinvent-instead-of-reuse
14
+ * pattern this whole plan exists to eliminate. This test is the drift guard:
15
+ * it does NOT require byte-identical prose, only that each file has the same
16
+ * *structural* elements — an explicit "if MCP unavailable, use the CLI"
17
+ * heading, a fenced shell block, and at least one real `skillsmith` command
18
+ * inside it. If a future edit adds a fourth bundled SKILL.md, or an existing
19
+ * one loses its fallback section, this test fails.
20
+ */
21
+ import { describe, it, expect } from 'vitest';
22
+ import * as fs from 'fs';
23
+ import * as path from 'path';
24
+ import { fileURLToPath } from 'url';
25
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
26
+ const SKILL_MD_FILES = [
27
+ {
28
+ label: 'CLI bundled skill (the canonical pattern)',
29
+ path: path.join(__dirname, '../../cli/assets/skillsmith-skill/SKILL.md'),
30
+ },
31
+ {
32
+ label: 'MCP agent-pack SKILL.md',
33
+ path: path.join(__dirname, '../../mcp-server/src/assets/agent-pack/SKILL.md'),
34
+ },
35
+ {
36
+ label: 'MCP master skillsmith SKILL.md',
37
+ path: path.join(__dirname, '../../mcp-server/src/assets/skills/skillsmith/SKILL.md'),
38
+ },
39
+ ];
40
+ /** Matches a "## CLI Fallback" (or similarly-worded) markdown heading. */
41
+ const FALLBACK_HEADING = /^#{2,3}\s+.*CLI Fallback.*$/im;
42
+ /**
43
+ * Extracts the section body between the CLI Fallback heading and the next
44
+ * heading of the same or higher level (or EOF).
45
+ */
46
+ function extractFallbackSection(content) {
47
+ const headingMatch = FALLBACK_HEADING.exec(content);
48
+ if (!headingMatch)
49
+ return '';
50
+ const start = headingMatch.index + headingMatch[0].length;
51
+ const rest = content.slice(start);
52
+ // Only #{2,3} (##/###) counts as the "next heading" — a bare single `#`
53
+ // would also match a shell comment like "# Search" inside the fallback
54
+ // section's own fenced code block and truncate extraction prematurely.
55
+ const nextHeading = /^#{2,3}\s+/m.exec(rest);
56
+ return nextHeading ? rest.slice(0, nextHeading.index) : rest;
57
+ }
58
+ describe('SMI-5893 Wave 6 Step 5 — SKILL.md CLI Fallback structural parity', () => {
59
+ for (const { label, path: filePath } of SKILL_MD_FILES) {
60
+ it(`${label} has a CLI Fallback section`, () => {
61
+ expect(fs.existsSync(filePath), `expected file to exist: ${filePath}`).toBe(true);
62
+ const content = fs.readFileSync(filePath, 'utf-8');
63
+ expect(FALLBACK_HEADING.test(content)).toBe(true);
64
+ });
65
+ it(`${label} — CLI Fallback section states MCP unavailability as the trigger`, () => {
66
+ const content = fs.readFileSync(filePath, 'utf-8');
67
+ const section = extractFallbackSection(content);
68
+ expect(section.length, `expected a non-empty section body in ${filePath}`).toBeGreaterThan(0);
69
+ expect(/MCP server is unavailable/i.test(section)).toBe(true);
70
+ expect(/use the CLI/i.test(section)).toBe(true);
71
+ });
72
+ it(`${label} — CLI Fallback section has a fenced shell block with real skillsmith commands`, () => {
73
+ const content = fs.readFileSync(filePath, 'utf-8');
74
+ const section = extractFallbackSection(content);
75
+ const fence = /```(?:bash|sh)?\n([\s\S]*?)```/.exec(section);
76
+ expect(fence, `expected a fenced code block in the CLI Fallback section of ${filePath}`).not.toBeNull();
77
+ const commandLines = (fence?.[1] ?? '')
78
+ .split('\n')
79
+ .filter((line) => line.trim().startsWith('skillsmith '));
80
+ expect(commandLines.length, `expected at least one "skillsmith <cmd>" line in ${filePath}`).toBeGreaterThan(0);
81
+ });
82
+ }
83
+ it('all three files agree on the exact heading text ("## CLI Fallback")', () => {
84
+ const headings = SKILL_MD_FILES.map(({ path: filePath }) => {
85
+ const content = fs.readFileSync(filePath, 'utf-8');
86
+ const match = FALLBACK_HEADING.exec(content);
87
+ return match?.[0].replace(/^#{2,3}\s+/, '').trim();
88
+ });
89
+ expect(headings.every((h) => h === 'CLI Fallback')).toBe(true);
90
+ });
91
+ });
92
+ //# sourceMappingURL=skill-md-cli-fallback-parity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-md-cli-fallback-parity.test.js","sourceRoot":"","sources":["../../tests/skill-md-cli-fallback-parity.test.ts"],"names":[],"mappings":"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"}
@@ -342,11 +342,17 @@ describe('data/skills-security-allowlist.json (ship-it sanity)', () => {
342
342
  // as a threat it detects; same self-describing-security-tool FP class as
343
343
  // MalPromptSentinel-CC-Skill. Also renewed the 4 entries that were about to
344
344
  // expire 2026-07-21 (kcmadden, MalPromptSentinel, rhysha, mdium).
345
+ // SMI-6018 (2026-08-13): fitz2882/narthex added — defensive prompt-injection
346
+ // tool for Claude Code whose repo description says it 'flags jailbreaks'
347
+ // and 'blocks compositional credential-exfiltration shapes'; two entries
348
+ // (jailbreak, data_exfiltration findingTypes) since both bare-keyword
349
+ // patterns trip on the same description line — same self-describing-
350
+ // security-tool FP class as RENJI04/prompt-injection-auditor.
345
351
  it('is parseable and every entry expires 90 days after review', () => {
346
352
  const filePath = path.resolve(__dirname, '../../../../data/skills-security-allowlist.json');
347
353
  const raw = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
348
354
  const parsed = parseAllowlistFile(raw);
349
- expect(parsed.allowlist.length).toBe(9);
355
+ expect(parsed.allowlist.length).toBe(11);
350
356
  const ids = parsed.allowlist.map((e) => e.skillId).sort();
351
357
  expect(ids).toEqual([
352
358
  'github/D1DX/secret-capture-skill',
@@ -354,6 +360,8 @@ describe('data/skills-security-allowlist.json (ship-it sanity)', () => {
354
360
  'github/RobinGase/skill-protocol-rs',
355
361
  'github/StrategicPromptArchitect-AI/MalPromptSentinel-CC-Skill',
356
362
  'github/dokind/qpay-skills',
363
+ 'github/fitz2882/narthex',
364
+ 'github/fitz2882/narthex',
357
365
  'github/kcmadden/claude-code-1password-skill',
358
366
  'github/leksman/ai-security-guard',
359
367
  'github/rhysha/claude-security-research-skill',
@@ -1 +1 @@
1
- {"version":3,"file":"allowlist.test.js","sourceRoot":"","sources":["../../../tests/skill-scanner/allowlist.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowlist.test.js","sourceRoot":"","sources":["../../../tests/skill-scanner/allowlist.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * SMI-5980 (Wave 3): writeInstallFiles must route the companion-subagent
3
+ * write through COMPANION_AGENT_TARGETS (install/paths.ts) for the caller's
4
+ * `client`, not a hardcoded `path.join(os.homedir(), '.claude', 'agents')`
5
+ * literal.
6
+ *
7
+ * `homedir()` is mocked to a controlled tmp directory BEFORE `paths.ts` is
8
+ * first imported — COMPANION_AGENT_TARGETS is a module-level constant
9
+ * computed once at import time from `homedir()`, so every assertion below
10
+ * compares against that SAME already-resolved map rather than a second,
11
+ * independently-hardcoded expectation. This also keeps the test from ever
12
+ * writing to a real developer/CI machine's actual home directory.
13
+ *
14
+ * SMI-5982 (Wave 6): antigravity's `COMPANION_AGENT_TARGETS` entry uses a
15
+ * RELATIVE `dir` (resolved against `process.cwd()`, not `homedir()`) — its
16
+ * own dedicated describe block below chdir's into an isolated tmp directory
17
+ * per test (never TEST_HOME, never the real repo checkout) rather than
18
+ * relying on the homedir() mock every other client's assertions use.
19
+ *
20
+ * SMI-5982 code-review fix #1 (BLOCKING, cwd-dependent resolution):
21
+ * `writeInstallFiles()` now resolves antigravity's relative `dir` via
22
+ * `resolveCompanionAgentPath()`'s explicit `baseDir` param (defaulting to
23
+ * `process.cwd()` at the call site, not deferred to whatever `fs` call
24
+ * eventually consumes the path) — so `result.subagentPath` is now an
25
+ * ABSOLUTE path even for antigravity, not the raw relative string. The
26
+ * `it.each` below covers both the omitted-`companionBaseDir` (falls back to
27
+ * `process.cwd()`, which this describe block's chdir controls) and an
28
+ * explicit `companionBaseDir` override.
29
+ *
30
+ * Split out of skill-installation.io.test.ts to stay under the 500-line
31
+ * CI gate (same rationale as skill-installation.io.symlink.test.ts).
32
+ */
33
+ export {};
34
+ //# sourceMappingURL=skill-installation.io.client-agent-path.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-installation.io.client-agent-path.test.d.ts","sourceRoot":"","sources":["../../../../tests/unit/services/skill-installation.io.client-agent-path.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}