@cleocode/mcp-server 0.90.3 → 0.94.1
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/README.md +2 -2
- package/dist/domains/index.d.ts +1 -0
- package/dist/domains/index.d.ts.map +1 -1
- package/dist/domains/index.js +1 -0
- package/dist/domains/index.js.map +1 -1
- package/dist/domains/issues.d.ts +44 -0
- package/dist/domains/issues.d.ts.map +1 -0
- package/dist/domains/issues.js +182 -0
- package/dist/domains/issues.js.map +1 -0
- package/dist/domains/lifecycle.d.ts.map +1 -1
- package/dist/domains/lifecycle.js +8 -0
- package/dist/domains/lifecycle.js.map +1 -1
- package/dist/domains/orchestrate.js +6 -6
- package/dist/domains/orchestrate.js.map +1 -1
- package/dist/domains/release.js +4 -4
- package/dist/domains/release.js.map +1 -1
- package/dist/domains/research.d.ts.map +1 -1
- package/dist/domains/research.js +8 -0
- package/dist/domains/research.js.map +1 -1
- package/dist/domains/session.d.ts +20 -1
- package/dist/domains/session.d.ts.map +1 -1
- package/dist/domains/session.js +133 -7
- package/dist/domains/session.js.map +1 -1
- package/dist/domains/system.d.ts +20 -1
- package/dist/domains/system.d.ts.map +1 -1
- package/dist/domains/system.js +211 -7
- package/dist/domains/system.js.map +1 -1
- package/dist/domains/tasks.d.ts +20 -1
- package/dist/domains/tasks.d.ts.map +1 -1
- package/dist/domains/tasks.js +165 -1
- package/dist/domains/tasks.js.map +1 -1
- package/dist/domains/validate.d.ts.map +1 -1
- package/dist/domains/validate.js +8 -0
- package/dist/domains/validate.js.map +1 -1
- package/dist/engine/caamp-adapter.d.ts +93 -0
- package/dist/engine/caamp-adapter.d.ts.map +1 -0
- package/dist/engine/caamp-adapter.js +358 -0
- package/dist/engine/caamp-adapter.js.map +1 -0
- package/dist/engine/caamp-verify.d.ts +2 -0
- package/dist/engine/caamp-verify.d.ts.map +1 -0
- package/dist/engine/caamp-verify.js +15 -0
- package/dist/engine/caamp-verify.js.map +1 -0
- package/dist/engine/capability-matrix.d.ts +67 -0
- package/dist/engine/capability-matrix.d.ts.map +1 -0
- package/dist/engine/capability-matrix.js +227 -0
- package/dist/engine/capability-matrix.js.map +1 -0
- package/dist/engine/config-engine.d.ts +29 -0
- package/dist/engine/config-engine.d.ts.map +1 -0
- package/dist/engine/config-engine.js +110 -0
- package/dist/engine/config-engine.js.map +1 -0
- package/dist/engine/id-generator.d.ts +34 -0
- package/dist/engine/id-generator.d.ts.map +1 -0
- package/dist/engine/id-generator.js +91 -0
- package/dist/engine/id-generator.js.map +1 -0
- package/dist/engine/index.d.ts +18 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +28 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/init-engine.d.ts +52 -0
- package/dist/engine/init-engine.d.ts.map +1 -0
- package/dist/engine/init-engine.js +222 -0
- package/dist/engine/init-engine.js.map +1 -0
- package/dist/engine/schema-validator.d.ts +47 -0
- package/dist/engine/schema-validator.d.ts.map +1 -0
- package/dist/engine/schema-validator.js +219 -0
- package/dist/engine/schema-validator.js.map +1 -0
- package/dist/engine/session-engine.d.ts +139 -0
- package/dist/engine/session-engine.d.ts.map +1 -0
- package/dist/engine/session-engine.js +401 -0
- package/dist/engine/session-engine.js.map +1 -0
- package/dist/engine/store.d.ts +67 -0
- package/dist/engine/store.d.ts.map +1 -0
- package/dist/engine/store.js +284 -0
- package/dist/engine/store.js.map +1 -0
- package/dist/engine/task-engine.d.ts +139 -0
- package/dist/engine/task-engine.d.ts.map +1 -0
- package/dist/engine/task-engine.js +481 -0
- package/dist/engine/task-engine.js.map +1 -0
- package/dist/engine/validation-rules.d.ts +78 -0
- package/dist/engine/validation-rules.d.ts.map +1 -0
- package/dist/engine/validation-rules.js +218 -0
- package/dist/engine/validation-rules.js.map +1 -0
- package/dist/gateways/mutate.d.ts +1 -1
- package/dist/gateways/mutate.d.ts.map +1 -1
- package/dist/gateways/mutate.js +6 -1
- package/dist/gateways/mutate.js.map +1 -1
- package/dist/gateways/query.d.ts +1 -1
- package/dist/gateways/query.d.ts.map +1 -1
- package/dist/gateways/query.js +4 -1
- package/dist/gateways/query.js.map +1 -1
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/executor.d.ts +12 -0
- package/dist/lib/executor.d.ts.map +1 -1
- package/dist/lib/executor.js +16 -0
- package/dist/lib/executor.js.map +1 -1
- package/dist/lib/mode-detector.d.ts +71 -0
- package/dist/lib/mode-detector.d.ts.map +1 -0
- package/dist/lib/mode-detector.js +184 -0
- package/dist/lib/mode-detector.js.map +1 -0
- package/dist/lib/router.d.ts +2 -1
- package/dist/lib/router.d.ts.map +1 -1
- package/dist/lib/router.js +7 -5
- package/dist/lib/router.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/package.json +8 -3
- package/schemas/requests/issues/create.schema.json +37 -0
- package/schemas/requests/issues/diagnostics.schema.json +8 -0
- package/schemas/responses/issues/create.schema.json +49 -0
- package/schemas/responses/issues/diagnostics.schema.json +45 -0
- package/server.json +2 -2
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability Matrix
|
|
3
|
+
*
|
|
4
|
+
* Defines which operations can run natively in TypeScript vs requiring
|
|
5
|
+
* the CLEO CLI (bash). Used by dual-mode routing to determine execution path.
|
|
6
|
+
*
|
|
7
|
+
* Each operation is tagged as:
|
|
8
|
+
* - native: Runs in TypeScript, works cross-platform (no bash needed)
|
|
9
|
+
* - cli: Requires CLEO CLI subprocess (Unix-only)
|
|
10
|
+
* - hybrid: Can run either way (prefers CLI when available)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* The capability matrix - source of truth for operation routing.
|
|
14
|
+
*
|
|
15
|
+
* native: TypeScript engine handles directly (cross-platform)
|
|
16
|
+
* cli: Requires CLEO CLI (bash, Unix-only)
|
|
17
|
+
* hybrid: Can use either path (prefers CLI when available for richer output)
|
|
18
|
+
*/
|
|
19
|
+
const CAPABILITY_MATRIX = [
|
|
20
|
+
// === Tasks Domain ===
|
|
21
|
+
// Native query operations (core CRUD reads)
|
|
22
|
+
{ domain: 'tasks', operation: 'show', gateway: 'query', mode: 'native' },
|
|
23
|
+
{ domain: 'tasks', operation: 'get', gateway: 'query', mode: 'native' },
|
|
24
|
+
{ domain: 'tasks', operation: 'list', gateway: 'query', mode: 'native' },
|
|
25
|
+
{ domain: 'tasks', operation: 'find', gateway: 'query', mode: 'native' },
|
|
26
|
+
{ domain: 'tasks', operation: 'exists', gateway: 'query', mode: 'native' },
|
|
27
|
+
// CLI-only query operations (complex analysis)
|
|
28
|
+
{ domain: 'tasks', operation: 'next', gateway: 'query', mode: 'cli' },
|
|
29
|
+
{ domain: 'tasks', operation: 'depends', gateway: 'query', mode: 'cli' },
|
|
30
|
+
{ domain: 'tasks', operation: 'deps', gateway: 'query', mode: 'cli' },
|
|
31
|
+
{ domain: 'tasks', operation: 'stats', gateway: 'query', mode: 'cli' },
|
|
32
|
+
{ domain: 'tasks', operation: 'export', gateway: 'query', mode: 'cli' },
|
|
33
|
+
{ domain: 'tasks', operation: 'history', gateway: 'query', mode: 'cli' },
|
|
34
|
+
{ domain: 'tasks', operation: 'lint', gateway: 'query', mode: 'cli' },
|
|
35
|
+
{ domain: 'tasks', operation: 'batch-validate', gateway: 'query', mode: 'cli' },
|
|
36
|
+
{ domain: 'tasks', operation: 'manifest', gateway: 'query', mode: 'native' },
|
|
37
|
+
{ domain: 'tasks', operation: 'tree', gateway: 'query', mode: 'cli' },
|
|
38
|
+
{ domain: 'tasks', operation: 'blockers', gateway: 'query', mode: 'cli' },
|
|
39
|
+
{ domain: 'tasks', operation: 'analyze', gateway: 'query', mode: 'cli' },
|
|
40
|
+
{ domain: 'tasks', operation: 'relates', gateway: 'query', mode: 'cli' },
|
|
41
|
+
// Native mutate operations (core CRUD writes)
|
|
42
|
+
{ domain: 'tasks', operation: 'add', gateway: 'mutate', mode: 'native' },
|
|
43
|
+
{ domain: 'tasks', operation: 'create', gateway: 'mutate', mode: 'native' },
|
|
44
|
+
{ domain: 'tasks', operation: 'update', gateway: 'mutate', mode: 'native' },
|
|
45
|
+
{ domain: 'tasks', operation: 'complete', gateway: 'mutate', mode: 'native' },
|
|
46
|
+
{ domain: 'tasks', operation: 'delete', gateway: 'mutate', mode: 'native' },
|
|
47
|
+
{ domain: 'tasks', operation: 'archive', gateway: 'mutate', mode: 'native' },
|
|
48
|
+
// CLI-only mutate operations
|
|
49
|
+
{ domain: 'tasks', operation: 'restore', gateway: 'mutate', mode: 'cli' },
|
|
50
|
+
{ domain: 'tasks', operation: 'unarchive', gateway: 'mutate', mode: 'cli' },
|
|
51
|
+
{ domain: 'tasks', operation: 'import', gateway: 'mutate', mode: 'cli' },
|
|
52
|
+
{ domain: 'tasks', operation: 'reorder', gateway: 'mutate', mode: 'cli' },
|
|
53
|
+
{ domain: 'tasks', operation: 'reparent', gateway: 'mutate', mode: 'cli' },
|
|
54
|
+
{ domain: 'tasks', operation: 'promote', gateway: 'mutate', mode: 'cli' },
|
|
55
|
+
{ domain: 'tasks', operation: 'reopen', gateway: 'mutate', mode: 'cli' },
|
|
56
|
+
{ domain: 'tasks', operation: 'relates.add', gateway: 'mutate', mode: 'cli' },
|
|
57
|
+
// === Session Domain ===
|
|
58
|
+
// Native query operations
|
|
59
|
+
{ domain: 'session', operation: 'status', gateway: 'query', mode: 'native' },
|
|
60
|
+
{ domain: 'session', operation: 'list', gateway: 'query', mode: 'native' },
|
|
61
|
+
{ domain: 'session', operation: 'show', gateway: 'query', mode: 'native' },
|
|
62
|
+
{ domain: 'session', operation: 'focus-show', gateway: 'query', mode: 'native' },
|
|
63
|
+
{ domain: 'session', operation: 'focus.get', gateway: 'query', mode: 'native' },
|
|
64
|
+
// CLI-only query operations
|
|
65
|
+
{ domain: 'session', operation: 'history', gateway: 'query', mode: 'cli' },
|
|
66
|
+
{ domain: 'session', operation: 'stats', gateway: 'query', mode: 'cli' },
|
|
67
|
+
// Native mutate operations
|
|
68
|
+
{ domain: 'session', operation: 'start', gateway: 'mutate', mode: 'native' },
|
|
69
|
+
{ domain: 'session', operation: 'end', gateway: 'mutate', mode: 'native' },
|
|
70
|
+
{ domain: 'session', operation: 'focus-set', gateway: 'mutate', mode: 'native' },
|
|
71
|
+
{ domain: 'session', operation: 'focus.set', gateway: 'mutate', mode: 'native' },
|
|
72
|
+
{ domain: 'session', operation: 'focus-clear', gateway: 'mutate', mode: 'native' },
|
|
73
|
+
{ domain: 'session', operation: 'focus.clear', gateway: 'mutate', mode: 'native' },
|
|
74
|
+
// CLI-only mutate operations
|
|
75
|
+
{ domain: 'session', operation: 'resume', gateway: 'mutate', mode: 'cli' },
|
|
76
|
+
{ domain: 'session', operation: 'switch', gateway: 'mutate', mode: 'cli' },
|
|
77
|
+
{ domain: 'session', operation: 'archive', gateway: 'mutate', mode: 'cli' },
|
|
78
|
+
{ domain: 'session', operation: 'cleanup', gateway: 'mutate', mode: 'cli' },
|
|
79
|
+
{ domain: 'session', operation: 'suspend', gateway: 'mutate', mode: 'cli' },
|
|
80
|
+
{ domain: 'session', operation: 'gc', gateway: 'mutate', mode: 'cli' },
|
|
81
|
+
// === System Domain ===
|
|
82
|
+
{ domain: 'system', operation: 'version', gateway: 'query', mode: 'native' },
|
|
83
|
+
{ domain: 'system', operation: 'doctor', gateway: 'query', mode: 'hybrid' },
|
|
84
|
+
{ domain: 'system', operation: 'config', gateway: 'query', mode: 'native' },
|
|
85
|
+
{ domain: 'system', operation: 'config.get', gateway: 'query', mode: 'native' },
|
|
86
|
+
{ domain: 'system', operation: 'context', gateway: 'query', mode: 'cli' },
|
|
87
|
+
{ domain: 'system', operation: 'metrics', gateway: 'query', mode: 'cli' },
|
|
88
|
+
{ domain: 'system', operation: 'health', gateway: 'query', mode: 'cli' },
|
|
89
|
+
{ domain: 'system', operation: 'diagnostics', gateway: 'query', mode: 'cli' },
|
|
90
|
+
{ domain: 'system', operation: 'stats', gateway: 'query', mode: 'cli' },
|
|
91
|
+
{ domain: 'system', operation: 'help', gateway: 'query', mode: 'cli' },
|
|
92
|
+
{ domain: 'system', operation: 'dash', gateway: 'query', mode: 'cli' },
|
|
93
|
+
{ domain: 'system', operation: 'roadmap', gateway: 'query', mode: 'cli' },
|
|
94
|
+
{ domain: 'system', operation: 'labels', gateway: 'query', mode: 'cli' },
|
|
95
|
+
{ domain: 'system', operation: 'compliance', gateway: 'query', mode: 'cli' },
|
|
96
|
+
{ domain: 'system', operation: 'log', gateway: 'query', mode: 'cli' },
|
|
97
|
+
{ domain: 'system', operation: 'archive-stats', gateway: 'query', mode: 'cli' },
|
|
98
|
+
{ domain: 'system', operation: 'sequence', gateway: 'query', mode: 'cli' },
|
|
99
|
+
{ domain: 'system', operation: 'job.status', gateway: 'query', mode: 'cli' },
|
|
100
|
+
{ domain: 'system', operation: 'job.list', gateway: 'query', mode: 'cli' },
|
|
101
|
+
{ domain: 'system', operation: 'init', gateway: 'mutate', mode: 'native' },
|
|
102
|
+
{ domain: 'system', operation: 'config.set', gateway: 'mutate', mode: 'native' },
|
|
103
|
+
{ domain: 'system', operation: 'backup', gateway: 'mutate', mode: 'cli' },
|
|
104
|
+
{ domain: 'system', operation: 'restore', gateway: 'mutate', mode: 'cli' },
|
|
105
|
+
{ domain: 'system', operation: 'migrate', gateway: 'mutate', mode: 'cli' },
|
|
106
|
+
{ domain: 'system', operation: 'cleanup', gateway: 'mutate', mode: 'cli' },
|
|
107
|
+
{ domain: 'system', operation: 'audit', gateway: 'mutate', mode: 'cli' },
|
|
108
|
+
{ domain: 'system', operation: 'sync', gateway: 'mutate', mode: 'cli' },
|
|
109
|
+
{ domain: 'system', operation: 'job.cancel', gateway: 'mutate', mode: 'cli' },
|
|
110
|
+
{ domain: 'system', operation: 'safestop', gateway: 'mutate', mode: 'cli' },
|
|
111
|
+
{ domain: 'system', operation: 'uncancel', gateway: 'mutate', mode: 'cli' },
|
|
112
|
+
// === Validate Domain ===
|
|
113
|
+
{ domain: 'validate', operation: 'schema', gateway: 'query', mode: 'native' },
|
|
114
|
+
{ domain: 'validate', operation: 'protocol', gateway: 'query', mode: 'cli' },
|
|
115
|
+
{ domain: 'validate', operation: 'task', gateway: 'query', mode: 'cli' },
|
|
116
|
+
{ domain: 'validate', operation: 'manifest', gateway: 'query', mode: 'cli' },
|
|
117
|
+
{ domain: 'validate', operation: 'output', gateway: 'query', mode: 'cli' },
|
|
118
|
+
{ domain: 'validate', operation: 'compliance.summary', gateway: 'query', mode: 'cli' },
|
|
119
|
+
{ domain: 'validate', operation: 'compliance.record', gateway: 'mutate', mode: 'cli' },
|
|
120
|
+
{ domain: 'validate', operation: 'test.run', gateway: 'mutate', mode: 'cli' },
|
|
121
|
+
{ domain: 'validate', operation: 'test.coverage', gateway: 'mutate', mode: 'cli' },
|
|
122
|
+
{ domain: 'validate', operation: 'test.status', gateway: 'mutate', mode: 'cli' },
|
|
123
|
+
{ domain: 'validate', operation: 'batch-validate', gateway: 'mutate', mode: 'cli' },
|
|
124
|
+
// === Orchestrate Domain (all CLI) ===
|
|
125
|
+
{ domain: 'orchestrate', operation: 'status', gateway: 'query', mode: 'cli' },
|
|
126
|
+
{ domain: 'orchestrate', operation: 'next', gateway: 'query', mode: 'cli' },
|
|
127
|
+
{ domain: 'orchestrate', operation: 'ready', gateway: 'query', mode: 'cli' },
|
|
128
|
+
{ domain: 'orchestrate', operation: 'analyze', gateway: 'query', mode: 'cli' },
|
|
129
|
+
{ domain: 'orchestrate', operation: 'context', gateway: 'query', mode: 'cli' },
|
|
130
|
+
{ domain: 'orchestrate', operation: 'waves', gateway: 'query', mode: 'cli' },
|
|
131
|
+
{ domain: 'orchestrate', operation: 'skill.list', gateway: 'query', mode: 'cli' },
|
|
132
|
+
{ domain: 'orchestrate', operation: 'startup', gateway: 'mutate', mode: 'cli' },
|
|
133
|
+
{ domain: 'orchestrate', operation: 'spawn', gateway: 'mutate', mode: 'cli' },
|
|
134
|
+
{ domain: 'orchestrate', operation: 'validate', gateway: 'mutate', mode: 'cli' },
|
|
135
|
+
{ domain: 'orchestrate', operation: 'parallel.start', gateway: 'mutate', mode: 'cli' },
|
|
136
|
+
{ domain: 'orchestrate', operation: 'parallel.end', gateway: 'mutate', mode: 'cli' },
|
|
137
|
+
{ domain: 'orchestrate', operation: 'check', gateway: 'mutate', mode: 'cli' },
|
|
138
|
+
{ domain: 'orchestrate', operation: 'skill.inject', gateway: 'mutate', mode: 'cli' },
|
|
139
|
+
// === Research Domain (all CLI) ===
|
|
140
|
+
{ domain: 'research', operation: 'show', gateway: 'query', mode: 'cli' },
|
|
141
|
+
{ domain: 'research', operation: 'list', gateway: 'query', mode: 'cli' },
|
|
142
|
+
{ domain: 'research', operation: 'query', gateway: 'query', mode: 'cli' },
|
|
143
|
+
{ domain: 'research', operation: 'pending', gateway: 'query', mode: 'cli' },
|
|
144
|
+
{ domain: 'research', operation: 'stats', gateway: 'query', mode: 'cli' },
|
|
145
|
+
{ domain: 'research', operation: 'manifest.read', gateway: 'query', mode: 'cli' },
|
|
146
|
+
{ domain: 'research', operation: 'inject', gateway: 'mutate', mode: 'cli' },
|
|
147
|
+
{ domain: 'research', operation: 'link', gateway: 'mutate', mode: 'cli' },
|
|
148
|
+
{ domain: 'research', operation: 'manifest.append', gateway: 'mutate', mode: 'cli' },
|
|
149
|
+
{ domain: 'research', operation: 'manifest.archive', gateway: 'mutate', mode: 'cli' },
|
|
150
|
+
{ domain: 'research', operation: 'compact', gateway: 'mutate', mode: 'cli' },
|
|
151
|
+
{ domain: 'research', operation: 'validate', gateway: 'mutate', mode: 'cli' },
|
|
152
|
+
// === Lifecycle Domain (all CLI) ===
|
|
153
|
+
{ domain: 'lifecycle', operation: 'check', gateway: 'query', mode: 'cli' },
|
|
154
|
+
{ domain: 'lifecycle', operation: 'status', gateway: 'query', mode: 'cli' },
|
|
155
|
+
{ domain: 'lifecycle', operation: 'history', gateway: 'query', mode: 'cli' },
|
|
156
|
+
{ domain: 'lifecycle', operation: 'gates', gateway: 'query', mode: 'cli' },
|
|
157
|
+
{ domain: 'lifecycle', operation: 'prerequisites', gateway: 'query', mode: 'cli' },
|
|
158
|
+
{ domain: 'lifecycle', operation: 'progress', gateway: 'mutate', mode: 'cli' },
|
|
159
|
+
{ domain: 'lifecycle', operation: 'skip', gateway: 'mutate', mode: 'cli' },
|
|
160
|
+
{ domain: 'lifecycle', operation: 'reset', gateway: 'mutate', mode: 'cli' },
|
|
161
|
+
{ domain: 'lifecycle', operation: 'gate.pass', gateway: 'mutate', mode: 'cli' },
|
|
162
|
+
{ domain: 'lifecycle', operation: 'gate.fail', gateway: 'mutate', mode: 'cli' },
|
|
163
|
+
// === Release Domain (all CLI) ===
|
|
164
|
+
{ domain: 'release', operation: 'prepare', gateway: 'mutate', mode: 'cli' },
|
|
165
|
+
{ domain: 'release', operation: 'changelog', gateway: 'mutate', mode: 'cli' },
|
|
166
|
+
{ domain: 'release', operation: 'commit', gateway: 'mutate', mode: 'cli' },
|
|
167
|
+
{ domain: 'release', operation: 'tag', gateway: 'mutate', mode: 'cli' },
|
|
168
|
+
{ domain: 'release', operation: 'push', gateway: 'mutate', mode: 'cli' },
|
|
169
|
+
{ domain: 'release', operation: 'gates.run', gateway: 'mutate', mode: 'cli' },
|
|
170
|
+
{ domain: 'release', operation: 'rollback', gateway: 'mutate', mode: 'cli' },
|
|
171
|
+
];
|
|
172
|
+
/**
|
|
173
|
+
* Lookup the execution mode for a specific operation
|
|
174
|
+
*/
|
|
175
|
+
export function getOperationMode(domain, operation, gateway) {
|
|
176
|
+
const entry = CAPABILITY_MATRIX.find((cap) => cap.domain === domain &&
|
|
177
|
+
cap.operation === operation &&
|
|
178
|
+
cap.gateway === gateway);
|
|
179
|
+
return entry?.mode;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if an operation can run natively (without CLI)
|
|
183
|
+
*/
|
|
184
|
+
export function canRunNatively(domain, operation, gateway) {
|
|
185
|
+
const mode = getOperationMode(domain, operation, gateway);
|
|
186
|
+
return mode === 'native' || mode === 'hybrid';
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Check if an operation requires CLI
|
|
190
|
+
*/
|
|
191
|
+
export function requiresCLI(domain, operation, gateway) {
|
|
192
|
+
const mode = getOperationMode(domain, operation, gateway);
|
|
193
|
+
return mode === 'cli';
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get all native-capable operations for a domain
|
|
197
|
+
*/
|
|
198
|
+
export function getNativeOperations(domain) {
|
|
199
|
+
return CAPABILITY_MATRIX.filter((cap) => cap.domain === domain && (cap.mode === 'native' || cap.mode === 'hybrid'));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Generate a capability report for system.doctor
|
|
203
|
+
*/
|
|
204
|
+
export function generateCapabilityReport() {
|
|
205
|
+
const domains = {};
|
|
206
|
+
for (const cap of CAPABILITY_MATRIX) {
|
|
207
|
+
if (!domains[cap.domain]) {
|
|
208
|
+
domains[cap.domain] = { native: [], cli: [], hybrid: [] };
|
|
209
|
+
}
|
|
210
|
+
const key = `${cap.gateway}:${cap.operation}`;
|
|
211
|
+
domains[cap.domain][cap.mode].push(key);
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
totalOperations: CAPABILITY_MATRIX.length,
|
|
215
|
+
native: CAPABILITY_MATRIX.filter((c) => c.mode === 'native').length,
|
|
216
|
+
cli: CAPABILITY_MATRIX.filter((c) => c.mode === 'cli').length,
|
|
217
|
+
hybrid: CAPABILITY_MATRIX.filter((c) => c.mode === 'hybrid').length,
|
|
218
|
+
domains,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get the full capability matrix (for testing/introspection)
|
|
223
|
+
*/
|
|
224
|
+
export function getCapabilityMatrix() {
|
|
225
|
+
return CAPABILITY_MATRIX;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=capability-matrix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-matrix.js","sourceRoot":"","sources":["../../src/engine/capability-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Engine
|
|
3
|
+
*
|
|
4
|
+
* Native TypeScript implementation for reading/writing .cleo/config.json.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Engine result wrapper
|
|
8
|
+
*/
|
|
9
|
+
export interface EngineResult<T = unknown> {
|
|
10
|
+
success: boolean;
|
|
11
|
+
data?: T;
|
|
12
|
+
error?: {
|
|
13
|
+
code: string;
|
|
14
|
+
message: string;
|
|
15
|
+
details?: unknown;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get config value by key (dot-notation supported)
|
|
20
|
+
*/
|
|
21
|
+
export declare function configGet(projectRoot: string, key?: string): EngineResult<unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* Set a config value by key (dot-notation supported)
|
|
24
|
+
*/
|
|
25
|
+
export declare function configSet(projectRoot: string, key: string, value: unknown): Promise<EngineResult<{
|
|
26
|
+
key: string;
|
|
27
|
+
value: unknown;
|
|
28
|
+
}>>;
|
|
29
|
+
//# sourceMappingURL=config-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-engine.d.ts","sourceRoot":"","sources":["../../src/engine/config-engine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,YAAY,CAAC,OAAO,CAAC,CA4CvB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,YAAY,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CA0DxD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Engine
|
|
3
|
+
*
|
|
4
|
+
* Native TypeScript implementation for reading/writing .cleo/config.json.
|
|
5
|
+
*/
|
|
6
|
+
import { readJsonFile, writeJsonFileAtomic, getDataPath } from './store.js';
|
|
7
|
+
import { existsSync, writeFileSync } from 'fs';
|
|
8
|
+
import * as lockfile from 'proper-lockfile';
|
|
9
|
+
/**
|
|
10
|
+
* Get config value by key (dot-notation supported)
|
|
11
|
+
*/
|
|
12
|
+
export function configGet(projectRoot, key) {
|
|
13
|
+
const configPath = getDataPath(projectRoot, 'config.json');
|
|
14
|
+
const config = readJsonFile(configPath);
|
|
15
|
+
if (!config) {
|
|
16
|
+
return {
|
|
17
|
+
success: false,
|
|
18
|
+
error: { code: 'E_NOT_INITIALIZED', message: 'No config.json found' },
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (!key) {
|
|
22
|
+
// Return all config
|
|
23
|
+
return { success: true, data: config };
|
|
24
|
+
}
|
|
25
|
+
// Dot-notation navigation
|
|
26
|
+
const parts = key.split('.');
|
|
27
|
+
let current = config;
|
|
28
|
+
for (const part of parts) {
|
|
29
|
+
if (current === null || current === undefined || typeof current !== 'object') {
|
|
30
|
+
return {
|
|
31
|
+
success: false,
|
|
32
|
+
error: {
|
|
33
|
+
code: 'E_CONFIG_KEY_NOT_FOUND',
|
|
34
|
+
message: `Config key '${key}' not found`,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
current = current[part];
|
|
39
|
+
}
|
|
40
|
+
if (current === undefined) {
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
error: {
|
|
44
|
+
code: 'E_CONFIG_KEY_NOT_FOUND',
|
|
45
|
+
message: `Config key '${key}' not found`,
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return { success: true, data: current };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Set a config value by key (dot-notation supported)
|
|
53
|
+
*/
|
|
54
|
+
export async function configSet(projectRoot, key, value) {
|
|
55
|
+
const configPath = getDataPath(projectRoot, 'config.json');
|
|
56
|
+
// Ensure file exists for locking
|
|
57
|
+
if (!existsSync(configPath)) {
|
|
58
|
+
writeFileSync(configPath, '{}', 'utf-8');
|
|
59
|
+
}
|
|
60
|
+
let release;
|
|
61
|
+
try {
|
|
62
|
+
release = await lockfile.lock(configPath, {
|
|
63
|
+
retries: { retries: 5, factor: 2, minTimeout: 100, maxTimeout: 5000 },
|
|
64
|
+
stale: 30000,
|
|
65
|
+
});
|
|
66
|
+
const config = readJsonFile(configPath) || {};
|
|
67
|
+
// Dot-notation navigation to set
|
|
68
|
+
const parts = key.split('.');
|
|
69
|
+
let target = config;
|
|
70
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
71
|
+
const part = parts[i];
|
|
72
|
+
if (target[part] === undefined || typeof target[part] !== 'object') {
|
|
73
|
+
target[part] = {};
|
|
74
|
+
}
|
|
75
|
+
target = target[part];
|
|
76
|
+
}
|
|
77
|
+
const lastPart = parts[parts.length - 1];
|
|
78
|
+
// Parse value if it looks like JSON
|
|
79
|
+
let parsedValue = value;
|
|
80
|
+
if (typeof value === 'string') {
|
|
81
|
+
if (value === 'true')
|
|
82
|
+
parsedValue = true;
|
|
83
|
+
else if (value === 'false')
|
|
84
|
+
parsedValue = false;
|
|
85
|
+
else if (value === 'null')
|
|
86
|
+
parsedValue = null;
|
|
87
|
+
else if (/^-?\d+$/.test(value))
|
|
88
|
+
parsedValue = parseInt(value, 10);
|
|
89
|
+
else if (/^-?\d+\.\d+$/.test(value))
|
|
90
|
+
parsedValue = parseFloat(value);
|
|
91
|
+
else {
|
|
92
|
+
try {
|
|
93
|
+
parsedValue = JSON.parse(value);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Keep as string
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
target[lastPart] = parsedValue;
|
|
101
|
+
writeJsonFileAtomic(configPath, config);
|
|
102
|
+
return { success: true, data: { key, value: parsedValue } };
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
if (release) {
|
|
106
|
+
await release();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=config-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-engine.js","sourceRoot":"","sources":["../../src/engine/config-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task ID Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates unique task IDs in the T#### format used by CLEO.
|
|
5
|
+
* Ensures uniqueness across both todo.json and todo-archive.json.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Collect all existing task IDs from todo.json and archive
|
|
9
|
+
*/
|
|
10
|
+
export declare function collectAllIds(projectRoot: string): Set<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Find the highest existing task ID number
|
|
13
|
+
*/
|
|
14
|
+
export declare function findHighestId(existingIds: Set<string>): number;
|
|
15
|
+
/**
|
|
16
|
+
* Generate the next available task ID.
|
|
17
|
+
*
|
|
18
|
+
* Finds the highest existing ID number across todo.json and archive,
|
|
19
|
+
* then returns the next sequential ID.
|
|
20
|
+
*
|
|
21
|
+
* @param projectRoot - Project root directory
|
|
22
|
+
* @returns New unique task ID (e.g., "T4321")
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateNextId(projectRoot: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Generate the next ID given an explicit set of existing IDs.
|
|
27
|
+
* Useful when caller has already loaded task data.
|
|
28
|
+
*/
|
|
29
|
+
export declare function generateNextIdFromSet(existingIds: Set<string>): string;
|
|
30
|
+
/**
|
|
31
|
+
* Validate that a task ID matches the expected format
|
|
32
|
+
*/
|
|
33
|
+
export declare function isValidTaskId(id: string): boolean;
|
|
34
|
+
//# sourceMappingURL=id-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../src/engine/id-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwB9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAS9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAKtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task ID Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates unique task IDs in the T#### format used by CLEO.
|
|
5
|
+
* Ensures uniqueness across both todo.json and todo-archive.json.
|
|
6
|
+
*/
|
|
7
|
+
import { readJsonFile } from './store.js';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
/**
|
|
10
|
+
* Task ID pattern: T followed by 3+ digits
|
|
11
|
+
*/
|
|
12
|
+
const TASK_ID_PATTERN = /^T(\d{3,})$/;
|
|
13
|
+
/**
|
|
14
|
+
* Extract the numeric part from a task ID
|
|
15
|
+
*/
|
|
16
|
+
function extractNumber(id) {
|
|
17
|
+
const match = id.match(TASK_ID_PATTERN);
|
|
18
|
+
return match ? parseInt(match[1], 10) : 0;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Collect all existing task IDs from todo.json and archive
|
|
22
|
+
*/
|
|
23
|
+
export function collectAllIds(projectRoot) {
|
|
24
|
+
const ids = new Set();
|
|
25
|
+
// Read todo.json
|
|
26
|
+
const todoPath = join(projectRoot, '.cleo', 'todo.json');
|
|
27
|
+
const todoData = readJsonFile(todoPath);
|
|
28
|
+
if (todoData?.tasks) {
|
|
29
|
+
for (const task of todoData.tasks) {
|
|
30
|
+
if (task.id)
|
|
31
|
+
ids.add(task.id);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Read archive
|
|
35
|
+
const archivePath = join(projectRoot, '.cleo', 'todo-archive.json');
|
|
36
|
+
const archiveData = readJsonFile(archivePath);
|
|
37
|
+
if (archiveData?.archivedTasks) {
|
|
38
|
+
for (const task of archiveData.archivedTasks) {
|
|
39
|
+
if (task.id)
|
|
40
|
+
ids.add(task.id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return ids;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Find the highest existing task ID number
|
|
47
|
+
*/
|
|
48
|
+
export function findHighestId(existingIds) {
|
|
49
|
+
let highest = 0;
|
|
50
|
+
for (const id of existingIds) {
|
|
51
|
+
const num = extractNumber(id);
|
|
52
|
+
if (num > highest) {
|
|
53
|
+
highest = num;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return highest;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Generate the next available task ID.
|
|
60
|
+
*
|
|
61
|
+
* Finds the highest existing ID number across todo.json and archive,
|
|
62
|
+
* then returns the next sequential ID.
|
|
63
|
+
*
|
|
64
|
+
* @param projectRoot - Project root directory
|
|
65
|
+
* @returns New unique task ID (e.g., "T4321")
|
|
66
|
+
*/
|
|
67
|
+
export function generateNextId(projectRoot) {
|
|
68
|
+
const existingIds = collectAllIds(projectRoot);
|
|
69
|
+
const highest = findHighestId(existingIds);
|
|
70
|
+
const next = highest + 1;
|
|
71
|
+
// Pad to at least 3 digits
|
|
72
|
+
const padded = next.toString().padStart(3, '0');
|
|
73
|
+
return `T${padded}`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate the next ID given an explicit set of existing IDs.
|
|
77
|
+
* Useful when caller has already loaded task data.
|
|
78
|
+
*/
|
|
79
|
+
export function generateNextIdFromSet(existingIds) {
|
|
80
|
+
const highest = findHighestId(existingIds);
|
|
81
|
+
const next = highest + 1;
|
|
82
|
+
const padded = next.toString().padStart(3, '0');
|
|
83
|
+
return `T${padded}`;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Validate that a task ID matches the expected format
|
|
87
|
+
*/
|
|
88
|
+
export function isValidTaskId(id) {
|
|
89
|
+
return TASK_ID_PATTERN.test(id);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=id-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../../src/engine/id-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native TypeScript Engine - Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* The engine provides cross-platform data operations that work
|
|
5
|
+
* without the CLEO CLI (bash). Used when MCP_EXECUTION_MODE is
|
|
6
|
+
* 'native' or 'auto' (when CLI is unavailable).
|
|
7
|
+
*/
|
|
8
|
+
export { readJsonFile, writeJsonFileAtomic, withLock, withFileLock, withMultiLock, isProjectInitialized, resolveProjectRoot, getDataPath, listBackups, } from './store.js';
|
|
9
|
+
export { validateSchema, validateTask, clearSchemaCache, type ValidationResult, type ValidationError, type SchemaType, } from './schema-validator.js';
|
|
10
|
+
export { validateTitleDescription, validateTimestamps, validateIdUniqueness, validateNoDuplicateDescription, validateHierarchy, validateStatusTransition, validateNewTask, hasErrors, type RuleViolation, } from './validation-rules.js';
|
|
11
|
+
export { generateNextId, generateNextIdFromSet, collectAllIds, findHighestId, isValidTaskId, } from './id-generator.js';
|
|
12
|
+
export { taskShow, taskList, taskFind, taskExists, taskCreate, taskUpdate, taskComplete, taskDelete, taskArchive, type TaskRecord, type MinimalTaskRecord, } from './task-engine.js';
|
|
13
|
+
export { sessionStatus, sessionList, sessionShow, focusGet, focusSet, focusClear, sessionStart, sessionEnd, type SessionRecord, } from './session-engine.js';
|
|
14
|
+
export { configGet, configSet, } from './config-engine.js';
|
|
15
|
+
export { initProject, isAutoInitEnabled, ensureInitialized, getVersion, } from './init-engine.js';
|
|
16
|
+
export { providerList, providerGet, providerDetect, providerInstalled, providerCount, registryVersion, mcpList, mcpListAll, mcpInstall, mcpRemove, mcpConfigPath, injectionCheck, injectionCheckAll, injectionUpdate, injectionUpdateAll, caampResolveAlias, caampBuildServerConfig, caampGenerateInjectionContent, caampGetInstructionFiles, } from './caamp-adapter.js';
|
|
17
|
+
export { getOperationMode, canRunNatively, requiresCLI, getNativeOperations, generateCapabilityReport, getCapabilityMatrix, type ExecutionMode, type OperationCapability, type CapabilityReport, } from './capability-matrix.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,SAAS,EACT,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,SAAS,EACT,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native TypeScript Engine - Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* The engine provides cross-platform data operations that work
|
|
5
|
+
* without the CLEO CLI (bash). Used when MCP_EXECUTION_MODE is
|
|
6
|
+
* 'native' or 'auto' (when CLI is unavailable).
|
|
7
|
+
*/
|
|
8
|
+
// Store: atomic file I/O, locking, backup rotation
|
|
9
|
+
export { readJsonFile, writeJsonFileAtomic, withLock, withFileLock, withMultiLock, isProjectInitialized, resolveProjectRoot, getDataPath, listBackups, } from './store.js';
|
|
10
|
+
// Schema validation (Ajv-based)
|
|
11
|
+
export { validateSchema, validateTask, clearSchemaCache, } from './schema-validator.js';
|
|
12
|
+
// Anti-hallucination validation rules
|
|
13
|
+
export { validateTitleDescription, validateTimestamps, validateIdUniqueness, validateNoDuplicateDescription, validateHierarchy, validateStatusTransition, validateNewTask, hasErrors, } from './validation-rules.js';
|
|
14
|
+
// Task ID generation
|
|
15
|
+
export { generateNextId, generateNextIdFromSet, collectAllIds, findHighestId, isValidTaskId, } from './id-generator.js';
|
|
16
|
+
// Task engine (CRUD operations)
|
|
17
|
+
export { taskShow, taskList, taskFind, taskExists, taskCreate, taskUpdate, taskComplete, taskDelete, taskArchive, } from './task-engine.js';
|
|
18
|
+
// Session engine
|
|
19
|
+
export { sessionStatus, sessionList, sessionShow, focusGet, focusSet, focusClear, sessionStart, sessionEnd, } from './session-engine.js';
|
|
20
|
+
// Config engine
|
|
21
|
+
export { configGet, configSet, } from './config-engine.js';
|
|
22
|
+
// Init engine
|
|
23
|
+
export { initProject, isAutoInitEnabled, ensureInitialized, getVersion, } from './init-engine.js';
|
|
24
|
+
// CAAMP adapter (provider registry, MCP config, injection)
|
|
25
|
+
export { providerList, providerGet, providerDetect, providerInstalled, providerCount, registryVersion, mcpList, mcpListAll, mcpInstall, mcpRemove, mcpConfigPath, injectionCheck, injectionCheckAll, injectionUpdate, injectionUpdateAll, caampResolveAlias, caampBuildServerConfig, caampGenerateInjectionContent, caampGetInstructionFiles, } from './caamp-adapter.js';
|
|
26
|
+
// Capability matrix
|
|
27
|
+
export { getOperationMode, canRunNatively, requiresCLI, getNativeOperations, generateCapabilityReport, getCapabilityMatrix, } from './capability-matrix.js';
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mDAAmD;AACnD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,gCAAgC;AAChC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,gBAAgB,GAIjB,MAAM,uBAAuB,CAAC;AAE/B,sCAAsC;AACtC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,SAAS,GAEV,MAAM,uBAAuB,CAAC;AAE/B,qBAAqB;AACrB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,gCAAgC;AAChC,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,GAGZ,MAAM,kBAAkB,CAAC;AAE1B,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,GAEX,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GAIpB,MAAM,wBAAwB,CAAC"}
|