expandai 0.0.1 → 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 -185
  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 +8 -8
  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 +106 -15
  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 +105 -77
  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 +7 -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,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,12 +79,12 @@ declare const CitedSearchResult_base: S.Class<CitedSearchResult, {
69
79
  readonly meta?: {
70
80
  readonly durationMs: number;
71
81
  readonly sources: readonly {
72
- readonly source: "markdown" | "appendix" | "statejson";
82
+ readonly source: "appendix" | "markdown" | "statejson";
73
83
  readonly chunkCount: number;
74
84
  readonly batchCount: number;
75
- readonly ranker: "zeroentropy" | "local_lexical";
85
+ readonly ranker: "local_lexical" | "zeroentropy";
76
86
  readonly fallback: boolean;
77
- readonly fallbackReason?: "timeout" | "error" | undefined;
87
+ readonly fallbackReason?: "error" | "timeout" | undefined;
78
88
  readonly durationMs: number;
79
89
  }[];
80
90
  } | undefined;
@@ -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,23 +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
+ } & {
123
171
  readonly markdown: string;
124
172
  } & {
125
173
  readonly meta: {
126
- readonly url: string;
127
- readonly markdown?: {
128
- readonly url: string;
129
- readonly moreTokens: number;
130
- } | undefined;
131
- readonly appendix?: {
132
- readonly url: string;
133
- readonly links: {
134
- readonly sameDomain: number;
135
- readonly external: number;
136
- };
137
- } | undefined;
138
- readonly description?: string | undefined;
139
174
  readonly version: 1;
175
+ readonly url: string;
140
176
  readonly capturedAt: string;
141
177
  readonly snapshotId: string;
142
178
  readonly lang: string;
@@ -145,74 +181,68 @@ declare const CitedObjectModeResult_base: S.Class<CitedObjectModeResult, {
145
181
  readonly title?: string | undefined;
146
182
  readonly finalUrl?: string | undefined;
147
183
  readonly canonical?: string | undefined;
184
+ readonly description?: string | undefined;
148
185
  readonly author?: string | undefined;
149
186
  readonly createdAt?: string | undefined;
150
187
  readonly updatedAt?: string | undefined;
151
188
  readonly image?: string | undefined;
152
189
  readonly paginationNext?: string | undefined;
190
+ readonly appendix?: {
191
+ readonly url: string;
192
+ readonly links: {
193
+ readonly sameDomain: number;
194
+ readonly external: number;
195
+ };
196
+ } | undefined;
153
197
  readonly stateJson?: {
154
198
  readonly moreTokens: number;
155
199
  } | undefined;
200
+ readonly markdown?: {
201
+ readonly url: string;
202
+ readonly moreTokens: number;
203
+ } | undefined;
156
204
  readonly blocked?: string | undefined;
157
205
  readonly loadingStatus?: string | undefined;
158
206
  };
159
- } & {
160
- readonly json: readonly {
161
- readonly keys?: readonly string[] | undefined;
162
- readonly url?: string | undefined;
163
- readonly moreTokens?: number | undefined;
164
- readonly id: number;
165
- readonly kind: "inline" | "network";
166
- readonly role: "ld+json" | "next-data" | "nuxt" | "apollo-state" | "initial-state" | "application-json" | "script-tag" | "data-attribute" | "network-json" | "network-response" | "other";
167
- readonly score: number;
168
- readonly method?: string | undefined;
169
- }[];
170
- } & {
171
- readonly data?: {
172
- readonly search?: CitedSearchResult | undefined;
173
- readonly assets?: readonly {
174
- readonly id: string;
175
- readonly kind: "data-url";
176
- readonly placeholder: string;
177
- readonly archiveKey: string;
178
- readonly mimeType: string;
179
- readonly sha256: 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 preparedPageHit?: boolean | undefined;
191
- readonly nativePoolCapacity?: number | undefined;
192
- readonly nativePoolProfile?: string | undefined;
193
- readonly poolHit?: boolean | undefined;
194
- readonly connectMs?: number | undefined;
195
- readonly warmConnectionAgeMs?: number | undefined;
196
- readonly iconBackendDecision?: "cpu" | "remote_gpu" | undefined;
197
- } | undefined;
198
- } | undefined;
199
207
  }, {}, {}>;
200
208
  export declare class CitedObjectModeResult extends CitedObjectModeResult_base {
201
209
  }
202
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
+ }>;
203
218
  snapshotId: S.filter<typeof S.String>;
204
219
  response: typeof Generated.ResponseInfo;
205
220
  search: typeof CitedSearchResult;
206
221
  durationMs: S.filter<typeof S.Number>;
207
222
  playground: S.SchemaClass<string, string, never>;
208
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
+ }>;
209
231
  snapshotId: S.filter<typeof S.String>;
210
232
  response: typeof Generated.ResponseInfo;
211
233
  search: typeof CitedSearchResult;
212
234
  durationMs: S.filter<typeof S.Number>;
213
235
  playground: S.SchemaClass<string, string, never>;
214
236
  }>, never, {
215
- 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;
216
246
  } & {
217
247
  readonly response: {
218
248
  readonly url: string;
@@ -222,17 +252,15 @@ declare const CitedSnapshotSearchResult_base: S.Class<CitedSnapshotSearchResult,
222
252
  readonly headers?: {} | undefined;
223
253
  };
224
254
  } & {
225
- readonly snapshotId: string;
226
- } & {
227
- readonly playground: string;
255
+ readonly search: CitedSearchResult;
228
256
  } & {
229
- readonly durationMs: number;
257
+ readonly snapshotId: string;
230
258
  }, {}, {}>;
231
259
  export declare class CitedSnapshotSearchResult extends CitedSnapshotSearchResult_base {
232
260
  }
233
261
  /** Add `citationUrl` to each snippet of an object-mode fetch result. */
234
262
  export declare function enrichObjectModeResult(result: FetchObjectModeResultWithJson, fallbackHost: string): CitedObjectModeResult;
235
- /** Add `citationUrl` to each snippet of a snapshot-search result (no server `meta.playground`). */
236
- 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;
237
265
  export {};
238
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
  }
@@ -53,24 +54,24 @@ declare const FetchParams_base: Schema.Class<FetchParams, {
53
54
  default: () => true;
54
55
  }>;
55
56
  }>, never, {
56
- readonly url: string;
57
- } & {
58
57
  readonly search?: FetchSearchParams | undefined;
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"}