@lore-co/cli 0.2.26 → 0.2.28

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 (223) hide show
  1. package/README.md +67 -20
  2. package/dist/agents.d.ts +9 -0
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +19 -6
  5. package/dist/agents.js.map +1 -1
  6. package/dist/api.d.ts +2 -1
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js +15 -2
  9. package/dist/api.js.map +1 -1
  10. package/dist/approach-guidance.d.ts +8 -1
  11. package/dist/approach-guidance.d.ts.map +1 -1
  12. package/dist/approach-guidance.js +13 -3
  13. package/dist/approach-guidance.js.map +1 -1
  14. package/dist/approach.d.ts.map +1 -1
  15. package/dist/approach.js +2 -2
  16. package/dist/approach.js.map +1 -1
  17. package/dist/ask.d.ts.map +1 -1
  18. package/dist/ask.js +2 -2
  19. package/dist/ask.js.map +1 -1
  20. package/dist/capture-repair.d.ts +11 -0
  21. package/dist/capture-repair.d.ts.map +1 -0
  22. package/dist/capture-repair.js +94 -0
  23. package/dist/capture-repair.js.map +1 -0
  24. package/dist/capture-scope.d.ts.map +1 -1
  25. package/dist/capture-scope.js +2 -1
  26. package/dist/capture-scope.js.map +1 -1
  27. package/dist/chat.d.ts.map +1 -1
  28. package/dist/chat.js +2 -2
  29. package/dist/chat.js.map +1 -1
  30. package/dist/cli.d.ts +114 -6
  31. package/dist/cli.d.ts.map +1 -1
  32. package/dist/cli.js +628 -127
  33. package/dist/cli.js.map +1 -1
  34. package/dist/codex-hook-approval.d.ts.map +1 -1
  35. package/dist/codex-hook-approval.js +9 -2
  36. package/dist/codex-hook-approval.js.map +1 -1
  37. package/dist/command-help.d.ts +3 -2
  38. package/dist/command-help.d.ts.map +1 -1
  39. package/dist/command-help.js +11 -5
  40. package/dist/command-help.js.map +1 -1
  41. package/dist/config-command.js +2 -2
  42. package/dist/config-command.js.map +1 -1
  43. package/dist/connect-project.d.ts.map +1 -1
  44. package/dist/connect-project.js +2 -1
  45. package/dist/connect-project.js.map +1 -1
  46. package/dist/console-keys.d.ts +11 -0
  47. package/dist/console-keys.d.ts.map +1 -0
  48. package/dist/console-keys.js +24 -0
  49. package/dist/console-keys.js.map +1 -0
  50. package/dist/cursor-mcp.d.ts.map +1 -1
  51. package/dist/cursor-mcp.js +4 -0
  52. package/dist/cursor-mcp.js.map +1 -1
  53. package/dist/demo-process.js +3 -3
  54. package/dist/demo-process.js.map +1 -1
  55. package/dist/devin-capture.d.ts.map +1 -1
  56. package/dist/devin-capture.js +2 -2
  57. package/dist/devin-capture.js.map +1 -1
  58. package/dist/devin-cli.d.ts.map +1 -1
  59. package/dist/devin-cli.js +23 -13
  60. package/dist/devin-cli.js.map +1 -1
  61. package/dist/devin-client.d.ts +3 -0
  62. package/dist/devin-client.d.ts.map +1 -1
  63. package/dist/devin-client.js +5 -0
  64. package/dist/devin-client.js.map +1 -1
  65. package/dist/devin.d.ts.map +1 -1
  66. package/dist/devin.js +29 -9
  67. package/dist/devin.js.map +1 -1
  68. package/dist/drafts.d.ts +8 -0
  69. package/dist/drafts.d.ts.map +1 -0
  70. package/dist/drafts.js +173 -0
  71. package/dist/drafts.js.map +1 -0
  72. package/dist/generated-assets.d.ts +9 -9
  73. package/dist/generated-assets.d.ts.map +1 -1
  74. package/dist/generated-assets.js +9 -9
  75. package/dist/generated-assets.js.map +1 -1
  76. package/dist/github.d.ts.map +1 -1
  77. package/dist/github.js +46 -14
  78. package/dist/github.js.map +1 -1
  79. package/dist/guard.d.ts +1 -1
  80. package/dist/guard.d.ts.map +1 -1
  81. package/dist/guard.js +42 -14
  82. package/dist/guard.js.map +1 -1
  83. package/dist/handoff.js +2 -2
  84. package/dist/handoff.js.map +1 -1
  85. package/dist/host.js +4 -4
  86. package/dist/host.js.map +1 -1
  87. package/dist/image-capture.d.ts.map +1 -1
  88. package/dist/image-capture.js +5 -4
  89. package/dist/image-capture.js.map +1 -1
  90. package/dist/learnings.d.ts.map +1 -1
  91. package/dist/learnings.js +3 -3
  92. package/dist/learnings.js.map +1 -1
  93. package/dist/live.d.ts +7 -0
  94. package/dist/live.d.ts.map +1 -1
  95. package/dist/live.js +11 -6
  96. package/dist/live.js.map +1 -1
  97. package/dist/lore-agent.d.ts +6 -1
  98. package/dist/lore-agent.d.ts.map +1 -1
  99. package/dist/lore-agent.js +29 -7
  100. package/dist/lore-agent.js.map +1 -1
  101. package/dist/mcp-config.d.ts +7 -0
  102. package/dist/mcp-config.d.ts.map +1 -1
  103. package/dist/mcp-config.js +19 -3
  104. package/dist/mcp-config.js.map +1 -1
  105. package/dist/npm-installation.js +2 -2
  106. package/dist/npm-installation.js.map +1 -1
  107. package/dist/owned-files.d.ts +14 -4
  108. package/dist/owned-files.d.ts.map +1 -1
  109. package/dist/owned-files.js +24 -9
  110. package/dist/owned-files.js.map +1 -1
  111. package/dist/platform.d.ts +26 -3
  112. package/dist/platform.d.ts.map +1 -1
  113. package/dist/platform.js +87 -20
  114. package/dist/platform.js.map +1 -1
  115. package/dist/pty.d.ts +2 -1
  116. package/dist/pty.d.ts.map +1 -1
  117. package/dist/pty.js +20 -7
  118. package/dist/pty.js.map +1 -1
  119. package/dist/recovery-cloud-receipt.d.ts.map +1 -1
  120. package/dist/recovery-cloud-receipt.js +2 -1
  121. package/dist/recovery-cloud-receipt.js.map +1 -1
  122. package/dist/recovery-cloud-workspace.d.ts.map +1 -1
  123. package/dist/recovery-cloud-workspace.js +2 -1
  124. package/dist/recovery-cloud-workspace.js.map +1 -1
  125. package/dist/recovery-cloud.d.ts.map +1 -1
  126. package/dist/recovery-cloud.js +8 -9
  127. package/dist/recovery-cloud.js.map +1 -1
  128. package/dist/recovery-copilot.d.ts.map +1 -1
  129. package/dist/recovery-copilot.js +3 -2
  130. package/dist/recovery-copilot.js.map +1 -1
  131. package/dist/recovery-desktop.d.ts.map +1 -1
  132. package/dist/recovery-desktop.js +3 -2
  133. package/dist/recovery-desktop.js.map +1 -1
  134. package/dist/recovery-hooks.js +2 -2
  135. package/dist/recovery-hooks.js.map +1 -1
  136. package/dist/recovery-hosts.d.ts.map +1 -1
  137. package/dist/recovery-hosts.js +53 -6
  138. package/dist/recovery-hosts.js.map +1 -1
  139. package/dist/recovery-polytoken.d.ts +2 -2
  140. package/dist/recovery-polytoken.d.ts.map +1 -1
  141. package/dist/recovery-polytoken.js +13 -8
  142. package/dist/recovery-polytoken.js.map +1 -1
  143. package/dist/recovery-remote.js +3 -3
  144. package/dist/recovery-remote.js.map +1 -1
  145. package/dist/recovery-state.d.ts +22 -1
  146. package/dist/recovery-state.d.ts.map +1 -1
  147. package/dist/recovery-state.js +167 -31
  148. package/dist/recovery-state.js.map +1 -1
  149. package/dist/recovery-transfer.d.ts.map +1 -1
  150. package/dist/recovery-transfer.js +8 -4
  151. package/dist/recovery-transfer.js.map +1 -1
  152. package/dist/recovery.d.ts +5 -2
  153. package/dist/recovery.d.ts.map +1 -1
  154. package/dist/recovery.js +37 -14
  155. package/dist/recovery.js.map +1 -1
  156. package/dist/reliability-store.d.ts +13 -0
  157. package/dist/reliability-store.d.ts.map +1 -1
  158. package/dist/reliability-store.js +110 -8
  159. package/dist/reliability-store.js.map +1 -1
  160. package/dist/remember.d.ts.map +1 -1
  161. package/dist/remember.js +32 -3
  162. package/dist/remember.js.map +1 -1
  163. package/dist/retained-context.d.ts.map +1 -1
  164. package/dist/retained-context.js +3 -2
  165. package/dist/retained-context.js.map +1 -1
  166. package/dist/retrieval-task.d.ts +30 -0
  167. package/dist/retrieval-task.d.ts.map +1 -1
  168. package/dist/retrieval-task.js +98 -2
  169. package/dist/retrieval-task.js.map +1 -1
  170. package/dist/review.d.ts +1 -1
  171. package/dist/review.d.ts.map +1 -1
  172. package/dist/review.js +12 -7
  173. package/dist/review.js.map +1 -1
  174. package/dist/runtime.d.ts +4 -1
  175. package/dist/runtime.d.ts.map +1 -1
  176. package/dist/runtime.js +147 -97
  177. package/dist/runtime.js.map +1 -1
  178. package/dist/self-host.d.ts +1 -1
  179. package/dist/self-host.d.ts.map +1 -1
  180. package/dist/self-host.js +105 -23
  181. package/dist/self-host.js.map +1 -1
  182. package/dist/share.d.ts.map +1 -1
  183. package/dist/share.js +2 -1
  184. package/dist/share.js.map +1 -1
  185. package/dist/signed-snapshot.d.ts +7 -0
  186. package/dist/signed-snapshot.d.ts.map +1 -1
  187. package/dist/signed-snapshot.js +27 -0
  188. package/dist/signed-snapshot.js.map +1 -1
  189. package/dist/skill-command.d.ts +5 -2
  190. package/dist/skill-command.d.ts.map +1 -1
  191. package/dist/skill-command.js +73 -10
  192. package/dist/skill-command.js.map +1 -1
  193. package/dist/skill-guidance.js +1 -1
  194. package/dist/skill-guidance.js.map +1 -1
  195. package/dist/skills.d.ts.map +1 -1
  196. package/dist/skills.js +9 -7
  197. package/dist/skills.js.map +1 -1
  198. package/dist/status-health.d.ts +26 -0
  199. package/dist/status-health.d.ts.map +1 -0
  200. package/dist/status-health.js +49 -0
  201. package/dist/status-health.js.map +1 -0
  202. package/dist/telemetry.d.ts.map +1 -1
  203. package/dist/telemetry.js +2 -2
  204. package/dist/telemetry.js.map +1 -1
  205. package/dist/terminal-output.d.ts +76 -0
  206. package/dist/terminal-output.d.ts.map +1 -0
  207. package/dist/terminal-output.js +151 -0
  208. package/dist/terminal-output.js.map +1 -0
  209. package/dist/uninstall.d.ts.map +1 -1
  210. package/dist/uninstall.js +3 -1
  211. package/dist/uninstall.js.map +1 -1
  212. package/dist/update.d.ts +3 -0
  213. package/dist/update.d.ts.map +1 -1
  214. package/dist/update.js +40 -14
  215. package/dist/update.js.map +1 -1
  216. package/dist/windows-permissions.d.ts +6 -0
  217. package/dist/windows-permissions.d.ts.map +1 -1
  218. package/dist/windows-permissions.js +22 -2
  219. package/dist/windows-permissions.js.map +1 -1
  220. package/dist/windows-pty.d.ts.map +1 -1
  221. package/dist/windows-pty.js +4 -3
  222. package/dist/windows-pty.js.map +1 -1
  223. package/package.json +4 -4
@@ -1,4 +1,5 @@
1
1
  import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
2
+ import { LORE_DISABLE } from "./directory-policy.js";
2
3
  /**
3
4
  * The full Lore MCP server entry that `lore connect` registers next to an
4
5
  * agent's native hooks. Hooks deliver context and capture turns on their own;
@@ -21,6 +22,13 @@ function stableJson(value) {
21
22
  }
22
23
  return JSON.stringify(value);
23
24
  }
25
+ /**
26
+ * Cursor starts MCP servers without the launching shell's variables, so its
27
+ * Lore entries forward LORE_DISABLE through Cursor's `${env:NAME}`
28
+ * interpolation. When the variable is unset Cursor passes the text through
29
+ * unchanged, which `loreDisabled` reads as off.
30
+ */
31
+ export const CURSOR_LORE_DISABLE_ENV = { [LORE_DISABLE]: `\${env:${LORE_DISABLE}}` };
24
32
  /**
25
33
  * Build the server entry. `invocation` is the executable plus any script path
26
34
  * the CLI needs (empty for the standalone binary); the stored home keeps the
@@ -37,7 +45,10 @@ export function loreMcpServerEntry(invocation, home, agent) {
37
45
  args: [...prefix, "mcp", "--owner", "lore"],
38
46
  // Writes stay proposals that owners and admins approve; hooks already
39
47
  // deliver context per prompt, so the server skips its own delivery tool.
40
- env: { LORE_HOME: home, LORE_MCP_WRITE_TOOLS: "true", LORE_MCP_HOST_CONTEXT: "hooks", LORE_MCP_AGENT: agent },
48
+ env: {
49
+ LORE_HOME: home, LORE_MCP_WRITE_TOOLS: "true", LORE_MCP_HOST_CONTEXT: "hooks", LORE_MCP_AGENT: agent,
50
+ ...(agent === "cursor" ? CURSOR_LORE_DISABLE_ENV : {}),
51
+ },
41
52
  };
42
53
  // Copilot CLI calls stdio servers "local" and enables tools by name.
43
54
  if (agent === "copilot-cli")
@@ -121,10 +132,15 @@ export function removeLoreOpenCodeMcp(config) {
121
132
  const { [LORE_MCP_SERVER_NAME]: _lore, ...rest } = config.mcp;
122
133
  return Object.keys(rest).length === 0 ? Object.fromEntries(Object.entries(config).filter(([key]) => key !== "mcp")) : { ...config, mcp: rest };
123
134
  }
124
- /** Codex lists servers in TOML; it has no `type` field. */
135
+ /**
136
+ * Codex lists servers in TOML; it has no `type` field. Codex starts servers
137
+ * with a minimal environment, so `env_vars` forwards LORE_DISABLE from the
138
+ * shell that started Codex; Cursor entries use CURSOR_LORE_DISABLE_ENV, and
139
+ * the other hosts pass their whole environment.
140
+ */
125
141
  function codexMcpTable(entry) {
126
142
  const { type: _type, ...table } = entry;
127
- return table;
143
+ return { ...table, env_vars: [LORE_DISABLE] };
128
144
  }
129
145
  function codexMcpBlock(entry) {
130
146
  const body = stringifyToml({ mcp_servers: { [LORE_MCP_SERVER_NAME]: codexMcpTable(entry) } }).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../src/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { spawn, isWindows } from "./platform.js";
1
+ import { spawn, isWindows, systemCommand } from "./platform.js";
2
2
  import { constants } from "node:fs";
3
3
  import { access, readFile, realpath } from "node:fs/promises";
4
4
  import { basename, dirname, resolve } from "node:path";
@@ -7,7 +7,7 @@ import { fileURLToPath } from "node:url";
7
7
  export const runningPackageDirectory = () => fileURLToPath(new URL("..", import.meta.url));
8
8
  export function npm(args, timeoutMs, failure) {
9
9
  return new Promise((done, reject) => {
10
- const child = spawn("npm", args, { stdio: ["ignore", "pipe", "pipe"], windowsHide: true });
10
+ const child = spawn(systemCommand("npm"), args, { stdio: ["ignore", "pipe", "pipe"], windowsHide: true });
11
11
  let output = "";
12
12
  const timer = setTimeout(() => { child.kill(); reject(new Error("npm timed out")); }, timeoutMs);
13
13
  child.stdout.on("data", chunk => { output += chunk; if (output.length > 1024 * 1024)
@@ -1 +1 @@
1
- {"version":3,"file":"npm-installation.js","sourceRoot":"","sources":["../src/npm-installation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"npm-installation.js","sourceRoot":"","sources":["../src/npm-installation.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,19 @@
6
6
  */
7
7
  export declare const digest: (text: string) => string;
8
8
  export type OwnedManifest = Record<string, string>;
9
- /** True when no component of the path is a symlink. Lore never follows links into other files. */
10
- export declare function regularPath(path: string): Promise<boolean>;
11
- export declare function readOwnedManifest(file: string, subject: string): Promise<OwnedManifest>;
9
+ /**
10
+ * True when no component of the path inside the home folder is a symlink:
11
+ * Lore never follows links into other files. The home folder and its
12
+ * ancestors are the machine's layout, not files Lore writes, so a link there
13
+ * (macOS /var -> /private/var, /home -> /usr/home) is allowed.
14
+ *
15
+ * `configFolder` is the agent folder Lore writes into (for example a
16
+ * CLAUDE_CONFIG_DIR or COPILOT_HOME outside the home folder). Only the folders
17
+ * above it are treated as machine layout (macOS /tmp -> /private/tmp); the
18
+ * folder itself and everything inside it are still checked.
19
+ */
20
+ export declare function regularPath(path: string, home: string, configFolder?: string): Promise<boolean>;
21
+ export declare function readOwnedManifest(file: string, subject: string, home: string): Promise<OwnedManifest>;
12
22
  export declare function atomicWrite(file: string, text: string): Promise<void>;
13
23
  export declare function readIfPresent(file: string): Promise<string | null>;
14
24
  /**
@@ -16,6 +26,6 @@ export declare function readIfPresent(file: string): Promise<string | null>;
16
26
  * then drop an empty parent directory and the manifest entry. Returns false
17
27
  * when the file was left alone.
18
28
  */
19
- export declare function removeOwnedFile(file: string, manifest: OwnedManifest, removeEmptyDirectory?: boolean): Promise<boolean>;
29
+ export declare function removeOwnedFile(file: string, manifest: OwnedManifest, home: string, removeEmptyDirectory?: boolean, configFolder?: string): Promise<boolean>;
20
30
  export declare function ownedFileHint(subject: string, file: string, error: unknown, consequence: string): string;
21
31
  //# sourceMappingURL=owned-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owned-files.d.ts","sourceRoot":"","sources":["../src/owned-files.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,MAAyD,CAAC;AAEhG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,kGAAkG;AAClG,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWhE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAU7F;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAe1H;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIxG"}
1
+ {"version":3,"file":"owned-files.d.ts","sourceRoot":"","sources":["../src/owned-files.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,MAAyD,CAAC;AAEhG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBrG;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAU3G;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,UAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAe/J;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIxG"}
@@ -1,6 +1,6 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
2
  import { lstat, mkdir, readFile, rename, rm, rmdir, writeFile } from "node:fs/promises";
3
- import { dirname } from "node:path";
3
+ import { dirname, resolve, sep } from "node:path";
4
4
  /**
5
5
  * Files Lore writes into an agent's own directories (skills, agent
6
6
  * definitions) and must later remove without touching the customer's edits.
@@ -8,10 +8,25 @@ import { dirname } from "node:path";
8
8
  * rewritten or deleted while its content still matches the recorded digest.
9
9
  */
10
10
  export const digest = (text) => createHash("sha256").update(text).digest("hex");
11
- /** True when no component of the path is a symlink. Lore never follows links into other files. */
12
- export async function regularPath(path) {
13
- let current = path;
14
- while (dirname(current) !== current) {
11
+ /**
12
+ * True when no component of the path inside the home folder is a symlink:
13
+ * Lore never follows links into other files. The home folder and its
14
+ * ancestors are the machine's layout, not files Lore writes, so a link there
15
+ * (macOS /var -> /private/var, /home -> /usr/home) is allowed.
16
+ *
17
+ * `configFolder` is the agent folder Lore writes into (for example a
18
+ * CLAUDE_CONFIG_DIR or COPILOT_HOME outside the home folder). Only the folders
19
+ * above it are treated as machine layout (macOS /tmp -> /private/tmp); the
20
+ * folder itself and everything inside it are still checked.
21
+ */
22
+ export async function regularPath(path, home, configFolder) {
23
+ const root = resolve(home);
24
+ const folder = configFolder === undefined ? undefined : resolve(configFolder);
25
+ const machineLayout = (candidate) => candidate === root || root.startsWith(`${candidate}${sep}`) ||
26
+ // Folders above an agent folder outside home; inside home, the home rule alone applies.
27
+ (folder !== undefined && folder.startsWith(`${candidate}${sep}`) && !candidate.startsWith(`${root}${sep}`));
28
+ let current = resolve(path);
29
+ while (dirname(current) !== current && !machineLayout(current)) {
15
30
  const stat = await lstat(current).catch((error) => {
16
31
  if (error.code !== "ENOENT")
17
32
  throw error;
@@ -23,8 +38,8 @@ export async function regularPath(path) {
23
38
  }
24
39
  return true;
25
40
  }
26
- export async function readOwnedManifest(file, subject) {
27
- if (!await regularPath(file))
41
+ export async function readOwnedManifest(file, subject, home) {
42
+ if (!await regularPath(file, home))
28
43
  throw new Error(`${subject} ownership file is a symlink.`);
29
44
  try {
30
45
  const value = JSON.parse(await readFile(file, "utf8"));
@@ -61,8 +76,8 @@ export async function readIfPresent(file) {
61
76
  * then drop an empty parent directory and the manifest entry. Returns false
62
77
  * when the file was left alone.
63
78
  */
64
- export async function removeOwnedFile(file, manifest, removeEmptyDirectory = true) {
65
- if (!manifest[file] || !await regularPath(file))
79
+ export async function removeOwnedFile(file, manifest, home, removeEmptyDirectory = true, configFolder) {
80
+ if (!manifest[file] || !await regularPath(file, home, configFolder))
66
81
  return false;
67
82
  const existing = await readIfPresent(file);
68
83
  if (existing !== null && digest(existing) !== manifest[file])
@@ -1 +1 @@
1
- {"version":3,"file":"owned-files.js","sourceRoot":"","sources":["../src/owned-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owned-files.js","sourceRoot":"","sources":["../src/owned-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAIhG;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,YAAqB;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE,CAC1C,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;QAC3D,wFAAwF;QACxF,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9G,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;YACvE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,EAAE,cAAc,EAAE;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY;IACjF,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,+BAA+B,CAAC,CAAC;IAC/F,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACrI,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClK,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY;IAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;IAChD,IAAI,CAAC;QAAC,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;YAC7F,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,QAAuB,EAAE,IAAY,EAAE,oBAAoB,GAAG,IAAI,EAAE,YAAqB;IAC3I,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QACf,mEAAmE;QACnE,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;gBAChE,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBAAE,MAAM,KAAK,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAY,EAAE,KAAc,EAAE,WAAmB;IAC9F,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAK,KAAe,CAAC,OAAO,CAAC,CAAC;IAChH,OAAO,GAAG,OAAO,IAAI,IAAI,KAAK,MAAM,MAAM,WAAW,EAAE,CAAC;AAC1D,CAAC"}
@@ -1,17 +1,40 @@
1
1
  import { spawn as nativeSpawn } from "node:child_process";
2
- export declare const spawn: typeof nativeSpawn;
3
2
  export declare const isWindows: () => boolean;
3
+ /**
4
+ * cmd.exe ends a command at a line break, so a batch file (such as the
5
+ * codex.cmd an npm or pnpm global install creates) gets only the first line
6
+ * of a multi-line argument like a handoff brief. For npm and pnpm shims, start
7
+ * the program they wrap without cmd.exe; any other batch file gets the line
8
+ * breaks as spaces, which keeps the text.
9
+ */
10
+ export declare function windowsMultilineLaunch(command: string, args: readonly string[], env?: NodeJS.ProcessEnv): {
11
+ command: string;
12
+ args: string[];
13
+ };
14
+ export declare const spawn: typeof nativeSpawn;
4
15
  export declare const posixQuote: (value: string) => string;
16
+ export { powershellExecutable } from "./windows-permissions.js";
5
17
  export declare const powershellQuote: (value: string) => string;
6
18
  /** Windows CRT quoting, for direct executable invocation (never cmd.exe). */
7
19
  export declare function windowsArgument(value: string): string;
8
20
  export declare function powershellArgs(script: string): string[];
21
+ /**
22
+ * Windows PowerShell at the head of a command line that a host runs through
23
+ * cmd.exe, Git Bash or PowerShell. All three accept an unquoted path with
24
+ * forward slashes; Git Bash drops unquoted backslashes, and a bare name lets
25
+ * cmd.exe start a powershell.exe from the current folder (the repository).
26
+ */
27
+ export declare function hookPowershell(env?: NodeJS.ProcessEnv): string;
28
+ /** A host command line that runs a PowerShell script, safe from every host shell. */
29
+ export declare function windowsScriptCommand(script: string): string;
9
30
  /** Encode script data so cmd, PowerShell and Git Bash cannot expand paths. */
10
31
  export declare function windowsCommand(command: readonly string[], env?: Record<string, string | undefined>): string;
11
32
  export declare function commandText(command: unknown): string;
12
33
  export declare function localCommand(command: readonly string[], env?: Record<string, string | undefined>): string;
13
- export declare function executableCandidates(command: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string[];
14
- export declare function findExecutable(command: string, env?: NodeJS.ProcessEnv): Promise<string | null>;
34
+ export { executableCandidates, system32Executable, systemCommand } from "@lore-co/core/system-command";
35
+ /** A program on PATH, never from the current folder or `exclude` on Windows (see executableDirectories). */
36
+ export declare function findExecutable(command: string, env?: NodeJS.ProcessEnv, exclude?: readonly (string | undefined)[]): Promise<string | null>;
37
+ /** Opens a web page. Anything but http(s) is refused: the OS would hand it to a file, share or app handler. */
15
38
  export declare function openBrowser(url: string): void;
16
39
  export declare function windowsProfiles(home: string): Promise<string[]>;
17
40
  export declare function powershellFunction(name: string, command: readonly string[], home: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOpE,eAAO,MAAM,KAAK,EAAE,OAAO,WAA2F,CAAC;AACvH,eAAO,MAAM,SAAS,eAAqC,CAAC;AAC5D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,WAA0C,CAAC;AACnF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,WAAuC,CAAC;AAErF,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAS/G;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIpD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAK7G;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAc,EAAE,QAAQ,kBAAmB,GAAG,MAAM,EAAE,CAK9G;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW/F;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM7C;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOrE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjG;AAED,uEAAuE;AACvE;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKlD"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOpE,eAAO,MAAM,SAAS,eAAqC,CAAC;AAsB5D;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAOrC;AAQD,eAAO,MAAM,KAAK,EAAE,OAAO,WAA6F,CAAC;AACzH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,WAA0C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,WAAuC,CAAC;AAErF,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG3E;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAU/G;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIpD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAK7G;AAED,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEvG,4GAA4G;AAC5G,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAc,EAAE,OAAO,GAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAU9I;AAED,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAS7C;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOrE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjG;AAED,uEAAuE;AACvE;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKlD"}
package/dist/platform.js CHANGED
@@ -1,15 +1,68 @@
1
1
  import crossSpawn from "cross-spawn";
2
2
  import { access, realpath, rename, stat } from "node:fs/promises";
3
- import { constants } from "node:fs";
4
- import { delimiter, resolve } from "node:path";
3
+ import { constants, existsSync, readFileSync, statSync } from "node:fs";
4
+ import { dirname, extname, resolve } from "node:path";
5
+ import { executableCandidates, executableDirectories, findExecutablePath } from "@lore-co/core/system-command";
6
+ import { powershellExecutable } from "./windows-permissions.js";
5
7
  import { execFile, spawn as nativeSpawn } from "node:child_process";
6
8
  import { setTimeout as delay } from "node:timers/promises";
7
9
  import { promisify } from "node:util";
8
10
  const WINDOWS_RENAME_ATTEMPTS = 40;
9
11
  const WINDOWS_RENAME_DELAY_MS = 250;
10
- export const spawn = process.platform === "win32" ? crossSpawn : nativeSpawn;
11
12
  export const isWindows = () => process.platform === "win32";
13
+ // The script an npm (`"%dp0%\pkg\cli.js" %*`) or pnpm (`"%~dp0\..\pkg\cli.js" %*`) shim runs.
14
+ const SHIM_TARGET = /"%(?:~dp0|dp0%)\\([^"%\r\n]+)"\s+%\*/iu;
15
+ function shimLaunch(file, env) {
16
+ let text;
17
+ try {
18
+ if (statSync(file).size > 64 * 1024)
19
+ return null;
20
+ text = readFileSync(file, "utf8");
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ const relative = SHIM_TARGET.exec(text)?.[1];
26
+ if (!relative)
27
+ return null;
28
+ const target = resolve(dirname(file), relative);
29
+ if (!existsSync(target))
30
+ return null;
31
+ if (extname(target).toLowerCase() === ".exe")
32
+ return [target];
33
+ if (!/^\.[cm]?js$/iu.test(extname(target)))
34
+ return null;
35
+ // The shims prefer a node.exe next to them, then node on PATH.
36
+ const node = existsSync(resolve(dirname(file), "node.exe")) ? resolve(dirname(file), "node.exe") : findExecutablePath("node", { env });
37
+ return node ? [node, target] : null;
38
+ }
39
+ /**
40
+ * cmd.exe ends a command at a line break, so a batch file (such as the
41
+ * codex.cmd an npm or pnpm global install creates) gets only the first line
42
+ * of a multi-line argument like a handoff brief. For npm and pnpm shims, start
43
+ * the program they wrap without cmd.exe; any other batch file gets the line
44
+ * breaks as spaces, which keeps the text.
45
+ */
46
+ export function windowsMultilineLaunch(command, args, env = process.env) {
47
+ if (!isWindows() || !args.some(arg => /[\r\n]/u.test(arg)))
48
+ return { command, args: [...args] };
49
+ const file = findExecutablePath(command, { env });
50
+ if (!file || ![".cmd", ".bat"].includes(extname(file).toLowerCase()))
51
+ return { command, args: [...args] };
52
+ const launch = shimLaunch(file, env);
53
+ if (launch)
54
+ return { command: launch[0], args: [...launch.slice(1), ...args] };
55
+ return { command, args: args.map(arg => arg.replace(/\r\n|[\r\n]/gu, " ")) };
56
+ }
57
+ function windowsSpawn(command, args, options) {
58
+ if (!Array.isArray(args))
59
+ return crossSpawn(command, args, options);
60
+ const launch = windowsMultilineLaunch(command, args, options?.env ?? process.env);
61
+ return crossSpawn(launch.command, launch.args, options);
62
+ }
63
+ export const spawn = process.platform === "win32" ? windowsSpawn : nativeSpawn;
12
64
  export const posixQuote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
65
+ export { powershellExecutable } from "./windows-permissions.js";
13
66
  export const powershellQuote = (value) => `'${value.replaceAll("'", "''")}'`;
14
67
  /** Windows CRT quoting, for direct executable invocation (never cmd.exe). */
15
68
  export function windowsArgument(value) {
@@ -20,6 +73,20 @@ export function windowsArgument(value) {
20
73
  export function powershellArgs(script) {
21
74
  return ["-NoLogo", "-NoProfile", "-NonInteractive", "-EncodedCommand", Buffer.from(`$ProgressPreference = 'SilentlyContinue'; ${script}`, "utf16le").toString("base64")];
22
75
  }
76
+ /**
77
+ * Windows PowerShell at the head of a command line that a host runs through
78
+ * cmd.exe, Git Bash or PowerShell. All three accept an unquoted path with
79
+ * forward slashes; Git Bash drops unquoted backslashes, and a bare name lets
80
+ * cmd.exe start a powershell.exe from the current folder (the repository).
81
+ */
82
+ export function hookPowershell(env = process.env) {
83
+ const path = powershellExecutable(env).replaceAll("\\", "/");
84
+ return /^[A-Za-z]:[\w./-]+$/u.test(path) ? path : "powershell.exe";
85
+ }
86
+ /** A host command line that runs a PowerShell script, safe from every host shell. */
87
+ export function windowsScriptCommand(script) {
88
+ return [hookPowershell(), ...powershellArgs(script)].join(" ");
89
+ }
23
90
  /** Encode script data so cmd, PowerShell and Git Bash cannot expand paths. */
24
91
  export function windowsCommand(command, env = {}) {
25
92
  const setup = Object.entries(env).map(([key, value]) => {
@@ -29,8 +96,9 @@ export function windowsCommand(command, env = {}) {
29
96
  }).join(" ");
30
97
  // ProcessStartInfo inherits the original standard handles, preserving hook
31
98
  // JSON and UTF-8 output without a PowerShell text pipeline or a second shell.
32
- const script = `${setup} $s = New-Object System.Diagnostics.ProcessStartInfo; $s.UseShellExecute = $false; $s.FileName = ${powershellQuote(command[0])}; $s.Arguments = ${powershellQuote(command.slice(1).map(windowsArgument).join(" "))}; $p = [System.Diagnostics.Process]::Start($s); $p.WaitForExit(); exit $p.ExitCode`;
33
- return ["powershell.exe", ...powershellArgs(script)].join(" ");
99
+ // ::new() loads no module; New-Object stalled 25-40 s without PSModulePath.
100
+ const script = `${setup} $s = [System.Diagnostics.ProcessStartInfo]::new(); $s.UseShellExecute = $false; $s.FileName = ${powershellQuote(command[0])}; $s.Arguments = ${powershellQuote(command.slice(1).map(windowsArgument).join(" "))}; $p = [System.Diagnostics.Process]::Start($s); $p.WaitForExit(); exit $p.ExitCode`;
101
+ return windowsScriptCommand(script);
34
102
  }
35
103
  export function commandText(command) {
36
104
  if (typeof command !== "string")
@@ -45,19 +113,13 @@ export function localCommand(command, env = {}) {
45
113
  const set = Object.entries(env).filter(([, value]) => value !== undefined).map(([key, value]) => `${key}=${posixQuote(value)}`);
46
114
  return ["env", ...unset, ...set, ...command.map(posixQuote)].join(" ");
47
115
  }
48
- export function executableCandidates(command, env = process.env, platform = process.platform) {
49
- if (platform !== "win32")
50
- return [command];
51
- const extensions = (env.PATHEXT || ".COM;.EXE;.BAT;.CMD").split(";").filter(ext => /^\.[a-z0-9]+$/iu.test(ext));
52
- return extensions.some(ext => command.toLowerCase().endsWith(ext.toLowerCase()))
53
- ? [command] : extensions.map(ext => command + ext.toLowerCase());
54
- }
55
- export async function findExecutable(command, env = process.env) {
56
- const path = Object.entries(env).find(([key]) => key.toUpperCase() === "PATH")?.[1] ?? "";
57
- const directories = /[\\/]/u.test(command) ? [""] : path.split(delimiter).filter(Boolean);
116
+ export { executableCandidates, system32Executable, systemCommand } from "@lore-co/core/system-command";
117
+ /** A program on PATH, never from the current folder or `exclude` on Windows (see executableDirectories). */
118
+ export async function findExecutable(command, env = process.env, exclude = []) {
119
+ const directories = /[\\/]/u.test(command) ? [""] : executableDirectories({ env, exclude });
58
120
  for (const directory of directories)
59
121
  for (const candidate of executableCandidates(command, env)) {
60
- const file = resolve(directory.replace(/^"|"$/gu, ""), candidate);
122
+ const file = resolve(directory, candidate);
61
123
  try {
62
124
  await access(file, isWindows() ? constants.F_OK : constants.X_OK);
63
125
  if ((await stat(file)).isFile())
@@ -67,16 +129,21 @@ export async function findExecutable(command, env = process.env) {
67
129
  }
68
130
  return null;
69
131
  }
132
+ /** Opens a web page. Anything but http(s) is refused: the OS would hand it to a file, share or app handler. */
70
133
  export function openBrowser(url) {
134
+ // URL.parse needs Node 22.1; the CLI supports 22.0.
135
+ const protocol = URL.canParse(url) ? new URL(url).protocol : "";
136
+ if (!["http:", "https:"].includes(protocol))
137
+ throw new Error("Lore only opens http and https links in a browser");
71
138
  const child = isWindows()
72
- ? spawn("powershell.exe", powershellArgs(`Start-Process -FilePath ${powershellQuote(url)}`), { stdio: "ignore", windowsHide: true })
139
+ ? spawn(powershellExecutable(), powershellArgs(`Start-Process -FilePath ${powershellQuote(url)}`), { stdio: "ignore", windowsHide: true })
73
140
  : spawn(process.platform === "darwin" ? "open" : "xdg-open", [url], { detached: true, stdio: "ignore" });
74
141
  child.once("error", () => { });
75
142
  child.unref();
76
143
  }
77
144
  export async function windowsProfiles(home) {
78
145
  // Ask PowerShell for Documents so redirected/OneDrive folders work too.
79
- const { stdout } = await promisify(execFile)("powershell.exe", powershellArgs("[Console]::OutputEncoding = New-Object System.Text.UTF8Encoding; @([Environment]::GetFolderPath('UserProfile'), [Environment]::GetFolderPath('MyDocuments')) | ConvertTo-Json -Compress"), { encoding: "utf8", windowsHide: true });
146
+ const { stdout } = await promisify(execFile)(powershellExecutable(), powershellArgs("[Console]::OutputEncoding = New-Object System.Text.UTF8Encoding; @([Environment]::GetFolderPath('UserProfile'), [Environment]::GetFolderPath('MyDocuments')) | ConvertTo-Json -Compress"), { encoding: "utf8", windowsHide: true });
80
147
  const [profile, redirectedDocuments] = JSON.parse(stdout);
81
148
  const documents = profile && resolve(profile).toLowerCase() === resolve(home).toLowerCase()
82
149
  ? redirectedDocuments || resolve(home, "Documents") : resolve(home, "Documents");
@@ -89,7 +156,7 @@ export function powershellFunction(name, command, home) {
89
156
  }
90
157
  export async function openWindowsTerminal(command, home) {
91
158
  const launch = windowsCommand(command, { LORE_HOME: home, BUN_OPTIONS: undefined, BUN_BE_BUN: undefined });
92
- const child = spawn("powershell.exe", powershellArgs(`Start-Process powershell.exe -ArgumentList ${powershellQuote(launch.slice("powershell.exe ".length))} -WorkingDirectory ${powershellQuote(home)}`), { stdio: "ignore", windowsHide: true });
159
+ const child = spawn(powershellExecutable(), powershellArgs(`Start-Process ${powershellQuote(powershellExecutable())} -ArgumentList ${powershellQuote(launch.slice(launch.indexOf(" ") + 1))} -WorkingDirectory ${powershellQuote(home)}`), { stdio: "ignore", windowsHide: true });
93
160
  await new Promise((done, reject) => {
94
161
  child.once("error", reject);
95
162
  child.once("exit", code => code === 0 ? done() : reject(new Error("Could not open the recovery terminal")));
@@ -119,7 +186,7 @@ export async function renameWindowsBinary(source, destination) {
119
186
  }
120
187
  export function removeAfterExit(path) {
121
188
  const script = `Wait-Process -Id ${process.pid} -ErrorAction SilentlyContinue; Remove-Item -LiteralPath ${powershellQuote(path)} -Force -ErrorAction SilentlyContinue`;
122
- const child = spawn("powershell.exe", powershellArgs(script), { detached: true, stdio: "ignore", windowsHide: true });
189
+ const child = spawn(powershellExecutable(), powershellArgs(script), { detached: true, stdio: "ignore", windowsHide: true });
123
190
  child.once("error", () => { });
124
191
  child.unref();
125
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC,MAAM,CAAC,MAAM,KAAK,GAAuB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAgC,CAAC,CAAC,CAAC,WAAW,CAAC;AACvH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAErF,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,6CAA6C,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3K,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,OAA0B,EAAE,MAA0C,EAAE;IACrG,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACjG,OAAO,QAAQ,GAAG,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;IACpF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,GAAG,KAAK,oGAAoG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,oBAAoB,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oFAAoF,CAAC;IAChU,OAAO,CAAC,gBAAgB,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,uDAAuD,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA0B,EAAE,MAA0C,EAAE;IACnG,IAAI,SAAS,EAAE;QAAE,OAAO,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,KAAM,CAAC,EAAE,CAAC,CAAC;IACjI,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ;IAClG,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChH,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1F,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1F,KAAK,MAAM,SAAS,IAAI,WAAW;QAAE,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;oBAAE,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,KAAK,GAAG,SAAS,EAAE;QACvB,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,2BAA2B,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACpI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,wEAAwE;IACxE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,yLAAyL,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnT,MAAM,CAAC,OAAO,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAa,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QACzF,CAAC,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,OAA0B,EAAE,IAAY;IACvF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACrF,OAAO,mBAAmB,IAAI,mHAAmH,eAAe,CAAC,IAAI,CAAC,0DAA0D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,6GAA6G,CAAC;AACtX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAA0B,EAAE,IAAY;IAChF,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,8CAA8C,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,sBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAClP,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,WAAmB;IAC3E,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IACE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;gBAClD,OAAO,IAAI,uBAAuB,GAAG,CAAC;gBACtC,MAAM,KAAK,CAAC;YACd,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,oBAAoB,OAAO,CAAC,GAAG,4DAA4D,eAAe,CAAC,IAAI,CAAC,uCAAuC,CAAC;IACvK,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACtH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/dist/pty.d.ts CHANGED
@@ -16,7 +16,8 @@ export interface OpenPtyOptions {
16
16
  }
17
17
  /**
18
18
  * Opens the command inside a pseudo-terminal. Prefers node-pty when it is
19
- * installed (full resize support); otherwise falls back to the python3 shim.
19
+ * installed next to Lore (full resize support); otherwise falls back to the
20
+ * python3 shim.
20
21
  */
21
22
  export declare function openPty(command: string, args: string[], options?: OpenPtyOptions): Promise<PtyProcess>;
22
23
  //# sourceMappingURL=pty.d.ts.map
package/dist/pty.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAqKD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../src/pty.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AA2KD;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
package/dist/pty.js CHANGED
@@ -1,13 +1,21 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { createRequire } from "node:module";
3
+ import { IS_STANDALONE_BINARY } from "./version.js";
4
+ // Not a literal require, so `bun build --compile` does not try to bundle it.
5
+ const NODE_PTY = "node-pty";
2
6
  /**
3
- * The Function-constructor import keeps TypeScript and bundlers (including
4
- * `bun build --compile`) from resolving node-pty statically: it is not a
5
- * dependency of the CLI, only an optional enhancement when present.
7
+ * node-pty is not a dependency of the CLI, only an optional enhancement when it
8
+ * is installed alongside Lore. Resolve it from Lore's own install location,
9
+ * never the working directory: that is the user's project, and a node-pty it
10
+ * ships would run inside Lore. The standalone binary never loads it: it cannot
11
+ * load native addons, and Bun resolves a runtime bare import against the
12
+ * working directory and its parents.
6
13
  */
7
14
  async function loadNodePty() {
15
+ if (IS_STANDALONE_BINARY)
16
+ return null;
8
17
  try {
9
- const dynamicImport = new Function("specifier", "return import(specifier)");
10
- const module = (await dynamicImport("node-pty"));
18
+ const module = createRequire(import.meta.url)(NODE_PTY);
11
19
  return typeof module.spawn === "function"
12
20
  ? module
13
21
  : null;
@@ -69,7 +77,11 @@ sys.exit(os.waitstatus_to_exitcode(status))
69
77
  * propagate terminal resizes: the inner terminal keeps its initial size.
70
78
  */
71
79
  function pythonFallback(command, args, options) {
72
- const child = spawn("python3", ["-c", PYTHON_PTY_SHIM, command, ...args], {
80
+ const child = spawn("python3",
81
+ // -I (isolated mode): the cwd is the user's project, so keep it and its
82
+ // files (a committed pty.py, struct.py, ...) off sys.path, and ignore
83
+ // PYTHON* variables and user site-packages. The command still runs there.
84
+ ["-I", "-c", PYTHON_PTY_SHIM, command, ...args], {
73
85
  cwd: options.cwd,
74
86
  env: {
75
87
  ...(options.env ?? process.env),
@@ -140,7 +152,8 @@ function pythonFallback(command, args, options) {
140
152
  }
141
153
  /**
142
154
  * Opens the command inside a pseudo-terminal. Prefers node-pty when it is
143
- * installed (full resize support); otherwise falls back to the python3 shim.
155
+ * installed next to Lore (full resize support); otherwise falls back to the
156
+ * python3 shim.
144
157
  */
145
158
  export async function openPty(command, args, options = {}) {
146
159
  if (process.platform === "win32") {