expandai 0.0.4 → 0.0.6

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 (321) hide show
  1. package/README.md +2 -2
  2. package/build/{esm/Install/Opencode → assets/opencode}/expandai-webfetch.js +22 -4
  3. package/build/dts/Mcp/RequestHeaders.d.ts +0 -1
  4. package/build/dts/Mcp/Server.d.ts +1 -2
  5. package/build/dts/index.d.ts +0 -1
  6. package/build/esm/index.js +193 -2
  7. package/build/esm/main.js +691 -200
  8. package/build/skills/expandai/SKILL.md +100 -8
  9. package/package.json +20 -12
  10. package/build/dts/ApiClient.d.ts +0 -165
  11. package/build/dts/ApiClient.d.ts.map +0 -1
  12. package/build/dts/Auth/Domain.d.ts +0 -95
  13. package/build/dts/Auth/Domain.d.ts.map +0 -1
  14. package/build/dts/Auth/ManualAuthorization.d.ts +0 -107
  15. package/build/dts/Auth/ManualAuthorization.d.ts.map +0 -1
  16. package/build/dts/Auth/PendingInit.d.ts +0 -35
  17. package/build/dts/Auth/PendingInit.d.ts.map +0 -1
  18. package/build/dts/Auth/Pkce.d.ts +0 -10
  19. package/build/dts/Auth/Pkce.d.ts.map +0 -1
  20. package/build/dts/Auth/SetupGrantAuthorization.d.ts +0 -34
  21. package/build/dts/Auth/SetupGrantAuthorization.d.ts.map +0 -1
  22. package/build/dts/Authentication.d.ts +0 -24
  23. package/build/dts/Authentication.d.ts.map +0 -1
  24. package/build/dts/BrowserOAuth.d.ts +0 -99
  25. package/build/dts/BrowserOAuth.d.ts.map +0 -1
  26. package/build/dts/CommandPath.d.ts +0 -2
  27. package/build/dts/CommandPath.d.ts.map +0 -1
  28. package/build/dts/Commands/Fetch.d.ts +0 -30
  29. package/build/dts/Commands/Fetch.d.ts.map +0 -1
  30. package/build/dts/Commands/Hook.d.ts +0 -17
  31. package/build/dts/Commands/Hook.d.ts.map +0 -1
  32. package/build/dts/Commands/Init.d.ts +0 -55
  33. package/build/dts/Commands/Init.d.ts.map +0 -1
  34. package/build/dts/Commands/Mcp.d.ts +0 -11
  35. package/build/dts/Commands/Mcp.d.ts.map +0 -1
  36. package/build/dts/Commands/McpRun.d.ts +0 -5
  37. package/build/dts/Commands/McpRun.d.ts.map +0 -1
  38. package/build/dts/Commands/Search.d.ts +0 -21
  39. package/build/dts/Commands/Search.d.ts.map +0 -1
  40. package/build/dts/Commands/Skill.d.ts +0 -12
  41. package/build/dts/Commands/Skill.d.ts.map +0 -1
  42. package/build/dts/Commands/Status.d.ts +0 -27
  43. package/build/dts/Commands/Status.d.ts.map +0 -1
  44. package/build/dts/Commands/Telemetry.d.ts +0 -7
  45. package/build/dts/Commands/Telemetry.d.ts.map +0 -1
  46. package/build/dts/Commands/Uninstall.d.ts +0 -9
  47. package/build/dts/Commands/Uninstall.d.ts.map +0 -1
  48. package/build/dts/Config.d.ts +0 -196
  49. package/build/dts/Config.d.ts.map +0 -1
  50. package/build/dts/Hook/Claude.d.ts +0 -13
  51. package/build/dts/Hook/Claude.d.ts.map +0 -1
  52. package/build/dts/Hook/Errors.d.ts +0 -20
  53. package/build/dts/Hook/Errors.d.ts.map +0 -1
  54. package/build/dts/Hook/Opencode.d.ts +0 -13
  55. package/build/dts/Hook/Opencode.d.ts.map +0 -1
  56. package/build/dts/Hook/SnapshotNote.d.ts +0 -12
  57. package/build/dts/Hook/SnapshotNote.d.ts.map +0 -1
  58. package/build/dts/Init/ClaudeAdapter.d.ts +0 -61
  59. package/build/dts/Init/ClaudeAdapter.d.ts.map +0 -1
  60. package/build/dts/Init/ClaudeProfile.d.ts +0 -77
  61. package/build/dts/Init/ClaudeProfile.d.ts.map +0 -1
  62. package/build/dts/Init/Domain.d.ts +0 -139
  63. package/build/dts/Init/Domain.d.ts.map +0 -1
  64. package/build/dts/Init/HarnessAdapter.d.ts +0 -33
  65. package/build/dts/Init/HarnessAdapter.d.ts.map +0 -1
  66. package/build/dts/Init/HarnessDetector.d.ts +0 -19
  67. package/build/dts/Init/HarnessDetector.d.ts.map +0 -1
  68. package/build/dts/Init/HarnessRegistry.d.ts +0 -50
  69. package/build/dts/Init/HarnessRegistry.d.ts.map +0 -1
  70. package/build/dts/Init/MutationTransaction.d.ts +0 -96
  71. package/build/dts/Init/MutationTransaction.d.ts.map +0 -1
  72. package/build/dts/Init/Service.d.ts +0 -72
  73. package/build/dts/Init/Service.d.ts.map +0 -1
  74. package/build/dts/Init/StandardAdapters.d.ts +0 -42
  75. package/build/dts/Init/StandardAdapters.d.ts.map +0 -1
  76. package/build/dts/Init/Status.d.ts +0 -149
  77. package/build/dts/Init/Status.d.ts.map +0 -1
  78. package/build/dts/Install/Claude/Hook.d.ts +0 -88
  79. package/build/dts/Install/Claude/Hook.d.ts.map +0 -1
  80. package/build/dts/Install/Claude/Mcp.d.ts +0 -48
  81. package/build/dts/Install/Claude/Mcp.d.ts.map +0 -1
  82. package/build/dts/Install/Claude/Skill.d.ts +0 -23
  83. package/build/dts/Install/Claude/Skill.d.ts.map +0 -1
  84. package/build/dts/Install/Codex/Mcp.d.ts +0 -45
  85. package/build/dts/Install/Codex/Mcp.d.ts.map +0 -1
  86. package/build/dts/Install/Codex/Skill.d.ts +0 -22
  87. package/build/dts/Install/Codex/Skill.d.ts.map +0 -1
  88. package/build/dts/Install/Cursor/Mcp.d.ts +0 -45
  89. package/build/dts/Install/Cursor/Mcp.d.ts.map +0 -1
  90. package/build/dts/Install/Cursor/Skill.d.ts +0 -29
  91. package/build/dts/Install/Cursor/Skill.d.ts.map +0 -1
  92. package/build/dts/Install/Domain.d.ts +0 -103
  93. package/build/dts/Install/Domain.d.ts.map +0 -1
  94. package/build/dts/Install/Hook.d.ts +0 -30
  95. package/build/dts/Install/Hook.d.ts.map +0 -1
  96. package/build/dts/Install/Mcp.d.ts +0 -28
  97. package/build/dts/Install/Mcp.d.ts.map +0 -1
  98. package/build/dts/Install/Opencode/Hook.d.ts +0 -24
  99. package/build/dts/Install/Opencode/Hook.d.ts.map +0 -1
  100. package/build/dts/Install/Opencode/Mcp.d.ts +0 -47
  101. package/build/dts/Install/Opencode/Mcp.d.ts.map +0 -1
  102. package/build/dts/Install/Opencode/Skill.d.ts +0 -26
  103. package/build/dts/Install/Opencode/Skill.d.ts.map +0 -1
  104. package/build/dts/Install/Skill.d.ts +0 -32
  105. package/build/dts/Install/Skill.d.ts.map +0 -1
  106. package/build/dts/Install/Uninstall.d.ts +0 -32
  107. package/build/dts/Install/Uninstall.d.ts.map +0 -1
  108. package/build/dts/MarkdownAnsi.d.ts +0 -29
  109. package/build/dts/MarkdownAnsi.d.ts.map +0 -1
  110. package/build/dts/Mcp/ExpandDocs.d.ts +0 -19
  111. package/build/dts/Mcp/ExpandDocs.d.ts.map +0 -1
  112. package/build/dts/Mcp/RequestHeaders.d.ts.map +0 -1
  113. package/build/dts/Mcp/Server.d.ts.map +0 -1
  114. package/build/dts/Mcp/Toolkit.d.ts +0 -3
  115. package/build/dts/Mcp/Toolkit.d.ts.map +0 -1
  116. package/build/dts/Mcp/tools/Citations.d.ts +0 -266
  117. package/build/dts/Mcp/tools/Citations.d.ts.map +0 -1
  118. package/build/dts/Mcp/tools/Fetch.d.ts +0 -168
  119. package/build/dts/Mcp/tools/Fetch.d.ts.map +0 -1
  120. package/build/dts/SecureFile.d.ts +0 -23
  121. package/build/dts/SecureFile.d.ts.map +0 -1
  122. package/build/dts/Snippets.d.ts +0 -18
  123. package/build/dts/Snippets.d.ts.map +0 -1
  124. package/build/dts/Telemetry.d.ts +0 -30
  125. package/build/dts/Telemetry.d.ts.map +0 -1
  126. package/build/dts/Version.d.ts +0 -2
  127. package/build/dts/Version.d.ts.map +0 -1
  128. package/build/dts/Xdg.d.ts +0 -11
  129. package/build/dts/Xdg.d.ts.map +0 -1
  130. package/build/dts/index.d.ts.map +0 -1
  131. package/build/dts/main.d.ts +0 -3
  132. package/build/dts/main.d.ts.map +0 -1
  133. package/build/esm/ApiClient.js +0 -305
  134. package/build/esm/ApiClient.js.map +0 -1
  135. package/build/esm/Auth/Domain.js +0 -56
  136. package/build/esm/Auth/Domain.js.map +0 -1
  137. package/build/esm/Auth/ManualAuthorization.js +0 -253
  138. package/build/esm/Auth/ManualAuthorization.js.map +0 -1
  139. package/build/esm/Auth/PendingInit.js +0 -267
  140. package/build/esm/Auth/PendingInit.js.map +0 -1
  141. package/build/esm/Auth/Pkce.js +0 -23
  142. package/build/esm/Auth/Pkce.js.map +0 -1
  143. package/build/esm/Auth/SetupGrantAuthorization.js +0 -91
  144. package/build/esm/Auth/SetupGrantAuthorization.js.map +0 -1
  145. package/build/esm/Authentication.js +0 -143
  146. package/build/esm/Authentication.js.map +0 -1
  147. package/build/esm/BrowserOAuth.js +0 -251
  148. package/build/esm/BrowserOAuth.js.map +0 -1
  149. package/build/esm/CommandPath.js +0 -31
  150. package/build/esm/CommandPath.js.map +0 -1
  151. package/build/esm/Commands/Fetch.js +0 -119
  152. package/build/esm/Commands/Fetch.js.map +0 -1
  153. package/build/esm/Commands/Hook.js +0 -20
  154. package/build/esm/Commands/Hook.js.map +0 -1
  155. package/build/esm/Commands/Init.js +0 -371
  156. package/build/esm/Commands/Init.js.map +0 -1
  157. package/build/esm/Commands/Mcp.js +0 -19
  158. package/build/esm/Commands/Mcp.js.map +0 -1
  159. package/build/esm/Commands/McpRun.js +0 -15
  160. package/build/esm/Commands/McpRun.js.map +0 -1
  161. package/build/esm/Commands/Search.js +0 -46
  162. package/build/esm/Commands/Search.js.map +0 -1
  163. package/build/esm/Commands/Skill.js +0 -17
  164. package/build/esm/Commands/Skill.js.map +0 -1
  165. package/build/esm/Commands/Status.js +0 -186
  166. package/build/esm/Commands/Status.js.map +0 -1
  167. package/build/esm/Commands/Telemetry.js +0 -23
  168. package/build/esm/Commands/Telemetry.js.map +0 -1
  169. package/build/esm/Commands/Uninstall.js +0 -28
  170. package/build/esm/Commands/Uninstall.js.map +0 -1
  171. package/build/esm/Config.js +0 -619
  172. package/build/esm/Config.js.map +0 -1
  173. package/build/esm/Hook/Claude.js +0 -74
  174. package/build/esm/Hook/Claude.js.map +0 -1
  175. package/build/esm/Hook/Errors.js +0 -18
  176. package/build/esm/Hook/Errors.js.map +0 -1
  177. package/build/esm/Hook/Opencode.js +0 -50
  178. package/build/esm/Hook/Opencode.js.map +0 -1
  179. package/build/esm/Hook/SnapshotNote.js +0 -65
  180. package/build/esm/Hook/SnapshotNote.js.map +0 -1
  181. package/build/esm/Init/ClaudeAdapter.js +0 -137
  182. package/build/esm/Init/ClaudeAdapter.js.map +0 -1
  183. package/build/esm/Init/ClaudeProfile.js +0 -344
  184. package/build/esm/Init/ClaudeProfile.js.map +0 -1
  185. package/build/esm/Init/Domain.js +0 -118
  186. package/build/esm/Init/Domain.js.map +0 -1
  187. package/build/esm/Init/HarnessAdapter.js +0 -21
  188. package/build/esm/Init/HarnessAdapter.js.map +0 -1
  189. package/build/esm/Init/HarnessDetector.js +0 -65
  190. package/build/esm/Init/HarnessDetector.js.map +0 -1
  191. package/build/esm/Init/HarnessRegistry.js +0 -58
  192. package/build/esm/Init/HarnessRegistry.js.map +0 -1
  193. package/build/esm/Init/MutationTransaction.js +0 -494
  194. package/build/esm/Init/MutationTransaction.js.map +0 -1
  195. package/build/esm/Init/Service.js +0 -319
  196. package/build/esm/Init/Service.js.map +0 -1
  197. package/build/esm/Init/StandardAdapters.js +0 -116
  198. package/build/esm/Init/StandardAdapters.js.map +0 -1
  199. package/build/esm/Init/Status.js +0 -215
  200. package/build/esm/Init/Status.js.map +0 -1
  201. package/build/esm/Install/Claude/Hook.js +0 -77
  202. package/build/esm/Install/Claude/Hook.js.map +0 -1
  203. package/build/esm/Install/Claude/Mcp.js +0 -101
  204. package/build/esm/Install/Claude/Mcp.js.map +0 -1
  205. package/build/esm/Install/Claude/Skill.js +0 -56
  206. package/build/esm/Install/Claude/Skill.js.map +0 -1
  207. package/build/esm/Install/Codex/Mcp.js +0 -97
  208. package/build/esm/Install/Codex/Mcp.js.map +0 -1
  209. package/build/esm/Install/Codex/Skill.js +0 -33
  210. package/build/esm/Install/Codex/Skill.js.map +0 -1
  211. package/build/esm/Install/Cursor/Mcp.js +0 -74
  212. package/build/esm/Install/Cursor/Mcp.js.map +0 -1
  213. package/build/esm/Install/Cursor/Skill.js +0 -40
  214. package/build/esm/Install/Cursor/Skill.js.map +0 -1
  215. package/build/esm/Install/Domain.js +0 -162
  216. package/build/esm/Install/Domain.js.map +0 -1
  217. package/build/esm/Install/Hook.js +0 -38
  218. package/build/esm/Install/Hook.js.map +0 -1
  219. package/build/esm/Install/Mcp.js +0 -40
  220. package/build/esm/Install/Mcp.js.map +0 -1
  221. package/build/esm/Install/Opencode/Hook.js +0 -44
  222. package/build/esm/Install/Opencode/Hook.js.map +0 -1
  223. package/build/esm/Install/Opencode/Mcp.js +0 -76
  224. package/build/esm/Install/Opencode/Mcp.js.map +0 -1
  225. package/build/esm/Install/Opencode/Skill.js +0 -37
  226. package/build/esm/Install/Opencode/Skill.js.map +0 -1
  227. package/build/esm/Install/Skill.js +0 -41
  228. package/build/esm/Install/Skill.js.map +0 -1
  229. package/build/esm/Install/Uninstall.js +0 -49
  230. package/build/esm/Install/Uninstall.js.map +0 -1
  231. package/build/esm/MarkdownAnsi.js +0 -142
  232. package/build/esm/MarkdownAnsi.js.map +0 -1
  233. package/build/esm/Mcp/ExpandDocs.js +0 -56
  234. package/build/esm/Mcp/ExpandDocs.js.map +0 -1
  235. package/build/esm/Mcp/RequestHeaders.js +0 -13
  236. package/build/esm/Mcp/RequestHeaders.js.map +0 -1
  237. package/build/esm/Mcp/Server.js +0 -12
  238. package/build/esm/Mcp/Server.js.map +0 -1
  239. package/build/esm/Mcp/Toolkit.js +0 -16
  240. package/build/esm/Mcp/Toolkit.js.map +0 -1
  241. package/build/esm/Mcp/tools/Citations.js +0 -193
  242. package/build/esm/Mcp/tools/Citations.js.map +0 -1
  243. package/build/esm/Mcp/tools/Fetch.js +0 -165
  244. package/build/esm/Mcp/tools/Fetch.js.map +0 -1
  245. package/build/esm/SecureFile.js +0 -36
  246. package/build/esm/SecureFile.js.map +0 -1
  247. package/build/esm/Snippets.js +0 -29
  248. package/build/esm/Snippets.js.map +0 -1
  249. package/build/esm/Telemetry.js +0 -157
  250. package/build/esm/Telemetry.js.map +0 -1
  251. package/build/esm/Version.js +0 -4
  252. package/build/esm/Version.js.map +0 -1
  253. package/build/esm/Xdg.js +0 -15
  254. package/build/esm/Xdg.js.map +0 -1
  255. package/build/esm/index.js.map +0 -1
  256. package/build/esm/main.js.map +0 -1
  257. package/src/ApiClient.ts +0 -450
  258. package/src/Auth/Domain.ts +0 -63
  259. package/src/Auth/ManualAuthorization.ts +0 -296
  260. package/src/Auth/PendingInit.ts +0 -338
  261. package/src/Auth/Pkce.ts +0 -26
  262. package/src/Auth/SetupGrantAuthorization.ts +0 -116
  263. package/src/Authentication.ts +0 -202
  264. package/src/BrowserOAuth.ts +0 -359
  265. package/src/CommandPath.ts +0 -30
  266. package/src/Commands/Fetch.ts +0 -188
  267. package/src/Commands/Hook.ts +0 -48
  268. package/src/Commands/Init.ts +0 -489
  269. package/src/Commands/Mcp.ts +0 -30
  270. package/src/Commands/McpRun.ts +0 -25
  271. package/src/Commands/Search.ts +0 -97
  272. package/src/Commands/Skill.ts +0 -30
  273. package/src/Commands/Status.ts +0 -228
  274. package/src/Commands/Telemetry.ts +0 -42
  275. package/src/Commands/Uninstall.ts +0 -38
  276. package/src/Config.ts +0 -840
  277. package/src/Hook/Claude.ts +0 -81
  278. package/src/Hook/Errors.ts +0 -19
  279. package/src/Hook/Opencode.ts +0 -58
  280. package/src/Hook/SnapshotNote.ts +0 -66
  281. package/src/Init/ClaudeAdapter.ts +0 -191
  282. package/src/Init/ClaudeProfile.ts +0 -453
  283. package/src/Init/Domain.ts +0 -153
  284. package/src/Init/HarnessAdapter.ts +0 -35
  285. package/src/Init/HarnessDetector.ts +0 -77
  286. package/src/Init/HarnessRegistry.ts +0 -87
  287. package/src/Init/MutationTransaction.ts +0 -747
  288. package/src/Init/Service.ts +0 -385
  289. package/src/Init/StandardAdapters.ts +0 -141
  290. package/src/Init/Status.ts +0 -253
  291. package/src/Install/Claude/Hook.ts +0 -123
  292. package/src/Install/Claude/Mcp.ts +0 -129
  293. package/src/Install/Claude/Skill.ts +0 -77
  294. package/src/Install/Codex/Mcp.ts +0 -114
  295. package/src/Install/Codex/Skill.ts +0 -44
  296. package/src/Install/Cursor/Mcp.ts +0 -85
  297. package/src/Install/Cursor/Skill.ts +0 -51
  298. package/src/Install/Domain.ts +0 -221
  299. package/src/Install/Hook.ts +0 -50
  300. package/src/Install/Mcp.ts +0 -71
  301. package/src/Install/Opencode/Hook.ts +0 -55
  302. package/src/Install/Opencode/Mcp.ts +0 -87
  303. package/src/Install/Opencode/Skill.ts +0 -48
  304. package/src/Install/Opencode/expandai-webfetch.d.ts +0 -23
  305. package/src/Install/Opencode/expandai-webfetch.js +0 -56
  306. package/src/Install/Skill.ts +0 -57
  307. package/src/Install/Uninstall.ts +0 -82
  308. package/src/MarkdownAnsi.ts +0 -162
  309. package/src/Mcp/ExpandDocs.ts +0 -62
  310. package/src/Mcp/RequestHeaders.ts +0 -16
  311. package/src/Mcp/Server.ts +0 -15
  312. package/src/Mcp/Toolkit.ts +0 -21
  313. package/src/Mcp/tools/Citations.ts +0 -219
  314. package/src/Mcp/tools/Fetch.ts +0 -203
  315. package/src/SecureFile.ts +0 -70
  316. package/src/Snippets.ts +0 -39
  317. package/src/Telemetry.ts +0 -186
  318. package/src/Version.ts +0 -3
  319. package/src/Xdg.ts +0 -18
  320. package/src/index.ts +0 -1
  321. package/src/main.ts +0 -305
@@ -1,45 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { CliInvocation, ConfigIo, McpParseError, McpWriteError } from '../Domain.js';
3
- declare const Entry_base: Schema.Class<Entry, {
4
- command: typeof Schema.NonEmptyTrimmedString;
5
- args: Schema.Array$<typeof Schema.String>;
6
- env: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
7
- enabled: typeof Schema.Boolean;
8
- }, Schema.Struct.Encoded<{
9
- command: typeof Schema.NonEmptyTrimmedString;
10
- args: Schema.Array$<typeof Schema.String>;
11
- env: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
12
- enabled: typeof Schema.Boolean;
13
- }>, never, {
14
- readonly env?: {
15
- readonly [x: string]: string;
16
- } | undefined;
17
- } & {
18
- readonly args: readonly string[];
19
- } & {
20
- readonly command: string;
21
- } & {
22
- readonly enabled: boolean;
23
- }, {}, {}>;
24
- export declare class Entry extends Entry_base {
25
- }
26
- declare const CodexMcp_base: Effect.Service.Class<CodexMcp, "@expandai/cli/Install/Codex/Mcp", {
27
- readonly dependencies: readonly [import("effect/Layer").Layer<ConfigIo, never, never>, import("effect/Layer").Layer<CliInvocation, import("effect/ConfigError").ConfigError, never>];
28
- readonly effect: Effect.Effect<{
29
- readonly install: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError | import("@effect/platform/Error").PlatformError, never>;
30
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError | import("@effect/platform/Error").PlatformError, never>;
31
- readonly isInstalled: (scope: "global" | "project") => Effect.Effect<boolean, McpParseError | import("@effect/platform/Error").PlatformError, never>;
32
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
33
- }, import("effect/ConfigError").ConfigError, CliInvocation | ConfigIo>;
34
- }>;
35
- /**
36
- * Codex MCP descriptor — Codex stores MCP servers in TOML config under
37
- * `[mcp_servers.<name>]`.
38
- *
39
- * - global → `~/.codex/config.toml`
40
- * - project → `<cwd>/.codex/config.toml`
41
- */
42
- export declare class CodexMcp extends CodexMcp_base {
43
- }
44
- export {};
45
- //# sourceMappingURL=Mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mcp.d.ts","sourceRoot":"","sources":["../../../../src/Install/Codex/Mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAiB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAc,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;AAGhG,qBAAa,KAAM,SAAQ,UAKzB;CAAG;;;;;;;;;;AAgBL;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,aA+E5B;CAAG"}
@@ -1,22 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { SkillIo } from '../Domain.js';
3
- /**
4
- * Codex skills use the open agent skills locations:
5
- *
6
- * - global → `~/.agents/skills/<name>/`
7
- * - project → `<cwd>/.agents/skills/<name>/`
8
- */
9
- export declare const SKILL_NAME = "expandai";
10
- declare const CodexSkill_base: Effect.Service.Class<CodexSkill, "@expandai/cli/Install/Codex/Skill", {
11
- readonly dependencies: readonly [import("effect/Layer").Layer<SkillIo, import("@effect/platform/Error").BadArgument, never>];
12
- readonly effect: Effect.Effect<{
13
- readonly install: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
14
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
15
- readonly isCurrent: (scope: "global" | "project") => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
16
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
17
- }, import("effect/ConfigError").ConfigError, SkillIo>;
18
- }>;
19
- export declare class CodexSkill extends CodexSkill_base {
20
- }
21
- export {};
22
- //# sourceMappingURL=Skill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../../../src/Install/Codex/Skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,MAAM,EAAS,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC;;;;;GAKG;AAEH,eAAO,MAAM,UAAU,aAAa,CAAA;;;;;;;;;;AAEpC,qBAAa,UAAW,SAAQ,eA6B9B;CAAG"}
@@ -1,45 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { CliInvocation, ConfigIo, McpParseError, McpWriteError } from '../Domain.js';
3
- declare const Entry_base: Schema.Class<Entry, {
4
- type: Schema.Literal<["stdio"]>;
5
- command: typeof Schema.NonEmptyTrimmedString;
6
- args: Schema.Array$<typeof Schema.String>;
7
- env: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
8
- }, Schema.Struct.Encoded<{
9
- type: Schema.Literal<["stdio"]>;
10
- command: typeof Schema.NonEmptyTrimmedString;
11
- args: Schema.Array$<typeof Schema.String>;
12
- env: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
13
- }>, never, {
14
- readonly env?: {
15
- readonly [x: string]: string;
16
- } | undefined;
17
- } & {
18
- readonly args: readonly string[];
19
- } & {
20
- readonly command: string;
21
- } & {
22
- readonly type: "stdio";
23
- }, {}, {}>;
24
- /**
25
- * Cursor MCP descriptor — same `mcpServers` shape as Claude Code, different
26
- * paths.
27
- *
28
- * - global → `~/.cursor/mcp.json`
29
- * - project → `<cwd>/.cursor/mcp.json`
30
- */
31
- export declare class Entry extends Entry_base {
32
- }
33
- declare const CursorMcp_base: Effect.Service.Class<CursorMcp, "@expandai/cli/Install/Cursor/Mcp", {
34
- readonly dependencies: readonly [import("effect/Layer").Layer<ConfigIo, never, never>, import("effect/Layer").Layer<CliInvocation, import("effect/ConfigError").ConfigError, never>];
35
- readonly effect: Effect.Effect<{
36
- readonly install: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError, never>;
37
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError, never>;
38
- readonly isInstalled: (scope: "global" | "project") => Effect.Effect<boolean, McpParseError, never>;
39
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
40
- }, import("effect/ConfigError").ConfigError, CliInvocation | ConfigIo>;
41
- }>;
42
- export declare class CursorMcp extends CursorMcp_base {
43
- }
44
- export {};
45
- //# sourceMappingURL=Mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mcp.d.ts","sourceRoot":"","sources":["../../../../src/Install/Cursor/Mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAiB,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAA0B,aAAa,EAAc,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;AAGxH;;;;;;GAMG;AACH,qBAAa,KAAM,SAAQ,UAKzB;CAAG;;;;;;;;;;AAEL,qBAAa,SAAU,SAAQ,cAiE7B;CAAG"}
@@ -1,29 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { SkillIo } from '../Domain.js';
3
- /**
4
- * Cursor skills are auto-loaded from these locations (per
5
- * cursor.com/docs/skills):
6
- *
7
- * - global → `~/.cursor/skills/<name>/`
8
- * - project → `<cwd>/.cursor/skills/<name>/`
9
- *
10
- * Cursor also compat-loads `.claude/skills/`, `.codex/skills/`, `.agents/skills/`
11
- * at both project and user scope, but we ship to Cursor's native paths.
12
- *
13
- * Format is the same SKILL.md + YAML frontmatter open standard as Claude Code
14
- * and OpenCode, so the bundled `skills/expandai/` directory copies in unchanged.
15
- */
16
- export declare const SKILL_NAME = "expandai";
17
- declare const CursorSkill_base: Effect.Service.Class<CursorSkill, "@expandai/cli/Install/Cursor/Skill", {
18
- readonly dependencies: readonly [import("effect/Layer").Layer<SkillIo, import("@effect/platform/Error").BadArgument, never>];
19
- readonly effect: Effect.Effect<{
20
- readonly install: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
21
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
22
- readonly isCurrent: (scope: "global" | "project") => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
23
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
24
- }, import("effect/ConfigError").ConfigError, SkillIo>;
25
- }>;
26
- export declare class CursorSkill extends CursorSkill_base {
27
- }
28
- export {};
29
- //# sourceMappingURL=Skill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../../../src/Install/Cursor/Skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,MAAM,EAAS,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,UAAU,aAAa,CAAA;;;;;;;;;;AAEpC,qBAAa,WAAY,SAAQ,gBA6B/B;CAAG"}
@@ -1,103 +0,0 @@
1
- import { FileSystem, Path } from '@effect/platform';
2
- import { Effect, Layer, Schema } from 'effect';
3
- declare const McpParseError_base: Schema.TaggedErrorClass<McpParseError, "McpParseError", {
4
- readonly _tag: Schema.tag<"McpParseError">;
5
- } & {
6
- path: typeof Schema.String;
7
- error: typeof Schema.Defect;
8
- }>;
9
- export declare class McpParseError extends McpParseError_base {
10
- get message(): string;
11
- }
12
- declare const McpWriteError_base: Schema.TaggedErrorClass<McpWriteError, "McpWriteError", {
13
- readonly _tag: Schema.tag<"McpWriteError">;
14
- } & {
15
- path: typeof Schema.String;
16
- error: typeof Schema.Defect;
17
- }>;
18
- export declare class McpWriteError extends McpWriteError_base {
19
- get message(): string;
20
- }
21
- export declare const Host: Schema.Literal<["claude-code", "cursor", "opencode", "codex"]>;
22
- export type Host = typeof Host.Type;
23
- /**
24
- * The agent harness invoking the CLI — every install target plus 'unknown'
25
- * for uninstrumented callers. Installers bake `EXPANDAI_HARNESS=<host>` into
26
- * MCP/hook configs; telemetry reads it back.
27
- */
28
- export declare const Harness: Schema.Literal<["claude-code", "cursor", "opencode", "codex", "unknown"]>;
29
- export type Harness = typeof Harness.Type;
30
- export declare const InstallScope: Schema.Literal<["project", "global"]>;
31
- export type InstallScope = typeof InstallScope.Type;
32
- export declare const McpServersConfigSchema: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.TypeLiteral<{
33
- mcpServers: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>, {
34
- default: () => {};
35
- }>;
36
- }, readonly [Schema.Record$<typeof Schema.String, typeof Schema.Unknown>]>>;
37
- export declare const OpencodeConfigSchema: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.TypeLiteral<{
38
- mcp: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>, {
39
- default: () => {};
40
- }>;
41
- }, readonly [Schema.Record$<typeof Schema.String, typeof Schema.Unknown>]>>;
42
- export declare const SERVER_KEY = "expandai";
43
- /** How a host config should launch the CLI: `command` plus leading args. */
44
- export interface CliCommand {
45
- readonly command: string;
46
- readonly args: ReadonlyArray<string>;
47
- }
48
- export declare const DIRECT_CLI: CliCommand;
49
- /**
50
- * Renders a `CliCommand` as the single shell string Claude Code stores for hook
51
- * entries. MCP descriptors keep `command`/`args` separate because they exec
52
- * directly; hooks are run through a shell, so they need one flat line.
53
- */
54
- export declare function cliShellCommand(cli: CliCommand, args: ReadonlyArray<string>): string;
55
- declare const CliInvocation_base: Effect.Service.Class<CliInvocation, "@expandai/cli/Install/CliInvocation", {
56
- readonly dependencies: readonly [Layer.Layer<FileSystem.FileSystem, never, never>, Layer.Layer<Path.Path, never, never>];
57
- readonly effect: Effect.Effect<{
58
- readonly resolve: () => Effect.Effect<CliCommand, never, never>;
59
- }, import("effect/ConfigError").ConfigError, FileSystem.FileSystem | Path.Path>;
60
- }>;
61
- export declare class CliInvocation extends CliInvocation_base {
62
- /** Dependency-open layer so fixtures can supply their own file system and PATH. */
63
- static readonly layer: Layer.Layer<CliInvocation, import("effect/ConfigError").ConfigError, FileSystem.FileSystem | Path.Path>;
64
- }
65
- export declare const readConfigText: (file: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem>;
66
- export declare const writeConfigText: (file: string, text: string) => Effect.Effect<void, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem | Path.Path>;
67
- declare const ConfigIo_base: Effect.Service.Class<ConfigIo, "@expandai/cli/Install/ConfigIo", {
68
- readonly dependencies: readonly [Layer.Layer<FileSystem.FileSystem, never, never>, Layer.Layer<Path.Path, never, never>];
69
- readonly effect: Effect.Effect<{
70
- readonly read: <A>(file: string, schema: Schema.Schema<A, string, never>) => Effect.Effect<A, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError, never>;
71
- readonly write: <A>(file: string, value: unknown, schema: Schema.Schema<A, string, never>) => Effect.Effect<void, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError, never>;
72
- readonly exists: (file: string) => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
73
- readonly readText: (file: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
74
- readonly writeText: (file: string, text: string) => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
75
- }, never, FileSystem.FileSystem | Path.Path>;
76
- }>;
77
- /**
78
- * Captures `FileSystem` + `Path` once and exposes string-encoded JSON read/
79
- * write methods that don't re-yield them on every call. Use this from inside
80
- * an `Effect.Service` gen block so the install/uninstall methods don't have
81
- * to re-thread `provideService` calls.
82
- */
83
- export declare class ConfigIo extends ConfigIo_base {
84
- }
85
- declare const SkillIo_base: Effect.Service.Class<SkillIo, "@expandai/cli/Install/SkillIo", {
86
- readonly dependencies: readonly [Layer.Layer<FileSystem.FileSystem, never, never>, Layer.Layer<Path.Path, never, never>];
87
- readonly effect: Effect.Effect<{
88
- readonly install: (target: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
89
- readonly uninstall: (target: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
90
- readonly isCurrent: (target: string) => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
91
- }, import("@effect/platform/Error").BadArgument, FileSystem.FileSystem | Path.Path>;
92
- }>;
93
- /**
94
- * Captures `FileSystem` + `Path` once and exposes skill directory copy/remove
95
- * operations. The bundled `SKILL.md` lives at `<cli>/skills/expandai/` (or
96
- * `<build>/skills/expandai/` in production); this service computes that path
97
- * from its own `import.meta.url`, so per-host skill descriptors only need to
98
- * provide `pathFor` and call `io.install(target)` / `io.uninstall(target)`.
99
- */
100
- export declare class SkillIo extends SkillIo_base {
101
- }
102
- export {};
103
- //# sourceMappingURL=Domain.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Domain.d.ts","sourceRoot":"","sources":["../../../src/Install/Domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EAAiB,MAAM,EAAe,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;;;;;;;AAElF,qBAAa,aAAc,SAAQ,kBAGjC;IACD,IAAI,OAAO,WAEV;CACD;;;;;;;AAED,qBAAa,aAAc,SAAQ,kBAGjC;IACD,IAAI,OAAO,WAEV;CACD;AAED,eAAO,MAAM,IAAI,gEAA+D,CAAA;AAChF,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,2EAA8C,CAAA;AAClE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,YAAY,uCAAsC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAInD,eAAO,MAAM,sBAAsB;;;;2EAGlC,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;2EAGhC,CAAA;AAED,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,UAAU,EAAE,UAA8C,CAAA;AAGvE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAEpF;;;;;;;AA0BD,qBAAa,aAAc,SAAQ,kBAGjC;IACD,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,KAAK,0GAAsF;CAC3G;AAED,eAAO,MAAM,cAAc,gHAOzB,CAAA;AAEF,eAAO,MAAM,eAAe,wIAK1B,CAAA;;;;wBAcmD,CAAC;yBAKC,CAAC;;;;;;AAjBxD;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,aA4C5B;CAAG;;;;;;;;;AAEL;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,YA6C3B;CAAG"}
@@ -1,30 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { ClaudeHook } from './Claude/Hook.js';
3
- import { Mcp } from './Mcp.js';
4
- import { OpencodeHook } from './Opencode/Hook.js';
5
- /**
6
- * Hook install dispatcher. Bundles MCP install + per-host hook config:
7
- *
8
- * - claude-code: writes the matcher into `~/.claude/settings.json` (global)
9
- * or `<cwd>/.claude/settings.json` (project), then registers expandai as
10
- * an MCP server at the matching scope.
11
- * - opencode: writes the webfetch plugin file into `.opencode/plugins/`
12
- * (project) or `~/.config/opencode/plugins/` (global), plus registers
13
- * expandai as an MCP server.
14
- *
15
- * Cursor has no hook system per opencode.ai/docs and Cursor's docs, so it's
16
- * absent from this Host union (compare with `Mcp.Host` which includes Cursor).
17
- */
18
- export declare const HookHost: Schema.Literal<["claude-code", "opencode"]>;
19
- export type HookHost = typeof HookHost.Type;
20
- declare const HookInstaller_base: Effect.Service.Class<HookInstaller, "@expandai/cli/Install/Hook", {
21
- readonly dependencies: readonly [import("effect/Layer").Layer<Mcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<ClaudeHook, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<OpencodeHook, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>];
22
- readonly effect: Effect.Effect<{
23
- readonly install: (host: "claude-code" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError | import("@effect/platform/Error").PlatformError, never>;
24
- readonly uninstall: (host: "claude-code" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError | import("@effect/platform/Error").PlatformError, never>;
25
- }, never, ClaudeHook | Mcp | OpencodeHook>;
26
- }>;
27
- export declare class HookInstaller extends HookInstaller_base {
28
- }
29
- export {};
30
- //# sourceMappingURL=Hook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hook.d.ts","sourceRoot":"","sources":["../../../src/Install/Hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAqB,GAAG,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,6CAA4C,CAAA;AACjE,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;;;;;;;;AAE3C,qBAAa,aAAc,SAAQ,kBA4BjC;CAAG"}
@@ -1,28 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { ClaudeMcp } from './Claude/Mcp.js';
3
- import { CodexMcp } from './Codex/Mcp.js';
4
- import { CursorMcp } from './Cursor/Mcp.js';
5
- import { OpencodeMcp } from './Opencode/Mcp.js';
6
- export { Host, InstallScope, McpParseError, McpWriteError } from './Domain.js';
7
- declare const Mcp_base: Effect.Service.Class<Mcp, "@expandai/cli/Install/Mcp", {
8
- readonly dependencies: readonly [import("effect/Layer").Layer<ClaudeMcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<CursorMcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<OpencodeMcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<CodexMcp, import("effect/ConfigError").ConfigError, never>];
9
- readonly effect: Effect.Effect<{
10
- readonly install: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError | import("@effect/platform/Error").PlatformError, never>;
11
- readonly uninstall: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError | import("@effect/platform/Error").PlatformError, never>;
12
- readonly isInstalled: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<boolean, import("./Domain.js").McpParseError | import("@effect/platform/Error").PlatformError, never>;
13
- readonly pathFor: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<string, never, never>;
14
- }, never, ClaudeMcp | CodexMcp | CursorMcp | OpencodeMcp>;
15
- }>;
16
- /**
17
- * MCP install dispatcher. Per-host descriptors live in `Install/<Host>/Mcp.ts`
18
- * and contribute their path resolution + entry shape; this service handles
19
- * the file I/O (read existing config, merge, write back) and routes by host.
20
- *
21
- * - claude-code (~/.claude.json | <cwd>/.mcp.json) → mcpServers shape
22
- * - cursor (~/.cursor/mcp.json | <cwd>/.cursor/mcp.json) → mcpServers
23
- * - opencode (~/.config/opencode/opencode.json | <cwd>/opencode.json) → opencode `mcp` shape
24
- * - codex (~/.codex/config.toml | <cwd>/.codex/config.toml) → Codex TOML `mcp_servers`
25
- */
26
- export declare class Mcp extends Mcp_base {
27
- }
28
- //# sourceMappingURL=Mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mcp.d.ts","sourceRoot":"","sources":["../../../src/Install/Mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;;;;;;;;;;AAE9E;;;;;;;;;GASG;AAEH,qBAAa,GAAI,SAAQ,QAkDvB;CAAG"}
@@ -1,24 +0,0 @@
1
- import { FileSystem, Path } from '@effect/platform';
2
- import { Effect } from 'effect';
3
- /**
4
- * OpenCode hook = a JS plugin file at `.opencode/plugins/` (project) or
5
- * `~/.config/opencode/plugins/` (global). The plugin shells out to
6
- * `expandai hook opencode` so all fetch logic stays in the CLI.
7
- *
8
- * The plugin uses `tool.execute.after` (the only hook whose contract lets us
9
- * replace the rendered result via `output.output`); `tool.execute.before` is
10
- * limited to mutating tool args. See @opencode-ai/plugin's dist/index.d.ts.
11
- */
12
- export declare const PLUGIN_FILE = "expandai-webfetch.js";
13
- declare const OpencodeHook_base: Effect.Service.Class<OpencodeHook, "@expandai/cli/Install/Opencode/Hook", {
14
- readonly dependencies: readonly [import("effect/Layer").Layer<FileSystem.FileSystem, never, never>, import("effect/Layer").Layer<Path.Path, never, never>];
15
- readonly effect: Effect.Effect<{
16
- readonly install: (scope: "global" | "project") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
17
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
18
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
19
- }, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, FileSystem.FileSystem | Path.Path>;
20
- }>;
21
- export declare class OpencodeHook extends OpencodeHook_base {
22
- }
23
- export {};
24
- //# sourceMappingURL=Hook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hook.d.ts","sourceRoot":"","sources":["../../../../src/Install/Opencode/Hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EAAmB,MAAM,EAAS,MAAM,QAAQ,CAAA;AAGvD;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,yBAAyB,CAAA;;;;;;;;;AAEjD,qBAAa,YAAa,SAAQ,iBAoChC;CAAG"}
@@ -1,47 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { CliInvocation, ConfigIo, McpParseError, McpWriteError } from '../Domain.js';
3
- declare const Entry_base: Schema.Class<Entry, {
4
- type: Schema.Literal<["local"]>;
5
- command: Schema.Array$<typeof Schema.String>;
6
- environment: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
7
- enabled: Schema.optional<typeof Schema.Boolean>;
8
- }, Schema.Struct.Encoded<{
9
- type: Schema.Literal<["local"]>;
10
- command: Schema.Array$<typeof Schema.String>;
11
- environment: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
12
- enabled: Schema.optional<typeof Schema.Boolean>;
13
- }>, never, {
14
- readonly enabled?: boolean | undefined;
15
- } & {
16
- readonly environment?: {
17
- readonly [x: string]: string;
18
- } | undefined;
19
- } & {
20
- readonly command: readonly string[];
21
- } & {
22
- readonly type: "local";
23
- }, {}, {}>;
24
- /**
25
- * OpenCode MCP descriptor — its own shape (per opencode.ai/docs/mcp-servers):
26
- * top-level key is `mcp` (not `mcpServers`), `command` is an array (no
27
- * separate args), env is called `environment`, and `type` uses
28
- * `local` / `remote` rather than `stdio` / `http`.
29
- *
30
- * - global → `~/.config/opencode/opencode.json`
31
- * - project → `<cwd>/opencode.json`
32
- */
33
- export declare class Entry extends Entry_base {
34
- }
35
- declare const OpencodeMcp_base: Effect.Service.Class<OpencodeMcp, "@expandai/cli/Install/Opencode/Mcp", {
36
- readonly dependencies: readonly [import("effect/Layer").Layer<ConfigIo, never, never>, import("effect/Layer").Layer<CliInvocation, import("effect/ConfigError").ConfigError, never>];
37
- readonly effect: Effect.Effect<{
38
- readonly install: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError, never>;
39
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<void, McpParseError | McpWriteError, never>;
40
- readonly isInstalled: (scope: "global" | "project") => Effect.Effect<boolean, McpParseError, never>;
41
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
42
- }, import("effect/ConfigError").ConfigError, CliInvocation | ConfigIo>;
43
- }>;
44
- export declare class OpencodeMcp extends OpencodeMcp_base {
45
- }
46
- export {};
47
- //# sourceMappingURL=Mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Mcp.d.ts","sourceRoot":"","sources":["../../../../src/Install/Opencode/Mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAiB,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAoC,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;AAGtH;;;;;;;;GAQG;AACH,qBAAa,KAAM,SAAQ,UAKzB;CAAG;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAiE/B;CAAG"}
@@ -1,26 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { SkillIo } from '../Domain.js';
3
- /**
4
- * OpenCode skills are Claude-Code-compatible Markdown files. Per
5
- * opencode.ai/docs/skills, OpenCode auto-discovers them under either
6
- * `.opencode/skills/<name>/`, `.claude/skills/<name>/`, or
7
- * `.agents/skills/<name>/` (and the `~/.config/opencode/...` equivalents
8
- * for global). We ship to OpenCode-native paths.
9
- *
10
- * - global → `~/.config/opencode/skills/expandai/SKILL.md`
11
- * - project → `<cwd>/.opencode/skills/expandai/SKILL.md`
12
- */
13
- export declare const SKILL_NAME = "expandai";
14
- declare const OpencodeSkill_base: Effect.Service.Class<OpencodeSkill, "@expandai/cli/Install/Opencode/Skill", {
15
- readonly dependencies: readonly [import("effect/Layer").Layer<SkillIo, import("@effect/platform/Error").BadArgument, never>];
16
- readonly effect: Effect.Effect<{
17
- readonly install: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
18
- readonly uninstall: (scope: "global" | "project") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
19
- readonly isCurrent: (scope: "global" | "project") => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
20
- readonly pathFor: (scope: "global" | "project") => Effect.Effect<string, never, never>;
21
- }, import("effect/ConfigError").ConfigError, SkillIo>;
22
- }>;
23
- export declare class OpencodeSkill extends OpencodeSkill_base {
24
- }
25
- export {};
26
- //# sourceMappingURL=Skill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../../../src/Install/Opencode/Skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,MAAM,EAAS,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC;;;;;;;;;GASG;AAEH,eAAO,MAAM,UAAU,aAAa,CAAA;;;;;;;;;;AAEpC,qBAAa,aAAc,SAAQ,kBA6BjC;CAAG"}
@@ -1,32 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { ClaudeSkill } from './Claude/Skill.js';
3
- import { CodexSkill } from './Codex/Skill.js';
4
- import { CursorSkill } from './Cursor/Skill.js';
5
- import { OpencodeSkill } from './Opencode/Skill.js';
6
- declare const Skill_base: Effect.Service.Class<Skill, "@expandai/cli/Install/Skill", {
7
- readonly dependencies: readonly [import("effect/Layer").Layer<ClaudeSkill, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<CursorSkill, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<OpencodeSkill, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<CodexSkill, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>];
8
- readonly effect: Effect.Effect<{
9
- readonly install: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
10
- readonly uninstall: (host: "claude-code" | "codex" | "cursor" | "opencode", scope: "global" | "project") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
11
- }, never, ClaudeSkill | CodexSkill | CursorSkill | OpencodeSkill>;
12
- }>;
13
- /**
14
- * Skill install dispatcher. Copies the bundled `SKILL.md` from the CLI's
15
- * own `skills/expandai/` source into the host-specific destination.
16
- *
17
- * - claude-code: `~/.claude/skills/expandai/` (global) or
18
- * `<cwd>/.claude/skills/expandai/` (project)
19
- * - cursor: `~/.cursor/skills/expandai/` (global) or
20
- * `<cwd>/.cursor/skills/expandai/` (project)
21
- * - opencode: `~/.config/opencode/skills/expandai/` (global) or
22
- * `<cwd>/.opencode/skills/expandai/` (project)
23
- * - codex: `~/.agents/skills/expandai/` (global) or
24
- * `<cwd>/.agents/skills/expandai/` (project)
25
- *
26
- * All hosts use the same `SKILL.md` + YAML frontmatter open standard,
27
- * so the bundled skill directory copies in unchanged.
28
- */
29
- export declare class Skill extends Skill_base {
30
- }
31
- export {};
32
- //# sourceMappingURL=Skill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Skill.d.ts","sourceRoot":"","sources":["../../../src/Install/Skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAS,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;;;;;;;;AAEnD;;;;;;;;;;;;;;;GAeG;AAEH,qBAAa,KAAM,SAAQ,UAgCzB;CAAG"}
@@ -1,32 +0,0 @@
1
- import { Effect, Schema } from 'effect';
2
- import { HookInstaller } from './Hook.js';
3
- import { Mcp } from './Mcp.js';
4
- import { Skill } from './Skill.js';
5
- export declare const UninstallTarget: Schema.Literal<["all", "hook", "skill", "mcp"]>;
6
- declare const UninstallOptions_base: Schema.Class<UninstallOptions, {
7
- target: Schema.optional<Schema.Literal<["all", "hook", "skill", "mcp"]>>;
8
- host: Schema.optional<Schema.Literal<["claude-code", "cursor", "opencode", "codex"]>>;
9
- scope: Schema.optional<Schema.Literal<["project", "global"]>>;
10
- }, Schema.Struct.Encoded<{
11
- target: Schema.optional<Schema.Literal<["all", "hook", "skill", "mcp"]>>;
12
- host: Schema.optional<Schema.Literal<["claude-code", "cursor", "opencode", "codex"]>>;
13
- scope: Schema.optional<Schema.Literal<["project", "global"]>>;
14
- }>, never, {
15
- readonly host?: "claude-code" | "codex" | "cursor" | "opencode" | undefined;
16
- } & {
17
- readonly scope?: "global" | "project" | undefined;
18
- } & {
19
- readonly target?: "all" | "hook" | "mcp" | "skill" | undefined;
20
- }, {}, {}>;
21
- export declare class UninstallOptions extends UninstallOptions_base {
22
- }
23
- declare const Uninstall_base: Effect.Service.Class<Uninstall, "@expandai/cli/Install/Uninstall", {
24
- readonly dependencies: readonly [import("effect/Layer").Layer<HookInstaller, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<Mcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<Skill, import("@effect/platform/Error").BadArgument | import("effect/ConfigError").ConfigError, never>];
25
- readonly effect: Effect.Effect<{
26
- readonly uninstall: (options?: UninstallOptions | undefined) => Effect.Effect<void, import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError | import("@effect/platform/Error").PlatformError, never>;
27
- }, never, HookInstaller | Mcp | Skill>;
28
- }>;
29
- export declare class Uninstall extends Uninstall_base {
30
- }
31
- export {};
32
- //# sourceMappingURL=Uninstall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Uninstall.d.ts","sourceRoot":"","sources":["../../../src/Install/Uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAiB,aAAa,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAsB,GAAG,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,eAAO,MAAM,eAAe,iDAAgD,CAAA;;;;;;;;;;;;;;;;AAE5E,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;;AAOL,qBAAa,SAAU,SAAQ,cA+D7B;CAAG"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Zero-dependency ANSI syntax highlighting for markdown printed to an
3
- * interactive terminal.
4
- *
5
- * This is a highlighter, not a renderer: the input text is preserved
6
- * byte-for-byte and only wrapped in ANSI escape sequences, so copying
7
- * from the terminal or stripping the escapes yields the exact document
8
- * the API returned. Piped output (non-TTY) must stay unstyled — gate
9
- * calls with `shouldColorizeMarkdown`.
10
- */
11
- export interface ColorizeEnvironment {
12
- readonly isTty: boolean;
13
- readonly env: Readonly<Record<string, string | undefined>>;
14
- }
15
- /**
16
- * Standard CLI color negotiation: color only on an interactive terminal,
17
- * `NO_COLOR` (https://no-color.org) and `TERM=dumb` opt out, a non-zero
18
- * `FORCE_COLOR` opts in regardless of the terminal.
19
- */
20
- export declare function shouldColorizeMarkdown(environment?: ColorizeEnvironment): boolean;
21
- /**
22
- * Wrap a markdown document in ANSI styles for terminal display. Line-based:
23
- * headings, fences, front matter, blockquotes, list markers, and table pipes
24
- * get block styling; plain text lines get inline code / link / bold styling.
25
- */
26
- export declare function highlightMarkdownAnsi(markdown: string): string;
27
- /** Strip the escape sequences this module emits; used to verify lossless styling. */
28
- export declare function stripAnsi(text: string): string;
29
- //# sourceMappingURL=MarkdownAnsi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownAnsi.d.ts","sourceRoot":"","sources":["../../src/MarkdownAnsi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,WAAW,GAAE,mBAAgF,GAC3F,OAAO,CAOT;AAmCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoE9D;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9C"}
@@ -1,19 +0,0 @@
1
- import { Layer } from 'effect';
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>;
19
- //# sourceMappingURL=ExpandDocs.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestHeaders.d.ts","sourceRoot":"","sources":["../../../src/Mcp/RequestHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;;AAEvC;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,0BAGxC;IACF,MAAM,CAAC,QAAQ,CAAC,OAAO,mDAA0B;CACjD"}
@@ -1 +0,0 @@
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,3 +0,0 @@
1
- import { Layer } from 'effect';
2
- export declare const ExpandToolKit: Layer.Layer<never, import("effect/ConfigError").ConfigError, never>;
3
- //# sourceMappingURL=Toolkit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolkit.d.ts","sourceRoot":"","sources":["../../../src/Mcp/Toolkit.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAA;AAmBtC,eAAO,MAAM,aAAa,qEAA+D,CAAA"}