@entelligentsia/forgecli 0.9.1 → 0.9.3

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 (121) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/CHANGELOG-pi.md +14 -19
  3. package/dist/bin/update-cli.js +1 -1
  4. package/dist/bin/update-cli.js.map +1 -1
  5. package/dist/extensions/forgecli/forge-update-command.d.ts +3 -1
  6. package/dist/extensions/forgecli/forge-update-command.js +48 -18
  7. package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
  8. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
  9. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js +6 -1
  10. package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
  11. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.d.ts.map +1 -1
  12. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js +2 -0
  13. package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js.map +1 -1
  14. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  15. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +15 -0
  16. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  17. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +15 -0
  18. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  19. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +80 -0
  20. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  21. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +20 -0
  22. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  23. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  24. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +14 -19
  25. package/node_modules/@earendil-works/pi-coding-agent/dist/cli.d.ts.map +1 -1
  26. package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js +3 -3
  27. package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js.map +1 -1
  28. package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
  29. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +35 -27
  30. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
  31. package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +17 -3
  32. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  33. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +4 -8
  34. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  35. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  36. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +3 -2
  37. package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  38. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  39. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +1 -0
  40. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  41. package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
  42. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +5 -1
  43. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
  44. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  45. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js +14 -6
  46. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js.map +1 -1
  47. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  48. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +13 -6
  49. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  50. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/dark.json +5 -4
  51. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/light.json +5 -4
  52. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +21 -2
  53. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  54. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +82 -40
  55. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  56. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
  57. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +22 -5
  58. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
  59. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/child-process.d.ts +5 -8
  60. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/child-process.d.ts.map +1 -1
  61. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/child-process.js +8 -59
  62. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/child-process.js.map +1 -1
  63. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.d.ts.map +1 -1
  64. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js +6 -1
  65. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js.map +1 -1
  66. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.d.ts +3 -0
  67. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.d.ts.map +1 -0
  68. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.js +77 -0
  69. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.js.map +1 -0
  70. package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +8 -0
  71. package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +2 -0
  72. package/node_modules/@earendil-works/pi-coding-agent/docs/quickstart.md +20 -0
  73. package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +2 -0
  74. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  75. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  76. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  77. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/README.md +3 -0
  78. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts +41 -19
  79. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  80. package/node_modules/@earendil-works/pi-coding-agent/package.json +6 -4
  81. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
  82. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +3 -4
  83. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
  84. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  85. package/node_modules/cross-spawn/LICENSE +21 -0
  86. package/node_modules/cross-spawn/README.md +89 -0
  87. package/node_modules/cross-spawn/index.js +39 -0
  88. package/node_modules/cross-spawn/lib/enoent.js +59 -0
  89. package/node_modules/cross-spawn/lib/parse.js +91 -0
  90. package/node_modules/cross-spawn/lib/util/escape.js +47 -0
  91. package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  92. package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  93. package/node_modules/cross-spawn/package.json +73 -0
  94. package/node_modules/isexe/.npmignore +2 -0
  95. package/node_modules/isexe/LICENSE +15 -0
  96. package/node_modules/isexe/README.md +51 -0
  97. package/node_modules/isexe/index.js +57 -0
  98. package/node_modules/isexe/mode.js +41 -0
  99. package/node_modules/isexe/package.json +31 -0
  100. package/node_modules/isexe/test/basic.js +221 -0
  101. package/node_modules/isexe/windows.js +42 -0
  102. package/node_modules/path-key/index.d.ts +40 -0
  103. package/node_modules/path-key/index.js +16 -0
  104. package/node_modules/path-key/license +9 -0
  105. package/node_modules/path-key/package.json +39 -0
  106. package/node_modules/path-key/readme.md +61 -0
  107. package/node_modules/shebang-command/index.js +19 -0
  108. package/node_modules/shebang-command/license +9 -0
  109. package/node_modules/shebang-command/package.json +34 -0
  110. package/node_modules/shebang-command/readme.md +34 -0
  111. package/node_modules/shebang-regex/index.d.ts +22 -0
  112. package/node_modules/shebang-regex/index.js +2 -0
  113. package/node_modules/shebang-regex/license +9 -0
  114. package/node_modules/shebang-regex/package.json +35 -0
  115. package/node_modules/shebang-regex/readme.md +33 -0
  116. package/node_modules/which/LICENSE +15 -0
  117. package/node_modules/which/README.md +54 -0
  118. package/node_modules/which/bin/node-which +52 -0
  119. package/node_modules/which/package.json +43 -0
  120. package/node_modules/which/which.js +125 -0
  121. package/package.json +6 -6
@@ -2925,7 +2925,7 @@ export class InteractiveMode {
2925
2925
  }
2926
2926
  this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
2927
2927
  }
2928
- openExternalEditor() {
2928
+ async openExternalEditor() {
2929
2929
  // Determine editor (respect $VISUAL, then $EDITOR)
2930
2930
  const editorCmd = process.env.VISUAL || process.env.EDITOR;
2931
2931
  if (!editorCmd) {
@@ -2941,13 +2941,20 @@ export class InteractiveMode {
2941
2941
  this.ui.stop();
2942
2942
  // Split by space to support editor arguments (e.g., "code --wait")
2943
2943
  const [editor, ...editorArgs] = editorCmd.split(" ");
2944
- // Spawn editor synchronously with inherited stdio for interactive editing
2945
- const result = spawnSync(editor, [...editorArgs, tmpFile], {
2946
- stdio: "inherit",
2947
- shell: process.platform === "win32",
2944
+ process.stdout.write(`Launching external editor: ${editorCmd}\nPi will resume when the editor exits.\n`);
2945
+ // Do not use spawnSync here. On Windows, synchronous child_process calls can keep
2946
+ // Node/libuv's console input read active after ui.stop() pauses stdin, racing
2947
+ // vim/nvim for the console input buffer until Ctrl+C cancels the pending read.
2948
+ const status = await new Promise((resolve) => {
2949
+ const child = spawn(editor, [...editorArgs, tmpFile], {
2950
+ stdio: "inherit",
2951
+ shell: process.platform === "win32",
2952
+ });
2953
+ child.on("error", () => resolve(null));
2954
+ child.on("close", (code) => resolve(code));
2948
2955
  });
2949
2956
  // On successful exit (status 0), replace editor content
2950
- if (result.status === 0) {
2957
+ if (status === 0) {
2951
2958
  const newContent = fs.readFileSync(tmpFile, "utf-8").replace(/\n$/, "");
2952
2959
  this.editor.setText(newContent);
2953
2960
  }