@oh-my-pi/pi-coding-agent 16.0.9 → 16.0.11

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 (110) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/cli.js +3402 -3443
  3. package/dist/types/advisor/index.d.ts +1 -0
  4. package/dist/types/advisor/transcript-recorder.d.ts +52 -0
  5. package/dist/types/collab/host.d.ts +2 -2
  6. package/dist/types/collab/protocol.d.ts +4 -5
  7. package/dist/types/commit/agentic/agent.d.ts +1 -1
  8. package/dist/types/config/model-resolver.d.ts +11 -2
  9. package/dist/types/config/settings-schema.d.ts +12 -6
  10. package/dist/types/edit/file-snapshot-store.d.ts +1 -1
  11. package/dist/types/extensibility/extensions/types.d.ts +7 -0
  12. package/dist/types/modes/components/agent-hub.d.ts +6 -1
  13. package/dist/types/modes/components/agent-transcript-viewer.d.ts +39 -0
  14. package/dist/types/modes/components/chat-transcript-builder.d.ts +42 -0
  15. package/dist/types/modes/controllers/command-controller.d.ts +3 -2
  16. package/dist/types/modes/interactive-mode.d.ts +2 -1
  17. package/dist/types/modes/types.d.ts +2 -1
  18. package/dist/types/registry/agent-registry.d.ts +10 -3
  19. package/dist/types/session/agent-session.d.ts +13 -0
  20. package/dist/types/session/compact-modes.d.ts +60 -0
  21. package/dist/types/session/streaming-output.d.ts +0 -2
  22. package/dist/types/slash-commands/builtin-registry.d.ts +1 -1
  23. package/dist/types/slash-commands/helpers/collab-qrcode.d.ts +13 -0
  24. package/dist/types/tools/__tests__/json-tree.test.d.ts +1 -0
  25. package/dist/types/tools/index.d.ts +9 -1
  26. package/dist/types/utils/image-loading.d.ts +12 -0
  27. package/dist/types/utils/qrcode.d.ts +48 -0
  28. package/package.json +12 -12
  29. package/src/advisor/index.ts +1 -0
  30. package/src/advisor/transcript-recorder.ts +136 -0
  31. package/src/cli/args.ts +7 -1
  32. package/src/cli/stats-cli.ts +2 -11
  33. package/src/collab/host.ts +29 -17
  34. package/src/collab/protocol.ts +48 -15
  35. package/src/commit/agentic/agent.ts +2 -1
  36. package/src/commit/agentic/tools/git-file-diff.ts +2 -2
  37. package/src/commit/changelog/index.ts +1 -1
  38. package/src/commit/map-reduce/map-phase.ts +1 -1
  39. package/src/commit/map-reduce/utils.ts +1 -1
  40. package/src/config/config-file.ts +1 -1
  41. package/src/config/keybindings.ts +2 -2
  42. package/src/config/model-registry.ts +16 -4
  43. package/src/config/model-resolver.ts +193 -35
  44. package/src/config/settings-schema.ts +14 -7
  45. package/src/config/settings.ts +3 -9
  46. package/src/edit/file-snapshot-store.ts +1 -1
  47. package/src/edit/renderer.ts +7 -7
  48. package/src/eval/js/tool-bridge.ts +3 -2
  49. package/src/eval/py/prelude.py +3 -2
  50. package/src/export/html/tool-views.generated.js +28 -28
  51. package/src/extensibility/extensions/types.ts +7 -0
  52. package/src/hindsight/mental-models.ts +1 -1
  53. package/src/internal-urls/docs-index.generated.txt +1 -1
  54. package/src/internal-urls/history-protocol.ts +8 -3
  55. package/src/irc/bus.ts +8 -0
  56. package/src/lsp/index.ts +2 -2
  57. package/src/main.ts +6 -3
  58. package/src/modes/acp/acp-agent.ts +63 -0
  59. package/src/modes/components/agent-hub.ts +97 -920
  60. package/src/modes/components/agent-transcript-viewer.ts +461 -0
  61. package/src/modes/components/chat-transcript-builder.ts +462 -0
  62. package/src/modes/components/diff.ts +12 -35
  63. package/src/modes/components/oauth-selector.ts +31 -2
  64. package/src/modes/controllers/command-controller.ts +12 -2
  65. package/src/modes/controllers/event-controller.ts +1 -1
  66. package/src/modes/controllers/input-controller.ts +8 -1
  67. package/src/modes/controllers/selector-controller.ts +4 -1
  68. package/src/modes/interactive-mode.ts +4 -2
  69. package/src/modes/types.ts +2 -1
  70. package/src/prompts/tools/inspect-image.md +1 -1
  71. package/src/prompts/tools/read.md +1 -1
  72. package/src/registry/agent-registry.ts +13 -4
  73. package/src/sdk.ts +27 -8
  74. package/src/session/agent-session.ts +185 -17
  75. package/src/session/compact-modes.ts +105 -0
  76. package/src/session/session-dump-format.ts +1 -1
  77. package/src/session/session-history-format.ts +1 -1
  78. package/src/session/streaming-output.ts +5 -5
  79. package/src/slash-commands/builtin-registry.ts +45 -15
  80. package/src/slash-commands/helpers/collab-qrcode.ts +28 -0
  81. package/src/task/executor.ts +1 -1
  82. package/src/task/output-manager.ts +5 -0
  83. package/src/thinking.ts +25 -5
  84. package/src/tools/__tests__/json-tree.test.ts +35 -0
  85. package/src/tools/approval.ts +1 -1
  86. package/src/tools/bash.ts +0 -1
  87. package/src/tools/browser.ts +0 -1
  88. package/src/tools/eval.ts +1 -1
  89. package/src/tools/gh.ts +1 -1
  90. package/src/tools/index.ts +10 -1
  91. package/src/tools/inspect-image.ts +72 -9
  92. package/src/tools/irc.ts +1 -1
  93. package/src/tools/json-tree.ts +22 -5
  94. package/src/tools/read.ts +5 -6
  95. package/src/utils/file-mentions.ts +5 -2
  96. package/src/utils/image-loading.ts +58 -0
  97. package/src/utils/qrcode.ts +535 -0
  98. package/src/web/scrapers/firefox-addons.ts +1 -1
  99. package/src/web/scrapers/github.ts +1 -1
  100. package/src/web/scrapers/go-pkg.ts +2 -2
  101. package/src/web/scrapers/metacpan.ts +2 -2
  102. package/src/web/scrapers/nvd.ts +2 -2
  103. package/src/web/scrapers/ollama.ts +1 -1
  104. package/src/web/scrapers/opencorporates.ts +1 -1
  105. package/src/web/scrapers/pub-dev.ts +1 -1
  106. package/src/web/scrapers/repology.ts +1 -1
  107. package/src/web/scrapers/sourcegraph.ts +1 -1
  108. package/src/web/scrapers/terraform.ts +6 -6
  109. package/src/web/scrapers/wikidata.ts +2 -2
  110. package/src/workspace-tree.ts +1 -1
@@ -109,7 +109,7 @@ export const handlePubDev: SpecialHandler = async (url: string, timeout: number,
109
109
  md += "\n";
110
110
  }
111
111
  if (deps.length > 20) {
112
- md += `\n*...and ${deps.length - 20} more*\n`;
112
+ md += `\n[…${deps.length - 20} dependencies elided…]\n`;
113
113
  }
114
114
  md += "\n";
115
115
  }
@@ -239,7 +239,7 @@ export const handleRepology: SpecialHandler = async (
239
239
  }
240
240
 
241
241
  if (packages.length > 15) {
242
- md += `\n*...and ${packages.length - 15} more repositories*\n`;
242
+ md += `\n[…${packages.length - 15} repositories elided…]\n`;
243
243
  }
244
244
 
245
245
  md += `\n---\n\n[View on Repology](${url})\n`;
@@ -294,7 +294,7 @@ async function renderSearch(
294
294
  }
295
295
 
296
296
  if (results.length > maxResults) {
297
- md += `... and ${results.length - maxResults} more results\n`;
297
+ md += `[…${results.length - maxResults} results elided…]\n`;
298
298
  }
299
299
 
300
300
  return { content: md, ok: true };
@@ -150,7 +150,7 @@ async function handleModuleUrl(
150
150
  md += `| ${input.name} | \`${type}\` | ${required} | ${desc} |\n`;
151
151
  }
152
152
  if (inputs.length > 30) {
153
- md += `\n*... and ${inputs.length - 30} more inputs*\n`;
153
+ md += `\n[…${inputs.length - 30} inputs elided…]\n`;
154
154
  }
155
155
  md += "\n";
156
156
  }
@@ -165,7 +165,7 @@ async function handleModuleUrl(
165
165
  md += "\n";
166
166
  }
167
167
  if (outputs.length > 20) {
168
- md += `\n*... and ${outputs.length - 20} more outputs*\n`;
168
+ md += `\n[…${outputs.length - 20} outputs elided…]\n`;
169
169
  }
170
170
  md += "\n";
171
171
  }
@@ -180,7 +180,7 @@ async function handleModuleUrl(
180
180
  md += "\n";
181
181
  }
182
182
  if (deps.length > 15) {
183
- md += `\n*... and ${deps.length - 15} more dependencies*\n`;
183
+ md += `\n[…${deps.length - 15} dependencies elided…]\n`;
184
184
  }
185
185
  md += "\n";
186
186
  }
@@ -193,7 +193,7 @@ async function handleModuleUrl(
193
193
  md += `- \`${res.type}\` (${res.name})\n`;
194
194
  }
195
195
  if (resources.length > 20) {
196
- md += `\n*... and ${resources.length - 20} more resources*\n`;
196
+ md += `\n[…${resources.length - 20} resources elided…]\n`;
197
197
  }
198
198
  md += "\n";
199
199
  }
@@ -205,7 +205,7 @@ async function handleModuleUrl(
205
205
  md += `- **${sub.name}**: \`${sub.path}\`\n`;
206
206
  }
207
207
  if (mod.submodules.length > 10) {
208
- md += `\n*... and ${mod.submodules.length - 10} more submodules*\n`;
208
+ md += `\n[…${mod.submodules.length - 10} submodules elided…]\n`;
209
209
  }
210
210
  }
211
211
 
@@ -267,7 +267,7 @@ async function handleProviderUrl(
267
267
  md += `- [${doc.title}](https://registry.terraform.io/providers/${namespace}/${type}/latest/docs/${doc.category}/${doc.slug})\n`;
268
268
  }
269
269
  if (docs.length > 15) {
270
- md += `\n*... and ${docs.length - 15} more*\n`;
270
+ md += `\n[…${docs.length - 15} documents elided…]\n`;
271
271
  }
272
272
  md += "\n";
273
273
  }
@@ -169,7 +169,7 @@ export const handleWikidata: SpecialHandler = async (
169
169
  if (values.length > 0) {
170
170
  // Limit values shown per property
171
171
  const displayValues = values.slice(0, 10);
172
- const overflow = values.length > 10 ? ` (+${values.length - 10} more)` : "";
172
+ const overflow = values.length > 10 ? ` […${values.length - 10} values elided…]` : "";
173
173
  processedProperties.push(`- **${propLabel}:** ${displayValues.join(", ")}${overflow}`);
174
174
  }
175
175
  }
@@ -187,7 +187,7 @@ export const handleWikidata: SpecialHandler = async (
187
187
  const maxProps = 50;
188
188
  md += processedProperties.slice(0, maxProps).join("\n");
189
189
  if (processedProperties.length > maxProps) {
190
- md += `\n\n*...and ${processedProperties.length - maxProps} more properties*`;
190
+ md += `\n\n[…${processedProperties.length - maxProps} properties elided…]`;
191
191
  }
192
192
  md += "\n";
193
193
  }
@@ -298,7 +298,7 @@ function applyLineCap(
298
298
  const removed = new Set(removable.map(item => item.index));
299
299
  const kept = lines.filter((_, index) => !removed.has(index));
300
300
  kept.push({
301
- label: `… (${removable.length} lines elided beyond depth/cap)`,
301
+ label: `[…${removable.length}ln elided…]`,
302
302
  depth: 0,
303
303
  isRoot: false,
304
304
  });