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.
- package/LICENSE +21 -0
- package/README.md +510 -0
- package/dist/advisor/advisor.d.ts +50 -0
- package/dist/advisor/advisor.js +178 -0
- package/dist/agents/base.d.ts +62 -0
- package/dist/agents/base.js +215 -0
- package/dist/agents/orchestrator.d.ts +46 -0
- package/dist/agents/orchestrator.js +192 -0
- package/dist/agents/team.d.ts +51 -0
- package/dist/agents/team.js +210 -0
- package/dist/api/models.d.ts +23 -0
- package/dist/api/models.js +514 -0
- package/dist/api/ollama.d.ts +153 -0
- package/dist/api/ollama.js +751 -0
- package/dist/api/openrouter.d.ts +55 -0
- package/dist/api/openrouter.js +223 -0
- package/dist/commands/commands.d.ts +43 -0
- package/dist/commands/commands.js +308 -0
- package/dist/config/config.d.ts +8 -0
- package/dist/config/config.js +311 -0
- package/dist/context/compaction.d.ts +54 -0
- package/dist/context/compaction.js +251 -0
- package/dist/context/custom-agents.d.ts +107 -0
- package/dist/context/custom-agents.js +397 -0
- package/dist/context/custom-tools.d.ts +120 -0
- package/dist/context/custom-tools.js +564 -0
- package/dist/context/git-checkpoint.d.ts +52 -0
- package/dist/context/git-checkpoint.js +240 -0
- package/dist/context/neuro-md.d.ts +48 -0
- package/dist/context/neuro-md.js +202 -0
- package/dist/context/neuroignore.d.ts +102 -0
- package/dist/context/neuroignore.js +441 -0
- package/dist/context/repo-map.d.ts +38 -0
- package/dist/context/repo-map.js +220 -0
- package/dist/context/skill-standard.d.ts +262 -0
- package/dist/context/skill-standard.js +1156 -0
- package/dist/context/skill-system.d.ts +75 -0
- package/dist/context/skill-system.js +578 -0
- package/dist/context/tree-sitter.d.ts +99 -0
- package/dist/context/tree-sitter.js +1956 -0
- package/dist/core/acp.d.ts +325 -0
- package/dist/core/acp.js +1498 -0
- package/dist/core/api-server.d.ts +143 -0
- package/dist/core/api-server.js +550 -0
- package/dist/core/approval.d.ts +81 -0
- package/dist/core/approval.js +432 -0
- package/dist/core/auto-compact.d.ts +127 -0
- package/dist/core/auto-compact.js +436 -0
- package/dist/core/auto-mode.d.ts +232 -0
- package/dist/core/auto-mode.js +831 -0
- package/dist/core/background-session.d.ts +166 -0
- package/dist/core/background-session.js +696 -0
- package/dist/core/cicd.d.ts +257 -0
- package/dist/core/cicd.js +1443 -0
- package/dist/core/cloud-sync.d.ts +156 -0
- package/dist/core/cloud-sync.js +582 -0
- package/dist/core/code-review.d.ts +132 -0
- package/dist/core/code-review.js +1191 -0
- package/dist/core/completion.d.ts +49 -0
- package/dist/core/completion.js +384 -0
- package/dist/core/context.d.ts +38 -0
- package/dist/core/context.js +144 -0
- package/dist/core/diff-preview.d.ts +35 -0
- package/dist/core/diff-preview.js +173 -0
- package/dist/core/doom-loop.d.ts +51 -0
- package/dist/core/doom-loop.js +179 -0
- package/dist/core/engine.d.ts +183 -0
- package/dist/core/engine.js +942 -0
- package/dist/core/extended-thinking.d.ts +103 -0
- package/dist/core/extended-thinking.js +269 -0
- package/dist/core/fallback.d.ts +54 -0
- package/dist/core/fallback.js +104 -0
- package/dist/core/git-worktree.d.ts +139 -0
- package/dist/core/git-worktree.js +614 -0
- package/dist/core/headless.d.ts +30 -0
- package/dist/core/headless.js +101 -0
- package/dist/core/i18n.d.ts +83 -0
- package/dist/core/i18n.js +739 -0
- package/dist/core/linting.d.ts +129 -0
- package/dist/core/linting.js +699 -0
- package/dist/core/model-router.d.ts +109 -0
- package/dist/core/model-router.js +581 -0
- package/dist/core/multi-model.d.ts +243 -0
- package/dist/core/multi-model.js +1099 -0
- package/dist/core/multi-session.d.ts +144 -0
- package/dist/core/multi-session.js +442 -0
- package/dist/core/multimodal.d.ts +125 -0
- package/dist/core/multimodal.js +286 -0
- package/dist/core/observability.d.ts +93 -0
- package/dist/core/observability.js +737 -0
- package/dist/core/os-sandbox.d.ts +122 -0
- package/dist/core/os-sandbox.js +1193 -0
- package/dist/core/outcome-grading.d.ts +228 -0
- package/dist/core/outcome-grading.js +1123 -0
- package/dist/core/output-styles.d.ts +57 -0
- package/dist/core/output-styles.js +382 -0
- package/dist/core/parallel-agents.d.ts +183 -0
- package/dist/core/parallel-agents.js +563 -0
- package/dist/core/plugin-bundle.d.ts +236 -0
- package/dist/core/plugin-bundle.js +887 -0
- package/dist/core/plugin-sdk.d.ts +139 -0
- package/dist/core/plugin-sdk.js +273 -0
- package/dist/core/prompt-cache.d.ts +163 -0
- package/dist/core/prompt-cache.js +599 -0
- package/dist/core/sandbox.d.ts +127 -0
- package/dist/core/sandbox.js +369 -0
- package/dist/core/scheduled-tasks.d.ts +151 -0
- package/dist/core/scheduled-tasks.js +502 -0
- package/dist/core/security-scanner.d.ts +160 -0
- package/dist/core/security-scanner.js +1494 -0
- package/dist/core/session.d.ts +83 -0
- package/dist/core/session.js +269 -0
- package/dist/core/shell-completion.d.ts +51 -0
- package/dist/core/shell-completion.js +674 -0
- package/dist/core/smart-monitor.d.ts +146 -0
- package/dist/core/smart-monitor.js +1199 -0
- package/dist/core/spec-driven.d.ts +233 -0
- package/dist/core/spec-driven.js +1485 -0
- package/dist/core/spending-warnings.d.ts +123 -0
- package/dist/core/spending-warnings.js +456 -0
- package/dist/core/sub-agent.d.ts +298 -0
- package/dist/core/sub-agent.js +1023 -0
- package/dist/core/telemetry.d.ts +157 -0
- package/dist/core/telemetry.js +412 -0
- package/dist/core/terminal-ux.d.ts +134 -0
- package/dist/core/terminal-ux.js +649 -0
- package/dist/core/testing.d.ts +146 -0
- package/dist/core/testing.js +1200 -0
- package/dist/core/types.d.ts +439 -0
- package/dist/core/types.js +6 -0
- package/dist/core/undo-redo.d.ts +112 -0
- package/dist/core/undo-redo.js +290 -0
- package/dist/core/updater.d.ts +159 -0
- package/dist/core/updater.js +608 -0
- package/dist/core/vim-mode.d.ts +151 -0
- package/dist/core/vim-mode.js +771 -0
- package/dist/core/voice.d.ts +137 -0
- package/dist/core/voice.js +538 -0
- package/dist/core/web-dashboard.d.ts +109 -0
- package/dist/core/web-dashboard.js +484 -0
- package/dist/hooks/hooks.d.ts +74 -0
- package/dist/hooks/hooks.js +160 -0
- package/dist/hooks/llm-evaluator.d.ts +165 -0
- package/dist/hooks/llm-evaluator.js +560 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1186 -0
- package/dist/lsp/lsp-manager.d.ts +63 -0
- package/dist/lsp/lsp-manager.js +351 -0
- package/dist/mcp/client.d.ts +133 -0
- package/dist/mcp/client.js +684 -0
- package/dist/mcp/mcp-apps.d.ts +70 -0
- package/dist/mcp/mcp-apps.js +1007 -0
- package/dist/tools/bash.d.ts +5 -0
- package/dist/tools/bash.js +195 -0
- package/dist/tools/browser.d.ts +92 -0
- package/dist/tools/browser.js +1570 -0
- package/dist/tools/extended.d.ts +6 -0
- package/dist/tools/extended.js +191 -0
- package/dist/tools/file.d.ts +10 -0
- package/dist/tools/file.js +382 -0
- package/dist/tools/github.d.ts +389 -0
- package/dist/tools/github.js +759 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.js +40 -0
- package/dist/tools/memory.d.ts +6 -0
- package/dist/tools/memory.js +197 -0
- package/dist/tools/registry.d.ts +29 -0
- package/dist/tools/registry.js +64 -0
- package/dist/tools/web.d.ts +6 -0
- package/dist/tools/web.js +150 -0
- package/dist/ui/renderer.d.ts +97 -0
- package/dist/ui/renderer.js +279 -0
- package/dist/ui/theme.d.ts +27 -0
- package/dist/ui/theme.js +106 -0
- 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
|