@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.
Files changed (142) hide show
  1. package/README.md +115 -0
  2. package/dist/adapter/claude-adapter.d.ts +136 -0
  3. package/dist/adapter/claude-adapter.d.ts.map +1 -0
  4. package/dist/adapter/claude-adapter.js +340 -0
  5. package/dist/adapter/claude-adapter.js.map +1 -0
  6. package/dist/adapter/index.d.ts +7 -0
  7. package/dist/adapter/index.d.ts.map +1 -0
  8. package/dist/adapter/index.js +7 -0
  9. package/dist/adapter/index.js.map +1 -0
  10. package/dist/cli/autonav.d.ts +11 -0
  11. package/dist/cli/autonav.d.ts.map +1 -0
  12. package/dist/cli/autonav.js +79 -0
  13. package/dist/cli/autonav.js.map +1 -0
  14. package/dist/cli/nav-chat.d.ts +3 -0
  15. package/dist/cli/nav-chat.d.ts.map +1 -0
  16. package/dist/cli/nav-chat.js +151 -0
  17. package/dist/cli/nav-chat.js.map +1 -0
  18. package/dist/cli/nav-init.d.ts +3 -0
  19. package/dist/cli/nav-init.d.ts.map +1 -0
  20. package/dist/cli/nav-init.js +366 -0
  21. package/dist/cli/nav-init.js.map +1 -0
  22. package/dist/cli/nav-query.d.ts +3 -0
  23. package/dist/cli/nav-query.d.ts.map +1 -0
  24. package/dist/cli/nav-query.js +217 -0
  25. package/dist/cli/nav-query.js.map +1 -0
  26. package/dist/conversation/App.d.ts +14 -0
  27. package/dist/conversation/App.d.ts.map +1 -0
  28. package/dist/conversation/App.js +229 -0
  29. package/dist/conversation/App.js.map +1 -0
  30. package/dist/conversation/index.d.ts +29 -0
  31. package/dist/conversation/index.d.ts.map +1 -0
  32. package/dist/conversation/index.js +44 -0
  33. package/dist/conversation/index.js.map +1 -0
  34. package/dist/conversation/prompts.d.ts +9 -0
  35. package/dist/conversation/prompts.d.ts.map +1 -0
  36. package/dist/conversation/prompts.js +47 -0
  37. package/dist/conversation/prompts.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +24 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/interview/App.d.ts +14 -0
  43. package/dist/interview/App.d.ts.map +1 -0
  44. package/dist/interview/App.js +159 -0
  45. package/dist/interview/App.js.map +1 -0
  46. package/dist/interview/index.d.ts +30 -0
  47. package/dist/interview/index.d.ts.map +1 -0
  48. package/dist/interview/index.js +52 -0
  49. package/dist/interview/index.js.map +1 -0
  50. package/dist/interview/prompts.d.ts +36 -0
  51. package/dist/interview/prompts.d.ts.map +1 -0
  52. package/dist/interview/prompts.js +116 -0
  53. package/dist/interview/prompts.js.map +1 -0
  54. package/dist/pack-installer/github.d.ts +41 -0
  55. package/dist/pack-installer/github.d.ts.map +1 -0
  56. package/dist/pack-installer/github.js +294 -0
  57. package/dist/pack-installer/github.js.map +1 -0
  58. package/dist/pack-installer/index.d.ts +57 -0
  59. package/dist/pack-installer/index.d.ts.map +1 -0
  60. package/dist/pack-installer/index.js +257 -0
  61. package/dist/pack-installer/index.js.map +1 -0
  62. package/dist/plugins/config-schema.d.ts +32 -0
  63. package/dist/plugins/config-schema.d.ts.map +1 -0
  64. package/dist/plugins/config-schema.js +26 -0
  65. package/dist/plugins/config-schema.js.map +1 -0
  66. package/dist/plugins/implementations/file-watcher/index.d.ts +110 -0
  67. package/dist/plugins/implementations/file-watcher/index.d.ts.map +1 -0
  68. package/dist/plugins/implementations/file-watcher/index.js +212 -0
  69. package/dist/plugins/implementations/file-watcher/index.js.map +1 -0
  70. package/dist/plugins/implementations/github/index.d.ts +201 -0
  71. package/dist/plugins/implementations/github/index.d.ts.map +1 -0
  72. package/dist/plugins/implementations/github/index.js +337 -0
  73. package/dist/plugins/implementations/github/index.js.map +1 -0
  74. package/dist/plugins/implementations/slack/index.d.ts +153 -0
  75. package/dist/plugins/implementations/slack/index.d.ts.map +1 -0
  76. package/dist/plugins/implementations/slack/index.js +221 -0
  77. package/dist/plugins/implementations/slack/index.js.map +1 -0
  78. package/dist/plugins/index.d.ts +23 -0
  79. package/dist/plugins/index.d.ts.map +1 -0
  80. package/dist/plugins/index.js +35 -0
  81. package/dist/plugins/index.js.map +1 -0
  82. package/dist/plugins/plugin-manager.d.ts +66 -0
  83. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  84. package/dist/plugins/plugin-manager.js +198 -0
  85. package/dist/plugins/plugin-manager.js.map +1 -0
  86. package/dist/plugins/types.d.ts +102 -0
  87. package/dist/plugins/types.d.ts.map +1 -0
  88. package/dist/plugins/types.js +38 -0
  89. package/dist/plugins/types.js.map +1 -0
  90. package/dist/plugins/utils/security.d.ts +43 -0
  91. package/dist/plugins/utils/security.d.ts.map +1 -0
  92. package/dist/plugins/utils/security.js +115 -0
  93. package/dist/plugins/utils/security.js.map +1 -0
  94. package/dist/query-engine/index.d.ts +10 -0
  95. package/dist/query-engine/index.d.ts.map +1 -0
  96. package/dist/query-engine/index.js +10 -0
  97. package/dist/query-engine/index.js.map +1 -0
  98. package/dist/query-engine/navigator-loader.d.ts +37 -0
  99. package/dist/query-engine/navigator-loader.d.ts.map +1 -0
  100. package/dist/query-engine/navigator-loader.js +167 -0
  101. package/dist/query-engine/navigator-loader.js.map +1 -0
  102. package/dist/query-engine/output-formatter.d.ts +55 -0
  103. package/dist/query-engine/output-formatter.d.ts.map +1 -0
  104. package/dist/query-engine/output-formatter.js +165 -0
  105. package/dist/query-engine/output-formatter.js.map +1 -0
  106. package/dist/query-engine/response-validator.d.ts +55 -0
  107. package/dist/query-engine/response-validator.d.ts.map +1 -0
  108. package/dist/query-engine/response-validator.js +92 -0
  109. package/dist/query-engine/response-validator.js.map +1 -0
  110. package/dist/templates/.gitignore.template +23 -0
  111. package/dist/templates/CLAUDE-pack.md.template +32 -0
  112. package/dist/templates/CLAUDE.md.template +128 -0
  113. package/dist/templates/README.md.template +174 -0
  114. package/dist/templates/config-pack.json.template +16 -0
  115. package/dist/templates/config.json.template +11 -0
  116. package/dist/templates/index.d.ts +22 -0
  117. package/dist/templates/index.d.ts.map +1 -0
  118. package/dist/templates/index.js +32 -0
  119. package/dist/templates/index.js.map +1 -0
  120. package/dist/templates/plugins.json.template +33 -0
  121. package/dist/templates/system-configuration.md.template +66 -0
  122. package/dist/tools/handler.d.ts +20 -0
  123. package/dist/tools/handler.d.ts.map +1 -0
  124. package/dist/tools/handler.js +202 -0
  125. package/dist/tools/handler.js.map +1 -0
  126. package/dist/tools/index.d.ts +10 -0
  127. package/dist/tools/index.d.ts.map +1 -0
  128. package/dist/tools/index.js +10 -0
  129. package/dist/tools/index.js.map +1 -0
  130. package/dist/tools/response.d.ts +30 -0
  131. package/dist/tools/response.d.ts.map +1 -0
  132. package/dist/tools/response.js +68 -0
  133. package/dist/tools/response.js.map +1 -0
  134. package/dist/tools/self-config.d.ts +54 -0
  135. package/dist/tools/self-config.d.ts.map +1 -0
  136. package/dist/tools/self-config.js +84 -0
  137. package/dist/tools/self-config.js.map +1 -0
  138. package/dist/validation/index.d.ts +19 -0
  139. package/dist/validation/index.d.ts.map +1 -0
  140. package/dist/validation/index.js +91 -0
  141. package/dist/validation/index.js.map +1 -0
  142. 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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=nav-chat.d.ts.map
@@ -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":";AAEA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAerF,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAI/B,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,IAAI,aAAiC,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,gBAAgB;IAChB,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,kBAAkB;IAClB,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE5D,0BAA0B;IAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,iCAAiC,aAAa,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,yDAAyD,aAAa,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,IAAI,MAA0E,CAAC;IAC/E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,WAAW,CAAC;IAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAEpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,yCAAyC,gBAAgB,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,CAAC,kBAAkB,gBAAgB,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEhE,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW,CAAC,CAAC;IAExF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,sCAAsC,iBAAiB,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,iBAAiB,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,kBAAkB,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC,IAAI;YAC1B,aAAa;YACb,qBAAqB,EAAE,YAAY;YACnC,iBAAiB;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=nav-init.d.ts.map
@@ -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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=nav-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-query.d.ts","sourceRoot":"","sources":["../../src/cli/nav-query.ts"],"names":[],"mappings":""}