@autonav/core 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/README.md +2 -2
  2. package/dist/adapter/index.d.ts +3 -3
  3. package/dist/adapter/index.d.ts.map +1 -1
  4. package/dist/adapter/index.js +3 -3
  5. package/dist/adapter/index.js.map +1 -1
  6. package/dist/adapter/navigator-adapter.d.ts +196 -0
  7. package/dist/adapter/navigator-adapter.d.ts.map +1 -0
  8. package/dist/adapter/navigator-adapter.js +579 -0
  9. package/dist/adapter/navigator-adapter.js.map +1 -0
  10. package/dist/cli/autonav.d.ts +2 -5
  11. package/dist/cli/autonav.d.ts.map +1 -1
  12. package/dist/cli/autonav.js +35 -49
  13. package/dist/cli/autonav.js.map +1 -1
  14. package/dist/cli/nav-chat.d.ts +2 -1
  15. package/dist/cli/nav-chat.d.ts.map +1 -1
  16. package/dist/cli/nav-chat.js +32 -3
  17. package/dist/cli/nav-chat.js.map +1 -1
  18. package/dist/cli/nav-init.d.ts +2 -1
  19. package/dist/cli/nav-init.d.ts.map +1 -1
  20. package/dist/cli/nav-init.js +12 -4
  21. package/dist/cli/nav-init.js.map +1 -1
  22. package/dist/cli/nav-install.d.ts +2 -1
  23. package/dist/cli/nav-install.d.ts.map +1 -1
  24. package/dist/cli/nav-install.js +4 -2
  25. package/dist/cli/nav-install.js.map +1 -1
  26. package/dist/cli/nav-memento.d.ts +21 -0
  27. package/dist/cli/nav-memento.d.ts.map +1 -0
  28. package/dist/cli/nav-memento.js +185 -0
  29. package/dist/cli/nav-memento.js.map +1 -0
  30. package/dist/cli/nav-mend.d.ts +2 -1
  31. package/dist/cli/nav-mend.d.ts.map +1 -1
  32. package/dist/cli/nav-mend.js +4 -1
  33. package/dist/cli/nav-mend.js.map +1 -1
  34. package/dist/cli/nav-migrate.d.ts +2 -1
  35. package/dist/cli/nav-migrate.d.ts.map +1 -1
  36. package/dist/cli/nav-migrate.js +2 -6
  37. package/dist/cli/nav-migrate.js.map +1 -1
  38. package/dist/cli/nav-query.d.ts +2 -1
  39. package/dist/cli/nav-query.d.ts.map +1 -1
  40. package/dist/cli/nav-query.js +12 -6
  41. package/dist/cli/nav-query.js.map +1 -1
  42. package/dist/cli/nav-standup.d.ts +18 -0
  43. package/dist/cli/nav-standup.d.ts.map +1 -0
  44. package/dist/cli/nav-standup.js +151 -0
  45. package/dist/cli/nav-standup.js.map +1 -0
  46. package/dist/cli/nav-uninstall.d.ts +2 -1
  47. package/dist/cli/nav-uninstall.d.ts.map +1 -1
  48. package/dist/cli/nav-uninstall.js +4 -2
  49. package/dist/cli/nav-uninstall.js.map +1 -1
  50. package/dist/cli/nav-update.d.ts +2 -1
  51. package/dist/cli/nav-update.d.ts.map +1 -1
  52. package/dist/cli/nav-update.js +11 -6
  53. package/dist/cli/nav-update.js.map +1 -1
  54. package/dist/conversation/App.d.ts +9 -2
  55. package/dist/conversation/App.d.ts.map +1 -1
  56. package/dist/conversation/App.js +304 -111
  57. package/dist/conversation/App.js.map +1 -1
  58. package/dist/conversation/index.d.ts +5 -0
  59. package/dist/conversation/index.d.ts.map +1 -1
  60. package/dist/conversation/index.js +17 -2
  61. package/dist/conversation/index.js.map +1 -1
  62. package/dist/harness/chibi-harness.d.ts +36 -0
  63. package/dist/harness/chibi-harness.d.ts.map +1 -0
  64. package/dist/harness/chibi-harness.js +383 -0
  65. package/dist/harness/chibi-harness.js.map +1 -0
  66. package/dist/harness/chibi-plugins/get_plugin_config +64 -0
  67. package/dist/harness/chibi-plugins/query_navigator +114 -0
  68. package/dist/harness/chibi-plugins/submit_answer +38 -0
  69. package/dist/harness/chibi-plugins/update_plugin_config +91 -0
  70. package/dist/harness/claude-code-harness.d.ts +24 -0
  71. package/dist/harness/claude-code-harness.d.ts.map +1 -0
  72. package/dist/harness/claude-code-harness.js +242 -0
  73. package/dist/harness/claude-code-harness.js.map +1 -0
  74. package/dist/harness/ephemeral-home.d.ts +34 -0
  75. package/dist/harness/ephemeral-home.d.ts.map +1 -0
  76. package/dist/harness/ephemeral-home.js +56 -0
  77. package/dist/harness/ephemeral-home.js.map +1 -0
  78. package/dist/harness/factory.d.ts +47 -0
  79. package/dist/harness/factory.d.ts.map +1 -0
  80. package/dist/harness/factory.js +84 -0
  81. package/dist/harness/factory.js.map +1 -0
  82. package/dist/harness/helpers.d.ts +58 -0
  83. package/dist/harness/helpers.d.ts.map +1 -0
  84. package/dist/harness/helpers.js +78 -0
  85. package/dist/harness/helpers.js.map +1 -0
  86. package/dist/harness/index.d.ts +14 -0
  87. package/dist/harness/index.d.ts.map +1 -0
  88. package/dist/harness/index.js +13 -0
  89. package/dist/harness/index.js.map +1 -0
  90. package/dist/harness/opencode-harness.d.ts +79 -0
  91. package/dist/harness/opencode-harness.d.ts.map +1 -0
  92. package/dist/harness/opencode-harness.js +537 -0
  93. package/dist/harness/opencode-harness.js.map +1 -0
  94. package/dist/harness/opencode-tools/get_plugin_config.ts +72 -0
  95. package/dist/harness/opencode-tools/query_navigator.ts +126 -0
  96. package/dist/harness/opencode-tools/submit_answer.ts +40 -0
  97. package/dist/harness/opencode-tools/update_plugin_config.ts +105 -0
  98. package/dist/harness/sandbox.d.ts +59 -0
  99. package/dist/harness/sandbox.d.ts.map +1 -0
  100. package/dist/harness/sandbox.js +152 -0
  101. package/dist/harness/sandbox.js.map +1 -0
  102. package/dist/harness/tool-server.d.ts +50 -0
  103. package/dist/harness/tool-server.d.ts.map +1 -0
  104. package/dist/harness/tool-server.js +27 -0
  105. package/dist/harness/tool-server.js.map +1 -0
  106. package/dist/harness/types.d.ts +168 -0
  107. package/dist/harness/types.d.ts.map +1 -0
  108. package/dist/harness/types.js +12 -0
  109. package/dist/harness/types.js.map +1 -0
  110. package/dist/index.d.ts +3 -2
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +4 -2
  113. package/dist/index.js.map +1 -1
  114. package/dist/interview/App.d.ts +4 -2
  115. package/dist/interview/App.d.ts.map +1 -1
  116. package/dist/interview/App.js +36 -56
  117. package/dist/interview/App.js.map +1 -1
  118. package/dist/interview/index.d.ts +3 -0
  119. package/dist/interview/index.d.ts.map +1 -1
  120. package/dist/interview/index.js +1 -0
  121. package/dist/interview/index.js.map +1 -1
  122. package/dist/interview/prompts.d.ts +3 -1
  123. package/dist/interview/prompts.d.ts.map +1 -1
  124. package/dist/interview/prompts.js +5 -1
  125. package/dist/interview/prompts.js.map +1 -1
  126. package/dist/interview/ui/ChatBanner.d.ts +17 -0
  127. package/dist/interview/ui/ChatBanner.d.ts.map +1 -0
  128. package/dist/interview/ui/ChatBanner.js +30 -0
  129. package/dist/interview/ui/ChatBanner.js.map +1 -0
  130. package/dist/interview/ui/ChatInput.d.ts +36 -0
  131. package/dist/interview/ui/ChatInput.d.ts.map +1 -0
  132. package/dist/interview/ui/ChatInput.js +304 -0
  133. package/dist/interview/ui/ChatInput.js.map +1 -0
  134. package/dist/interview/ui/MarkdownText.d.ts +13 -0
  135. package/dist/interview/ui/MarkdownText.d.ts.map +1 -0
  136. package/dist/interview/ui/MarkdownText.js +107 -0
  137. package/dist/interview/ui/MarkdownText.js.map +1 -0
  138. package/dist/interview/ui/index.d.ts +3 -0
  139. package/dist/interview/ui/index.d.ts.map +1 -1
  140. package/dist/interview/ui/index.js +3 -0
  141. package/dist/interview/ui/index.js.map +1 -1
  142. package/dist/memento/git-operations.d.ts +95 -0
  143. package/dist/memento/git-operations.d.ts.map +1 -0
  144. package/dist/memento/git-operations.js +256 -0
  145. package/dist/memento/git-operations.js.map +1 -0
  146. package/dist/memento/implementer-agent.d.ts +31 -0
  147. package/dist/memento/implementer-agent.d.ts.map +1 -0
  148. package/dist/memento/implementer-agent.js +95 -0
  149. package/dist/memento/implementer-agent.js.map +1 -0
  150. package/dist/memento/index.d.ts +32 -0
  151. package/dist/memento/index.d.ts.map +1 -0
  152. package/dist/memento/index.js +40 -0
  153. package/dist/memento/index.js.map +1 -0
  154. package/dist/memento/loop.d.ts +34 -0
  155. package/dist/memento/loop.d.ts.map +1 -0
  156. package/dist/memento/loop.js +1227 -0
  157. package/dist/memento/loop.js.map +1 -0
  158. package/dist/memento/matrix-animation.d.ts +103 -0
  159. package/dist/memento/matrix-animation.d.ts.map +1 -0
  160. package/dist/memento/matrix-animation.js +303 -0
  161. package/dist/memento/matrix-animation.js.map +1 -0
  162. package/dist/memento/nav-protocol.d.ts +30 -0
  163. package/dist/memento/nav-protocol.d.ts.map +1 -0
  164. package/dist/memento/nav-protocol.js +75 -0
  165. package/dist/memento/nav-protocol.js.map +1 -0
  166. package/dist/memento/prompts.d.ts +57 -0
  167. package/dist/memento/prompts.d.ts.map +1 -0
  168. package/dist/memento/prompts.js +208 -0
  169. package/dist/memento/prompts.js.map +1 -0
  170. package/dist/memento/rate-limit.d.ts +85 -0
  171. package/dist/memento/rate-limit.d.ts.map +1 -0
  172. package/dist/memento/rate-limit.js +221 -0
  173. package/dist/memento/rate-limit.js.map +1 -0
  174. package/dist/memento/types.d.ts +123 -0
  175. package/dist/memento/types.d.ts.map +1 -0
  176. package/dist/memento/types.js +30 -0
  177. package/dist/memento/types.js.map +1 -0
  178. package/dist/memento/worker-agent.d.ts +33 -0
  179. package/dist/memento/worker-agent.d.ts.map +1 -0
  180. package/dist/memento/worker-agent.js +93 -0
  181. package/dist/memento/worker-agent.js.map +1 -0
  182. package/dist/registry.d.ts +35 -0
  183. package/dist/registry.d.ts.map +1 -0
  184. package/dist/registry.js +87 -0
  185. package/dist/registry.js.map +1 -0
  186. package/dist/repo-analyzer/index.d.ts +2 -1
  187. package/dist/repo-analyzer/index.d.ts.map +1 -1
  188. package/dist/repo-analyzer/index.js +6 -17
  189. package/dist/repo-analyzer/index.js.map +1 -1
  190. package/dist/standup/config.d.ts +19 -0
  191. package/dist/standup/config.d.ts.map +1 -0
  192. package/dist/standup/config.js +42 -0
  193. package/dist/standup/config.js.map +1 -0
  194. package/dist/standup/index.d.ts +24 -0
  195. package/dist/standup/index.d.ts.map +1 -0
  196. package/dist/standup/index.js +29 -0
  197. package/dist/standup/index.js.map +1 -0
  198. package/dist/standup/loop.d.ts +36 -0
  199. package/dist/standup/loop.d.ts.map +1 -0
  200. package/dist/standup/loop.js +508 -0
  201. package/dist/standup/loop.js.map +1 -0
  202. package/dist/standup/prompts.d.ts +62 -0
  203. package/dist/standup/prompts.d.ts.map +1 -0
  204. package/dist/standup/prompts.js +211 -0
  205. package/dist/standup/prompts.js.map +1 -0
  206. package/dist/standup/standup-protocol.d.ts +33 -0
  207. package/dist/standup/standup-protocol.d.ts.map +1 -0
  208. package/dist/standup/standup-protocol.js +189 -0
  209. package/dist/standup/standup-protocol.js.map +1 -0
  210. package/dist/standup/types.d.ts +185 -0
  211. package/dist/standup/types.d.ts.map +1 -0
  212. package/dist/standup/types.js +67 -0
  213. package/dist/standup/types.js.map +1 -0
  214. package/dist/tools/cross-nav.d.ts +21 -0
  215. package/dist/tools/cross-nav.d.ts.map +1 -0
  216. package/dist/tools/cross-nav.js +93 -0
  217. package/dist/tools/cross-nav.js.map +1 -0
  218. package/dist/tools/index.d.ts +1 -0
  219. package/dist/tools/index.d.ts.map +1 -1
  220. package/dist/tools/index.js +1 -0
  221. package/dist/tools/index.js.map +1 -1
  222. package/dist/tools/related-navs-config.d.ts +15 -0
  223. package/dist/tools/related-navs-config.d.ts.map +1 -0
  224. package/dist/tools/related-navs-config.js +132 -0
  225. package/dist/tools/related-navs-config.js.map +1 -0
  226. package/dist/tools/related-navs.d.ts +23 -0
  227. package/dist/tools/related-navs.d.ts.map +1 -0
  228. package/dist/tools/related-navs.js +107 -0
  229. package/dist/tools/related-navs.js.map +1 -0
  230. package/dist/tools/response.d.ts +3 -2
  231. package/dist/tools/response.d.ts.map +1 -1
  232. package/dist/tools/response.js +7 -11
  233. package/dist/tools/response.js.map +1 -1
  234. package/dist/tools/self-config.d.ts +2 -1
  235. package/dist/tools/self-config.d.ts.map +1 -1
  236. package/dist/tools/self-config.js +5 -9
  237. package/dist/tools/self-config.js.map +1 -1
  238. package/package.json +4 -1
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Standup Types
3
+ *
4
+ * Core type definitions for the multi-navigator stand-up mode
5
+ * that orchestrates parallel status reports and sequential blocker sync.
6
+ */
7
+ import { z } from "zod";
8
+ /**
9
+ * Schema for a blocker reported by a navigator
10
+ */
11
+ export const BlockerSchema = z.object({
12
+ description: z.string().describe("What is blocking progress"),
13
+ needsFrom: z
14
+ .string()
15
+ .optional()
16
+ .describe("Navigator name that can help, or 'any' if anyone could help"),
17
+ severity: z.enum(["critical", "moderate", "minor"]).describe("How severely this blocks progress"),
18
+ });
19
+ /**
20
+ * Schema for a status report submitted by a navigator during the report phase
21
+ */
22
+ export const StatusReportSchema = z.object({
23
+ navigatorName: z.string().describe("Name of the reporting navigator"),
24
+ currentFocus: z.string().describe("What the navigator is currently working on"),
25
+ recentProgress: z.array(z.string()).describe("Recent accomplishments or progress items"),
26
+ blockers: z.array(BlockerSchema).describe("Current blockers"),
27
+ canHelpWith: z.array(z.string()).describe("Areas where this navigator could help others"),
28
+ knowledgeGaps: z
29
+ .array(z.string())
30
+ .optional()
31
+ .describe("Areas where the navigator lacks knowledge"),
32
+ });
33
+ /**
34
+ * Schema for a blocker resolution provided during the sync phase
35
+ */
36
+ export const BlockerResolutionSchema = z.object({
37
+ navigatorName: z
38
+ .string()
39
+ .describe("Name of the navigator whose blocker is being resolved"),
40
+ blockerDescription: z.string().describe("The blocker being addressed"),
41
+ resolution: z.string().describe("How the blocker was resolved or advice given"),
42
+ artifactPath: z
43
+ .string()
44
+ .optional()
45
+ .describe("Path to any artifact created to help resolve the blocker"),
46
+ confidence: z
47
+ .enum(["high", "medium", "low"])
48
+ .describe("Confidence in the resolution"),
49
+ });
50
+ /**
51
+ * Schema for a sync response submitted by a navigator during the sync phase
52
+ */
53
+ export const SyncResponseSchema = z.object({
54
+ navigatorName: z.string().describe("Name of the responding navigator"),
55
+ summary: z.string().describe("Summary of sync contributions"),
56
+ blockerResolutions: z
57
+ .array(BlockerResolutionSchema)
58
+ .describe("Resolutions for other navigators' blockers"),
59
+ newInsights: z
60
+ .array(z.string())
61
+ .optional()
62
+ .describe("New insights discovered while reviewing reports"),
63
+ followUpNeeded: z
64
+ .boolean()
65
+ .describe("Whether further follow-up is needed after this standup"),
66
+ });
67
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/standup/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC7D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAClG,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACrE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC/E,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACxF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACzF,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;CACzD,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,uDAAuD,CAAC;IACpE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACtE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC/E,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B,QAAQ,CAAC,8BAA8B,CAAC;CAC5C,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC7D,kBAAkB,EAAE,CAAC;SAClB,KAAK,CAAC,uBAAuB,CAAC;SAC9B,QAAQ,CAAC,4CAA4C,CAAC;IACzD,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cross-Navigator Query Tool
3
+ *
4
+ * MCP tool that enables agents to query other navigators on-demand.
5
+ * Replaces fragile skill-based patterns (ask-<nav> skills that run
6
+ * `autonav query` via bash) with a direct MCP tool call.
7
+ *
8
+ * Cycle detection: Tracks query depth via a closure counter.
9
+ * Rejects queries beyond MAX_DEPTH (3) to prevent infinite loops.
10
+ */
11
+ import { type Harness } from "../harness/index.js";
12
+ /**
13
+ * Create an MCP server with the query_navigator tool.
14
+ *
15
+ * Each session gets its own server instance. The harness is used
16
+ * to execute queries against target navigators.
17
+ */
18
+ export declare function createCrossNavMcpServer(harness: Harness, currentDepth?: number): {
19
+ server: unknown;
20
+ };
21
+ //# sourceMappingURL=cross-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-nav.d.ts","sourceRoot":"","sources":["../../src/tools/cross-nav.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,KAAK,OAAO,EAA2B,MAAM,qBAAqB,CAAC;AAI5E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,MAAU;;EAwFzB"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Cross-Navigator Query Tool
3
+ *
4
+ * MCP tool that enables agents to query other navigators on-demand.
5
+ * Replaces fragile skill-based patterns (ask-<nav> skills that run
6
+ * `autonav query` via bash) with a direct MCP tool call.
7
+ *
8
+ * Cycle detection: Tracks query depth via a closure counter.
9
+ * Rejects queries beyond MAX_DEPTH (3) to prevent infinite loops.
10
+ */
11
+ import { z } from "zod";
12
+ import { loadNavigator } from "../query-engine/navigator-loader.js";
13
+ import { collectText, defineTool } from "../harness/index.js";
14
+ const MAX_QUERY_DEPTH = 3;
15
+ /**
16
+ * Create an MCP server with the query_navigator tool.
17
+ *
18
+ * Each session gets its own server instance. The harness is used
19
+ * to execute queries against target navigators.
20
+ */
21
+ export function createCrossNavMcpServer(harness, currentDepth = 0) {
22
+ const queryNavigatorTool = defineTool("query_navigator", `Ask another navigator a question. Use this when you need information from a different navigator's knowledge base.
23
+
24
+ The target navigator will receive your question, search its knowledge base, and return an answer. This is useful for cross-domain questions that fall outside your own expertise.
25
+
26
+ Specify the navigator by its directory path (relative or absolute).`, {
27
+ navigator: z
28
+ .string()
29
+ .describe("Path to the target navigator directory (relative to cwd or absolute)"),
30
+ question: z
31
+ .string()
32
+ .min(5)
33
+ .describe("The question to ask the target navigator"),
34
+ }, async (args) => {
35
+ // Cycle detection
36
+ if (currentDepth >= MAX_QUERY_DEPTH) {
37
+ return {
38
+ content: [
39
+ {
40
+ type: "text",
41
+ text: JSON.stringify({
42
+ success: false,
43
+ error: `Query depth limit reached (max ${MAX_QUERY_DEPTH}). Cannot query another navigator from this depth.`,
44
+ }),
45
+ },
46
+ ],
47
+ isError: true,
48
+ };
49
+ }
50
+ try {
51
+ // Load target navigator
52
+ const nav = loadNavigator(args.navigator);
53
+ // Run query via harness
54
+ const session = harness.run({
55
+ model: "claude-haiku-4-5",
56
+ maxTurns: 10,
57
+ systemPrompt: nav.systemPrompt,
58
+ cwd: nav.navigatorPath,
59
+ }, args.question);
60
+ const responseText = await collectText(session);
61
+ return {
62
+ content: [
63
+ {
64
+ type: "text",
65
+ text: JSON.stringify({
66
+ success: true,
67
+ navigator: nav.config.name,
68
+ response: responseText,
69
+ }),
70
+ },
71
+ ],
72
+ isError: false,
73
+ };
74
+ }
75
+ catch (error) {
76
+ const errorMsg = error instanceof Error ? error.message : String(error);
77
+ return {
78
+ content: [
79
+ {
80
+ type: "text",
81
+ text: JSON.stringify({
82
+ success: false,
83
+ error: `Failed to query navigator: ${errorMsg}`,
84
+ }),
85
+ },
86
+ ],
87
+ isError: true,
88
+ };
89
+ }
90
+ });
91
+ return harness.createToolServer("autonav-cross-nav", [queryNavigatorTool]);
92
+ }
93
+ //# sourceMappingURL=cross-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-nav.js","sourceRoot":"","sources":["../../src/tools/cross-nav.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAgB,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,eAAuB,CAAC;IAExB,MAAM,kBAAkB,GAAG,UAAU,CACnC,iBAAiB,EACjB;;;;oEAIgE,EAChE;QACE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,CACP,sEAAsE,CACvE;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,0CAA0C,CAAC;KACxD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,kBAAkB;QAClB,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,kCAAkC,eAAe,oDAAoD;yBAC7G,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE1C,wBAAwB;YACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CACzB;gBACE,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,GAAG,EAAE,GAAG,CAAC,aAAa;aACvB,EACD,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;YAEhD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,IAAI;4BACb,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;4BAC1B,QAAQ,EAAE,YAAY;yBACvB,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,8BAA8B,QAAQ,EAAE;yBAChD,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -7,4 +7,5 @@
7
7
  export { createSelfConfigMcpServer, CONFIGURABLE_PLUGINS, type ConfigurablePlugin, type UpdatePluginConfigInput, type GetPluginConfigInput, type SelfConfigResult, } from "./self-config.js";
8
8
  export { handleUpdatePluginConfig, handleGetPluginConfig, processToolCall, } from "./handler.js";
9
9
  export { createResponseMcpServer, SUBMIT_ANSWER_TOOL, type SubmitAnswerResult, } from "./response.js";
10
+ export { createCrossNavMcpServer, } from "./cross-nav.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
@@ -7,4 +7,5 @@
7
7
  export { createSelfConfigMcpServer, CONFIGURABLE_PLUGINS, } from "./self-config.js";
8
8
  export { handleUpdatePluginConfig, handleGetPluginConfig, processToolCall, } from "./handler.js";
9
9
  export { createResponseMcpServer, SUBMIT_ANSWER_TOOL, } from "./response.js";
10
+ export { createCrossNavMcpServer, } from "./cross-nav.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAKrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GAEnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAKrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GAEnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Self-Configuration Tools for Related Navigators
3
+ *
4
+ * Allows navigators to add/remove related navigators in their own config.json.
5
+ * Changes are written to disk but cannot update tools in the running session —
6
+ * the user is warned to restart.
7
+ */
8
+ import { type Harness } from "../harness/index.js";
9
+ /**
10
+ * Create self-config tools for managing related navigators.
11
+ */
12
+ export declare function createRelatedNavsConfigServer(navigatorPath: string, harness: Harness): {
13
+ server: unknown;
14
+ };
15
+ //# sourceMappingURL=related-navs-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-navs-config.d.ts","sourceRoot":"","sources":["../../src/tools/related-navs-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA8B/D;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACf;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAiHrB"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Self-Configuration Tools for Related Navigators
3
+ *
4
+ * Allows navigators to add/remove related navigators in their own config.json.
5
+ * Changes are written to disk but cannot update tools in the running session —
6
+ * the user is warned to restart.
7
+ */
8
+ import * as fs from "node:fs";
9
+ import * as path from "node:path";
10
+ import { z } from "zod";
11
+ import { defineTool } from "../harness/index.js";
12
+ /**
13
+ * Read relatedNavigators from a config.json file.
14
+ */
15
+ function readRelatedNavs(configPath) {
16
+ try {
17
+ const content = fs.readFileSync(configPath, "utf-8");
18
+ const config = JSON.parse(content);
19
+ return Array.isArray(config.relatedNavigators) ? config.relatedNavigators : [];
20
+ }
21
+ catch {
22
+ return [];
23
+ }
24
+ }
25
+ /**
26
+ * Write relatedNavigators to a config.json file (preserving other fields).
27
+ */
28
+ function writeRelatedNavs(configPath, navs) {
29
+ const content = fs.readFileSync(configPath, "utf-8");
30
+ const config = JSON.parse(content);
31
+ config.relatedNavigators = navs;
32
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
33
+ }
34
+ /**
35
+ * Create self-config tools for managing related navigators.
36
+ */
37
+ export function createRelatedNavsConfigServer(navigatorPath, harness) {
38
+ const configPath = path.join(navigatorPath, "config.json");
39
+ const getRelatedNavigators = defineTool("get_related_navigators", "List all related navigators configured for this navigator.", {}, async () => {
40
+ const navs = readRelatedNavs(configPath);
41
+ return {
42
+ content: [
43
+ {
44
+ type: "text",
45
+ text: JSON.stringify({ success: true, relatedNavigators: navs }),
46
+ },
47
+ ],
48
+ isError: false,
49
+ };
50
+ });
51
+ const updateRelatedNavigators = defineTool("update_related_navigators", `Add or remove related navigators. Changes are saved to config.json.
52
+
53
+ IMPORTANT: New tools (ask_<name>) will only appear after restarting the session. Inform the user they need to restart for changes to take effect.`, {
54
+ action: z.enum(["add", "remove"]).describe("Whether to add or remove a related navigator"),
55
+ name: z.string().min(1).describe("Navigator name (used to generate ask_<name> tool)"),
56
+ description: z.string().optional().describe("What this navigator knows about (required for add)"),
57
+ }, async (args) => {
58
+ const navs = readRelatedNavs(configPath);
59
+ if (args.action === "add") {
60
+ // Check for duplicates
61
+ if (navs.some((n) => n.name === args.name)) {
62
+ return {
63
+ content: [
64
+ {
65
+ type: "text",
66
+ text: JSON.stringify({
67
+ success: false,
68
+ error: `Navigator "${args.name}" is already a related navigator.`,
69
+ }),
70
+ },
71
+ ],
72
+ isError: true,
73
+ };
74
+ }
75
+ const entry = { name: args.name };
76
+ if (args.description) {
77
+ entry.description = args.description;
78
+ }
79
+ navs.push(entry);
80
+ writeRelatedNavs(configPath, navs);
81
+ return {
82
+ content: [
83
+ {
84
+ type: "text",
85
+ text: JSON.stringify({
86
+ success: true,
87
+ message: `Added "${args.name}" as a related navigator. The ask_${args.name.replace(/-/g, "_")} tool will be available after restarting the session.`,
88
+ relatedNavigators: navs,
89
+ }),
90
+ },
91
+ ],
92
+ isError: false,
93
+ };
94
+ }
95
+ // Remove
96
+ const idx = navs.findIndex((n) => n.name === args.name);
97
+ if (idx === -1) {
98
+ return {
99
+ content: [
100
+ {
101
+ type: "text",
102
+ text: JSON.stringify({
103
+ success: false,
104
+ error: `Navigator "${args.name}" is not in the related navigators list.`,
105
+ }),
106
+ },
107
+ ],
108
+ isError: true,
109
+ };
110
+ }
111
+ navs.splice(idx, 1);
112
+ writeRelatedNavs(configPath, navs);
113
+ return {
114
+ content: [
115
+ {
116
+ type: "text",
117
+ text: JSON.stringify({
118
+ success: true,
119
+ message: `Removed "${args.name}" from related navigators. Changes take effect after restarting the session.`,
120
+ relatedNavigators: navs,
121
+ }),
122
+ },
123
+ ],
124
+ isError: false,
125
+ };
126
+ });
127
+ return harness.createToolServer("autonav-related-navs-config", [
128
+ getRelatedNavigators,
129
+ updateRelatedNavigators,
130
+ ]);
131
+ }
132
+ //# sourceMappingURL=related-navs-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-navs-config.js","sourceRoot":"","sources":["../../src/tools/related-navs-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Per-Navigator Query Tools
3
+ *
4
+ * Generates one ask_<name> tool per related navigator listed in config.json.
5
+ * Each tool's handler runs in the autonav orchestrator process (outside any
6
+ * sandbox), resolves the target navigator's path from the global registry
7
+ * or env vars, spawns a new sandboxed session, and returns the response.
8
+ */
9
+ import { type Harness } from "../harness/index.js";
10
+ interface RelatedNavigator {
11
+ name: string;
12
+ description?: string;
13
+ }
14
+ /**
15
+ * Create an MCP/tool server with one ask_<name> tool per related navigator.
16
+ *
17
+ * Returns null if there are no related navigators configured.
18
+ */
19
+ export declare function createRelatedNavsMcpServer(harness: Harness, relatedNavigators: RelatedNavigator[], currentDepth?: number): {
20
+ server: unknown;
21
+ } | null;
22
+ export {};
23
+ //# sourceMappingURL=related-navs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-navs.d.ts","sourceRoot":"","sources":["../../src/tools/related-navs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,OAAO,EAAgD,MAAM,qBAAqB,CAAC;AAIjG,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,GAAE,MAAU,GACvB;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAyG5B"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Per-Navigator Query Tools
3
+ *
4
+ * Generates one ask_<name> tool per related navigator listed in config.json.
5
+ * Each tool's handler runs in the autonav orchestrator process (outside any
6
+ * sandbox), resolves the target navigator's path from the global registry
7
+ * or env vars, spawns a new sandboxed session, and returns the response.
8
+ */
9
+ import { z } from "zod";
10
+ import { loadNavigator } from "../query-engine/navigator-loader.js";
11
+ import { resolveNavigatorPath } from "../registry.js";
12
+ import { collectText, defineTool } from "../harness/index.js";
13
+ const MAX_QUERY_DEPTH = 3;
14
+ /**
15
+ * Create an MCP/tool server with one ask_<name> tool per related navigator.
16
+ *
17
+ * Returns null if there are no related navigators configured.
18
+ */
19
+ export function createRelatedNavsMcpServer(harness, relatedNavigators, currentDepth = 0) {
20
+ if (relatedNavigators.length === 0) {
21
+ return null;
22
+ }
23
+ const tools = relatedNavigators.map((nav) => {
24
+ const toolName = `ask_${nav.name.replace(/-/g, "_")}`;
25
+ const desc = nav.description
26
+ ? `Ask ${nav.name} a question. ${nav.name} is: ${nav.description}. Use this when you need information from ${nav.name}'s knowledge base.`
27
+ : `Ask ${nav.name} a question. Use this when you need information from ${nav.name}'s knowledge base.`;
28
+ return defineTool(toolName, desc, {
29
+ question: z
30
+ .string()
31
+ .min(5)
32
+ .describe(`The question to ask ${nav.name}`),
33
+ }, async (args) => {
34
+ // Cycle detection
35
+ if (currentDepth >= MAX_QUERY_DEPTH) {
36
+ return {
37
+ content: [
38
+ {
39
+ type: "text",
40
+ text: JSON.stringify({
41
+ success: false,
42
+ error: `Query depth limit reached (max ${MAX_QUERY_DEPTH}). Cannot query another navigator from this depth.`,
43
+ }),
44
+ },
45
+ ],
46
+ isError: true,
47
+ };
48
+ }
49
+ // Resolve navigator path
50
+ const navPath = resolveNavigatorPath(nav.name);
51
+ if (!navPath) {
52
+ return {
53
+ content: [
54
+ {
55
+ type: "text",
56
+ text: JSON.stringify({
57
+ success: false,
58
+ error: `Navigator "${nav.name}" not found. Register it with \`autonav init\` or set AUTONAV_NAV_PATH_${nav.name.toUpperCase().replace(/-/g, "_")} env var.`,
59
+ }),
60
+ },
61
+ ],
62
+ isError: true,
63
+ };
64
+ }
65
+ try {
66
+ const target = loadNavigator(navPath);
67
+ const session = harness.run({
68
+ model: "claude-haiku-4-5",
69
+ maxTurns: 10,
70
+ systemPrompt: target.systemPrompt,
71
+ cwd: target.navigatorPath,
72
+ }, args.question);
73
+ const responseText = await collectText(session);
74
+ return {
75
+ content: [
76
+ {
77
+ type: "text",
78
+ text: JSON.stringify({
79
+ success: true,
80
+ navigator: target.config.name,
81
+ response: responseText,
82
+ }),
83
+ },
84
+ ],
85
+ isError: false,
86
+ };
87
+ }
88
+ catch (error) {
89
+ const errorMsg = error instanceof Error ? error.message : String(error);
90
+ return {
91
+ content: [
92
+ {
93
+ type: "text",
94
+ text: JSON.stringify({
95
+ success: false,
96
+ error: `Failed to query ${nav.name}: ${errorMsg}`,
97
+ }),
98
+ },
99
+ ],
100
+ isError: true,
101
+ };
102
+ }
103
+ });
104
+ });
105
+ return harness.createToolServer("autonav-related-navs", tools);
106
+ }
107
+ //# sourceMappingURL=related-navs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"related-navs.js","sourceRoot":"","sources":["../../src/tools/related-navs.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * Uses MCP format for integration with Claude Agent SDK.
9
9
  */
10
+ import { type Harness } from "../harness/index.js";
10
11
  /**
11
12
  * Result type returned when submit_answer tool is called
12
13
  */
@@ -22,9 +23,9 @@ export interface SubmitAnswerResult {
22
23
  * This achieves the same result as Claude's Structured Outputs
23
24
  * but works within the Claude Agent SDK's tool use flow.
24
25
  */
25
- export declare function createResponseMcpServer(): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
26
+ export declare function createResponseMcpServer(harness: Harness): unknown;
26
27
  /**
27
- * Tool name constant for detection in ClaudeAdapter
28
+ * Tool name constant for detection in NavigatorAdapter
28
29
  */
29
30
  export declare const SUBMIT_ANSWER_TOOL = "submit_answer";
30
31
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,4EAgEtC;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,WA4DvD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC"}
@@ -8,8 +8,8 @@
8
8
  * Uses MCP format for integration with Claude Agent SDK.
9
9
  */
10
10
  import { z } from "zod";
11
- import { tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";
12
11
  import { NavigatorResponseSchema, PROTOCOL_VERSION, } from "@autonav/communication-layer";
12
+ import { defineTool } from "../harness/index.js";
13
13
  /**
14
14
  * Create an MCP server with response tools
15
15
  *
@@ -18,8 +18,8 @@ import { NavigatorResponseSchema, PROTOCOL_VERSION, } from "@autonav/communicati
18
18
  * This achieves the same result as Claude's Structured Outputs
19
19
  * but works within the Claude Agent SDK's tool use flow.
20
20
  */
21
- export function createResponseMcpServer() {
22
- const submitAnswerTool = tool("submit_answer", `Submit your final answer to the user's question. You MUST use this tool to provide your response.
21
+ export function createResponseMcpServer(harness) {
22
+ const submitAnswerTool = defineTool("submit_answer", `Submit your final answer to the user's question. You MUST use this tool to provide your response.
23
23
 
24
24
  This ensures your answer follows the required structure with proper source citations.
25
25
  Do NOT respond with plain text - always use this tool to submit your answer.`, {
@@ -36,14 +36,14 @@ Do NOT respond with plain text - always use this tool to submit your answer.`, {
36
36
  // Validate against the full schema (adds protocolVersion, timestamp, etc.)
37
37
  const response = NavigatorResponseSchema.parse({
38
38
  protocolVersion: PROTOCOL_VERSION,
39
- query: "", // Will be populated by ClaudeAdapter
39
+ query: "", // Will be populated by NavigatorAdapter
40
40
  answer: args.answer,
41
41
  sources: args.sources,
42
42
  confidence: args.confidence,
43
43
  confidenceReason: args.confidenceReason,
44
44
  outOfDomain: args.outOfDomain,
45
45
  });
46
- // Return success - the ClaudeAdapter will extract the response
46
+ // Return success - the NavigatorAdapter will extract the response
47
47
  return {
48
48
  content: [
49
49
  {
@@ -58,14 +58,10 @@ Do NOT respond with plain text - always use this tool to submit your answer.`, {
58
58
  isError: false,
59
59
  };
60
60
  });
61
- return createSdkMcpServer({
62
- name: "autonav-response",
63
- version: "1.0.0",
64
- tools: [submitAnswerTool],
65
- });
61
+ return harness.createToolServer("autonav-response", [submitAnswerTool]).server;
66
62
  }
67
63
  /**
68
- * Tool name constant for detection in ClaudeAdapter
64
+ * Tool name constant for detection in NavigatorAdapter
69
65
  */
70
66
  export const SUBMIT_ANSWER_TOOL = "submit_answer";
71
67
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAUtC;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,gBAAgB,GAAG,IAAI,CAC3B,eAAe,EACf;;;6EAGyE,EACzE;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAChC,uIAAuI,CACxI;QACD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SAClG,CAAC,CACH,CAAC,QAAQ,CACR,iIAAiI,CAClI;QACD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CACpD,4IAA4I,CAC7I;QACD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAC3C,iHAAiH,CAClH;QACD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAC/B,mIAAmI,CACpI;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC;YAC7C,eAAe,EAAE,gBAAgB;YACjC,KAAK,EAAE,EAAE,EAAE,qCAAqC;YAChD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,+DAA+D;QAC/D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,+BAA+B;wBACxC,QAAQ;qBACT,CAAC;iBACH;aACF;YACD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,kBAAkB,CAAC;QACxB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,gBAAgB,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/tools/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAU/D;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,gBAAgB,GAAG,UAAU,CACjC,eAAe,EACf;;;6EAGyE,EACzE;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAChC,uIAAuI,CACxI;QACD,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SAClG,CAAC,CACH,CAAC,QAAQ,CACR,iIAAiI,CAClI;QACD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CACpD,4IAA4I,CAC7I;QACD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAC3C,iHAAiH,CAClH;QACD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAC/B,mIAAmI,CACpI;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC;YAC7C,eAAe,EAAE,gBAAgB;YACjC,KAAK,EAAE,EAAE,EAAE,wCAAwC;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,kEAAkE;QAClE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,+BAA+B;wBACxC,QAAQ;qBACT,CAAC;iBACH;aACF;YACD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC"}
@@ -11,6 +11,7 @@
11
11
  * Nav: [Uses update_plugin_config tool to schedule check-in]
12
12
  */
13
13
  import type { PluginManager } from "../plugins/index.js";
14
+ import { type Harness } from "../harness/index.js";
14
15
  /**
15
16
  * Available plugins that can be configured
16
17
  */
@@ -50,5 +51,5 @@ export interface SelfConfigResult {
50
51
  * @param pluginManager - Optional plugin manager for runtime updates
51
52
  * @param pluginsConfigPath - Path to the plugins.json configuration file
52
53
  */
53
- export declare function createSelfConfigMcpServer(pluginManager: PluginManager | undefined, pluginsConfigPath: string): import("@anthropic-ai/claude-agent-sdk").McpSdkServerConfigWithInstance;
54
+ export declare function createSelfConfigMcpServer(pluginManager: PluginManager | undefined, pluginsConfigPath: string, harness: Harness): unknown;
54
55
  //# sourceMappingURL=self-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"self-config.d.ts","sourceRoot":"","sources":["../../src/tools/self-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD;;GAEG;AACH,eAAO,MAAM,oBAAoB,iDAAkD,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,kBAAkB,GAAG,KAAK,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,iBAAiB,EAAE,MAAM,2EAmF1B"}
1
+ {"version":3,"file":"self-config.d.ts","sourceRoot":"","sources":["../../src/tools/self-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,iDAAkD,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,kBAAkB,GAAG,KAAK,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,OAAO,WA+EjB"}