@autonav/core 1.12.1 → 2.0.1

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 (59) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter/navigator-adapter.d.ts +2 -1
  3. package/dist/adapter/navigator-adapter.d.ts.map +1 -1
  4. package/dist/adapter/navigator-adapter.js +31 -2
  5. package/dist/adapter/navigator-adapter.js.map +1 -1
  6. package/dist/cli/nav-chat.d.ts.map +1 -1
  7. package/dist/cli/nav-chat.js +57 -35
  8. package/dist/cli/nav-chat.js.map +1 -1
  9. package/dist/cli/nav-init.d.ts.map +1 -1
  10. package/dist/cli/nav-init.js +20 -0
  11. package/dist/cli/nav-init.js.map +1 -1
  12. package/dist/cli/nav-mend.js +5 -5
  13. package/dist/cli/nav-mend.js.map +1 -1
  14. package/dist/cli/nav-query.d.ts.map +1 -1
  15. package/dist/cli/nav-query.js +37 -4
  16. package/dist/cli/nav-query.js.map +1 -1
  17. package/dist/cli/nav-update.d.ts.map +1 -1
  18. package/dist/cli/nav-update.js +37 -4
  19. package/dist/cli/nav-update.js.map +1 -1
  20. package/dist/cli/resolve-nav.d.ts +11 -0
  21. package/dist/cli/resolve-nav.d.ts.map +1 -0
  22. package/dist/cli/resolve-nav.js +71 -0
  23. package/dist/cli/resolve-nav.js.map +1 -0
  24. package/dist/conversation/App.d.ts +6 -4
  25. package/dist/conversation/App.d.ts.map +1 -1
  26. package/dist/conversation/App.js +70 -65
  27. package/dist/conversation/App.js.map +1 -1
  28. package/dist/conversation/index.d.ts +7 -3
  29. package/dist/conversation/index.d.ts.map +1 -1
  30. package/dist/conversation/index.js.map +1 -1
  31. package/dist/harness/chibi-harness.d.ts.map +1 -1
  32. package/dist/harness/chibi-harness.js +13 -6
  33. package/dist/harness/chibi-harness.js.map +1 -1
  34. package/dist/harness/claude-code-harness.d.ts.map +1 -1
  35. package/dist/harness/claude-code-harness.js +65 -7
  36. package/dist/harness/claude-code-harness.js.map +1 -1
  37. package/dist/harness/index.d.ts +1 -1
  38. package/dist/harness/index.d.ts.map +1 -1
  39. package/dist/harness/index.js +1 -1
  40. package/dist/harness/index.js.map +1 -1
  41. package/dist/harness/sandbox.d.ts +104 -20
  42. package/dist/harness/sandbox.d.ts.map +1 -1
  43. package/dist/harness/sandbox.js +261 -42
  44. package/dist/harness/sandbox.js.map +1 -1
  45. package/dist/harness/types.d.ts +4 -0
  46. package/dist/harness/types.d.ts.map +1 -1
  47. package/dist/interview/App.d.ts +2 -1
  48. package/dist/interview/App.d.ts.map +1 -1
  49. package/dist/interview/App.js +65 -57
  50. package/dist/interview/App.js.map +1 -1
  51. package/dist/interview/prompts.d.ts +1 -1
  52. package/dist/interview/prompts.d.ts.map +1 -1
  53. package/dist/interview/prompts.js +8 -5
  54. package/dist/interview/prompts.js.map +1 -1
  55. package/dist/tools/sandbox-query.d.ts +24 -0
  56. package/dist/tools/sandbox-query.d.ts.map +1 -0
  57. package/dist/tools/sandbox-query.js +172 -0
  58. package/dist/tools/sandbox-query.js.map +1 -0
  59. package/package.json +4 -1
@@ -5,7 +5,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
5
5
  * Uses the harness abstraction for LLM communication.
6
6
  */
7
7
  import { useState, useEffect, useCallback, useRef } from "react";
8
- import { Box, Text, useApp, useInput } from "ink";
8
+ import { Box, Text, Static, useApp, useInput } from "ink";
9
9
  import TextInput from "ink-text-input";
10
10
  import { getInterviewSystemPrompt, parseNavigatorConfig, } from "./prompts.js";
11
11
  import { saveProgress, clearProgress } from "./progress.js";
@@ -26,7 +26,7 @@ const CONFIG_GENERATION_STEPS = [
26
26
  { key: "scope", label: "Setting scope..." },
27
27
  { key: "knowledgeStructure", label: "Organizing knowledge structure..." },
28
28
  { key: "audience", label: "Identifying audience..." },
29
- { key: "autonomy", label: "Configuring autonomy..." },
29
+ { key: "sandbox", label: "Configuring sandbox..." },
30
30
  { key: "directories", label: "Suggesting directories..." },
31
31
  { key: "claudeMd", label: "Generating CLAUDE.md..." },
32
32
  ];
@@ -62,15 +62,15 @@ async function generateConfigFields(conversationHistory, systemPrompt, name, onP
62
62
  debugLog(" - Extracting audience...");
63
63
  const audience = await extractField("Based on the conversation, describe who the navigator serves and how communication style should adapt. Output ONLY the description. If not discussed, output 'default'.");
64
64
  onProgress(5, CONFIG_GENERATION_STEPS[4].label);
65
- debugLog(" - Extracting autonomy...");
66
- const autonomy = await extractField("Based on the conversation, describe the navigator's level of autonomous action (e.g., 'fully autonomous', 'ask before changes', etc.). Output ONLY the description. If not discussed, output 'default'.");
65
+ debugLog(" - Extracting sandbox...");
66
+ const sandbox = await extractField("Based on the conversation, describe the navigator's sandbox and permissions preferences: file access level (read-only or read+write), network access needs, required CLI tools, and per-operation settings. Output ONLY the description. If not discussed, output 'default'.");
67
67
  onProgress(6, CONFIG_GENERATION_STEPS[5].label);
68
68
  debugLog(" - Extracting suggestedDirectories...");
69
69
  const suggestedDirsRaw = await extractField("Based on the conversation, list the suggested directories for this navigator as a comma-separated list (e.g., 'knowledge, projects, archive'). Output ONLY the comma-separated list. If not discussed, output 'knowledge'.");
70
70
  // Generate claudeMd last (largest field)
71
71
  onProgress(7, CONFIG_GENERATION_STEPS[6].label);
72
72
  debugLog(" - Generating claudeMd...");
73
- const claudeMd = await extractField(`Generate the complete CLAUDE.md file for the "${name}" navigator based on the conversation. Output ONLY the raw markdown content, starting with "# ${name}". Include sections for: Purpose, Critical Boundaries (if any), Scope, Knowledge Structure, Communication Style, Grounding Rules, and Autonomy. Make it comprehensive based on everything discussed.`);
73
+ const claudeMd = await extractField(`Generate the complete CLAUDE.md file for the "${name}" navigator based on the conversation. Output ONLY the raw markdown content, starting with "# ${name}". Include sections for: Purpose, Critical Boundaries (if any), Scope, Knowledge Structure, Communication Style, Grounding Rules, and Sandbox & Permissions. Make it comprehensive based on everything discussed.`);
74
74
  // Parse suggestedDirectories from comma-separated string
75
75
  const suggestedDirectories = suggestedDirsRaw
76
76
  .split(",")
@@ -84,14 +84,16 @@ async function generateConfigFields(conversationHistory, systemPrompt, name, onP
84
84
  // Only include optional fields if they have meaningful values
85
85
  ...(knowledgeStructure !== "default" && { knowledgeStructure }),
86
86
  ...(audience !== "default" && { audience }),
87
- ...(autonomy !== "default" && { autonomy }),
87
+ ...(sandbox !== "default" && { sandbox }),
88
88
  ...(suggestedDirectories.length > 0 && { suggestedDirectories }),
89
89
  };
90
90
  }
91
91
  export function InterviewApp({ name, navigatorPath, packContext, analysisContext, initialMessages, onComplete, harness, }) {
92
92
  // Get the system prompt, customized for pack or analysis if provided
93
93
  const systemPrompt = getInterviewSystemPrompt(packContext, analysisContext);
94
- const [messages, setMessages] = useState(initialMessages || []);
94
+ const msgIdRef = useRef(initialMessages?.length || 0);
95
+ const [finalizedMessages, setFinalizedMessages] = useState(initialMessages?.map((m, i) => ({ ...m, id: i + 1 })) || []);
96
+ const [streamingMessage, setStreamingMessage] = useState(null);
95
97
  const [input, setInput] = useState("");
96
98
  // Don't start loading when resuming - we already have messages to display
97
99
  const [isLoading, setIsLoading] = useState(!initialMessages?.length);
@@ -116,28 +118,9 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
116
118
  const text = event.text;
117
119
  if (text) {
118
120
  fullText = text;
119
- setMessages((prev) => {
120
- const newMessages = [
121
- ...prev,
122
- { role: "assistant", content: text },
123
- ];
124
- // Save progress after assistant message
125
- try {
126
- const progress = {
127
- navigatorName: name,
128
- messages: newMessages,
129
- packContext,
130
- analysisContext,
131
- lastSaved: new Date().toISOString(),
132
- };
133
- saveProgress(navigatorPath, progress);
134
- debugLog("Progress saved after assistant message:", newMessages.length, "messages");
135
- }
136
- catch (err) {
137
- debugLog("Failed to save progress:", err);
138
- }
139
- return newMessages;
140
- });
121
+ // Update streaming message (live region only)
122
+ const id = msgIdRef.current; // reuse same id while streaming
123
+ setStreamingMessage({ role: "assistant", content: text, id });
141
124
  }
142
125
  }
143
126
  else if (event.type === "result") {
@@ -145,8 +128,31 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
145
128
  break;
146
129
  }
147
130
  }
148
- // Check if the response contains a navigator config
131
+ // Finalize: move streaming message to finalized list
149
132
  if (fullText) {
133
+ const finalId = ++msgIdRef.current;
134
+ const finalMsg = { role: "assistant", content: fullText, id: finalId };
135
+ setStreamingMessage(null);
136
+ setFinalizedMessages((prev) => {
137
+ const newMessages = [...prev, finalMsg];
138
+ // Save progress after assistant message
139
+ try {
140
+ const progress = {
141
+ navigatorName: name,
142
+ messages: newMessages,
143
+ packContext,
144
+ analysisContext,
145
+ lastSaved: new Date().toISOString(),
146
+ };
147
+ saveProgress(navigatorPath, progress);
148
+ debugLog("Progress saved after assistant message:", newMessages.length, "messages");
149
+ }
150
+ catch (err) {
151
+ debugLog("Failed to save progress:", err);
152
+ }
153
+ return newMessages;
154
+ });
155
+ // Check if the response contains a navigator config
150
156
  debugLog("Checking for navigator config in response...");
151
157
  const config = parseNavigatorConfig(fullText);
152
158
  if (config) {
@@ -163,7 +169,6 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
163
169
  debugLog("Failed to clear progress:", err);
164
170
  }
165
171
  // Defer onComplete to next tick to avoid render race conditions
166
- // This ensures the component finishes its current render before unmounting
167
172
  setTimeout(() => onComplete(config), 0);
168
173
  debugLog("onComplete scheduled, should be exiting soon");
169
174
  return;
@@ -227,11 +232,11 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
227
232
  }, [name, processResponse, initialMessages, harness, systemPrompt, analysisContext]);
228
233
  // Show hint after 5+ user messages
229
234
  useEffect(() => {
230
- const userMessageCount = messages.filter(m => m.role === 'user').length;
235
+ const userMessageCount = finalizedMessages.filter(m => m.role === 'user').length;
231
236
  if (userMessageCount >= 5 && !showHint) {
232
237
  setShowHint(true);
233
238
  }
234
- }, [messages, showHint]);
239
+ }, [finalizedMessages, showHint]);
235
240
  // Handle user input submission
236
241
  const handleSubmit = useCallback(async (value) => {
237
242
  if (!value.trim() || isLoading || completedRef.current)
@@ -242,7 +247,7 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
242
247
  // Fast path: when user says "done", check if any recent assistant message already has valid config
243
248
  // This handles the race condition where Claude generated valid JSON but the interview didn't exit
244
249
  if (isDoneCommand) {
245
- const assistantMessages = messages.filter(m => m.role === 'assistant');
250
+ const assistantMessages = finalizedMessages.filter(m => m.role === 'assistant');
246
251
  // Check the last 3 assistant messages for a valid config
247
252
  for (let i = assistantMessages.length - 1; i >= Math.max(0, assistantMessages.length - 3); i--) {
248
253
  const msg = assistantMessages[i];
@@ -264,7 +269,7 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
264
269
  setIsLoading(true);
265
270
  setCompletionStep(CONFIG_GENERATION_STEPS[0].label);
266
271
  try {
267
- const conversationHistory = messages
272
+ const conversationHistory = finalizedMessages
268
273
  .map((m) => `<${m.role}>\n${m.content}\n</${m.role}>`)
269
274
  .join("\n\n");
270
275
  const config = await generateConfigFields(conversationHistory, systemPrompt, name, (_step, label) => setCompletionStep(label), harness);
@@ -283,29 +288,32 @@ export function InterviewApp({ name, navigatorPath, packContext, analysisContext
283
288
  return; // Don't fall through to normal conversation flow
284
289
  }
285
290
  setInput("");
286
- const newMessages = [...messages, { role: "user", content: value }];
287
- setMessages(newMessages);
291
+ const userId = ++msgIdRef.current;
292
+ const userMsg = { role: "user", content: value, id: userId };
293
+ setFinalizedMessages((prev) => {
294
+ const newMessages = [...prev, userMsg];
295
+ // Save progress after user input
296
+ try {
297
+ const progress = {
298
+ navigatorName: name,
299
+ messages: newMessages,
300
+ packContext,
301
+ analysisContext,
302
+ lastSaved: new Date().toISOString(),
303
+ };
304
+ saveProgress(navigatorPath, progress);
305
+ debugLog("Progress saved after user input:", newMessages.length, "messages");
306
+ }
307
+ catch (err) {
308
+ debugLog("Failed to save progress:", err);
309
+ }
310
+ return newMessages;
311
+ });
288
312
  setIsLoading(true);
289
- // Save progress after user input
290
- try {
291
- const progress = {
292
- navigatorName: name,
293
- messages: newMessages,
294
- packContext,
295
- analysisContext,
296
- lastSaved: new Date().toISOString(),
297
- };
298
- saveProgress(navigatorPath, progress);
299
- debugLog("Progress saved after user input:", newMessages.length, "messages");
300
- }
301
- catch (err) {
302
- debugLog("Failed to save progress:", err);
303
- // Don't block on save failures
304
- }
305
313
  try {
306
314
  debugLog("Sending user message:", value);
307
- // Build conversation history
308
- const conversationHistory = messages
315
+ // Build conversation history (use current finalizedMessages + new user message)
316
+ const conversationHistory = [...finalizedMessages, userMsg]
309
317
  .map((m) => `<${m.role}>\n${m.content}\n</${m.role}>`)
310
318
  .join("\n\n");
311
319
  // Normal conversation flow
@@ -332,13 +340,13 @@ Continue the interview by responding to their message. Remember: after gathering
332
340
  setError(err instanceof Error ? err.message : "Failed to send message");
333
341
  setIsLoading(false);
334
342
  }
335
- }, [isLoading, messages, systemPrompt, processResponse, name, navigatorPath, packContext, analysisContext, onComplete, harness]);
343
+ }, [isLoading, finalizedMessages, systemPrompt, processResponse, name, navigatorPath, packContext, analysisContext, onComplete, harness]);
336
344
  // Handle Ctrl+C to exit
337
345
  useInput((input, key) => {
338
346
  if (key.ctrl && input === "c") {
339
347
  exit();
340
348
  }
341
349
  });
342
- return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [messages.length === 0 && _jsx(Banner, { name: name, version: "1.2.0" }), messages.map((msg, i) => (_jsx(Box, { flexDirection: "column", children: msg.role === "user" ? (_jsx(UserResponse, { content: msg.content })) : (_jsxs(_Fragment, { children: [_jsx(SystemMessage, { content: msg.content }), i < messages.length - 1 && _jsx(Divider, {})] })) }, i))), error && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "red", children: ["\u2717 Error: ", error] }) })), isLoading && (_jsx(Box, { marginBottom: 1, children: _jsx(ActivityIndicator, { message: isCompleting && completionStep ? completionStep : isCompleting ? "completing interview..." : "thinking..." }) })), showHint && !isLoading && !error && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", children: "\u25B8 Tip: Type 'done' when ready to create your navigator" }) })), !isLoading && !error && (_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "green", bold: true, children: "▸ " }), _jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "Type your response..." })] }))] }));
350
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [finalizedMessages.length === 0 && !streamingMessage && _jsx(Banner, { name: name, version: "1.2.0" }), _jsx(Static, { items: finalizedMessages, children: (msg) => (_jsx(Box, { flexDirection: "column", children: msg.role === "user" ? (_jsx(UserResponse, { content: msg.content })) : (_jsxs(_Fragment, { children: [_jsx(SystemMessage, { content: msg.content }), _jsx(Divider, {})] })) }, msg.id)) }), streamingMessage && (_jsx(Box, { flexDirection: "column", children: _jsx(SystemMessage, { content: streamingMessage.content }) })), error && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: "red", children: ["\u2717 Error: ", error] }) })), isLoading && (_jsx(Box, { marginBottom: 1, children: _jsx(ActivityIndicator, { lines: 1, width: 30, message: isCompleting && completionStep ? completionStep : isCompleting ? "completing interview..." : "thinking..." }) })), showHint && !isLoading && !error && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", children: "\u25B8 Tip: Type 'done' when ready to create your navigator" }) })), !isLoading && !error && (_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "green", bold: true, children: "▸ " }), _jsx(TextInput, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "Type your response..." })] }))] }));
343
351
  }
344
352
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/interview/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/interview/App.tsx"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export interface NavigatorConfig {
26
26
  scope: string;
27
27
  knowledgeStructure?: string;
28
28
  audience?: string;
29
- autonomy?: string;
29
+ sandbox?: string;
30
30
  claudeMd: string;
31
31
  suggestedDirectories?: string[];
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/interview/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsFD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,CAAC,EAAE,WAAW,EACzB,eAAe,CAAC,EAAE,cAAc,GAC/B,MAAM,CA+DR;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAwB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAiCzE"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/interview/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyFD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,CAAC,EAAE,WAAW,EACzB,eAAe,CAAC,EAAE,cAAc,GAC/B,MAAM,CA+DR;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAwB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAiCzE"}
@@ -17,8 +17,11 @@ Guide the user through understanding their needs so you can create a well-config
17
17
  3. **Knowledge Structure**: How should knowledge be organized? (by topic, project, chronologically, as a journal, etc.)
18
18
  4. **Knowledge Sources**: What documentation will be added? How should new knowledge be captured over time?
19
19
  5. **Audience**: Who will use this? How should it communicate? (formal, casual, technical depth)
20
- 6. **Autonomy**: How autonomous should it be? Should it create/modify files freely, or ask first?
21
- 7. **Tools & CLI integrations**: Does the navigator need access to any CLI tools? (e.g., linear, gh, kubectl, npm).
20
+ 6. **Sandboxing & Permissions**: What should this navigator be allowed to do?
21
+ - File access: read-only, or read+write to its knowledge directory?
22
+ - Network: should it be able to make network requests?
23
+ - CLI tools: any specific tools it needs? (gh, kubectl, npm, etc.)
24
+ - Operations: which modes need sandboxing? (query is read-only by default, chat has full access)
22
25
 
23
26
  ## Philosophy
24
27
  Navs are "self-organizing notebooks that talk back" - they edit their own knowledge files, learn from conversations, and maintain their own context. Help the user think through how they want this self-organization to work.
@@ -54,7 +57,7 @@ The JSON must include:
54
57
  "scope": "Topics in scope and explicitly out of scope",
55
58
  "knowledgeStructure": "How knowledge should be organized (by topic, chronologically, by project, etc.)",
56
59
  "audience": "Who uses this navigator and how it should communicate",
57
- "autonomy": "Autonomy level - can it create files freely or should it ask first",
60
+ "sandbox": "Sandbox preferences - file access level, network access, required CLI tools, and per-operation sandbox settings",
58
61
  "claudeMd": "The complete CLAUDE.md content as a string with proper newlines (\\n)",
59
62
  "suggestedDirectories": ["optional", "array", "of", "subdirectories"]
60
63
  }
@@ -76,7 +79,7 @@ The claudeMd field should be a complete, personalized CLAUDE.md file based on wh
76
79
  - Domain-specific scope definition
77
80
  - Knowledge organization guidance
78
81
  - Response format expectations (MUST use submit_answer tool, NOT plain text/JSON)
79
- - Self-organization rules based on their autonomy preference
82
+ - Sandbox and permissions rules based on their access preferences
80
83
 
81
84
  **CRITICAL**: The CLAUDE.md MUST include a "Response Format" section instructing the navigator to use the submit_answer tool for all responses. Never instruct navigators to output raw JSON - they must always use the submit_answer tool with answer, sources, and confidence parameters.
82
85
 
@@ -117,7 +120,7 @@ Since this pack provides domain knowledge, you can focus more on:
117
120
  - How the user will use this specific domain knowledge
118
121
  - Their experience level with the domain
119
122
  - Specific customizations or preferences
120
- - How autonomous the navigator should be with the pack's knowledge
123
+ - What access and permissions the navigator needs for the pack's knowledge
121
124
  `;
122
125
  }
123
126
  prompt += packSection;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/interview/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAWpE;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6D5B,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;0EAkBkD,CAAC;AAE3E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAyB,EACzB,eAAgC;IAEhC,IAAI,MAAM,GAAG,qBAAqB,CAAC;IAEnC,uCAAuC;IACvC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,GAAG;;;6CAGuB,WAAW,CAAC,QAAQ,uBAAuB,WAAW,CAAC,WAAW;;CAE9G,CAAC;QAEE,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,WAAW,IAAI;;;;;;EAMnB,WAAW,CAAC,SAAS;;;;CAItB,CAAC;QACE,CAAC;aAAM,CAAC;YACN,WAAW,IAAI;;;;;;CAMpB,CAAC;QACE,CAAC;QAED,MAAM,IAAI,WAAW,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG;;;;;;iBAMX,eAAe,CAAC,OAAO;eACzB,eAAe,CAAC,KAAK;kBAClB,eAAe,CAAC,QAAQ;oBACtB,CAAC,eAAe,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;;;;CAShE,CAAC;QAEE,MAAM,IAAI,eAAe,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAe7D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAoB,CAAC;QAEvD,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzD,uCAAuC;YACvC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBACnE,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE;oBACjD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;oBAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;oBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gCAAgC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/interview/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAWpE;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgE5B,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;0EAkBkD,CAAC;AAE3E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAyB,EACzB,eAAgC;IAEhC,IAAI,MAAM,GAAG,qBAAqB,CAAC;IAEnC,uCAAuC;IACvC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,GAAG;;;6CAGuB,WAAW,CAAC,QAAQ,uBAAuB,WAAW,CAAC,WAAW;;CAE9G,CAAC;QAEE,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,WAAW,IAAI;;;;;;EAMnB,WAAW,CAAC,SAAS;;;;CAItB,CAAC;QACE,CAAC;aAAM,CAAC;YACN,WAAW,IAAI;;;;;;CAMpB,CAAC;QACE,CAAC;QAED,MAAM,IAAI,WAAW,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG;;;;;;iBAMX,eAAe,CAAC,OAAO;eACzB,eAAe,CAAC,KAAK;kBAClB,eAAe,CAAC,QAAQ;oBACtB,CAAC,eAAe,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;;;;;CAShE,CAAC;QAEE,MAAM,IAAI,eAAe,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAe7D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAoB,CAAC;QAEvD,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzD,uCAAuC;YACvC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBACnE,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE;oBACjD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;oBAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;oBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gCAAgC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Sandbox Query Tool
3
+ *
4
+ * MCP tool that lets navigators check "would this operation be allowed?"
5
+ * against the current sandbox policy. Uses nono-ts QueryContext for
6
+ * dry-run policy checks without actually applying any sandbox.
7
+ *
8
+ * This is read-only — it tells the navigator what's blocked and what
9
+ * config change would fix it, but cannot modify config.json itself.
10
+ * The navigator must ask the user to approve the change.
11
+ * Config changes take effect on next launch.
12
+ */
13
+ import { type Harness, type SandboxConfig } from "../harness/index.js";
14
+ /**
15
+ * Create an MCP server with the sandbox_query tool.
16
+ *
17
+ * The tool requires the current session's SandboxConfig so it can
18
+ * query the active policy. If no sandbox is active, all queries
19
+ * return "allowed".
20
+ */
21
+ export declare function createSandboxQueryMcpServer(harness: Harness, sandboxConfig: SandboxConfig | undefined): {
22
+ server: unknown;
23
+ };
24
+ //# sourceMappingURL=sandbox-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-query.d.ts","sourceRoot":"","sources":["../../src/tools/sandbox-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,aAAa,EAOnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAAG,SAAS;;EAsKzC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Sandbox Query Tool
3
+ *
4
+ * MCP tool that lets navigators check "would this operation be allowed?"
5
+ * against the current sandbox policy. Uses nono-ts QueryContext for
6
+ * dry-run policy checks without actually applying any sandbox.
7
+ *
8
+ * This is read-only — it tells the navigator what's blocked and what
9
+ * config change would fix it, but cannot modify config.json itself.
10
+ * The navigator must ask the user to approve the change.
11
+ * Config changes take effect on next launch.
12
+ */
13
+ import { z } from "zod";
14
+ import { querySandbox, querySandboxNetwork, getSandboxSummary, isSandboxEnabled, AccessMode, defineTool, } from "../harness/index.js";
15
+ /**
16
+ * Create an MCP server with the sandbox_query tool.
17
+ *
18
+ * The tool requires the current session's SandboxConfig so it can
19
+ * query the active policy. If no sandbox is active, all queries
20
+ * return "allowed".
21
+ */
22
+ export function createSandboxQueryMcpServer(harness, sandboxConfig) {
23
+ const sandboxQueryTool = defineTool("sandbox_query", `Check if a path or network operation would be allowed by the current sandbox policy.
24
+
25
+ Use this tool to diagnose permission issues — for example, when a CLI command fails
26
+ or a file operation is blocked. The tool returns the policy decision and a suggestion
27
+ for what config change would fix it (if denied).
28
+
29
+ Note: You cannot modify the sandbox config directly. Suggest changes to the user,
30
+ who must approve them in config.json. Changes take effect on next launch.`, {
31
+ path: z
32
+ .string()
33
+ .optional()
34
+ .describe("Absolute path to check access for"),
35
+ operation: z
36
+ .enum(["read", "write", "readwrite"])
37
+ .optional()
38
+ .default("read")
39
+ .describe("Type of access to check"),
40
+ checkNetwork: z
41
+ .boolean()
42
+ .optional()
43
+ .describe("Check if network access is allowed"),
44
+ checkCommand: z
45
+ .string()
46
+ .optional()
47
+ .describe("Check if a CLI command (e.g. 'linear') is allowed"),
48
+ }, async (args) => {
49
+ // If sandbox is not active, everything is allowed
50
+ if (!sandboxConfig || !isSandboxEnabled(sandboxConfig)) {
51
+ return {
52
+ content: [
53
+ {
54
+ type: "text",
55
+ text: JSON.stringify({
56
+ status: "allowed",
57
+ reason: "sandbox_disabled",
58
+ message: "Sandbox is not active — all operations are allowed.",
59
+ }),
60
+ },
61
+ ],
62
+ isError: false,
63
+ };
64
+ }
65
+ try {
66
+ // Check network access
67
+ if (args.checkNetwork) {
68
+ const result = querySandboxNetwork(sandboxConfig);
69
+ return {
70
+ content: [
71
+ {
72
+ type: "text",
73
+ text: JSON.stringify({
74
+ ...result,
75
+ ...(result.status === "denied"
76
+ ? {
77
+ suggestion: "Remove 'blockNetwork: true' from sandbox config in config.json, or set sandbox.chat.blockNetwork to false.",
78
+ }
79
+ : {}),
80
+ }),
81
+ },
82
+ ],
83
+ isError: false,
84
+ };
85
+ }
86
+ // Check command access
87
+ if (args.checkCommand) {
88
+ const isAllowed = sandboxConfig.allowedCommands?.includes(args.checkCommand) ?? false;
89
+ return {
90
+ content: [
91
+ {
92
+ type: "text",
93
+ text: JSON.stringify({
94
+ status: isAllowed ? "allowed" : "denied",
95
+ reason: isAllowed ? "command_allowed" : "command_not_in_allowlist",
96
+ command: args.checkCommand,
97
+ ...(isAllowed
98
+ ? {}
99
+ : {
100
+ suggestion: `Add '${args.checkCommand}' to permissions.allowedCommands in config.json. Example:\n"permissions": { "allowedCommands": ["${args.checkCommand}"] }`,
101
+ }),
102
+ }),
103
+ },
104
+ ],
105
+ isError: false,
106
+ };
107
+ }
108
+ // Check path access
109
+ if (args.path) {
110
+ const mode = args.operation === "write"
111
+ ? AccessMode.Write
112
+ : args.operation === "readwrite"
113
+ ? AccessMode.ReadWrite
114
+ : AccessMode.Read;
115
+ const result = querySandbox(sandboxConfig, args.path, mode);
116
+ return {
117
+ content: [
118
+ {
119
+ type: "text",
120
+ text: JSON.stringify({
121
+ ...result,
122
+ path: args.path,
123
+ operation: args.operation,
124
+ ...(result.status === "denied"
125
+ ? {
126
+ suggestion: args.operation === "read"
127
+ ? `Add '${args.path}' to permissions.allowedPaths or sandbox.chat.extraReadPaths in config.json.`
128
+ : `Add '${args.path}' to sandbox.chat.extraWritePaths in config.json, and set sandbox.chat.accessLevel to "readwrite".`,
129
+ }
130
+ : {}),
131
+ }),
132
+ },
133
+ ],
134
+ isError: false,
135
+ };
136
+ }
137
+ // No specific check requested — return policy summary
138
+ const summary = getSandboxSummary(sandboxConfig);
139
+ return {
140
+ content: [
141
+ {
142
+ type: "text",
143
+ text: JSON.stringify({
144
+ status: "info",
145
+ summary,
146
+ allowedCommands: sandboxConfig.allowedCommands ?? [],
147
+ message: "Use 'path', 'checkNetwork', or 'checkCommand' parameters to check specific operations.",
148
+ }),
149
+ },
150
+ ],
151
+ isError: false,
152
+ };
153
+ }
154
+ catch (error) {
155
+ const errorMsg = error instanceof Error ? error.message : String(error);
156
+ return {
157
+ content: [
158
+ {
159
+ type: "text",
160
+ text: JSON.stringify({
161
+ status: "error",
162
+ message: `Failed to query sandbox: ${errorMsg}`,
163
+ }),
164
+ },
165
+ ],
166
+ isError: true,
167
+ };
168
+ }
169
+ });
170
+ return harness.createToolServer("autonav-sandbox", [sandboxQueryTool]);
171
+ }
172
+ //# sourceMappingURL=sandbox-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-query.js","sourceRoot":"","sources":["../../src/tools/sandbox-query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autonav/core",
3
- "version": "1.12.1",
3
+ "version": "2.0.1",
4
4
  "description": "CLI tools and Claude SDK Adapter for Autonav navigators",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -75,6 +75,9 @@
75
75
  "typescript": "^5.3.0",
76
76
  "vitest": "^1.2.0"
77
77
  },
78
+ "optionalDependencies": {
79
+ "nono-ts": "^0.3.0"
80
+ },
78
81
  "peerDependencies": {
79
82
  "langsmith": "^0.3.0"
80
83
  },