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,101 @@
1
+ // ============================================================
2
+ // NeuroCLI - Headless/CI Mode
3
+ // Non-interactive execution for automation pipelines
4
+ // ============================================================
5
+ import { NeuroEngine } from './engine.js';
6
+ import { initConfig } from '../config/config.js';
7
+ export class HeadlessMode {
8
+ /**
9
+ * Run a single headless task and return structured result
10
+ */
11
+ static async run(options) {
12
+ const startTime = Date.now();
13
+ const maxTurns = options.maxTurns || 30;
14
+ // Initialize config
15
+ const config = initConfig();
16
+ if (options.model)
17
+ config.defaultModel = options.model;
18
+ if (options.autoApprove !== false) {
19
+ config.tools.autoApprove = [
20
+ ...config.tools.autoApprove,
21
+ ...config.tools.requireApproval,
22
+ ];
23
+ config.tools.requireApproval = [];
24
+ }
25
+ // Override working directory
26
+ if (options.workingDirectory) {
27
+ process.chdir(options.workingDirectory);
28
+ }
29
+ // Configure tool restrictions
30
+ if (options.allowedTools && options.allowedTools.length > 0) {
31
+ const denied = Object.keys(config.tools).filter(t => !options.allowedTools.includes(t));
32
+ config.tools.denied = denied;
33
+ }
34
+ if (options.deniedTools) {
35
+ config.tools.denied = [...config.tools.denied, ...options.deniedTools];
36
+ }
37
+ try {
38
+ const engine = new NeuroEngine(config);
39
+ // Continue existing session if specified
40
+ if (options.continueSession) {
41
+ engine.sessionManager.load(options.continueSession);
42
+ }
43
+ // Track iterations
44
+ let iterations = 0;
45
+ let toolCallsCount = 0;
46
+ const callbacks = {
47
+ onToolCall: () => { toolCallsCount++; },
48
+ onIteration: (i) => {
49
+ iterations = i;
50
+ if (i >= maxTurns) {
51
+ throw new Error(`MAX_TURNS_REACHED: ${maxTurns}`);
52
+ }
53
+ },
54
+ };
55
+ const result = await engine.processMessage(options.prompt, options.agent ? 'direct' : 'auto', options.agent || 'Coder');
56
+ const duration = Date.now() - startTime;
57
+ // Format output
58
+ const headlessResult = {
59
+ content: result.content,
60
+ model: config.defaultModel,
61
+ inputTokens: result.usage.inputTokens,
62
+ outputTokens: result.usage.outputTokens,
63
+ cost: result.usage.cost,
64
+ exitCode: 0,
65
+ sessionId: engine.sessionManager.getCurrent()?.id || '',
66
+ duration,
67
+ toolCallsCount,
68
+ };
69
+ // Output based on format
70
+ if (options.outputFormat === 'json') {
71
+ console.log(JSON.stringify(headlessResult, null, 2));
72
+ }
73
+ else if (options.outputFormat === 'stream-json') {
74
+ // Stream JSON events (for CI integration)
75
+ console.log(JSON.stringify({ type: 'result', ...headlessResult }));
76
+ }
77
+ // text format: just the content (already printed by engine)
78
+ return headlessResult;
79
+ }
80
+ catch (error) {
81
+ const errMsg = error instanceof Error ? error.message : String(error);
82
+ const isMaxTurns = errMsg.includes('MAX_TURNS_REACHED');
83
+ const headlessResult = {
84
+ content: isMaxTurns ? 'Max turns reached' : errMsg,
85
+ model: config.defaultModel,
86
+ inputTokens: 0,
87
+ outputTokens: 0,
88
+ cost: 0,
89
+ exitCode: isMaxTurns ? 2 : 1,
90
+ sessionId: '',
91
+ duration: Date.now() - startTime,
92
+ toolCallsCount: 0,
93
+ };
94
+ if (options.outputFormat === 'json') {
95
+ console.log(JSON.stringify(headlessResult, null, 2));
96
+ }
97
+ return headlessResult;
98
+ }
99
+ }
100
+ }
101
+ //# sourceMappingURL=headless.js.map
@@ -0,0 +1,83 @@
1
+ export type SupportedLocale = 'en' | 'tr' | 'zh' | 'ja' | 'es';
2
+ export interface I18nConfig {
3
+ /** Current locale */
4
+ locale: SupportedLocale;
5
+ /** Fallback locale when a key is missing */
6
+ fallbackLocale: SupportedLocale;
7
+ /** Directory for custom translation files */
8
+ customTranslationsDir: string;
9
+ /** Whether to auto-detect system language on first run */
10
+ autoDetect: boolean;
11
+ }
12
+ export interface TranslationEntry {
13
+ key: string;
14
+ value: string;
15
+ }
16
+ export declare class I18nSystem {
17
+ private config;
18
+ private customTranslations;
19
+ constructor(config?: Partial<I18nConfig>);
20
+ /**
21
+ * Get a translated string by key
22
+ */
23
+ t(key: string, params?: Record<string, string | number>): string;
24
+ /**
25
+ * Get current locale
26
+ */
27
+ getLocale(): SupportedLocale;
28
+ /**
29
+ * Set locale
30
+ */
31
+ setLocale(locale: SupportedLocale): void;
32
+ /**
33
+ * Get all available locales
34
+ */
35
+ getAvailableLocales(): SupportedLocale[];
36
+ /**
37
+ * Get locale display name
38
+ */
39
+ getLocaleName(locale: SupportedLocale): string;
40
+ /**
41
+ * Get all locale names
42
+ */
43
+ getLocaleNames(): Record<SupportedLocale, string>;
44
+ /**
45
+ * Auto-detect system locale
46
+ */
47
+ autoDetectLocale(): SupportedLocale;
48
+ /**
49
+ * Add a custom translation
50
+ */
51
+ addTranslation(locale: SupportedLocale, key: string, value: string): void;
52
+ /**
53
+ * Remove a custom translation
54
+ */
55
+ removeTranslation(locale: SupportedLocale, key: string): boolean;
56
+ /**
57
+ * Get all translation keys for current locale
58
+ */
59
+ getAllKeys(): string[];
60
+ /**
61
+ * Export all translations for a locale as JSON
62
+ */
63
+ exportTranslations(locale: SupportedLocale): string;
64
+ /**
65
+ * Import translations from a JSON string
66
+ */
67
+ importTranslations(locale: SupportedLocale, json: string): number;
68
+ /**
69
+ * Print current locale info
70
+ */
71
+ printStatus(): void;
72
+ /**
73
+ * Get config
74
+ */
75
+ getConfig(): I18nConfig;
76
+ private getTranslation;
77
+ private parseLocaleString;
78
+ private saveConfig;
79
+ private loadConfig;
80
+ private loadCustomTranslations;
81
+ private saveCustomTranslations;
82
+ }
83
+ //# sourceMappingURL=i18n.d.ts.map