@botiverse/oar 0.52.0 → 0.54.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 (144) hide show
  1. package/README.md +23 -10
  2. package/dist/contracts/failure.d.ts +1 -1
  3. package/dist/contracts/install.d.ts +11 -1
  4. package/dist/contracts/install.d.ts.map +1 -1
  5. package/dist/contracts/records.d.ts +25 -4
  6. package/dist/contracts/records.d.ts.map +1 -1
  7. package/dist/contracts/session.d.ts +4 -3
  8. package/dist/contracts/session.d.ts.map +1 -1
  9. package/dist/contracts/status.d.ts +20 -2
  10. package/dist/contracts/status.d.ts.map +1 -1
  11. package/dist/contracts/tasks.d.ts +6 -5
  12. package/dist/contracts/tasks.d.ts.map +1 -1
  13. package/dist/observe/agent-status.d.ts +7 -5
  14. package/dist/observe/agent-status.d.ts.map +1 -1
  15. package/dist/observe/agent-status.js +71 -12
  16. package/dist/observe/agent-status.js.map +1 -1
  17. package/dist/observe/conversation.d.ts +6 -0
  18. package/dist/observe/conversation.d.ts.map +1 -1
  19. package/dist/observe/conversation.js +8 -1
  20. package/dist/observe/conversation.js.map +1 -1
  21. package/dist/observe/display-text.d.ts +9 -2
  22. package/dist/observe/display-text.d.ts.map +1 -1
  23. package/dist/observe/display-text.js +22 -3
  24. package/dist/observe/display-text.js.map +1 -1
  25. package/dist/observe/graph.d.ts +14 -0
  26. package/dist/observe/graph.d.ts.map +1 -0
  27. package/dist/observe/graph.js +40 -0
  28. package/dist/observe/graph.js.map +1 -0
  29. package/dist/observe/index.d.ts +1 -0
  30. package/dist/observe/index.d.ts.map +1 -1
  31. package/dist/observe/index.js +1 -0
  32. package/dist/observe/index.js.map +1 -1
  33. package/dist/observe/input-delivery.d.ts.map +1 -1
  34. package/dist/observe/input-delivery.js +8 -2
  35. package/dist/observe/input-delivery.js.map +1 -1
  36. package/dist/observe/session-view-events.d.ts +1 -1
  37. package/dist/observe/session-view-events.d.ts.map +1 -1
  38. package/dist/observe/session-view-events.js +11 -16
  39. package/dist/observe/session-view-events.js.map +1 -1
  40. package/dist/observe/session-view-fold.d.ts +5 -4
  41. package/dist/observe/session-view-fold.d.ts.map +1 -1
  42. package/dist/observe/session-view-fold.js +9 -6
  43. package/dist/observe/session-view-fold.js.map +1 -1
  44. package/dist/observe/session-view-inputs.d.ts +7 -1
  45. package/dist/observe/session-view-inputs.d.ts.map +1 -1
  46. package/dist/observe/session-view-inputs.js +37 -1
  47. package/dist/observe/session-view-inputs.js.map +1 -1
  48. package/dist/observe/session-view.d.ts +11 -6
  49. package/dist/observe/session-view.d.ts.map +1 -1
  50. package/dist/observe/session-view.js +10 -6
  51. package/dist/observe/session-view.js.map +1 -1
  52. package/dist/observe/tool-activity.d.ts +7 -3
  53. package/dist/observe/tool-activity.d.ts.map +1 -1
  54. package/dist/observe/tool-activity.js +29 -70
  55. package/dist/observe/tool-activity.js.map +1 -1
  56. package/dist/observe/tool-groups.d.ts.map +1 -1
  57. package/dist/observe/tool-groups.js +6 -1
  58. package/dist/observe/tool-groups.js.map +1 -1
  59. package/dist/observe/tool-paths.d.ts +3 -0
  60. package/dist/observe/tool-paths.d.ts.map +1 -0
  61. package/dist/observe/tool-paths.js +53 -0
  62. package/dist/observe/tool-paths.js.map +1 -0
  63. package/dist/observe/turns.d.ts +21 -12
  64. package/dist/observe/turns.d.ts.map +1 -1
  65. package/dist/observe/turns.js +61 -39
  66. package/dist/observe/turns.js.map +1 -1
  67. package/dist/observe/usage-totals.d.ts +27 -0
  68. package/dist/observe/usage-totals.d.ts.map +1 -0
  69. package/dist/observe/usage-totals.js +64 -0
  70. package/dist/observe/usage-totals.js.map +1 -0
  71. package/dist/observe/usage.d.ts +3 -17
  72. package/dist/observe/usage.d.ts.map +1 -1
  73. package/dist/observe/usage.js +14 -69
  74. package/dist/observe/usage.js.map +1 -1
  75. package/dist/runtimes/claude/account-usage.d.ts.map +1 -1
  76. package/dist/runtimes/claude/account-usage.js +3 -2
  77. package/dist/runtimes/claude/account-usage.js.map +1 -1
  78. package/dist/runtimes/claude/auth-status.d.ts +0 -1
  79. package/dist/runtimes/claude/auth-status.d.ts.map +1 -1
  80. package/dist/runtimes/claude/auth-status.js +1 -4
  81. package/dist/runtimes/claude/auth-status.js.map +1 -1
  82. package/dist/runtimes/claude/content.d.ts +1 -0
  83. package/dist/runtimes/claude/content.d.ts.map +1 -1
  84. package/dist/runtimes/claude/content.js +20 -0
  85. package/dist/runtimes/claude/content.js.map +1 -1
  86. package/dist/runtimes/claude/environment.d.ts +22 -0
  87. package/dist/runtimes/claude/environment.d.ts.map +1 -0
  88. package/dist/runtimes/claude/environment.js +44 -0
  89. package/dist/runtimes/claude/environment.js.map +1 -0
  90. package/dist/runtimes/claude/input-lifecycle.d.ts +19 -0
  91. package/dist/runtimes/claude/input-lifecycle.d.ts.map +1 -0
  92. package/dist/runtimes/claude/input-lifecycle.js +68 -0
  93. package/dist/runtimes/claude/input-lifecycle.js.map +1 -0
  94. package/dist/runtimes/claude/inventory.d.ts.map +1 -1
  95. package/dist/runtimes/claude/inventory.js +2 -1
  96. package/dist/runtimes/claude/inventory.js.map +1 -1
  97. package/dist/runtimes/claude/launch.d.ts.map +1 -1
  98. package/dist/runtimes/claude/launch.js +4 -1
  99. package/dist/runtimes/claude/launch.js.map +1 -1
  100. package/dist/runtimes/claude/list-models.d.ts.map +1 -1
  101. package/dist/runtimes/claude/list-models.js +2 -1
  102. package/dist/runtimes/claude/list-models.js.map +1 -1
  103. package/dist/runtimes/claude/login.d.ts.map +1 -1
  104. package/dist/runtimes/claude/login.js +2 -1
  105. package/dist/runtimes/claude/login.js.map +1 -1
  106. package/dist/runtimes/claude/logout.d.ts.map +1 -1
  107. package/dist/runtimes/claude/logout.js +2 -1
  108. package/dist/runtimes/claude/logout.js.map +1 -1
  109. package/dist/runtimes/claude/projection.d.ts +20 -6
  110. package/dist/runtimes/claude/projection.d.ts.map +1 -1
  111. package/dist/runtimes/claude/projection.js +31 -30
  112. package/dist/runtimes/claude/projection.js.map +1 -1
  113. package/dist/runtimes/claude/session.d.ts.map +1 -1
  114. package/dist/runtimes/claude/session.js +55 -41
  115. package/dist/runtimes/claude/session.js.map +1 -1
  116. package/dist/runtimes/claude/tasks.d.ts +5 -2
  117. package/dist/runtimes/claude/tasks.d.ts.map +1 -1
  118. package/dist/runtimes/claude/tasks.js +22 -4
  119. package/dist/runtimes/claude/tasks.js.map +1 -1
  120. package/dist/runtimes/claude/update.d.ts.map +1 -1
  121. package/dist/runtimes/claude/update.js +3 -1
  122. package/dist/runtimes/claude/update.js.map +1 -1
  123. package/dist/runtimes/codex/session.d.ts.map +1 -1
  124. package/dist/runtimes/codex/session.js +2 -5
  125. package/dist/runtimes/codex/session.js.map +1 -1
  126. package/dist/runtimes/pi/catalog.d.ts.map +1 -1
  127. package/dist/runtimes/pi/catalog.js +16 -3
  128. package/dist/runtimes/pi/catalog.js.map +1 -1
  129. package/dist/shared/acp/records.d.ts.map +1 -1
  130. package/dist/shared/acp/records.js +6 -17
  131. package/dist/shared/acp/records.js.map +1 -1
  132. package/dist/shared/install.d.ts +2 -0
  133. package/dist/shared/install.d.ts.map +1 -1
  134. package/dist/shared/install.js +6 -3
  135. package/dist/shared/install.js.map +1 -1
  136. package/dist/shared/session-kernel.d.ts +6 -6
  137. package/dist/shared/session-kernel.d.ts.map +1 -1
  138. package/dist/shared/session-kernel.js +6 -19
  139. package/dist/shared/session-kernel.js.map +1 -1
  140. package/dist/shared/update.d.ts +2 -0
  141. package/dist/shared/update.d.ts.map +1 -1
  142. package/dist/shared/update.js +1 -1
  143. package/dist/shared/update.js.map +1 -1
  144. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { sealTurn } from "./session-view-fold.js";
1
+ import { awaitsEcho } from "./input-delivery.js";
2
+ import { removeEmptyTurn, sealTurn } from "./session-view-fold.js";
2
3
  /**
3
4
  * Where a user input enters the session view: the INPUT rule in the
4
5
  * `session-view.ts` header (issue #82), applied per input update.
@@ -76,4 +77,39 @@ function removeInput(draft, index) {
76
77
  draft.turn = null;
77
78
  }
78
79
  }
80
+ /** Queue evidence arms attribution; only an actual conflicting turn defers a placed input. */
81
+ export function foldInputUpdate(draft, input, conversation) {
82
+ if (input.state === "dropped") {
83
+ const request = input.attempts.at(-1)?.request;
84
+ if (request?.body.kind === "prompt") {
85
+ removeEmptyTurn(draft, request.id);
86
+ }
87
+ }
88
+ const wait = awaitsEcho(input, conversation);
89
+ upsertInput(draft, input, input.turn?.state === "queued" ? wait && draft.pendingInputs.some((pending) => pending.id === input.id) : wait);
90
+ }
91
+ /** Split a provisional prompt only when native activity actually belongs to another turn. */
92
+ export function deferWaitingInputs(draft, event, conversation) {
93
+ if (event.kind !== "turn_active" || event.sessionId !== draft.rootSessionId || event.agentPath.length > 0) {
94
+ return;
95
+ }
96
+ for (const input of conversation.inputs.values()) {
97
+ const request = input.attempts.at(-1)?.request;
98
+ if (input.turn?.state !== "queued" || input.inputId === event.inputId
99
+ || request?.sessionId !== event.sessionId || request.agentPath.length > 0) {
100
+ continue;
101
+ }
102
+ if (request.body.kind === "prompt") {
103
+ removeEmptyTurn(draft, request.id);
104
+ }
105
+ sealTurn(draft);
106
+ upsertInput(draft, input, true);
107
+ }
108
+ }
109
+ export function turnOpenedBy(event, conversation) {
110
+ const input = event.kind === "turn_active" && event.inputId !== undefined
111
+ ? conversation.inputs.get(JSON.stringify([event.sessionId, event.agentPath, event.inputId])) : undefined;
112
+ const request = input?.turn?.state === "active" ? input.attempts.at(-1)?.request : undefined;
113
+ return request?.body.kind === "prompt" ? request.id : undefined;
114
+ }
79
115
  //# sourceMappingURL=session-view-inputs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-view-inputs.js","sourceRoot":"","sources":["../../src/observe/session-view-inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view-inputs.js","sourceRoot":"","sources":["../../src/observe/session-view-inputs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAc,MAAM,wBAAwB,CAAC;AAE/E;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,KAAwB,EAAE,SAAkB;IACpF,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAChC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACrD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAY,EAAE,KAAwB,EAAE,KAAa;IAC1E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAY,EAAE,KAAa;IAC9C,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC;QAC3B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACxH,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,KAAwB,EAAE,YAA+B;IACrG,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC/C,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC7C,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5I,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,KAAY,EAAE,YAA+B;IAC5F,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IACtH,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;eAChE,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAC3E,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,YAA+B;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QACvE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,OAAO,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { ContextUsage, ControlAction, Cursor, Event, RawEvent, ReasoningContent, Session, SessionUsage, TokenTotals, ToolOutputPart, TurnOutcome, Unsubscribe } from "../contracts/session.js";
1
+ import type { ContextUsage, ControlAction, Cursor, Event, RawEvent, ReasoningContent, Session, SessionUsage, SessionGraph, TokenTotals, ToolOutputPart, TurnOutcome, Unsubscribe } from "../contracts/session.js";
2
+ import type { SessionTokens } from "./usage-totals.js";
2
3
  import { type AgentStatus } from "./agent-status.js";
3
4
  import { type ConversationInput, type ConversationState } from "./conversation.js";
4
5
  /**
@@ -9,13 +10,14 @@ import { type ConversationInput, type ConversationState } from "./conversation.j
9
10
  * Grouping rules, all derived never synthesized:
10
11
  * - A TURN is a display segment: it opens on its prompt request or on the
11
12
  * first turn-content event while none is open (adopted: queued input
12
- * consumed, mid-turn subscriber, replay slice). A rejected prompt removes
13
- * its empty turn — the turn never began (same rule as `reduceStatus`).
13
+ * consumed, mid-turn subscriber, replay slice). A conflicting native start after queue evidence, a dropped input or a rejected prompt
14
+ * removes its empty provisional turn. Queue evidence alone changes no layout.
14
15
  * `turn_ended` of the ROOT session stamps the open segment; an input
15
16
  * entering mid-turn seals the current segment so seq order stays the
16
17
  * render order, and later content opens a new segment.
17
18
  * - An INPUT enters where the runtime took it. A prompt enters at its
18
- * request (it opens its turn). A steer or queue enters at its first native
19
+ * request provisionally; native queue evidence arms attribution, and a
20
+ * conflicting turn moves it to pending until its matching native turn start. A steer or queue enters at its first native
19
21
  * echo (`user_message` with its `inputId`) when the stream echoes input
20
22
  * ids at all, which it shows by having echoed one before (codex, claude);
21
23
  * until then it waits in `pendingInputs`. On a stream that never echoed
@@ -152,8 +154,8 @@ export interface AgentTokens {
152
154
  export interface SessionView {
153
155
  readonly messages: readonly ViewMessage[];
154
156
  /**
155
- * Steered or queued inputs the runtime has not taken yet, in request order: each leaves this list for `messages` at its first native echo. A host shows them apart (above the composer, say).
156
- * An input the runtime never echoes stays here; no turn end or text match places it. A withdrawn input leaves it. Always empty on a stream that never echoed an input id.
157
+ * Inputs the runtime has not taken yet, in request order. A conflicting turn after `input_queued` defers a prompt until matching `turn_active.inputId`; otherwise steers/queues wait for their first echo on a stream that echoes ids. A host shows them apart.
158
+ * No unrelated turn end or text match places them. A withdrawn input leaves both lists; a dropped input enters messages. Without queue or echo evidence, inputs enter messages at their requests.
157
159
  */
158
160
  readonly pendingInputs: readonly ConversationInput[];
159
161
  /** Index of the unsealed turn segment in `messages`; -1 when none. */
@@ -176,6 +178,9 @@ export interface SessionView {
176
178
  readonly conversation: ConversationState;
177
179
  /** sessionId of the latest prompt request: whose `turn_ended` closes turns. */
178
180
  readonly rootSessionId: string | undefined;
181
+ /** Replay state for native lineage and every observed session's latest totals; includes children before their lineage arrives. */
182
+ readonly sessionGraph: SessionGraph;
183
+ readonly usageBySession: ReadonlyMap<string, SessionTokens>;
179
184
  readonly usageByAgent: ReadonlyMap<string, AgentTokens>;
180
185
  /** The runtime's own session total, when it reports one beyond its agents' (`UsageReport.total`); null otherwise. */
181
186
  readonly usageTotal: TokenTotals | null;
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
+ import { withSessionNode } from "./graph.js";
1
2
  import { initialStatus, reduceStatus } from "./agent-status.js";
2
3
  import { initialConversation, reduceConversation, } from "./conversation.js";
3
4
  import { assemble, draftOf, stampTurnOutcome } from "./session-view-fold.js";
4
- import { awaitsEcho } from "./input-delivery.js";
5
- import { upsertInput } from "./session-view-inputs.js";
5
+ import { deferWaitingInputs, foldInputUpdate, turnOpenedBy, upsertInput } from "./session-view-inputs.js";
6
6
  import { foldEvent, recordFacts } from "./session-view-events.js";
7
7
  import { upgradeLegacyEvent } from "./legacy.js";
8
8
  export function initialSessionView() {
@@ -20,8 +20,9 @@ export function initialSessionView() {
20
20
  exited: null,
21
21
  conversation: initialConversation(),
22
22
  rootSessionId: undefined,
23
- usageByAgent: new Map(),
24
- usageTotal: null,
23
+ sessionGraph: { nodes: [], edges: [] },
24
+ usageBySession: new Map(),
25
+ usageByAgent: new Map(), usageTotal: null,
25
26
  };
26
27
  }
27
28
  /**
@@ -36,6 +37,7 @@ export function reduceSessionView(previous, record, streamId = "") {
36
37
  }
37
38
  const draft = draftOf(previous);
38
39
  draft.rootSessionId ??= record.sessionId;
40
+ draft.sessionGraph = withSessionNode(draft.sessionGraph, record.sessionId);
39
41
  if (record.kind === "request" &&
40
42
  record.direction === "toRuntime" &&
41
43
  record.body.kind === "prompt") {
@@ -48,10 +50,11 @@ export function reduceSessionView(previous, record, streamId = "") {
48
50
  const conversation = reduceConversation(previous.conversation, record, streamId);
49
51
  for (const update of conversation.updates) {
50
52
  if (update.kind === "input") {
51
- upsertInput(draft, update.input, awaitsEcho(update.input, conversation));
53
+ foldInputUpdate(draft, update.input, conversation);
52
54
  }
53
55
  else {
54
- foldEvent(draft, update.event, streamId);
56
+ deferWaitingInputs(draft, update.event, conversation);
57
+ foldEvent(draft, update.event, streamId, turnOpenedBy(update.event, conversation));
55
58
  }
56
59
  }
57
60
  recordFacts(draft, record, streamId);
@@ -65,6 +68,7 @@ export function reduceSessionView(previous, record, streamId = "") {
65
68
  export function reduceSessionViewEvent(previous, event, streamId = "") {
66
69
  const draft = draftOf(previous);
67
70
  draft.rootSessionId ??= event.sessionId;
71
+ draft.sessionGraph = withSessionNode(draft.sessionGraph, event.sessionId);
68
72
  foldEvent(draft, upgradeLegacyEvent(event), streamId);
69
73
  return assemble(draft, previous.conversation, previous.status);
70
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * The tool set is OPEN (custom + MCP tools have arbitrary names), so unknown
9
9
  * tools fall back to "other" rather than being force-fit.
10
10
  */
11
- export type ToolActionKind = "run_command" | "read_file" | "edit_file" | "search" | "web" | "mcp" | "wait" | "other";
11
+ export type ToolActionKind = "run_command" | "read_file" | "edit_file" | "search" | "web" | "fetch" | "subagent" | "mcp" | "wait" | "other";
12
12
  export interface ToolAction {
13
13
  readonly kind: ToolActionKind;
14
14
  /**
@@ -32,7 +32,11 @@ export interface ToolAction {
32
32
  * grok `run_terminal_command`, kimi `Bash`, opencode `bash`).
33
33
  */
34
34
  readonly command?: string;
35
- /** The agent's own one-line account of the call, where the runtime sends one (claude `Bash`, grok `run_terminal_command`). */
35
+ /**
36
+ * The agent's own one-line account of the call, where the runtime sends one (claude `Bash`,
37
+ * grok `run_terminal_command`). On a `subagent` call (claude `Agent` or `Task`, opencode `subagent`) it is
38
+ * the subagent's task, also its `detail`.
39
+ */
36
40
  readonly description?: string;
37
41
  /**
38
42
  * `wait`: how long the agent asked to wait, in ms, as the runtime reported it (codex
@@ -45,5 +49,5 @@ export interface ToolAction {
45
49
  /** Classify one tool call into a cross-runtime semantic action plus an extracted detail (and, for a file tool, its paths). Pass only complete input; omit inputJson while a view part has inputPartial. */
46
50
  export declare function classifyTool(runtimeId: string, tool: string, inputJson?: string): ToolAction;
47
51
  /** The human label for an action in a given lifecycle state; tense centralized here so events stay consistent. */
48
- export declare function toolActionLabel(kind: ToolActionKind, state: "running" | "done" | "failed"): string;
52
+ export declare function toolActionLabel(kind: ToolActionKind, state: "writing" | "running" | "done" | "failed"): string;
49
53
  //# sourceMappingURL=tool-activity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,WAAW,GACX,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8HAA8H;IAC9H,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA0ND,2MAA2M;AAC3M,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAO5F;AAaD,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAElG"}
1
+ {"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,WAAW,GACX,QAAQ,GACR,KAAK,GACL,OAAO,GACP,UAAU,GACV,KAAK,GACL,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAwKD,2MAA2M;AAC3M,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAO5F;AAgBD,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAE9G"}
@@ -1,4 +1,5 @@
1
1
  import { asNumber, asRecord, parseJson } from "../shared/json.js";
2
+ import { filePathsOf } from "./tool-paths.js";
2
3
  // Per-runtime tool name → kind. Names are what the tool_call_started event
3
4
  // carries (codex uses its item type; claude/pi use the tool name; the ACP
4
5
  // runtimes the opening `tool_call`'s `title`, shared/acp/projection.ts). The
@@ -13,8 +14,10 @@ const BY_RUNTIME = {
13
14
  NotebookEdit: "edit_file",
14
15
  Grep: "search",
15
16
  Glob: "search",
16
- WebFetch: "web",
17
+ WebFetch: "fetch",
17
18
  WebSearch: "web",
19
+ Agent: "subagent",
20
+ Task: "subagent", // Agent's alias in 2.1.292: a call the model makes as `Task` is recorded as `Task`.
18
21
  },
19
22
  codex: {
20
23
  commandExecution: "run_command",
@@ -41,7 +44,7 @@ const BY_RUNTIME = {
41
44
  opencode: {
42
45
  bash: "run_command",
43
46
  shell: "run_command",
44
- subagent: "other",
47
+ subagent: "subagent",
45
48
  execute: "other", // Native Code Mode can run MCP tools or plain JavaScript/fetch; its name alone proves neither.
46
49
  read: "read_file",
47
50
  write: "edit_file",
@@ -61,7 +64,7 @@ const BY_RUNTIME = {
61
64
  glob: "search",
62
65
  semSearch: "search",
63
66
  webSearch: "web",
64
- webFetch: "web",
67
+ webFetch: "fetch",
65
68
  mcp: "mcp",
66
69
  },
67
70
  };
@@ -91,6 +94,11 @@ function stringFields(inputJson, withDescription) {
91
94
  ...(description === undefined ? {} : { description }),
92
95
  };
93
96
  }
97
+ /** A subagent call's task: the input's `description` only, never a `command` it does not run. */
98
+ function taskFields(inputJson) {
99
+ const { description } = stringFields(inputJson, true);
100
+ return description === undefined ? {} : { description };
101
+ }
94
102
  /** A wait's asked duration: the input's `durationMs`, when a finite positive number. */
95
103
  function waitFields(inputJson) {
96
104
  const durationMs = asNumber(asRecord(parseJson(inputJson))?.durationMs);
@@ -100,7 +108,9 @@ function waitFields(inputJson) {
100
108
  * Where each runtime's tools keep the fields a host shows, from recorded inputs
101
109
  * (tests/replay/fixtures/*-tool-round.raw.jsonl, and the input keys of
102
110
  * *-acp-v1*.vendor.json): a shell tool's command (and description), a wait's
103
- * duration. A runtime with no recorded shape gets none. codex's
111
+ * duration, a subagent call's task (claude `Agent` and opencode `subagent`
112
+ * `{description, prompt, …}`, tests/replay/fixtures/claude-background-tasks.raw.jsonl
113
+ * and opencode-acp-v2-child.json). A runtime with no recorded shape gets none. codex's
104
114
  * `commandExecution` input is the bare command line, not JSON
105
115
  * (codex/item-detail.ts). grok's opening `tool_call` carries `rawInput`
106
116
  * `{command, description}`. kimi's opening frame carries none and opencode's
@@ -110,7 +120,7 @@ function waitFields(inputJson) {
110
120
  * there once the call's latest input is passed in.
111
121
  */
112
122
  const FIELDS = {
113
- claude: { Bash: (input) => stringFields(input, true) },
123
+ claude: { Bash: (input) => stringFields(input, true), Agent: taskFields, Task: taskFields },
114
124
  codex: {
115
125
  commandExecution: (input) => input.length === 0 || asRecord(parseJson(input)) !== null ? {} : { command: input },
116
126
  sleep: waitFields,
@@ -119,63 +129,9 @@ const FIELDS = {
119
129
  cursor: { shell: (input) => stringFields(input, false) },
120
130
  grok: { run_terminal_command: (input) => stringFields(input, true) },
121
131
  kimi: { Bash: (input) => stringFields(input, false) },
122
- opencode: { bash: (input) => stringFields(input, false), shell: (input) => stringFields(input, false) },
132
+ opencode: { bash: (input) => stringFields(input, false), shell: (input) => stringFields(input, false), subagent: taskFields },
123
133
  };
124
134
  const FIRST_STRING_KEYS = ["command", "cmd", "path", "file_path", "filePath", "file", "pattern", "query", "url"];
125
- /** The keys of `FIRST_STRING_KEYS` that name a file, in the same order. */
126
- const PATH_KEYS = ["path", "file_path", "filePath", "file"];
127
- /** A file tool's one path: the first non-empty `PATH_KEYS` string, as `detail` reads it. */
128
- function inputPath(inputJson) {
129
- const input = asRecord(parseJson(inputJson));
130
- for (const key of PATH_KEYS) {
131
- const value = input?.[key];
132
- if (typeof value === "string" && value.length > 0) {
133
- return [value];
134
- }
135
- }
136
- return [];
137
- }
138
- /**
139
- * A codex `fileChange`'s paths. Its input is the item's `changes` array
140
- * (codex/item-detail.ts), recorded on 0.160.1
141
- * (tests/replay/fixtures/codex-file-change.raw.jsonl) as
142
- * `[{path, kind: {type: "add" | "delete" | "update", move_path?}, diff}]`:
143
- * absolute paths, sorted by path whatever the patch's order, and `move_path`
144
- * (snake case, `null` on an update that does not rename) the rename's target.
145
- */
146
- function fileChangePaths(inputJson) {
147
- const changes = parseJson(inputJson);
148
- const paths = [];
149
- for (const raw of Array.isArray(changes) ? changes : []) {
150
- const change = asRecord(raw);
151
- for (const value of [change?.path, asRecord(change?.kind)?.move_path]) {
152
- if (typeof value === "string" && value.length > 0) {
153
- paths.push(value);
154
- }
155
- }
156
- }
157
- return paths;
158
- }
159
- /** A tool whose one path is under `key`, a key `PATH_KEYS` does not list. */
160
- function pathUnder(key) {
161
- return (inputJson) => {
162
- const value = asRecord(parseJson(inputJson))?.[key];
163
- return typeof value === "string" && value.length > 0 ? [value] : [];
164
- };
165
- }
166
- /** Where a runtime's file tool keeps its paths, when not under one of `PATH_KEYS`. */
167
- const PATHS = {
168
- // The notebook it edits; never a `detail` before `paths`, now the first of them.
169
- claude: { NotebookEdit: pathUnder("notebook_path") },
170
- codex: { fileChange: fileChangePaths },
171
- };
172
- /** The file paths a `read_file` / `edit_file` call involves, each once, in the runtime's order. */
173
- function pathsOf(runtime, tool, kind, inputJson) {
174
- if (inputJson === undefined || (kind !== "read_file" && kind !== "edit_file")) {
175
- return [];
176
- }
177
- return [...new Set((PATHS[runtime]?.[tool] ?? inputPath)(inputJson))];
178
- }
179
135
  function detailOf(inputJson) {
180
136
  if (inputJson === undefined) {
181
137
  return undefined;
@@ -204,19 +160,22 @@ export function classifyTool(runtimeId, tool, inputJson) {
204
160
  const kind = kindOf(runtimeId, tool);
205
161
  const runtime = runtimeId.replace(/-aimock$/u, "");
206
162
  const fields = inputJson === undefined ? {} : (FIELDS[runtime]?.[tool]?.(inputJson) ?? {});
207
- const paths = pathsOf(runtime, tool, kind, inputJson);
208
- const detail = paths[0] ?? detailOf(inputJson) ?? fields.command ?? (kind === "other" ? tool : undefined);
163
+ const paths = inputJson === undefined || (kind !== "read_file" && kind !== "edit_file") ? [] : filePathsOf(runtime, tool, inputJson);
164
+ const detail = paths[0] ?? detailOf(inputJson) ?? fields.command ?? (kind === "subagent" ? fields.description : undefined) ?? (kind === "other" ? tool : undefined);
209
165
  return { kind, ...(detail === undefined ? {} : { detail }), ...(paths.length === 0 ? {} : { paths }), ...fields };
210
166
  }
167
+ /** `writing`: the call's arguments are still streaming (claude), before it runs. */
211
168
  const LABELS = {
212
- run_command: { running: "Running command", done: "Ran command", failed: "Command failed" },
213
- read_file: { running: "Reading file", done: "Read file", failed: "Read failed" },
214
- edit_file: { running: "Editing file", done: "Edited file", failed: "Edit failed" },
215
- search: { running: "Searching", done: "Searched", failed: "Search failed" },
216
- web: { running: "Searching the web", done: "Searched the web", failed: "Web request failed" },
217
- mcp: { running: "Using a tool", done: "Used a tool", failed: "Tool failed" },
218
- wait: { running: "Waiting", done: "Waited", failed: "Wait failed" },
219
- other: { running: "Working", done: "Done", failed: "Failed" },
169
+ run_command: { writing: "Preparing command", running: "Running command", done: "Ran command", failed: "Command failed" },
170
+ read_file: { writing: "Preparing file read", running: "Reading file", done: "Read file", failed: "Read failed" },
171
+ edit_file: { writing: "Preparing file edit", running: "Editing file", done: "Edited file", failed: "Edit failed" },
172
+ search: { writing: "Preparing search", running: "Searching", done: "Searched", failed: "Search failed" },
173
+ web: { writing: "Preparing web search", running: "Searching the web", done: "Searched the web", failed: "Web search failed" },
174
+ fetch: { writing: "Preparing page fetch", running: "Fetching page", done: "Fetched page", failed: "Fetch failed" },
175
+ subagent: { writing: "Preparing subagent", running: "Running subagent", done: "Ran subagent", failed: "Subagent failed" },
176
+ mcp: { writing: "Preparing a tool call", running: "Using a tool", done: "Used a tool", failed: "Tool failed" },
177
+ wait: { writing: "Preparing to wait", running: "Waiting", done: "Waited", failed: "Wait failed" },
178
+ other: { writing: "Preparing", running: "Working", done: "Done", failed: "Failed" },
220
179
  };
221
180
  /** The human label for an action in a given lifecycle state; tense centralized here so events stay consistent. */
222
181
  export function toolActionLabel(kind, state) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-groups.d.ts","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC;IACtD,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1E,SAAS,CAAC;AAqBd,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAoBnG;AAaD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAE,SAAS,GAAG,MAAe,GAAG,MAAM,CAyBxG"}
1
+ {"version":3,"file":"tool-groups.d.ts","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC;IACtD,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1E,SAAS,CAAC;AAwBd,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAoBnG;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAE,SAAS,GAAG,MAAe,GAAG,MAAM,CAyBxG"}
@@ -3,7 +3,10 @@ function group(runtimeId, index, parts) {
3
3
  const counts = new Map();
4
4
  const tools = parts.filter((part) => part.kind === "tool");
5
5
  for (const tool of tools) {
6
- const { kind } = classifyTool(runtimeId, tool.tool, tool.inputPartial === true ? undefined : tool.input);
6
+ // A call's kind depends on its runtime and tool name only, never its
7
+ // input: parsing every call's input again on each grouping made a live
8
+ // host pay tools x input per record (#318).
9
+ const { kind } = classifyTool(runtimeId, tool.tool);
7
10
  counts.set(kind, (counts.get(kind) ?? 0) + 1);
8
11
  }
9
12
  const failed = tools.filter((tool) => tool.result === "failed").length;
@@ -46,6 +49,8 @@ const DONE = {
46
49
  edit_file: (n) => (n === 1 ? "edited a file" : `edited ${n} files`),
47
50
  search: (n) => (n === 1 ? "searched" : `searched ${n} times`),
48
51
  web: (n) => (n === 1 ? "searched the web" : `searched the web ${n} times`),
52
+ fetch: (n) => (n === 1 ? "fetched a page" : `fetched ${n} pages`),
53
+ subagent: (n) => (n === 1 ? "ran a subagent" : `ran ${n} subagents`),
49
54
  mcp: (n) => (n === 1 ? "used a tool" : `used ${n} tools`),
50
55
  wait: (n) => (n === 1 ? "waited" : `waited ${n} times`),
51
56
  other: (n) => (n === 1 ? "used a tool" : `used ${n} tools`),
@@ -1 +1 @@
1
- {"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** The file paths a file tool's call involves, each once, in the runtime's order. */
2
+ export declare function filePathsOf(runtime: string, tool: string, inputJson: string): readonly string[];
3
+ //# sourceMappingURL=tool-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-paths.d.ts","sourceRoot":"","sources":["../../src/observe/tool-paths.ts"],"names":[],"mappings":"AAsDA,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE/F"}
@@ -0,0 +1,53 @@
1
+ import { asRecord, parseJson } from "../shared/json.js";
2
+ /** The keys that name a file, in the order `classifyTool`'s `detail` reads them (tool-activity.ts). */
3
+ const PATH_KEYS = ["path", "file_path", "filePath", "file"];
4
+ /** A file tool's one path: the first non-empty `PATH_KEYS` string, as `detail` reads it. */
5
+ function inputPath(inputJson) {
6
+ const input = asRecord(parseJson(inputJson));
7
+ for (const key of PATH_KEYS) {
8
+ const value = input?.[key];
9
+ if (typeof value === "string" && value.length > 0) {
10
+ return [value];
11
+ }
12
+ }
13
+ return [];
14
+ }
15
+ /**
16
+ * A codex `fileChange`'s paths. Its input is the item's `changes` array
17
+ * (codex/item-detail.ts), recorded on 0.160.1
18
+ * (tests/replay/fixtures/codex-file-change.raw.jsonl) as
19
+ * `[{path, kind: {type: "add" | "delete" | "update", move_path?}, diff}]`:
20
+ * absolute paths, sorted by path whatever the patch's order, and `move_path`
21
+ * (snake case, `null` on an update that does not rename) the rename's target.
22
+ */
23
+ function fileChangePaths(inputJson) {
24
+ const changes = parseJson(inputJson);
25
+ const paths = [];
26
+ for (const raw of Array.isArray(changes) ? changes : []) {
27
+ const change = asRecord(raw);
28
+ for (const value of [change?.path, asRecord(change?.kind)?.move_path]) {
29
+ if (typeof value === "string" && value.length > 0) {
30
+ paths.push(value);
31
+ }
32
+ }
33
+ }
34
+ return paths;
35
+ }
36
+ /** A tool whose one path is under `key`, a key `PATH_KEYS` does not list. */
37
+ function pathUnder(key) {
38
+ return (inputJson) => {
39
+ const value = asRecord(parseJson(inputJson))?.[key];
40
+ return typeof value === "string" && value.length > 0 ? [value] : [];
41
+ };
42
+ }
43
+ /** Where a runtime's file tool keeps its paths, when not under one of `PATH_KEYS`. */
44
+ const PATHS = {
45
+ // The notebook it edits; never a `detail` before `paths`, now the first of them.
46
+ claude: { NotebookEdit: pathUnder("notebook_path") },
47
+ codex: { fileChange: fileChangePaths },
48
+ };
49
+ /** The file paths a file tool's call involves, each once, in the runtime's order. */
50
+ export function filePathsOf(runtime, tool, inputJson) {
51
+ return [...new Set((PATHS[runtime]?.[tool] ?? inputPath)(inputJson))];
52
+ }
53
+ //# sourceMappingURL=tool-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-paths.js","sourceRoot":"","sources":["../../src/observe/tool-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExD,uGAAuG;AACvG,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAE5D,4FAA4F;AAC5F,SAAS,SAAS,CAAC,SAAiB;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,CAAC,SAAS,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,KAAK,GAAyE;IAClF,iFAAiF;IACjF,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE;IACpD,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE;CACvC,CAAC;AAEF,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,IAAY,EAAE,SAAiB;IAC1E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}