@cleocode/core 2026.3.45 → 2026.3.47

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 (154) hide show
  1. package/dist/bootstrap.d.ts.map +1 -1
  2. package/dist/index.js +1508 -377
  3. package/dist/index.js.map +4 -4
  4. package/dist/init.d.ts.map +1 -1
  5. package/dist/injection.d.ts +1 -1
  6. package/dist/injection.d.ts.map +1 -1
  7. package/dist/routing/capability-matrix.d.ts +6 -4
  8. package/dist/routing/capability-matrix.d.ts.map +1 -1
  9. package/dist/scaffold.d.ts +35 -9
  10. package/dist/scaffold.d.ts.map +1 -1
  11. package/dist/skills/agents/install.d.ts.map +1 -1
  12. package/dist/skills/routing-table.d.ts +17 -16
  13. package/dist/skills/routing-table.d.ts.map +1 -1
  14. package/dist/skills/skill-paths.d.ts.map +1 -1
  15. package/dist/system/health.d.ts.map +1 -1
  16. package/dist/ui/index.d.ts +0 -1
  17. package/dist/ui/index.d.ts.map +1 -1
  18. package/package.json +9 -4
  19. package/schemas/adr-frontmatter.schema.json +72 -0
  20. package/schemas/agent-configs.schema.json +120 -0
  21. package/schemas/agent-registry.json +243 -0
  22. package/schemas/agent-registry.schema.json +132 -0
  23. package/schemas/archive/research-manifest.schema.json +257 -0
  24. package/schemas/archive.schema.json +450 -0
  25. package/schemas/brain-decision.schema.json +69 -0
  26. package/schemas/brain-learning.schema.json +57 -0
  27. package/schemas/brain-pattern.schema.json +72 -0
  28. package/schemas/config.schema.json +2606 -0
  29. package/schemas/context-state.schema.json +137 -0
  30. package/schemas/contribution.schema.json +722 -0
  31. package/schemas/critical-path.schema.json +246 -0
  32. package/schemas/deps-cache.schema.json +97 -0
  33. package/schemas/doctor-output.schema.json +283 -0
  34. package/schemas/error.schema.json +161 -0
  35. package/schemas/export-package.schema.json +375 -0
  36. package/schemas/global-config.schema.json +219 -0
  37. package/schemas/grade.schema.json +49 -0
  38. package/schemas/log.schema.json +250 -0
  39. package/schemas/metrics.schema.json +328 -0
  40. package/schemas/migrations.schema.json +150 -0
  41. package/schemas/nexus-registry.schema.json +90 -0
  42. package/schemas/operation-constitution.schema.json +438 -0
  43. package/schemas/output.schema.json +164 -0
  44. package/schemas/project-context.schema.json +164 -0
  45. package/schemas/project-info.schema.json +180 -0
  46. package/schemas/projects-registry.schema.json +107 -0
  47. package/schemas/protocol-frontmatter.schema.json +72 -0
  48. package/schemas/rcasd-consensus-report.schema.json +10 -0
  49. package/schemas/rcasd-evidence.schema.json +42 -0
  50. package/schemas/rcasd-gate-result.schema.json +46 -0
  51. package/schemas/rcasd-hitl-resolution.schema.json +10 -0
  52. package/schemas/rcasd-index.schema.json +10 -0
  53. package/schemas/rcasd-manifest.schema.json +10 -0
  54. package/schemas/rcasd-research-output.schema.json +10 -0
  55. package/schemas/rcasd-spec-frontmatter.schema.json +10 -0
  56. package/schemas/rcasd-stage-transition.schema.json +38 -0
  57. package/schemas/releases.schema.json +267 -0
  58. package/schemas/skills-manifest.schema.json +91 -0
  59. package/schemas/skillsmp.schema.json +208 -0
  60. package/schemas/spec-index.schema.json +196 -0
  61. package/schemas/system-flow-atlas.schema.json +125 -0
  62. package/src/__tests__/injection-chain.test.d.ts +4 -3
  63. package/src/__tests__/injection-chain.test.d.ts.map +1 -1
  64. package/src/__tests__/injection-chain.test.js +11 -10
  65. package/src/__tests__/injection-chain.test.js.map +1 -1
  66. package/src/__tests__/injection-chain.test.ts +11 -10
  67. package/src/__tests__/injection-mvi-tiers.test.js +4 -2
  68. package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
  69. package/src/__tests__/injection-mvi-tiers.test.ts +4 -2
  70. package/src/agents/__tests__/capacity.test.d.ts +7 -0
  71. package/src/agents/__tests__/capacity.test.d.ts.map +1 -0
  72. package/src/agents/__tests__/capacity.test.js +173 -0
  73. package/src/agents/__tests__/capacity.test.js.map +1 -0
  74. package/src/agents/__tests__/registry.test.d.ts +8 -0
  75. package/src/agents/__tests__/registry.test.d.ts.map +1 -0
  76. package/src/agents/__tests__/registry.test.js +348 -0
  77. package/src/agents/__tests__/registry.test.js.map +1 -0
  78. package/src/agents/__tests__/retry.test.d.ts +7 -0
  79. package/src/agents/__tests__/retry.test.d.ts.map +1 -0
  80. package/src/agents/__tests__/retry.test.js +225 -0
  81. package/src/agents/__tests__/retry.test.js.map +1 -0
  82. package/src/bootstrap.ts +37 -6
  83. package/src/init.ts +63 -18
  84. package/src/injection.ts +11 -5
  85. package/src/intelligence/__tests__/impact.test.d.ts +15 -0
  86. package/src/intelligence/__tests__/impact.test.d.ts.map +1 -0
  87. package/src/intelligence/__tests__/impact.test.js +384 -0
  88. package/src/intelligence/__tests__/impact.test.js.map +1 -0
  89. package/src/intelligence/__tests__/patterns.test.d.ts +8 -0
  90. package/src/intelligence/__tests__/patterns.test.d.ts.map +1 -0
  91. package/src/intelligence/__tests__/patterns.test.js +370 -0
  92. package/src/intelligence/__tests__/patterns.test.js.map +1 -0
  93. package/src/intelligence/__tests__/prediction.test.d.ts +8 -0
  94. package/src/intelligence/__tests__/prediction.test.d.ts.map +1 -0
  95. package/src/intelligence/__tests__/prediction.test.js +314 -0
  96. package/src/intelligence/__tests__/prediction.test.js.map +1 -0
  97. package/src/nexus/__tests__/nexus-e2e.test.d.ts +12 -0
  98. package/src/nexus/__tests__/nexus-e2e.test.d.ts.map +1 -0
  99. package/src/nexus/__tests__/nexus-e2e.test.js +1220 -0
  100. package/src/nexus/__tests__/nexus-e2e.test.js.map +1 -0
  101. package/src/nexus/__tests__/transfer.test.d.ts +8 -0
  102. package/src/nexus/__tests__/transfer.test.d.ts.map +1 -0
  103. package/src/nexus/__tests__/transfer.test.js +372 -0
  104. package/src/nexus/__tests__/transfer.test.js.map +1 -0
  105. package/src/nexus/__tests__/transfer.test.ts +1 -1
  106. package/src/routing/capability-matrix.ts +1435 -205
  107. package/src/scaffold.ts +70 -13
  108. package/src/sessions/__tests__/briefing.test.js +28 -2
  109. package/src/sessions/__tests__/briefing.test.js.map +1 -1
  110. package/src/skills/__tests__/routing-table.test.js +48 -31
  111. package/src/skills/__tests__/routing-table.test.js.map +1 -1
  112. package/src/skills/__tests__/routing-table.test.ts +53 -33
  113. package/src/skills/agents/install.ts +9 -1
  114. package/src/skills/orchestrator/__tests__/spawn-tier.test.js +41 -32
  115. package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +1 -1
  116. package/src/skills/routing-table.ts +39 -253
  117. package/src/skills/skill-paths.ts +3 -2
  118. package/src/store/__tests__/project-detect.test.js +1 -1
  119. package/src/store/__tests__/project-detect.test.js.map +1 -1
  120. package/src/store/__tests__/project-detect.test.ts +1 -1
  121. package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
  122. package/src/store/__tests__/test-db-helper.js +0 -1
  123. package/src/store/__tests__/test-db-helper.js.map +1 -1
  124. package/src/system/health.ts +18 -7
  125. package/src/ui/index.ts +0 -6
  126. package/src/validation/operation-gate-validators.ts +2 -2
  127. package/templates/CLEO-INJECTION.md +120 -0
  128. package/templates/README.md +29 -0
  129. package/templates/agent-registry.json +305 -0
  130. package/templates/cleo-gitignore +74 -0
  131. package/templates/config.template.json +187 -0
  132. package/templates/git-hooks/commit-msg +149 -0
  133. package/templates/git-hooks/pre-commit +40 -0
  134. package/templates/git-hooks/pre-push +79 -0
  135. package/templates/github/ISSUE_TEMPLATE/bug_report.yml +143 -0
  136. package/templates/github/ISSUE_TEMPLATE/config.yml +8 -0
  137. package/templates/github/ISSUE_TEMPLATE/feature_request.yml +125 -0
  138. package/templates/github/ISSUE_TEMPLATE/help_question.yml +99 -0
  139. package/templates/global-config.template.json +56 -0
  140. package/templates/hooks/precompact-safestop.sh +89 -0
  141. package/templates/issue-templates/bug_report.yml +143 -0
  142. package/templates/issue-templates/config.yml +8 -0
  143. package/templates/issue-templates/feature_request.yml +125 -0
  144. package/templates/issue-templates/help_question.yml +99 -0
  145. package/templates/skillsmp.json.example +28 -0
  146. package/templates/skillsmp.json.example.md +214 -0
  147. package/dist/ui/injection-legacy.d.ts +0 -26
  148. package/dist/ui/injection-legacy.d.ts.map +0 -1
  149. package/src/ui/__tests__/injection-registry.test.d.ts +0 -11
  150. package/src/ui/__tests__/injection-registry.test.d.ts.map +0 -1
  151. package/src/ui/__tests__/injection-registry.test.js +0 -46
  152. package/src/ui/__tests__/injection-registry.test.js.map +0 -1
  153. package/src/ui/__tests__/injection-registry.test.ts +0 -57
  154. package/src/ui/injection-legacy.ts +0 -44
@@ -0,0 +1,214 @@
1
+ # SkillsMP Configuration Reference
2
+
3
+ **File**: `~/.cleo/skillsmp.json` (global) or `./.cleo/skillsmp.json` (project)
4
+
5
+ Configuration file for the SkillsMP (Skills Marketplace) integration in CLEO.
6
+
7
+ ---
8
+
9
+ ## Configuration Fields
10
+
11
+ ### Core Settings
12
+
13
+ | Field | Type | Default | Description |
14
+ |-------|------|---------|-------------|
15
+ | `$schema` | string | (see example) | JSON Schema reference for validation |
16
+ | `endpoint` | string | `https://www.agentskills.in/api` | SkillsMP API endpoint URL |
17
+ | `apiKey` | string | `""` | API key for authenticated requests (optional for public skills) |
18
+ | `defaultInstallLocation` | enum | `"project"` | Default install location: `"project"` or `"global"` |
19
+ | `timeout` | number | `30` | Request timeout in seconds |
20
+ | `retries` | number | `3` | Number of retry attempts for failed requests |
21
+
22
+ ### Cache Settings
23
+
24
+ Controls local caching of API responses to reduce network calls.
25
+
26
+ | Field | Type | Default | Description |
27
+ |-------|------|---------|-------------|
28
+ | `cache.enabled` | boolean | `true` | Enable response caching |
29
+ | `cache.searchTtlMinutes` | number | `5` | Cache duration for search results (minutes) |
30
+ | `cache.contentTtlMinutes` | number | `60` | Cache duration for skill content (minutes) |
31
+
32
+ ### Validation Settings
33
+
34
+ Controls skill validation and verification during installation.
35
+
36
+ | Field | Type | Default | Description |
37
+ |-------|------|---------|-------------|
38
+ | `validation.checkSchemaVersion` | boolean | `true` | Verify skill schema version compatibility |
39
+ | `validation.requireSignature` | boolean | `false` | Require cryptographic signature on skills |
40
+ | `validation.allowedPublishers` | array | `[]` | Whitelist of trusted publishers (empty = allow all) |
41
+
42
+ ### Security Settings
43
+
44
+ Sandbox and execution safety controls.
45
+
46
+ | Field | Type | Default | Description |
47
+ |-------|------|---------|-------------|
48
+ | `security.sandboxMode` | boolean | `true` | Run skill validation in sandbox |
49
+ | `security.restrictedCommands` | array | (see example) | Blocked shell commands in skill content |
50
+ | `security.maxFileSize` | number | `10485760` | Max skill file size in bytes (10MB default) |
51
+
52
+ ### Logging Settings
53
+
54
+ Controls diagnostic output and audit trails.
55
+
56
+ | Field | Type | Default | Description |
57
+ |-------|------|---------|-------------|
58
+ | `logging.level` | enum | `"info"` | Log level: `"debug"`, `"info"`, `"warn"`, `"error"` |
59
+ | `logging.logInstalls` | boolean | `true` | Log skill installation events |
60
+ | `logging.logSearches` | boolean | `false` | Log search queries (verbose) |
61
+
62
+ ---
63
+
64
+ ## API Key Handling
65
+
66
+ ### Security Notes
67
+
68
+ ⚠️ **CRITICAL**: Never commit API keys to version control.
69
+
70
+ **Recommended practices**:
71
+ 1. Use environment variable: `SKILLSMP_API_KEY`
72
+ 2. Store in global config: `~/.cleo/skillsmp.json`
73
+ 3. Add `.cleo/skillsmp.json` to `.gitignore`
74
+ 4. Use project config only for public/read-only access
75
+
76
+ ### Priority Order
77
+
78
+ API key resolution order (first found wins):
79
+ 1. Environment variable: `$SKILLSMP_API_KEY`
80
+ 2. Project config: `./.cleo/skillsmp.json`
81
+ 3. Global config: `~/.cleo/skillsmp.json`
82
+ 4. No key (public access only)
83
+
84
+ ### Example: Environment Variable Setup
85
+
86
+ ```bash
87
+ # Add to ~/.bashrc or ~/.zshrc
88
+ export SKILLSMP_API_KEY="your-api-key-here"
89
+
90
+ # Or set per-command
91
+ SKILLSMP_API_KEY="key" cleo skill search "terraform"
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Installation
97
+
98
+ ### Global Configuration (Recommended)
99
+
100
+ ```bash
101
+ # Copy example to global location
102
+ cp templates/skillsmp.json.example ~/.cleo/skillsmp.json
103
+
104
+ # Edit with your API key
105
+ nano ~/.cleo/skillsmp.json
106
+ ```
107
+
108
+ ### Project Configuration
109
+
110
+ ```bash
111
+ # Copy example to project location
112
+ cp templates/skillsmp.json.example ./.cleo/skillsmp.json
113
+
114
+ # Add to .gitignore
115
+ echo ".cleo/skillsmp.json" >> .gitignore
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Validation
121
+
122
+ Verify configuration syntax:
123
+
124
+ ```bash
125
+ # Check if config is valid JSON
126
+ jq empty ~/.cleo/skillsmp.json
127
+
128
+ # Validate against schema (if ajv-cli installed)
129
+ ajv validate -s schemas/skillsmp.schema.json -d ~/.cleo/skillsmp.json
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Examples
135
+
136
+ ### Minimal Configuration (Public Access)
137
+
138
+ ```json
139
+ {
140
+ "endpoint": "https://www.agentskills.in/api"
141
+ }
142
+ ```
143
+
144
+ ### Development Configuration (Verbose Logging)
145
+
146
+ ```json
147
+ {
148
+ "endpoint": "https://www.agentskills.in/api",
149
+ "cache": {
150
+ "enabled": false
151
+ },
152
+ "logging": {
153
+ "level": "debug",
154
+ "logSearches": true
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### Enterprise Configuration (Strict Security)
160
+
161
+ ```json
162
+ {
163
+ "endpoint": "https://skills.enterprise.internal/api",
164
+ "apiKey": "${SKILLSMP_API_KEY}",
165
+ "defaultInstallLocation": "project",
166
+ "validation": {
167
+ "requireSignature": true,
168
+ "allowedPublishers": ["verified-publisher-1", "verified-publisher-2"]
169
+ },
170
+ "security": {
171
+ "sandboxMode": true,
172
+ "maxFileSize": 5242880
173
+ }
174
+ }
175
+ ```
176
+
177
+ ---
178
+
179
+ ## Troubleshooting
180
+
181
+ ### Common Issues
182
+
183
+ | Problem | Solution |
184
+ |---------|----------|
185
+ | `Connection timeout` | Increase `timeout` value or check network |
186
+ | `API key invalid` | Verify key in config or environment variable |
187
+ | `Skill validation failed` | Check `validation.checkSchemaVersion` or disable strict mode |
188
+ | `Cache stale` | Lower TTL values or disable cache |
189
+
190
+ ### Debug Mode
191
+
192
+ Enable verbose logging:
193
+
194
+ ```bash
195
+ # Temporary debug
196
+ cleo skill search "query" --debug
197
+
198
+ # Persistent debug
199
+ cleo config set skillsmp.logging.level debug
200
+ ```
201
+
202
+ ---
203
+
204
+ ## See Also
205
+
206
+ - **Full Documentation**: `docs/commands/skill.md`
207
+ - **Schema Definition**: `schemas/skillsmp.schema.json`
208
+ - **CLI Reference**: `cleo skill --help`
209
+ - **SkillsMP API Docs**: https://www.agentskills.in/docs
210
+
211
+ ---
212
+
213
+ **Version**: 1.0.0
214
+ **Last Updated**: 2026-01-27
@@ -1,26 +0,0 @@
1
- /**
2
- * Injection legacy utilities - validation keys and marker version extraction.
3
- *
4
- * Kept from the deleted injection-registry.ts for backward compatibility
5
- * with validation output and legacy marker migration. All active injection
6
- * logic is now delegated to @cleocode/caamp.
7
- *
8
- * @task T4677
9
- * @epic T4663
10
- */
11
- /**
12
- * Validation key names for JSON output.
13
- * Maps target filenames to JSON-safe key names used in validation results.
14
- */
15
- export declare const INJECTION_VALIDATION_KEYS: Readonly<Record<string, string>>;
16
- /**
17
- * Get the validation key for a target filename.
18
- */
19
- export declare function getValidationKey(target: string): string;
20
- /**
21
- * Extract the CLEO version from an injection marker string.
22
- * Returns null if no version is present (current format).
23
- * Returns the version string for legacy format.
24
- */
25
- export declare function extractMarkerVersion(markerLine: string): string | null;
26
- //# sourceMappingURL=injection-legacy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injection-legacy.d.ts","sourceRoot":"","sources":["../../src/ui/injection-legacy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI7D,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAItE"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Tests for injection legacy utilities (injection-legacy.ts).
3
- *
4
- * These test the remaining utility functions kept from the deleted
5
- * injection-registry.ts for backward compatibility.
6
- *
7
- * @task T4677
8
- * @epic T4663
9
- */
10
- export {};
11
- //# sourceMappingURL=injection-registry.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injection-registry.test.d.ts","sourceRoot":"","sources":["injection-registry.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Tests for injection legacy utilities (injection-legacy.ts).
3
- *
4
- * These test the remaining utility functions kept from the deleted
5
- * injection-registry.ts for backward compatibility.
6
- *
7
- * @task T4677
8
- * @epic T4663
9
- */
10
- import { describe, expect, it } from 'vitest';
11
- import { extractMarkerVersion, getValidationKey, INJECTION_VALIDATION_KEYS, } from '../injection-legacy.js';
12
- describe('getValidationKey', () => {
13
- it('should return correct keys for known targets', () => {
14
- expect(getValidationKey('CLAUDE.md')).toBe('claude_md');
15
- expect(getValidationKey('AGENTS.md')).toBe('agents_md');
16
- expect(getValidationKey('GEMINI.md')).toBe('gemini_md');
17
- });
18
- it('should generate a key for unknown targets', () => {
19
- expect(getValidationKey('CODEX.md')).toBe('codex_md');
20
- expect(getValidationKey('README.md')).toBe('readme_md');
21
- });
22
- });
23
- describe('INJECTION_VALIDATION_KEYS', () => {
24
- it('should have entries for the 3 known targets', () => {
25
- expect(INJECTION_VALIDATION_KEYS['CLAUDE.md']).toBe('claude_md');
26
- expect(INJECTION_VALIDATION_KEYS['AGENTS.md']).toBe('agents_md');
27
- expect(INJECTION_VALIDATION_KEYS['GEMINI.md']).toBe('gemini_md');
28
- });
29
- });
30
- describe('extractMarkerVersion', () => {
31
- it('should return null for current format (no version)', () => {
32
- expect(extractMarkerVersion('<!-- CLEO:START -->')).toBeNull();
33
- });
34
- it('should extract version from legacy format', () => {
35
- expect(extractMarkerVersion('<!-- CLEO:START v0.58.6 -->')).toBe('0.58.6');
36
- });
37
- it('should return null for non-matching strings', () => {
38
- expect(extractMarkerVersion('not a marker')).toBeNull();
39
- expect(extractMarkerVersion('')).toBeNull();
40
- });
41
- it('should handle various version formats', () => {
42
- expect(extractMarkerVersion('CLEO:START v1.0.0 -->')).toBe('1.0.0');
43
- expect(extractMarkerVersion('CLEO:START v10.20.30 -->')).toBe('10.20.30');
44
- });
45
- });
46
- //# sourceMappingURL=injection-registry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injection-registry.test.js","sourceRoot":"","sources":["injection-registry.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Tests for injection legacy utilities (injection-legacy.ts).
3
- *
4
- * These test the remaining utility functions kept from the deleted
5
- * injection-registry.ts for backward compatibility.
6
- *
7
- * @task T4677
8
- * @epic T4663
9
- */
10
-
11
- import { describe, expect, it } from 'vitest';
12
- import {
13
- extractMarkerVersion,
14
- getValidationKey,
15
- INJECTION_VALIDATION_KEYS,
16
- } from '../injection-legacy.js';
17
-
18
- describe('getValidationKey', () => {
19
- it('should return correct keys for known targets', () => {
20
- expect(getValidationKey('CLAUDE.md')).toBe('claude_md');
21
- expect(getValidationKey('AGENTS.md')).toBe('agents_md');
22
- expect(getValidationKey('GEMINI.md')).toBe('gemini_md');
23
- });
24
-
25
- it('should generate a key for unknown targets', () => {
26
- expect(getValidationKey('CODEX.md')).toBe('codex_md');
27
- expect(getValidationKey('README.md')).toBe('readme_md');
28
- });
29
- });
30
-
31
- describe('INJECTION_VALIDATION_KEYS', () => {
32
- it('should have entries for the 3 known targets', () => {
33
- expect(INJECTION_VALIDATION_KEYS['CLAUDE.md']).toBe('claude_md');
34
- expect(INJECTION_VALIDATION_KEYS['AGENTS.md']).toBe('agents_md');
35
- expect(INJECTION_VALIDATION_KEYS['GEMINI.md']).toBe('gemini_md');
36
- });
37
- });
38
-
39
- describe('extractMarkerVersion', () => {
40
- it('should return null for current format (no version)', () => {
41
- expect(extractMarkerVersion('<!-- CLEO:START -->')).toBeNull();
42
- });
43
-
44
- it('should extract version from legacy format', () => {
45
- expect(extractMarkerVersion('<!-- CLEO:START v0.58.6 -->')).toBe('0.58.6');
46
- });
47
-
48
- it('should return null for non-matching strings', () => {
49
- expect(extractMarkerVersion('not a marker')).toBeNull();
50
- expect(extractMarkerVersion('')).toBeNull();
51
- });
52
-
53
- it('should handle various version formats', () => {
54
- expect(extractMarkerVersion('CLEO:START v1.0.0 -->')).toBe('1.0.0');
55
- expect(extractMarkerVersion('CLEO:START v10.20.30 -->')).toBe('10.20.30');
56
- });
57
- });
@@ -1,44 +0,0 @@
1
- /**
2
- * Injection legacy utilities - validation keys and marker version extraction.
3
- *
4
- * Kept from the deleted injection-registry.ts for backward compatibility
5
- * with validation output and legacy marker migration. All active injection
6
- * logic is now delegated to @cleocode/caamp.
7
- *
8
- * @task T4677
9
- * @epic T4663
10
- */
11
-
12
- /**
13
- * Validation key names for JSON output.
14
- * Maps target filenames to JSON-safe key names used in validation results.
15
- */
16
- export const INJECTION_VALIDATION_KEYS: Readonly<Record<string, string>> = {
17
- 'CLAUDE.md': 'claude_md',
18
- 'AGENTS.md': 'agents_md',
19
- 'GEMINI.md': 'gemini_md',
20
- } as const;
21
-
22
- /**
23
- * Get the validation key for a target filename.
24
- */
25
- export function getValidationKey(target: string): string {
26
- return INJECTION_VALIDATION_KEYS[target] ?? target.toLowerCase().replace(/[^a-z0-9]/g, '_');
27
- }
28
-
29
- /**
30
- * Version pattern for injection markers.
31
- * Matches: "CLEO:START -->" (current) or "CLEO:START v0.58.6 -->" (legacy)
32
- */
33
- const INJECTION_VERSION_PATTERN = /CLEO:START( v(\d+\.\d+\.\d+))? -->/;
34
-
35
- /**
36
- * Extract the CLEO version from an injection marker string.
37
- * Returns null if no version is present (current format).
38
- * Returns the version string for legacy format.
39
- */
40
- export function extractMarkerVersion(markerLine: string): string | null {
41
- const match = markerLine.match(INJECTION_VERSION_PATTERN);
42
- if (!match) return null;
43
- return match[2] ?? null;
44
- }