@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.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/index.js +1508 -377
- package/dist/index.js.map +4 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/injection.d.ts +1 -1
- package/dist/injection.d.ts.map +1 -1
- package/dist/routing/capability-matrix.d.ts +6 -4
- package/dist/routing/capability-matrix.d.ts.map +1 -1
- package/dist/scaffold.d.ts +35 -9
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/skills/agents/install.d.ts.map +1 -1
- package/dist/skills/routing-table.d.ts +17 -16
- package/dist/skills/routing-table.d.ts.map +1 -1
- package/dist/skills/skill-paths.d.ts.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/ui/index.d.ts +0 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/package.json +9 -4
- package/schemas/adr-frontmatter.schema.json +72 -0
- package/schemas/agent-configs.schema.json +120 -0
- package/schemas/agent-registry.json +243 -0
- package/schemas/agent-registry.schema.json +132 -0
- package/schemas/archive/research-manifest.schema.json +257 -0
- package/schemas/archive.schema.json +450 -0
- package/schemas/brain-decision.schema.json +69 -0
- package/schemas/brain-learning.schema.json +57 -0
- package/schemas/brain-pattern.schema.json +72 -0
- package/schemas/config.schema.json +2606 -0
- package/schemas/context-state.schema.json +137 -0
- package/schemas/contribution.schema.json +722 -0
- package/schemas/critical-path.schema.json +246 -0
- package/schemas/deps-cache.schema.json +97 -0
- package/schemas/doctor-output.schema.json +283 -0
- package/schemas/error.schema.json +161 -0
- package/schemas/export-package.schema.json +375 -0
- package/schemas/global-config.schema.json +219 -0
- package/schemas/grade.schema.json +49 -0
- package/schemas/log.schema.json +250 -0
- package/schemas/metrics.schema.json +328 -0
- package/schemas/migrations.schema.json +150 -0
- package/schemas/nexus-registry.schema.json +90 -0
- package/schemas/operation-constitution.schema.json +438 -0
- package/schemas/output.schema.json +164 -0
- package/schemas/project-context.schema.json +164 -0
- package/schemas/project-info.schema.json +180 -0
- package/schemas/projects-registry.schema.json +107 -0
- package/schemas/protocol-frontmatter.schema.json +72 -0
- package/schemas/rcasd-consensus-report.schema.json +10 -0
- package/schemas/rcasd-evidence.schema.json +42 -0
- package/schemas/rcasd-gate-result.schema.json +46 -0
- package/schemas/rcasd-hitl-resolution.schema.json +10 -0
- package/schemas/rcasd-index.schema.json +10 -0
- package/schemas/rcasd-manifest.schema.json +10 -0
- package/schemas/rcasd-research-output.schema.json +10 -0
- package/schemas/rcasd-spec-frontmatter.schema.json +10 -0
- package/schemas/rcasd-stage-transition.schema.json +38 -0
- package/schemas/releases.schema.json +267 -0
- package/schemas/skills-manifest.schema.json +91 -0
- package/schemas/skillsmp.schema.json +208 -0
- package/schemas/spec-index.schema.json +196 -0
- package/schemas/system-flow-atlas.schema.json +125 -0
- package/src/__tests__/injection-chain.test.d.ts +4 -3
- package/src/__tests__/injection-chain.test.d.ts.map +1 -1
- package/src/__tests__/injection-chain.test.js +11 -10
- package/src/__tests__/injection-chain.test.js.map +1 -1
- package/src/__tests__/injection-chain.test.ts +11 -10
- package/src/__tests__/injection-mvi-tiers.test.js +4 -2
- package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
- package/src/__tests__/injection-mvi-tiers.test.ts +4 -2
- package/src/agents/__tests__/capacity.test.d.ts +7 -0
- package/src/agents/__tests__/capacity.test.d.ts.map +1 -0
- package/src/agents/__tests__/capacity.test.js +173 -0
- package/src/agents/__tests__/capacity.test.js.map +1 -0
- package/src/agents/__tests__/registry.test.d.ts +8 -0
- package/src/agents/__tests__/registry.test.d.ts.map +1 -0
- package/src/agents/__tests__/registry.test.js +348 -0
- package/src/agents/__tests__/registry.test.js.map +1 -0
- package/src/agents/__tests__/retry.test.d.ts +7 -0
- package/src/agents/__tests__/retry.test.d.ts.map +1 -0
- package/src/agents/__tests__/retry.test.js +225 -0
- package/src/agents/__tests__/retry.test.js.map +1 -0
- package/src/bootstrap.ts +37 -6
- package/src/init.ts +63 -18
- package/src/injection.ts +11 -5
- package/src/intelligence/__tests__/impact.test.d.ts +15 -0
- package/src/intelligence/__tests__/impact.test.d.ts.map +1 -0
- package/src/intelligence/__tests__/impact.test.js +384 -0
- package/src/intelligence/__tests__/impact.test.js.map +1 -0
- package/src/intelligence/__tests__/patterns.test.d.ts +8 -0
- package/src/intelligence/__tests__/patterns.test.d.ts.map +1 -0
- package/src/intelligence/__tests__/patterns.test.js +370 -0
- package/src/intelligence/__tests__/patterns.test.js.map +1 -0
- package/src/intelligence/__tests__/prediction.test.d.ts +8 -0
- package/src/intelligence/__tests__/prediction.test.d.ts.map +1 -0
- package/src/intelligence/__tests__/prediction.test.js +314 -0
- package/src/intelligence/__tests__/prediction.test.js.map +1 -0
- package/src/nexus/__tests__/nexus-e2e.test.d.ts +12 -0
- package/src/nexus/__tests__/nexus-e2e.test.d.ts.map +1 -0
- package/src/nexus/__tests__/nexus-e2e.test.js +1220 -0
- package/src/nexus/__tests__/nexus-e2e.test.js.map +1 -0
- package/src/nexus/__tests__/transfer.test.d.ts +8 -0
- package/src/nexus/__tests__/transfer.test.d.ts.map +1 -0
- package/src/nexus/__tests__/transfer.test.js +372 -0
- package/src/nexus/__tests__/transfer.test.js.map +1 -0
- package/src/nexus/__tests__/transfer.test.ts +1 -1
- package/src/routing/capability-matrix.ts +1435 -205
- package/src/scaffold.ts +70 -13
- package/src/sessions/__tests__/briefing.test.js +28 -2
- package/src/sessions/__tests__/briefing.test.js.map +1 -1
- package/src/skills/__tests__/routing-table.test.js +48 -31
- package/src/skills/__tests__/routing-table.test.js.map +1 -1
- package/src/skills/__tests__/routing-table.test.ts +53 -33
- package/src/skills/agents/install.ts +9 -1
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js +41 -32
- package/src/skills/orchestrator/__tests__/spawn-tier.test.js.map +1 -1
- package/src/skills/routing-table.ts +39 -253
- package/src/skills/skill-paths.ts +3 -2
- package/src/store/__tests__/project-detect.test.js +1 -1
- package/src/store/__tests__/project-detect.test.js.map +1 -1
- package/src/store/__tests__/project-detect.test.ts +1 -1
- package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
- package/src/store/__tests__/test-db-helper.js +0 -1
- package/src/store/__tests__/test-db-helper.js.map +1 -1
- package/src/system/health.ts +18 -7
- package/src/ui/index.ts +0 -6
- package/src/validation/operation-gate-validators.ts +2 -2
- package/templates/CLEO-INJECTION.md +120 -0
- package/templates/README.md +29 -0
- package/templates/agent-registry.json +305 -0
- package/templates/cleo-gitignore +74 -0
- package/templates/config.template.json +187 -0
- package/templates/git-hooks/commit-msg +149 -0
- package/templates/git-hooks/pre-commit +40 -0
- package/templates/git-hooks/pre-push +79 -0
- package/templates/github/ISSUE_TEMPLATE/bug_report.yml +143 -0
- package/templates/github/ISSUE_TEMPLATE/config.yml +8 -0
- package/templates/github/ISSUE_TEMPLATE/feature_request.yml +125 -0
- package/templates/github/ISSUE_TEMPLATE/help_question.yml +99 -0
- package/templates/global-config.template.json +56 -0
- package/templates/hooks/precompact-safestop.sh +89 -0
- package/templates/issue-templates/bug_report.yml +143 -0
- package/templates/issue-templates/config.yml +8 -0
- package/templates/issue-templates/feature_request.yml +125 -0
- package/templates/issue-templates/help_question.yml +99 -0
- package/templates/skillsmp.json.example +28 -0
- package/templates/skillsmp.json.example.md +214 -0
- package/dist/ui/injection-legacy.d.ts +0 -26
- package/dist/ui/injection-legacy.d.ts.map +0 -1
- package/src/ui/__tests__/injection-registry.test.d.ts +0 -11
- package/src/ui/__tests__/injection-registry.test.d.ts.map +0 -1
- package/src/ui/__tests__/injection-registry.test.js +0 -46
- package/src/ui/__tests__/injection-registry.test.js.map +0 -1
- package/src/ui/__tests__/injection-registry.test.ts +0 -57
- 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
|
-
}
|