@soleri/core 9.12.1 → 9.14.0

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 (160) hide show
  1. package/dist/engine/bin/soleri-engine.js +7 -2
  2. package/dist/engine/bin/soleri-engine.js.map +1 -1
  3. package/dist/flows/types.d.ts +34 -30
  4. package/dist/flows/types.d.ts.map +1 -1
  5. package/dist/index.d.ts +4 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/knowledge-packs/community/.gitkeep +0 -0
  10. package/dist/knowledge-packs/knowledge-packs/community/.gitkeep +0 -0
  11. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/soleri-pack.json +10 -0
  12. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/accessibility.json +53 -0
  13. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/design-tokens.json +26 -0
  14. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/design.json +33 -0
  15. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/styling.json +44 -0
  16. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/ux-laws.json +36 -0
  17. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-craft/vault/ux.json +36 -0
  18. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/soleri-pack.json +10 -0
  19. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/architecture.json +143 -0
  20. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/commercial.json +16 -0
  21. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/communication.json +33 -0
  22. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/component.json +16 -0
  23. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/express.json +34 -0
  24. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/leadership.json +33 -0
  25. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/methodology.json +33 -0
  26. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/monorepo.json +33 -0
  27. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/other.json +73 -0
  28. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/performance.json +35 -0
  29. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/prisma.json +33 -0
  30. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/product-strategy.json +42 -0
  31. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/react.json +47 -0
  32. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/security.json +34 -0
  33. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/testing.json +33 -0
  34. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/tooling.json +85 -0
  35. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/typescript.json +34 -0
  36. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-engineering/vault/workflow.json +46 -0
  37. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-uipro/soleri-pack.json +10 -0
  38. package/dist/knowledge-packs/knowledge-packs/salvador/salvador-uipro/vault/design.json +2589 -0
  39. package/dist/knowledge-packs/knowledge-packs/starter/api-design/soleri-pack.json +9 -0
  40. package/dist/knowledge-packs/knowledge-packs/starter/api-design/vault/patterns.json +137 -0
  41. package/dist/knowledge-packs/knowledge-packs/starter/architecture/soleri-pack.json +10 -0
  42. package/dist/knowledge-packs/knowledge-packs/starter/architecture/vault/patterns.json +137 -0
  43. package/dist/knowledge-packs/knowledge-packs/starter/design/soleri-pack.json +10 -0
  44. package/dist/knowledge-packs/knowledge-packs/starter/design/vault/patterns.json +137 -0
  45. package/dist/knowledge-packs/knowledge-packs/starter/nodejs/soleri-pack.json +9 -0
  46. package/dist/knowledge-packs/knowledge-packs/starter/nodejs/vault/patterns.json +137 -0
  47. package/dist/knowledge-packs/knowledge-packs/starter/react/soleri-pack.json +9 -0
  48. package/dist/knowledge-packs/knowledge-packs/starter/react/vault/patterns.json +164 -0
  49. package/dist/knowledge-packs/knowledge-packs/starter/security/soleri-pack.json +10 -0
  50. package/dist/knowledge-packs/knowledge-packs/starter/security/vault/patterns.json +137 -0
  51. package/dist/knowledge-packs/knowledge-packs/starter/testing/soleri-pack.json +9 -0
  52. package/dist/knowledge-packs/knowledge-packs/starter/testing/vault/patterns.json +128 -0
  53. package/dist/knowledge-packs/knowledge-packs/starter/typescript/soleri-pack.json +9 -0
  54. package/dist/knowledge-packs/knowledge-packs/starter/typescript/vault/patterns.json +164 -0
  55. package/dist/knowledge-packs/salvador/salvador-craft/soleri-pack.json +10 -0
  56. package/dist/knowledge-packs/salvador/salvador-craft/vault/accessibility.json +53 -0
  57. package/dist/knowledge-packs/salvador/salvador-craft/vault/design-tokens.json +26 -0
  58. package/dist/knowledge-packs/salvador/salvador-craft/vault/design.json +33 -0
  59. package/dist/knowledge-packs/salvador/salvador-craft/vault/styling.json +44 -0
  60. package/dist/knowledge-packs/salvador/salvador-craft/vault/ux-laws.json +36 -0
  61. package/dist/knowledge-packs/salvador/salvador-craft/vault/ux.json +36 -0
  62. package/dist/knowledge-packs/salvador/salvador-engineering/soleri-pack.json +10 -0
  63. package/dist/knowledge-packs/salvador/salvador-engineering/vault/architecture.json +143 -0
  64. package/dist/knowledge-packs/salvador/salvador-engineering/vault/commercial.json +16 -0
  65. package/dist/knowledge-packs/salvador/salvador-engineering/vault/communication.json +33 -0
  66. package/dist/knowledge-packs/salvador/salvador-engineering/vault/component.json +16 -0
  67. package/dist/knowledge-packs/salvador/salvador-engineering/vault/express.json +34 -0
  68. package/dist/knowledge-packs/salvador/salvador-engineering/vault/leadership.json +33 -0
  69. package/dist/knowledge-packs/salvador/salvador-engineering/vault/methodology.json +33 -0
  70. package/dist/knowledge-packs/salvador/salvador-engineering/vault/monorepo.json +33 -0
  71. package/dist/knowledge-packs/salvador/salvador-engineering/vault/other.json +73 -0
  72. package/dist/knowledge-packs/salvador/salvador-engineering/vault/performance.json +35 -0
  73. package/dist/knowledge-packs/salvador/salvador-engineering/vault/prisma.json +33 -0
  74. package/dist/knowledge-packs/salvador/salvador-engineering/vault/product-strategy.json +42 -0
  75. package/dist/knowledge-packs/salvador/salvador-engineering/vault/react.json +47 -0
  76. package/dist/knowledge-packs/salvador/salvador-engineering/vault/security.json +34 -0
  77. package/dist/knowledge-packs/salvador/salvador-engineering/vault/testing.json +33 -0
  78. package/dist/knowledge-packs/salvador/salvador-engineering/vault/tooling.json +85 -0
  79. package/dist/knowledge-packs/salvador/salvador-engineering/vault/typescript.json +34 -0
  80. package/dist/knowledge-packs/salvador/salvador-engineering/vault/workflow.json +46 -0
  81. package/dist/knowledge-packs/salvador/salvador-uipro/soleri-pack.json +10 -0
  82. package/dist/knowledge-packs/salvador/salvador-uipro/vault/design.json +2589 -0
  83. package/dist/knowledge-packs/starter/architecture/soleri-pack.json +10 -0
  84. package/dist/knowledge-packs/starter/architecture/vault/patterns.json +137 -0
  85. package/dist/knowledge-packs/starter/design/soleri-pack.json +10 -0
  86. package/dist/knowledge-packs/starter/design/vault/patterns.json +137 -0
  87. package/dist/knowledge-packs/starter/security/soleri-pack.json +10 -0
  88. package/dist/knowledge-packs/starter/security/vault/patterns.json +137 -0
  89. package/dist/packs/index.d.ts +1 -1
  90. package/dist/packs/index.d.ts.map +1 -1
  91. package/dist/packs/index.js +1 -1
  92. package/dist/packs/index.js.map +1 -1
  93. package/dist/packs/resolver.d.ts +6 -0
  94. package/dist/packs/resolver.d.ts.map +1 -1
  95. package/dist/packs/resolver.js +20 -1
  96. package/dist/packs/resolver.js.map +1 -1
  97. package/dist/persona/defaults.d.ts +8 -0
  98. package/dist/persona/defaults.d.ts.map +1 -1
  99. package/dist/persona/defaults.js +49 -0
  100. package/dist/persona/defaults.js.map +1 -1
  101. package/dist/runtime/admin-setup-ops.js +1 -1
  102. package/dist/runtime/admin-setup-ops.js.map +1 -1
  103. package/dist/runtime/capture-ops.d.ts.map +1 -1
  104. package/dist/runtime/capture-ops.js +2 -1
  105. package/dist/runtime/capture-ops.js.map +1 -1
  106. package/dist/runtime/intake-ops.d.ts.map +1 -1
  107. package/dist/runtime/intake-ops.js +5 -5
  108. package/dist/runtime/intake-ops.js.map +1 -1
  109. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  110. package/dist/runtime/orchestrate-ops.js +26 -2
  111. package/dist/runtime/orchestrate-ops.js.map +1 -1
  112. package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
  113. package/dist/runtime/planning-extra-ops.js +5 -7
  114. package/dist/runtime/planning-extra-ops.js.map +1 -1
  115. package/dist/runtime/playbook-ops.d.ts.map +1 -1
  116. package/dist/runtime/playbook-ops.js +2 -1
  117. package/dist/runtime/playbook-ops.js.map +1 -1
  118. package/dist/runtime/schema-helpers.d.ts +7 -0
  119. package/dist/runtime/schema-helpers.d.ts.map +1 -0
  120. package/dist/runtime/schema-helpers.js +21 -0
  121. package/dist/runtime/schema-helpers.js.map +1 -0
  122. package/dist/runtime/sync-ops.d.ts.map +1 -1
  123. package/dist/runtime/sync-ops.js +3 -4
  124. package/dist/runtime/sync-ops.js.map +1 -1
  125. package/dist/runtime/vault-extra-ops.d.ts.map +1 -1
  126. package/dist/runtime/vault-extra-ops.js +5 -4
  127. package/dist/runtime/vault-extra-ops.js.map +1 -1
  128. package/dist/skills/sync-skills.d.ts +26 -7
  129. package/dist/skills/sync-skills.d.ts.map +1 -1
  130. package/dist/skills/sync-skills.js +126 -32
  131. package/dist/skills/sync-skills.js.map +1 -1
  132. package/dist/skills/validate-skill-docs.d.ts +24 -0
  133. package/dist/skills/validate-skill-docs.d.ts.map +1 -0
  134. package/dist/skills/validate-skill-docs.js +476 -0
  135. package/dist/skills/validate-skill-docs.js.map +1 -0
  136. package/package.json +2 -2
  137. package/src/__tests__/deviation-detection.test.ts +49 -0
  138. package/src/enforcement/adapters/claude-code.test.ts +9 -9
  139. package/src/engine/bin/soleri-engine.ts +7 -2
  140. package/src/flows/types.ts +4 -0
  141. package/src/index.ts +16 -2
  142. package/src/packs/index.ts +6 -1
  143. package/src/packs/resolver.ts +24 -1
  144. package/src/persona/defaults.test.ts +39 -1
  145. package/src/persona/defaults.ts +65 -0
  146. package/src/runtime/admin-setup-ops.test.ts +2 -0
  147. package/src/runtime/admin-setup-ops.ts +1 -1
  148. package/src/runtime/capture-ops.ts +2 -1
  149. package/src/runtime/intake-ops.ts +7 -7
  150. package/src/runtime/orchestrate-ops.ts +29 -2
  151. package/src/runtime/planning-extra-ops.ts +35 -37
  152. package/src/runtime/playbook-ops.ts +2 -1
  153. package/src/runtime/schema-helpers.test.ts +45 -0
  154. package/src/runtime/schema-helpers.ts +19 -0
  155. package/src/runtime/sync-ops.ts +8 -9
  156. package/src/runtime/vault-extra-ops.ts +5 -4
  157. package/src/skills/__tests__/sync-skills.test.ts +102 -29
  158. package/src/skills/__tests__/validate-skill-docs.test.ts +58 -0
  159. package/src/skills/sync-skills.ts +146 -32
  160. package/src/skills/validate-skill-docs.ts +562 -0
@@ -1,12 +1,17 @@
1
1
  /**
2
2
  * Skill sync — discovers SKILL.md files in agent skills directories
3
- * and copies them to ~/.claude/skills/ for Claude Code discovery.
3
+ * and installs them for Claude Code discovery.
4
+ *
5
+ * Default: project-local `.claude/skills/` with canonical (unprefixed) names
6
+ * and symlinks so source edits propagate automatically.
7
+ *
8
+ * Optional `global: true` installs to `~/.claude/skills/` with agent-prefixed
9
+ * names and file copies (symlinks to project paths don't work globally).
4
10
  *
5
- * Injects agent branding so users know which agent owns the skill.
6
11
  * Called automatically at engine startup and by admin_setup_global.
7
12
  */
8
- import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync, } from 'node:fs';
9
- import { join, dirname } from 'node:path';
13
+ import { cpSync, existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, symlinkSync, writeFileSync, } from 'node:fs';
14
+ import { join, dirname, relative } from 'node:path';
10
15
  import { homedir } from 'node:os';
11
16
  import { classifyTrust } from './trust-classifier.js';
12
17
  import { checkVersionCompat } from '../packs/resolver.js';
@@ -61,43 +66,90 @@ function brandSkillContent(content, agentName, prefixedName) {
61
66
  return before + brandLine + after;
62
67
  }
63
68
  /**
64
- * Sync skills from agent directory to ~/.claude/skills/.
65
- * - New skills are installed with agent branding
66
- * - Changed skills are overwritten (compared by mtime)
67
- * - Missing source skills leave target untouched (other agents may own them)
69
+ * Sync skills to Claude Code's skills directory.
70
+ *
71
+ * Default (project-local): installs to `<projectRoot>/.claude/skills/` using
72
+ * canonical (unprefixed) names and symlinks for automatic propagation.
73
+ *
74
+ * Global (`options.global: true`): installs to `~/.claude/skills/` using
75
+ * agent-prefixed names and file copies (symlinks to project paths won't work).
76
+ *
77
+ * Project-local installs also clean up stale `{agent}-soleri-*` entries from
78
+ * the global `~/.claude/skills/` directory to eliminate duplication.
68
79
  */
69
- export function syncSkillsToClaudeCode(skillsDirs, agentName) {
70
- const skillsDir = join(homedir(), '.claude', 'skills');
80
+ export function syncSkillsToClaudeCode(skillsDirs, agentName, options = {}) {
81
+ const isGlobal = options.global === true;
82
+ const projectRoot = options.projectRoot ?? process.cwd();
83
+ const skillsDir = isGlobal
84
+ ? join(homedir(), '.claude', 'skills')
85
+ : join(projectRoot, '.claude', 'skills');
71
86
  const skills = discoverSkills(skillsDirs);
72
- const result = { installed: [], updated: [], skipped: [], failed: [], removed: [] };
87
+ const result = {
88
+ installed: [],
89
+ updated: [],
90
+ skipped: [],
91
+ failed: [],
92
+ removed: [],
93
+ cleanedGlobal: [],
94
+ };
73
95
  if (skills.length === 0)
74
96
  return result;
75
97
  for (const skill of skills) {
76
- const prefix = agentName ? `${agentName.toLowerCase().replace(/\s+/g, '-')}-` : '';
77
- const skillName = `${prefix}${skill.name}`;
98
+ // Global installs use agent-prefixed names; local uses canonical names
99
+ const skillName = isGlobal && agentName
100
+ ? `${agentName.toLowerCase().replace(/\s+/g, '-')}-${skill.name}`
101
+ : skill.name;
78
102
  const targetDir = join(skillsDir, skillName);
79
103
  const targetPath = join(targetDir, 'SKILL.md');
80
104
  try {
81
- const sourceContent = readFileSync(skill.sourcePath, 'utf-8');
82
- const branded = agentName
83
- ? brandSkillContent(sourceContent, agentName, skillName)
84
- : sourceContent;
85
- if (!existsSync(targetPath)) {
86
- mkdirSync(targetDir, { recursive: true });
87
- writeFileSync(targetPath, branded);
88
- result.installed.push(skill.name);
89
- }
90
- else {
91
- const sourceMtime = statSync(skill.sourcePath).mtimeMs;
92
- const targetMtime = statSync(targetPath).mtimeMs;
93
- if (sourceMtime > targetMtime) {
105
+ if (isGlobal) {
106
+ // Global: copy with branding (original behavior)
107
+ const sourceContent = readFileSync(skill.sourcePath, 'utf-8');
108
+ const branded = agentName
109
+ ? brandSkillContent(sourceContent, agentName, skillName)
110
+ : sourceContent;
111
+ if (!existsSync(targetPath)) {
112
+ mkdirSync(targetDir, { recursive: true });
94
113
  writeFileSync(targetPath, branded);
95
- result.updated.push(skill.name);
114
+ result.installed.push(skill.name);
96
115
  }
97
116
  else {
98
- result.skipped.push(skill.name);
117
+ const sourceMtime = statSync(skill.sourcePath).mtimeMs;
118
+ const targetMtime = statSync(targetPath).mtimeMs;
119
+ if (sourceMtime > targetMtime) {
120
+ writeFileSync(targetPath, branded);
121
+ result.updated.push(skill.name);
122
+ }
123
+ else {
124
+ result.skipped.push(skill.name);
125
+ }
99
126
  }
100
127
  }
128
+ else {
129
+ // Project-local: symlink the skill directory
130
+ const sourceSkillDir = dirname(skill.sourcePath);
131
+ if (existsSync(targetDir)) {
132
+ // Check if it's already a symlink pointing to the right place
133
+ try {
134
+ const stat = lstatSync(targetDir);
135
+ if (stat.isSymbolicLink()) {
136
+ // Already a symlink — skip
137
+ result.skipped.push(skill.name);
138
+ continue;
139
+ }
140
+ }
141
+ catch {
142
+ // lstat failed — remove and recreate
143
+ }
144
+ // Not a symlink — remove the copy and replace with symlink
145
+ rmSync(targetDir, { recursive: true, force: true });
146
+ }
147
+ mkdirSync(skillsDir, { recursive: true });
148
+ // Use relative symlink so the project stays portable
149
+ const relPath = relative(skillsDir, sourceSkillDir);
150
+ symlinkSync(relPath, targetDir);
151
+ result.installed.push(skill.name);
152
+ }
101
153
  }
102
154
  catch {
103
155
  result.failed.push(skill.name);
@@ -106,13 +158,14 @@ export function syncSkillsToClaudeCode(skillsDirs, agentName) {
106
158
  // Orphan cleanup: remove skills that belong to this agent but are no longer in source
107
159
  if (agentName) {
108
160
  const prefix = `${agentName.toLowerCase().replace(/\s+/g, '-')}-`;
109
- const syncedNames = new Set([...result.installed, ...result.updated, ...result.skipped, ...result.failed].map((name) => `${prefix}${name}`));
161
+ const syncedNames = new Set([...result.installed, ...result.updated, ...result.skipped, ...result.failed].map((name) => isGlobal ? `${prefix}${name}` : name));
110
162
  try {
111
163
  const entries = readdirSync(skillsDir, { withFileTypes: true });
112
164
  for (const entry of entries) {
113
- if (!entry.isDirectory())
165
+ if (!entry.isDirectory() && !lstatSync(join(skillsDir, entry.name)).isSymbolicLink())
114
166
  continue;
115
- if (!entry.name.startsWith(prefix))
167
+ const matchPrefix = isGlobal ? entry.name.startsWith(prefix) : true;
168
+ if (!matchPrefix)
116
169
  continue;
117
170
  if (syncedNames.has(entry.name))
118
171
  continue;
@@ -122,7 +175,10 @@ export function syncSkillsToClaudeCode(skillsDirs, agentName) {
122
175
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
123
176
  const stagingDir = join(homedir(), '.soleri', 'staging', timestamp);
124
177
  mkdirSync(stagingDir, { recursive: true });
125
- cpSync(orphanPath, join(stagingDir, entry.name), { recursive: true });
178
+ const orphanStat = lstatSync(orphanPath);
179
+ if (!orphanStat.isSymbolicLink()) {
180
+ cpSync(orphanPath, join(stagingDir, entry.name), { recursive: true });
181
+ }
126
182
  rmSync(orphanPath, { recursive: true, force: true });
127
183
  result.removed.push(entry.name);
128
184
  }
@@ -135,8 +191,46 @@ export function syncSkillsToClaudeCode(skillsDirs, agentName) {
135
191
  // Skills directory doesn't exist or is unreadable — nothing to clean
136
192
  }
137
193
  }
194
+ // Task 3: Clean up stale global entries when doing a project-local install
195
+ if (!isGlobal && agentName) {
196
+ cleanStaleGlobalSkills(agentName, result);
197
+ }
138
198
  return result;
139
199
  }
200
+ /**
201
+ * Remove existing `{agent}-soleri-*` entries from ~/.claude/skills/
202
+ * to clean up duplicates left by the old global-install behavior.
203
+ */
204
+ function cleanStaleGlobalSkills(agentName, result) {
205
+ const globalSkillsDir = join(homedir(), '.claude', 'skills');
206
+ if (!existsSync(globalSkillsDir))
207
+ return;
208
+ const prefix = `${agentName.toLowerCase().replace(/\s+/g, '-')}-soleri-`;
209
+ try {
210
+ const entries = readdirSync(globalSkillsDir, { withFileTypes: true });
211
+ for (const entry of entries) {
212
+ if (!entry.isDirectory())
213
+ continue;
214
+ if (!entry.name.startsWith(prefix))
215
+ continue;
216
+ const staleDir = join(globalSkillsDir, entry.name);
217
+ try {
218
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
219
+ const stagingDir = join(homedir(), '.soleri', 'staging', timestamp);
220
+ mkdirSync(stagingDir, { recursive: true });
221
+ cpSync(staleDir, join(stagingDir, entry.name), { recursive: true });
222
+ rmSync(staleDir, { recursive: true, force: true });
223
+ result.cleanedGlobal.push(entry.name);
224
+ }
225
+ catch {
226
+ // Best-effort cleanup — don't fail the sync
227
+ }
228
+ }
229
+ }
230
+ catch {
231
+ // Global skills dir unreadable — nothing to clean
232
+ }
233
+ }
140
234
  // =============================================================================
141
235
  // TRUST CLASSIFICATION & SOURCE TRACKING
142
236
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../src/skills/sync-skills.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAiB1D,6EAA6E;AAC7E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,SAAS,CAAS;IAClB,KAAK,CAAY;IACjB,SAAS,CAA6B;IAE/C,YAAY,SAAiB,EAAE,SAAqC;QAClE,KAAK,CACH,UAAU,SAAS,gEAAgE;YACjF,kBAAkB,SAAS;iBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,UAAoB;IACjD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,SAAS,iBAAiB,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAqB;IAClF,uCAAuC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAEjC,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEvC,6DAA6D;IAC7D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,YAAY,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,SAAS,YAAY,CAAC;IACnD,OAAO,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAoB,EAAE,SAAkB;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAe,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEhG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,SAAS,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,SAAS;gBACvB,CAAC,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxD,CAAC,CAAC,aAAa,CAAC;YAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBACjD,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;oBAC9B,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAC/E,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAC7B,CACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAE1C,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACjE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpE,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtE,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAsB,EACtB,cAAuB;IAEvB,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACrF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,4CAA4C;QAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAChF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,UAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAErD,4BAA4B;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAE3F,MAAM,QAAQ,GAAkB;YAC9B,KAAK;YACL,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;YAC3C,aAAa;YACb,aAAa;YACb,SAAS;SACV,CAAC;QAEF,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../src/skills/sync-skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Build-time validator for SKILL.md inline op-call examples.
3
+ *
4
+ * Parses `YOUR_AGENT_core op:<name> params: { ... }` blocks in SKILL.md files
5
+ * and validates the params against the actual Zod schemas defined in the
6
+ * facade source files.
7
+ *
8
+ * Usage: tsx packages/core/src/skills/validate-skill-docs.ts
9
+ * Exit 0 = all valid, Exit 1 = mismatches found.
10
+ */
11
+ interface ValidationError {
12
+ file: string;
13
+ line: number;
14
+ opName: string;
15
+ message: string;
16
+ }
17
+ export declare function validateSkillDocs(rootDir: string): {
18
+ errors: ValidationError[];
19
+ totalExamples: number;
20
+ totalFiles: number;
21
+ registrySize: number;
22
+ };
23
+ export {};
24
+ //# sourceMappingURL=validate-skill-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-skill-docs.d.ts","sourceRoot":"","sources":["../../src/skills/validate-skill-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0CH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAsbD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAmBA"}