@fitchmultz/pi-subagents 0.46.0 → 0.46.2

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 (92) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/agents/agent-management.js +8 -2
  3. package/dist/agents/agent-selection.js +5 -17
  4. package/dist/agents/agents.js +10 -10
  5. package/dist/extension/build-info.js +1 -1
  6. package/dist/extension/index.js +11 -5
  7. package/dist/extension/result-snapshot.js +0 -18
  8. package/dist/history/ingest.js +40 -31
  9. package/dist/history/prune.js +1 -1
  10. package/dist/history/run-projection.js +1 -2
  11. package/dist/history/search-queries.js +8 -2
  12. package/dist/history/store.js +20 -4
  13. package/dist/history/text-chunks.js +1 -2
  14. package/dist/history/transcript-queries.js +12 -6
  15. package/dist/intercom/result-intercom.js +0 -74
  16. package/dist/pi-intercom/broker/broker.js +33 -16
  17. package/dist/pi-intercom/broker/framing.js +67 -17
  18. package/dist/pi-intercom/broker/snapshot-reader.js +29 -8
  19. package/dist/pi-intercom/broker/snapshots.js +144 -41
  20. package/dist/pi-intercom/session-targets.js +0 -1
  21. package/dist/runs/background/async-run-discovery.js +4 -6
  22. package/dist/runs/background/completion-dedupe.js +4 -55
  23. package/dist/runs/background/notify.js +1 -9
  24. package/dist/runs/background/result-watcher.js +1 -1
  25. package/dist/runs/background/runner-child-observer.js +12 -7
  26. package/dist/runs/background/runner-monitor.js +2 -0
  27. package/dist/runs/background/runner-parallel.js +2 -3
  28. package/dist/runs/background/runner-step-output.js +1 -3
  29. package/dist/runs/shared/acceptance-finalization.js +2 -2
  30. package/dist/runs/shared/acceptance.js +1 -1
  31. package/dist/runs/shared/child-observation-spool.js +8 -3
  32. package/dist/runs/shared/model-fallback.js +3 -0
  33. package/dist/runs/shared/parallel-utils.js +1 -21
  34. package/dist/runs/shared/run-restoration.js +4 -5
  35. package/dist/runs/shared/single-output.js +1 -4
  36. package/dist/runs/shared/subagent-prompt-runtime.js +2 -2
  37. package/dist/runs/shared/supervisor-questions.js +7 -4
  38. package/dist/runs/shared/workflow-policy.js +2 -1
  39. package/dist/shared/journal-frames.js +1 -1
  40. package/dist/shared/settings.js +1 -4
  41. package/dist/slash/command-discovery.js +13 -12
  42. package/dist/tui/agent-history.js +0 -14
  43. package/dist/tui/agent-view.js +0 -1
  44. package/dist/tui/conversation-history.js +10 -1
  45. package/dist/tui/history-cards.js +8 -22
  46. package/docs/intercom.md +5 -1
  47. package/docs/performance.md +72 -3
  48. package/docs/reference.md +1 -1
  49. package/package.json +1 -1
  50. package/src/agents/agent-management.ts +8 -4
  51. package/src/agents/agent-selection.ts +8 -19
  52. package/src/agents/agents.ts +19 -14
  53. package/src/extension/index.ts +12 -5
  54. package/src/extension/result-snapshot.ts +1 -27
  55. package/src/history/ingest.ts +57 -49
  56. package/src/history/prune.ts +1 -1
  57. package/src/history/run-projection.ts +2 -4
  58. package/src/history/search-queries.ts +9 -2
  59. package/src/history/store.ts +21 -5
  60. package/src/history/text-chunks.ts +7 -2
  61. package/src/history/transcript-queries.ts +16 -10
  62. package/src/intercom/result-intercom.ts +0 -103
  63. package/src/pi-intercom/broker/broker.ts +34 -20
  64. package/src/pi-intercom/broker/framing.ts +71 -20
  65. package/src/pi-intercom/broker/snapshot-reader.ts +47 -9
  66. package/src/pi-intercom/broker/snapshots.ts +184 -51
  67. package/src/pi-intercom/session-targets.ts +0 -2
  68. package/src/runs/background/async-run-discovery.ts +4 -10
  69. package/src/runs/background/completion-dedupe.ts +6 -69
  70. package/src/runs/background/notify.ts +2 -12
  71. package/src/runs/background/result-watcher.ts +1 -1
  72. package/src/runs/background/runner-child-observer.ts +19 -11
  73. package/src/runs/background/runner-monitor.ts +2 -0
  74. package/src/runs/background/runner-parallel.ts +2 -3
  75. package/src/runs/background/runner-step-output.ts +1 -3
  76. package/src/runs/shared/acceptance-finalization.ts +2 -2
  77. package/src/runs/shared/acceptance.ts +0 -2
  78. package/src/runs/shared/child-observation-spool.ts +8 -3
  79. package/src/runs/shared/model-fallback.ts +3 -0
  80. package/src/runs/shared/parallel-utils.ts +1 -25
  81. package/src/runs/shared/run-restoration.ts +4 -4
  82. package/src/runs/shared/single-output.ts +0 -4
  83. package/src/runs/shared/subagent-prompt-runtime.ts +2 -2
  84. package/src/runs/shared/supervisor-questions.ts +10 -10
  85. package/src/runs/shared/workflow-policy.ts +1 -1
  86. package/src/shared/journal-frames.ts +1 -1
  87. package/src/shared/settings.ts +1 -4
  88. package/src/slash/command-discovery.ts +13 -12
  89. package/src/tui/agent-history.ts +1 -18
  90. package/src/tui/agent-view.ts +0 -1
  91. package/src/tui/conversation-history.ts +15 -1
  92. package/src/tui/history-cards.ts +8 -26
@@ -1,4 +1,5 @@
1
1
  import type { AssistantMessage } from "@earendil-works/pi-ai";
2
+ import { isDeepStrictEqual } from "node:util";
2
3
  import {
3
4
  AssistantMessageComponent,
4
5
  UserMessageComponent,
@@ -47,29 +48,9 @@ interface CardLine {
47
48
  readonly contentStart: number;
48
49
  readonly end: number;
49
50
  }
50
- function plainItem(item: AgentHistoryItem): boolean {
51
- return (
52
- item.load === undefined &&
53
- item.assistant === undefined &&
54
- item.previewAssistant === undefined &&
55
- item.call === undefined &&
56
- item.result === undefined
57
- );
58
- }
59
- function plainSignature(item: AgentHistoryItem): string {
60
- return JSON.stringify([
61
- item.kind,
62
- item.title,
63
- item.text,
64
- item.details,
65
- item.diff,
66
- item.model,
67
- item.timestamp,
68
- item.messageId,
69
- ]);
70
- }
71
51
  function sameDisplay(left: AgentHistoryItem, right: AgentHistoryItem): boolean {
72
- return plainItem(left) && plainItem(right) && plainSignature(left) === plainSignature(right);
52
+ // Detail loaders stay fresh in contentItems; only the native display component is reused.
53
+ return isDeepStrictEqual({ ...left, load: undefined }, { ...right, load: undefined });
73
54
  }
74
55
  function previewStop(reason: string | undefined): AssistantMessage["stopReason"] {
75
56
  if (reason === "error" || reason === "aborted" || reason === "length") {
@@ -191,10 +172,11 @@ export class HistoryCards {
191
172
  private card(item: AgentHistoryItem, expanded: boolean, detail: boolean): Component {
192
173
  const signature = `${expanded}:${detail}`,
193
174
  cached = this.components.get(item.id);
194
- if (
195
- cached?.signature === signature &&
196
- (cached.item === item || sameDisplay(cached.item, item))
197
- ) {
175
+ if (cached?.signature === signature && cached.item === item) {
176
+ return cached.component;
177
+ }
178
+ if (cached?.signature === signature && sameDisplay(cached.item, item)) {
179
+ this.components.set(item.id, { ...cached, item });
198
180
  return cached.component;
199
181
  }
200
182
  const component = this.create(item, { expanded, detail });