@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,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"$id": "https://cleo-dev.com/schemas/v1/spec-index.schema.json",
|
|
5
|
+
"title": "Claude-TODO Specification Index",
|
|
6
|
+
"description": "Schema for the authoritative specification index. LLM-agent-first design: structured, queryable, schema-validated.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["$schema", "_meta", "authorities", "specs"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "https://cleo-dev.com/schemas/v1/spec-index.schema.json"
|
|
13
|
+
},
|
|
14
|
+
"_meta": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"description": "Index metadata for version tracking and integrity",
|
|
17
|
+
"required": ["version", "lastUpdated", "totalSpecs", "totalReports"],
|
|
18
|
+
"properties": {
|
|
19
|
+
"version": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
22
|
+
"description": "Semantic version of the index format"
|
|
23
|
+
},
|
|
24
|
+
"lastUpdated": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"format": "date",
|
|
27
|
+
"description": "ISO date of last index update"
|
|
28
|
+
},
|
|
29
|
+
"totalSpecs": {
|
|
30
|
+
"type": "integer",
|
|
31
|
+
"minimum": 0,
|
|
32
|
+
"description": "Count of specification documents"
|
|
33
|
+
},
|
|
34
|
+
"totalReports": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 0,
|
|
37
|
+
"description": "Count of implementation reports"
|
|
38
|
+
},
|
|
39
|
+
"checksum": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Optional SHA256 for integrity verification"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"authorities": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"description": "Domain to authoritative specification mapping. Query: 'What is the authoritative source for X?'",
|
|
48
|
+
"additionalProperties": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "Filename of authoritative spec for this domain"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"specs": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"description": "All specification documents with metadata",
|
|
56
|
+
"items": {
|
|
57
|
+
"$ref": "#/definitions/specEntry"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"reports": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"description": "All implementation reports with progress tracking",
|
|
63
|
+
"items": {
|
|
64
|
+
"$ref": "#/definitions/reportEntry"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"recentChanges": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"description": "Last 20 changes for change tracking",
|
|
70
|
+
"maxItems": 20,
|
|
71
|
+
"items": {
|
|
72
|
+
"$ref": "#/definitions/changeEntry"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"definitions": {
|
|
77
|
+
"specEntry": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"required": ["file", "version", "status", "type", "domain", "synopsis", "lastUpdated"],
|
|
80
|
+
"properties": {
|
|
81
|
+
"file": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"pattern": "^[A-Z0-9-]+\\.(md|json)$",
|
|
84
|
+
"description": "Filename (not path)"
|
|
85
|
+
},
|
|
86
|
+
"version": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "Semantic version or version string"
|
|
89
|
+
},
|
|
90
|
+
"status": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"enum": ["DRAFT", "APPROVED", "ACTIVE", "IMMUTABLE", "DEPRECATED", "PLANNING", "IMPLEMENTED"],
|
|
93
|
+
"description": "Document lifecycle status"
|
|
94
|
+
},
|
|
95
|
+
"type": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"enum": ["SPEC", "GUIDELINES", "PLAN"],
|
|
98
|
+
"description": "Document type classification"
|
|
99
|
+
},
|
|
100
|
+
"domain": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "Primary domain this spec covers"
|
|
103
|
+
},
|
|
104
|
+
"category": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"enum": ["core-system", "feature", "design-philosophy", "integration", "process"],
|
|
107
|
+
"description": "Organizational category"
|
|
108
|
+
},
|
|
109
|
+
"synopsis": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"maxLength": 200,
|
|
112
|
+
"description": "1-2 sentence purpose summary"
|
|
113
|
+
},
|
|
114
|
+
"lastUpdated": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"format": "date",
|
|
117
|
+
"description": "ISO date of last document update"
|
|
118
|
+
},
|
|
119
|
+
"dependsOn": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": {"type": "string"},
|
|
122
|
+
"description": "Specs this document depends on (filenames)"
|
|
123
|
+
},
|
|
124
|
+
"dependedOnBy": {
|
|
125
|
+
"type": "array",
|
|
126
|
+
"items": {"type": "string"},
|
|
127
|
+
"description": "Specs that depend on this document (filenames)"
|
|
128
|
+
},
|
|
129
|
+
"implementationReport": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"description": "Filename of associated implementation report"
|
|
132
|
+
},
|
|
133
|
+
"isAuthoritativeFor": {
|
|
134
|
+
"type": "array",
|
|
135
|
+
"items": {"type": "string"},
|
|
136
|
+
"description": "Domains this spec is authoritative for"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"reportEntry": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"required": ["file", "relatedSpec", "progress", "lastUpdated"],
|
|
143
|
+
"properties": {
|
|
144
|
+
"file": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"pattern": "^[A-Z0-9-]+-IMPLEMENTATION-REPORT\\.md$"
|
|
147
|
+
},
|
|
148
|
+
"relatedSpec": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"description": "Filename of the spec this tracks"
|
|
151
|
+
},
|
|
152
|
+
"progress": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"description": "Progress indicator (e.g., '85%', '16/18', 'Varies')"
|
|
155
|
+
},
|
|
156
|
+
"phase": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Current implementation phase"
|
|
159
|
+
},
|
|
160
|
+
"lastUpdated": {
|
|
161
|
+
"type": "string",
|
|
162
|
+
"format": "date"
|
|
163
|
+
},
|
|
164
|
+
"notes": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"maxLength": 100,
|
|
167
|
+
"description": "Brief status note"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"changeEntry": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"required": ["date", "file", "changeType", "description"],
|
|
174
|
+
"properties": {
|
|
175
|
+
"date": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"format": "date"
|
|
178
|
+
},
|
|
179
|
+
"file": {
|
|
180
|
+
"type": "string"
|
|
181
|
+
},
|
|
182
|
+
"changeType": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"enum": ["Created", "Updated", "StatusChange", "Deprecated"]
|
|
185
|
+
},
|
|
186
|
+
"version": {
|
|
187
|
+
"type": "string"
|
|
188
|
+
},
|
|
189
|
+
"description": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"maxLength": 100
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "CLEO System Flow Atlas Structure",
|
|
4
|
+
"description": "Validates that a System Flow Atlas document contains all required sections",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"title": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "CLEO System Flow Atlas",
|
|
10
|
+
"description": "Document title"
|
|
11
|
+
},
|
|
12
|
+
"version": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^\\d{4}\\.\\d{1,2}\\.\\d{1,2}$",
|
|
15
|
+
"description": "CalVer version (YYYY.M.D)"
|
|
16
|
+
},
|
|
17
|
+
"status": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": ["DRAFT", "REVIEW", "APPROVED", "STABLE", "SUPERSEDED", "ARCHIVED"],
|
|
20
|
+
"description": "Document lifecycle status"
|
|
21
|
+
},
|
|
22
|
+
"sections": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"description": "Required sections in the atlas document",
|
|
25
|
+
"properties": {
|
|
26
|
+
"purpose": {
|
|
27
|
+
"type": "boolean",
|
|
28
|
+
"description": "Section 1: Purpose exists"
|
|
29
|
+
},
|
|
30
|
+
"systemDomainMapping": {
|
|
31
|
+
"type": "boolean",
|
|
32
|
+
"description": "Section 2: Four systems mapped to 10 domains"
|
|
33
|
+
},
|
|
34
|
+
"requestFlow": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"description": "Section 3: End-to-end request flow diagram"
|
|
37
|
+
},
|
|
38
|
+
"domainInteractionGraph": {
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"description": "Section 4: Domain interaction graph"
|
|
41
|
+
},
|
|
42
|
+
"dataStores": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"description": "Section 5: Data stores and ownership boundaries"
|
|
45
|
+
},
|
|
46
|
+
"distillationFlow": {
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"description": "Section 6: LOOM distillation flow"
|
|
49
|
+
},
|
|
50
|
+
"flowExamples": {
|
|
51
|
+
"type": "boolean",
|
|
52
|
+
"description": "Section 7: Query/mutate flow examples"
|
|
53
|
+
},
|
|
54
|
+
"progressiveDisclosure": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"description": "Section 8: Progressive disclosure in practice"
|
|
57
|
+
},
|
|
58
|
+
"failureRecovery": {
|
|
59
|
+
"type": "boolean",
|
|
60
|
+
"description": "Section 9: Failure and recovery paths"
|
|
61
|
+
},
|
|
62
|
+
"observability": {
|
|
63
|
+
"type": "boolean",
|
|
64
|
+
"description": "Section 10: Observability and audit trails"
|
|
65
|
+
},
|
|
66
|
+
"invariants": {
|
|
67
|
+
"type": "boolean",
|
|
68
|
+
"description": "Section 11: Canonical invariants"
|
|
69
|
+
},
|
|
70
|
+
"glossary": {
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"description": "Section 12: Glossary"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"purpose",
|
|
77
|
+
"systemDomainMapping",
|
|
78
|
+
"requestFlow",
|
|
79
|
+
"domainInteractionGraph",
|
|
80
|
+
"dataStores",
|
|
81
|
+
"distillationFlow",
|
|
82
|
+
"flowExamples",
|
|
83
|
+
"progressiveDisclosure",
|
|
84
|
+
"failureRecovery",
|
|
85
|
+
"observability",
|
|
86
|
+
"invariants",
|
|
87
|
+
"glossary"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
"domains": {
|
|
91
|
+
"type": "array",
|
|
92
|
+
"items": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"enum": [
|
|
95
|
+
"tasks",
|
|
96
|
+
"session",
|
|
97
|
+
"memory",
|
|
98
|
+
"check",
|
|
99
|
+
"pipeline",
|
|
100
|
+
"orchestrate",
|
|
101
|
+
"tools",
|
|
102
|
+
"admin",
|
|
103
|
+
"nexus",
|
|
104
|
+
"sticky"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"minItems": 10,
|
|
108
|
+
"maxItems": 10,
|
|
109
|
+
"uniqueItems": true,
|
|
110
|
+
"description": "All 10 canonical domains MUST be referenced"
|
|
111
|
+
},
|
|
112
|
+
"systems": {
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": ["BRAIN", "LOOM", "NEXUS", "LAFS"]
|
|
117
|
+
},
|
|
118
|
+
"minItems": 4,
|
|
119
|
+
"maxItems": 4,
|
|
120
|
+
"uniqueItems": true,
|
|
121
|
+
"description": "All 4 conceptual systems MUST be documented"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"required": ["title", "version", "status", "sections", "domains", "systems"]
|
|
125
|
+
}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Verifies the new AGENTS.md hub injection architecture:
|
|
5
5
|
* 1. Provider files (CLAUDE.md, GEMINI.md) reference @AGENTS.md
|
|
6
|
-
* 2. AGENTS.md references @~/.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4. No
|
|
6
|
+
* 2. Project AGENTS.md references @~/.agents/AGENTS.md (global hub)
|
|
7
|
+
* 3. Global ~/.agents/AGENTS.md references @~/.cleo/templates/CLEO-INJECTION.md
|
|
8
|
+
* 4. No references to @.cleo/templates/AGENT-INJECTION.md anywhere
|
|
9
|
+
* 5. No CLEO:START markers anywhere (CAAMP uses CAAMP:START/END)
|
|
9
10
|
*
|
|
10
11
|
* Since CAAMP functions depend on actual provider installations,
|
|
11
12
|
* they are mocked via vi.mock to isolate the init logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-chain.test.d.ts","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"injection-chain.test.d.ts","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Verifies the new AGENTS.md hub injection architecture:
|
|
5
5
|
* 1. Provider files (CLAUDE.md, GEMINI.md) reference @AGENTS.md
|
|
6
|
-
* 2. AGENTS.md references @~/.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4. No
|
|
6
|
+
* 2. Project AGENTS.md references @~/.agents/AGENTS.md (global hub)
|
|
7
|
+
* 3. Global ~/.agents/AGENTS.md references @~/.cleo/templates/CLEO-INJECTION.md
|
|
8
|
+
* 4. No references to @.cleo/templates/AGENT-INJECTION.md anywhere
|
|
9
|
+
* 5. No CLEO:START markers anywhere (CAAMP uses CAAMP:START/END)
|
|
9
10
|
*
|
|
10
11
|
* Since CAAMP functions depend on actual provider installations,
|
|
11
12
|
* they are mocked via vi.mock to isolate the init logic.
|
|
@@ -145,12 +146,12 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
145
146
|
const geminiContent = await readFile(geminiPath, 'utf-8');
|
|
146
147
|
expect(geminiContent).toContain('@AGENTS.md');
|
|
147
148
|
});
|
|
148
|
-
it('AGENTS.md references @~/.
|
|
149
|
+
it('AGENTS.md references @~/.agents/AGENTS.md (global hub)', async () => {
|
|
149
150
|
await initProject({ name: 'chain-test' });
|
|
150
151
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
151
152
|
expect(existsSync(agentsPath)).toBe(true);
|
|
152
153
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
153
|
-
expect(agentsContent).toContain('@~/.
|
|
154
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
154
155
|
});
|
|
155
156
|
it('no references to @.cleo/templates/AGENT-INJECTION.md in generated files', async () => {
|
|
156
157
|
await initProject({ name: 'chain-test' });
|
|
@@ -192,15 +193,15 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
192
193
|
expect(createdStr).toContain('injection');
|
|
193
194
|
expect(createdStr).toContain('AGENTS.md');
|
|
194
195
|
});
|
|
195
|
-
it('injection chain: provider -> AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
196
|
+
it('injection chain: provider -> AGENTS.md -> ~/.agents/AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
196
197
|
await initProject({ name: 'chain-test' });
|
|
197
198
|
// Verify the full chain:
|
|
198
199
|
// CLAUDE.md -> @AGENTS.md (via injectAll)
|
|
199
200
|
const claudeContent = await readFile(join(testDir, 'CLAUDE.md'), 'utf-8');
|
|
200
201
|
expect(claudeContent).toContain('@AGENTS.md');
|
|
201
|
-
// AGENTS.md -> @~/.
|
|
202
|
+
// AGENTS.md -> @~/.agents/AGENTS.md (project hub references global hub)
|
|
202
203
|
const agentsContent = await readFile(join(testDir, 'AGENTS.md'), 'utf-8');
|
|
203
|
-
expect(agentsContent).toContain('@~/.
|
|
204
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
204
205
|
// Neither should reference the old AGENT-INJECTION.md pattern
|
|
205
206
|
expect(claudeContent).not.toContain('AGENT-INJECTION.md');
|
|
206
207
|
expect(agentsContent).not.toContain('AGENT-INJECTION.md');
|
|
@@ -211,11 +212,11 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
211
212
|
const getInstalledProviders = caamp.getInstalledProviders;
|
|
212
213
|
getInstalledProviders.mockReturnValueOnce([]);
|
|
213
214
|
await initProject({ name: 'no-provider-test' });
|
|
214
|
-
// AGENTS.md should still exist and reference
|
|
215
|
+
// AGENTS.md should still exist and reference the global hub
|
|
215
216
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
216
217
|
expect(existsSync(agentsPath)).toBe(true);
|
|
217
218
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
218
|
-
expect(agentsContent).toContain('@~/.
|
|
219
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
219
220
|
});
|
|
220
221
|
it('updateDocs refreshes injection without full reinit', async () => {
|
|
221
222
|
// First init
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-chain.test.js","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"injection-chain.test.js","sourceRoot":"","sources":["injection-chain.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Verifies the new AGENTS.md hub injection architecture:
|
|
5
5
|
* 1. Provider files (CLAUDE.md, GEMINI.md) reference @AGENTS.md
|
|
6
|
-
* 2. AGENTS.md references @~/.
|
|
7
|
-
* 3.
|
|
8
|
-
* 4. No
|
|
6
|
+
* 2. Project AGENTS.md references @~/.agents/AGENTS.md (global hub)
|
|
7
|
+
* 3. Global ~/.agents/AGENTS.md references @~/.cleo/templates/CLEO-INJECTION.md
|
|
8
|
+
* 4. No references to @.cleo/templates/AGENT-INJECTION.md anywhere
|
|
9
|
+
* 5. No CLEO:START markers anywhere (CAAMP uses CAAMP:START/END)
|
|
9
10
|
*
|
|
10
11
|
* Since CAAMP functions depend on actual provider installations,
|
|
11
12
|
* they are mocked via vi.mock to isolate the init logic.
|
|
@@ -159,13 +160,13 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
159
160
|
expect(geminiContent).toContain('@AGENTS.md');
|
|
160
161
|
});
|
|
161
162
|
|
|
162
|
-
it('AGENTS.md references @~/.
|
|
163
|
+
it('AGENTS.md references @~/.agents/AGENTS.md (global hub)', async () => {
|
|
163
164
|
await initProject({ name: 'chain-test' });
|
|
164
165
|
|
|
165
166
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
166
167
|
expect(existsSync(agentsPath)).toBe(true);
|
|
167
168
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
168
|
-
expect(agentsContent).toContain('@~/.
|
|
169
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
169
170
|
});
|
|
170
171
|
|
|
171
172
|
it('no references to @.cleo/templates/AGENT-INJECTION.md in generated files', async () => {
|
|
@@ -216,7 +217,7 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
216
217
|
expect(createdStr).toContain('AGENTS.md');
|
|
217
218
|
});
|
|
218
219
|
|
|
219
|
-
it('injection chain: provider -> AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
220
|
+
it('injection chain: provider -> AGENTS.md -> ~/.agents/AGENTS.md -> CLEO-INJECTION.md', async () => {
|
|
220
221
|
await initProject({ name: 'chain-test' });
|
|
221
222
|
|
|
222
223
|
// Verify the full chain:
|
|
@@ -224,9 +225,9 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
224
225
|
const claudeContent = await readFile(join(testDir, 'CLAUDE.md'), 'utf-8');
|
|
225
226
|
expect(claudeContent).toContain('@AGENTS.md');
|
|
226
227
|
|
|
227
|
-
// AGENTS.md -> @~/.
|
|
228
|
+
// AGENTS.md -> @~/.agents/AGENTS.md (project hub references global hub)
|
|
228
229
|
const agentsContent = await readFile(join(testDir, 'AGENTS.md'), 'utf-8');
|
|
229
|
-
expect(agentsContent).toContain('@~/.
|
|
230
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
230
231
|
|
|
231
232
|
// Neither should reference the old AGENT-INJECTION.md pattern
|
|
232
233
|
expect(claudeContent).not.toContain('AGENT-INJECTION.md');
|
|
@@ -241,11 +242,11 @@ describe('E2E: injection chain validation (T4694)', () => {
|
|
|
241
242
|
|
|
242
243
|
await initProject({ name: 'no-provider-test' });
|
|
243
244
|
|
|
244
|
-
// AGENTS.md should still exist and reference
|
|
245
|
+
// AGENTS.md should still exist and reference the global hub
|
|
245
246
|
const agentsPath = join(testDir, 'AGENTS.md');
|
|
246
247
|
expect(existsSync(agentsPath)).toBe(true);
|
|
247
248
|
const agentsContent = await readFile(agentsPath, 'utf-8');
|
|
248
|
-
expect(agentsContent).toContain('@~/.
|
|
249
|
+
expect(agentsContent).toContain('@~/.agents/AGENTS.md');
|
|
249
250
|
});
|
|
250
251
|
|
|
251
252
|
it('updateDocs refreshes injection without full reinit', async () => {
|
|
@@ -15,8 +15,10 @@ import { dirname, join, resolve } from 'node:path';
|
|
|
15
15
|
import { fileURLToPath } from 'node:url';
|
|
16
16
|
import { describe, expect, it } from 'vitest';
|
|
17
17
|
const thisFile = fileURLToPath(import.meta.url);
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
// Template moved to packages/core/templates/ (was at monorepo root templates/)
|
|
19
|
+
// thisFile is at packages/core/src/__tests__/, go up two levels to reach packages/core/
|
|
20
|
+
const corePackageRoot = resolve(dirname(thisFile), '..', '..');
|
|
21
|
+
const injectionPath = join(corePackageRoot, 'templates', 'CLEO-INJECTION.md');
|
|
20
22
|
const templateExists = existsSync(injectionPath);
|
|
21
23
|
describe('CLEO-INJECTION v2.1.0 minimal-only template', () => {
|
|
22
24
|
const content = templateExists ? readFileSync(injectionPath, 'utf-8') : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-mvi-tiers.test.js","sourceRoot":"","sources":["injection-mvi-tiers.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"injection-mvi-tiers.test.js","sourceRoot":"","sources":["injection-mvi-tiers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,10 @@ import { fileURLToPath } from 'node:url';
|
|
|
17
17
|
import { describe, expect, it } from 'vitest';
|
|
18
18
|
|
|
19
19
|
const thisFile = fileURLToPath(import.meta.url);
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
// Template moved to packages/core/templates/ (was at monorepo root templates/)
|
|
21
|
+
// thisFile is at packages/core/src/__tests__/, go up two levels to reach packages/core/
|
|
22
|
+
const corePackageRoot = resolve(dirname(thisFile), '..', '..');
|
|
23
|
+
const injectionPath = join(corePackageRoot, 'templates', 'CLEO-INJECTION.md');
|
|
22
24
|
|
|
23
25
|
const templateExists = existsSync(injectionPath);
|
|
24
26
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capacity.test.d.ts","sourceRoot":"","sources":["capacity.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|