@autonav/core 1.0.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 +115 -0
- package/dist/adapter/claude-adapter.d.ts +136 -0
- package/dist/adapter/claude-adapter.d.ts.map +1 -0
- package/dist/adapter/claude-adapter.js +340 -0
- package/dist/adapter/claude-adapter.js.map +1 -0
- package/dist/adapter/index.d.ts +7 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +7 -0
- package/dist/adapter/index.js.map +1 -0
- package/dist/cli/autonav.d.ts +11 -0
- package/dist/cli/autonav.d.ts.map +1 -0
- package/dist/cli/autonav.js +79 -0
- package/dist/cli/autonav.js.map +1 -0
- package/dist/cli/nav-chat.d.ts +3 -0
- package/dist/cli/nav-chat.d.ts.map +1 -0
- package/dist/cli/nav-chat.js +151 -0
- package/dist/cli/nav-chat.js.map +1 -0
- package/dist/cli/nav-init.d.ts +3 -0
- package/dist/cli/nav-init.d.ts.map +1 -0
- package/dist/cli/nav-init.js +366 -0
- package/dist/cli/nav-init.js.map +1 -0
- package/dist/cli/nav-query.d.ts +3 -0
- package/dist/cli/nav-query.d.ts.map +1 -0
- package/dist/cli/nav-query.js +217 -0
- package/dist/cli/nav-query.js.map +1 -0
- package/dist/conversation/App.d.ts +14 -0
- package/dist/conversation/App.d.ts.map +1 -0
- package/dist/conversation/App.js +229 -0
- package/dist/conversation/App.js.map +1 -0
- package/dist/conversation/index.d.ts +29 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +44 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/prompts.d.ts +9 -0
- package/dist/conversation/prompts.d.ts.map +1 -0
- package/dist/conversation/prompts.js +47 -0
- package/dist/conversation/prompts.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/interview/App.d.ts +14 -0
- package/dist/interview/App.d.ts.map +1 -0
- package/dist/interview/App.js +159 -0
- package/dist/interview/App.js.map +1 -0
- package/dist/interview/index.d.ts +30 -0
- package/dist/interview/index.d.ts.map +1 -0
- package/dist/interview/index.js +52 -0
- package/dist/interview/index.js.map +1 -0
- package/dist/interview/prompts.d.ts +36 -0
- package/dist/interview/prompts.d.ts.map +1 -0
- package/dist/interview/prompts.js +116 -0
- package/dist/interview/prompts.js.map +1 -0
- package/dist/pack-installer/github.d.ts +41 -0
- package/dist/pack-installer/github.d.ts.map +1 -0
- package/dist/pack-installer/github.js +294 -0
- package/dist/pack-installer/github.js.map +1 -0
- package/dist/pack-installer/index.d.ts +57 -0
- package/dist/pack-installer/index.d.ts.map +1 -0
- package/dist/pack-installer/index.js +257 -0
- package/dist/pack-installer/index.js.map +1 -0
- package/dist/plugins/config-schema.d.ts +32 -0
- package/dist/plugins/config-schema.d.ts.map +1 -0
- package/dist/plugins/config-schema.js +26 -0
- package/dist/plugins/config-schema.js.map +1 -0
- package/dist/plugins/implementations/file-watcher/index.d.ts +110 -0
- package/dist/plugins/implementations/file-watcher/index.d.ts.map +1 -0
- package/dist/plugins/implementations/file-watcher/index.js +212 -0
- package/dist/plugins/implementations/file-watcher/index.js.map +1 -0
- package/dist/plugins/implementations/github/index.d.ts +201 -0
- package/dist/plugins/implementations/github/index.d.ts.map +1 -0
- package/dist/plugins/implementations/github/index.js +337 -0
- package/dist/plugins/implementations/github/index.js.map +1 -0
- package/dist/plugins/implementations/slack/index.d.ts +153 -0
- package/dist/plugins/implementations/slack/index.d.ts.map +1 -0
- package/dist/plugins/implementations/slack/index.js +221 -0
- package/dist/plugins/implementations/slack/index.js.map +1 -0
- package/dist/plugins/index.d.ts +23 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +35 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +66 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.js +198 -0
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/plugins/types.d.ts +102 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +38 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/utils/security.d.ts +43 -0
- package/dist/plugins/utils/security.d.ts.map +1 -0
- package/dist/plugins/utils/security.js +115 -0
- package/dist/plugins/utils/security.js.map +1 -0
- package/dist/query-engine/index.d.ts +10 -0
- package/dist/query-engine/index.d.ts.map +1 -0
- package/dist/query-engine/index.js +10 -0
- package/dist/query-engine/index.js.map +1 -0
- package/dist/query-engine/navigator-loader.d.ts +37 -0
- package/dist/query-engine/navigator-loader.d.ts.map +1 -0
- package/dist/query-engine/navigator-loader.js +167 -0
- package/dist/query-engine/navigator-loader.js.map +1 -0
- package/dist/query-engine/output-formatter.d.ts +55 -0
- package/dist/query-engine/output-formatter.d.ts.map +1 -0
- package/dist/query-engine/output-formatter.js +165 -0
- package/dist/query-engine/output-formatter.js.map +1 -0
- package/dist/query-engine/response-validator.d.ts +55 -0
- package/dist/query-engine/response-validator.d.ts.map +1 -0
- package/dist/query-engine/response-validator.js +92 -0
- package/dist/query-engine/response-validator.js.map +1 -0
- package/dist/templates/.gitignore.template +23 -0
- package/dist/templates/CLAUDE-pack.md.template +32 -0
- package/dist/templates/CLAUDE.md.template +128 -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 +66 -0
- package/dist/tools/handler.d.ts +20 -0
- package/dist/tools/handler.d.ts.map +1 -0
- package/dist/tools/handler.js +202 -0
- package/dist/tools/handler.js.map +1 -0
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/response.d.ts +30 -0
- package/dist/tools/response.d.ts.map +1 -0
- package/dist/tools/response.js +68 -0
- package/dist/tools/response.js.map +1 -0
- package/dist/tools/self-config.d.ts +54 -0
- package/dist/tools/self-config.d.ts.map +1 -0
- package/dist/tools/self-config.js +84 -0
- package/dist/tools/self-config.js.map +1 -0
- package/dist/validation/index.d.ts +19 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +91 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Main autonav CLI dispatcher
|
|
4
|
+
*
|
|
5
|
+
* Routes commands to appropriate handlers:
|
|
6
|
+
* - autonav init -> nav-init.ts
|
|
7
|
+
* - autonav query -> nav-query.ts
|
|
8
|
+
* - autonav chat -> nav-chat.ts
|
|
9
|
+
*/
|
|
10
|
+
import { spawn } from "node:child_process";
|
|
11
|
+
import { fileURLToPath } from "node:url";
|
|
12
|
+
import * as path from "node:path";
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
15
|
+
function printUsage() {
|
|
16
|
+
console.log(`
|
|
17
|
+
autonav - Autonav CLI
|
|
18
|
+
|
|
19
|
+
Usage:
|
|
20
|
+
autonav <command> [options]
|
|
21
|
+
|
|
22
|
+
Commands:
|
|
23
|
+
init <name> Create a new navigator
|
|
24
|
+
query <path> Query a navigator
|
|
25
|
+
chat <path> Interactive conversation with a navigator
|
|
26
|
+
|
|
27
|
+
Options:
|
|
28
|
+
--help, -h Show help
|
|
29
|
+
|
|
30
|
+
Examples:
|
|
31
|
+
autonav init my-navigator
|
|
32
|
+
autonav init platform-nav --pack platform-engineering
|
|
33
|
+
autonav query ./my-navigator "How do I deploy?"
|
|
34
|
+
autonav chat ./my-navigator
|
|
35
|
+
|
|
36
|
+
For command-specific help:
|
|
37
|
+
autonav init --help
|
|
38
|
+
autonav query --help
|
|
39
|
+
autonav chat --help
|
|
40
|
+
`);
|
|
41
|
+
}
|
|
42
|
+
function main() {
|
|
43
|
+
const args = process.argv.slice(2);
|
|
44
|
+
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
45
|
+
printUsage();
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
const command = args[0];
|
|
49
|
+
const commandArgs = args.slice(1);
|
|
50
|
+
let scriptPath;
|
|
51
|
+
switch (command) {
|
|
52
|
+
case "init":
|
|
53
|
+
scriptPath = path.join(__dirname, "nav-init.js");
|
|
54
|
+
break;
|
|
55
|
+
case "query":
|
|
56
|
+
scriptPath = path.join(__dirname, "nav-query.js");
|
|
57
|
+
break;
|
|
58
|
+
case "chat":
|
|
59
|
+
scriptPath = path.join(__dirname, "nav-chat.js");
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
console.error(`❌ Error: Unknown command: ${command}\n`);
|
|
63
|
+
printUsage();
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
// Spawn the appropriate command script
|
|
67
|
+
const child = spawn(process.execPath, [scriptPath, ...commandArgs], {
|
|
68
|
+
stdio: "inherit",
|
|
69
|
+
});
|
|
70
|
+
child.on("exit", (code) => {
|
|
71
|
+
process.exit(code || 0);
|
|
72
|
+
});
|
|
73
|
+
child.on("error", (error) => {
|
|
74
|
+
console.error(`❌ Error executing command: ${error.message}`);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
main();
|
|
79
|
+
//# sourceMappingURL=autonav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonav.js","sourceRoot":"","sources":["../../src/cli/autonav.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,IAAI;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,UAAkB,CAAC;IAEvB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,OAAO;YACV,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,MAAM;YACT,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACjD,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,IAAI,CAAC,CAAC;YACxD,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,EAAE;QAClE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-chat.d.ts","sourceRoot":"","sources":["../../src/cli/nav-chat.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { runConversationTUI, isInteractiveTerminal } from "../conversation/index.js";
|
|
5
|
+
function printUsage() {
|
|
6
|
+
console.log(`
|
|
7
|
+
autonav chat - Interactive conversation with a navigator
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
autonav chat <navigator-path>
|
|
11
|
+
|
|
12
|
+
Arguments:
|
|
13
|
+
navigator-path Path to the navigator directory
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
--verbose Show debug information
|
|
17
|
+
|
|
18
|
+
Description:
|
|
19
|
+
Opens an interactive conversation mode with your navigator. You can:
|
|
20
|
+
- Ask questions about your knowledge base
|
|
21
|
+
- Reorganize information
|
|
22
|
+
- Add new knowledge
|
|
23
|
+
- Update configuration and behavior
|
|
24
|
+
- Get help understanding what the navigator can do
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
autonav chat ./my-navigator
|
|
28
|
+
autonav chat . # Use current directory
|
|
29
|
+
|
|
30
|
+
Commands available in conversation:
|
|
31
|
+
/help - Show available commands
|
|
32
|
+
/status - Show navigator status
|
|
33
|
+
/clear - Clear conversation history
|
|
34
|
+
/exit - Exit conversation mode (or Ctrl+C/Ctrl+D)
|
|
35
|
+
`);
|
|
36
|
+
}
|
|
37
|
+
function parseArgs(args) {
|
|
38
|
+
const options = {};
|
|
39
|
+
let navigatorPath;
|
|
40
|
+
for (let i = 0; i < args.length; i++) {
|
|
41
|
+
const arg = args[i];
|
|
42
|
+
if (!arg)
|
|
43
|
+
continue;
|
|
44
|
+
if (arg === "--verbose") {
|
|
45
|
+
options.verbose = true;
|
|
46
|
+
}
|
|
47
|
+
else if (arg === "--help" || arg === "-h") {
|
|
48
|
+
printUsage();
|
|
49
|
+
process.exit(0);
|
|
50
|
+
}
|
|
51
|
+
else if (!arg.startsWith("-")) {
|
|
52
|
+
navigatorPath = arg;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { navigatorPath, options };
|
|
56
|
+
}
|
|
57
|
+
async function main() {
|
|
58
|
+
const args = process.argv.slice(2);
|
|
59
|
+
// Handle --help
|
|
60
|
+
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
61
|
+
printUsage();
|
|
62
|
+
process.exit(0);
|
|
63
|
+
}
|
|
64
|
+
// Parse arguments
|
|
65
|
+
const { navigatorPath: rawPath, options } = parseArgs(args);
|
|
66
|
+
// Validate navigator path
|
|
67
|
+
if (!rawPath) {
|
|
68
|
+
console.error("❌ Error: Navigator path is required\n");
|
|
69
|
+
printUsage();
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
const navigatorPath = path.resolve(process.cwd(), rawPath);
|
|
73
|
+
// Check if directory exists
|
|
74
|
+
if (!fs.existsSync(navigatorPath)) {
|
|
75
|
+
console.error(`❌ Error: Navigator not found: ${navigatorPath}`);
|
|
76
|
+
console.error("\nMake sure the path is correct and the navigator exists.");
|
|
77
|
+
console.error("Create a new navigator with: autonav init <name>\n");
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
// Verify it's a directory
|
|
81
|
+
const stats = fs.statSync(navigatorPath);
|
|
82
|
+
if (!stats.isDirectory()) {
|
|
83
|
+
console.error(`❌ Error: Path is not a directory: ${navigatorPath}`);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
// Check for config.json
|
|
87
|
+
const configPath = path.join(navigatorPath, "config.json");
|
|
88
|
+
if (!fs.existsSync(configPath)) {
|
|
89
|
+
console.error(`❌ Error: Not a valid navigator (missing config.json): ${navigatorPath}`);
|
|
90
|
+
console.error("\nCreate a new navigator with: autonav init <name>\n");
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
// Load config
|
|
94
|
+
let config;
|
|
95
|
+
try {
|
|
96
|
+
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
97
|
+
config = JSON.parse(configContent);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error(`❌ Error: Failed to parse config.json: ${error instanceof Error ? error.message : String(error)}`);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
// Load system prompt (CLAUDE.md or custom)
|
|
104
|
+
const instructionsFile = config.instructionsPath || "CLAUDE.md";
|
|
105
|
+
const instructionsPath = path.join(navigatorPath, instructionsFile);
|
|
106
|
+
if (!fs.existsSync(instructionsPath)) {
|
|
107
|
+
console.error(`❌ Error: Instructions file not found: ${instructionsFile}`);
|
|
108
|
+
console.error(`Expected path: ${instructionsPath}`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
const systemPrompt = fs.readFileSync(instructionsPath, "utf-8");
|
|
112
|
+
// Resolve knowledge base path
|
|
113
|
+
const knowledgeBasePath = path.join(navigatorPath, config.knowledgeBase || "knowledge");
|
|
114
|
+
if (!fs.existsSync(knowledgeBasePath)) {
|
|
115
|
+
console.error(`❌ Error: Knowledge base not found: ${knowledgeBasePath}`);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
// Check for interactive terminal
|
|
119
|
+
if (!isInteractiveTerminal()) {
|
|
120
|
+
console.error("❌ Error: Interactive conversation requires a TTY terminal.");
|
|
121
|
+
console.error("\nRun this command in an interactive terminal (not piped or in a script).\n");
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
// Run the conversation TUI
|
|
125
|
+
try {
|
|
126
|
+
if (options.verbose) {
|
|
127
|
+
console.log(`Navigator: ${config.name}`);
|
|
128
|
+
console.log(`Path: ${navigatorPath}`);
|
|
129
|
+
console.log(`Knowledge Base: ${knowledgeBasePath}`);
|
|
130
|
+
console.log("");
|
|
131
|
+
}
|
|
132
|
+
await runConversationTUI({
|
|
133
|
+
navigatorName: config.name,
|
|
134
|
+
navigatorPath,
|
|
135
|
+
navigatorSystemPrompt: systemPrompt,
|
|
136
|
+
knowledgeBasePath,
|
|
137
|
+
});
|
|
138
|
+
console.log("\n👋 Conversation ended.\n");
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (error instanceof Error && error.message.includes("TTY")) {
|
|
142
|
+
console.error(`❌ Error: ${error.message}`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
146
|
+
}
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
main();
|
|
151
|
+
//# sourceMappingURL=nav-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-chat.js","sourceRoot":"","sources":["../../src/cli/nav-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-init.d.ts","sourceRoot":"","sources":["../../src/cli/nav-init.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as fs from "node:fs";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { loadTemplates, replaceTemplateVars } from "../templates/index.js";
|
|
5
|
+
import { validateNavigatorName } from "../validation/index.js";
|
|
6
|
+
import { installPack } from "../pack-installer/index.js";
|
|
7
|
+
import { runInterviewTUI, isInteractiveTerminal } from "../interview/index.js";
|
|
8
|
+
function printUsage() {
|
|
9
|
+
console.log(`
|
|
10
|
+
autonav init - Create a new Platform AI navigator
|
|
11
|
+
|
|
12
|
+
Usage:
|
|
13
|
+
autonav init <navigator-name> [options]
|
|
14
|
+
|
|
15
|
+
Arguments:
|
|
16
|
+
navigator-name Name of the navigator directory to create (required)
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
--pack <name|url> Install knowledge pack by name, URL, or GitHub path
|
|
20
|
+
--server <url> Custom pack server URL (default: configured server)
|
|
21
|
+
--pack-file <path> Install pack from local file (for development)
|
|
22
|
+
--force Overwrite existing directory
|
|
23
|
+
--quiet Minimal output
|
|
24
|
+
--quick Skip interactive interview, use defaults
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
# Create basic navigator
|
|
28
|
+
autonav init my-navigator
|
|
29
|
+
|
|
30
|
+
# Create navigator with knowledge pack from server
|
|
31
|
+
autonav init platform-nav --pack platform-engineering
|
|
32
|
+
|
|
33
|
+
# Install from GitHub folder (full URL)
|
|
34
|
+
autonav init nav --pack https://github.com/owner/repo/tree/main/packs/my-pack
|
|
35
|
+
|
|
36
|
+
# Install from GitHub folder (shorthand)
|
|
37
|
+
autonav init nav --pack github:owner/repo/packs/my-pack
|
|
38
|
+
|
|
39
|
+
# Install from GitHub via SSH (uses your SSH keys)
|
|
40
|
+
autonav init nav --pack git@github.com:owner/repo/packs/my-pack
|
|
41
|
+
|
|
42
|
+
# Install specific version from GitHub
|
|
43
|
+
autonav init nav --pack github:owner/repo/packs/my-pack@v1.0.0
|
|
44
|
+
|
|
45
|
+
# Use custom pack server
|
|
46
|
+
autonav init nav --pack my-pack --server https://my-server.com
|
|
47
|
+
|
|
48
|
+
# Install from local pack file
|
|
49
|
+
autonav init nav --pack-file ./my-pack-0.1.0.tar.gz
|
|
50
|
+
|
|
51
|
+
The command will create:
|
|
52
|
+
<navigator-name>/
|
|
53
|
+
├── config.json # Navigator configuration
|
|
54
|
+
├── CLAUDE.md # System prompt and grounding rules
|
|
55
|
+
├── knowledge/ # Directory for documentation
|
|
56
|
+
├── .claude/
|
|
57
|
+
│ └── plugins.json # Plugin configuration
|
|
58
|
+
├── .gitignore # Git ignore file
|
|
59
|
+
└── README.md # Usage instructions
|
|
60
|
+
|
|
61
|
+
With --pack option, it will also install:
|
|
62
|
+
├── system-configuration.md # Pack-specific configuration
|
|
63
|
+
└── knowledge/ # Pre-populated knowledge files
|
|
64
|
+
`);
|
|
65
|
+
}
|
|
66
|
+
function titleCase(str) {
|
|
67
|
+
return str
|
|
68
|
+
.split(/[-_\s]/)
|
|
69
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
70
|
+
.join(" ");
|
|
71
|
+
}
|
|
72
|
+
function parseArgs(args) {
|
|
73
|
+
const options = {};
|
|
74
|
+
let navigatorName;
|
|
75
|
+
for (let i = 0; i < args.length; i++) {
|
|
76
|
+
const arg = args[i];
|
|
77
|
+
if (!arg)
|
|
78
|
+
continue;
|
|
79
|
+
if (arg === "--pack" && i + 1 < args.length) {
|
|
80
|
+
options.pack = args[++i];
|
|
81
|
+
}
|
|
82
|
+
else if (arg === "--server" && i + 1 < args.length) {
|
|
83
|
+
options.server = args[++i];
|
|
84
|
+
}
|
|
85
|
+
else if (arg === "--pack-file" && i + 1 < args.length) {
|
|
86
|
+
options.packFile = args[++i];
|
|
87
|
+
}
|
|
88
|
+
else if (arg === "--force") {
|
|
89
|
+
options.force = true;
|
|
90
|
+
}
|
|
91
|
+
else if (arg === "--quiet") {
|
|
92
|
+
options.quiet = true;
|
|
93
|
+
}
|
|
94
|
+
else if (arg === "--quick") {
|
|
95
|
+
options.quick = true;
|
|
96
|
+
}
|
|
97
|
+
else if (!arg.startsWith("-")) {
|
|
98
|
+
navigatorName = arg;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return { navigatorName, options };
|
|
102
|
+
}
|
|
103
|
+
async function main() {
|
|
104
|
+
const args = process.argv.slice(2);
|
|
105
|
+
// Handle --help
|
|
106
|
+
if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
|
|
107
|
+
printUsage();
|
|
108
|
+
process.exit(0);
|
|
109
|
+
}
|
|
110
|
+
// Parse arguments
|
|
111
|
+
const { navigatorName, options } = parseArgs(args);
|
|
112
|
+
// Validate navigator name
|
|
113
|
+
if (!navigatorName) {
|
|
114
|
+
console.error("❌ Error: Navigator name is required\n");
|
|
115
|
+
printUsage();
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
const validation = validateNavigatorName(navigatorName);
|
|
119
|
+
if (!validation.valid) {
|
|
120
|
+
console.error(`❌ Error: ${validation.error}\n`);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
const navigatorPath = path.resolve(process.cwd(), navigatorName);
|
|
124
|
+
// Check if directory already exists
|
|
125
|
+
if (fs.existsSync(navigatorPath)) {
|
|
126
|
+
if (!options.force) {
|
|
127
|
+
console.error(`❌ Error: Directory already exists: ${navigatorPath}`);
|
|
128
|
+
console.error("Use --force to overwrite\n");
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
// Remove existing directory if --force is specified
|
|
132
|
+
if (!options.quiet) {
|
|
133
|
+
console.log(`⚠️ Removing existing directory: ${navigatorPath}`);
|
|
134
|
+
}
|
|
135
|
+
fs.rmSync(navigatorPath, { recursive: true, force: true });
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
if (!options.quiet) {
|
|
139
|
+
console.log(`\nCreating navigator: ${navigatorName}`);
|
|
140
|
+
}
|
|
141
|
+
// Create directory structure
|
|
142
|
+
fs.mkdirSync(navigatorPath, { recursive: true });
|
|
143
|
+
fs.mkdirSync(path.join(navigatorPath, "knowledge"), { recursive: true });
|
|
144
|
+
fs.mkdirSync(path.join(navigatorPath, ".claude"), { recursive: true });
|
|
145
|
+
if (!options.quiet) {
|
|
146
|
+
console.log("✓ Created directory structure");
|
|
147
|
+
}
|
|
148
|
+
// Load templates
|
|
149
|
+
const templates = loadTemplates();
|
|
150
|
+
// Handle knowledge pack installation FIRST (needed for interview context)
|
|
151
|
+
let packMetadata = null;
|
|
152
|
+
let packContext;
|
|
153
|
+
if (options.pack || options.packFile) {
|
|
154
|
+
if (!options.quiet) {
|
|
155
|
+
console.log(options.packFile
|
|
156
|
+
? `✓ Installing pack from file: ${path.basename(options.packFile)}`
|
|
157
|
+
: `✓ Downloading knowledge pack: ${options.pack}`);
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
const result = await installPack({
|
|
161
|
+
packName: options.pack,
|
|
162
|
+
packServer: options.server,
|
|
163
|
+
packFile: options.packFile,
|
|
164
|
+
targetDir: navigatorPath,
|
|
165
|
+
onProgress: options.quiet
|
|
166
|
+
? undefined
|
|
167
|
+
: (msg) => console.log(` ${msg}`),
|
|
168
|
+
});
|
|
169
|
+
packMetadata = {
|
|
170
|
+
name: result.metadata.name,
|
|
171
|
+
version: result.metadata.version,
|
|
172
|
+
};
|
|
173
|
+
if (!options.quiet) {
|
|
174
|
+
console.log(`✓ Installed knowledge pack: ${packMetadata.name} v${packMetadata.version}`);
|
|
175
|
+
if (result.installedFiles.length > 0) {
|
|
176
|
+
const knowledgeFiles = result.installedFiles.filter((f) => f.startsWith("knowledge/"));
|
|
177
|
+
if (knowledgeFiles.length > 0) {
|
|
178
|
+
// Show first few files
|
|
179
|
+
const displayFiles = knowledgeFiles.slice(0, 3);
|
|
180
|
+
const more = knowledgeFiles.length - displayFiles.length;
|
|
181
|
+
console.log(`✓ Installed knowledge files (${knowledgeFiles.length} documents)`);
|
|
182
|
+
console.log(` ${displayFiles.map((f) => path.basename(f)).join(", ")}${more > 0 ? `, +${more} more` : ""}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Read INIT.md from pack if it exists (for interview guidance)
|
|
187
|
+
const initMdPath = path.join(navigatorPath, "INIT.md");
|
|
188
|
+
let initGuide;
|
|
189
|
+
if (fs.existsSync(initMdPath)) {
|
|
190
|
+
initGuide = fs.readFileSync(initMdPath, "utf-8");
|
|
191
|
+
if (!options.quiet) {
|
|
192
|
+
console.log("✓ Found pack interview guide (INIT.md)");
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Create pack context for interview
|
|
196
|
+
packContext = {
|
|
197
|
+
packName: packMetadata.name,
|
|
198
|
+
packVersion: packMetadata.version,
|
|
199
|
+
initGuide,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
console.error(`\n❌ Error installing pack: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
204
|
+
// Clean up on pack installation failure
|
|
205
|
+
fs.rmSync(navigatorPath, { recursive: true, force: true });
|
|
206
|
+
process.exit(1);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Run interactive interview unless --quick is specified
|
|
210
|
+
let interviewConfig = null;
|
|
211
|
+
const wantsInterview = !options.quick;
|
|
212
|
+
if (wantsInterview) {
|
|
213
|
+
// Check if we're in an interactive terminal
|
|
214
|
+
if (!isInteractiveTerminal()) {
|
|
215
|
+
if (!options.quiet) {
|
|
216
|
+
console.log("⚠️ Non-interactive terminal detected. Skipping interview (use --quick to silence this).");
|
|
217
|
+
console.log(" Run in an interactive terminal to customize your navigator.\n");
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
try {
|
|
222
|
+
interviewConfig = await runInterviewTUI(navigatorName, { packContext });
|
|
223
|
+
if (!options.quiet) {
|
|
224
|
+
console.log("\n✓ Interview completed");
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
// User cancelled or error occurred
|
|
229
|
+
if (error instanceof Error && error.message === "Interview cancelled by user") {
|
|
230
|
+
console.log("\n⚠️ Interview cancelled. Cleaning up...");
|
|
231
|
+
fs.rmSync(navigatorPath, { recursive: true, force: true });
|
|
232
|
+
process.exit(0);
|
|
233
|
+
}
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Prepare template variables
|
|
239
|
+
const now = new Date().toISOString();
|
|
240
|
+
const description = interviewConfig?.purpose || `Knowledge navigator for ${titleCase(navigatorName)}`;
|
|
241
|
+
const vars = {
|
|
242
|
+
NAVIGATOR_NAME: navigatorName,
|
|
243
|
+
NAVIGATOR_DESCRIPTION: description,
|
|
244
|
+
DATE: now.split("T")[0] || now.substring(0, 10), // YYYY-MM-DD
|
|
245
|
+
CREATED_AT: now,
|
|
246
|
+
UPDATED_AT: now,
|
|
247
|
+
PACK_NAME: packMetadata?.name || "",
|
|
248
|
+
PACK_VERSION: packMetadata?.version || "",
|
|
249
|
+
};
|
|
250
|
+
// Write config.json (use pack template if pack was installed)
|
|
251
|
+
const configTemplate = packMetadata
|
|
252
|
+
? templates.configJsonPack
|
|
253
|
+
: templates.configJson;
|
|
254
|
+
fs.writeFileSync(path.join(navigatorPath, "config.json"), replaceTemplateVars(configTemplate, vars));
|
|
255
|
+
if (!options.quiet) {
|
|
256
|
+
console.log("✓ Generated config.json");
|
|
257
|
+
}
|
|
258
|
+
// Write CLAUDE.md
|
|
259
|
+
// Priority: interview config > pack template > default template
|
|
260
|
+
let claudeMdContent;
|
|
261
|
+
if (interviewConfig?.claudeMd) {
|
|
262
|
+
// Use personalized CLAUDE.md from interview
|
|
263
|
+
claudeMdContent = interviewConfig.claudeMd;
|
|
264
|
+
}
|
|
265
|
+
else if (packMetadata) {
|
|
266
|
+
// Use pack template
|
|
267
|
+
claudeMdContent = replaceTemplateVars(templates.claudeMdPack, vars);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// Use default template
|
|
271
|
+
claudeMdContent = replaceTemplateVars(templates.claudeMd, vars);
|
|
272
|
+
}
|
|
273
|
+
fs.writeFileSync(path.join(navigatorPath, "CLAUDE.md"), claudeMdContent);
|
|
274
|
+
if (!options.quiet) {
|
|
275
|
+
console.log(interviewConfig?.claudeMd
|
|
276
|
+
? "✓ Created personalized CLAUDE.md"
|
|
277
|
+
: "✓ Created CLAUDE.md template");
|
|
278
|
+
}
|
|
279
|
+
// Write system-configuration.md if pack-based and not already created by pack
|
|
280
|
+
if (packMetadata &&
|
|
281
|
+
!fs.existsSync(path.join(navigatorPath, "system-configuration.md"))) {
|
|
282
|
+
fs.writeFileSync(path.join(navigatorPath, "system-configuration.md"), replaceTemplateVars(templates.systemConfiguration, vars));
|
|
283
|
+
if (!options.quiet) {
|
|
284
|
+
console.log("✓ Created system-configuration.md");
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Write .claude/plugins.json (if not already created by pack)
|
|
288
|
+
const pluginsPath = path.join(navigatorPath, ".claude", "plugins.json");
|
|
289
|
+
if (!fs.existsSync(pluginsPath)) {
|
|
290
|
+
fs.writeFileSync(pluginsPath, templates.pluginsJson);
|
|
291
|
+
}
|
|
292
|
+
if (!options.quiet) {
|
|
293
|
+
console.log("✓ Configured plugins.json");
|
|
294
|
+
}
|
|
295
|
+
// Write .gitignore
|
|
296
|
+
fs.writeFileSync(path.join(navigatorPath, ".gitignore"), templates.gitignore);
|
|
297
|
+
if (!options.quiet) {
|
|
298
|
+
console.log("✓ Created .gitignore");
|
|
299
|
+
}
|
|
300
|
+
// Write README.md
|
|
301
|
+
fs.writeFileSync(path.join(navigatorPath, "README.md"), replaceTemplateVars(templates.readme, vars));
|
|
302
|
+
// Create starter README in knowledge/ if no pack was installed
|
|
303
|
+
if (!packMetadata) {
|
|
304
|
+
const starterReadme = `# Welcome to ${titleCase(navigatorName)}
|
|
305
|
+
|
|
306
|
+
This is your knowledge base directory. Add your documentation files here.
|
|
307
|
+
|
|
308
|
+
## Getting Started
|
|
309
|
+
|
|
310
|
+
1. Add your documentation files to this directory
|
|
311
|
+
2. Organize them in subdirectories as needed
|
|
312
|
+
3. The navigator will search all files when answering questions
|
|
313
|
+
|
|
314
|
+
## Supported File Types
|
|
315
|
+
|
|
316
|
+
- Markdown files (.md)
|
|
317
|
+
- Text files (.txt)
|
|
318
|
+
- Code files
|
|
319
|
+
- Configuration files
|
|
320
|
+
|
|
321
|
+
## Tips for Good Documentation
|
|
322
|
+
|
|
323
|
+
- Use clear section headings
|
|
324
|
+
- Include examples and code snippets
|
|
325
|
+
- Keep documentation up to date
|
|
326
|
+
- Use consistent formatting
|
|
327
|
+
- Add context and explanations
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
*Remove this file and add your own documentation to get started.*
|
|
332
|
+
`;
|
|
333
|
+
fs.writeFileSync(path.join(navigatorPath, "knowledge", "README.md"), starterReadme);
|
|
334
|
+
}
|
|
335
|
+
if (!options.quiet) {
|
|
336
|
+
console.log("✓ Navigator ready at ./" + navigatorName);
|
|
337
|
+
console.log("\nNext steps:");
|
|
338
|
+
console.log(` 1. cd ${navigatorName}`);
|
|
339
|
+
if (!packMetadata) {
|
|
340
|
+
console.log(" 2. Add your documentation to knowledge/ directory");
|
|
341
|
+
console.log(" 3. Edit CLAUDE.md to customize behavior");
|
|
342
|
+
console.log(" 4a. Use Claude Code: claude");
|
|
343
|
+
console.log(` 4b. Or query directly: autonav query ${navigatorName} "test question"\n`);
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
console.log(" 2a. Use Claude Code: claude");
|
|
347
|
+
console.log(` 2b. Or query directly: autonav query ${navigatorName} "test question"\n`);
|
|
348
|
+
}
|
|
349
|
+
console.log("💡 Tips:");
|
|
350
|
+
console.log(" - Edit CLAUDE.md to customize the navigator's behavior");
|
|
351
|
+
console.log(" - Check config.json for configuration options");
|
|
352
|
+
console.log(" - Enable plugins in .claude/plugins.json (Slack, GitHub, file watcher)");
|
|
353
|
+
console.log(" - See README.md for full usage instructions\n");
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
// Minimal output for quiet mode
|
|
357
|
+
console.log(`✓ Created navigator: ${navigatorName}`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
catch (error) {
|
|
361
|
+
console.error(`\n❌ Error creating navigator: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
362
|
+
process.exit(1);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
main();
|
|
366
|
+
//# sourceMappingURL=nav-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-init.js","sourceRoot":"","sources":["../../src/cli/nav-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-query.d.ts","sourceRoot":"","sources":["../../src/cli/nav-query.ts"],"names":[],"mappings":""}
|