nova-terminal-assistant 0.1.0 → 0.1.2
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/bin/nova.js +4 -1
- package/package.json +15 -7
- package/src/{cli/commands → commands}/SmartCompletion.ts +1 -1
- package/src/{core/model → model}/ModelValidator.ts +1 -1
- package/src/{cli/startup → startup}/IFlowRepl.ts +1 -1
- package/src/{cli/startup → startup}/InkBasedRepl.ts +12 -12
- package/src/{cli/startup → startup}/InteractiveRepl.ts +15 -15
- package/src/{cli/startup → startup}/NovaApp.ts +23 -23
- package/src/{cli/test-modules.ts → test-modules.ts} +3 -3
- package/src/{cli/ui → ui}/IFlowDropdown.ts +1 -1
- package/src/{cli/ui → ui}/ModernReplUI.ts +1 -1
- package/src/{cli/ui → ui}/components/ErrorPanel.ts +1 -1
- package/src/{cli/ui → ui}/components/QuickActions.ts +1 -1
- package/src/{cli/ui → ui}/components/StatusBar.ts +1 -1
- package/src/{cli/utils → utils}/EnhancedCompleter.test.ts +1 -1
- package/src/{cli/utils → utils}/EnhancedCompleter.ts +1 -1
- package/src/core/index.ts +0 -42
- package/src/core/utils/index.ts +0 -19
- /package/src/{core/agents → agents}/AgentOrchestrator.ts +0 -0
- /package/src/{core/agents → agents}/index.ts +0 -0
- /package/src/{core/audit → audit}/AuditLogger.ts +0 -0
- /package/src/{core/audit → audit}/index.ts +0 -0
- /package/src/{core/auth → auth}/AuthManager.d.ts.map +0 -0
- /package/src/{core/auth → auth}/AuthManager.ts +0 -0
- /package/src/{core/auth → auth}/index.d.ts.map +0 -0
- /package/src/{core/auth → auth}/index.ts +0 -0
- /package/src/{core/config → config}/ConfigManager.d.ts.map +0 -0
- /package/src/{core/config → config}/ConfigManager.test.ts +0 -0
- /package/src/{core/config → config}/ConfigManager.ts +0 -0
- /package/src/{core/config → config}/index.d.ts.map +0 -0
- /package/src/{core/config → config}/index.ts +0 -0
- /package/src/{core/context → context}/ContextBuilder.d.ts.map +0 -0
- /package/src/{core/context → context}/ContextBuilder.ts +0 -0
- /package/src/{core/context → context}/ContextCompressor.d.ts.map +0 -0
- /package/src/{core/context → context}/ContextCompressor.ts +0 -0
- /package/src/{core/context → context}/LayeredMemoryManager.ts +0 -0
- /package/src/{core/context → context}/MemoryDiscovery.d.ts.map +0 -0
- /package/src/{core/context → context}/MemoryDiscovery.ts +0 -0
- /package/src/{core/context → context}/defaultSystemPrompt.d.ts.map +0 -0
- /package/src/{core/context → context}/defaultSystemPrompt.ts +0 -0
- /package/src/{core/context → context}/index.d.ts.map +0 -0
- /package/src/{core/context → context}/index.ts +0 -0
- /package/src/{core/extensions → extensions}/SkillGenerator.ts +0 -0
- /package/src/{core/extensions → extensions}/SkillInstaller.d.ts.map +0 -0
- /package/src/{core/extensions → extensions}/SkillInstaller.ts +0 -0
- /package/src/{core/extensions → extensions}/SkillRegistry.d.ts.map +0 -0
- /package/src/{core/extensions → extensions}/SkillRegistry.ts +0 -0
- /package/src/{core/extensions → extensions}/SkillValidator.ts +0 -0
- /package/src/{core/extensions → extensions}/index.ts +0 -0
- /package/src/{core/index.d.ts.map → index.d.ts.map} +0 -0
- /package/src/{cli/index.ts → index.ts} +0 -0
- /package/src/{core/mcp → mcp}/McpManager.d.ts.map +0 -0
- /package/src/{core/mcp → mcp}/McpManager.ts +0 -0
- /package/src/{core/mcp → mcp}/index.d.ts.map +0 -0
- /package/src/{core/mcp → mcp}/index.ts +0 -0
- /package/src/{core/model → model}/ModelClient.d.ts.map +0 -0
- /package/src/{core/model → model}/ModelClient.ts +0 -0
- /package/src/{core/model → model}/ModelConnectionTester.ts +0 -0
- /package/src/{core/model → model}/index.d.ts.map +0 -0
- /package/src/{core/model → model}/index.ts +0 -0
- /package/src/{core/model → model}/providers/AnthropicProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/AnthropicProvider.ts +0 -0
- /package/src/{core/model → model}/providers/CodingPlanProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/CodingPlanProvider.ts +0 -0
- /package/src/{core/model → model}/providers/OllamaCloudProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/OllamaCloudProvider.ts +0 -0
- /package/src/{core/model → model}/providers/OllamaManager.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/OllamaManager.ts +0 -0
- /package/src/{core/model → model}/providers/OllamaProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/OllamaProvider.ts +0 -0
- /package/src/{core/model → model}/providers/OpenAICompatibleProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/OpenAICompatibleProvider.ts +0 -0
- /package/src/{core/model → model}/providers/OpenAIProvider.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/OpenAIProvider.ts +0 -0
- /package/src/{core/model → model}/providers/index.d.ts.map +0 -0
- /package/src/{core/model → model}/providers/index.ts +0 -0
- /package/src/{core/model → model}/types.d.ts.map +0 -0
- /package/src/{core/model → model}/types.ts +0 -0
- /package/src/{core/security → security}/ApprovalManager.d.ts.map +0 -0
- /package/src/{core/security → security}/ApprovalManager.ts +0 -0
- /package/src/{core/security → security}/FileFilter.d.ts.map +0 -0
- /package/src/{core/security → security}/FileFilter.ts +0 -0
- /package/src/{core/security → security}/HookExecutor.d.ts.map +0 -0
- /package/src/{core/security → security}/HookExecutor.ts +0 -0
- /package/src/{core/security → security}/SandboxExecutor.ts +0 -0
- /package/src/{core/security → security}/index.d.ts.map +0 -0
- /package/src/{core/security → security}/index.ts +0 -0
- /package/src/{core/session → session}/AgentLoop.d.ts.map +0 -0
- /package/src/{core/session → session}/AgentLoop.ts +0 -0
- /package/src/{core/session → session}/SessionManager.d.ts.map +0 -0
- /package/src/{core/session → session}/SessionManager.test.ts +0 -0
- /package/src/{core/session → session}/SessionManager.ts +0 -0
- /package/src/{core/session → session}/index.d.ts.map +0 -0
- /package/src/{core/session → session}/index.ts +0 -0
- /package/src/{cli/startup → startup}/index.ts +0 -0
- /package/src/{cli/startup → startup}/parseArgs.ts +0 -0
- /package/src/{core/telemetry → telemetry}/Telemetry.d.ts.map +0 -0
- /package/src/{core/telemetry → telemetry}/Telemetry.ts +0 -0
- /package/src/{core/telemetry → telemetry}/TelemetryService.ts +0 -0
- /package/src/{core/telemetry → telemetry}/index.d.ts.map +0 -0
- /package/src/{core/telemetry → telemetry}/index.ts +0 -0
- /package/src/{core/testing → testing}/AutoFixer.ts +0 -0
- /package/src/{core/testing → testing}/ErrorAnalyzer.ts +0 -0
- /package/src/{core/testing → testing}/TestRunner.ts +0 -0
- /package/src/{core/testing → testing}/agent-cli-tests.ts +0 -0
- /package/src/{core/testing → testing}/index.ts +0 -0
- /package/src/{core/tools → tools}/ToolRegistry.d.ts.map +0 -0
- /package/src/{core/tools → tools}/ToolRegistry.test.ts +0 -0
- /package/src/{core/tools → tools}/ToolRegistry.ts +0 -0
- /package/src/{core/tools → tools}/impl/EditFileTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/EditFileTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/ListDirectoryTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/ListDirectoryTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/MemoryTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/MemoryTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/ReadFileTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/ReadFileTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/SearchContentTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/SearchContentTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/SearchFileTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/SearchFileTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/ShellTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/ShellTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/TaskTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/TaskTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/TodoTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/TodoTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/WebFetchTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/WebFetchTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/WebSearchTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/WebSearchTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/WriteFileTool.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/WriteFileTool.ts +0 -0
- /package/src/{core/tools → tools}/impl/index.d.ts.map +0 -0
- /package/src/{core/tools → tools}/impl/index.ts +0 -0
- /package/src/{core/tools → tools}/index.d.ts.map +0 -0
- /package/src/{core/tools → tools}/index.ts +0 -0
- /package/src/{core/tools → tools}/schemas/execution.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/execution.ts +0 -0
- /package/src/{core/tools → tools}/schemas/file.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/file.ts +0 -0
- /package/src/{core/tools → tools}/schemas/index.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/index.ts +0 -0
- /package/src/{core/tools → tools}/schemas/memory.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/memory.ts +0 -0
- /package/src/{core/tools → tools}/schemas/orchestration.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/orchestration.ts +0 -0
- /package/src/{core/tools → tools}/schemas/search.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/search.ts +0 -0
- /package/src/{core/tools → tools}/schemas/todo.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/todo.ts +0 -0
- /package/src/{core/tools → tools}/schemas/web.d.ts.map +0 -0
- /package/src/{core/tools → tools}/schemas/web.ts +0 -0
- /package/src/{core/types → types}/config.d.ts.map +0 -0
- /package/src/{core/types → types}/config.ts +0 -0
- /package/src/{core/types → types}/errors.d.ts.map +0 -0
- /package/src/{core/types → types}/errors.ts +0 -0
- /package/src/{core/types → types}/index.d.ts.map +0 -0
- /package/src/{core/types → types}/index.ts +0 -0
- /package/src/{core/types → types}/session.d.ts.map +0 -0
- /package/src/{core/types → types}/session.ts +0 -0
- /package/src/{core/types → types}/tools.d.ts.map +0 -0
- /package/src/{core/types → types}/tools.ts +0 -0
- /package/src/{cli/ui → ui}/SimpleSelector2.ts +0 -0
- /package/src/{cli/ui → ui}/components/ConfirmDialog.ts +0 -0
- /package/src/{cli/ui → ui}/components/InkAppRunner.tsx +0 -0
- /package/src/{cli/ui → ui}/components/InkComponents.tsx +0 -0
- /package/src/{cli/ui → ui}/components/NovaInkApp.tsx +0 -0
- /package/src/{cli/ui → ui}/components/ProgressBar.ts +0 -0
- /package/src/{cli/ui → ui}/components/ProgressIndicator.ts +0 -0
- /package/src/{cli/ui → ui}/components/SimpleErrorPanel.ts +0 -0
- /package/src/{cli/ui → ui}/components/ThinkingBlockRenderer.ts +0 -0
- /package/src/{cli/ui → ui}/components/index.ts +0 -0
- /package/src/{cli/ui → ui}/ink-prototype.tsx +0 -0
- /package/src/{core/utils → utils}/CheckpointManager.d.ts.map +0 -0
- /package/src/{core/utils → utils}/CheckpointManager.ts +0 -0
- /package/src/{cli/utils → utils}/CliUI.ts +0 -0
- /package/src/{cli/utils → utils}/CompletionHelper.ts +0 -0
- /package/src/{cli/utils → utils}/ErrorEnhancer.ts +0 -0
- /package/src/{core/utils → utils}/Logger.d.ts.map +0 -0
- /package/src/{core/utils → utils}/Logger.ts +0 -0
- /package/src/{cli/utils → utils}/OutputFormatter.ts +0 -0
- /package/src/{core/utils → utils}/RetryManager.ts +0 -0
- /package/src/{core/utils → utils}/TokenCounter.d.ts.map +0 -0
- /package/src/{core/utils → utils}/TokenCounter.ts +0 -0
- /package/src/{core/utils → utils}/VectorMemoryStore.ts +0 -0
- /package/src/{core/utils → utils}/helpers.d.ts.map +0 -0
- /package/src/{core/utils → utils}/helpers.ts +0 -0
- /package/src/{core/utils → utils}/index.d.ts.map +0 -0
- /package/src/{cli/utils → utils}/index.ts +0 -0
package/bin/nova.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// Nova CLI Entry Point
|
|
4
|
-
// Uses tsx to run TypeScript directly
|
|
4
|
+
// Uses tsx to run TypeScript directly
|
|
5
|
+
|
|
6
|
+
import { register } from 'tsx/esm';
|
|
7
|
+
register();
|
|
5
8
|
|
|
6
9
|
import { NovaApp } from '../src/startup/NovaApp.ts';
|
|
7
10
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nova-terminal-assistant",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Nova CLI - Next-generation AI-powered terminal assistant",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"src/",
|
|
12
12
|
"README.md"
|
|
13
13
|
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"start": "node --import tsx bin/nova.js"
|
|
16
|
+
},
|
|
14
17
|
"keywords": [
|
|
15
18
|
"ai",
|
|
16
19
|
"cli",
|
|
@@ -22,7 +25,6 @@
|
|
|
22
25
|
"openai",
|
|
23
26
|
"ollama"
|
|
24
27
|
],
|
|
25
|
-
"author": "Nova CLI Team",
|
|
26
28
|
"license": "MIT",
|
|
27
29
|
"repository": {
|
|
28
30
|
"type": "git",
|
|
@@ -31,6 +33,9 @@
|
|
|
31
33
|
"engines": {
|
|
32
34
|
"node": ">=18.0.0"
|
|
33
35
|
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"tsx": ">=4.0.0"
|
|
38
|
+
},
|
|
34
39
|
"dependencies": {
|
|
35
40
|
"@anthropic-ai/sdk": "^0.25.0",
|
|
36
41
|
"@inquirer/prompts": "^5.3.0",
|
|
@@ -56,12 +61,15 @@
|
|
|
56
61
|
"zod": "^3.22.0"
|
|
57
62
|
},
|
|
58
63
|
"devDependencies": {
|
|
64
|
+
"@types/diff": "^5.0.9",
|
|
65
|
+
"@types/json-schema": "^7.0.15",
|
|
66
|
+
"@types/mime-types": "^2.1.4",
|
|
59
67
|
"@types/node": "^20.11.0",
|
|
60
68
|
"@types/react": "^18.2.0",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
69
|
+
"@types/semver": "^7.5.0",
|
|
70
|
+
"@types/uuid": "^9.0.0",
|
|
71
|
+
"@types/yargs": "^17.0.32",
|
|
72
|
+
"tsx": "^4.7.0",
|
|
73
|
+
"typescript": "^5.3.0"
|
|
66
74
|
}
|
|
67
75
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo } from '
|
|
6
|
+
import type { SessionInfo } from './types/config.js';
|
|
7
7
|
|
|
8
8
|
export interface CommandSuggestion {
|
|
9
9
|
text: string;
|
|
@@ -113,7 +113,7 @@ export class ModelValidator {
|
|
|
113
113
|
|
|
114
114
|
try {
|
|
115
115
|
// Get all providers from config
|
|
116
|
-
const { ConfigManager } = await import('
|
|
116
|
+
const { ConfigManager } = await import('./config/ConfigManager.js');
|
|
117
117
|
const config = ConfigManager.getInstance ? ConfigManager.getInstance() : new ConfigManager();
|
|
118
118
|
const providers = Object.keys(config.getConfig().models.providers);
|
|
119
119
|
} catch (error) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo, NovaConfig } from '
|
|
6
|
+
import type { SessionInfo, NovaConfig } from './types/config.js';
|
|
7
7
|
import { IFlowDropdown } from '../ui/IFlowDropdown.js';
|
|
8
8
|
|
|
9
9
|
export interface IFlowReplOptions {
|
|
@@ -10,18 +10,18 @@ import { spawn, execSync } from 'node:child_process';
|
|
|
10
10
|
import chalk from 'chalk';
|
|
11
11
|
import React from 'react';
|
|
12
12
|
import { render } from 'ink';
|
|
13
|
-
import type { NovaConfig } from '
|
|
14
|
-
import type { SessionId, ApprovalRequest, ApprovalResponse } from '
|
|
15
|
-
import type { McpManager, McpServerStatus } from '
|
|
16
|
-
import type { SkillRegistry, SkillDefinition } from '
|
|
17
|
-
import type { ConfigManager } from '
|
|
18
|
-
import type { AuthManager } from '
|
|
19
|
-
import { AgentLoop } from '
|
|
20
|
-
import { ModelClient } from '
|
|
21
|
-
import { SessionManager } from '
|
|
22
|
-
import { ToolRegistry } from '
|
|
23
|
-
import { ApprovalManager } from '
|
|
24
|
-
import { buildSystemPrompt } from '
|
|
13
|
+
import type { NovaConfig } from './types/config.js';
|
|
14
|
+
import type { SessionId, ApprovalRequest, ApprovalResponse } from './types/session.js';
|
|
15
|
+
import type { McpManager, McpServerStatus } from './mcp/McpManager.js';
|
|
16
|
+
import type { SkillRegistry, SkillDefinition } from './extensions/SkillRegistry.js';
|
|
17
|
+
import type { ConfigManager } from './config/ConfigManager.js';
|
|
18
|
+
import type { AuthManager } from './auth/AuthManager.js';
|
|
19
|
+
import { AgentLoop } from './session/AgentLoop.js';
|
|
20
|
+
import { ModelClient } from './model/ModelClient.js';
|
|
21
|
+
import { SessionManager } from './session/SessionManager.js';
|
|
22
|
+
import { ToolRegistry } from './tools/ToolRegistry.js';
|
|
23
|
+
import { ApprovalManager } from './security/ApprovalManager.js';
|
|
24
|
+
import { buildSystemPrompt } from './context/defaultSystemPrompt.js';
|
|
25
25
|
import { ThinkingBlockRenderer } from '../ui/components/ThinkingBlockRenderer.js';
|
|
26
26
|
import { selectModelInteractive, selectSkillInteractive } from '../ui/SimpleSelector2.js';
|
|
27
27
|
|
|
@@ -10,20 +10,20 @@ import * as path from 'node:path';
|
|
|
10
10
|
import * as os from 'node:os';
|
|
11
11
|
import { execSync, spawn } from 'node:child_process';
|
|
12
12
|
import chalk from 'chalk';
|
|
13
|
-
import type { NovaConfig } from '
|
|
14
|
-
import type { SessionId, ApprovalRequest, ApprovalResponse } from '
|
|
15
|
-
import { AgentLoop } from '
|
|
16
|
-
import { ModelClient } from '
|
|
17
|
-
import { SessionManager } from '
|
|
18
|
-
import { ToolRegistry } from '
|
|
19
|
-
import { ApprovalManager } from '
|
|
20
|
-
import { buildSystemPrompt } from '
|
|
13
|
+
import type { NovaConfig } from './types/config.js';
|
|
14
|
+
import type { SessionId, ApprovalRequest, ApprovalResponse } from './types/session.js';
|
|
15
|
+
import { AgentLoop } from './session/AgentLoop.js';
|
|
16
|
+
import { ModelClient } from './model/ModelClient.js';
|
|
17
|
+
import { SessionManager } from './session/SessionManager.js';
|
|
18
|
+
import { ToolRegistry } from './tools/ToolRegistry.js';
|
|
19
|
+
import { ApprovalManager } from './security/ApprovalManager.js';
|
|
20
|
+
import { buildSystemPrompt } from './context/defaultSystemPrompt.js';
|
|
21
21
|
import { ThinkingBlockRenderer } from '../ui/components/ThinkingBlockRenderer.js';
|
|
22
|
-
import type { McpManager, McpServerStatus } from '
|
|
23
|
-
import type { SkillRegistry, SkillDefinition } from '
|
|
24
|
-
import type { ConfigManager } from '
|
|
25
|
-
import type { AuthManager } from '
|
|
26
|
-
import { OllamaManager } from '
|
|
22
|
+
import type { McpManager, McpServerStatus } from './mcp/McpManager.js';
|
|
23
|
+
import type { SkillRegistry, SkillDefinition } from './extensions/SkillRegistry.js';
|
|
24
|
+
import type { ConfigManager } from './config/ConfigManager.js';
|
|
25
|
+
import type { AuthManager } from './auth/AuthManager.js';
|
|
26
|
+
import { OllamaManager } from './model/providers/OllamaManager.js';
|
|
27
27
|
import { CompletionHelper } from '../utils/CompletionHelper.js';
|
|
28
28
|
import { EnhancedCompleter, type CompletionCandidate } from '../utils/EnhancedCompleter.js';
|
|
29
29
|
|
|
@@ -2212,7 +2212,7 @@ ${((scan.topLevel as string[]) || []).slice(0, 20).join('\n')}
|
|
|
2212
2212
|
}
|
|
2213
2213
|
|
|
2214
2214
|
// Import installer
|
|
2215
|
-
const { SkillInstaller, POPULAR_SKILL_REPOS } = await import('
|
|
2215
|
+
const { SkillInstaller, POPULAR_SKILL_REPOS } = await import('./extensions/SkillInstaller.js');
|
|
2216
2216
|
const installer = new SkillInstaller();
|
|
2217
2217
|
|
|
2218
2218
|
// Resolve shorthand
|
|
@@ -2421,7 +2421,7 @@ ${((scan.topLevel as string[]) || []).slice(0, 20).join('\n')}
|
|
|
2421
2421
|
// ========================================================================
|
|
2422
2422
|
|
|
2423
2423
|
private async handleCheckpointCommand(arg: string): Promise<void> {
|
|
2424
|
-
const { CheckpointManager } = await import('
|
|
2424
|
+
const { CheckpointManager } = await import('./utils/CheckpointManager.js');
|
|
2425
2425
|
const manager = new CheckpointManager(this.cwd, this.config);
|
|
2426
2426
|
|
|
2427
2427
|
const parts = arg.split(/\s+/).filter(Boolean);
|
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import os from 'node:os';
|
|
7
|
-
import { ConfigManager } from '
|
|
8
|
-
import { AuthManager } from '
|
|
9
|
-
import { ToolRegistry } from '
|
|
10
|
-
import { SessionManager } from '
|
|
11
|
-
import type { SessionId } from '
|
|
12
|
-
import type { ModelConfig } from '
|
|
13
|
-
import { AgentLoop } from '
|
|
14
|
-
import { ModelClient } from '
|
|
15
|
-
import { ModelConnectionTester } from '
|
|
16
|
-
import { McpManager } from '
|
|
17
|
-
import { SkillRegistry } from '
|
|
18
|
-
import { SkillInstaller } from '
|
|
19
|
-
import { ContextCompressor } from '
|
|
20
|
-
import { ApprovalManager } from '
|
|
21
|
-
import { HookExecutor } from '
|
|
22
|
-
import { NovaError, getErrorMessage } from '
|
|
7
|
+
import { ConfigManager } from './config/ConfigManager.js';
|
|
8
|
+
import { AuthManager } from './auth/AuthManager.js';
|
|
9
|
+
import { ToolRegistry } from './tools/ToolRegistry.js';
|
|
10
|
+
import { SessionManager } from './session/SessionManager.js';
|
|
11
|
+
import type { SessionId } from './types/session.js';
|
|
12
|
+
import type { ModelConfig } from './types/config.js';
|
|
13
|
+
import { AgentLoop } from './session/AgentLoop.js';
|
|
14
|
+
import { ModelClient } from './model/ModelClient.js';
|
|
15
|
+
import { ModelConnectionTester } from './model/ModelConnectionTester.js';
|
|
16
|
+
import { McpManager } from './mcp/McpManager.js';
|
|
17
|
+
import { SkillRegistry } from './extensions/SkillRegistry.js';
|
|
18
|
+
import { SkillInstaller } from './extensions/SkillInstaller.js';
|
|
19
|
+
import { ContextCompressor } from './context/ContextCompressor.js';
|
|
20
|
+
import { ApprovalManager } from './security/ApprovalManager.js';
|
|
21
|
+
import { HookExecutor } from './security/HookExecutor.js';
|
|
22
|
+
import { NovaError, getErrorMessage } from './types/errors.js';
|
|
23
23
|
import {
|
|
24
24
|
readFileHandler,
|
|
25
25
|
writeFileHandler,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
memoryWriteHandler,
|
|
35
35
|
todoHandler,
|
|
36
36
|
taskHandler,
|
|
37
|
-
} from '
|
|
37
|
+
} from './tools/impl/index.js';
|
|
38
38
|
import {
|
|
39
39
|
readFileSchema,
|
|
40
40
|
writeFileSchema,
|
|
@@ -49,10 +49,10 @@ import {
|
|
|
49
49
|
memoryWriteSchema,
|
|
50
50
|
todoSchema,
|
|
51
51
|
taskSchema,
|
|
52
|
-
} from '
|
|
53
|
-
import type { NovaConfig } from '
|
|
54
|
-
import { OllamaManager } from '
|
|
55
|
-
import { ModelValidator } from '
|
|
52
|
+
} from './tools/schemas/index.js';
|
|
53
|
+
import type { NovaConfig } from './types/config.js';
|
|
54
|
+
import { OllamaManager } from './model/providers/OllamaManager.js';
|
|
55
|
+
import { ModelValidator } from './model/ModelValidator.js';
|
|
56
56
|
import { parseCliArgs } from './parseArgs.js';
|
|
57
57
|
import { InteractiveRepl } from './InteractiveRepl.js';
|
|
58
58
|
import { InkBasedRepl } from './InkBasedRepl.js';
|
|
@@ -564,7 +564,7 @@ export class NovaApp {
|
|
|
564
564
|
streaming: true,
|
|
565
565
|
});
|
|
566
566
|
|
|
567
|
-
const { buildSystemPrompt } = await import('
|
|
567
|
+
const { buildSystemPrompt } = await import('./context/defaultSystemPrompt.js');
|
|
568
568
|
const chalk = await import('chalk');
|
|
569
569
|
const systemPrompt = buildSystemPrompt({
|
|
570
570
|
workingDirectory: cwd,
|
|
@@ -1017,7 +1017,7 @@ export class NovaApp {
|
|
|
1017
1017
|
let defaultModel = args.defaultModel || '';
|
|
1018
1018
|
|
|
1019
1019
|
try {
|
|
1020
|
-
const { OpenAICompatibleProvider } = await import('
|
|
1020
|
+
const { OpenAICompatibleProvider } = await import('./model/providers/OpenAICompatibleProvider.js');
|
|
1021
1021
|
const probe = new (class extends OpenAICompatibleProvider {
|
|
1022
1022
|
constructor() {
|
|
1023
1023
|
super({ apiKey: key, baseUrl, model: 'probe' });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ContextCompressor } from '
|
|
2
|
-
import { LayeredMemoryManager } from '
|
|
3
|
-
import { AgentLoop } from '
|
|
1
|
+
import { ContextCompressor } from './context/ContextCompressor.js';
|
|
2
|
+
import { LayeredMemoryManager } from './context/LayeredMemoryManager.js';
|
|
3
|
+
import { AgentLoop } from './session/AgentLoop.js';
|
|
4
4
|
|
|
5
5
|
console.log('ContextCompressor:', typeof ContextCompressor);
|
|
6
6
|
console.log('LayeredMemoryManager:', typeof LayeredMemoryManager);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo } from '
|
|
6
|
+
import type { SessionInfo } from './types/config.js';
|
|
7
7
|
|
|
8
8
|
export interface DropdownItem {
|
|
9
9
|
id: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo, NovaConfig } from '
|
|
6
|
+
import type { SessionInfo, NovaConfig } from './types/config.js';
|
|
7
7
|
|
|
8
8
|
import { StatusBar } from './components/StatusBar.js';
|
|
9
9
|
import { ProgressIndicator } from './components/ProgressIndicator.js';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
// import type { NovaError } from '
|
|
6
|
+
// import type { NovaError } from '../.././types/errors.js';
|
|
7
7
|
|
|
8
8
|
export interface ErrorPanelOptions {
|
|
9
9
|
showStack?: boolean;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo } from '
|
|
6
|
+
import type { SessionInfo } from '../.././types/config.js';
|
|
7
7
|
|
|
8
8
|
export interface QuickAction {
|
|
9
9
|
key: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import type { SessionInfo, NovaConfig } from '
|
|
6
|
+
import type { SessionInfo, NovaConfig } from '../.././types/config.js';
|
|
7
7
|
|
|
8
8
|
export interface StatusBarOptions {
|
|
9
9
|
showTokens?: boolean;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
6
6
|
import { EnhancedCompleter } from './EnhancedCompleter.js';
|
|
7
|
-
import type { ConfigManager } from '
|
|
7
|
+
import type { ConfigManager } from './config/ConfigManager.js';
|
|
8
8
|
|
|
9
9
|
// Mock ConfigManager
|
|
10
10
|
function createMockConfigManager(): ConfigManager {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import * as fs from 'node:fs';
|
|
7
7
|
import * as path from 'node:path';
|
|
8
|
-
import type { ConfigManager } from '
|
|
8
|
+
import type { ConfigManager } from './config/ConfigManager.js';
|
|
9
9
|
|
|
10
10
|
export interface CompletionCandidate {
|
|
11
11
|
text: string;
|
package/src/core/index.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// ============================================================================
|
|
2
|
-
// @nova-cli/core - Main barrel export
|
|
3
|
-
// ============================================================================
|
|
4
|
-
|
|
5
|
-
// Types
|
|
6
|
-
export * from './types/index.js';
|
|
7
|
-
|
|
8
|
-
// Tools
|
|
9
|
-
export * from './tools/index.js';
|
|
10
|
-
|
|
11
|
-
// Model
|
|
12
|
-
export * from './model/index.js';
|
|
13
|
-
|
|
14
|
-
// Session
|
|
15
|
-
export * from './session/index.js';
|
|
16
|
-
|
|
17
|
-
// Context
|
|
18
|
-
export * from './context/index.js';
|
|
19
|
-
|
|
20
|
-
// Security
|
|
21
|
-
export * from './security/index.js';
|
|
22
|
-
|
|
23
|
-
// MCP
|
|
24
|
-
export * from './mcp/index.js';
|
|
25
|
-
|
|
26
|
-
// Config
|
|
27
|
-
export * from './config/index.js';
|
|
28
|
-
|
|
29
|
-
// Auth
|
|
30
|
-
export * from './auth/index.js';
|
|
31
|
-
|
|
32
|
-
// Telemetry
|
|
33
|
-
export * from './telemetry/index.js';
|
|
34
|
-
|
|
35
|
-
// Utils
|
|
36
|
-
export * from './utils/index.js';
|
|
37
|
-
|
|
38
|
-
// Agents (Multi-agent orchestration)
|
|
39
|
-
export * from './agents/index.js';
|
|
40
|
-
|
|
41
|
-
// Audit (Audit logging)
|
|
42
|
-
export * from './audit/index.js';
|
package/src/core/utils/index.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export { Logger, createLogger } from './Logger.js';
|
|
2
|
-
export type { LogEntry } from './Logger.js';
|
|
3
|
-
export { CheckpointManager } from './CheckpointManager.js';
|
|
4
|
-
export type { Checkpoint, CheckpointFile, CheckpointStats } from './CheckpointManager.js';
|
|
5
|
-
export { generateId, sleep, retry, truncate, formatBytes, formatDuration, deepClone, debounce, clamp } from './helpers.js';
|
|
6
|
-
export { TokenCounter, tokenCounter, countTokens, countMessagesTokens } from './TokenCounter.js';
|
|
7
|
-
export {
|
|
8
|
-
withRetry,
|
|
9
|
-
createRetryWrapper,
|
|
10
|
-
RateLimiter,
|
|
11
|
-
withRateLimit,
|
|
12
|
-
ConcurrencyLimiter,
|
|
13
|
-
createResilientFunction,
|
|
14
|
-
createDefaultApiRateLimiter,
|
|
15
|
-
createDefaultConcurrencyLimiter,
|
|
16
|
-
} from './RetryManager.js';
|
|
17
|
-
export type { RetryConfig, RateLimiterConfig } from './RetryManager.js';
|
|
18
|
-
export { VectorMemoryStore, createVectorMemoryStore } from './VectorMemoryStore.js';
|
|
19
|
-
export type { VectorMemoryEntry, MemoryMatch, VectorMemoryConfig } from './VectorMemoryStore.js';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|