neuro-cli 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +510 -0
  3. package/dist/advisor/advisor.d.ts +50 -0
  4. package/dist/advisor/advisor.js +178 -0
  5. package/dist/agents/base.d.ts +62 -0
  6. package/dist/agents/base.js +215 -0
  7. package/dist/agents/orchestrator.d.ts +46 -0
  8. package/dist/agents/orchestrator.js +192 -0
  9. package/dist/agents/team.d.ts +51 -0
  10. package/dist/agents/team.js +210 -0
  11. package/dist/api/models.d.ts +23 -0
  12. package/dist/api/models.js +514 -0
  13. package/dist/api/ollama.d.ts +153 -0
  14. package/dist/api/ollama.js +751 -0
  15. package/dist/api/openrouter.d.ts +55 -0
  16. package/dist/api/openrouter.js +223 -0
  17. package/dist/commands/commands.d.ts +43 -0
  18. package/dist/commands/commands.js +308 -0
  19. package/dist/config/config.d.ts +8 -0
  20. package/dist/config/config.js +311 -0
  21. package/dist/context/compaction.d.ts +54 -0
  22. package/dist/context/compaction.js +251 -0
  23. package/dist/context/custom-agents.d.ts +107 -0
  24. package/dist/context/custom-agents.js +397 -0
  25. package/dist/context/custom-tools.d.ts +120 -0
  26. package/dist/context/custom-tools.js +564 -0
  27. package/dist/context/git-checkpoint.d.ts +52 -0
  28. package/dist/context/git-checkpoint.js +240 -0
  29. package/dist/context/neuro-md.d.ts +48 -0
  30. package/dist/context/neuro-md.js +202 -0
  31. package/dist/context/neuroignore.d.ts +102 -0
  32. package/dist/context/neuroignore.js +441 -0
  33. package/dist/context/repo-map.d.ts +38 -0
  34. package/dist/context/repo-map.js +220 -0
  35. package/dist/context/skill-standard.d.ts +262 -0
  36. package/dist/context/skill-standard.js +1156 -0
  37. package/dist/context/skill-system.d.ts +75 -0
  38. package/dist/context/skill-system.js +578 -0
  39. package/dist/context/tree-sitter.d.ts +99 -0
  40. package/dist/context/tree-sitter.js +1956 -0
  41. package/dist/core/acp.d.ts +325 -0
  42. package/dist/core/acp.js +1498 -0
  43. package/dist/core/api-server.d.ts +143 -0
  44. package/dist/core/api-server.js +550 -0
  45. package/dist/core/approval.d.ts +81 -0
  46. package/dist/core/approval.js +432 -0
  47. package/dist/core/auto-compact.d.ts +127 -0
  48. package/dist/core/auto-compact.js +436 -0
  49. package/dist/core/auto-mode.d.ts +232 -0
  50. package/dist/core/auto-mode.js +831 -0
  51. package/dist/core/background-session.d.ts +166 -0
  52. package/dist/core/background-session.js +696 -0
  53. package/dist/core/cicd.d.ts +257 -0
  54. package/dist/core/cicd.js +1443 -0
  55. package/dist/core/cloud-sync.d.ts +156 -0
  56. package/dist/core/cloud-sync.js +582 -0
  57. package/dist/core/code-review.d.ts +132 -0
  58. package/dist/core/code-review.js +1191 -0
  59. package/dist/core/completion.d.ts +49 -0
  60. package/dist/core/completion.js +384 -0
  61. package/dist/core/context.d.ts +38 -0
  62. package/dist/core/context.js +144 -0
  63. package/dist/core/diff-preview.d.ts +35 -0
  64. package/dist/core/diff-preview.js +173 -0
  65. package/dist/core/doom-loop.d.ts +51 -0
  66. package/dist/core/doom-loop.js +179 -0
  67. package/dist/core/engine.d.ts +183 -0
  68. package/dist/core/engine.js +942 -0
  69. package/dist/core/extended-thinking.d.ts +103 -0
  70. package/dist/core/extended-thinking.js +269 -0
  71. package/dist/core/fallback.d.ts +54 -0
  72. package/dist/core/fallback.js +104 -0
  73. package/dist/core/git-worktree.d.ts +139 -0
  74. package/dist/core/git-worktree.js +614 -0
  75. package/dist/core/headless.d.ts +30 -0
  76. package/dist/core/headless.js +101 -0
  77. package/dist/core/i18n.d.ts +83 -0
  78. package/dist/core/i18n.js +739 -0
  79. package/dist/core/linting.d.ts +129 -0
  80. package/dist/core/linting.js +699 -0
  81. package/dist/core/model-router.d.ts +109 -0
  82. package/dist/core/model-router.js +581 -0
  83. package/dist/core/multi-model.d.ts +243 -0
  84. package/dist/core/multi-model.js +1099 -0
  85. package/dist/core/multi-session.d.ts +144 -0
  86. package/dist/core/multi-session.js +442 -0
  87. package/dist/core/multimodal.d.ts +125 -0
  88. package/dist/core/multimodal.js +286 -0
  89. package/dist/core/observability.d.ts +93 -0
  90. package/dist/core/observability.js +737 -0
  91. package/dist/core/os-sandbox.d.ts +122 -0
  92. package/dist/core/os-sandbox.js +1193 -0
  93. package/dist/core/outcome-grading.d.ts +228 -0
  94. package/dist/core/outcome-grading.js +1123 -0
  95. package/dist/core/output-styles.d.ts +57 -0
  96. package/dist/core/output-styles.js +382 -0
  97. package/dist/core/parallel-agents.d.ts +183 -0
  98. package/dist/core/parallel-agents.js +563 -0
  99. package/dist/core/plugin-bundle.d.ts +236 -0
  100. package/dist/core/plugin-bundle.js +887 -0
  101. package/dist/core/plugin-sdk.d.ts +139 -0
  102. package/dist/core/plugin-sdk.js +273 -0
  103. package/dist/core/prompt-cache.d.ts +163 -0
  104. package/dist/core/prompt-cache.js +599 -0
  105. package/dist/core/sandbox.d.ts +127 -0
  106. package/dist/core/sandbox.js +369 -0
  107. package/dist/core/scheduled-tasks.d.ts +151 -0
  108. package/dist/core/scheduled-tasks.js +502 -0
  109. package/dist/core/security-scanner.d.ts +160 -0
  110. package/dist/core/security-scanner.js +1494 -0
  111. package/dist/core/session.d.ts +83 -0
  112. package/dist/core/session.js +269 -0
  113. package/dist/core/shell-completion.d.ts +51 -0
  114. package/dist/core/shell-completion.js +674 -0
  115. package/dist/core/smart-monitor.d.ts +146 -0
  116. package/dist/core/smart-monitor.js +1199 -0
  117. package/dist/core/spec-driven.d.ts +233 -0
  118. package/dist/core/spec-driven.js +1485 -0
  119. package/dist/core/spending-warnings.d.ts +123 -0
  120. package/dist/core/spending-warnings.js +456 -0
  121. package/dist/core/sub-agent.d.ts +298 -0
  122. package/dist/core/sub-agent.js +1023 -0
  123. package/dist/core/telemetry.d.ts +157 -0
  124. package/dist/core/telemetry.js +412 -0
  125. package/dist/core/terminal-ux.d.ts +134 -0
  126. package/dist/core/terminal-ux.js +649 -0
  127. package/dist/core/testing.d.ts +146 -0
  128. package/dist/core/testing.js +1200 -0
  129. package/dist/core/types.d.ts +439 -0
  130. package/dist/core/types.js +6 -0
  131. package/dist/core/undo-redo.d.ts +112 -0
  132. package/dist/core/undo-redo.js +290 -0
  133. package/dist/core/updater.d.ts +159 -0
  134. package/dist/core/updater.js +608 -0
  135. package/dist/core/vim-mode.d.ts +151 -0
  136. package/dist/core/vim-mode.js +771 -0
  137. package/dist/core/voice.d.ts +137 -0
  138. package/dist/core/voice.js +538 -0
  139. package/dist/core/web-dashboard.d.ts +109 -0
  140. package/dist/core/web-dashboard.js +484 -0
  141. package/dist/hooks/hooks.d.ts +74 -0
  142. package/dist/hooks/hooks.js +160 -0
  143. package/dist/hooks/llm-evaluator.d.ts +165 -0
  144. package/dist/hooks/llm-evaluator.js +560 -0
  145. package/dist/index.d.ts +3 -0
  146. package/dist/index.js +1186 -0
  147. package/dist/lsp/lsp-manager.d.ts +63 -0
  148. package/dist/lsp/lsp-manager.js +351 -0
  149. package/dist/mcp/client.d.ts +133 -0
  150. package/dist/mcp/client.js +684 -0
  151. package/dist/mcp/mcp-apps.d.ts +70 -0
  152. package/dist/mcp/mcp-apps.js +1007 -0
  153. package/dist/tools/bash.d.ts +5 -0
  154. package/dist/tools/bash.js +195 -0
  155. package/dist/tools/browser.d.ts +92 -0
  156. package/dist/tools/browser.js +1570 -0
  157. package/dist/tools/extended.d.ts +6 -0
  158. package/dist/tools/extended.js +191 -0
  159. package/dist/tools/file.d.ts +10 -0
  160. package/dist/tools/file.js +382 -0
  161. package/dist/tools/github.d.ts +389 -0
  162. package/dist/tools/github.js +759 -0
  163. package/dist/tools/index.d.ts +9 -0
  164. package/dist/tools/index.js +40 -0
  165. package/dist/tools/memory.d.ts +6 -0
  166. package/dist/tools/memory.js +197 -0
  167. package/dist/tools/registry.d.ts +29 -0
  168. package/dist/tools/registry.js +64 -0
  169. package/dist/tools/web.d.ts +6 -0
  170. package/dist/tools/web.js +150 -0
  171. package/dist/ui/renderer.d.ts +97 -0
  172. package/dist/ui/renderer.js +279 -0
  173. package/dist/ui/theme.d.ts +27 -0
  174. package/dist/ui/theme.js +106 -0
  175. package/package.json +83 -0
@@ -0,0 +1,233 @@
1
+ export interface Requirement {
2
+ id: string;
3
+ title: string;
4
+ description: string;
5
+ priority: 'must' | 'should' | 'could';
6
+ acceptanceCriteria: string[];
7
+ status: 'pending' | 'implemented' | 'verified' | 'failed';
8
+ }
9
+ export interface Component {
10
+ name: string;
11
+ description: string;
12
+ responsibilities: string[];
13
+ interfaces: string[];
14
+ dependencies: string[];
15
+ }
16
+ export interface Risk {
17
+ id: string;
18
+ description: string;
19
+ likelihood: 'low' | 'medium' | 'high';
20
+ impact: 'low' | 'medium' | 'high';
21
+ mitigation: string;
22
+ }
23
+ export interface Task {
24
+ id: string;
25
+ description: string;
26
+ completed: boolean;
27
+ files?: string[];
28
+ verification?: string;
29
+ }
30
+ export interface Phase {
31
+ name: string;
32
+ tasks: Task[];
33
+ order: number;
34
+ }
35
+ export interface DesignDoc {
36
+ architecture: string;
37
+ components: Component[];
38
+ dataFlow: string;
39
+ apiDesign: string[];
40
+ errorHandling: string;
41
+ }
42
+ export interface ImplementationPlan {
43
+ phases: Phase[];
44
+ estimatedEffort: string;
45
+ dependencies: string[];
46
+ risks: Risk[];
47
+ }
48
+ export interface VerificationChecklist {
49
+ acceptanceCriteriaMet: boolean;
50
+ testsPass: boolean;
51
+ codeReviewComplete: boolean;
52
+ notes: string[];
53
+ }
54
+ export interface Spec {
55
+ id: string;
56
+ name: string;
57
+ status: 'draft' | 'approved' | 'implementing' | 'complete' | 'rejected';
58
+ requirements: Requirement[];
59
+ design: DesignDoc;
60
+ implementationPlan: ImplementationPlan;
61
+ verification: VerificationChecklist;
62
+ createdAt: Date;
63
+ updatedAt: Date;
64
+ /** Hash of the requirements content for integrity tracking */
65
+ requirementsHash: string;
66
+ /** Hash of the design content for integrity tracking */
67
+ designHash: string;
68
+ /** Reason for rejection, if applicable */
69
+ rejectionReason?: string;
70
+ /** Original prompt that generated this spec */
71
+ originalPrompt?: string;
72
+ /** Current phase index being implemented */
73
+ currentPhaseIndex: number;
74
+ /** Current task index within current phase */
75
+ currentTaskIndex: number;
76
+ }
77
+ export interface SpecSummary {
78
+ id: string;
79
+ name: string;
80
+ status: Spec['status'];
81
+ createdAt: Date;
82
+ updatedAt: Date;
83
+ requirementCount: number;
84
+ completedTaskCount: number;
85
+ totalTaskCount: number;
86
+ }
87
+ export interface ExecOptions {
88
+ /** Automatically approve each phase before implementation */
89
+ autoApprove?: boolean;
90
+ /** Maximum number of LLM iterations per task */
91
+ maxIterations?: number;
92
+ /** Callback for status updates during execution */
93
+ onProgress?: (phase: string, task: string, iteration: number) => void;
94
+ /** Whether to run tests after each phase */
95
+ testAfterPhase?: boolean;
96
+ /** Specific phases to execute (0-indexed); omit to run all remaining */
97
+ phases?: number[];
98
+ /** Resume from a previously incomplete execution */
99
+ resume?: boolean;
100
+ }
101
+ export interface ExecutionResult {
102
+ success: boolean;
103
+ phasesCompleted: number;
104
+ tasksCompleted: number;
105
+ tasksTotal: number;
106
+ errors: string[];
107
+ filesModified: string[];
108
+ durationMs: number;
109
+ }
110
+ export interface VerificationResult {
111
+ passed: boolean;
112
+ criteriaResults: CriteriaCheckResult[];
113
+ overallScore: number;
114
+ issues: string[];
115
+ suggestions: string[];
116
+ }
117
+ export interface CriteriaCheckResult {
118
+ requirementId: string;
119
+ criteriaIndex: number;
120
+ criteriaText: string;
121
+ passed: boolean;
122
+ evidence: string;
123
+ }
124
+ export interface SpecDiff {
125
+ specFiles: string[];
126
+ actualFiles: string[];
127
+ missingFiles: string[];
128
+ extraFiles: string[];
129
+ contentDiffs: FileDiff[];
130
+ coveragePercentage: number;
131
+ }
132
+ export interface FileDiff {
133
+ file: string;
134
+ specExpectation: string;
135
+ actualContent: string;
136
+ matches: boolean;
137
+ differences: string[];
138
+ }
139
+ export interface PipelineOptions {
140
+ /** Skip the approval step and auto-approve the spec */
141
+ autoApprove?: boolean;
142
+ /** Which model to use for spec generation */
143
+ model?: string;
144
+ /** Callback for pipeline stage updates */
145
+ onStageChange?: (stage: PipelineStage, details: string) => void;
146
+ /** Maximum cost in USD (0 = unlimited) */
147
+ maxCost?: number;
148
+ /** Maximum time in ms (0 = unlimited) */
149
+ maxTimeMs?: number;
150
+ }
151
+ export type PipelineStage = 'requirements' | 'design' | 'plan' | 'approval' | 'implementation' | 'verification';
152
+ export interface PipelineResult {
153
+ spec: Spec;
154
+ executionResult: ExecutionResult;
155
+ verificationResult: VerificationResult;
156
+ totalDurationMs: number;
157
+ totalCost: number;
158
+ stages: PipelineStageResult[];
159
+ }
160
+ export interface PipelineStageResult {
161
+ stage: PipelineStage;
162
+ success: boolean;
163
+ durationMs: number;
164
+ cost: number;
165
+ details: string;
166
+ }
167
+ /**
168
+ * Minimal interface that any execution engine must satisfy for
169
+ * SpecDrivenPipeline to orchestrate it. Loosely coupled like AutoModeEngine.
170
+ */
171
+ export interface SpecDrivenEngine {
172
+ /** Run a single prompt through the engine and return the assistant text */
173
+ runPrompt(prompt: string, model?: string): Promise<{
174
+ text: string;
175
+ inputTokens: number;
176
+ outputTokens: number;
177
+ cost: number;
178
+ filesChanged: number;
179
+ commandsRun: number;
180
+ error?: string;
181
+ }>;
182
+ }
183
+ export declare class SpecDrivenPipeline {
184
+ private engine;
185
+ private projectRoot;
186
+ private specsDir;
187
+ private model;
188
+ private totalCost;
189
+ constructor(engine: SpecDrivenEngine, projectRoot: string, model?: string);
190
+ private ensureSpecsDir;
191
+ private hashContent;
192
+ private callLLM;
193
+ private extractJSON;
194
+ private parseJSON;
195
+ generateRequirements(prompt: string): Promise<Requirement[]>;
196
+ generateDesign(requirements: Requirement[]): Promise<DesignDoc>;
197
+ generatePlan(design: DesignDoc): Promise<ImplementationPlan>;
198
+ executePlan(plan: ImplementationPlan, options?: ExecOptions): Promise<ExecutionResult>;
199
+ verifyImplementation(spec: Spec): Promise<VerificationResult>;
200
+ runFullPipeline(prompt: string, options?: PipelineOptions): Promise<PipelineResult>;
201
+ saveSpec(spec: Spec): Promise<void>;
202
+ loadSpec(id: string): Promise<Spec>;
203
+ listSpecs(): Promise<SpecSummary[]>;
204
+ approveSpec(id: string): Promise<void>;
205
+ rejectSpec(id: string, reason: string): Promise<void>;
206
+ deleteSpec(id: string): Promise<void>;
207
+ checkAcceptanceCriteria(spec: Spec): Promise<CriteriaCheckResult[]>;
208
+ private checkSingleCriteria;
209
+ diffSpecVsImplementation(spec: Spec): Promise<SpecDiff>;
210
+ resumeImplementation(id: string, options?: ExecOptions): Promise<ExecutionResult>;
211
+ private serializeSpecToMarkdown;
212
+ private deserializeSpecFromMarkdown;
213
+ private parseSimpleYAML;
214
+ private parseRequirementsSection;
215
+ private parseDesignSection;
216
+ private parseImplementationPlanSection;
217
+ private parseVerificationSection;
218
+ private getSpecFilePath;
219
+ private extractFeatureName;
220
+ private toTitleCase;
221
+ private detectModifiedFiles;
222
+ private gatherProjectState;
223
+ private gatherRelevantFiles;
224
+ private getSpecExpectationForFile;
225
+ private computeFileDiff;
226
+ private findProjectSourceFiles;
227
+ private runProjectTests;
228
+ /** Get the total cost accumulated by this pipeline instance */
229
+ getTotalCost(): number;
230
+ /** Get the specs directory path */
231
+ getSpecsDir(): string;
232
+ }
233
+ //# sourceMappingURL=spec-driven.d.ts.map