expandai 0.0.0 → 0.0.2

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 (209) hide show
  1. package/README.md +241 -6
  2. package/build/dts/ApiClient.d.ts +231 -0
  3. package/build/dts/ApiClient.d.ts.map +1 -0
  4. package/build/dts/Authentication.d.ts +23 -0
  5. package/build/dts/Authentication.d.ts.map +1 -0
  6. package/build/dts/BrowserOAuth.d.ts +99 -0
  7. package/build/dts/BrowserOAuth.d.ts.map +1 -0
  8. package/build/dts/Commands/Fetch.d.ts +30 -0
  9. package/build/dts/Commands/Fetch.d.ts.map +1 -0
  10. package/build/dts/Commands/Hook.d.ts +17 -0
  11. package/build/dts/Commands/Hook.d.ts.map +1 -0
  12. package/build/dts/Commands/Mcp.d.ts +11 -0
  13. package/build/dts/Commands/Mcp.d.ts.map +1 -0
  14. package/build/dts/Commands/McpRun.d.ts +5 -0
  15. package/build/dts/Commands/McpRun.d.ts.map +1 -0
  16. package/build/dts/Commands/Search.d.ts +21 -0
  17. package/build/dts/Commands/Search.d.ts.map +1 -0
  18. package/build/dts/Commands/Skill.d.ts +12 -0
  19. package/build/dts/Commands/Skill.d.ts.map +1 -0
  20. package/build/dts/Commands/Uninstall.d.ts +9 -0
  21. package/build/dts/Commands/Uninstall.d.ts.map +1 -0
  22. package/build/dts/Config.d.ts +105 -0
  23. package/build/dts/Config.d.ts.map +1 -0
  24. package/build/dts/DeviceAuth.d.ts +87 -0
  25. package/build/dts/DeviceAuth.d.ts.map +1 -0
  26. package/build/dts/Hook/Claude.d.ts +13 -0
  27. package/build/dts/Hook/Claude.d.ts.map +1 -0
  28. package/build/dts/Hook/Errors.d.ts +20 -0
  29. package/build/dts/Hook/Errors.d.ts.map +1 -0
  30. package/build/dts/Hook/Opencode.d.ts +13 -0
  31. package/build/dts/Hook/Opencode.d.ts.map +1 -0
  32. package/build/dts/Hook/SnapshotNote.d.ts +8 -0
  33. package/build/dts/Hook/SnapshotNote.d.ts.map +1 -0
  34. package/build/dts/Install/Claude/Hook.d.ts +60 -0
  35. package/build/dts/Install/Claude/Hook.d.ts.map +1 -0
  36. package/build/dts/Install/Claude/Mcp.d.ts +45 -0
  37. package/build/dts/Install/Claude/Mcp.d.ts.map +1 -0
  38. package/build/dts/Install/Claude/Skill.d.ts +24 -0
  39. package/build/dts/Install/Claude/Skill.d.ts.map +1 -0
  40. package/build/dts/Install/Codex/Mcp.d.ts +39 -0
  41. package/build/dts/Install/Codex/Mcp.d.ts.map +1 -0
  42. package/build/dts/Install/Codex/Skill.d.ts +20 -0
  43. package/build/dts/Install/Codex/Skill.d.ts.map +1 -0
  44. package/build/dts/Install/Cursor/Mcp.d.ts +45 -0
  45. package/build/dts/Install/Cursor/Mcp.d.ts.map +1 -0
  46. package/build/dts/Install/Cursor/Skill.d.ts +27 -0
  47. package/build/dts/Install/Cursor/Skill.d.ts.map +1 -0
  48. package/build/dts/Install/Domain.d.ts +73 -0
  49. package/build/dts/Install/Domain.d.ts.map +1 -0
  50. package/build/dts/Install/Hook.d.ts +30 -0
  51. package/build/dts/Install/Hook.d.ts.map +1 -0
  52. package/build/dts/Install/Mcp.d.ts +28 -0
  53. package/build/dts/Install/Mcp.d.ts.map +1 -0
  54. package/build/dts/Install/Opencode/Hook.d.ts +23 -0
  55. package/build/dts/Install/Opencode/Hook.d.ts.map +1 -0
  56. package/build/dts/Install/Opencode/Mcp.d.ts +47 -0
  57. package/build/dts/Install/Opencode/Mcp.d.ts.map +1 -0
  58. package/build/dts/Install/Opencode/Skill.d.ts +24 -0
  59. package/build/dts/Install/Opencode/Skill.d.ts.map +1 -0
  60. package/build/dts/Install/Skill.d.ts +32 -0
  61. package/build/dts/Install/Skill.d.ts.map +1 -0
  62. package/build/dts/Install/Uninstall.d.ts +32 -0
  63. package/build/dts/Install/Uninstall.d.ts.map +1 -0
  64. package/build/dts/Mcp/ExpandDocs.d.ts +7 -0
  65. package/build/dts/Mcp/ExpandDocs.d.ts.map +1 -0
  66. package/build/dts/Mcp/RequestHeaders.d.ts +15 -0
  67. package/build/dts/Mcp/RequestHeaders.d.ts.map +1 -0
  68. package/build/dts/Mcp/Server.d.ts +10 -0
  69. package/build/dts/Mcp/Server.d.ts.map +1 -0
  70. package/build/dts/Mcp/Toolkit.d.ts +3 -0
  71. package/build/dts/Mcp/Toolkit.d.ts.map +1 -0
  72. package/build/dts/Mcp/tools/Citations.d.ts +237 -0
  73. package/build/dts/Mcp/tools/Citations.d.ts.map +1 -0
  74. package/build/dts/Mcp/tools/Fetch.d.ts +167 -0
  75. package/build/dts/Mcp/tools/Fetch.d.ts.map +1 -0
  76. package/build/dts/Snippets.d.ts +19 -0
  77. package/build/dts/Snippets.d.ts.map +1 -0
  78. package/build/dts/index.d.ts +2 -0
  79. package/build/dts/index.d.ts.map +1 -0
  80. package/build/dts/main.d.ts +3 -0
  81. package/build/dts/main.d.ts.map +1 -0
  82. package/build/esm/ApiClient.js +182 -0
  83. package/build/esm/ApiClient.js.map +1 -0
  84. package/build/esm/Authentication.js +112 -0
  85. package/build/esm/Authentication.js.map +1 -0
  86. package/build/esm/BrowserOAuth.js +254 -0
  87. package/build/esm/BrowserOAuth.js.map +1 -0
  88. package/build/esm/Commands/Fetch.js +95 -0
  89. package/build/esm/Commands/Fetch.js.map +1 -0
  90. package/build/esm/Commands/Hook.js +20 -0
  91. package/build/esm/Commands/Hook.js.map +1 -0
  92. package/build/esm/Commands/Mcp.js +19 -0
  93. package/build/esm/Commands/Mcp.js.map +1 -0
  94. package/build/esm/Commands/McpRun.js +15 -0
  95. package/build/esm/Commands/McpRun.js.map +1 -0
  96. package/build/esm/Commands/Search.js +43 -0
  97. package/build/esm/Commands/Search.js.map +1 -0
  98. package/build/esm/Commands/Skill.js +17 -0
  99. package/build/esm/Commands/Skill.js.map +1 -0
  100. package/build/esm/Commands/Uninstall.js +28 -0
  101. package/build/esm/Commands/Uninstall.js.map +1 -0
  102. package/build/esm/Config.js +145 -0
  103. package/build/esm/Config.js.map +1 -0
  104. package/build/esm/DeviceAuth.js +127 -0
  105. package/build/esm/DeviceAuth.js.map +1 -0
  106. package/build/esm/Hook/Claude.js +74 -0
  107. package/build/esm/Hook/Claude.js.map +1 -0
  108. package/build/esm/Hook/Errors.js +18 -0
  109. package/build/esm/Hook/Errors.js.map +1 -0
  110. package/build/esm/Hook/Opencode.js +50 -0
  111. package/build/esm/Hook/Opencode.js.map +1 -0
  112. package/build/esm/Hook/SnapshotNote.js +18 -0
  113. package/build/esm/Hook/SnapshotNote.js.map +1 -0
  114. package/build/esm/Install/Claude/Hook.js +89 -0
  115. package/build/esm/Install/Claude/Hook.js.map +1 -0
  116. package/build/esm/Install/Claude/Mcp.js +71 -0
  117. package/build/esm/Install/Claude/Mcp.js.map +1 -0
  118. package/build/esm/Install/Claude/Skill.js +34 -0
  119. package/build/esm/Install/Claude/Skill.js.map +1 -0
  120. package/build/esm/Install/Codex/Mcp.js +92 -0
  121. package/build/esm/Install/Codex/Mcp.js.map +1 -0
  122. package/build/esm/Install/Codex/Skill.js +30 -0
  123. package/build/esm/Install/Codex/Skill.js.map +1 -0
  124. package/build/esm/Install/Cursor/Mcp.js +71 -0
  125. package/build/esm/Install/Cursor/Mcp.js.map +1 -0
  126. package/build/esm/Install/Cursor/Skill.js +37 -0
  127. package/build/esm/Install/Cursor/Skill.js.map +1 -0
  128. package/build/esm/Install/Domain.js +105 -0
  129. package/build/esm/Install/Domain.js.map +1 -0
  130. package/build/esm/Install/Hook.js +38 -0
  131. package/build/esm/Install/Hook.js.map +1 -0
  132. package/build/esm/Install/Mcp.js +40 -0
  133. package/build/esm/Install/Mcp.js.map +1 -0
  134. package/build/esm/Install/Opencode/Hook.js +44 -0
  135. package/build/esm/Install/Opencode/Hook.js.map +1 -0
  136. package/build/esm/Install/Opencode/Mcp.js +73 -0
  137. package/build/esm/Install/Opencode/Mcp.js.map +1 -0
  138. package/build/esm/Install/Opencode/Skill.js +34 -0
  139. package/build/esm/Install/Opencode/Skill.js.map +1 -0
  140. package/build/esm/Install/Opencode/expandai-webfetch.js +38 -0
  141. package/build/esm/Install/Skill.js +41 -0
  142. package/build/esm/Install/Skill.js.map +1 -0
  143. package/build/esm/Install/Uninstall.js +49 -0
  144. package/build/esm/Install/Uninstall.js.map +1 -0
  145. package/build/esm/Mcp/ExpandDocs.js +64 -0
  146. package/build/esm/Mcp/ExpandDocs.js.map +1 -0
  147. package/build/esm/Mcp/RequestHeaders.js +13 -0
  148. package/build/esm/Mcp/RequestHeaders.js.map +1 -0
  149. package/build/esm/Mcp/Server.js +11 -0
  150. package/build/esm/Mcp/Server.js.map +1 -0
  151. package/build/esm/Mcp/Toolkit.js +16 -0
  152. package/build/esm/Mcp/Toolkit.js.map +1 -0
  153. package/build/esm/Mcp/tools/Citations.js +92 -0
  154. package/build/esm/Mcp/tools/Citations.js.map +1 -0
  155. package/build/esm/Mcp/tools/Fetch.js +141 -0
  156. package/build/esm/Mcp/tools/Fetch.js.map +1 -0
  157. package/build/esm/Snippets.js +18 -0
  158. package/build/esm/Snippets.js.map +1 -0
  159. package/build/esm/index.js +2 -0
  160. package/build/esm/index.js.map +1 -0
  161. package/build/esm/main.js +97 -0
  162. package/build/esm/main.js.map +1 -0
  163. package/build/skills/expandai/SKILL.md +72 -0
  164. package/package.json +72 -10
  165. package/src/ApiClient.ts +257 -0
  166. package/src/Authentication.ts +164 -0
  167. package/src/BrowserOAuth.ts +361 -0
  168. package/src/Commands/Fetch.ts +157 -0
  169. package/src/Commands/Hook.ts +48 -0
  170. package/src/Commands/Mcp.ts +30 -0
  171. package/src/Commands/McpRun.ts +25 -0
  172. package/src/Commands/Search.ts +92 -0
  173. package/src/Commands/Skill.ts +30 -0
  174. package/src/Commands/Uninstall.ts +38 -0
  175. package/src/Config.ts +195 -0
  176. package/src/DeviceAuth.ts +193 -0
  177. package/src/Hook/Claude.ts +81 -0
  178. package/src/Hook/Errors.ts +19 -0
  179. package/src/Hook/Opencode.ts +58 -0
  180. package/src/Hook/SnapshotNote.ts +18 -0
  181. package/src/Install/Claude/Hook.ts +133 -0
  182. package/src/Install/Claude/Mcp.ts +82 -0
  183. package/src/Install/Claude/Skill.ts +44 -0
  184. package/src/Install/Codex/Mcp.ts +109 -0
  185. package/src/Install/Codex/Skill.ts +40 -0
  186. package/src/Install/Cursor/Mcp.ts +82 -0
  187. package/src/Install/Cursor/Skill.ts +47 -0
  188. package/src/Install/Domain.ts +148 -0
  189. package/src/Install/Hook.ts +50 -0
  190. package/src/Install/Mcp.ts +71 -0
  191. package/src/Install/Opencode/Hook.ts +55 -0
  192. package/src/Install/Opencode/Mcp.ts +84 -0
  193. package/src/Install/Opencode/Skill.ts +44 -0
  194. package/src/Install/Opencode/expandai-webfetch.d.ts +23 -0
  195. package/src/Install/Opencode/expandai-webfetch.js +38 -0
  196. package/src/Install/Skill.ts +57 -0
  197. package/src/Install/Uninstall.ts +82 -0
  198. package/src/Mcp/ExpandDocs.ts +71 -0
  199. package/src/Mcp/RequestHeaders.ts +16 -0
  200. package/src/Mcp/Server.ts +14 -0
  201. package/src/Mcp/Toolkit.ts +21 -0
  202. package/src/Mcp/tools/Citations.ts +110 -0
  203. package/src/Mcp/tools/Fetch.ts +177 -0
  204. package/src/Snippets.ts +32 -0
  205. package/src/index.ts +1 -0
  206. package/src/main.ts +146 -0
  207. package/bun.lockb +0 -0
  208. package/index.ts +0 -1
  209. package/tsconfig.json +0 -27
@@ -0,0 +1,45 @@
1
+ import { Effect, Schema } from 'effect';
2
+ import { 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 type: "stdio";
15
+ } & {
16
+ readonly command: string;
17
+ } & {
18
+ readonly args: readonly string[];
19
+ } & {
20
+ readonly env?: {
21
+ readonly [x: string]: string;
22
+ } | undefined;
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>];
35
+ readonly effect: Effect.Effect<{
36
+ readonly install: (scope: "project" | "global") => Effect.Effect<void, McpParseError | McpWriteError, never>;
37
+ readonly uninstall: (scope: "project" | "global") => Effect.Effect<void, McpParseError | McpWriteError, never>;
38
+ readonly isInstalled: (scope: "project" | "global") => Effect.Effect<boolean, McpParseError, never>;
39
+ readonly pathFor: (scope: "project" | "global") => Effect.Effect<string, never, never>;
40
+ }, import("effect/ConfigError").ConfigError, ConfigIo>;
41
+ }>;
42
+ export declare class CursorMcp extends CursorMcp_base {
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=Mcp.d.ts.map
@@ -0,0 +1 @@
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,QAAQ,EAAE,aAAa,EAA0B,aAAa,EAAc,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;AAGzG;;;;;;GAMG;AACH,qBAAa,KAAM,SAAQ,UAKzB;CAAG;;;;;;;;;;AAEL,qBAAa,SAAU,SAAQ,cA8D7B;CAAG"}
@@ -0,0 +1,27 @@
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: "project" | "global") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
21
+ readonly uninstall: (scope: "project" | "global") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
22
+ }, import("effect/ConfigError").ConfigError, SkillIo>;
23
+ }>;
24
+ export declare class CursorSkill extends CursorSkill_base {
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=Skill.d.ts.map
@@ -0,0 +1 @@
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,gBAyB/B;CAAG"}
@@ -0,0 +1,73 @@
1
+ import { FileSystem, Path } from '@effect/platform';
2
+ import { Effect, 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
+ export declare const Scope: Schema.Literal<["project", "global"]>;
24
+ export type Scope = typeof Scope.Type;
25
+ export declare const McpServersConfigSchema: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.TypeLiteral<{
26
+ mcpServers: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>, {
27
+ default: () => {};
28
+ }>;
29
+ }, readonly [Schema.Record$<typeof Schema.String, typeof Schema.Unknown>]>>;
30
+ export declare const OpencodeConfigSchema: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.TypeLiteral<{
31
+ mcp: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.Unknown>, {
32
+ default: () => {};
33
+ }>;
34
+ }, readonly [Schema.Record$<typeof Schema.String, typeof Schema.Unknown>]>>;
35
+ export declare const SERVER_KEY = "expandai";
36
+ export declare const readConfigText: (file: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem>;
37
+ export declare const writeConfigText: (file: string, text: string) => Effect.Effect<void, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem | Path.Path>;
38
+ declare const ConfigIo_base: Effect.Service.Class<ConfigIo, "@expandai/cli/Install/ConfigIo", {
39
+ readonly dependencies: readonly [import("effect/Layer").Layer<FileSystem.FileSystem, never, never>, import("effect/Layer").Layer<Path.Path, never, never>];
40
+ readonly effect: Effect.Effect<{
41
+ readonly read: <A>(file: string, schema: Schema.Schema<A, string, never>) => Effect.Effect<A, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError, never>;
42
+ 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>;
43
+ readonly exists: (file: string) => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError, never>;
44
+ readonly readText: (file: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
45
+ readonly writeText: (file: string, text: string) => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
46
+ }, never, FileSystem.FileSystem | Path.Path>;
47
+ }>;
48
+ /**
49
+ * Captures `FileSystem` + `Path` once and exposes string-encoded JSON read/
50
+ * write methods that don't re-yield them on every call. Use this from inside
51
+ * an `Effect.Service` gen block so the install/uninstall methods don't have
52
+ * to re-thread `provideService` calls.
53
+ */
54
+ export declare class ConfigIo extends ConfigIo_base {
55
+ }
56
+ declare const SkillIo_base: Effect.Service.Class<SkillIo, "@expandai/cli/Install/SkillIo", {
57
+ readonly dependencies: readonly [import("effect/Layer").Layer<FileSystem.FileSystem, never, never>, import("effect/Layer").Layer<Path.Path, never, never>];
58
+ readonly effect: Effect.Effect<{
59
+ readonly install: (target: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
60
+ readonly uninstall: (target: string) => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
61
+ }, import("@effect/platform/Error").BadArgument, FileSystem.FileSystem | Path.Path>;
62
+ }>;
63
+ /**
64
+ * Captures `FileSystem` + `Path` once and exposes skill directory copy/remove
65
+ * operations. The bundled `SKILL.md` lives at `<cli>/skills/expandai/` (or
66
+ * `<build>/skills/expandai/` in production); this service computes that path
67
+ * from its own `import.meta.url`, so per-host skill descriptors only need to
68
+ * provide `pathFor` and call `io.install(target)` / `io.uninstall(target)`.
69
+ */
70
+ export declare class SkillIo extends SkillIo_base {
71
+ }
72
+ export {};
73
+ //# sourceMappingURL=Domain.d.ts.map
@@ -0,0 +1 @@
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,EAAE,MAAM,EAAe,MAAM,EAAE,MAAM,QAAQ,CAAA;;;;;;;AAEpD,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,eAAO,MAAM,KAAK,uCAAsC,CAAA;AACxD,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,eAAO,MAAM,sBAAsB;;;;2EAGlC,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;2EAGhC,CAAA;AAED,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,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,YA8B3B;CAAG"}
@@ -0,0 +1,30 @@
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/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>];
22
+ readonly effect: Effect.Effect<{
23
+ readonly install: (host: "claude-code" | "opencode", scope: "project" | "global") => Effect.Effect<void, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError, never>;
24
+ readonly uninstall: (host: "claude-code" | "opencode", scope: "project" | "global") => Effect.Effect<void, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError, never>;
25
+ }, never, Mcp | ClaudeHook | OpencodeHook>;
26
+ }>;
27
+ export declare class HookInstaller extends HookInstaller_base {
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=Hook.d.ts.map
@@ -0,0 +1 @@
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,EAAE,GAAG,EAAc,MAAM,UAAU,CAAA;AAC1C,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"}
@@ -0,0 +1,28 @@
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, McpParseError, McpWriteError, Scope } 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" | "cursor" | "opencode" | "codex", scope: "project" | "global") => Effect.Effect<void, import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError, never>;
11
+ readonly uninstall: (host: "claude-code" | "cursor" | "opencode" | "codex", scope: "project" | "global") => Effect.Effect<void, import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError, never>;
12
+ readonly isInstalled: (host: "claude-code" | "cursor" | "opencode" | "codex", scope: "project" | "global") => Effect.Effect<boolean, import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError, never>;
13
+ readonly pathFor: (host: "claude-code" | "cursor" | "opencode" | "codex", scope: "project" | "global") => 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
@@ -0,0 +1 @@
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,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;;;;;;;;;;AAEvE;;;;;;;;;GASG;AAEH,qBAAa,GAAI,SAAQ,QAkDvB;CAAG"}
@@ -0,0 +1,23 @@
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: "project" | "global") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
17
+ readonly uninstall: (scope: "project" | "global") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
18
+ }, import("effect/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, FileSystem.FileSystem | Path.Path>;
19
+ }>;
20
+ export declare class OpencodeHook extends OpencodeHook_base {
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=Hook.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,47 @@
1
+ import { Effect, Schema } from 'effect';
2
+ import { 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 type: "local";
15
+ } & {
16
+ readonly command: readonly string[];
17
+ } & {
18
+ readonly enabled?: boolean | undefined;
19
+ } & {
20
+ readonly environment?: {
21
+ readonly [x: string]: string;
22
+ } | undefined;
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>];
37
+ readonly effect: Effect.Effect<{
38
+ readonly install: (scope: "project" | "global") => Effect.Effect<void, McpParseError | McpWriteError, never>;
39
+ readonly uninstall: (scope: "project" | "global") => Effect.Effect<void, McpParseError | McpWriteError, never>;
40
+ readonly isInstalled: (scope: "project" | "global") => Effect.Effect<boolean, McpParseError, never>;
41
+ readonly pathFor: (scope: "project" | "global") => Effect.Effect<string, never, never>;
42
+ }, import("effect/ConfigError").ConfigError, ConfigIo>;
43
+ }>;
44
+ export declare class OpencodeMcp extends OpencodeMcp_base {
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=Mcp.d.ts.map
@@ -0,0 +1 @@
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,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAoC,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;AAGvG;;;;;;;;GAQG;AACH,qBAAa,KAAM,SAAQ,UAKzB;CAAG;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBA8D/B;CAAG"}
@@ -0,0 +1,24 @@
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: "project" | "global") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
18
+ readonly uninstall: (scope: "project" | "global") => Effect.Effect<string, import("@effect/platform/Error").PlatformError, never>;
19
+ }, import("effect/ConfigError").ConfigError, SkillIo>;
20
+ }>;
21
+ export declare class OpencodeSkill extends OpencodeSkill_base {
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=Skill.d.ts.map
@@ -0,0 +1 @@
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,kBAyBjC;CAAG"}
@@ -0,0 +1,32 @@
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/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>, import("effect/Layer").Layer<CursorSkill, import("effect/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>, import("effect/Layer").Layer<OpencodeSkill, import("effect/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>, import("effect/Layer").Layer<CodexSkill, import("effect/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>];
8
+ readonly effect: Effect.Effect<{
9
+ readonly install: (host: "claude-code" | "cursor" | "opencode" | "codex", scope: "project" | "global") => Effect.Effect<void, import("@effect/platform/Error").PlatformError, never>;
10
+ readonly uninstall: (host: "claude-code" | "cursor" | "opencode" | "codex", scope: "project" | "global") => 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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,32 @@
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 scope?: "project" | "global" | undefined;
16
+ } & {
17
+ readonly target?: "mcp" | "all" | "hook" | "skill" | undefined;
18
+ } & {
19
+ readonly host?: "claude-code" | "cursor" | "opencode" | "codex" | 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/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>, import("effect/Layer").Layer<Mcp, import("effect/ConfigError").ConfigError, never>, import("effect/Layer").Layer<Skill, import("effect/ConfigError").ConfigError | import("@effect/platform/Error").BadArgument, never>];
25
+ readonly effect: Effect.Effect<{
26
+ readonly uninstall: (options?: UninstallOptions | undefined) => Effect.Effect<void, import("effect/ParseResult").ParseError | import("@effect/platform/Error").PlatformError | import("./Domain.js").McpParseError | import("./Domain.js").McpWriteError, never>;
27
+ }, never, Mcp | HookInstaller | Skill>;
28
+ }>;
29
+ export declare class Uninstall extends Uninstall_base {
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=Uninstall.d.ts.map
@@ -0,0 +1 @@
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,EAAQ,GAAG,EAAS,MAAM,UAAU,CAAA;AAC3C,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"}
@@ -0,0 +1,7 @@
1
+ import { Layer } from 'effect';
2
+ export declare const EXPAND_AGENT_SETUP_PROMPT = "Read https://expand.ai/start.md and set up Expand for this project. Ask whether I want SDK/API, CLI, or agent-harness integration, then follow the matching instructions.";
3
+ export declare const EXPAND_START_GUIDE_MARKDOWN: string;
4
+ export declare const ExpandDocs: Layer.Layer<never, never, never>;
5
+ export declare const ExpandStartDocs: Layer.Layer<never, never, never>;
6
+ export declare const ExpandDocsLayer: Layer.Layer<never, never, never>;
7
+ //# sourceMappingURL=ExpandDocs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandDocs.d.ts","sourceRoot":"","sources":["../../../src/Mcp/ExpandDocs.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAA;AAE9C,eAAO,MAAM,yBAAyB,8KACsI,CAAA;AAE5K,eAAO,MAAM,2BAA2B,QAwCpC,CAAA;AAEJ,eAAO,MAAM,UAAU,kCAarB,CAAA;AAEF,eAAO,MAAM,eAAe,kCAK1B,CAAA;AAEF,eAAO,MAAM,eAAe,kCAA8C,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { Context, Layer } from 'effect';
2
+ declare const CurrentRequestHeaders_base: Context.TagClass<CurrentRequestHeaders, "@expandai/cli/Mcp/RequestHeaders/CurrentRequestHeaders", Record<string, string>>;
3
+ /**
4
+ * Per-request HTTP headers (lowercase keys per WHATWG Headers).
5
+ *
6
+ * Consumers should read this via `Effect.serviceOption(CurrentRequestHeaders)`
7
+ * so the requirement does not leak into their `R`. The API's MCP route
8
+ * overlays a fresh `Context.make` per request; the stdio CLI path leaves
9
+ * the option as `none`.
10
+ */
11
+ export declare class CurrentRequestHeaders extends CurrentRequestHeaders_base {
12
+ static readonly Default: Layer.Layer<CurrentRequestHeaders, never, never>;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=RequestHeaders.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
1
+ import { Layer } from 'effect';
2
+ export { CurrentRequestHeaders } from './RequestHeaders.js';
3
+ export declare const ServerInfo: {
4
+ readonly name: "expandai";
5
+ readonly version: "0.0.1";
6
+ };
7
+ export declare const makeServerLayer: (options?: {
8
+ readonly includeDocs?: boolean;
9
+ }) => Layer.Layer<never, import("effect/ConfigError").ConfigError, never>;
10
+ //# sourceMappingURL=Server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../../src/Mcp/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAK9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAEV,eAAO,MAAM,eAAe,GAAI,UAAS;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,wEACK,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Layer } from 'effect';
2
+ export declare const ExpandToolKit: Layer.Layer<never, import("effect/ConfigError").ConfigError, never>;
3
+ //# sourceMappingURL=Toolkit.d.ts.map
@@ -0,0 +1 @@
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"}