xling 0.2.4 → 0.3.1

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 (105) hide show
  1. package/README.md +47 -0
  2. package/dist/{base-Cm9xh6sW.js → base-BWvHbkly.js} +2 -3
  3. package/dist/base-CMD91CAe.d.ts +44 -0
  4. package/dist/base-DdIJJBHV.js +33 -0
  5. package/dist/{base-BlaKDtDu.d.ts → base-DkEUpUS3.d.ts} +19 -20
  6. package/dist/claude-BsdlWM7z.js +30 -0
  7. package/dist/{claude-l3zomoHg.js → claude-D7KdpYHQ.js} +4 -5
  8. package/dist/{claudeDefault-Fk1-kHLE.js → claudeDefault-pd-Kyu6o.js} +1 -2
  9. package/dist/codex-Crifr9cw.js +31 -0
  10. package/dist/{codex-CR8xqNrZ.js → codex-UJ2PYHA6.js} +3 -4
  11. package/dist/commands/settings/get.d.ts +5 -13
  12. package/dist/commands/settings/get.js +8 -9
  13. package/dist/commands/settings/inspect.d.ts +4 -10
  14. package/dist/commands/settings/inspect.js +8 -9
  15. package/dist/commands/settings/list.d.ts +4 -11
  16. package/dist/commands/settings/list.js +8 -9
  17. package/dist/commands/settings/set.d.ts +5 -13
  18. package/dist/commands/settings/set.js +8 -9
  19. package/dist/commands/settings/switch.d.ts +5 -15
  20. package/dist/commands/settings/switch.js +8 -9
  21. package/dist/commands/x/index.d.ts +14 -0
  22. package/dist/commands/x/index.js +129 -0
  23. package/dist/dispatcher-BUU7wUgm.js +93 -0
  24. package/dist/{dispatcher-JXm3OqRQ.js → dispatcher-Co94YvDc.js} +4 -5
  25. package/dist/domain/interfaces.d.ts +3 -3
  26. package/dist/domain/types.d.ts +2 -2
  27. package/dist/domain/validators.d.ts +17 -72
  28. package/dist/domain/validators.js +1 -2
  29. package/dist/editor-D4qoje1V.js +1 -2
  30. package/dist/errors-CAZ5k5YT.js +1 -2
  31. package/dist/format-Cqecj3RS.js +1 -2
  32. package/dist/{fsStore-i-3731TM.js → fsStore-BPnFUGta.js} +1 -2
  33. package/dist/{gemini-aNNm-QGE.js → gemini-Qo5146d_.js} +2 -3
  34. package/dist/interfaces-BD6_y1tC.d.ts +74 -0
  35. package/dist/run.js +1 -2
  36. package/dist/runner-BE7zZq1g.js +88 -0
  37. package/dist/services/launch/adapters/base.d.ts +4 -0
  38. package/dist/services/launch/adapters/base.js +4 -0
  39. package/dist/services/launch/adapters/claude.d.ts +24 -0
  40. package/dist/services/launch/adapters/claude.js +5 -0
  41. package/dist/services/launch/adapters/codex.d.ts +25 -0
  42. package/dist/services/launch/adapters/codex.js +5 -0
  43. package/dist/services/launch/dispatcher.d.ts +43 -0
  44. package/dist/services/launch/dispatcher.js +8 -0
  45. package/dist/services/settings/adapters/base.d.ts +3 -3
  46. package/dist/services/settings/adapters/base.js +2 -2
  47. package/dist/services/settings/adapters/claude.d.ts +19 -20
  48. package/dist/services/settings/adapters/claude.js +4 -4
  49. package/dist/services/settings/adapters/codex.d.ts +23 -24
  50. package/dist/services/settings/adapters/codex.js +3 -3
  51. package/dist/services/settings/adapters/gemini.d.ts +17 -18
  52. package/dist/services/settings/adapters/gemini.js +3 -3
  53. package/dist/services/settings/dispatcher.d.ts +18 -19
  54. package/dist/services/settings/dispatcher.js +7 -7
  55. package/dist/services/settings/fsStore.d.ts +24 -27
  56. package/dist/services/settings/fsStore.js +1 -1
  57. package/dist/services/settings/templates/claudeDefault.d.ts +3 -4
  58. package/dist/services/settings/templates/claudeDefault.js +1 -1
  59. package/dist/{types-BfNSo2rs.d.ts → types-DSBuWLh6.d.ts} +42 -10
  60. package/dist/utils/editor.d.ts +1 -2
  61. package/dist/utils/errors.d.ts +21 -22
  62. package/dist/utils/format.d.ts +8 -9
  63. package/dist/utils/logger.d.ts +9 -10
  64. package/dist/utils/logger.js +1 -2
  65. package/dist/utils/runner.d.ts +34 -0
  66. package/dist/utils/runner.js +3 -0
  67. package/package.json +1 -1
  68. package/dist/base-BlaKDtDu.d.ts.map +0 -1
  69. package/dist/base-Cm9xh6sW.js.map +0 -1
  70. package/dist/claude-l3zomoHg.js.map +0 -1
  71. package/dist/claudeDefault-Fk1-kHLE.js.map +0 -1
  72. package/dist/codex-CR8xqNrZ.js.map +0 -1
  73. package/dist/commands/settings/get.d.ts.map +0 -1
  74. package/dist/commands/settings/get.js.map +0 -1
  75. package/dist/commands/settings/inspect.d.ts.map +0 -1
  76. package/dist/commands/settings/inspect.js.map +0 -1
  77. package/dist/commands/settings/list.d.ts.map +0 -1
  78. package/dist/commands/settings/list.js.map +0 -1
  79. package/dist/commands/settings/set.d.ts.map +0 -1
  80. package/dist/commands/settings/set.js.map +0 -1
  81. package/dist/commands/settings/switch.d.ts.map +0 -1
  82. package/dist/commands/settings/switch.js.map +0 -1
  83. package/dist/dispatcher-JXm3OqRQ.js.map +0 -1
  84. package/dist/domain/validators.d.ts.map +0 -1
  85. package/dist/domain/validators.js.map +0 -1
  86. package/dist/editor-D4qoje1V.js.map +0 -1
  87. package/dist/errors-CAZ5k5YT.js.map +0 -1
  88. package/dist/format-Cqecj3RS.js.map +0 -1
  89. package/dist/fsStore-i-3731TM.js.map +0 -1
  90. package/dist/gemini-aNNm-QGE.js.map +0 -1
  91. package/dist/interfaces-CriQW6hF.d.ts +0 -41
  92. package/dist/interfaces-CriQW6hF.d.ts.map +0 -1
  93. package/dist/run.js.map +0 -1
  94. package/dist/services/settings/adapters/claude.d.ts.map +0 -1
  95. package/dist/services/settings/adapters/codex.d.ts.map +0 -1
  96. package/dist/services/settings/adapters/gemini.d.ts.map +0 -1
  97. package/dist/services/settings/dispatcher.d.ts.map +0 -1
  98. package/dist/services/settings/fsStore.d.ts.map +0 -1
  99. package/dist/services/settings/templates/claudeDefault.d.ts.map +0 -1
  100. package/dist/types-BfNSo2rs.d.ts.map +0 -1
  101. package/dist/utils/editor.d.ts.map +0 -1
  102. package/dist/utils/errors.d.ts.map +0 -1
  103. package/dist/utils/format.d.ts.map +0 -1
  104. package/dist/utils/logger.d.ts.map +0 -1
  105. package/dist/utils/logger.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { a as LaunchResult, i as LaunchPayload, m as ToolId } from "../../types-DSBuWLh6.js";
2
+ import { t as LaunchAdapter } from "../../interfaces-BD6_y1tC.js";
3
+
4
+ //#region src/services/launch/dispatcher.d.ts
5
+
6
+ /**
7
+ * Launch 调度器
8
+ *
9
+ * 体现 SOLID 原则:
10
+ * - SRP: 只负责调度和进程启动
11
+ * - OCP: 通过 registerAdapter 支持扩展
12
+ * - DIP: 依赖 LaunchAdapter 接口,不依赖具体实现
13
+ * - LSP: 所有适配器可互换使用
14
+ */
15
+ declare class LaunchDispatcher {
16
+ private adapters;
17
+ constructor();
18
+ /**
19
+ * 执行 launch 操作
20
+ * @param payload Launch 请求参数
21
+ * @returns Launch 结果
22
+ */
23
+ execute(payload: LaunchPayload): Promise<LaunchResult>;
24
+ /**
25
+ * 获取适配器
26
+ * @param tool 工具 ID
27
+ * @returns 对应的适配器
28
+ * @throws UnsupportedToolError 如果工具不支持
29
+ */
30
+ private getAdapter;
31
+ /**
32
+ * 注册新适配器(扩展点,体现 OCP)
33
+ * @param adapter 适配器实例
34
+ */
35
+ registerAdapter(adapter: LaunchAdapter): void;
36
+ /**
37
+ * 获取所有支持的工具
38
+ * @returns 工具 ID 列表
39
+ */
40
+ getSupportedTools(): ToolId[];
41
+ }
42
+ //#endregion
43
+ export { LaunchDispatcher };
@@ -0,0 +1,8 @@
1
+ import "../../errors-CAZ5k5YT.js";
2
+ import "../../runner-BE7zZq1g.js";
3
+ import "../../base-DdIJJBHV.js";
4
+ import "../../claude-BsdlWM7z.js";
5
+ import "../../codex-Crifr9cw.js";
6
+ import { t as LaunchDispatcher } from "../../dispatcher-BUU7wUgm.js";
7
+
8
+ export { LaunchDispatcher };
@@ -1,4 +1,4 @@
1
- import "../../../types-BfNSo2rs.js";
2
- import "../../../interfaces-CriQW6hF.js";
3
- import { t as BaseAdapter } from "../../../base-BlaKDtDu.js";
1
+ import "../../../types-DSBuWLh6.js";
2
+ import "../../../interfaces-BD6_y1tC.js";
3
+ import { t as BaseAdapter } from "../../../base-DkEUpUS3.js";
4
4
  export { BaseAdapter };
@@ -1,5 +1,5 @@
1
1
  import "../../../errors-CAZ5k5YT.js";
2
- import "../../../fsStore-i-3731TM.js";
3
- import { t as BaseAdapter } from "../../../base-Cm9xh6sW.js";
2
+ import "../../../fsStore-BPnFUGta.js";
3
+ import { t as BaseAdapter } from "../../../base-BWvHbkly.js";
4
4
 
5
5
  export { BaseAdapter };
@@ -1,34 +1,34 @@
1
- import { i as Scope, l as SettingsResult, s as SettingsListData, t as EditOptions, u as SwitchOptions } from "../../../types-BfNSo2rs.js";
2
- import "../../../interfaces-CriQW6hF.js";
3
- import { t as BaseAdapter } from "../../../base-BlaKDtDu.js";
1
+ import { f as SettingsResult, p as SwitchOptions, s as Scope, t as EditOptions, u as SettingsListData } from "../../../types-DSBuWLh6.js";
2
+ import "../../../interfaces-BD6_y1tC.js";
3
+ import { t as BaseAdapter } from "../../../base-DkEUpUS3.js";
4
4
 
5
5
  //#region src/services/settings/adapters/claude.d.ts
6
6
 
7
7
  /**
8
- * Claude Code 配置适配器
9
- *
10
- * 配置文件路径:
11
- * - user: ~/.claude/settings.json
12
- * - project: <cwd>/.claude/settings.json
13
- * - local: <cwd>/.claude/settings.local.json
14
- */
8
+ * Claude Code 配置适配器
9
+ *
10
+ * 配置文件路径:
11
+ * - user: ~/.claude/settings.json
12
+ * - project: <cwd>/.claude/settings.json
13
+ * - local: <cwd>/.claude/settings.local.json
14
+ */
15
15
  declare class ClaudeAdapter extends BaseAdapter {
16
16
  readonly toolId: "claude";
17
17
  /**
18
- * 列出所有 settings.*.json 文件
19
- */
18
+ * 列出所有 settings.*.json 文件
19
+ */
20
20
  list(scope: Scope): Promise<SettingsListData>;
21
21
  /**
22
- * 解析配置文件路径
23
- */
22
+ * 解析配置文件路径
23
+ */
24
24
  resolvePath(scope: Scope): string;
25
25
  /**
26
- * 验证 scope 是否有效
27
- */
26
+ * 验证 scope 是否有效
27
+ */
28
28
  validateScope(scope: Scope): boolean;
29
29
  /**
30
- * 切换 settings.<variant>.json 到活动文件
31
- */
30
+ * 切换 settings.<variant>.json 到活动文件
31
+ */
32
32
  switchProfile(scope: Scope, profile: string, options?: SwitchOptions): Promise<SettingsResult>;
33
33
  edit(scope: Scope, options: EditOptions): Promise<SettingsResult>;
34
34
  private buildEntry;
@@ -39,5 +39,4 @@ declare class ClaudeAdapter extends BaseAdapter {
39
39
  private findVariantPath;
40
40
  }
41
41
  //#endregion
42
- export { ClaudeAdapter };
43
- //# sourceMappingURL=claude.d.ts.map
42
+ export { ClaudeAdapter };
@@ -1,9 +1,9 @@
1
1
  import "../../../errors-CAZ5k5YT.js";
2
2
  import "../../../editor-D4qoje1V.js";
3
3
  import "../../../format-Cqecj3RS.js";
4
- import "../../../fsStore-i-3731TM.js";
5
- import "../../../base-Cm9xh6sW.js";
6
- import "../../../claudeDefault-Fk1-kHLE.js";
7
- import { t as ClaudeAdapter } from "../../../claude-l3zomoHg.js";
4
+ import "../../../fsStore-BPnFUGta.js";
5
+ import "../../../base-BWvHbkly.js";
6
+ import "../../../claudeDefault-pd-Kyu6o.js";
7
+ import { t as ClaudeAdapter } from "../../../claude-D7KdpYHQ.js";
8
8
 
9
9
  export { ClaudeAdapter };
@@ -1,45 +1,44 @@
1
- import { i as Scope, l as SettingsResult, s as SettingsListData, u as SwitchOptions } from "../../../types-BfNSo2rs.js";
2
- import "../../../interfaces-CriQW6hF.js";
3
- import { t as BaseAdapter } from "../../../base-BlaKDtDu.js";
1
+ import { f as SettingsResult, p as SwitchOptions, s as Scope, u as SettingsListData } from "../../../types-DSBuWLh6.js";
2
+ import "../../../interfaces-BD6_y1tC.js";
3
+ import { t as BaseAdapter } from "../../../base-DkEUpUS3.js";
4
4
 
5
5
  //#region src/services/settings/adapters/codex.d.ts
6
6
 
7
7
  /**
8
- * Codex 配置适配器
9
- *
10
- * 配置文件路径:
11
- * - user: ~/.codex/config.toml
12
- *
13
- * 支持 profile 切换
14
- */
8
+ * Codex 配置适配器
9
+ *
10
+ * 配置文件路径:
11
+ * - user: ~/.codex/config.toml
12
+ *
13
+ * 支持 profile 切换
14
+ */
15
15
  declare class CodexAdapter extends BaseAdapter {
16
16
  readonly toolId: "codex";
17
17
  /**
18
- * 自定义 list:聚焦 model_providers
19
- */
18
+ * 自定义 list:聚焦 model_providers
19
+ */
20
20
  list(scope: Scope): Promise<SettingsListData>;
21
21
  /**
22
- * 解析配置文件路径
23
- */
22
+ * 解析配置文件路径
23
+ */
24
24
  resolvePath(scope: Scope): string;
25
25
  /**
26
- * 验证 scope 是否有效
27
- */
26
+ * 验证 scope 是否有效
27
+ */
28
28
  validateScope(scope: Scope): boolean;
29
29
  /**
30
- * 切换 profile
31
- */
30
+ * 切换 profile
31
+ */
32
32
  switchProfile(scope: Scope, profile: string, _options?: SwitchOptions): Promise<SettingsResult>;
33
33
  /**
34
- * 读取 TOML 配置文件
35
- */
34
+ * 读取 TOML 配置文件
35
+ */
36
36
  protected readConfig(path: string): Record<string, unknown>;
37
37
  /**
38
- * 写入 TOML 配置文件
39
- */
38
+ * 写入 TOML 配置文件
39
+ */
40
40
  protected writeConfig(path: string, data: Record<string, unknown>): void;
41
41
  private extractProviders;
42
42
  }
43
43
  //#endregion
44
- export { CodexAdapter };
45
- //# sourceMappingURL=codex.d.ts.map
44
+ export { CodexAdapter };
@@ -1,6 +1,6 @@
1
1
  import "../../../errors-CAZ5k5YT.js";
2
- import "../../../fsStore-i-3731TM.js";
3
- import "../../../base-Cm9xh6sW.js";
4
- import { t as CodexAdapter } from "../../../codex-CR8xqNrZ.js";
2
+ import "../../../fsStore-BPnFUGta.js";
3
+ import "../../../base-BWvHbkly.js";
4
+ import { t as CodexAdapter } from "../../../codex-UJ2PYHA6.js";
5
5
 
6
6
  export { CodexAdapter };
@@ -1,32 +1,31 @@
1
- import { i as Scope } from "../../../types-BfNSo2rs.js";
2
- import "../../../interfaces-CriQW6hF.js";
3
- import { t as BaseAdapter } from "../../../base-BlaKDtDu.js";
1
+ import { s as Scope } from "../../../types-DSBuWLh6.js";
2
+ import "../../../interfaces-BD6_y1tC.js";
3
+ import { t as BaseAdapter } from "../../../base-DkEUpUS3.js";
4
4
 
5
5
  //#region src/services/settings/adapters/gemini.d.ts
6
6
 
7
7
  /**
8
- * Gemini CLI 配置适配器
9
- *
10
- * 配置文件路径:
11
- * - user: ~/.gemini/settings.json
12
- * - project: <cwd>/.gemini/settings.json
13
- * - system: 平台相关路径
14
- */
8
+ * Gemini CLI 配置适配器
9
+ *
10
+ * 配置文件路径:
11
+ * - user: ~/.gemini/settings.json
12
+ * - project: <cwd>/.gemini/settings.json
13
+ * - system: 平台相关路径
14
+ */
15
15
  declare class GeminiAdapter extends BaseAdapter {
16
16
  readonly toolId: "gemini";
17
17
  /**
18
- * 解析配置文件路径
19
- */
18
+ * 解析配置文件路径
19
+ */
20
20
  resolvePath(scope: Scope): string;
21
21
  /**
22
- * 验证 scope 是否有效
23
- */
22
+ * 验证 scope 是否有效
23
+ */
24
24
  validateScope(scope: Scope): boolean;
25
25
  /**
26
- * 获取系统级配置路径(跨平台)
27
- */
26
+ * 获取系统级配置路径(跨平台)
27
+ */
28
28
  private getSystemConfigPath;
29
29
  }
30
30
  //#endregion
31
- export { GeminiAdapter };
32
- //# sourceMappingURL=gemini.d.ts.map
31
+ export { GeminiAdapter };
@@ -1,6 +1,6 @@
1
1
  import "../../../errors-CAZ5k5YT.js";
2
- import "../../../fsStore-i-3731TM.js";
3
- import "../../../base-Cm9xh6sW.js";
4
- import { t as GeminiAdapter } from "../../../gemini-aNNm-QGE.js";
2
+ import "../../../fsStore-BPnFUGta.js";
3
+ import "../../../base-BWvHbkly.js";
4
+ import { t as GeminiAdapter } from "../../../gemini-Qo5146d_.js";
5
5
 
6
6
  export { GeminiAdapter };
@@ -1,36 +1,35 @@
1
- import { c as SettingsPayload, d as ToolId, l as SettingsResult } from "../../types-BfNSo2rs.js";
2
- import { t as SettingsAdapter } from "../../interfaces-CriQW6hF.js";
1
+ import { d as SettingsPayload, f as SettingsResult, m as ToolId } from "../../types-DSBuWLh6.js";
2
+ import { n as SettingsAdapter } from "../../interfaces-BD6_y1tC.js";
3
3
 
4
4
  //#region src/services/settings/dispatcher.d.ts
5
5
 
6
6
  /**
7
- * Settings 调度器
8
- *
9
- * 体现 SOLID 原则:
10
- * - OCP: 新增工具只需在构造函数中注册适配器
11
- * - DIP: 依赖 SettingsAdapter 接口,不依赖具体实现
12
- * - SRP: 只负责调度,不处理具体逻辑
13
- */
7
+ * Settings 调度器
8
+ *
9
+ * 体现 SOLID 原则:
10
+ * - OCP: 新增工具只需在构造函数中注册适配器
11
+ * - DIP: 依赖 SettingsAdapter 接口,不依赖具体实现
12
+ * - SRP: 只负责调度,不处理具体逻辑
13
+ */
14
14
  declare class SettingsDispatcher {
15
15
  private adapters;
16
16
  constructor();
17
17
  /**
18
- * 执行 settings 操作
19
- */
18
+ * 执行 settings 操作
19
+ */
20
20
  execute(payload: SettingsPayload): Promise<SettingsResult>;
21
21
  /**
22
- * 获取适配器
23
- */
22
+ * 获取适配器
23
+ */
24
24
  private getAdapter;
25
25
  /**
26
- * 注册新的适配器(扩展点)
27
- */
26
+ * 注册新的适配器(扩展点)
27
+ */
28
28
  registerAdapter(adapter: SettingsAdapter): void;
29
29
  /**
30
- * 获取所有支持的工具
31
- */
30
+ * 获取所有支持的工具
31
+ */
32
32
  getSupportedTools(): ToolId[];
33
33
  }
34
34
  //#endregion
35
- export { SettingsDispatcher };
36
- //# sourceMappingURL=dispatcher.d.ts.map
35
+ export { SettingsDispatcher };
@@ -1,12 +1,12 @@
1
1
  import "../../errors-CAZ5k5YT.js";
2
2
  import "../../editor-D4qoje1V.js";
3
3
  import "../../format-Cqecj3RS.js";
4
- import "../../fsStore-i-3731TM.js";
5
- import "../../base-Cm9xh6sW.js";
6
- import "../../claudeDefault-Fk1-kHLE.js";
7
- import "../../claude-l3zomoHg.js";
8
- import "../../codex-CR8xqNrZ.js";
9
- import "../../gemini-aNNm-QGE.js";
10
- import { t as SettingsDispatcher } from "../../dispatcher-JXm3OqRQ.js";
4
+ import "../../fsStore-BPnFUGta.js";
5
+ import "../../base-BWvHbkly.js";
6
+ import "../../claudeDefault-pd-Kyu6o.js";
7
+ import "../../claude-D7KdpYHQ.js";
8
+ import "../../codex-UJ2PYHA6.js";
9
+ import "../../gemini-Qo5146d_.js";
10
+ import { t as SettingsDispatcher } from "../../dispatcher-Co94YvDc.js";
11
11
 
12
12
  export { SettingsDispatcher };
@@ -1,46 +1,43 @@
1
1
  //#region src/services/settings/fsStore.d.ts
2
+ interface FileInfo {
3
+ size: number;
4
+ lastModified: Date;
5
+ }
2
6
  /**
3
- * 文件系统存储工具
4
- */
5
- /**
6
- * 解析 ~ 为用户主目录
7
- */
7
+ * 解析 ~ 为用户主目录
8
+ */
8
9
  declare function resolveHome(filepath: string): string;
9
10
  /**
10
- * 确保目录存在
11
- */
11
+ * 确保目录存在
12
+ */
12
13
  declare function ensureDir(dirPath: string): void;
13
14
  /**
14
- * 读取 JSON 文件
15
- */
15
+ * 读取 JSON 文件
16
+ */
16
17
  declare function readJSON(filepath: string): Record<string, unknown>;
17
18
  /**
18
- * 写入 JSON 文件
19
- */
19
+ * 写入 JSON 文件
20
+ */
20
21
  declare function writeJSON(filepath: string, data: Record<string, unknown>, backup?: boolean): void;
21
22
  /**
22
- * 读取 TOML 文件
23
- */
23
+ * 读取 TOML 文件
24
+ */
24
25
  declare function readTOML(filepath: string): Record<string, unknown>;
25
26
  /**
26
- * 写入 TOML 文件
27
- */
27
+ * 写入 TOML 文件
28
+ */
28
29
  declare function writeTOML(filepath: string, data: Record<string, unknown>, backup?: boolean): void;
29
30
  /**
30
- * 深度合并对象
31
- */
31
+ * 深度合并对象
32
+ */
32
33
  declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
33
34
  /**
34
- * 检查文件是否存在
35
- */
35
+ * 检查文件是否存在
36
+ */
36
37
  declare function fileExists(filepath: string): boolean;
37
38
  /**
38
- * 获取文件信息
39
- */
40
- declare function getFileInfo(filepath: string): {
41
- size: number;
42
- lastModified: Date;
43
- } | null;
39
+ * 获取文件信息
40
+ */
41
+ declare function getFileInfo(filepath: string): FileInfo | null;
44
42
  //#endregion
45
- export { deepMerge, ensureDir, fileExists, getFileInfo, readJSON, readTOML, resolveHome, writeJSON, writeTOML };
46
- //# sourceMappingURL=fsStore.d.ts.map
43
+ export { FileInfo, deepMerge, ensureDir, fileExists, getFileInfo, readJSON, readTOML, resolveHome, writeJSON, writeTOML };
@@ -1,4 +1,4 @@
1
1
  import "../../errors-CAZ5k5YT.js";
2
- import { a as readJSON, c as writeJSON, i as getFileInfo, l as writeTOML, n as ensureDir, o as readTOML, r as fileExists, s as resolveHome, t as deepMerge } from "../../fsStore-i-3731TM.js";
2
+ import { a as readJSON, c as writeJSON, i as getFileInfo, l as writeTOML, n as ensureDir, o as readTOML, r as fileExists, s as resolveHome, t as deepMerge } from "../../fsStore-BPnFUGta.js";
3
3
 
4
4
  export { deepMerge, ensureDir, fileExists, getFileInfo, readJSON, readTOML, resolveHome, writeJSON, writeTOML };
@@ -8,13 +8,12 @@ declare const CLAUDE_SETTINGS_TEMPLATE: {
8
8
  ANTHROPIC_SMALL_FAST_MODEL: string;
9
9
  };
10
10
  permissions: {
11
- allow: never[];
12
- deny: never[];
11
+ allow: string[];
12
+ deny: string[];
13
13
  };
14
14
  enabledPlugins: {
15
15
  "example-skills@anthropic-agent-skills": boolean;
16
16
  };
17
17
  };
18
18
  //#endregion
19
- export { CLAUDE_SETTINGS_TEMPLATE };
20
- //# sourceMappingURL=claudeDefault.d.ts.map
19
+ export { CLAUDE_SETTINGS_TEMPLATE };
@@ -1,3 +1,3 @@
1
- import { t as CLAUDE_SETTINGS_TEMPLATE } from "../../../claudeDefault-Fk1-kHLE.js";
1
+ import { t as CLAUDE_SETTINGS_TEMPLATE } from "../../../claudeDefault-pd-Kyu6o.js";
2
2
 
3
3
  export { CLAUDE_SETTINGS_TEMPLATE };
@@ -1,7 +1,7 @@
1
1
  //#region src/domain/types.d.ts
2
2
  /**
3
- * 核心类型定义
4
- */
3
+ * 核心类型定义
4
+ */
5
5
  type ToolId = "claude" | "codex" | "gemini";
6
6
  type Scope = "user" | "project" | "local" | "system";
7
7
  type SettingAction = "list" | "edit" | "switch-profile" | "inspect";
@@ -33,8 +33,8 @@ type SettingsListData = {
33
33
  files: SettingsFileEntry[];
34
34
  };
35
35
  /**
36
- * Settings 操作的输入参数
37
- */
36
+ * Settings 操作的输入参数
37
+ */
38
38
  interface SettingsPayload {
39
39
  tool: ToolId;
40
40
  scope: Scope;
@@ -46,8 +46,8 @@ interface SettingsPayload {
46
46
  switchOptions?: SwitchOptions;
47
47
  }
48
48
  /**
49
- * Settings 操作的返回结果
50
- */
49
+ * Settings 操作的返回结果
50
+ */
51
51
  interface SettingsResult {
52
52
  success: boolean;
53
53
  data?: Record<string, unknown> | unknown;
@@ -57,8 +57,8 @@ interface SettingsResult {
57
57
  preview?: boolean;
58
58
  }
59
59
  /**
60
- * 配置文件检查结果
61
- */
60
+ * 配置文件检查结果
61
+ */
62
62
  interface InspectResult {
63
63
  path: string;
64
64
  exists: boolean;
@@ -66,6 +66,38 @@ interface InspectResult {
66
66
  size?: number;
67
67
  lastModified?: Date;
68
68
  }
69
+ /**
70
+ * Launch 功能相关类型
71
+ */
72
+ /**
73
+ * Launch 操作的输入参数
74
+ */
75
+ interface LaunchPayload {
76
+ tool: ToolId;
77
+ yolo?: boolean;
78
+ args?: string[];
79
+ cwd?: string;
80
+ resume?: boolean;
81
+ continue?: boolean;
82
+ }
83
+ /**
84
+ * Launch 操作的返回结果
85
+ */
86
+ interface LaunchResult {
87
+ success: boolean;
88
+ pid?: number;
89
+ command?: string;
90
+ message?: string;
91
+ data?: Record<string, unknown>;
92
+ }
93
+ /**
94
+ * 进程启动命令规范
95
+ */
96
+ interface LaunchCommandSpec {
97
+ executable: string;
98
+ baseArgs: string[];
99
+ yoloArgs?: string[];
100
+ envVars?: Record<string, string>;
101
+ }
69
102
  //#endregion
70
- export { SettingAction as a, SettingsPayload as c, ToolId as d, Scope as i, SettingsResult as l, InspectResult as n, SettingsFileEntry as o, OutputFormat as r, SettingsListData as s, EditOptions as t, SwitchOptions as u };
71
- //# sourceMappingURL=types-BfNSo2rs.d.ts.map
103
+ export { LaunchResult as a, SettingAction as c, SettingsPayload as d, SettingsResult as f, LaunchPayload as i, SettingsFileEntry as l, ToolId as m, InspectResult as n, OutputFormat as o, SwitchOptions as p, LaunchCommandSpec as r, Scope as s, EditOptions as t, SettingsListData as u };
@@ -2,5 +2,4 @@
2
2
  declare function resolveEditorCommand(ide?: string): string;
3
3
  declare function openInEditor(command: string, filePath: string): Promise<void>;
4
4
  //#endregion
5
- export { openInEditor, resolveEditorCommand };
6
- //# sourceMappingURL=editor.d.ts.map
5
+ export { openInEditor, resolveEditorCommand };
@@ -1,61 +1,60 @@
1
1
  //#region src/utils/errors.d.ts
2
2
  /**
3
- * 自定义错误类型
4
- */
3
+ * 自定义错误类型
4
+ */
5
5
  /**
6
- * 基础错误类
7
- */
6
+ * 基础错误类
7
+ */
8
8
  declare class XlingError extends Error {
9
9
  constructor(message: string);
10
10
  }
11
11
  /**
12
- * 不支持的工具错误
13
- */
12
+ * 不支持的工具错误
13
+ */
14
14
  declare class UnsupportedToolError extends XlingError {
15
15
  constructor(tool: string);
16
16
  }
17
17
  /**
18
- * 无效的 scope 错误
19
- */
18
+ * 无效的 scope 错误
19
+ */
20
20
  declare class InvalidScopeError extends XlingError {
21
21
  constructor(scope: string);
22
22
  }
23
23
  /**
24
- * 配置文件不存在错误
25
- */
24
+ * 配置文件不存在错误
25
+ */
26
26
  declare class ConfigFileNotFoundError extends XlingError {
27
27
  constructor(path: string);
28
28
  }
29
29
  /**
30
- * 配置文件解析错误
31
- */
30
+ * 配置文件解析错误
31
+ */
32
32
  declare class ConfigParseError extends XlingError {
33
33
  constructor(path: string, reason: string);
34
34
  }
35
35
  /**
36
- * Profile 不存在错误
37
- */
36
+ * Profile 不存在错误
37
+ */
38
38
  declare class ProfileNotFoundError extends XlingError {
39
39
  constructor(profile: string);
40
40
  }
41
41
  /**
42
- * Settings 变体不存在错误
43
- */
42
+ * Settings 变体不存在错误
43
+ */
44
44
  declare class SettingsVariantNotFoundError extends XlingError {
45
45
  constructor(variant: string);
46
46
  }
47
47
  /**
48
- * 文件写入错误
49
- */
48
+ * 文件写入错误
49
+ */
50
50
  declare class FileWriteError extends XlingError {
51
51
  constructor(path: string, reason: string);
52
52
  }
53
53
  /**
54
- * 编辑器启动错误
55
- */
54
+ * 编辑器启动错误
55
+ */
56
56
  declare class EditorLaunchError extends XlingError {
57
57
  constructor(editor: string, reason: string);
58
58
  }
59
59
  //#endregion
60
- export { ConfigFileNotFoundError, ConfigParseError, EditorLaunchError, FileWriteError, InvalidScopeError, ProfileNotFoundError, SettingsVariantNotFoundError, UnsupportedToolError, XlingError };
61
- //# sourceMappingURL=errors.d.ts.map
60
+ export { ConfigFileNotFoundError, ConfigParseError, EditorLaunchError, FileWriteError, InvalidScopeError, ProfileNotFoundError, SettingsVariantNotFoundError, UnsupportedToolError, XlingError };