chivgent 1.0.0 → 1.1.0

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 (235) hide show
  1. package/README.md +97 -897
  2. package/README.zh-CN.md +97 -801
  3. package/dist/agent.d.ts +30 -2
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +255 -36
  6. package/dist/agent.js.map +1 -1
  7. package/dist/auth/oauth.d.ts +51 -0
  8. package/dist/auth/oauth.d.ts.map +1 -0
  9. package/dist/auth/oauth.js +444 -0
  10. package/dist/auth/oauth.js.map +1 -0
  11. package/dist/cli-options.d.ts +9 -4
  12. package/dist/cli-options.d.ts.map +1 -1
  13. package/dist/cli-options.js +46 -3
  14. package/dist/cli-options.js.map +1 -1
  15. package/dist/cli-runtime.d.ts +33 -0
  16. package/dist/cli-runtime.d.ts.map +1 -0
  17. package/dist/cli-runtime.js +90 -0
  18. package/dist/cli-runtime.js.map +1 -0
  19. package/dist/cli.js +76 -81
  20. package/dist/cli.js.map +1 -1
  21. package/dist/context/compaction.d.ts +5 -2
  22. package/dist/context/compaction.d.ts.map +1 -1
  23. package/dist/context/compaction.js +58 -32
  24. package/dist/context/compaction.js.map +1 -1
  25. package/dist/context/context-manager.d.ts +23 -0
  26. package/dist/context/context-manager.d.ts.map +1 -1
  27. package/dist/context/context-manager.js +200 -35
  28. package/dist/context/context-manager.js.map +1 -1
  29. package/dist/context/project-instructions.d.ts +17 -0
  30. package/dist/context/project-instructions.d.ts.map +1 -0
  31. package/dist/context/project-instructions.js +191 -0
  32. package/dist/context/project-instructions.js.map +1 -0
  33. package/dist/evals/baseline.d.ts +41 -0
  34. package/dist/evals/baseline.d.ts.map +1 -0
  35. package/dist/evals/baseline.js +121 -0
  36. package/dist/evals/baseline.js.map +1 -0
  37. package/dist/evals/cli.js +27 -1
  38. package/dist/evals/cli.js.map +1 -1
  39. package/dist/evals/parse-args.d.ts +2 -0
  40. package/dist/evals/parse-args.d.ts.map +1 -1
  41. package/dist/evals/parse-args.js +5 -0
  42. package/dist/evals/parse-args.js.map +1 -1
  43. package/dist/evals/report.d.ts +2 -0
  44. package/dist/evals/report.d.ts.map +1 -1
  45. package/dist/evals/report.js +12 -8
  46. package/dist/evals/report.js.map +1 -1
  47. package/dist/evals/runner.d.ts +3 -0
  48. package/dist/evals/runner.d.ts.map +1 -1
  49. package/dist/evals/runner.js +5 -1
  50. package/dist/evals/runner.js.map +1 -1
  51. package/dist/evals/task.d.ts.map +1 -1
  52. package/dist/evals/task.js +1 -0
  53. package/dist/evals/task.js.map +1 -1
  54. package/dist/evals/tools.d.ts +4 -1
  55. package/dist/evals/tools.d.ts.map +1 -1
  56. package/dist/evals/tools.js +13 -4
  57. package/dist/evals/tools.js.map +1 -1
  58. package/dist/events.d.ts +12 -1
  59. package/dist/events.d.ts.map +1 -1
  60. package/dist/events.js.map +1 -1
  61. package/dist/patch/parse.d.ts +26 -0
  62. package/dist/patch/parse.d.ts.map +1 -0
  63. package/dist/patch/parse.js +117 -0
  64. package/dist/patch/parse.js.map +1 -0
  65. package/dist/permissions.d.ts +35 -0
  66. package/dist/permissions.d.ts.map +1 -0
  67. package/dist/permissions.js +89 -0
  68. package/dist/permissions.js.map +1 -0
  69. package/dist/prompts.d.ts +3 -3
  70. package/dist/prompts.d.ts.map +1 -1
  71. package/dist/prompts.js +5 -3
  72. package/dist/prompts.js.map +1 -1
  73. package/dist/providers/client.d.ts +1 -1
  74. package/dist/providers/client.d.ts.map +1 -1
  75. package/dist/providers/client.js +19 -1
  76. package/dist/providers/client.js.map +1 -1
  77. package/dist/providers/definitions.d.ts +2 -0
  78. package/dist/providers/definitions.d.ts.map +1 -1
  79. package/dist/providers/definitions.js +3 -1
  80. package/dist/providers/definitions.js.map +1 -1
  81. package/dist/providers/interactive.d.ts +4 -0
  82. package/dist/providers/interactive.d.ts.map +1 -1
  83. package/dist/providers/interactive.js +86 -2
  84. package/dist/providers/interactive.js.map +1 -1
  85. package/dist/providers/oauth-client.d.ts +14 -0
  86. package/dist/providers/oauth-client.d.ts.map +1 -0
  87. package/dist/providers/oauth-client.js +52 -0
  88. package/dist/providers/oauth-client.js.map +1 -0
  89. package/dist/providers/openai-compatible-chat.d.ts +1 -0
  90. package/dist/providers/openai-compatible-chat.d.ts.map +1 -1
  91. package/dist/providers/openai-compatible-chat.js +1 -0
  92. package/dist/providers/openai-compatible-chat.js.map +1 -1
  93. package/dist/providers/openai.d.ts +3 -0
  94. package/dist/providers/openai.d.ts.map +1 -1
  95. package/dist/providers/openai.js +72 -10
  96. package/dist/providers/openai.js.map +1 -1
  97. package/dist/remote/repl.d.ts.map +1 -1
  98. package/dist/remote/repl.js +9 -0
  99. package/dist/remote/repl.js.map +1 -1
  100. package/dist/repl.d.ts +53 -1
  101. package/dist/repl.d.ts.map +1 -1
  102. package/dist/repl.js +554 -10
  103. package/dist/repl.js.map +1 -1
  104. package/dist/session-store.d.ts +27 -2
  105. package/dist/session-store.d.ts.map +1 -1
  106. package/dist/session-store.js +85 -2
  107. package/dist/session-store.js.map +1 -1
  108. package/dist/session.d.ts +20 -0
  109. package/dist/session.d.ts.map +1 -1
  110. package/dist/session.js +141 -13
  111. package/dist/session.js.map +1 -1
  112. package/dist/shell/approval.d.ts +15 -0
  113. package/dist/shell/approval.d.ts.map +1 -0
  114. package/dist/shell/approval.js +25 -0
  115. package/dist/shell/approval.js.map +1 -0
  116. package/dist/shell/docker.d.ts +20 -0
  117. package/dist/shell/docker.d.ts.map +1 -0
  118. package/dist/shell/docker.js +97 -0
  119. package/dist/shell/docker.js.map +1 -0
  120. package/dist/shell/factory.d.ts +9 -0
  121. package/dist/shell/factory.d.ts.map +1 -0
  122. package/dist/shell/factory.js +13 -0
  123. package/dist/shell/factory.js.map +1 -0
  124. package/dist/shell/local.d.ts +5 -1
  125. package/dist/shell/local.d.ts.map +1 -1
  126. package/dist/shell/local.js +17 -2
  127. package/dist/shell/local.js.map +1 -1
  128. package/dist/shell/native.d.ts +15 -0
  129. package/dist/shell/native.d.ts.map +1 -0
  130. package/dist/shell/native.js +99 -0
  131. package/dist/shell/native.js.map +1 -0
  132. package/dist/shell/types.d.ts +1 -0
  133. package/dist/shell/types.d.ts.map +1 -1
  134. package/dist/tools/apply-patch.d.ts +18 -0
  135. package/dist/tools/apply-patch.d.ts.map +1 -0
  136. package/dist/tools/apply-patch.js +53 -0
  137. package/dist/tools/apply-patch.js.map +1 -0
  138. package/dist/tools/bash.d.ts +23 -0
  139. package/dist/tools/bash.d.ts.map +1 -1
  140. package/dist/tools/bash.js +55 -11
  141. package/dist/tools/bash.js.map +1 -1
  142. package/dist/tools/edit-file.d.ts.map +1 -1
  143. package/dist/tools/edit-file.js +1 -1
  144. package/dist/tools/edit-file.js.map +1 -1
  145. package/dist/tools/parallel.d.ts +16 -0
  146. package/dist/tools/parallel.d.ts.map +1 -0
  147. package/dist/tools/parallel.js +28 -0
  148. package/dist/tools/parallel.js.map +1 -0
  149. package/dist/tools/tool.d.ts +7 -0
  150. package/dist/tools/tool.d.ts.map +1 -1
  151. package/dist/tools/tool.js +7 -1
  152. package/dist/tools/tool.js.map +1 -1
  153. package/dist/tools/update-plan.d.ts +57 -0
  154. package/dist/tools/update-plan.d.ts.map +1 -0
  155. package/dist/tools/update-plan.js +99 -0
  156. package/dist/tools/update-plan.js.map +1 -0
  157. package/dist/tools/write-file.d.ts.map +1 -1
  158. package/dist/tools/write-file.js +1 -1
  159. package/dist/tools/write-file.js.map +1 -1
  160. package/dist/transcript-hash.d.ts +4 -0
  161. package/dist/transcript-hash.d.ts.map +1 -0
  162. package/dist/transcript-hash.js +6 -0
  163. package/dist/transcript-hash.js.map +1 -0
  164. package/dist/tui/activity.d.ts +17 -0
  165. package/dist/tui/activity.d.ts.map +1 -0
  166. package/dist/tui/activity.js +188 -0
  167. package/dist/tui/activity.js.map +1 -0
  168. package/dist/tui/diff.d.ts +14 -0
  169. package/dist/tui/diff.d.ts.map +1 -0
  170. package/dist/tui/diff.js +57 -0
  171. package/dist/tui/diff.js.map +1 -0
  172. package/dist/tui/editor-input.d.ts +53 -0
  173. package/dist/tui/editor-input.d.ts.map +1 -0
  174. package/dist/tui/editor-input.js +353 -0
  175. package/dist/tui/editor-input.js.map +1 -0
  176. package/dist/tui/editor.d.ts +72 -0
  177. package/dist/tui/editor.d.ts.map +1 -0
  178. package/dist/tui/editor.js +321 -0
  179. package/dist/tui/editor.js.map +1 -0
  180. package/dist/tui/git-diff.d.ts +7 -0
  181. package/dist/tui/git-diff.d.ts.map +1 -0
  182. package/dist/tui/git-diff.js +48 -0
  183. package/dist/tui/git-diff.js.map +1 -0
  184. package/dist/tui/input.d.ts +14 -0
  185. package/dist/tui/input.d.ts.map +1 -1
  186. package/dist/tui/input.js +77 -1
  187. package/dist/tui/input.js.map +1 -1
  188. package/dist/tui/live.d.ts +10 -0
  189. package/dist/tui/live.d.ts.map +1 -1
  190. package/dist/tui/live.js +42 -5
  191. package/dist/tui/live.js.map +1 -1
  192. package/dist/tui/markdown.d.ts +7 -0
  193. package/dist/tui/markdown.d.ts.map +1 -0
  194. package/dist/tui/markdown.js +55 -0
  195. package/dist/tui/markdown.js.map +1 -0
  196. package/dist/tui/menu.js +1 -1
  197. package/dist/tui/review.d.ts +27 -0
  198. package/dist/tui/review.d.ts.map +1 -0
  199. package/dist/tui/review.js +114 -0
  200. package/dist/tui/review.js.map +1 -0
  201. package/dist/tui/slash.d.ts +11 -0
  202. package/dist/tui/slash.d.ts.map +1 -0
  203. package/dist/tui/slash.js +13 -0
  204. package/dist/tui/slash.js.map +1 -0
  205. package/dist/tui/state.d.ts +5 -0
  206. package/dist/tui/state.d.ts.map +1 -1
  207. package/dist/tui/state.js +10 -1
  208. package/dist/tui/state.js.map +1 -1
  209. package/dist/tui/syntax.d.ts +6 -0
  210. package/dist/tui/syntax.d.ts.map +1 -0
  211. package/dist/tui/syntax.js +48 -0
  212. package/dist/tui/syntax.js.map +1 -0
  213. package/dist/tui/view.d.ts +1 -1
  214. package/dist/tui/view.d.ts.map +1 -1
  215. package/dist/tui/view.js +21 -9
  216. package/dist/tui/view.js.map +1 -1
  217. package/dist/tui/welcome.d.ts +5 -0
  218. package/dist/tui/welcome.d.ts.map +1 -1
  219. package/dist/tui/welcome.js +35 -20
  220. package/dist/tui/welcome.js.map +1 -1
  221. package/dist/workspace/patch.d.ts +11 -0
  222. package/dist/workspace/patch.d.ts.map +1 -0
  223. package/dist/workspace/patch.js +124 -0
  224. package/dist/workspace/patch.js.map +1 -0
  225. package/dist/workspace/paths.d.ts.map +1 -1
  226. package/dist/workspace/paths.js +4 -0
  227. package/dist/workspace/paths.js.map +1 -1
  228. package/dist/workspace/types.d.ts +9 -2
  229. package/dist/workspace/types.d.ts.map +1 -1
  230. package/dist/workspace/types.js.map +1 -1
  231. package/dist/workspace.d.ts +4 -3
  232. package/dist/workspace.d.ts.map +1 -1
  233. package/dist/workspace.js +7 -2
  234. package/dist/workspace.js.map +1 -1
  235. package/package.json +6 -2
package/dist/tui/view.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { formatTokens } from "../providers/usage.js";
2
- import { callTarget } from "../tools/target.js";
2
+ import { toolTranscript } from "./activity.js";
3
3
  import { displayWidth, fitLine, fitLineTail, terminalText } from "./text.js";
4
4
  /** Tools listed individually before the rest are summarised as a count. */
5
5
  const MAX_LISTED_TOOLS = 3;
@@ -13,7 +13,7 @@ function elapsed(from, now) {
13
13
  return `${Math.floor(seconds / 60)}m${String(seconds % 60).padStart(2, "0")}s`;
14
14
  }
15
15
  function toolHead(tool, now, width) {
16
- const prefix = ` ${terminalText(tool.name)}`;
16
+ const prefix = ` ↳ ${terminalText(tool.name)}`;
17
17
  const duration = ` (${elapsed(tool.startedAt, now)})`;
18
18
  if (displayWidth(prefix) + displayWidth(duration) > width)
19
19
  return fitLine(prefix, width);
@@ -46,7 +46,18 @@ function statusLine(run, now, width) {
46
46
  const tokens = usage !== undefined && usage.usage.totalTokens > 0
47
47
  ? `${formatTokens(usage.usage.totalTokens)} tokens${usage.complete ? "" : "+"}`
48
48
  : undefined;
49
+ const completed = run.completedTools ?? 0;
50
+ const failed = run.failedTools ?? 0;
51
+ // Failed calls are already included in completedTools. Display separate
52
+ // success/failure counts so "1 done, 1 failed" cannot imply two outcomes.
53
+ const activityParts = [
54
+ ...(completed > 0 ? [`${Math.max(0, completed - failed)} ok`] : []),
55
+ ...(failed > 0 ? [`${failed} failed`] : []),
56
+ ...(run.running.length > 0 ? [`${run.running.length} running`] : []),
57
+ ];
58
+ const activity = activityParts.length > 0 ? activityParts.join(", ") : undefined;
49
59
  const candidates = [
60
+ [status, `turn ${run.turn}/${run.maxTurns}`, ...(activity === undefined ? [] : [activity]), duration, ...(tokens === undefined ? [] : [tokens]), "ctrl+c to stop"],
50
61
  [status, `turn ${run.turn}/${run.maxTurns}`, duration, ...(tokens === undefined ? [] : [tokens]), "ctrl+c to stop"],
51
62
  [status, `turn ${run.turn}/${run.maxTurns}`, duration, "ctrl+c to stop"],
52
63
  [status, `${run.turn}/${run.maxTurns}`, duration, "^C stop"],
@@ -82,6 +93,12 @@ export function view(state, options) {
82
93
  for (const line of tail) {
83
94
  lines.push(fitLineTail(line, options.width));
84
95
  }
96
+ if (run.plan !== undefined) {
97
+ const steps = run.plan.plan;
98
+ const done = steps.filter(step => step.status === "completed").length;
99
+ const active = steps.find(step => step.status === "in_progress");
100
+ lines.push(fitLine(` Plan ${done}/${steps.length}${active === undefined ? "" : ` · ${terminalText(active.step)}`}`, options.width));
101
+ }
85
102
  for (const tool of run.running.slice(0, MAX_LISTED_TOOLS)) {
86
103
  lines.push(describeTool(tool, options.now, options.width));
87
104
  }
@@ -99,16 +116,11 @@ export function view(state, options) {
99
116
  * is wanted the state has already been cleared — and because the event carries
100
117
  * the authoritative message either way.
101
118
  */
102
- export function transcriptLines(event) {
119
+ export function transcriptLines(event, width = 120) {
103
120
  const lines = [];
104
121
  // A result carries no arguments, so the target comes from the call that
105
122
  // produced it — the same join by call id the eval runner makes.
106
- const calls = new Map(event.message.toolCalls.map((call) => [call.id, call]));
107
- for (const result of event.toolResults) {
108
- const target = callTarget(calls.get(result.toolCallId)?.arguments);
109
- const head = target === undefined ? result.toolName : `${result.toolName} ${target}`;
110
- lines.push(` ${head}${result.isError ? " (failed)" : ""}`);
111
- }
123
+ lines.push(...toolTranscript(event.message.toolCalls, event.toolResults, width));
112
124
  if (event.message.content.trim().length > 0) {
113
125
  lines.push(event.message.content);
114
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/tui/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/tui/view.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,10 @@ export interface WelcomeOptions {
9
9
  readonly width: number;
10
10
  readonly color?: boolean;
11
11
  }
12
+ /**
13
+ * Calm first frame, inspired by the hierarchy of mature coding CLIs:
14
+ * recognizable product, model and workspace, one next action, then shortcuts.
15
+ * It never takes the alternate screen or steals scrollback.
16
+ */
12
17
  export declare function welcome(options: WelcomeOptions): string;
13
18
  //# sourceMappingURL=welcome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/tui/welcome.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AASD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAqBvD"}
1
+ {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/tui/welcome.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA+BvD"}
@@ -1,30 +1,45 @@
1
1
  import { fitLine, fitLineTail } from "./text.js";
2
- const glyphs = {
3
- C: ["█▀▀", "█ ", "█▄▄"], H: ["█ █", "█▀█", "█ █"], I: ["█", "█", "█"],
4
- V: ["█ █", "█ █", " ▀ "], G: ["█▀▀", "█ ▄", "█▄█"], E: ["█▀▀", "█▀ ", "█▄▄"],
5
- N: ["█▄█", "█▀█", "█ █"], T: ["▀█▀", " █ ", " █ "],
6
- };
7
- const wordmark = [0, 1, 2].map((row) => [..."CHIVGENT"].map((letter) => glyphs[letter]?.[row] ?? "").join(" "));
2
+ const COLOR = "\u001b[1;36m";
3
+ const DIM = "\u001b[2m";
4
+ const RESET = "\u001b[0m";
5
+ /**
6
+ * Calm first frame, inspired by the hierarchy of mature coding CLIs:
7
+ * recognizable product, model and workspace, one next action, then shortcuts.
8
+ * It never takes the alternate screen or steals scrollback.
9
+ */
8
10
  export function welcome(options) {
9
11
  const width = Math.max(1, options.width - 1);
10
- const brand = width >= 38 ? wordmark.map((row) => ` ${row}`) : [" ◆ chivgent"];
12
+ const wide = width >= 42;
13
+ const brand = wide
14
+ ? " ◆ chivgent"
15
+ : " ◆ chivgent";
16
+ const start = options.setupIssue === "model"
17
+ ? "Set a model with /model MODEL"
18
+ : options.setupIssue === "base-url"
19
+ ? "Set the API URL with /endpoint URL"
20
+ : options.signedOut
21
+ ? "Start with /provider → choose a Provider"
22
+ : "Ready. Describe a task to begin.";
23
+ const model = `${options.provider} · ${options.model}`;
11
24
  const lines = [
12
- ...brand,
13
- ` v${options.version}${options.resumed ? " · continued session" : ""}`,
14
- ` ${options.provider} / ${options.model}`,
15
- ` ${fitLineTail(options.cwd, width - 2)}`,
16
- options.setupIssue === "model"
17
- ? " Set a model with /model MODEL"
18
- : options.setupIssue === "base-url"
19
- ? " Set the API URL with /endpoint URL"
20
- : options.signedOut
21
- ? " Start with /provider → choose a Provider"
22
- : " Ready. Type a task or use /provider to switch.",
23
- " / commands · ↑↓ select · Ctrl+C exit",
25
+ brand,
26
+ ` v${options.version}${options.resumed ? " · resumed session" : ""}`,
27
+ "",
28
+ ` ${fitLine(model, Math.max(1, width - 2))}`,
29
+ ` ${fitLineTail(options.cwd, Math.max(1, width - 2))}`,
30
+ "",
31
+ ` ${start}`,
32
+ ` / commands · Tab complete · Ctrl+C stop/exit`,
24
33
  ];
25
34
  return `\n${lines.map((line, index) => {
26
35
  const fitted = fitLine(line, width);
27
- return options.color && index < brand.length ? `\u001b[1;36m${fitted}\u001b[0m` : fitted;
36
+ if (!options.color || fitted.length === 0)
37
+ return fitted;
38
+ if (index === 0)
39
+ return `${COLOR}${fitted}${RESET}`;
40
+ if (index === 1 || index === 4 || index === 7)
41
+ return `${DIM}${fitted}${RESET}`;
42
+ return fitted;
28
43
  }).join("\n")}\n\n`;
29
44
  }
30
45
  //# sourceMappingURL=welcome.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/tui/welcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcjD,MAAM,MAAM,GAAsC;IAChD,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACtE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;CACnD,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhH,MAAM,UAAU,OAAO,CAAC,OAAuB;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK;QACR,MAAM,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;QACzE,KAAK,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,KAAK,EAAE;QAC1C,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;QAC1C,OAAO,CAAC,UAAU,KAAK,OAAO;YAC5B,CAAC,CAAC,iCAAiC;YACnC,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU;gBACjC,CAAC,CAAC,sCAAsC;gBACxC,CAAC,CAAC,OAAO,CAAC,SAAS;oBACjB,CAAC,CAAC,4CAA4C;oBAC9C,CAAC,CAAC,kDAAkD;QAC1D,4CAA4C;KAC7C,CAAC;IACF,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/tui/welcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcjD,MAAM,KAAK,GAAG,cAAc,CAAC;AAC7B,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,KAAK,GAAG,WAAW,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAuB;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI;QAChB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,KAAK,OAAO;QAC1C,CAAC,CAAC,+BAA+B;QACjC,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU;YACjC,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,OAAO,CAAC,SAAS;gBACjB,CAAC,CAAC,0CAA0C;gBAC5C,CAAC,CAAC,kCAAkC,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,QAAQ,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,MAAM,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;QACvE,EAAE;QACF,KAAK,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7C,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;QACvD,EAAE;QACF,KAAK,KAAK,EAAE;QACZ,oDAAoD;KACrD,CAAC;IACF,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACzD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { WorkspaceLimits, PatchResult } from "./types.js";
2
+ /**
3
+ * Validate *all* edits before modifying any file. Each individual replacement
4
+ * uses the existing atomic workspace writer; if an I/O error occurs partway
5
+ * through a batch, restore previously committed paths in reverse order.
6
+ *
7
+ * This is not a filesystem transaction: sudden process termination and
8
+ * concurrent external writers can still expose partial changes.
9
+ */
10
+ export declare function applyWorkspacePatch(limits: WorkspaceLimits, text: string, signal?: AbortSignal): Promise<PatchResult>;
11
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/workspace/patch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA4B/D;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAiFtB"}
@@ -0,0 +1,124 @@
1
+ import { unlink } from "node:fs/promises";
2
+ import { PatchError, applyHunks, parsePatch } from "../patch/parse.js";
3
+ import { resolveWritePath } from "./paths.js";
4
+ import { readFullTextFileWithBom } from "./read.js";
5
+ import { writeTextFile } from "./write.js";
6
+ function interrupted(signal) {
7
+ if (signal?.aborted) {
8
+ const error = new Error("Patch interrupted.");
9
+ error.name = "AbortError";
10
+ throw error;
11
+ }
12
+ }
13
+ async function readOriginal(limits, file) {
14
+ const original = await readFullTextFileWithBom(limits, file);
15
+ return (original.hadBom ? "\uFEFF" : "") + original.contents;
16
+ }
17
+ function checkContents(contents, limits, file) {
18
+ if (contents.includes("\0"))
19
+ throw new PatchError(`Patch contains a NUL byte: ${file}`);
20
+ if (Buffer.byteLength(contents, "utf8") > limits.maxFileBytes) {
21
+ throw new PatchError(`Patched file exceeds the ${limits.maxFileBytes}-byte limit: ${file}`);
22
+ }
23
+ }
24
+ /**
25
+ * Validate *all* edits before modifying any file. Each individual replacement
26
+ * uses the existing atomic workspace writer; if an I/O error occurs partway
27
+ * through a batch, restore previously committed paths in reverse order.
28
+ *
29
+ * This is not a filesystem transaction: sudden process termination and
30
+ * concurrent external writers can still expose partial changes.
31
+ */
32
+ export async function applyWorkspacePatch(limits, text, signal) {
33
+ const changes = parsePatch(text);
34
+ const plan = [];
35
+ const paths = new Set();
36
+ for (const change of changes) {
37
+ interrupted(signal);
38
+ const resolved = await resolveWritePath(limits.root, change.path);
39
+ const file = resolved.relativePath;
40
+ if (paths.has(file))
41
+ throw new PatchError(`Duplicate normalized patch path: ${file}`);
42
+ paths.add(file);
43
+ if (change.kind === "add") {
44
+ if (resolved.exists)
45
+ throw new PatchError(`Add File already exists: ${file}`);
46
+ const next = change.lines.length === 0 ? "" : `${change.lines.join("\n")}\n`;
47
+ checkContents(next, limits, file);
48
+ plan.push({ kind: "add", path: file, previous: undefined, next });
49
+ }
50
+ else {
51
+ if (!resolved.exists)
52
+ throw new PatchError(`${change.kind} target does not exist: ${file}`);
53
+ const previous = await readOriginal(limits, file);
54
+ if (change.kind === "delete") {
55
+ plan.push({ kind: "delete", path: file, previous, next: undefined });
56
+ }
57
+ else {
58
+ const bom = previous.startsWith("\uFEFF") ? "\uFEFF" : "";
59
+ const contents = previous.slice(bom.length);
60
+ // Retain uniform CRLF, rather than rewriting unrelated line endings.
61
+ const crlf = contents.includes("\r\n") && !contents.replace(/\r\n/g, "").includes("\n") &&
62
+ !contents.replace(/\r\n/g, "").includes("\r");
63
+ const normalized = crlf ? contents.replace(/\r\n/g, "\n") : contents;
64
+ const edited = applyHunks(normalized, change.hunks, file);
65
+ const next = bom + (crlf ? edited.replace(/\n/g, "\r\n") : edited);
66
+ if (next === previous)
67
+ throw new PatchError(`Patch does not change ${file}`);
68
+ checkContents(next, limits, file);
69
+ plan.push({ kind: "update", path: file, previous, next });
70
+ }
71
+ }
72
+ }
73
+ // Two-phase validation: if any hunk conflicts, no file is touched.
74
+ const committed = [];
75
+ try {
76
+ for (const item of plan) {
77
+ interrupted(signal);
78
+ const target = await resolveWritePath(limits.root, item.path);
79
+ if (target.exists !== (item.previous !== undefined)) {
80
+ throw new PatchError(`File changed since validation: ${item.path}`);
81
+ }
82
+ if (item.previous !== undefined) {
83
+ const current = await readOriginal(limits, item.path);
84
+ if (current !== item.previous)
85
+ throw new PatchError(`File changed since validation: ${item.path}`);
86
+ }
87
+ if (item.kind === "delete") {
88
+ await unlink(target.lexicalTarget);
89
+ }
90
+ else {
91
+ await writeTextFile(limits, item.path, item.next);
92
+ }
93
+ committed.push(item);
94
+ }
95
+ }
96
+ catch (error) {
97
+ const rollbackErrors = [];
98
+ for (const item of committed.reverse()) {
99
+ try {
100
+ if (item.previous === undefined) {
101
+ const target = await resolveWritePath(limits.root, item.path);
102
+ if (target.exists)
103
+ await unlink(target.lexicalTarget);
104
+ }
105
+ else {
106
+ await writeTextFile(limits, item.path, item.previous);
107
+ }
108
+ }
109
+ catch {
110
+ rollbackErrors.push(item.path);
111
+ }
112
+ }
113
+ if (rollbackErrors.length > 0) {
114
+ throw new PatchError(`Patch failed and rollback was incomplete for: ${rollbackErrors.join(", ")}. Inspect the workspace manually.`);
115
+ }
116
+ throw error;
117
+ }
118
+ return {
119
+ added: plan.filter(item => item.kind === "add").map(item => item.path),
120
+ updated: plan.filter(item => item.kind === "update").map(item => item.path),
121
+ deleted: plan.filter(item => item.kind === "delete").map(item => item.path),
122
+ };
123
+ }
124
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/workspace/patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB,aAI5B,CAAC;AACH,eAAO,MAAM,yBAAyB,aAAoC,CAAC;AAC3E,eAAO,MAAM,oBAAoB,aAK/B,CAAC;AACH,eAAO,MAAM,yBAAyB,aAA4C,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAyBrE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAarE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA+BnE;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAyE5B"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,iBAAiB,aAI5B,CAAC;AACH,eAAO,MAAM,yBAAyB,aAAoC,CAAC;AAE3E,eAAO,MAAM,oBAAoB,aAK/B,CAAC;AACH,eAAO,MAAM,yBAAyB,aAA4C,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAyBrE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAarE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA+BnE;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,CAAC,CA4E5B"}
@@ -7,6 +7,7 @@ export const ALLOWED_ENV_FILES = new Set([
7
7
  ".env.template",
8
8
  ]);
9
9
  export const FORBIDDEN_DIRECTORY_NAMES = new Set([".git", ".ssh", ".aws"]);
10
+ const PROTECTED_WRITE_DIRECTORY_NAMES = new Set([".git", ".ssh", ".aws", ".agents", ".codex"]);
10
11
  export const FORBIDDEN_FILE_NAMES = new Set([
11
12
  ".npmrc",
12
13
  ".pypirc",
@@ -137,6 +138,9 @@ export async function rejectExplicitDirectorySymlink(root, resolved, requestedPa
137
138
  */
138
139
  export async function resolveWritePath(root, relativePath) {
139
140
  const normalized = normalizeRelativePath(root, relativePath);
141
+ if (normalized.relativePath.split("/").some((part) => PROTECTED_WRITE_DIRECTORY_NAMES.has(part.toLowerCase()))) {
142
+ throw new WorkspaceError("forbidden_path", "Writes to protected workspace directories are not allowed.");
143
+ }
140
144
  if (normalized.relativePath === ".") {
141
145
  throw new WorkspaceError("invalid_path", "The workspace root is not a writable file path.");
142
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/workspace/paths.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,11 @@ export interface WorkspaceLimits {
64
64
  readonly maxSearchFiles: number;
65
65
  readonly maxSearchBytes: number;
66
66
  }
67
+ export interface PatchResult {
68
+ readonly added: readonly string[];
69
+ readonly updated: readonly string[];
70
+ readonly deleted: readonly string[];
71
+ }
67
72
  export interface WriteTextFileResult {
68
73
  readonly path: string;
69
74
  /** True when the write created a file that did not exist before. */
@@ -84,13 +89,15 @@ export interface EditTextFileResult {
84
89
  }
85
90
  export interface Workspace {
86
91
  readonly root: string;
92
+ /** Optional capability: third-party read-only workspaces need not support patches. */
93
+ applyPatch?(patch: string, signal?: AbortSignal): Promise<PatchResult>;
87
94
  readTextFile(relativePath: string, options?: ReadTextFileOptions): Promise<TextFileSlice>;
88
95
  listFiles(options?: ListFilesOptions): Promise<ListFilesResult>;
89
96
  searchText(options: SearchTextOptions): Promise<SearchTextResult>;
90
97
  /** Rejects unless the workspace was constructed with writes enabled. */
91
- writeTextFile(relativePath: string, contents: string): Promise<WriteTextFileResult>;
98
+ writeTextFile(relativePath: string, contents: string, signal?: AbortSignal): Promise<WriteTextFileResult>;
92
99
  /** Rejects unless the workspace was constructed with writes enabled. */
93
- editTextFile(relativePath: string, options: EditTextFileOptions): Promise<EditTextFileResult>;
100
+ editTextFile(relativePath: string, options: EditTextFileOptions, signal?: AbortSignal): Promise<EditTextFileResult>;
94
101
  }
95
102
  export interface LocalWorkspaceOptions {
96
103
  /** Writes are refused unless this is explicitly true. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAiBlD,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE5B,IAAI;IADf,YACW,IAAwB,EACjC,OAAe,EACf,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAJf,IAAI;QAKb,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AA2GD,MAAM,UAAU,YAAY,CAC1B,YAAoB,EACpB,SAAiB,EACjB,UAAkB;IAElB,OAAO,IAAI,cAAc,CACvB,eAAe,EACf,cAAc,SAAS,eAAe,YAAY,eAAe,UAAU,SAAS,CACrF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workspace/types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAiBlD,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE5B,IAAI;IADf,YACW,IAAwB,EACjC,OAAe,EACf,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAJf,IAAI;QAKb,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAqHD,MAAM,UAAU,YAAY,CAC1B,YAAoB,EACpB,SAAiB,EACjB,UAAkB;IAElB,OAAO,IAAI,cAAc,CACvB,eAAe,EACf,cAAc,SAAS,eAAe,YAAY,eAAe,UAAU,SAAS,CACrF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type EditTextFileOptions, type EditTextFileResult, type ListFilesOptions, type ListFilesResult, type LocalWorkspaceOptions, type ReadTextFileOptions, type SearchTextOptions, type SearchTextResult, type TextFileSlice, type Workspace, type WriteTextFileResult } from "./workspace/types.js";
1
+ import { type EditTextFileOptions, type EditTextFileResult, type ListFilesOptions, type ListFilesResult, type LocalWorkspaceOptions, type ReadTextFileOptions, type SearchTextOptions, type SearchTextResult, type TextFileSlice, type Workspace, type PatchResult, type WriteTextFileResult } from "./workspace/types.js";
2
2
  export * from "./workspace/types.js";
3
3
  /**
4
4
  * A workspace rooted at a single directory.
@@ -17,8 +17,9 @@ export declare class LocalWorkspace implements Workspace {
17
17
  readTextFile(relativePath: string, options?: ReadTextFileOptions): Promise<TextFileSlice>;
18
18
  listFiles(options?: ListFilesOptions): Promise<ListFilesResult>;
19
19
  searchText(options: SearchTextOptions): Promise<SearchTextResult>;
20
- writeTextFile(relativePath: string, contents: string): Promise<WriteTextFileResult>;
21
- editTextFile(relativePath: string, options: EditTextFileOptions): Promise<EditTextFileResult>;
20
+ writeTextFile(relativePath: string, contents: string, _signal?: AbortSignal): Promise<WriteTextFileResult>;
21
+ editTextFile(relativePath: string, options: EditTextFileOptions, _signal?: AbortSignal): Promise<EditTextFileResult>;
22
+ applyPatch(patch: string, signal?: AbortSignal): Promise<PatchResult>;
22
23
  private assertWritesEnabled;
23
24
  }
24
25
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAQ9B,cAAc,sBAAsB,CAAC;AAErC;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAEtC,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,EAqB5D;IAED,oEAAoE;IACpE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,CAAC,CAExB;IAEK,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAExE;IAEK,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEtE;IAEK,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAG9B;IAEK,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAG7B;IAED,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAS9B,cAAc,sBAAsB,CAAC;AAErC;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAEtC,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,EAqB5D;IAED,oEAAoE;IACpE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAEK,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,CAAC,CAExB;IAEK,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAExE;IAEK,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEtE;IAEK,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAG9B;IAEK,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAG7B;IAEK,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAG1E;IAED,OAAO,CAAC,mBAAmB;CAQ5B"}
package/dist/workspace.js CHANGED
@@ -4,6 +4,7 @@ import { readTextFile } from "./workspace/read.js";
4
4
  import { listFiles } from "./workspace/list.js";
5
5
  import { searchText } from "./workspace/search.js";
6
6
  import { editTextFile, writeTextFile } from "./workspace/write.js";
7
+ import { applyWorkspacePatch } from "./workspace/patch.js";
7
8
  import path from "node:path";
8
9
  export * from "./workspace/types.js";
9
10
  /**
@@ -40,14 +41,18 @@ export class LocalWorkspace {
40
41
  async searchText(options) {
41
42
  return searchText(this.limits, options);
42
43
  }
43
- async writeTextFile(relativePath, contents) {
44
+ async writeTextFile(relativePath, contents, _signal) {
44
45
  this.assertWritesEnabled();
45
46
  return writeTextFile(this.limits, relativePath, contents);
46
47
  }
47
- async editTextFile(relativePath, options) {
48
+ async editTextFile(relativePath, options, _signal) {
48
49
  this.assertWritesEnabled();
49
50
  return editTextFile(this.limits, relativePath, options);
50
51
  }
52
+ async applyPatch(patch, signal) {
53
+ this.assertWritesEnabled();
54
+ return applyWorkspacePatch(this.limits, patch, signal);
55
+ }
51
56
  assertWritesEnabled() {
52
57
  if (!this.allowWrites) {
53
58
  throw new WorkspaceError("writes_disabled", "This workspace is read-only. Restart chivgent with --allow-writes to enable file changes.");
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,GAaf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,cAAc,sBAAsB,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACL,MAAM,CAAkB;IACxB,WAAW,CAAU;IAEtC,YAAY,IAAY,EAAE,OAAO,GAA0B,EAAE;QAC3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,sBAAsB,CAClC,OAAO,CAAC,YAAY,IAAI,sBAAsB,EAC9C,cAAc,EACd,sBAAsB,CACvB;YACD,cAAc,EAAE,sBAAsB,CACpC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,EAChB,wBAAwB,CACzB;YACD,cAAc,EAAE,sBAAsB,CACpC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,EAChB,wBAAwB,CACzB;SACF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,OAAO,GAAwB,EAAE;QAEjC,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAqB,EAAE;QAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAoB,EACpB,QAAgB;QAEhB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,OAA4B;QAE5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,2FAA2F,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,GAcf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,cAAc,sBAAsB,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACL,MAAM,CAAkB;IACxB,WAAW,CAAU;IAEtC,YAAY,IAAY,EAAE,OAAO,GAA0B,EAAE;QAC3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,sBAAsB,CAClC,OAAO,CAAC,YAAY,IAAI,sBAAsB,EAC9C,cAAc,EACd,sBAAsB,CACvB;YACD,cAAc,EAAE,sBAAsB,CACpC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,EAChB,wBAAwB,CACzB;YACD,cAAc,EAAE,sBAAsB,CACpC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,EAChB,wBAAwB,CACzB;SACF,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,OAAO,GAAwB,EAAE;QAEjC,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAqB,EAAE;QAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAoB,EACpB,QAAgB,EAChB,OAAqB;QAErB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,OAA4B,EAC5B,OAAqB;QAErB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAoB;QAClD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,2FAA2F,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chivgent",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "A terminal coding agent with a streaming TUI and configurable AI providers.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -43,7 +43,11 @@
43
43
  "release:check": "npm run check && npm test && npm run build && npm pack --dry-run",
44
44
  "prepublishOnly": "npm run check && npm test",
45
45
  "prepack": "npm run build",
46
- "eval": "npm run build && node dist/evals/cli.js"
46
+ "eval": "npm run build && node dist/evals/cli.js",
47
+ "desktop:dev": "npm --prefix apps/desktop run dev",
48
+ "desktop:build": "npm --prefix apps/desktop run build",
49
+ "desktop:pack": "npm --prefix apps/desktop run pack",
50
+ "desktop:test": "npm --prefix apps/desktop test"
47
51
  },
48
52
  "dependencies": {
49
53
  "ignore": "7.0.6",