@mariozechner/pi-coding-agent 0.46.0 → 0.47.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 (90) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/core/agent-session.d.ts +11 -3
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +81 -14
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  7. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  8. package/dist/core/export-html/ansi-to-html.js +249 -0
  9. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  10. package/dist/core/export-html/index.d.ts +17 -0
  11. package/dist/core/export-html/index.d.ts.map +1 -1
  12. package/dist/core/export-html/index.js +52 -23
  13. package/dist/core/export-html/index.js.map +1 -1
  14. package/dist/core/export-html/template.css +0 -33
  15. package/dist/core/export-html/template.js +171 -18
  16. package/dist/core/export-html/tool-renderer.d.ts +35 -0
  17. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  18. package/dist/core/export-html/tool-renderer.js +57 -0
  19. package/dist/core/export-html/tool-renderer.js.map +1 -0
  20. package/dist/core/extensions/index.d.ts +1 -1
  21. package/dist/core/extensions/index.d.ts.map +1 -1
  22. package/dist/core/extensions/index.js.map +1 -1
  23. package/dist/core/extensions/runner.d.ts +5 -1
  24. package/dist/core/extensions/runner.d.ts.map +1 -1
  25. package/dist/core/extensions/runner.js +41 -0
  26. package/dist/core/extensions/runner.js.map +1 -1
  27. package/dist/core/extensions/types.d.ts +24 -1
  28. package/dist/core/extensions/types.d.ts.map +1 -1
  29. package/dist/core/extensions/types.js.map +1 -1
  30. package/dist/core/prompt-templates.d.ts.map +1 -1
  31. package/dist/core/prompt-templates.js +4 -27
  32. package/dist/core/prompt-templates.js.map +1 -1
  33. package/dist/core/skills.d.ts.map +1 -1
  34. package/dist/core/skills.js +6 -37
  35. package/dist/core/skills.js.map +1 -1
  36. package/dist/core/system-prompt.d.ts.map +1 -1
  37. package/dist/core/system-prompt.js +19 -14
  38. package/dist/core/system-prompt.js.map +1 -1
  39. package/dist/core/tools/path-utils.d.ts +1 -0
  40. package/dist/core/tools/path-utils.d.ts.map +1 -1
  41. package/dist/core/tools/path-utils.js +7 -0
  42. package/dist/core/tools/path-utils.js.map +1 -1
  43. package/dist/core/tools/read.d.ts.map +1 -1
  44. package/dist/core/tools/read.js +13 -2
  45. package/dist/core/tools/read.js.map +1 -1
  46. package/dist/index.d.ts +2 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/main.d.ts.map +1 -1
  51. package/dist/main.js +32 -0
  52. package/dist/main.js.map +1 -1
  53. package/dist/modes/interactive/components/custom-editor.d.ts +2 -2
  54. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  55. package/dist/modes/interactive/components/custom-editor.js +2 -2
  56. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  57. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  58. package/dist/modes/interactive/components/extension-editor.js +1 -1
  59. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  60. package/dist/modes/interactive/components/tree-selector.d.ts +7 -0
  61. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  62. package/dist/modes/interactive/components/tree-selector.js +140 -4
  63. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  64. package/dist/modes/interactive/interactive-mode.d.ts +0 -1
  65. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  66. package/dist/modes/interactive/interactive-mode.js +4 -29
  67. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  68. package/dist/modes/print-mode.d.ts.map +1 -1
  69. package/dist/modes/print-mode.js +1 -1
  70. package/dist/modes/print-mode.js.map +1 -1
  71. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  72. package/dist/modes/rpc/rpc-mode.js +1 -0
  73. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  74. package/dist/utils/frontmatter.d.ts +8 -0
  75. package/dist/utils/frontmatter.d.ts.map +1 -0
  76. package/dist/utils/frontmatter.js +26 -0
  77. package/dist/utils/frontmatter.js.map +1 -0
  78. package/docs/extensions.md +51 -0
  79. package/docs/rpc.md +15 -15
  80. package/docs/tui.md +26 -0
  81. package/examples/extensions/input-transform.ts +43 -0
  82. package/examples/extensions/modal-editor.ts +1 -1
  83. package/examples/extensions/overlay-test.ts +8 -3
  84. package/examples/extensions/question.ts +1 -1
  85. package/examples/extensions/questionnaire.ts +1 -1
  86. package/examples/extensions/rainbow-editor.ts +1 -8
  87. package/examples/extensions/subagent/agents.ts +3 -32
  88. package/examples/extensions/with-deps/package-lock.json +2 -2
  89. package/examples/extensions/with-deps/package.json +1 -1
  90. package/package.json +6 -5
@@ -136,7 +136,7 @@ export class InteractiveMode {
136
136
  this.statusContainer = new Container();
137
137
  this.widgetContainer = new Container();
138
138
  this.keybindings = KeybindingsManager.create();
139
- this.defaultEditor = new CustomEditor(getEditorTheme(), this.keybindings);
139
+ this.defaultEditor = new CustomEditor(this.ui, getEditorTheme(), this.keybindings);
140
140
  this.editor = this.defaultEditor;
141
141
  this.editorContainer = new Container();
142
142
  this.editorContainer.addChild(this.editor);
@@ -1241,19 +1241,6 @@ export class InteractiveMode {
1241
1241
  await this.shutdown();
1242
1242
  return;
1243
1243
  }
1244
- // Handle skill commands (/skill:name [args])
1245
- if (text.startsWith("/skill:")) {
1246
- const spaceIndex = text.indexOf(" ");
1247
- const commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);
1248
- const args = spaceIndex === -1 ? "" : text.slice(spaceIndex + 1).trim();
1249
- const skillPath = this.skillCommands.get(commandName);
1250
- if (skillPath) {
1251
- this.editor.addToHistory?.(text);
1252
- this.editor.setText("");
1253
- await this.handleSkillCommand(skillPath, args);
1254
- return;
1255
- }
1256
- }
1257
1244
  // Handle bash command (! for normal, !! for excluded from context)
1258
1245
  if (text.startsWith("!")) {
1259
1246
  const isExcluded = text.startsWith("!!");
@@ -1750,6 +1737,9 @@ export class InteractiveMode {
1750
1737
  type: "session_shutdown",
1751
1738
  });
1752
1739
  }
1740
+ // Wait for any pending renders to complete
1741
+ // requestRender() uses process.nextTick(), so we wait one tick
1742
+ await new Promise((resolve) => process.nextTick(resolve));
1753
1743
  this.stop();
1754
1744
  process.exit(0);
1755
1745
  }
@@ -2823,21 +2813,6 @@ export class InteractiveMode {
2823
2813
  this.chatContainer.addChild(new Text(info, 1, 0));
2824
2814
  this.ui.requestRender();
2825
2815
  }
2826
- async handleSkillCommand(skillPath, args) {
2827
- try {
2828
- const content = fs.readFileSync(skillPath, "utf-8");
2829
- // Strip YAML frontmatter if present
2830
- const body = content.replace(/^---\n[\s\S]*?\n---\n/, "").trim();
2831
- const skillDir = path.dirname(skillPath);
2832
- const header = `Skill location: ${skillPath}\nReferences are relative to ${skillDir}.`;
2833
- const skillMessage = `${header}\n\n${body}`;
2834
- const message = args ? `${skillMessage}\n\n---\n\nUser: ${args}` : skillMessage;
2835
- await this.session.prompt(message);
2836
- }
2837
- catch (err) {
2838
- this.showError(`Failed to load skill: ${err instanceof Error ? err.message : String(err)}`);
2839
- }
2840
- }
2841
2816
  handleChangelogCommand() {
2842
2817
  const changelogPath = getChangelogPath();
2843
2818
  const allEntries = parseChangelog(changelogPath);