expandai 0.0.2 → 0.0.3

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 (271) hide show
  1. package/README.md +42 -5
  2. package/build/dts/ApiClient.d.ts +128 -194
  3. package/build/dts/ApiClient.d.ts.map +1 -1
  4. package/build/dts/Auth/Domain.d.ts +95 -0
  5. package/build/dts/Auth/Domain.d.ts.map +1 -0
  6. package/build/dts/Auth/ManualAuthorization.d.ts +107 -0
  7. package/build/dts/Auth/ManualAuthorization.d.ts.map +1 -0
  8. package/build/dts/Auth/PendingInit.d.ts +35 -0
  9. package/build/dts/Auth/PendingInit.d.ts.map +1 -0
  10. package/build/dts/Auth/Pkce.d.ts +10 -0
  11. package/build/dts/Auth/Pkce.d.ts.map +1 -0
  12. package/build/dts/Auth/SetupGrantAuthorization.d.ts +34 -0
  13. package/build/dts/Auth/SetupGrantAuthorization.d.ts.map +1 -0
  14. package/build/dts/Authentication.d.ts +10 -9
  15. package/build/dts/Authentication.d.ts.map +1 -1
  16. package/build/dts/BrowserOAuth.d.ts +7 -7
  17. package/build/dts/BrowserOAuth.d.ts.map +1 -1
  18. package/build/dts/CommandPath.d.ts +2 -0
  19. package/build/dts/CommandPath.d.ts.map +1 -0
  20. package/build/dts/Commands/Fetch.d.ts.map +1 -1
  21. package/build/dts/Commands/Hook.d.ts +5 -5
  22. package/build/dts/Commands/Init.d.ts +55 -0
  23. package/build/dts/Commands/Init.d.ts.map +1 -0
  24. package/build/dts/Commands/Mcp.d.ts +6 -6
  25. package/build/dts/Commands/Search.d.ts.map +1 -1
  26. package/build/dts/Commands/Skill.d.ts +4 -4
  27. package/build/dts/Commands/Status.d.ts +27 -0
  28. package/build/dts/Commands/Status.d.ts.map +1 -0
  29. package/build/dts/Commands/Telemetry.d.ts +7 -0
  30. package/build/dts/Commands/Telemetry.d.ts.map +1 -0
  31. package/build/dts/Commands/Uninstall.d.ts +4 -4
  32. package/build/dts/Config.d.ts +108 -17
  33. package/build/dts/Config.d.ts.map +1 -1
  34. package/build/dts/Hook/SnapshotNote.d.ts +8 -4
  35. package/build/dts/Hook/SnapshotNote.d.ts.map +1 -1
  36. package/build/dts/Init/ClaudeAdapter.d.ts +61 -0
  37. package/build/dts/Init/ClaudeAdapter.d.ts.map +1 -0
  38. package/build/dts/Init/ClaudeProfile.d.ts +78 -0
  39. package/build/dts/Init/ClaudeProfile.d.ts.map +1 -0
  40. package/build/dts/Init/Domain.d.ts +139 -0
  41. package/build/dts/Init/Domain.d.ts.map +1 -0
  42. package/build/dts/Init/HarnessAdapter.d.ts +33 -0
  43. package/build/dts/Init/HarnessAdapter.d.ts.map +1 -0
  44. package/build/dts/Init/HarnessDetector.d.ts +19 -0
  45. package/build/dts/Init/HarnessDetector.d.ts.map +1 -0
  46. package/build/dts/Init/HarnessRegistry.d.ts +50 -0
  47. package/build/dts/Init/HarnessRegistry.d.ts.map +1 -0
  48. package/build/dts/Init/MutationTransaction.d.ts +96 -0
  49. package/build/dts/Init/MutationTransaction.d.ts.map +1 -0
  50. package/build/dts/Init/Service.d.ts +72 -0
  51. package/build/dts/Init/Service.d.ts.map +1 -0
  52. package/build/dts/Init/StandardAdapters.d.ts +42 -0
  53. package/build/dts/Init/StandardAdapters.d.ts.map +1 -0
  54. package/build/dts/Init/Status.d.ts +149 -0
  55. package/build/dts/Init/Status.d.ts.map +1 -0
  56. package/build/dts/Install/Claude/Hook.d.ts +85 -25
  57. package/build/dts/Install/Claude/Hook.d.ts.map +1 -1
  58. package/build/dts/Install/Claude/Mcp.d.ts +21 -18
  59. package/build/dts/Install/Claude/Mcp.d.ts.map +1 -1
  60. package/build/dts/Install/Claude/Skill.d.ts +14 -15
  61. package/build/dts/Install/Claude/Skill.d.ts.map +1 -1
  62. package/build/dts/Install/Codex/Mcp.d.ts +14 -8
  63. package/build/dts/Install/Codex/Mcp.d.ts.map +1 -1
  64. package/build/dts/Install/Codex/Skill.d.ts +4 -2
  65. package/build/dts/Install/Codex/Skill.d.ts.map +1 -1
  66. package/build/dts/Install/Cursor/Mcp.d.ts +13 -13
  67. package/build/dts/Install/Cursor/Mcp.d.ts.map +1 -1
  68. package/build/dts/Install/Cursor/Skill.d.ts +4 -2
  69. package/build/dts/Install/Cursor/Skill.d.ts.map +1 -1
  70. package/build/dts/Install/Domain.d.ts +35 -5
  71. package/build/dts/Install/Domain.d.ts.map +1 -1
  72. package/build/dts/Install/Hook.d.ts +4 -4
  73. package/build/dts/Install/Hook.d.ts.map +1 -1
  74. package/build/dts/Install/Mcp.d.ts +5 -5
  75. package/build/dts/Install/Mcp.d.ts.map +1 -1
  76. package/build/dts/Install/Opencode/Hook.d.ts +4 -3
  77. package/build/dts/Install/Opencode/Hook.d.ts.map +1 -1
  78. package/build/dts/Install/Opencode/Mcp.d.ts +11 -11
  79. package/build/dts/Install/Opencode/Mcp.d.ts.map +1 -1
  80. package/build/dts/Install/Opencode/Skill.d.ts +4 -2
  81. package/build/dts/Install/Opencode/Skill.d.ts.map +1 -1
  82. package/build/dts/Install/Skill.d.ts +3 -3
  83. package/build/dts/Install/Uninstall.d.ts +6 -6
  84. package/build/dts/Install/Uninstall.d.ts.map +1 -1
  85. package/build/dts/MarkdownAnsi.d.ts +29 -0
  86. package/build/dts/MarkdownAnsi.d.ts.map +1 -0
  87. package/build/dts/Mcp/ExpandDocs.d.ts +17 -5
  88. package/build/dts/Mcp/ExpandDocs.d.ts.map +1 -1
  89. package/build/dts/Mcp/Server.d.ts +1 -1
  90. package/build/dts/Mcp/Server.d.ts.map +1 -1
  91. package/build/dts/Mcp/tools/Citations.d.ts +100 -71
  92. package/build/dts/Mcp/tools/Citations.d.ts.map +1 -1
  93. package/build/dts/Mcp/tools/Fetch.d.ts +16 -15
  94. package/build/dts/Mcp/tools/Fetch.d.ts.map +1 -1
  95. package/build/dts/SecureFile.d.ts +23 -0
  96. package/build/dts/SecureFile.d.ts.map +1 -0
  97. package/build/dts/Snippets.d.ts +11 -12
  98. package/build/dts/Snippets.d.ts.map +1 -1
  99. package/build/dts/Telemetry.d.ts +30 -0
  100. package/build/dts/Telemetry.d.ts.map +1 -0
  101. package/build/dts/Version.d.ts +2 -0
  102. package/build/dts/Version.d.ts.map +1 -0
  103. package/build/dts/Xdg.d.ts +11 -0
  104. package/build/dts/Xdg.d.ts.map +1 -0
  105. package/build/esm/ApiClient.js +133 -10
  106. package/build/esm/ApiClient.js.map +1 -1
  107. package/build/esm/Auth/Domain.js +56 -0
  108. package/build/esm/Auth/Domain.js.map +1 -0
  109. package/build/esm/Auth/ManualAuthorization.js +253 -0
  110. package/build/esm/Auth/ManualAuthorization.js.map +1 -0
  111. package/build/esm/Auth/PendingInit.js +267 -0
  112. package/build/esm/Auth/PendingInit.js.map +1 -0
  113. package/build/esm/Auth/Pkce.js +23 -0
  114. package/build/esm/Auth/Pkce.js.map +1 -0
  115. package/build/esm/Auth/SetupGrantAuthorization.js +91 -0
  116. package/build/esm/Auth/SetupGrantAuthorization.js.map +1 -0
  117. package/build/esm/Authentication.js +38 -7
  118. package/build/esm/Authentication.js.map +1 -1
  119. package/build/esm/BrowserOAuth.js +7 -10
  120. package/build/esm/BrowserOAuth.js.map +1 -1
  121. package/build/esm/CommandPath.js +31 -0
  122. package/build/esm/CommandPath.js.map +1 -0
  123. package/build/esm/Commands/Fetch.js +30 -6
  124. package/build/esm/Commands/Fetch.js.map +1 -1
  125. package/build/esm/Commands/Init.js +371 -0
  126. package/build/esm/Commands/Init.js.map +1 -0
  127. package/build/esm/Commands/Search.js +6 -3
  128. package/build/esm/Commands/Search.js.map +1 -1
  129. package/build/esm/Commands/Status.js +186 -0
  130. package/build/esm/Commands/Status.js.map +1 -0
  131. package/build/esm/Commands/Telemetry.js +23 -0
  132. package/build/esm/Commands/Telemetry.js.map +1 -0
  133. package/build/esm/Config.js +502 -28
  134. package/build/esm/Config.js.map +1 -1
  135. package/build/esm/Hook/Claude.js +1 -1
  136. package/build/esm/Hook/Claude.js.map +1 -1
  137. package/build/esm/Hook/SnapshotNote.js +54 -7
  138. package/build/esm/Hook/SnapshotNote.js.map +1 -1
  139. package/build/esm/Init/ClaudeAdapter.js +137 -0
  140. package/build/esm/Init/ClaudeAdapter.js.map +1 -0
  141. package/build/esm/Init/ClaudeProfile.js +380 -0
  142. package/build/esm/Init/ClaudeProfile.js.map +1 -0
  143. package/build/esm/Init/Domain.js +118 -0
  144. package/build/esm/Init/Domain.js.map +1 -0
  145. package/build/esm/Init/HarnessAdapter.js +21 -0
  146. package/build/esm/Init/HarnessAdapter.js.map +1 -0
  147. package/build/esm/Init/HarnessDetector.js +65 -0
  148. package/build/esm/Init/HarnessDetector.js.map +1 -0
  149. package/build/esm/Init/HarnessRegistry.js +58 -0
  150. package/build/esm/Init/HarnessRegistry.js.map +1 -0
  151. package/build/esm/Init/MutationTransaction.js +494 -0
  152. package/build/esm/Init/MutationTransaction.js.map +1 -0
  153. package/build/esm/Init/Service.js +319 -0
  154. package/build/esm/Init/Service.js.map +1 -0
  155. package/build/esm/Init/StandardAdapters.js +116 -0
  156. package/build/esm/Init/StandardAdapters.js.map +1 -0
  157. package/build/esm/Init/Status.js +215 -0
  158. package/build/esm/Init/Status.js.map +1 -0
  159. package/build/esm/Install/Claude/Hook.js +182 -50
  160. package/build/esm/Install/Claude/Hook.js.map +1 -1
  161. package/build/esm/Install/Claude/Mcp.js +56 -26
  162. package/build/esm/Install/Claude/Mcp.js.map +1 -1
  163. package/build/esm/Install/Claude/Skill.js +49 -27
  164. package/build/esm/Install/Claude/Skill.js.map +1 -1
  165. package/build/esm/Install/Codex/Mcp.js +9 -4
  166. package/build/esm/Install/Codex/Mcp.js.map +1 -1
  167. package/build/esm/Install/Codex/Skill.js +4 -1
  168. package/build/esm/Install/Codex/Skill.js.map +1 -1
  169. package/build/esm/Install/Cursor/Mcp.js +7 -4
  170. package/build/esm/Install/Cursor/Mcp.js.map +1 -1
  171. package/build/esm/Install/Cursor/Skill.js +4 -1
  172. package/build/esm/Install/Cursor/Skill.js.map +1 -1
  173. package/build/esm/Install/Domain.js +60 -3
  174. package/build/esm/Install/Domain.js.map +1 -1
  175. package/build/esm/Install/Hook.js.map +1 -1
  176. package/build/esm/Install/Mcp.js +1 -1
  177. package/build/esm/Install/Mcp.js.map +1 -1
  178. package/build/esm/Install/Opencode/Hook.js +1 -1
  179. package/build/esm/Install/Opencode/Hook.js.map +1 -1
  180. package/build/esm/Install/Opencode/Mcp.js +6 -3
  181. package/build/esm/Install/Opencode/Mcp.js.map +1 -1
  182. package/build/esm/Install/Opencode/Skill.js +4 -1
  183. package/build/esm/Install/Opencode/Skill.js.map +1 -1
  184. package/build/esm/Install/Opencode/expandai-webfetch.js +27 -9
  185. package/build/esm/Install/Skill.js.map +1 -1
  186. package/build/esm/Install/Uninstall.js +2 -2
  187. package/build/esm/Install/Uninstall.js.map +1 -1
  188. package/build/esm/MarkdownAnsi.js +142 -0
  189. package/build/esm/MarkdownAnsi.js.map +1 -0
  190. package/build/esm/Mcp/ExpandDocs.js +44 -52
  191. package/build/esm/Mcp/ExpandDocs.js.map +1 -1
  192. package/build/esm/Mcp/RequestHeaders.js.map +1 -1
  193. package/build/esm/Mcp/Server.js +2 -1
  194. package/build/esm/Mcp/Server.js.map +1 -1
  195. package/build/esm/Mcp/tools/Citations.js +109 -8
  196. package/build/esm/Mcp/tools/Citations.js.map +1 -1
  197. package/build/esm/Mcp/tools/Fetch.js +36 -12
  198. package/build/esm/Mcp/tools/Fetch.js.map +1 -1
  199. package/build/esm/SecureFile.js +36 -0
  200. package/build/esm/SecureFile.js.map +1 -0
  201. package/build/esm/Snippets.js +12 -1
  202. package/build/esm/Snippets.js.map +1 -1
  203. package/build/esm/Telemetry.js +157 -0
  204. package/build/esm/Telemetry.js.map +1 -0
  205. package/build/esm/Version.js +4 -0
  206. package/build/esm/Version.js.map +1 -0
  207. package/build/esm/Xdg.js +15 -0
  208. package/build/esm/Xdg.js.map +1 -0
  209. package/build/esm/main.js +122 -14
  210. package/build/esm/main.js.map +1 -1
  211. package/build/skills/expandai/SKILL.md +26 -3
  212. package/package.json +4 -4
  213. package/src/ApiClient.ts +206 -13
  214. package/src/Auth/Domain.ts +63 -0
  215. package/src/Auth/ManualAuthorization.ts +296 -0
  216. package/src/Auth/PendingInit.ts +338 -0
  217. package/src/Auth/Pkce.ts +26 -0
  218. package/src/Auth/SetupGrantAuthorization.ts +116 -0
  219. package/src/Authentication.ts +49 -11
  220. package/src/BrowserOAuth.ts +10 -12
  221. package/src/CommandPath.ts +30 -0
  222. package/src/Commands/Fetch.ts +42 -11
  223. package/src/Commands/Init.ts +489 -0
  224. package/src/Commands/Search.ts +8 -3
  225. package/src/Commands/Status.ts +228 -0
  226. package/src/Commands/Telemetry.ts +42 -0
  227. package/src/Config.ts +695 -50
  228. package/src/Hook/Claude.ts +1 -1
  229. package/src/Hook/SnapshotNote.ts +55 -7
  230. package/src/Init/ClaudeAdapter.ts +191 -0
  231. package/src/Init/ClaudeProfile.ts +496 -0
  232. package/src/Init/Domain.ts +153 -0
  233. package/src/Init/HarnessAdapter.ts +35 -0
  234. package/src/Init/HarnessDetector.ts +77 -0
  235. package/src/Init/HarnessRegistry.ts +87 -0
  236. package/src/Init/MutationTransaction.ts +747 -0
  237. package/src/Init/Service.ts +385 -0
  238. package/src/Init/StandardAdapters.ts +141 -0
  239. package/src/Init/Status.ts +253 -0
  240. package/src/Install/Claude/Hook.ts +234 -81
  241. package/src/Install/Claude/Mcp.ts +80 -33
  242. package/src/Install/Claude/Skill.ts +70 -37
  243. package/src/Install/Codex/Mcp.ts +14 -9
  244. package/src/Install/Codex/Skill.ts +9 -5
  245. package/src/Install/Cursor/Mcp.ts +12 -9
  246. package/src/Install/Cursor/Skill.ts +9 -5
  247. package/src/Install/Domain.ts +77 -4
  248. package/src/Install/Hook.ts +3 -3
  249. package/src/Install/Mcp.ts +6 -6
  250. package/src/Install/Opencode/Hook.ts +5 -5
  251. package/src/Install/Opencode/Mcp.ts +11 -8
  252. package/src/Install/Opencode/Skill.ts +9 -5
  253. package/src/Install/Opencode/expandai-webfetch.js +27 -9
  254. package/src/Install/Skill.ts +3 -3
  255. package/src/Install/Uninstall.ts +3 -3
  256. package/src/MarkdownAnsi.ts +162 -0
  257. package/src/Mcp/ExpandDocs.ts +46 -55
  258. package/src/Mcp/Server.ts +2 -1
  259. package/src/Mcp/tools/Citations.ts +117 -8
  260. package/src/Mcp/tools/Fetch.ts +40 -14
  261. package/src/SecureFile.ts +70 -0
  262. package/src/Snippets.ts +19 -12
  263. package/src/Telemetry.ts +186 -0
  264. package/src/Version.ts +3 -0
  265. package/src/Xdg.ts +18 -0
  266. package/src/main.ts +171 -12
  267. package/build/dts/DeviceAuth.d.ts +0 -87
  268. package/build/dts/DeviceAuth.d.ts.map +0 -1
  269. package/build/esm/DeviceAuth.js +0 -127
  270. package/build/esm/DeviceAuth.js.map +0 -1
  271. package/src/DeviceAuth.ts +0 -193
@@ -1,7 +1,19 @@
1
1
  import { Layer } from 'effect';
2
- export declare const EXPAND_AGENT_SETUP_PROMPT = "Read https://expand.ai/start.md and set up Expand for this project. Ask whether I want SDK/API, CLI, or agent-harness integration, then follow the matching instructions.";
3
- export declare const EXPAND_START_GUIDE_MARKDOWN: string;
4
- export declare const ExpandDocs: Layer.Layer<never, never, never>;
5
- export declare const ExpandStartDocs: Layer.Layer<never, never, never>;
6
- export declare const ExpandDocsLayer: Layer.Layer<never, never, never>;
2
+ import { ConfigManager } from '../Config.js';
3
+ /**
4
+ * These resources are read by an agent that will follow their links, so every
5
+ * URL must resolve to the stack this CLI is configured against — production by
6
+ * default, or whatever `EXPAND_APP_URL` names for local and self-hosted setups.
7
+ */
8
+ export declare function makeAgentSetupPrompt(appUrl: string): string;
9
+ /**
10
+ * Points at the hosted guide instead of restating it. A local copy of the setup
11
+ * procedure drifts silently the moment the commands change, and this resource
12
+ * is read by an agent that can fetch the current one itself.
13
+ */
14
+ export declare function makeStartGuideMarkdown(appUrl: string): string;
15
+ export declare function makeAboutMarkdown(appUrl: string): string;
16
+ export declare const ExpandDocs: Layer.Layer<never, never, ConfigManager>;
17
+ export declare const ExpandStartDocs: Layer.Layer<never, never, ConfigManager>;
18
+ export declare const ExpandDocsLayer: Layer.Layer<never, import("effect/ConfigError").ConfigError, never>;
7
19
  //# sourceMappingURL=ExpandDocs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandDocs.d.ts","sourceRoot":"","sources":["../../../src/Mcp/ExpandDocs.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAA;AAE9C,eAAO,MAAM,yBAAyB,8KACsI,CAAA;AAE5K,eAAO,MAAM,2BAA2B,QAwCpC,CAAA;AAEJ,eAAO,MAAM,UAAU,kCAarB,CAAA;AAEF,eAAO,MAAM,eAAe,kCAK1B,CAAA;AAEF,eAAO,MAAM,eAAe,kCAA8C,CAAA"}
1
+ {"version":3,"file":"ExpandDocs.d.ts","sourceRoot":"","sources":["../../../src/Mcp/ExpandDocs.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQxD;AAOD,eAAO,MAAM,UAAU,0CAKrB,CAAA;AAEF,eAAO,MAAM,eAAe,0CAK1B,CAAA;AAEF,eAAO,MAAM,eAAe,qEAAyF,CAAA"}
@@ -2,7 +2,7 @@ import { Layer } from 'effect';
2
2
  export { CurrentRequestHeaders } from './RequestHeaders.js';
3
3
  export declare const ServerInfo: {
4
4
  readonly name: "expandai";
5
- readonly version: "0.0.1";
5
+ readonly version: "0.0.3";
6
6
  };
7
7
  export declare const makeServerLayer: (options?: {
8
8
  readonly includeDocs?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../../src/Mcp/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAK9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAEV,eAAO,MAAM,eAAe,GAAI,UAAS;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,wEACK,CAAA"}
1
+ {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../../src/Mcp/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAM9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,UAAU;aACtB,IAAI;aACJ,OAAO;CACE,CAAA;AAEV,eAAO,MAAM,eAAe,aAAa;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,wEACU,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import type { FetchObjectModeResultWithJson, FetchSnapshotSearchResultWithJson } from '@expandai/sdk/FetchJson';
2
2
  import * as Generated from '@expandai/sdk/Generated';
3
3
  import { Schema as S } from 'effect';
4
+ export declare const FetchInvocationPath: S.Literal<["cli-recovery", "mcp-fetch-search"]>;
5
+ export type FetchInvocationPath = typeof FetchInvocationPath.Type;
4
6
  declare const CitedSnippet_base: S.Class<CitedSnippet, {
5
7
  type: S.optionalWith<S.Literal<["text"]>, {
6
8
  nullable: true;
@@ -33,26 +35,34 @@ declare const CitedSnippet_base: S.Class<CitedSnippet, {
33
35
  citationUrl: S.SchemaClass<string, string, never>;
34
36
  }>, never, {
35
37
  readonly json?: unknown;
36
- } & {
37
- readonly score: number;
38
- } & {
39
- readonly source: "markdown" | "appendix" | "statejson";
40
- } & {
41
- readonly type?: "text" | undefined;
42
- } & {
43
- readonly text: string;
44
38
  } & {
45
39
  readonly location?: {
40
+ readonly evidenceId?: number | undefined;
46
41
  readonly markdownBlockId?: string | undefined;
47
42
  readonly nodeIds?: readonly number[] | undefined;
48
43
  readonly stateJsonSourceId?: number | undefined;
49
44
  readonly jsonPath?: string | undefined;
50
45
  } | undefined;
46
+ } & {
47
+ readonly type?: "text" | undefined;
51
48
  } & {
52
49
  readonly citationUrl: string;
50
+ } & {
51
+ readonly score: number;
52
+ } & {
53
+ readonly source: "appendix" | "markdown" | "statejson";
54
+ } & {
55
+ readonly text: string;
53
56
  }, {}, {}>;
54
57
  export declare class CitedSnippet extends CitedSnippet_base {
55
58
  }
59
+ /**
60
+ * Carried in the tool result itself, not only in `SKILL.md`. A harness may not load
61
+ * skills at all, and the hook's snapshot note never reaches this path — so without
62
+ * this the model receives perfect `citationUrl`s and no instruction to use them, and
63
+ * answers with no citation. Observed on OpenCode before this was added.
64
+ */
65
+ export declare const CITATION_INSTRUCTIONS: string;
56
66
  declare const CitedSearchResult_base: S.Class<CitedSearchResult, {
57
67
  query: typeof S.String;
58
68
  snippets: S.Array$<typeof CitedSnippet>;
@@ -69,13 +79,13 @@ declare const CitedSearchResult_base: S.Class<CitedSearchResult, {
69
79
  readonly meta?: {
70
80
  readonly durationMs: number;
71
81
  readonly sources: readonly {
72
- readonly durationMs: number;
73
- readonly source: "markdown" | "appendix" | "statejson";
82
+ readonly source: "appendix" | "markdown" | "statejson";
74
83
  readonly chunkCount: number;
75
84
  readonly batchCount: number;
76
- readonly ranker: "zeroentropy" | "local_lexical";
85
+ readonly ranker: "local_lexical" | "zeroentropy";
77
86
  readonly fallback: boolean;
78
87
  readonly fallbackReason?: "error" | "timeout" | undefined;
88
+ readonly durationMs: number;
79
89
  }[];
80
90
  } | undefined;
81
91
  } & {
@@ -86,6 +96,13 @@ declare const CitedSearchResult_base: S.Class<CitedSearchResult, {
86
96
  export declare class CitedSearchResult extends CitedSearchResult_base {
87
97
  }
88
98
  declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
99
+ invocationPath: S.Literal<["mcp-fetch-search"]>;
100
+ citationInstructions: S.optionalWith<typeof S.String, {
101
+ default: () => string;
102
+ }>;
103
+ citationBlock: S.optionalWith<typeof S.String, {
104
+ default: () => string;
105
+ }>;
89
106
  meta: typeof Generated.FetchObjectModeMeta;
90
107
  markdown: typeof S.String;
91
108
  json: S.Array$<typeof Generated.FetchObjectModeEvidence>;
@@ -93,9 +110,6 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
93
110
  assets: S.optionalWith<S.Array$<typeof Generated.FetchAssetReference>, {
94
111
  nullable: true;
95
112
  }>;
96
- captureTelemetry: S.optionalWith<typeof Generated.CaptureTelemetryInfo, {
97
- nullable: true;
98
- }>;
99
113
  search: S.optionalWith<typeof CitedSearchResult, {
100
114
  nullable: true;
101
115
  }>;
@@ -103,6 +117,13 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
103
117
  nullable: true;
104
118
  }>;
105
119
  }, S.Struct.Encoded<{
120
+ invocationPath: S.Literal<["mcp-fetch-search"]>;
121
+ citationInstructions: S.optionalWith<typeof S.String, {
122
+ default: () => string;
123
+ }>;
124
+ citationBlock: S.optionalWith<typeof S.String, {
125
+ default: () => string;
126
+ }>;
106
127
  meta: typeof Generated.FetchObjectModeMeta;
107
128
  markdown: typeof S.String;
108
129
  json: S.Array$<typeof Generated.FetchObjectModeEvidence>;
@@ -110,9 +131,6 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
110
131
  assets: S.optionalWith<S.Array$<typeof Generated.FetchAssetReference>, {
111
132
  nullable: true;
112
133
  }>;
113
- captureTelemetry: S.optionalWith<typeof Generated.CaptureTelemetryInfo, {
114
- nullable: true;
115
- }>;
116
134
  search: S.optionalWith<typeof CitedSearchResult, {
117
135
  nullable: true;
118
136
  }>;
@@ -120,14 +138,41 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
120
138
  nullable: true;
121
139
  }>;
122
140
  }>, never, {
141
+ readonly data?: {
142
+ readonly assets?: readonly {
143
+ readonly id: string;
144
+ readonly kind: "data-url";
145
+ readonly placeholder: string;
146
+ readonly archiveKey: string;
147
+ readonly mimeType: string;
148
+ readonly sha256: string;
149
+ readonly bytes: number;
150
+ }[] | undefined;
151
+ readonly search?: CitedSearchResult | undefined;
152
+ } | undefined;
153
+ } & {
154
+ readonly citationBlock?: string | undefined;
155
+ } & {
156
+ readonly citationInstructions?: string | undefined;
157
+ } & {
158
+ readonly invocationPath: "mcp-fetch-search";
159
+ } & {
160
+ readonly json: readonly {
161
+ readonly id: number;
162
+ readonly kind: "inline" | "network";
163
+ readonly role: "apollo-state" | "application-json" | "data-attribute" | "initial-state" | "ld+json" | "network-json" | "network-response" | "next-data" | "nuxt" | "other" | "script-tag";
164
+ readonly score: number;
165
+ readonly url?: string | undefined;
166
+ readonly method?: string | undefined;
167
+ readonly moreTokens?: number | undefined;
168
+ readonly keys?: readonly string[] | undefined;
169
+ }[];
170
+ } & {
171
+ readonly markdown: string;
172
+ } & {
123
173
  readonly meta: {
124
- readonly description?: string | undefined;
125
- readonly url: string;
126
- readonly markdown?: {
127
- readonly url: string;
128
- readonly moreTokens: number;
129
- } | undefined;
130
174
  readonly version: 1;
175
+ readonly url: string;
131
176
  readonly capturedAt: string;
132
177
  readonly snapshotId: string;
133
178
  readonly lang: string;
@@ -136,6 +181,7 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
136
181
  readonly title?: string | undefined;
137
182
  readonly finalUrl?: string | undefined;
138
183
  readonly canonical?: string | undefined;
184
+ readonly description?: string | undefined;
139
185
  readonly author?: string | undefined;
140
186
  readonly createdAt?: string | undefined;
141
187
  readonly updatedAt?: string | undefined;
@@ -151,67 +197,52 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
151
197
  readonly stateJson?: {
152
198
  readonly moreTokens: number;
153
199
  } | undefined;
200
+ readonly markdown?: {
201
+ readonly url: string;
202
+ readonly moreTokens: number;
203
+ } | undefined;
154
204
  readonly blocked?: string | undefined;
155
205
  readonly loadingStatus?: string | undefined;
156
206
  };
157
- } & {
158
- readonly markdown: string;
159
- } & {
160
- readonly json: readonly {
161
- readonly keys?: readonly string[] | undefined;
162
- readonly method?: string | undefined;
163
- readonly url?: string | undefined;
164
- readonly moreTokens?: number | undefined;
165
- readonly id: number;
166
- readonly kind: "inline" | "network";
167
- readonly role: "ld+json" | "next-data" | "nuxt" | "apollo-state" | "initial-state" | "application-json" | "script-tag" | "data-attribute" | "network-json" | "network-response" | "other";
168
- readonly score: number;
169
- }[];
170
- } & {
171
- readonly data?: {
172
- readonly search?: CitedSearchResult | undefined;
173
- readonly assets?: readonly {
174
- readonly sha256: string;
175
- readonly id: string;
176
- readonly kind: "data-url";
177
- readonly placeholder: string;
178
- readonly archiveKey: string;
179
- readonly mimeType: string;
180
- readonly bytes: number;
181
- }[] | undefined;
182
- readonly captureTelemetry?: {
183
- readonly requestedStyleMode?: "compat_full" | "native_default" | undefined;
184
- readonly selected: "rust";
185
- readonly actual: "rust";
186
- readonly actualStyleMode?: "compat_full" | "native_default" | undefined;
187
- readonly rolloutApplied: boolean;
188
- readonly preparedSessionHit?: boolean | undefined;
189
- readonly nativePoolHit?: boolean | undefined;
190
- readonly nativePoolCapacity?: number | undefined;
191
- readonly nativePoolProfile?: string | undefined;
192
- readonly poolHit?: boolean | undefined;
193
- readonly connectMs?: number | undefined;
194
- readonly warmConnectionAgeMs?: number | undefined;
195
- readonly iconBackendDecision?: "cpu" | "remote_gpu" | undefined;
196
- } | undefined;
197
- } | undefined;
198
207
  }, {}, {}>;
199
208
  export declare class CitedObjectModeResult extends CitedObjectModeResult_base {
200
209
  }
201
210
  declare const CitedSnapshotSearchResult_base: S.Class<CitedSnapshotSearchResult, {
211
+ invocationPath: S.Literal<["cli-recovery", "mcp-fetch-search"]>;
212
+ citationInstructions: S.optionalWith<typeof S.String, {
213
+ default: () => string;
214
+ }>;
215
+ citationBlock: S.optionalWith<typeof S.String, {
216
+ default: () => string;
217
+ }>;
202
218
  snapshotId: S.filter<typeof S.String>;
203
219
  response: typeof Generated.ResponseInfo;
204
220
  search: typeof CitedSearchResult;
205
221
  durationMs: S.filter<typeof S.Number>;
206
222
  playground: S.SchemaClass<string, string, never>;
207
223
  }, S.Struct.Encoded<{
224
+ invocationPath: S.Literal<["cli-recovery", "mcp-fetch-search"]>;
225
+ citationInstructions: S.optionalWith<typeof S.String, {
226
+ default: () => string;
227
+ }>;
228
+ citationBlock: S.optionalWith<typeof S.String, {
229
+ default: () => string;
230
+ }>;
208
231
  snapshotId: S.filter<typeof S.String>;
209
232
  response: typeof Generated.ResponseInfo;
210
233
  search: typeof CitedSearchResult;
211
234
  durationMs: S.filter<typeof S.Number>;
212
235
  playground: S.SchemaClass<string, string, never>;
213
236
  }>, never, {
214
- readonly search: CitedSearchResult;
237
+ readonly citationBlock?: string | undefined;
238
+ } & {
239
+ readonly citationInstructions?: string | undefined;
240
+ } & {
241
+ readonly durationMs: number;
242
+ } & {
243
+ readonly invocationPath: "cli-recovery" | "mcp-fetch-search";
244
+ } & {
245
+ readonly playground: string;
215
246
  } & {
216
247
  readonly response: {
217
248
  readonly url: string;
@@ -221,17 +252,15 @@ declare const CitedSnapshotSearchResult_base: S.Class<CitedSnapshotSearchResult,
221
252
  readonly headers?: {} | undefined;
222
253
  };
223
254
  } & {
224
- readonly snapshotId: string;
225
- } & {
226
- readonly playground: string;
255
+ readonly search: CitedSearchResult;
227
256
  } & {
228
- readonly durationMs: number;
257
+ readonly snapshotId: string;
229
258
  }, {}, {}>;
230
259
  export declare class CitedSnapshotSearchResult extends CitedSnapshotSearchResult_base {
231
260
  }
232
261
  /** Add `citationUrl` to each snippet of an object-mode fetch result. */
233
262
  export declare function enrichObjectModeResult(result: FetchObjectModeResultWithJson, fallbackHost: string): CitedObjectModeResult;
234
- /** Add `citationUrl` to each snippet of a snapshot-search result (no server `meta.playground`). */
235
- export declare function enrichSnapshotSearchResult(result: FetchSnapshotSearchResultWithJson, host: string): CitedSnapshotSearchResult;
263
+ /** Add `citationUrl` to each snippet of a snapshot-search result. */
264
+ export declare function enrichSnapshotSearchResult(result: FetchSnapshotSearchResultWithJson, fallbackHost: string, invocationPath?: FetchInvocationPath): CitedSnapshotSearchResult;
236
265
  export {};
237
266
  //# sourceMappingURL=Citations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Citations.d.ts","sourceRoot":"","sources":["../../../../src/Mcp/tools/Citations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpC,qBAAa,YAAa,SAAQ,iBAUhC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,qBAAsB,SAAQ,0BAYzC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,yBAA0B,SAAQ,8BAM7C;CAAG;AAyBL,wEAAwE;AACxE,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,6BAA6B,EACrC,YAAY,EAAE,MAAM,GAClB,qBAAqB,CAkBvB;AAED,mGAAmG;AACnG,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iCAAiC,EACzC,IAAI,EAAE,MAAM,GACV,yBAAyB,CAQ3B"}
1
+ {"version":3,"file":"Citations.d.ts","sourceRoot":"","sources":["../../../../src/Mcp/tools/Citations.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEpC,eAAO,MAAM,mBAAmB,iDAAgD,CAAA;AAChF,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjE,qBAAa,YAAa,SAAQ,iBAUhC;CAAG;AAEL;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAO8D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEhG,qBAAa,iBAAkB,SAAQ,sBAIrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,qBAAsB,SAAQ,0BAczC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,yBAA0B,SAAQ,8BAS7C;CAAG;AAyBL,wEAAwE;AACxE,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,6BAA6B,EACrC,YAAY,EAAE,MAAM,GAClB,qBAAqB,CA6BvB;AAED,qEAAqE;AACrE,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iCAAiC,EACzC,YAAY,EAAE,MAAM,EACpB,cAAc,GAAE,mBAAwC,GACtD,yBAAyB,CAiB3B"}
@@ -2,6 +2,7 @@ import { Tool } from '@effect/ai';
2
2
  import { Effect, Schema } from 'effect';
3
3
  import { ApiClient } from '../../ApiClient.js';
4
4
  import { ConfigManager } from '../../Config.js';
5
+ import { Telemetry } from '../../Telemetry.js';
5
6
  import { CitedObjectModeResult, CitedSnapshotSearchResult } from './Citations.js';
6
7
  declare const FetchSearchParams_base: Schema.Class<FetchSearchParams, {
7
8
  query: Schema.refine<string, typeof Schema.Trimmed>;
@@ -20,11 +21,11 @@ declare const FetchSearchParams_base: Schema.Class<FetchSearchParams, {
20
21
  default: () => number;
21
22
  }>;
22
23
  }>, never, {
23
- readonly query: string;
24
- } & {
25
24
  readonly maxResults?: number | undefined;
26
25
  } & {
27
26
  readonly minScore?: number | undefined;
27
+ } & {
28
+ readonly query: string;
28
29
  }, {}, {}>;
29
30
  export declare class FetchSearchParams extends FetchSearchParams_base {
30
31
  }
@@ -54,23 +55,23 @@ declare const FetchParams_base: Schema.Class<FetchParams, {
54
55
  }>;
55
56
  }>, never, {
56
57
  readonly search?: FetchSearchParams | undefined;
57
- } & {
58
- readonly url: string;
59
- } & {
60
- readonly includeMeta?: boolean | undefined;
61
58
  } & {
62
59
  readonly includeAppendix?: boolean | undefined;
63
60
  } & {
64
61
  readonly includeJson?: boolean | undefined;
62
+ } & {
63
+ readonly includeMeta?: boolean | undefined;
64
+ } & {
65
+ readonly url: string;
65
66
  }, {}, {}>;
66
67
  export declare class FetchParams extends FetchParams_base {
67
68
  }
68
69
  declare const FetchSnapshotSearchParams_base: Schema.Class<FetchSnapshotSearchParams, {
69
70
  snapshotId: Schema.refine<string, typeof Schema.String>;
70
71
  search: Schema.SchemaClass<FetchSearchParams, {
71
- readonly query: string;
72
72
  readonly maxResults?: number | undefined;
73
73
  readonly minScore?: number | undefined;
74
+ readonly query: string;
74
75
  }, never>;
75
76
  includeMarkdown: Schema.optionalWith<typeof Schema.Boolean, {
76
77
  default: () => true;
@@ -84,9 +85,9 @@ declare const FetchSnapshotSearchParams_base: Schema.Class<FetchSnapshotSearchPa
84
85
  }, Schema.Struct.Encoded<{
85
86
  snapshotId: Schema.refine<string, typeof Schema.String>;
86
87
  search: Schema.SchemaClass<FetchSearchParams, {
87
- readonly query: string;
88
88
  readonly maxResults?: number | undefined;
89
89
  readonly minScore?: number | undefined;
90
+ readonly query: string;
90
91
  }, never>;
91
92
  includeMarkdown: Schema.optionalWith<typeof Schema.Boolean, {
92
93
  default: () => true;
@@ -98,15 +99,15 @@ declare const FetchSnapshotSearchParams_base: Schema.Class<FetchSnapshotSearchPa
98
99
  default: () => true;
99
100
  }>;
100
101
  }>, never, {
101
- readonly search: FetchSearchParams;
102
- } & {
103
- readonly snapshotId: string;
104
- } & {
105
102
  readonly includeAppendix?: boolean | undefined;
106
103
  } & {
107
104
  readonly includeJson?: boolean | undefined;
108
105
  } & {
109
106
  readonly includeMarkdown?: boolean | undefined;
107
+ } & {
108
+ readonly search: FetchSearchParams;
109
+ } & {
110
+ readonly snapshotId: string;
110
111
  }, {}, {}>;
111
112
  export declare class FetchSnapshotSearchParams extends FetchSnapshotSearchParams_base {
112
113
  }
@@ -132,9 +133,9 @@ export declare const FetchSearchTool: Tool.Tool<"fetch_search", {
132
133
  readonly parameters: Schema.Struct<{
133
134
  readonly snapshotId: Schema.refine<string, typeof Schema.String>;
134
135
  readonly search: Schema.SchemaClass<FetchSearchParams, {
135
- readonly query: string;
136
136
  readonly maxResults?: number | undefined;
137
137
  readonly minScore?: number | undefined;
138
+ readonly query: string;
138
139
  }, never>;
139
140
  readonly includeMarkdown: Schema.optionalWith<typeof Schema.Boolean, {
140
141
  default: () => true;
@@ -155,11 +156,11 @@ export interface FetchService {
155
156
  readonly fetchSearch: (params: FetchSnapshotSearchParams) => Effect.Effect<CitedSnapshotSearchResult, unknown>;
156
157
  }
157
158
  declare const Fetch_base: Effect.Service.Class<Fetch, "@expandai/cli/Mcp/Fetch", {
158
- readonly dependencies: readonly [import("effect/Layer").Layer<ApiClient, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<ConfigManager, import("effect/ConfigError").ConfigError, never>];
159
+ readonly dependencies: readonly [import("effect/Layer").Layer<ApiClient, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<ConfigManager, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<Telemetry, import("effect/ConfigError").ConfigError, never>];
159
160
  readonly scoped: Effect.Effect<{
160
161
  fetch: (params: FetchParams) => Effect.Effect<CitedObjectModeResult, unknown>;
161
162
  fetchSearch: (params: FetchSnapshotSearchParams) => Effect.Effect<CitedSnapshotSearchResult, unknown>;
162
- }, import("effect/ConfigError").ConfigError, ConfigManager | ApiClient>;
163
+ }, import("effect/ConfigError").ConfigError, ApiClient | ConfigManager | Telemetry>;
163
164
  }>;
164
165
  export declare class Fetch extends Fetch_base {
165
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Fetch.d.ts","sourceRoot":"","sources":["../../../../src/Mcp/tools/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACN,qBAAqB,EACrB,yBAAyB,EAGzB,MAAM,gBAAgB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,qBAAa,iBAAkB,SAAQ,sBAYrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAmB/B;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,yBAA0B,SAAQ,8BAmB7C;CAAG;AAEL,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;SAea,CAAA;AAEnC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;SAcO,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;IACtF,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAA;CAC9G;;;;wBAFyB,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC;8BACvD,yBAAyB,KAAK,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC;;;AAG/G,qBAAa,KAAM,SAAQ,UAuEzB;CAAG"}
1
+ {"version":3,"file":"Fetch.d.ts","sourceRoot":"","sources":["../../../../src/Mcp/tools/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EACN,qBAAqB,EACrB,yBAAyB,EAGzB,MAAM,gBAAgB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,qBAAa,iBAAkB,SAAQ,sBAYrC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAmB/B;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,yBAA0B,SAAQ,8BAmB7C;CAAG;AAEL,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;SAmBa,CAAA;AAEnC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;SAmBO,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;IACtF,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAA;CAC9G;;;;wBAFyB,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC;8BACvD,yBAAyB,KAAK,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC;;;AAG/G,qBAAa,KAAM,SAAQ,UAuFzB;CAAG"}
@@ -0,0 +1,23 @@
1
+ import { FileSystem, Error as PlatformError } from '@effect/platform';
2
+ import { Effect, Exit } from 'effect';
3
+ export interface CreatedFileIdentity {
4
+ readonly dev: number;
5
+ readonly ino?: number;
6
+ readonly mode: number;
7
+ readonly type: FileSystem.File.Type;
8
+ }
9
+ export interface ExclusiveFileCreation {
10
+ readonly identity: CreatedFileIdentity;
11
+ readonly writeExit: Exit.Exit<void, PlatformError.PlatformError>;
12
+ readonly pathMatchesHandle: boolean;
13
+ }
14
+ /** Creates a file exclusively and binds its identity to the opened handle before writing bytes. */
15
+ export declare function createExclusiveFile(fileSystem: FileSystem.FileSystem, targetPath: string, contents: string, mode: number): Effect.Effect<ExclusiveFileCreation, PlatformError.PlatformError>;
16
+ /** Compares a pathname snapshot with identity captured from the creating file handle. */
17
+ export declare function matchesCreatedFile(identity: CreatedFileIdentity, pathIdentity: {
18
+ readonly exists: boolean;
19
+ readonly dev?: number;
20
+ readonly ino?: number;
21
+ readonly type?: FileSystem.File.Type;
22
+ }): boolean;
23
+ //# sourceMappingURL=SecureFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureFile.d.ts","sourceRoot":"","sources":["../../src/SecureFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAU,MAAM,QAAQ,CAAA;AAE7C,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAChE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;CACnC;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,UAAU,CAAC,UAAU,EACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC,aAAa,CAAC,CA6BnE;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,mBAAmB,EAC7B,YAAY,EAAE;IACb,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAA;CACpC,GACC,OAAO,CAOT"}
@@ -1,15 +1,14 @@
1
- import { type CitationSource } from '@expandai/sdk/Playground';
2
- interface RenderableSnippetLocation {
3
- readonly nodeIds?: ReadonlyArray<number> | null;
4
- readonly stateJsonSourceId?: number | null;
5
- }
6
- interface RenderableSnippet {
7
- readonly source: CitationSource;
8
- readonly text: string;
9
- readonly score: number;
10
- readonly location?: RenderableSnippetLocation | null;
11
- readonly json?: unknown;
12
- }
1
+ import type { FetchObjectModeResultWithJson } from '@expandai/sdk/FetchJson';
2
+ type SearchResultWithJson = NonNullable<NonNullable<FetchObjectModeResultWithJson['data']>['search']>;
3
+ type RenderableSnippet = SearchResultWithJson['snippets'][number];
4
+ /**
5
+ * Attaches the public citation link to each snippet. JSON consumers get the same
6
+ * auditable URL the text renderer prints in its header — without it, a caller has
7
+ * the snapshot and the evidence id but no host to build a link against.
8
+ */
9
+ export declare function withCitationUrls<A extends RenderableSnippet>(snapshotId: string, host: string, snippets: ReadonlyArray<A>): Array<A & {
10
+ readonly citationUrl: string;
11
+ }>;
13
12
  /**
14
13
  * Render search snippets as auditable text blocks: a header carrying the source, score, and
15
14
  * citation link, the snippet text, and — for State JSON snippets — the extracted JSON value.
@@ -1 +1 @@
1
- {"version":3,"file":"Snippets.d.ts","sourceRoot":"","sources":["../../src/Snippets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,0BAA0B,CAAA;AAK3E,UAAU,yBAAyB;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CASnH"}
1
+ {"version":3,"file":"Snippets.d.ts","sourceRoot":"","sources":["../../src/Snippets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AAM5E,KAAK,oBAAoB,GAAG,WAAW,CAAC,WAAW,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AACrG,KAAK,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC3D,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,KAAK,CAAC,CAAC,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAK7C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CASnH"}
@@ -0,0 +1,30 @@
1
+ import { HttpClient } from '@effect/platform';
2
+ import { Config, Effect, Layer, Option } from 'effect';
3
+ import { ConfigManager } from './Config.js';
4
+ export declare const TelemetryEnvironment: Config.Config<{
5
+ apiKey: string;
6
+ host: string;
7
+ doNotTrack: boolean;
8
+ noTelemetry: boolean;
9
+ apiUrl: Option.Option<string>;
10
+ harnessOverride: Option.Option<"claude-code" | "codex" | "cursor" | "opencode" | "unknown">;
11
+ claudeCode: boolean;
12
+ cursor: boolean;
13
+ codex: boolean;
14
+ }>;
15
+ declare const Telemetry_base: Effect.Service.Class<Telemetry, "@expandai/cli/Telemetry", {
16
+ readonly dependencies: readonly [Layer.Layer<ConfigManager, import("effect/ConfigError").ConfigError, never>, Layer.Layer<HttpClient.HttpClient, never, never>];
17
+ readonly scoped: Effect.Effect<{
18
+ readonly capture: (event: string, properties: Record<string, string | number | boolean>) => Effect.Effect<void, never, never>;
19
+ readonly flush: Effect.Effect<void, never, never>;
20
+ readonly showNoticeIfNeeded: () => Effect.Effect<void, never, never>;
21
+ readonly enabled: boolean;
22
+ readonly distinctId: string;
23
+ }, import("effect/ConfigError").ConfigError, ConfigManager | HttpClient.HttpClient | import("effect/Scope").Scope>;
24
+ }>;
25
+ export declare class Telemetry extends Telemetry_base {
26
+ /** A side-effect-free telemetry service for commands whose contract is read-only. */
27
+ static readonly DISABLED: Layer.Layer<Telemetry, never, never>;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=Telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Telemetry.d.ts","sourceRoot":"","sources":["../../src/Telemetry.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAW,MAAM,EAAY,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACzE,OAAO,EAAE,aAAa,EAAwC,MAAM,aAAa,CAAA;AAOjF,eAAO,MAAM,oBAAoB;;;;;;;;;;EAc/B,CAAA;;;;;;;;;;;AA0BF,qBAAa,SAAU,SAAQ,cA2G7B;IACD,qFAAqF;IACrF,MAAM,CAAC,QAAQ,CAAC,QAAQ,uCASvB;CACD"}
@@ -0,0 +1,2 @@
1
+ export declare const CLI_VERSION = "0.0.3";
2
+ //# sourceMappingURL=Version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Version.d.ts","sourceRoot":"","sources":["../../src/Version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,UAAU,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Path } from '@effect/platform';
2
+ import { Effect } from 'effect';
3
+ /**
4
+ * XDG base-directory lookup, shared by everything that persists CLI state so
5
+ * the fallback rules cannot drift apart. The spec treats an unset and an empty
6
+ * variable identically: fall back to `$HOME/.config`. Without the empty check,
7
+ * `XDG_CONFIG_HOME=` resolves paths relative to the working directory — which
8
+ * would drop credentials inside whatever project the CLI happens to run in.
9
+ */
10
+ export declare const xdgConfigDirectory: Effect.Effect<string, import("effect/ConfigError").ConfigError, Path.Path>;
11
+ //# sourceMappingURL=Xdg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Xdg.d.ts","sourceRoot":"","sources":["../../src/Xdg.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEvC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,4EAM7B,CAAA"}