@pinecall/agents 0.9.20

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 (292) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +121 -0
  3. package/dist/agent/accepts.d.ts +31 -0
  4. package/dist/agent/accepts.d.ts.map +1 -0
  5. package/dist/agent/accepts.js +27 -0
  6. package/dist/agent/accepts.js.map +1 -0
  7. package/dist/agent/agent.d.ts +151 -0
  8. package/dist/agent/agent.d.ts.map +1 -0
  9. package/dist/agent/agent.js +240 -0
  10. package/dist/agent/agent.js.map +1 -0
  11. package/dist/agent/authors.d.ts +12 -0
  12. package/dist/agent/authors.d.ts.map +1 -0
  13. package/dist/agent/authors.js +26 -0
  14. package/dist/agent/authors.js.map +1 -0
  15. package/dist/agent/decorators.d.ts +16 -0
  16. package/dist/agent/decorators.d.ts.map +1 -0
  17. package/dist/agent/decorators.js +43 -0
  18. package/dist/agent/decorators.js.map +1 -0
  19. package/dist/agent/docstrings.d.ts +35 -0
  20. package/dist/agent/docstrings.d.ts.map +1 -0
  21. package/dist/agent/docstrings.js +301 -0
  22. package/dist/agent/docstrings.js.map +1 -0
  23. package/dist/agent/knowledge.d.ts +9 -0
  24. package/dist/agent/knowledge.d.ts.map +1 -0
  25. package/dist/agent/knowledge.js +3 -0
  26. package/dist/agent/knowledge.js.map +1 -0
  27. package/dist/agent/lifecycle.d.ts +29 -0
  28. package/dist/agent/lifecycle.d.ts.map +1 -0
  29. package/dist/agent/lifecycle.js +9 -0
  30. package/dist/agent/lifecycle.js.map +1 -0
  31. package/dist/agent/searching.d.ts +7 -0
  32. package/dist/agent/searching.d.ts.map +1 -0
  33. package/dist/agent/searching.js +35 -0
  34. package/dist/agent/searching.js.map +1 -0
  35. package/dist/agent/stages.d.ts +23 -0
  36. package/dist/agent/stages.d.ts.map +1 -0
  37. package/dist/agent/stages.js +29 -0
  38. package/dist/agent/stages.js.map +1 -0
  39. package/dist/agent/state.d.ts +36 -0
  40. package/dist/agent/state.d.ts.map +1 -0
  41. package/dist/agent/state.js +93 -0
  42. package/dist/agent/state.js.map +1 -0
  43. package/dist/agent/tools.d.ts +61 -0
  44. package/dist/agent/tools.d.ts.map +1 -0
  45. package/dist/agent/tools.js +145 -0
  46. package/dist/agent/tools.js.map +1 -0
  47. package/dist/agent/view.d.ts +29 -0
  48. package/dist/agent/view.d.ts.map +1 -0
  49. package/dist/agent/view.js +29 -0
  50. package/dist/agent/view.js.map +1 -0
  51. package/dist/agent/visibility.d.ts +32 -0
  52. package/dist/agent/visibility.d.ts.map +1 -0
  53. package/dist/agent/visibility.js +77 -0
  54. package/dist/agent/visibility.js.map +1 -0
  55. package/dist/call/call.d.ts +137 -0
  56. package/dist/call/call.d.ts.map +1 -0
  57. package/dist/call/call.js +228 -0
  58. package/dist/call/call.js.map +1 -0
  59. package/dist/call/history.d.ts +28 -0
  60. package/dist/call/history.d.ts.map +1 -0
  61. package/dist/call/history.js +32 -0
  62. package/dist/call/history.js.map +1 -0
  63. package/dist/call/room.d.ts +56 -0
  64. package/dist/call/room.d.ts.map +1 -0
  65. package/dist/call/room.js +66 -0
  66. package/dist/call/room.js.map +1 -0
  67. package/dist/client/agent.d.ts +93 -0
  68. package/dist/client/agent.d.ts.map +1 -0
  69. package/dist/client/agent.js +230 -0
  70. package/dist/client/agent.js.map +1 -0
  71. package/dist/client/calls.d.ts +87 -0
  72. package/dist/client/calls.d.ts.map +1 -0
  73. package/dist/client/calls.js +180 -0
  74. package/dist/client/calls.js.map +1 -0
  75. package/dist/client/client.d.ts +112 -0
  76. package/dist/client/client.d.ts.map +1 -0
  77. package/dist/client/client.js +284 -0
  78. package/dist/client/client.js.map +1 -0
  79. package/dist/client/connection.d.ts +52 -0
  80. package/dist/client/connection.d.ts.map +1 -0
  81. package/dist/client/connection.js +157 -0
  82. package/dist/client/connection.js.map +1 -0
  83. package/dist/client/endpoints.d.ts +9 -0
  84. package/dist/client/endpoints.d.ts.map +1 -0
  85. package/dist/client/endpoints.js +25 -0
  86. package/dist/client/endpoints.js.map +1 -0
  87. package/dist/client/frames.d.ts +29 -0
  88. package/dist/client/frames.d.ts.map +1 -0
  89. package/dist/client/frames.js +51 -0
  90. package/dist/client/frames.js.map +1 -0
  91. package/dist/client/index.d.ts +18 -0
  92. package/dist/client/index.d.ts.map +1 -0
  93. package/dist/client/index.js +13 -0
  94. package/dist/client/index.js.map +1 -0
  95. package/dist/client/listeners.d.ts +35 -0
  96. package/dist/client/listeners.d.ts.map +1 -0
  97. package/dist/client/listeners.js +60 -0
  98. package/dist/client/listeners.js.map +1 -0
  99. package/dist/client/lost.d.ts +4 -0
  100. package/dist/client/lost.d.ts.map +1 -0
  101. package/dist/client/lost.js +8 -0
  102. package/dist/client/lost.js.map +1 -0
  103. package/dist/client/observe.d.ts +50 -0
  104. package/dist/client/observe.d.ts.map +1 -0
  105. package/dist/client/observe.js +125 -0
  106. package/dist/client/observe.js.map +1 -0
  107. package/dist/client/signed.d.ts +14 -0
  108. package/dist/client/signed.d.ts.map +1 -0
  109. package/dist/client/signed.js +18 -0
  110. package/dist/client/signed.js.map +1 -0
  111. package/dist/client/testing/gateway.d.ts +58 -0
  112. package/dist/client/testing/gateway.d.ts.map +1 -0
  113. package/dist/client/testing/gateway.js +175 -0
  114. package/dist/client/testing/gateway.js.map +1 -0
  115. package/dist/client/testing/index.d.ts +4 -0
  116. package/dist/client/testing/index.d.ts.map +1 -0
  117. package/dist/client/testing/index.js +4 -0
  118. package/dist/client/testing/index.js.map +1 -0
  119. package/dist/client/testing/log.d.ts +24 -0
  120. package/dist/client/testing/log.d.ts.map +1 -0
  121. package/dist/client/testing/log.js +106 -0
  122. package/dist/client/testing/log.js.map +1 -0
  123. package/dist/client/testing/loopback.d.ts +3 -0
  124. package/dist/client/testing/loopback.d.ts.map +1 -0
  125. package/dist/client/testing/loopback.js +3 -0
  126. package/dist/client/testing/loopback.js.map +1 -0
  127. package/dist/index.d.ts +23 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +27 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/runtime/connect.d.ts +42 -0
  132. package/dist/runtime/connect.d.ts.map +1 -0
  133. package/dist/runtime/connect.js +234 -0
  134. package/dist/runtime/connect.js.map +1 -0
  135. package/dist/runtime/dispatch.d.ts +32 -0
  136. package/dist/runtime/dispatch.d.ts.map +1 -0
  137. package/dist/runtime/dispatch.js +46 -0
  138. package/dist/runtime/dispatch.js.map +1 -0
  139. package/dist/runtime/environment.d.ts +7 -0
  140. package/dist/runtime/environment.d.ts.map +1 -0
  141. package/dist/runtime/environment.js +30 -0
  142. package/dist/runtime/environment.js.map +1 -0
  143. package/dist/runtime/recall.d.ts +9 -0
  144. package/dist/runtime/recall.d.ts.map +1 -0
  145. package/dist/runtime/recall.js +13 -0
  146. package/dist/runtime/recall.js.map +1 -0
  147. package/dist/runtime/run-tool.d.ts +18 -0
  148. package/dist/runtime/run-tool.d.ts.map +1 -0
  149. package/dist/runtime/run-tool.js +70 -0
  150. package/dist/runtime/run-tool.js.map +1 -0
  151. package/dist/serve/index.d.ts +5 -0
  152. package/dist/serve/index.d.ts.map +1 -0
  153. package/dist/serve/index.js +50 -0
  154. package/dist/serve/index.js.map +1 -0
  155. package/dist/serve/io.d.ts +14 -0
  156. package/dist/serve/io.d.ts.map +1 -0
  157. package/dist/serve/io.js +6 -0
  158. package/dist/serve/io.js.map +1 -0
  159. package/dist/serve/leaving.d.ts +12 -0
  160. package/dist/serve/leaving.d.ts.map +1 -0
  161. package/dist/serve/leaving.js +61 -0
  162. package/dist/serve/leaving.js.map +1 -0
  163. package/dist/serve/lines.d.ts +7 -0
  164. package/dist/serve/lines.d.ts.map +1 -0
  165. package/dist/serve/lines.js +25 -0
  166. package/dist/serve/lines.js.map +1 -0
  167. package/dist/serve/load.d.ts +26 -0
  168. package/dist/serve/load.d.ts.map +1 -0
  169. package/dist/serve/load.js +61 -0
  170. package/dist/serve/load.js.map +1 -0
  171. package/dist/serve/machine.d.ts +4 -0
  172. package/dist/serve/machine.d.ts.map +1 -0
  173. package/dist/serve/machine.js +33 -0
  174. package/dist/serve/machine.js.map +1 -0
  175. package/dist/serve/prompt.d.ts +7 -0
  176. package/dist/serve/prompt.d.ts.map +1 -0
  177. package/dist/serve/prompt.js +51 -0
  178. package/dist/serve/prompt.js.map +1 -0
  179. package/dist/serve/start.d.ts +7 -0
  180. package/dist/serve/start.d.ts.map +1 -0
  181. package/dist/serve/start.js +95 -0
  182. package/dist/serve/start.js.map +1 -0
  183. package/dist/serve/viewing.d.ts +17 -0
  184. package/dist/serve/viewing.d.ts.map +1 -0
  185. package/dist/serve/viewing.js +42 -0
  186. package/dist/serve/viewing.js.map +1 -0
  187. package/dist/views/built-in-rules.d.ts +9 -0
  188. package/dist/views/built-in-rules.d.ts.map +1 -0
  189. package/dist/views/built-in-rules.js +28 -0
  190. package/dist/views/built-in-rules.js.map +1 -0
  191. package/dist/views/components.d.ts +17 -0
  192. package/dist/views/components.d.ts.map +1 -0
  193. package/dist/views/components.js +33 -0
  194. package/dist/views/components.js.map +1 -0
  195. package/dist/views/jsx-dev-runtime.d.ts +3 -0
  196. package/dist/views/jsx-dev-runtime.d.ts.map +1 -0
  197. package/dist/views/jsx-dev-runtime.js +4 -0
  198. package/dist/views/jsx-dev-runtime.js.map +1 -0
  199. package/dist/views/jsx-runtime.d.ts +46 -0
  200. package/dist/views/jsx-runtime.d.ts.map +1 -0
  201. package/dist/views/jsx-runtime.js +63 -0
  202. package/dist/views/jsx-runtime.js.map +1 -0
  203. package/dist/views/layout.d.ts +19 -0
  204. package/dist/views/layout.d.ts.map +1 -0
  205. package/dist/views/layout.js +58 -0
  206. package/dist/views/layout.js.map +1 -0
  207. package/dist/views/nodes.d.ts +48 -0
  208. package/dist/views/nodes.d.ts.map +1 -0
  209. package/dist/views/nodes.js +45 -0
  210. package/dist/views/nodes.js.map +1 -0
  211. package/dist/views/panels.d.ts +17 -0
  212. package/dist/views/panels.d.ts.map +1 -0
  213. package/dist/views/panels.js +62 -0
  214. package/dist/views/panels.js.map +1 -0
  215. package/dist/views/render.d.ts +11 -0
  216. package/dist/views/render.d.ts.map +1 -0
  217. package/dist/views/render.js +19 -0
  218. package/dist/views/render.js.map +1 -0
  219. package/dist/wire/agent-config.d.ts +213 -0
  220. package/dist/wire/agent-config.d.ts.map +1 -0
  221. package/dist/wire/agent-config.js +126 -0
  222. package/dist/wire/agent-config.js.map +1 -0
  223. package/dist/wire/codec.d.ts +43 -0
  224. package/dist/wire/codec.d.ts.map +1 -0
  225. package/dist/wire/codec.js +51 -0
  226. package/dist/wire/codec.js.map +1 -0
  227. package/dist/wire/commands.d.ts +443 -0
  228. package/dist/wire/commands.d.ts.map +1 -0
  229. package/dist/wire/commands.js +203 -0
  230. package/dist/wire/commands.js.map +1 -0
  231. package/dist/wire/defs.d.ts +373 -0
  232. package/dist/wire/defs.d.ts.map +1 -0
  233. package/dist/wire/defs.js +212 -0
  234. package/dist/wire/defs.js.map +1 -0
  235. package/dist/wire/envelope.d.ts +29 -0
  236. package/dist/wire/envelope.d.ts.map +1 -0
  237. package/dist/wire/envelope.js +27 -0
  238. package/dist/wire/envelope.js.map +1 -0
  239. package/dist/wire/events-call.d.ts +446 -0
  240. package/dist/wire/events-call.d.ts.map +1 -0
  241. package/dist/wire/events-call.js +196 -0
  242. package/dist/wire/events-call.js.map +1 -0
  243. package/dist/wire/events.d.ts +946 -0
  244. package/dist/wire/events.d.ts.map +1 -0
  245. package/dist/wire/events.js +309 -0
  246. package/dist/wire/events.js.map +1 -0
  247. package/dist/wire/index.d.ts +19 -0
  248. package/dist/wire/index.d.ts.map +1 -0
  249. package/dist/wire/index.js +19 -0
  250. package/dist/wire/index.js.map +1 -0
  251. package/dist/wire/metrics.d.ts +366 -0
  252. package/dist/wire/metrics.d.ts.map +1 -0
  253. package/dist/wire/metrics.js +269 -0
  254. package/dist/wire/metrics.js.map +1 -0
  255. package/dist/wire/reduce.d.ts +10 -0
  256. package/dist/wire/reduce.d.ts.map +1 -0
  257. package/dist/wire/reduce.js +367 -0
  258. package/dist/wire/reduce.js.map +1 -0
  259. package/dist/wire/registry.d.ts +1789 -0
  260. package/dist/wire/registry.d.ts.map +1 -0
  261. package/dist/wire/registry.js +118 -0
  262. package/dist/wire/registry.js.map +1 -0
  263. package/dist/wire/rest-data.d.ts +170 -0
  264. package/dist/wire/rest-data.d.ts.map +1 -0
  265. package/dist/wire/rest-data.js +78 -0
  266. package/dist/wire/rest-data.js.map +1 -0
  267. package/dist/wire/rest-hosting.d.ts +74 -0
  268. package/dist/wire/rest-hosting.d.ts.map +1 -0
  269. package/dist/wire/rest-hosting.js +38 -0
  270. package/dist/wire/rest-hosting.js.map +1 -0
  271. package/dist/wire/rest-retrieval.d.ts +214 -0
  272. package/dist/wire/rest-retrieval.d.ts.map +1 -0
  273. package/dist/wire/rest-retrieval.js +161 -0
  274. package/dist/wire/rest-retrieval.js.map +1 -0
  275. package/dist/wire/rest.d.ts +786 -0
  276. package/dist/wire/rest.d.ts.map +1 -0
  277. package/dist/wire/rest.js +238 -0
  278. package/dist/wire/rest.js.map +1 -0
  279. package/dist/wire/room.d.ts +106 -0
  280. package/dist/wire/room.d.ts.map +1 -0
  281. package/dist/wire/room.js +73 -0
  282. package/dist/wire/room.js.map +1 -0
  283. package/dist/wire/state.d.ts +915 -0
  284. package/dist/wire/state.d.ts.map +1 -0
  285. package/dist/wire/state.js +189 -0
  286. package/dist/wire/state.js.map +1 -0
  287. package/dist/wire/verbs.d.ts +73 -0
  288. package/dist/wire/verbs.d.ts.map +1 -0
  289. package/dist/wire/verbs.js +50 -0
  290. package/dist/wire/verbs.js.map +1 -0
  291. package/package.json +74 -0
  292. package/tsconfig.tenant.json +24 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce.d.ts","sourceRoot":"","sources":["../../src/wire/reduce.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAGjF,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAkC,KAAK,KAAK,EAAgB,MAAM,YAAY,CAAC;AAEtF,+EAA+E;AAC/E,wBAAgB,YAAY,IAAI,KAAK,CAyCpC;AAED,iEAAiE;AACjE,eAAO,MAAM,UAAU,eAAe,CAAC;AAkBvC,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAyBvD"}
@@ -0,0 +1,367 @@
1
+ /** Folds a log into its State, entry by entry, as the runtime's reducer does. */
2
+ import { eventOf } from "./codec.js";
3
+ import {} from "./envelope.js";
4
+ import {} from "./room.js";
5
+ import {} from "./state.js";
6
+ /** The state of an empty log: nothing known, every list empty, status idle. */
7
+ export function initialState() {
8
+ return {
9
+ seq: 0,
10
+ agent: "",
11
+ call: null,
12
+ status: "idle",
13
+ channel: null,
14
+ direction: null,
15
+ from: null,
16
+ to: null,
17
+ caller: null,
18
+ room: null,
19
+ started_at: null,
20
+ ended_at: null,
21
+ end_reason: null,
22
+ outcome: null,
23
+ user_state: null,
24
+ agent_state: null,
25
+ live: { user: null, agent: null },
26
+ turns: [],
27
+ metrics: { llm: [], stt: [], tts: [], vad: [], eou: [], eot: [], interruption: [], realtime: [], avatar: [] },
28
+ tools: [],
29
+ app_state: {},
30
+ events: [],
31
+ prompt: {},
32
+ tools_visible: [],
33
+ confirms: [],
34
+ memory: [],
35
+ sources: [],
36
+ handoff: { active: false, by: null },
37
+ held: false,
38
+ muted: false,
39
+ transfer: null,
40
+ attention: null,
41
+ usage: [],
42
+ cost: null,
43
+ routes: [],
44
+ gaps: [],
45
+ errors: [],
46
+ custom: [],
47
+ };
48
+ }
49
+ /** Error code recorded for an entry the reader cannot decode. */
50
+ export const UNREADABLE = "unreadable";
51
+ // Old logs may hold entries in shapes this reader no longer accepts. Record one error and keep
52
+ // folding instead of rejecting the whole call, as the runtime does.
53
+ function unreadable(state, entry, why) {
54
+ const said = why instanceof Error ? why.message : String(why);
55
+ state.errors.push({
56
+ seq: entry.seq,
57
+ code: UNREADABLE,
58
+ message: `${entry.type} at seq ${entry.seq} is not the shape this reader knows: ${said.split("\n")[0]?.trim() ?? said}`,
59
+ });
60
+ return state;
61
+ }
62
+ // A gap with a snapshot replaces the state; every other entry mutates it in place. The seq always
63
+ // advances to the entry's.
64
+ /** Fold one entry in and return the state to continue with. */
65
+ export function apply(state, entry) {
66
+ let event;
67
+ try {
68
+ event = eventOf(entry);
69
+ }
70
+ catch (why) {
71
+ const said = unreadable(state, entry, why);
72
+ said.seq = entry.seq;
73
+ said.agent = entry.agent;
74
+ if (entry.call !== null) {
75
+ said.call = entry.call;
76
+ }
77
+ return said;
78
+ }
79
+ let next = state;
80
+ if (event.type === "log.gap") {
81
+ next = onLogGap(state, event);
82
+ }
83
+ else {
84
+ applyEvent(state, entry, event);
85
+ }
86
+ next.seq = entry.seq;
87
+ next.agent = entry.agent;
88
+ if (entry.call !== null) {
89
+ next.call = entry.call;
90
+ }
91
+ return next;
92
+ }
93
+ function applyEvent(state, entry, event) {
94
+ switch (event.type) {
95
+ // ── the call ──
96
+ case "call.ringing":
97
+ state.status = "ringing";
98
+ state.direction = "inbound";
99
+ rememberTheLine(state, event.data);
100
+ return;
101
+ case "call.dialing":
102
+ state.status = "dialing";
103
+ state.direction = "outbound";
104
+ rememberTheLine(state, event.data);
105
+ return;
106
+ case "call.started":
107
+ state.status = "active";
108
+ state.direction = event.data.direction;
109
+ state.started_at = event.data.started_at;
110
+ rememberTheLine(state, event.data);
111
+ return;
112
+ case "call.ended":
113
+ state.status = "ended";
114
+ state.ended_at = event.data.ended_at;
115
+ state.end_reason = event.data.reason;
116
+ state.live = { user: null, agent: null };
117
+ // A caller who hung up while waiting for a person was never answered.
118
+ if (state.attention?.status === "open")
119
+ state.attention = { ...state.attention, status: "lapsed" };
120
+ return;
121
+ case "call.transferred":
122
+ state.transfer = {
123
+ to: event.data.to,
124
+ mode: event.data.mode,
125
+ status: event.data.ok ? "done" : "failed",
126
+ by: state.transfer?.by ?? "agent",
127
+ };
128
+ return;
129
+ case "call.line":
130
+ state.held = event.data.held;
131
+ state.muted = event.data.muted;
132
+ return;
133
+ case "call.summary":
134
+ state.usage = [...event.data.usage];
135
+ state.cost = event.data.cost;
136
+ state.outcome = event.data.outcome;
137
+ state.end_reason ??= event.data.reason;
138
+ return;
139
+ // ── the conversation ──
140
+ case "user.state":
141
+ state.user_state = event.data.state;
142
+ return;
143
+ case "agent.state":
144
+ state.agent_state = event.data.state;
145
+ return;
146
+ case "user.transcript":
147
+ state.live.user = event.data.final ? null : event.data.text;
148
+ return;
149
+ case "agent.transcript":
150
+ // A delta: one word of a spoken reply, or one token of a written one.
151
+ state.live.agent = event.data.final ? null : saidSoFar(state.live.agent, event.data);
152
+ return;
153
+ case "turn.user":
154
+ state.turns.push({ role: "user", ...event.data });
155
+ state.live.user = null;
156
+ return;
157
+ case "turn.agent":
158
+ state.turns.push({ role: "agent", ...event.data });
159
+ state.live.agent = null;
160
+ return;
161
+ case "memory.ops":
162
+ state.memory.push(...event.data.ops);
163
+ return;
164
+ case "docs.sources":
165
+ state.sources = [...event.data.sources];
166
+ return;
167
+ // ── metrics: every block is kept, in order, by kind ──
168
+ case "metrics.llm":
169
+ state.metrics.llm.push(event.data);
170
+ return;
171
+ case "metrics.stt":
172
+ state.metrics.stt.push(event.data);
173
+ return;
174
+ case "metrics.tts":
175
+ state.metrics.tts.push(event.data);
176
+ return;
177
+ case "metrics.vad":
178
+ state.metrics.vad.push(event.data);
179
+ return;
180
+ case "metrics.eou":
181
+ state.metrics.eou.push(event.data);
182
+ return;
183
+ case "metrics.eot":
184
+ state.metrics.eot.push(event.data);
185
+ return;
186
+ case "metrics.interruption":
187
+ state.metrics.interruption.push(event.data);
188
+ return;
189
+ case "metrics.realtime":
190
+ state.metrics.realtime.push(event.data);
191
+ return;
192
+ case "metrics.avatar":
193
+ state.metrics.avatar.push(event.data);
194
+ return;
195
+ // ── tools, state, confirmation ──
196
+ case "tool.call":
197
+ state.tools.push({ ...event.data, status: "running", seq: entry.seq });
198
+ return;
199
+ case "tool.result":
200
+ onToolResult(state, event.data);
201
+ return;
202
+ case "state.changed":
203
+ state.app_state = { ...event.data.state };
204
+ return;
205
+ case "prompt.changed":
206
+ state.prompt[event.data.name] = { hash: event.data.hash, chars: event.data.chars, seq: entry.seq };
207
+ return;
208
+ case "tools.changed":
209
+ state.tools_visible = [...event.data.visible];
210
+ return;
211
+ case "confirm.request":
212
+ state.confirms.push({
213
+ tool: event.data.tool,
214
+ call_id: event.data.call_id,
215
+ audience: event.data.audience,
216
+ phrase: event.data.phrase,
217
+ status: "pending",
218
+ });
219
+ return;
220
+ case "confirm.granted":
221
+ settleConfirm(state, event.data.call_id, { status: "granted", said: event.data.said });
222
+ return;
223
+ case "confirm.declined":
224
+ settleConfirm(state, event.data.call_id, {
225
+ status: "declined",
226
+ reason: event.data.reason,
227
+ ...(event.data.said !== undefined ? { said: event.data.said } : {}),
228
+ });
229
+ return;
230
+ // ── supervision, the agent, markers ──
231
+ case "supervisor.took_over":
232
+ state.handoff = { active: true, by: event.data.by };
233
+ return;
234
+ case "supervisor.released":
235
+ state.handoff = { active: false, by: null };
236
+ return;
237
+ case "supervisor.transferred":
238
+ state.transfer = { to: event.data.to, mode: event.data.mode, status: "requested", by: "supervisor" };
239
+ return;
240
+ case "attention.requested":
241
+ state.attention = { reason: event.data.reason, wait_s: event.data.wait_s, status: "open", asked_at: entry.ts, by: null };
242
+ return;
243
+ case "attention.answered":
244
+ if (state.attention !== null && state.attention !== undefined) {
245
+ state.attention = { ...state.attention, status: event.data.ok ? "answered" : "lapsed", by: event.data.by };
246
+ }
247
+ return;
248
+ case "agent.registered":
249
+ state.routes = [...event.data.routes];
250
+ return;
251
+ case "error":
252
+ state.errors.push({ seq: entry.seq, code: event.data.code, message: event.data.message });
253
+ return;
254
+ case "custom":
255
+ state.custom.push({ seq: entry.seq, name: event.data.name, data: { ...event.data.data } });
256
+ return;
257
+ // ── the room and the outside world ──
258
+ case "room.opened":
259
+ state.room = { name: event.data.name, sid: event.data.sid, participants: [], caller: null };
260
+ return;
261
+ case "participant.joined":
262
+ onParticipantJoined(state, entry, event.data);
263
+ return;
264
+ case "participant.left":
265
+ onParticipantLeft(state, event.data.identity);
266
+ return;
267
+ case "participant.speaking": {
268
+ const who = participantIn(state, event.data.identity);
269
+ if (who !== undefined) {
270
+ who.speaking = event.data.speaking;
271
+ }
272
+ return;
273
+ }
274
+ // The fact is kept by name and origin; its data stays in the log at that seq.
275
+ case "event.received": {
276
+ const { data: _data, ...fact } = event.data;
277
+ state.events.push({ ...fact, seq: entry.seq });
278
+ return;
279
+ }
280
+ // Not reduced: supervisor.said/.whispered surface as turns and prompt changes, supervisor.ended
281
+ // as call.ended, and the rest are kept in the log only.
282
+ case "track.published":
283
+ case "track.unpublished":
284
+ case "room.sent":
285
+ case "supervisor.said":
286
+ case "supervisor.whispered":
287
+ case "supervisor.ended":
288
+ case "agent.configured":
289
+ case "pong":
290
+ case "log.caught_up":
291
+ case "log.gap":
292
+ return;
293
+ }
294
+ }
295
+ function rememberTheLine(state, line) {
296
+ state.channel = line.channel;
297
+ state.from = line.from;
298
+ state.to = line.to;
299
+ state.caller = line.caller;
300
+ }
301
+ function onToolResult(state, result) {
302
+ const index = lastIndex(state.tools, (run) => run.call_id === result.call_id);
303
+ if (index === -1) {
304
+ return;
305
+ }
306
+ const { call_id: _callId, name: _name, ...outcome } = result;
307
+ const run = state.tools[index];
308
+ state.tools[index] = { ...run, ...outcome, status: outcome.error !== undefined ? "failed" : "done" };
309
+ }
310
+ function settleConfirm(state, callId, verdict) {
311
+ const index = lastIndex(state.confirms, (confirm) => confirm.call_id === callId);
312
+ if (index === -1) {
313
+ return;
314
+ }
315
+ const confirm = state.confirms[index];
316
+ state.confirms[index] = { ...confirm, ...verdict };
317
+ }
318
+ // joined_at is the entry's ts; the event does not repeat it.
319
+ function onParticipantJoined(state, entry, joined) {
320
+ if (state.room === null) {
321
+ return;
322
+ }
323
+ state.room.participants.push({ ...joined, joined_at: entry.ts, speaking: false });
324
+ if (joined.kind === "caller") {
325
+ state.room.caller = joined.identity;
326
+ }
327
+ }
328
+ // An identity is unique within a room: LiveKit disconnects the first of two that share one.
329
+ function onParticipantLeft(state, identity) {
330
+ if (state.room === null) {
331
+ return;
332
+ }
333
+ const seat = state.room.participants.findIndex((one) => one.identity === identity);
334
+ if (seat !== -1) {
335
+ state.room.participants.splice(seat, 1);
336
+ }
337
+ if (state.room.caller === identity) {
338
+ state.room.caller = null;
339
+ }
340
+ }
341
+ function participantIn(state, identity) {
342
+ return state.room?.participants.find((one) => one.identity === identity);
343
+ }
344
+ function onLogGap(state, event) {
345
+ const next = event.data.snapshot !== null ? structuredClone(event.data.snapshot) : state;
346
+ next.gaps.push({ from_seq: event.data.from_seq, to_seq: event.data.to_seq });
347
+ return next;
348
+ }
349
+ function lastIndex(items, matches) {
350
+ for (let index = items.length - 1; index >= 0; index -= 1) {
351
+ if (matches(items[index])) {
352
+ return index;
353
+ }
354
+ }
355
+ return -1;
356
+ }
357
+ /**
358
+ * Append a delta to the reply in flight. Aligned voice words arrive bare and are joined with a
359
+ * space; written tokens carry their own spacing ("clean" + "ing" must not gain a space).
360
+ */
361
+ function saidSoFar(soFar, delta) {
362
+ if (soFar === null || soFar === "")
363
+ return delta.text;
364
+ const apart = /\s$/.test(soFar) || /^\s/.test(delta.text);
365
+ return delta.start != null && !apart ? `${soFar} ${delta.text}` : `${soFar}${delta.text}`;
366
+ }
367
+ //# sourceMappingURL=reduce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduce.js","sourceRoot":"","sources":["../../src/wire/reduce.ts"],"names":[],"mappings":"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"}