@autonav/core 1.6.0 → 1.7.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/README.md +2 -2
- package/dist/adapter/index.d.ts +3 -3
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/adapter/index.js +3 -3
- package/dist/adapter/index.js.map +1 -1
- package/dist/adapter/navigator-adapter.d.ts +196 -0
- package/dist/adapter/navigator-adapter.d.ts.map +1 -0
- package/dist/adapter/navigator-adapter.js +579 -0
- package/dist/adapter/navigator-adapter.js.map +1 -0
- package/dist/cli/autonav.d.ts +2 -6
- package/dist/cli/autonav.d.ts.map +1 -1
- package/dist/cli/autonav.js +32 -53
- package/dist/cli/autonav.js.map +1 -1
- package/dist/cli/nav-chat.d.ts +2 -1
- package/dist/cli/nav-chat.d.ts.map +1 -1
- package/dist/cli/nav-chat.js +32 -3
- package/dist/cli/nav-chat.js.map +1 -1
- package/dist/cli/nav-init.d.ts +2 -1
- package/dist/cli/nav-init.d.ts.map +1 -1
- package/dist/cli/nav-init.js +12 -4
- package/dist/cli/nav-init.js.map +1 -1
- package/dist/cli/nav-install.d.ts +2 -1
- package/dist/cli/nav-install.d.ts.map +1 -1
- package/dist/cli/nav-install.js +4 -2
- package/dist/cli/nav-install.js.map +1 -1
- package/dist/cli/nav-memento.d.ts +3 -2
- package/dist/cli/nav-memento.d.ts.map +1 -1
- package/dist/cli/nav-memento.js +12 -6
- package/dist/cli/nav-memento.js.map +1 -1
- package/dist/cli/nav-mend.d.ts +2 -1
- package/dist/cli/nav-mend.d.ts.map +1 -1
- package/dist/cli/nav-mend.js +4 -1
- package/dist/cli/nav-mend.js.map +1 -1
- package/dist/cli/nav-migrate.d.ts +2 -1
- package/dist/cli/nav-migrate.d.ts.map +1 -1
- package/dist/cli/nav-migrate.js +2 -6
- package/dist/cli/nav-migrate.js.map +1 -1
- package/dist/cli/nav-query.d.ts +2 -1
- package/dist/cli/nav-query.d.ts.map +1 -1
- package/dist/cli/nav-query.js +12 -6
- package/dist/cli/nav-query.js.map +1 -1
- package/dist/cli/nav-standup.d.ts +18 -0
- package/dist/cli/nav-standup.d.ts.map +1 -0
- package/dist/cli/nav-standup.js +151 -0
- package/dist/cli/nav-standup.js.map +1 -0
- package/dist/cli/nav-uninstall.d.ts +2 -1
- package/dist/cli/nav-uninstall.d.ts.map +1 -1
- package/dist/cli/nav-uninstall.js +4 -2
- package/dist/cli/nav-uninstall.js.map +1 -1
- package/dist/cli/nav-update.d.ts +2 -1
- package/dist/cli/nav-update.d.ts.map +1 -1
- package/dist/cli/nav-update.js +11 -6
- package/dist/cli/nav-update.js.map +1 -1
- package/dist/conversation/App.d.ts +9 -2
- package/dist/conversation/App.d.ts.map +1 -1
- package/dist/conversation/App.js +304 -111
- package/dist/conversation/App.js.map +1 -1
- package/dist/conversation/index.d.ts +5 -0
- package/dist/conversation/index.d.ts.map +1 -1
- package/dist/conversation/index.js +17 -2
- package/dist/conversation/index.js.map +1 -1
- package/dist/harness/chibi-harness.d.ts +36 -0
- package/dist/harness/chibi-harness.d.ts.map +1 -0
- package/dist/harness/chibi-harness.js +383 -0
- package/dist/harness/chibi-harness.js.map +1 -0
- package/dist/harness/chibi-plugins/get_plugin_config +64 -0
- package/dist/harness/chibi-plugins/query_navigator +114 -0
- package/dist/harness/chibi-plugins/submit_answer +38 -0
- package/dist/harness/chibi-plugins/update_plugin_config +91 -0
- package/dist/harness/claude-code-harness.d.ts +24 -0
- package/dist/harness/claude-code-harness.d.ts.map +1 -0
- package/dist/harness/claude-code-harness.js +242 -0
- package/dist/harness/claude-code-harness.js.map +1 -0
- package/dist/harness/ephemeral-home.d.ts +34 -0
- package/dist/harness/ephemeral-home.d.ts.map +1 -0
- package/dist/harness/ephemeral-home.js +56 -0
- package/dist/harness/ephemeral-home.js.map +1 -0
- package/dist/harness/factory.d.ts +47 -0
- package/dist/harness/factory.d.ts.map +1 -0
- package/dist/harness/factory.js +84 -0
- package/dist/harness/factory.js.map +1 -0
- package/dist/harness/helpers.d.ts +58 -0
- package/dist/harness/helpers.d.ts.map +1 -0
- package/dist/harness/helpers.js +78 -0
- package/dist/harness/helpers.js.map +1 -0
- package/dist/harness/index.d.ts +14 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +13 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/opencode-harness.d.ts +79 -0
- package/dist/harness/opencode-harness.d.ts.map +1 -0
- package/dist/harness/opencode-harness.js +537 -0
- package/dist/harness/opencode-harness.js.map +1 -0
- package/dist/harness/opencode-tools/get_plugin_config.ts +72 -0
- package/dist/harness/opencode-tools/query_navigator.ts +126 -0
- package/dist/harness/opencode-tools/submit_answer.ts +40 -0
- package/dist/harness/opencode-tools/update_plugin_config.ts +105 -0
- package/dist/harness/sandbox.d.ts +59 -0
- package/dist/harness/sandbox.d.ts.map +1 -0
- package/dist/harness/sandbox.js +152 -0
- package/dist/harness/sandbox.js.map +1 -0
- package/dist/harness/tool-server.d.ts +50 -0
- package/dist/harness/tool-server.d.ts.map +1 -0
- package/dist/harness/tool-server.js +27 -0
- package/dist/harness/tool-server.js.map +1 -0
- package/dist/harness/types.d.ts +168 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +12 -0
- package/dist/harness/types.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/interview/App.d.ts +4 -2
- package/dist/interview/App.d.ts.map +1 -1
- package/dist/interview/App.js +36 -56
- package/dist/interview/App.js.map +1 -1
- package/dist/interview/index.d.ts +3 -0
- package/dist/interview/index.d.ts.map +1 -1
- package/dist/interview/index.js +1 -0
- package/dist/interview/index.js.map +1 -1
- package/dist/interview/prompts.d.ts +3 -1
- package/dist/interview/prompts.d.ts.map +1 -1
- package/dist/interview/prompts.js +5 -1
- package/dist/interview/prompts.js.map +1 -1
- package/dist/interview/ui/ChatBanner.d.ts +17 -0
- package/dist/interview/ui/ChatBanner.d.ts.map +1 -0
- package/dist/interview/ui/ChatBanner.js +30 -0
- package/dist/interview/ui/ChatBanner.js.map +1 -0
- package/dist/interview/ui/ChatInput.d.ts +36 -0
- package/dist/interview/ui/ChatInput.d.ts.map +1 -0
- package/dist/interview/ui/ChatInput.js +304 -0
- package/dist/interview/ui/ChatInput.js.map +1 -0
- package/dist/interview/ui/MarkdownText.d.ts +13 -0
- package/dist/interview/ui/MarkdownText.d.ts.map +1 -0
- package/dist/interview/ui/MarkdownText.js +107 -0
- package/dist/interview/ui/MarkdownText.js.map +1 -0
- package/dist/interview/ui/index.d.ts +3 -0
- package/dist/interview/ui/index.d.ts.map +1 -1
- package/dist/interview/ui/index.js +3 -0
- package/dist/interview/ui/index.js.map +1 -1
- package/dist/memento/implementer-agent.d.ts +31 -0
- package/dist/memento/implementer-agent.d.ts.map +1 -0
- package/dist/memento/implementer-agent.js +95 -0
- package/dist/memento/implementer-agent.js.map +1 -0
- package/dist/memento/index.d.ts +6 -5
- package/dist/memento/index.d.ts.map +1 -1
- package/dist/memento/index.js +7 -5
- package/dist/memento/index.js.map +1 -1
- package/dist/memento/loop.d.ts +6 -5
- package/dist/memento/loop.d.ts.map +1 -1
- package/dist/memento/loop.js +872 -180
- package/dist/memento/loop.js.map +1 -1
- package/dist/memento/matrix-animation.d.ts +26 -0
- package/dist/memento/matrix-animation.d.ts.map +1 -1
- package/dist/memento/matrix-animation.js +93 -18
- package/dist/memento/matrix-animation.js.map +1 -1
- package/dist/memento/nav-protocol.d.ts +2 -2
- package/dist/memento/nav-protocol.d.ts.map +1 -1
- package/dist/memento/nav-protocol.js +39 -43
- package/dist/memento/nav-protocol.js.map +1 -1
- package/dist/memento/prompts.d.ts +21 -8
- package/dist/memento/prompts.d.ts.map +1 -1
- package/dist/memento/prompts.js +79 -39
- package/dist/memento/prompts.js.map +1 -1
- package/dist/memento/rate-limit.d.ts +85 -0
- package/dist/memento/rate-limit.d.ts.map +1 -0
- package/dist/memento/rate-limit.js +221 -0
- package/dist/memento/rate-limit.js.map +1 -0
- package/dist/memento/types.d.ts +6 -6
- package/dist/memento/types.d.ts.map +1 -1
- package/dist/memento/types.js +3 -3
- package/dist/memento/worker-agent.d.ts +4 -1
- package/dist/memento/worker-agent.d.ts.map +1 -1
- package/dist/memento/worker-agent.js +38 -54
- package/dist/memento/worker-agent.js.map +1 -1
- package/dist/registry.d.ts +35 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +87 -0
- package/dist/registry.js.map +1 -0
- package/dist/repo-analyzer/index.d.ts +2 -1
- package/dist/repo-analyzer/index.d.ts.map +1 -1
- package/dist/repo-analyzer/index.js +6 -17
- package/dist/repo-analyzer/index.js.map +1 -1
- package/dist/skill-generator/index.d.ts +142 -0
- package/dist/skill-generator/index.d.ts.map +1 -0
- package/dist/skill-generator/index.js +510 -0
- package/dist/skill-generator/index.js.map +1 -0
- package/dist/standup/config.d.ts +19 -0
- package/dist/standup/config.d.ts.map +1 -0
- package/dist/standup/config.js +42 -0
- package/dist/standup/config.js.map +1 -0
- package/dist/standup/index.d.ts +24 -0
- package/dist/standup/index.d.ts.map +1 -0
- package/dist/standup/index.js +29 -0
- package/dist/standup/index.js.map +1 -0
- package/dist/standup/loop.d.ts +36 -0
- package/dist/standup/loop.d.ts.map +1 -0
- package/dist/standup/loop.js +508 -0
- package/dist/standup/loop.js.map +1 -0
- package/dist/standup/prompts.d.ts +62 -0
- package/dist/standup/prompts.d.ts.map +1 -0
- package/dist/standup/prompts.js +211 -0
- package/dist/standup/prompts.js.map +1 -0
- package/dist/standup/standup-protocol.d.ts +33 -0
- package/dist/standup/standup-protocol.d.ts.map +1 -0
- package/dist/standup/standup-protocol.js +189 -0
- package/dist/standup/standup-protocol.js.map +1 -0
- package/dist/standup/types.d.ts +185 -0
- package/dist/standup/types.d.ts.map +1 -0
- package/dist/standup/types.js +67 -0
- package/dist/standup/types.js.map +1 -0
- package/dist/templates/.gitignore.template +26 -0
- package/dist/templates/CLAUDE-pack.md.template +114 -0
- package/dist/templates/CLAUDE.md.template +153 -0
- package/dist/templates/README.md.template +174 -0
- package/dist/templates/config-pack.json.template +16 -0
- package/dist/templates/config.json.template +11 -0
- package/dist/templates/index.d.ts +22 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +32 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/plugins.json.template +33 -0
- package/dist/templates/system-configuration.md.template +70 -0
- package/dist/tools/cross-nav.d.ts +21 -0
- package/dist/tools/cross-nav.d.ts.map +1 -0
- package/dist/tools/cross-nav.js +93 -0
- package/dist/tools/cross-nav.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/related-navs-config.d.ts +15 -0
- package/dist/tools/related-navs-config.d.ts.map +1 -0
- package/dist/tools/related-navs-config.js +132 -0
- package/dist/tools/related-navs-config.js.map +1 -0
- package/dist/tools/related-navs.d.ts +23 -0
- package/dist/tools/related-navs.d.ts.map +1 -0
- package/dist/tools/related-navs.js +107 -0
- package/dist/tools/related-navs.js.map +1 -0
- package/dist/tools/response.d.ts +3 -2
- package/dist/tools/response.d.ts.map +1 -1
- package/dist/tools/response.js +7 -11
- package/dist/tools/response.js.map +1 -1
- package/dist/tools/self-config.d.ts +2 -1
- package/dist/tools/self-config.d.ts.map +1 -1
- package/dist/tools/self-config.js +5 -9
- package/dist/tools/self-config.js.map +1 -1
- package/package.json +4 -1
- package/dist/memento/state.d.ts +0 -56
- package/dist/memento/state.d.ts.map +0 -1
- package/dist/memento/state.js +0 -156
- package/dist/memento/state.js.map +0 -1
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.d.ts +0 -18
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.d.ts.map +0 -1
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.js +0 -207
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.js.map +0 -1
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { NavigatorConfigSchema, NavigatorResponseSchema, createAnswerQuestionPrompt, validateResponse, SELF_CONFIG_RULES, scoreToConfidence, } from "@autonav/communication-layer";
|
|
4
|
+
import { createPluginManager, PluginConfigFileSchema } from "../plugins/index.js";
|
|
5
|
+
import { sanitizeError } from "../plugins/utils/security.js";
|
|
6
|
+
import { createSelfConfigMcpServer, createResponseMcpServer, createCrossNavMcpServer, SUBMIT_ANSWER_TOOL } from "../tools/index.js";
|
|
7
|
+
import { createRelatedNavsMcpServer } from "../tools/related-navs.js";
|
|
8
|
+
import { createRelatedNavsConfigServer } from "../tools/related-navs-config.js";
|
|
9
|
+
import { ClaudeCodeHarness } from "../harness/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Optional LangSmith integration for tracing Claude Agent SDK calls
|
|
12
|
+
*/
|
|
13
|
+
let langsmithTraceable = null;
|
|
14
|
+
let langsmithInitialized = false;
|
|
15
|
+
/**
|
|
16
|
+
* Lazily initialize LangSmith tracing if enabled via environment variables
|
|
17
|
+
*/
|
|
18
|
+
async function initializeLangSmith() {
|
|
19
|
+
if (langsmithInitialized) {
|
|
20
|
+
return !!langsmithTraceable;
|
|
21
|
+
}
|
|
22
|
+
langsmithInitialized = true;
|
|
23
|
+
// Check if LangSmith tracing is enabled via environment variable
|
|
24
|
+
const tracingEnabled = process.env.LANGSMITH_TRACING === "true";
|
|
25
|
+
const hasApiKey = !!process.env.LANGSMITH_API_KEY;
|
|
26
|
+
if (!tracingEnabled || !hasApiKey) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
// Dynamically import langsmith (optional peer dependency)
|
|
31
|
+
// Using dynamic import with string to avoid TypeScript compile-time resolution
|
|
32
|
+
const moduleName = "langsmith/traceable";
|
|
33
|
+
const langsmith = await import(moduleName);
|
|
34
|
+
langsmithTraceable = langsmith.traceable;
|
|
35
|
+
console.log("✅ LangSmith tracing enabled");
|
|
36
|
+
if (process.env.LANGSMITH_PROJECT) {
|
|
37
|
+
console.log(` Project: ${process.env.LANGSMITH_PROJECT}`);
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
// langsmith not installed or import failed - continue without tracing
|
|
43
|
+
console.warn("⚠️ LangSmith tracing requested but langsmith package not found.");
|
|
44
|
+
console.warn(" Install with: npm install langsmith");
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Navigator Adapter
|
|
50
|
+
*
|
|
51
|
+
* Bridges Claude Agent SDK to the Communication Layer protocol.
|
|
52
|
+
* Loads navigators, executes queries, and validates responses.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const adapter = new NavigatorAdapter({
|
|
57
|
+
* model: 'claude-sonnet-4-5'
|
|
58
|
+
* });
|
|
59
|
+
*
|
|
60
|
+
* const navigator = adapter.loadNavigator('./my-navigator');
|
|
61
|
+
* const response = await adapter.query(navigator, 'How do I deploy?');
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export class NavigatorAdapter {
|
|
65
|
+
options;
|
|
66
|
+
harness;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new Navigator Adapter
|
|
69
|
+
*
|
|
70
|
+
* @param options - Configuration options
|
|
71
|
+
*/
|
|
72
|
+
constructor(options = {}) {
|
|
73
|
+
this.options = {
|
|
74
|
+
// Only set model if explicitly provided — let the harness use its own default otherwise.
|
|
75
|
+
// ClaudeCodeHarness defaults to claude-sonnet-4-5; chibi defaults to free models.
|
|
76
|
+
model: options.model || (options.harness ? undefined : "claude-sonnet-4-5"),
|
|
77
|
+
maxTurns: options.maxTurns ?? 50, // Default: 50 turns max (prevents runaway execution)
|
|
78
|
+
};
|
|
79
|
+
this.harness = options.harness ?? new ClaudeCodeHarness();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Load a navigator from a directory
|
|
83
|
+
*
|
|
84
|
+
* Reads and validates config.json and CLAUDE.md (or custom instructions file).
|
|
85
|
+
* Verifies that the knowledge base directory exists.
|
|
86
|
+
* If .claude/plugins.json exists, initializes configured plugins.
|
|
87
|
+
*
|
|
88
|
+
* @param navigatorPath - Path to the navigator directory
|
|
89
|
+
* @returns Loaded navigator with config, system prompt, paths, and optional plugin manager
|
|
90
|
+
* @throws {Error} If directory doesn't exist, config is invalid, or required files are missing
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const adapter = new NavigatorAdapter();
|
|
95
|
+
* const navigator = await adapter.loadNavigator('./my-navigator');
|
|
96
|
+
* console.log(`Loaded: ${navigator.config.name}`);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
async loadNavigator(navigatorPath) {
|
|
100
|
+
const configPath = path.join(navigatorPath, "config.json");
|
|
101
|
+
// Validate directory exists
|
|
102
|
+
if (!fs.existsSync(navigatorPath)) {
|
|
103
|
+
throw new Error(`Navigator directory not found: ${navigatorPath}\n` +
|
|
104
|
+
`Make sure the path is correct and the navigator exists.`);
|
|
105
|
+
}
|
|
106
|
+
// Verify it's a directory
|
|
107
|
+
const pathStats = fs.statSync(navigatorPath);
|
|
108
|
+
if (!pathStats.isDirectory()) {
|
|
109
|
+
throw new Error(`Path is not a directory: ${navigatorPath}\n` +
|
|
110
|
+
`Navigator path must point to a directory containing config.json`);
|
|
111
|
+
}
|
|
112
|
+
// Load and validate config.json
|
|
113
|
+
if (!fs.existsSync(configPath)) {
|
|
114
|
+
throw new Error(`config.json not found in ${navigatorPath}\n` +
|
|
115
|
+
`Expected file: ${configPath}\n` +
|
|
116
|
+
`Use 'autonav init' to create a new navigator with the required structure.`);
|
|
117
|
+
}
|
|
118
|
+
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
119
|
+
let config;
|
|
120
|
+
try {
|
|
121
|
+
const configJson = JSON.parse(configContent);
|
|
122
|
+
config = NavigatorConfigSchema.parse(configJson);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
throw new Error(`Invalid config.json in ${navigatorPath}:\n` +
|
|
126
|
+
`${error instanceof Error ? error.message : String(error)}\n\n` +
|
|
127
|
+
`Config file must match the NavigatorConfig schema.`);
|
|
128
|
+
}
|
|
129
|
+
// Load instructions file (CLAUDE.md or custom)
|
|
130
|
+
const instructionsFile = config.instructionsPath || "CLAUDE.md";
|
|
131
|
+
const actualInstructionsPath = path.join(navigatorPath, instructionsFile);
|
|
132
|
+
if (!fs.existsSync(actualInstructionsPath)) {
|
|
133
|
+
throw new Error(`Instructions file not found: ${instructionsFile}\n` +
|
|
134
|
+
`Expected path: ${actualInstructionsPath}\n` +
|
|
135
|
+
`Create a ${instructionsFile} file with the navigator's system prompt.`);
|
|
136
|
+
}
|
|
137
|
+
const systemPrompt = fs.readFileSync(actualInstructionsPath, "utf-8");
|
|
138
|
+
// Validate knowledge base exists
|
|
139
|
+
const knowledgeBasePath = path.join(navigatorPath, config.knowledgeBasePath);
|
|
140
|
+
if (!fs.existsSync(knowledgeBasePath)) {
|
|
141
|
+
throw new Error(`Knowledge base directory not found: ${config.knowledgeBasePath}\n` +
|
|
142
|
+
`Expected path: ${knowledgeBasePath}\n` +
|
|
143
|
+
`Create the directory and add documentation files for the navigator to search.`);
|
|
144
|
+
}
|
|
145
|
+
// Verify knowledge base is a directory
|
|
146
|
+
const kbStats = fs.statSync(knowledgeBasePath);
|
|
147
|
+
if (!kbStats.isDirectory()) {
|
|
148
|
+
throw new Error(`Knowledge base path is not a directory: ${config.knowledgeBasePath}\n` +
|
|
149
|
+
`The knowledge base must be a directory containing documentation files.`);
|
|
150
|
+
}
|
|
151
|
+
// Load and initialize plugins if .claude/plugins.json exists
|
|
152
|
+
let pluginManager;
|
|
153
|
+
const pluginsConfigPath = path.join(navigatorPath, ".claude", "plugins.json");
|
|
154
|
+
if (fs.existsSync(pluginsConfigPath)) {
|
|
155
|
+
try {
|
|
156
|
+
const pluginsConfigContent = fs.readFileSync(pluginsConfigPath, "utf-8");
|
|
157
|
+
const pluginsConfig = PluginConfigFileSchema.parse(JSON.parse(pluginsConfigContent));
|
|
158
|
+
// Create plugin manager
|
|
159
|
+
pluginManager = createPluginManager(pluginsConfigPath);
|
|
160
|
+
// Actually initialize the plugins
|
|
161
|
+
await pluginManager.loadPlugins(pluginsConfig);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
// Sanitize error to prevent credential leakage in logs
|
|
165
|
+
const safeMessage = sanitizeError(error instanceof Error ? error.message : String(error));
|
|
166
|
+
console.warn(`⚠️ Failed to load plugins: ${safeMessage}`);
|
|
167
|
+
console.warn(" Continuing without plugins...");
|
|
168
|
+
// Continue without plugins (fail-safe)
|
|
169
|
+
pluginManager = undefined;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
config,
|
|
174
|
+
systemPrompt,
|
|
175
|
+
navigatorPath,
|
|
176
|
+
knowledgeBasePath,
|
|
177
|
+
pluginManager,
|
|
178
|
+
pluginsConfigPath,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Execute a query using Claude Agent SDK
|
|
183
|
+
*
|
|
184
|
+
* Sends the question to Claude with the navigator's system prompt,
|
|
185
|
+
* handles tool use via the built-in agentic loop, parses the response,
|
|
186
|
+
* and validates it against the knowledge base.
|
|
187
|
+
*
|
|
188
|
+
* @param navigator - Loaded navigator to query
|
|
189
|
+
* @param question - Question to ask
|
|
190
|
+
* @param options - Query options (enableSelfConfig, maxTurns)
|
|
191
|
+
* @returns Validated navigator response with answer and sources
|
|
192
|
+
* @throws {Error} If API call fails, response parsing fails, or validation fails
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const response = await adapter.query(navigator, 'How do I deploy?');
|
|
197
|
+
* console.log(response.answer);
|
|
198
|
+
* console.log(`Confidence: ${response.confidence}`);
|
|
199
|
+
* console.log(`Sources: ${response.sources.map(s => s.filePath).join(', ')}`);
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
async query(navigator, question, options = {}) {
|
|
203
|
+
// Initialize LangSmith if needed
|
|
204
|
+
const tracingEnabled = await initializeLangSmith();
|
|
205
|
+
// Wrap the query execution with LangSmith tracing if enabled
|
|
206
|
+
if (tracingEnabled && langsmithTraceable) {
|
|
207
|
+
const tracedQuery = langsmithTraceable(this.executeQuery.bind(this), {
|
|
208
|
+
name: "autonav_query",
|
|
209
|
+
run_type: "chain",
|
|
210
|
+
metadata: {
|
|
211
|
+
navigator: navigator.config.name,
|
|
212
|
+
model: this.options.model,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
return tracedQuery(navigator, question, options);
|
|
216
|
+
}
|
|
217
|
+
// Execute query without tracing
|
|
218
|
+
return this.executeQuery(navigator, question, options);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Internal method to execute the query
|
|
222
|
+
* Separated to allow for LangSmith tracing wrapper
|
|
223
|
+
*
|
|
224
|
+
* @internal
|
|
225
|
+
*/
|
|
226
|
+
async executeQuery(navigator, question, options = {}) {
|
|
227
|
+
const { enableSelfConfig = true, maxTurns = this.options.maxTurns, // undefined = no limit
|
|
228
|
+
} = options;
|
|
229
|
+
// Validate inputs
|
|
230
|
+
if (!question || question.trim().length === 0) {
|
|
231
|
+
throw new Error('Question cannot be empty');
|
|
232
|
+
}
|
|
233
|
+
// Create the prompt with Agent Identity Protocol
|
|
234
|
+
const prompt = createAnswerQuestionPrompt(question, navigator.config.description
|
|
235
|
+
? {
|
|
236
|
+
name: navigator.config.name,
|
|
237
|
+
description: navigator.config.description,
|
|
238
|
+
}
|
|
239
|
+
: undefined);
|
|
240
|
+
// Build system prompt with self-config rules if enabled
|
|
241
|
+
let systemPrompt = navigator.systemPrompt;
|
|
242
|
+
if (enableSelfConfig && !systemPrompt.includes("Self-Configuration Capabilities")) {
|
|
243
|
+
systemPrompt = `${navigator.systemPrompt}\n\n${SELF_CONFIG_RULES}`;
|
|
244
|
+
}
|
|
245
|
+
// Set up MCP servers
|
|
246
|
+
const mcpServers = {};
|
|
247
|
+
// Always add response tools for structured output
|
|
248
|
+
mcpServers["autonav-response"] = createResponseMcpServer(this.harness);
|
|
249
|
+
// Add self-config tools if enabled
|
|
250
|
+
if (enableSelfConfig && navigator.pluginsConfigPath) {
|
|
251
|
+
mcpServers["autonav-self-config"] = createSelfConfigMcpServer(navigator.pluginManager, navigator.pluginsConfigPath, this.harness);
|
|
252
|
+
}
|
|
253
|
+
// Add cross-nav query tool so this agent can ask other navigators
|
|
254
|
+
const crossNavMcp = createCrossNavMcpServer(this.harness);
|
|
255
|
+
mcpServers["autonav-cross-nav"] = crossNavMcp.server;
|
|
256
|
+
// Add per-navigator tools for related navigators (ask_<name>)
|
|
257
|
+
if (navigator.config.relatedNavigators && navigator.config.relatedNavigators.length > 0) {
|
|
258
|
+
const relatedNavsMcp = createRelatedNavsMcpServer(this.harness, navigator.config.relatedNavigators);
|
|
259
|
+
if (relatedNavsMcp) {
|
|
260
|
+
mcpServers["autonav-related-navs"] = relatedNavsMcp.server;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Add self-config tools for managing related navigators
|
|
264
|
+
const relatedNavsConfigMcp = createRelatedNavsConfigServer(navigator.navigatorPath, this.harness);
|
|
265
|
+
mcpServers["autonav-related-navs-config"] = relatedNavsConfigMcp.server;
|
|
266
|
+
// Debug logging
|
|
267
|
+
const debug = process.env.AUTONAV_DEBUG === "1";
|
|
268
|
+
if (debug) {
|
|
269
|
+
console.error("\n[DEBUG] Query execution starting");
|
|
270
|
+
console.error(`[DEBUG] Model: ${this.options.model}`);
|
|
271
|
+
console.error(`[DEBUG] Max turns: ${maxTurns ?? 'unlimited (timeout only)'}`);
|
|
272
|
+
console.error(`[DEBUG] MCP servers registered: ${Object.keys(mcpServers).join(", ")}`);
|
|
273
|
+
console.error(`[DEBUG] System prompt length: ${systemPrompt.length} chars`);
|
|
274
|
+
}
|
|
275
|
+
// Per-nav sandbox: query defaults to enabled unless explicitly disabled
|
|
276
|
+
const querySandboxEnabled = navigator.config.sandbox?.query?.enabled !== false;
|
|
277
|
+
const navAllowedTools = navigator.config.sandbox?.allowedTools;
|
|
278
|
+
// Query is read-only: block write tools. navAllowedTools can override
|
|
279
|
+
// (e.g., a navigator that explicitly needs Write access for queries).
|
|
280
|
+
const queryDisallowed = ["Write", "Edit", "NotebookEdit"].filter((t) => !navAllowedTools?.includes(t));
|
|
281
|
+
const session = this.harness.run({
|
|
282
|
+
model: this.options.model,
|
|
283
|
+
maxTurns,
|
|
284
|
+
systemPrompt,
|
|
285
|
+
cwd: navigator.navigatorPath,
|
|
286
|
+
mcpServers: Object.keys(mcpServers).length > 0 ? mcpServers : undefined,
|
|
287
|
+
permissionMode: "bypassPermissions",
|
|
288
|
+
stderr: debug ? (data) => process.stderr.write(`[harness] ${data}`) : undefined,
|
|
289
|
+
disallowedTools: queryDisallowed,
|
|
290
|
+
...(querySandboxEnabled ? {
|
|
291
|
+
sandbox: {
|
|
292
|
+
readPaths: [navigator.navigatorPath],
|
|
293
|
+
},
|
|
294
|
+
} : {}),
|
|
295
|
+
}, prompt);
|
|
296
|
+
try {
|
|
297
|
+
// Collect events and find the result
|
|
298
|
+
let lastAssistantText = "";
|
|
299
|
+
let submitAnswerInput;
|
|
300
|
+
let toolUseCount = 0;
|
|
301
|
+
let submitAnswerToolIndex;
|
|
302
|
+
let resultEvent;
|
|
303
|
+
for await (const event of session) {
|
|
304
|
+
if (event.type === "tool_use") {
|
|
305
|
+
toolUseCount++;
|
|
306
|
+
if (debug) {
|
|
307
|
+
console.error(`[DEBUG] Tool called: ${event.name}`);
|
|
308
|
+
}
|
|
309
|
+
// Check if this is the submit_answer tool
|
|
310
|
+
// Note: MCP SDK prefixes tool names with server name: "mcp__autonav-response__submit_answer"
|
|
311
|
+
if (event.name === SUBMIT_ANSWER_TOOL || event.name.endsWith(`__${SUBMIT_ANSWER_TOOL}`)) {
|
|
312
|
+
submitAnswerInput = event.input;
|
|
313
|
+
submitAnswerToolIndex = toolUseCount;
|
|
314
|
+
if (debug) {
|
|
315
|
+
console.error(`[DEBUG] submit_answer tool called successfully!`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else if (event.type === "error") {
|
|
320
|
+
if (debug) {
|
|
321
|
+
console.error(`[DEBUG] Error: ${event.message}`);
|
|
322
|
+
}
|
|
323
|
+
// Capture error message so it surfaces in the result
|
|
324
|
+
lastAssistantText = event.message;
|
|
325
|
+
}
|
|
326
|
+
else if (event.type === "text") {
|
|
327
|
+
lastAssistantText = event.text;
|
|
328
|
+
if (debug) {
|
|
329
|
+
console.error(`[DEBUG] Text response: ${event.text.substring(0, 100)}...`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else if (event.type === "result") {
|
|
333
|
+
resultEvent = event;
|
|
334
|
+
if (debug) {
|
|
335
|
+
console.error(`\n[DEBUG] Result: ${event.success ? "success" : "error"}`);
|
|
336
|
+
console.error(`[DEBUG] Total turns: ${event.numTurns ?? "unknown"}`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
// Log execution metrics (controlled by AUTONAV_METRICS or AUTONAV_DEBUG)
|
|
341
|
+
const showMetrics = process.env.AUTONAV_METRICS === "1" || debug;
|
|
342
|
+
if (showMetrics && resultEvent) {
|
|
343
|
+
const totalTurns = resultEvent.numTurns ?? toolUseCount;
|
|
344
|
+
console.error(`\n[METRICS] Query completed`);
|
|
345
|
+
console.error(`[METRICS] Total turns: ${totalTurns}`);
|
|
346
|
+
// Track tool calls after submit_answer (diagnostic for termination behavior)
|
|
347
|
+
if (submitAnswerToolIndex !== undefined) {
|
|
348
|
+
const toolsAfterSubmit = toolUseCount - submitAnswerToolIndex;
|
|
349
|
+
console.error(`[METRICS] submit_answer called at tool call: ${submitAnswerToolIndex}`);
|
|
350
|
+
console.error(`[METRICS] Tool calls after submit_answer: ${toolsAfterSubmit}`);
|
|
351
|
+
if (toolsAfterSubmit > 3) {
|
|
352
|
+
console.error(`[METRICS] ⚠️ Claude continued for ${toolsAfterSubmit} tool calls after submit_answer`);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
if (resultEvent.durationMs) {
|
|
356
|
+
console.error(`[METRICS] Duration: ${resultEvent.durationMs}ms`);
|
|
357
|
+
}
|
|
358
|
+
if (resultEvent.durationApiMs) {
|
|
359
|
+
console.error(`[METRICS] API duration: ${resultEvent.durationApiMs}ms`);
|
|
360
|
+
}
|
|
361
|
+
if (resultEvent.costUsd !== undefined) {
|
|
362
|
+
console.error(`[METRICS] Cost: $${resultEvent.costUsd.toFixed(4)}`);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// Check for errors
|
|
366
|
+
if (!resultEvent) {
|
|
367
|
+
throw new Error("No result received from agent");
|
|
368
|
+
}
|
|
369
|
+
if (!resultEvent.success) {
|
|
370
|
+
throw new Error(`Query failed: ${resultEvent.text || "Unknown error"}`);
|
|
371
|
+
}
|
|
372
|
+
// Build the navigator response
|
|
373
|
+
let navigatorResponse;
|
|
374
|
+
if (submitAnswerInput) {
|
|
375
|
+
// Normalize confidence: accept enum strings ("high"), numeric strings ("0.9"), or numbers (0.9)
|
|
376
|
+
const rawConf = submitAnswerInput.confidence;
|
|
377
|
+
let confidence;
|
|
378
|
+
if (rawConf === "high" || rawConf === "medium" || rawConf === "low") {
|
|
379
|
+
confidence = rawConf;
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
const n = Number(rawConf);
|
|
383
|
+
confidence = !isNaN(n) ? scoreToConfidence(n) : "medium";
|
|
384
|
+
}
|
|
385
|
+
// Normalize sources: some harnesses (e.g. OpenCode) pass sources
|
|
386
|
+
// as a JSON string rather than an array, since their tool APIs
|
|
387
|
+
// don't support complex types natively.
|
|
388
|
+
let sources = submitAnswerInput.sources;
|
|
389
|
+
if (typeof sources === "string") {
|
|
390
|
+
try {
|
|
391
|
+
sources = JSON.parse(sources);
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
sources = [];
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// Use structured output from tool call (preferred)
|
|
398
|
+
navigatorResponse = NavigatorResponseSchema.parse({
|
|
399
|
+
query: question,
|
|
400
|
+
answer: submitAnswerInput.answer,
|
|
401
|
+
sources,
|
|
402
|
+
confidence,
|
|
403
|
+
confidenceReason: submitAnswerInput.confidenceReason,
|
|
404
|
+
outOfDomain: submitAnswerInput.outOfDomain,
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
// Fall back to parsing text response (legacy path)
|
|
409
|
+
const finalText = resultEvent.text || lastAssistantText;
|
|
410
|
+
if (!finalText) {
|
|
411
|
+
throw new Error(`${this.harness.displayName} finished without answering — no submit_answer call or text response.`);
|
|
412
|
+
}
|
|
413
|
+
// Parse the response from text
|
|
414
|
+
navigatorResponse = this.parseResponse(finalText, question);
|
|
415
|
+
}
|
|
416
|
+
// NOTE: Validation removed from adapter - happens in CLI/query-engine layer
|
|
417
|
+
// Adapters should be thin wrappers that just return responses
|
|
418
|
+
// The calling code (nav-query.ts) handles validation and error display
|
|
419
|
+
return navigatorResponse;
|
|
420
|
+
}
|
|
421
|
+
catch (error) {
|
|
422
|
+
if (error instanceof Error) {
|
|
423
|
+
throw error;
|
|
424
|
+
}
|
|
425
|
+
throw new Error(`${this.harness.displayName} ran into trouble: ${error instanceof Error ? error.message : String(error)}`);
|
|
426
|
+
}
|
|
427
|
+
finally {
|
|
428
|
+
await session.close();
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Update navigator documentation
|
|
433
|
+
*
|
|
434
|
+
* Sends an update message to Claude with write permissions enabled.
|
|
435
|
+
* Claude can edit files in the knowledge base to document progress,
|
|
436
|
+
* add troubleshooting steps, or update existing documentation.
|
|
437
|
+
*
|
|
438
|
+
* @param navigator - Loaded navigator to update
|
|
439
|
+
* @param message - Update message or report
|
|
440
|
+
* @param options - Query options (maxTurns)
|
|
441
|
+
* @returns Text response from the agent describing what was updated
|
|
442
|
+
* @throws {Error} If API call fails or update fails
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```typescript
|
|
446
|
+
* const result = await adapter.update(
|
|
447
|
+
* navigator,
|
|
448
|
+
* 'I completed feature X. Please document this in the knowledge base.'
|
|
449
|
+
* );
|
|
450
|
+
* console.log(result);
|
|
451
|
+
* ```
|
|
452
|
+
*/
|
|
453
|
+
async update(navigator, message, options = {}) {
|
|
454
|
+
const { maxTurns = this.options.maxTurns } = options;
|
|
455
|
+
// Validate inputs
|
|
456
|
+
if (!message || message.trim().length === 0) {
|
|
457
|
+
throw new Error('Update message cannot be empty');
|
|
458
|
+
}
|
|
459
|
+
// Build system prompt with update-specific instructions
|
|
460
|
+
const systemPrompt = `${navigator.systemPrompt}
|
|
461
|
+
|
|
462
|
+
# Update Mode
|
|
463
|
+
|
|
464
|
+
You are in UPDATE MODE with write permissions enabled. The user wants to update the navigator's documentation.
|
|
465
|
+
|
|
466
|
+
When updating documentation:
|
|
467
|
+
- Edit existing files or create new files in the knowledge/ directory
|
|
468
|
+
- Be specific about what you're changing and why
|
|
469
|
+
- Maintain consistent formatting and style
|
|
470
|
+
- Cite which files you modified in your response
|
|
471
|
+
|
|
472
|
+
Your task: ${message}`;
|
|
473
|
+
// Per-nav sandbox: update defaults to enabled unless explicitly disabled
|
|
474
|
+
const updateSandboxEnabled = navigator.config.sandbox?.update?.enabled !== false;
|
|
475
|
+
const session = this.harness.run({
|
|
476
|
+
model: this.options.model,
|
|
477
|
+
maxTurns,
|
|
478
|
+
systemPrompt,
|
|
479
|
+
cwd: navigator.navigatorPath,
|
|
480
|
+
permissionMode: "bypassPermissions",
|
|
481
|
+
...(updateSandboxEnabled ? {
|
|
482
|
+
sandbox: {
|
|
483
|
+
writePaths: [navigator.navigatorPath],
|
|
484
|
+
},
|
|
485
|
+
} : {}),
|
|
486
|
+
}, message);
|
|
487
|
+
try {
|
|
488
|
+
// Collect the result
|
|
489
|
+
let lastAssistantText = "";
|
|
490
|
+
let resultEvent;
|
|
491
|
+
for await (const event of session) {
|
|
492
|
+
if (event.type === "text") {
|
|
493
|
+
lastAssistantText = event.text;
|
|
494
|
+
}
|
|
495
|
+
if (event.type === "result") {
|
|
496
|
+
resultEvent = event;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
// Check for errors
|
|
500
|
+
if (!resultEvent) {
|
|
501
|
+
throw new Error("No result received from agent");
|
|
502
|
+
}
|
|
503
|
+
if (!resultEvent.success) {
|
|
504
|
+
throw new Error(`Update failed: ${resultEvent.text || "Unknown error"}`);
|
|
505
|
+
}
|
|
506
|
+
// Return the final response text
|
|
507
|
+
return resultEvent.text || lastAssistantText || "Update completed (no response text)";
|
|
508
|
+
}
|
|
509
|
+
catch (error) {
|
|
510
|
+
if (error instanceof Error) {
|
|
511
|
+
throw error;
|
|
512
|
+
}
|
|
513
|
+
throw new Error(`${this.harness.displayName} couldn't complete the update: ${error instanceof Error ? error.message : String(error)}`);
|
|
514
|
+
}
|
|
515
|
+
finally {
|
|
516
|
+
await session.close();
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Parse Claude's response into a NavigatorResponse
|
|
521
|
+
*
|
|
522
|
+
* Extracts JSON from the response text (either from code blocks or raw JSON)
|
|
523
|
+
* and validates it against the NavigatorResponseSchema.
|
|
524
|
+
*
|
|
525
|
+
* @param rawResponse - Raw text response from the agent
|
|
526
|
+
* @param query - Original query (used to populate missing query field)
|
|
527
|
+
* @returns Parsed and validated NavigatorResponse
|
|
528
|
+
* @throws {Error} If JSON cannot be extracted or schema validation fails
|
|
529
|
+
*
|
|
530
|
+
* @internal
|
|
531
|
+
*/
|
|
532
|
+
parseResponse(rawResponse, query) {
|
|
533
|
+
// Try to extract JSON from code blocks
|
|
534
|
+
const jsonMatch = rawResponse.match(/```json\s*([\s\S]*?)\s*```/);
|
|
535
|
+
let jsonText;
|
|
536
|
+
if (jsonMatch && jsonMatch[1]) {
|
|
537
|
+
jsonText = jsonMatch[1];
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
// Try to find JSON object in the text
|
|
541
|
+
const objectMatch = rawResponse.match(/\{[\s\S]*\}/);
|
|
542
|
+
if (objectMatch && objectMatch[0]) {
|
|
543
|
+
jsonText = objectMatch[0];
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
throw new Error("Could not find JSON in Claude's response. Response should contain a JSON object.");
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
try {
|
|
550
|
+
const parsed = JSON.parse(jsonText);
|
|
551
|
+
// Ensure query field is set
|
|
552
|
+
if (!parsed.query) {
|
|
553
|
+
parsed.query = query;
|
|
554
|
+
}
|
|
555
|
+
return NavigatorResponseSchema.parse(parsed);
|
|
556
|
+
}
|
|
557
|
+
catch (error) {
|
|
558
|
+
throw new Error(`Failed to parse response: ${error instanceof Error ? error.message : String(error)}\n\nRaw response:\n${rawResponse}`);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Validate a NavigatorResponse
|
|
563
|
+
*
|
|
564
|
+
* Runs comprehensive validation including:
|
|
565
|
+
* - Source file existence checks
|
|
566
|
+
* - Hallucination pattern detection
|
|
567
|
+
* - Confidence level validation
|
|
568
|
+
*
|
|
569
|
+
* @param response - Navigator response to validate
|
|
570
|
+
* @param knowledgeBasePath - Path to knowledge base directory
|
|
571
|
+
* @returns Validation result with errors and warnings
|
|
572
|
+
*
|
|
573
|
+
* @internal
|
|
574
|
+
*/
|
|
575
|
+
validate(response, knowledgeBasePath) {
|
|
576
|
+
return validateResponse(response, knowledgeBasePath);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
//# sourceMappingURL=navigator-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigator-adapter.js","sourceRoot":"","sources":["../../src/adapter/navigator-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/autonav.d.ts
CHANGED
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Main autonav CLI dispatcher
|
|
4
4
|
*
|
|
5
|
-
* Routes commands to appropriate handlers
|
|
6
|
-
*
|
|
7
|
-
* - autonav query -> nav-query.ts
|
|
8
|
-
* - autonav update -> nav-update.ts
|
|
9
|
-
* - autonav chat -> nav-chat.ts
|
|
10
|
-
* - autonav memento -> nav-memento.ts
|
|
5
|
+
* Routes commands to appropriate handlers via dynamic import (same process).
|
|
6
|
+
* Each command module exports a `run(args: string[])` function.
|
|
11
7
|
*/
|
|
12
8
|
export {};
|
|
13
9
|
//# sourceMappingURL=autonav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonav.d.ts","sourceRoot":"","sources":["../../src/cli/autonav.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"autonav.d.ts","sourceRoot":"","sources":["../../src/cli/autonav.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
|