pinecall 0.1.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 (431) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +134 -0
  3. package/dist/agent/accepts.d.ts +32 -0
  4. package/dist/agent/accepts.d.ts.map +1 -0
  5. package/dist/agent/accepts.js +28 -0
  6. package/dist/agent/accepts.js.map +1 -0
  7. package/dist/agent/agent.d.ts +189 -0
  8. package/dist/agent/agent.d.ts.map +1 -0
  9. package/dist/agent/agent.js +262 -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 +28 -0
  14. package/dist/agent/authors.js.map +1 -0
  15. package/dist/agent/decorators.d.ts +22 -0
  16. package/dist/agent/decorators.d.ts.map +1 -0
  17. package/dist/agent/decorators.js +49 -0
  18. package/dist/agent/decorators.js.map +1 -0
  19. package/dist/agent/docstrings.d.ts +43 -0
  20. package/dist/agent/docstrings.d.ts.map +1 -0
  21. package/dist/agent/docstrings.js +311 -0
  22. package/dist/agent/docstrings.js.map +1 -0
  23. package/dist/agent/lifecycle.d.ts +29 -0
  24. package/dist/agent/lifecycle.d.ts.map +1 -0
  25. package/dist/agent/lifecycle.js +11 -0
  26. package/dist/agent/lifecycle.js.map +1 -0
  27. package/dist/agent/stages.d.ts +28 -0
  28. package/dist/agent/stages.d.ts.map +1 -0
  29. package/dist/agent/stages.js +32 -0
  30. package/dist/agent/stages.js.map +1 -0
  31. package/dist/agent/state.d.ts +43 -0
  32. package/dist/agent/state.d.ts.map +1 -0
  33. package/dist/agent/state.js +104 -0
  34. package/dist/agent/state.js.map +1 -0
  35. package/dist/agent/tools.d.ts +66 -0
  36. package/dist/agent/tools.d.ts.map +1 -0
  37. package/dist/agent/tools.js +148 -0
  38. package/dist/agent/tools.js.map +1 -0
  39. package/dist/agent/visibility.d.ts +40 -0
  40. package/dist/agent/visibility.d.ts.map +1 -0
  41. package/dist/agent/visibility.js +89 -0
  42. package/dist/agent/visibility.js.map +1 -0
  43. package/dist/call/call.d.ts +55 -0
  44. package/dist/call/call.d.ts.map +1 -0
  45. package/dist/call/call.js +108 -0
  46. package/dist/call/call.js.map +1 -0
  47. package/dist/call/history.d.ts +34 -0
  48. package/dist/call/history.d.ts.map +1 -0
  49. package/dist/call/history.js +38 -0
  50. package/dist/call/history.js.map +1 -0
  51. package/dist/call/room.d.ts +58 -0
  52. package/dist/call/room.d.ts.map +1 -0
  53. package/dist/call/room.js +68 -0
  54. package/dist/call/room.js.map +1 -0
  55. package/dist/cli/browser.d.ts +8 -0
  56. package/dist/cli/browser.d.ts.map +1 -0
  57. package/dist/cli/browser.js +27 -0
  58. package/dist/cli/browser.js.map +1 -0
  59. package/dist/cli/callbacks.d.ts +26 -0
  60. package/dist/cli/callbacks.d.ts.map +1 -0
  61. package/dist/cli/callbacks.js +68 -0
  62. package/dist/cli/callbacks.js.map +1 -0
  63. package/dist/cli/chat.d.ts +21 -0
  64. package/dist/cli/chat.d.ts.map +1 -0
  65. package/dist/cli/chat.js +214 -0
  66. package/dist/cli/chat.js.map +1 -0
  67. package/dist/cli/config.d.ts +16 -0
  68. package/dist/cli/config.d.ts.map +1 -0
  69. package/dist/cli/config.js +94 -0
  70. package/dist/cli/config.js.map +1 -0
  71. package/dist/cli/connected.d.ts +30 -0
  72. package/dist/cli/connected.d.ts.map +1 -0
  73. package/dist/cli/connected.js +32 -0
  74. package/dist/cli/connected.js.map +1 -0
  75. package/dist/cli/credentials.d.ts +41 -0
  76. package/dist/cli/credentials.d.ts.map +1 -0
  77. package/dist/cli/credentials.js +98 -0
  78. package/dist/cli/credentials.js.map +1 -0
  79. package/dist/cli/ear.d.ts +3 -0
  80. package/dist/cli/ear.d.ts.map +1 -0
  81. package/dist/cli/ear.js +59 -0
  82. package/dist/cli/ear.js.map +1 -0
  83. package/dist/cli/env.d.ts +40 -0
  84. package/dist/cli/env.d.ts.map +1 -0
  85. package/dist/cli/env.js +45 -0
  86. package/dist/cli/env.js.map +1 -0
  87. package/dist/cli/eval.d.ts +37 -0
  88. package/dist/cli/eval.d.ts.map +1 -0
  89. package/dist/cli/eval.js +83 -0
  90. package/dist/cli/eval.js.map +1 -0
  91. package/dist/cli/groups.d.ts +17 -0
  92. package/dist/cli/groups.d.ts.map +1 -0
  93. package/dist/cli/groups.js +38 -0
  94. package/dist/cli/groups.js.map +1 -0
  95. package/dist/cli/index.d.ts +16 -0
  96. package/dist/cli/index.d.ts.map +1 -0
  97. package/dist/cli/index.js +169 -0
  98. package/dist/cli/index.js.map +1 -0
  99. package/dist/cli/keys.d.ts +28 -0
  100. package/dist/cli/keys.d.ts.map +1 -0
  101. package/dist/cli/keys.js +137 -0
  102. package/dist/cli/keys.js.map +1 -0
  103. package/dist/cli/knowledge.d.ts +35 -0
  104. package/dist/cli/knowledge.d.ts.map +1 -0
  105. package/dist/cli/knowledge.js +174 -0
  106. package/dist/cli/knowledge.js.map +1 -0
  107. package/dist/cli/line.d.ts +33 -0
  108. package/dist/cli/line.d.ts.map +1 -0
  109. package/dist/cli/line.js +134 -0
  110. package/dist/cli/line.js.map +1 -0
  111. package/dist/cli/listening.d.ts +38 -0
  112. package/dist/cli/listening.d.ts.map +1 -0
  113. package/dist/cli/listening.js +124 -0
  114. package/dist/cli/listening.js.map +1 -0
  115. package/dist/cli/load.d.ts +38 -0
  116. package/dist/cli/load.d.ts.map +1 -0
  117. package/dist/cli/load.js +99 -0
  118. package/dist/cli/load.js.map +1 -0
  119. package/dist/cli/login.d.ts +30 -0
  120. package/dist/cli/login.d.ts.map +1 -0
  121. package/dist/cli/login.js +158 -0
  122. package/dist/cli/login.js.map +1 -0
  123. package/dist/cli/machine.d.ts +8 -0
  124. package/dist/cli/machine.d.ts.map +1 -0
  125. package/dist/cli/machine.js +41 -0
  126. package/dist/cli/machine.js.map +1 -0
  127. package/dist/cli/memory.d.ts +26 -0
  128. package/dist/cli/memory.d.ts.map +1 -0
  129. package/dist/cli/memory.js +148 -0
  130. package/dist/cli/memory.js.map +1 -0
  131. package/dist/cli/numbers.d.ts +25 -0
  132. package/dist/cli/numbers.d.ts.map +1 -0
  133. package/dist/cli/numbers.js +132 -0
  134. package/dist/cli/numbers.js.map +1 -0
  135. package/dist/cli/personas.d.ts +5 -0
  136. package/dist/cli/personas.d.ts.map +1 -0
  137. package/dist/cli/personas.js +94 -0
  138. package/dist/cli/personas.js.map +1 -0
  139. package/dist/cli/pipeline.d.ts +52 -0
  140. package/dist/cli/pipeline.d.ts.map +1 -0
  141. package/dist/cli/pipeline.js +184 -0
  142. package/dist/cli/pipeline.js.map +1 -0
  143. package/dist/cli/profiles.d.ts +70 -0
  144. package/dist/cli/profiles.d.ts.map +1 -0
  145. package/dist/cli/profiles.js +210 -0
  146. package/dist/cli/profiles.js.map +1 -0
  147. package/dist/cli/prompt.d.ts +20 -0
  148. package/dist/cli/prompt.d.ts.map +1 -0
  149. package/dist/cli/prompt.js +58 -0
  150. package/dist/cli/prompt.js.map +1 -0
  151. package/dist/cli/providers.d.ts +14 -0
  152. package/dist/cli/providers.d.ts.map +1 -0
  153. package/dist/cli/providers.js +116 -0
  154. package/dist/cli/providers.js.map +1 -0
  155. package/dist/cli/remember.d.ts +29 -0
  156. package/dist/cli/remember.d.ts.map +1 -0
  157. package/dist/cli/remember.js +112 -0
  158. package/dist/cli/remember.js.map +1 -0
  159. package/dist/cli/run.d.ts +20 -0
  160. package/dist/cli/run.d.ts.map +1 -0
  161. package/dist/cli/run.js +347 -0
  162. package/dist/cli/run.js.map +1 -0
  163. package/dist/cli/runs/candidate.d.ts +51 -0
  164. package/dist/cli/runs/candidate.d.ts.map +1 -0
  165. package/dist/cli/runs/candidate.js +127 -0
  166. package/dist/cli/runs/candidate.js.map +1 -0
  167. package/dist/cli/runs/drift.d.ts +75 -0
  168. package/dist/cli/runs/drift.d.ts.map +1 -0
  169. package/dist/cli/runs/drift.js +151 -0
  170. package/dist/cli/runs/drift.js.map +1 -0
  171. package/dist/cli/runs/index.d.ts +5 -0
  172. package/dist/cli/runs/index.d.ts.map +1 -0
  173. package/dist/cli/runs/index.js +99 -0
  174. package/dist/cli/runs/index.js.map +1 -0
  175. package/dist/cli/runs/suites.d.ts +16 -0
  176. package/dist/cli/runs/suites.d.ts.map +1 -0
  177. package/dist/cli/runs/suites.js +63 -0
  178. package/dist/cli/runs/suites.js.map +1 -0
  179. package/dist/cli/secret.d.ts +18 -0
  180. package/dist/cli/secret.d.ts.map +1 -0
  181. package/dist/cli/secret.js +41 -0
  182. package/dist/cli/secret.js.map +1 -0
  183. package/dist/cli/sessions.d.ts +21 -0
  184. package/dist/cli/sessions.d.ts.map +1 -0
  185. package/dist/cli/sessions.js +174 -0
  186. package/dist/cli/sessions.js.map +1 -0
  187. package/dist/cli/signup.d.ts +25 -0
  188. package/dist/cli/signup.d.ts.map +1 -0
  189. package/dist/cli/signup.js +122 -0
  190. package/dist/cli/signup.js.map +1 -0
  191. package/dist/cli/simulate.d.ts +45 -0
  192. package/dist/cli/simulate.d.ts.map +1 -0
  193. package/dist/cli/simulate.js +320 -0
  194. package/dist/cli/simulate.js.map +1 -0
  195. package/dist/cli/supervise.d.ts +18 -0
  196. package/dist/cli/supervise.d.ts.map +1 -0
  197. package/dist/cli/supervise.js +134 -0
  198. package/dist/cli/supervise.js.map +1 -0
  199. package/dist/cli/test.d.ts +12 -0
  200. package/dist/cli/test.d.ts.map +1 -0
  201. package/dist/cli/test.js +128 -0
  202. package/dist/cli/test.js.map +1 -0
  203. package/dist/cli/testing/caller.d.ts +28 -0
  204. package/dist/cli/testing/caller.d.ts.map +1 -0
  205. package/dist/cli/testing/caller.js +30 -0
  206. package/dist/cli/testing/caller.js.map +1 -0
  207. package/dist/cli/testing/gateway.d.ts +172 -0
  208. package/dist/cli/testing/gateway.d.ts.map +1 -0
  209. package/dist/cli/testing/gateway.js +96 -0
  210. package/dist/cli/testing/gateway.js.map +1 -0
  211. package/dist/cli/testing/goldens.d.ts +61 -0
  212. package/dist/cli/testing/goldens.d.ts.map +1 -0
  213. package/dist/cli/testing/goldens.js +54 -0
  214. package/dist/cli/testing/goldens.js.map +1 -0
  215. package/dist/cli/testing/latency.d.ts +15 -0
  216. package/dist/cli/testing/latency.d.ts.map +1 -0
  217. package/dist/cli/testing/latency.js +44 -0
  218. package/dist/cli/testing/latency.js.map +1 -0
  219. package/dist/cli/testing/matrix.d.ts +12 -0
  220. package/dist/cli/testing/matrix.d.ts.map +1 -0
  221. package/dist/cli/testing/matrix.js +103 -0
  222. package/dist/cli/testing/matrix.js.map +1 -0
  223. package/dist/cli/testing/progress.d.ts +26 -0
  224. package/dist/cli/testing/progress.d.ts.map +1 -0
  225. package/dist/cli/testing/progress.js +185 -0
  226. package/dist/cli/testing/progress.js.map +1 -0
  227. package/dist/cli/testing/reproduction.d.ts +19 -0
  228. package/dist/cli/testing/reproduction.d.ts.map +1 -0
  229. package/dist/cli/testing/reproduction.js +65 -0
  230. package/dist/cli/testing/reproduction.js.map +1 -0
  231. package/dist/cli/testing/score.d.ts +11 -0
  232. package/dist/cli/testing/score.d.ts.map +1 -0
  233. package/dist/cli/testing/score.js +54 -0
  234. package/dist/cli/testing/score.js.map +1 -0
  235. package/dist/cli/testing/seeding.d.ts +32 -0
  236. package/dist/cli/testing/seeding.d.ts.map +1 -0
  237. package/dist/cli/testing/seeding.js +44 -0
  238. package/dist/cli/testing/seeding.js.map +1 -0
  239. package/dist/cli/testing/suite.d.ts +40 -0
  240. package/dist/cli/testing/suite.d.ts.map +1 -0
  241. package/dist/cli/testing/suite.js +103 -0
  242. package/dist/cli/testing/suite.js.map +1 -0
  243. package/dist/cli/testing/voice.d.ts +37 -0
  244. package/dist/cli/testing/voice.d.ts.map +1 -0
  245. package/dist/cli/testing/voice.js +53 -0
  246. package/dist/cli/testing/voice.js.map +1 -0
  247. package/dist/cli/ui/admin/assets/index-C3WMXdfL.css +1 -0
  248. package/dist/cli/ui/admin/assets/index-DR1mxoAh.js +58 -0
  249. package/dist/cli/ui/admin/index.html +20 -0
  250. package/dist/cli/ui/asked.d.ts +16 -0
  251. package/dist/cli/ui/asked.d.ts.map +1 -0
  252. package/dist/cli/ui/asked.js +53 -0
  253. package/dist/cli/ui/asked.js.map +1 -0
  254. package/dist/cli/ui/browser.d.ts +10 -0
  255. package/dist/cli/ui/browser.d.ts.map +1 -0
  256. package/dist/cli/ui/browser.js +30 -0
  257. package/dist/cli/ui/browser.js.map +1 -0
  258. package/dist/cli/ui/chatting.d.ts +62 -0
  259. package/dist/cli/ui/chatting.d.ts.map +1 -0
  260. package/dist/cli/ui/chatting.js +171 -0
  261. package/dist/cli/ui/chatting.js.map +1 -0
  262. package/dist/cli/ui/console/assets/index-DCTnou52.css +1 -0
  263. package/dist/cli/ui/console/assets/index-dOcE4usU.js +99 -0
  264. package/dist/cli/ui/console/index.html +20 -0
  265. package/dist/cli/ui/console/logo-mark.png +0 -0
  266. package/dist/cli/ui/doors.d.ts +37 -0
  267. package/dist/cli/ui/doors.d.ts.map +1 -0
  268. package/dist/cli/ui/doors.js +70 -0
  269. package/dist/cli/ui/doors.js.map +1 -0
  270. package/dist/cli/ui/drifting.d.ts +23 -0
  271. package/dist/cli/ui/drifting.d.ts.map +1 -0
  272. package/dist/cli/ui/drifting.js +33 -0
  273. package/dist/cli/ui/drifting.js.map +1 -0
  274. package/dist/cli/ui/index.d.ts +15 -0
  275. package/dist/cli/ui/index.d.ts.map +1 -0
  276. package/dist/cli/ui/index.js +117 -0
  277. package/dist/cli/ui/index.js.map +1 -0
  278. package/dist/cli/ui/knowing.d.ts +36 -0
  279. package/dist/cli/ui/knowing.d.ts.map +1 -0
  280. package/dist/cli/ui/knowing.js +86 -0
  281. package/dist/cli/ui/knowing.js.map +1 -0
  282. package/dist/cli/ui/promoting.d.ts +26 -0
  283. package/dist/cli/ui/promoting.d.ts.map +1 -0
  284. package/dist/cli/ui/promoting.js +44 -0
  285. package/dist/cli/ui/promoting.js.map +1 -0
  286. package/dist/cli/ui/refusal.d.ts +18 -0
  287. package/dist/cli/ui/refusal.d.ts.map +1 -0
  288. package/dist/cli/ui/refusal.js +26 -0
  289. package/dist/cli/ui/refusal.js.map +1 -0
  290. package/dist/cli/ui/refused.d.ts +8 -0
  291. package/dist/cli/ui/refused.d.ts.map +1 -0
  292. package/dist/cli/ui/refused.js +11 -0
  293. package/dist/cli/ui/refused.js.map +1 -0
  294. package/dist/cli/ui/remembering.d.ts +38 -0
  295. package/dist/cli/ui/remembering.d.ts.map +1 -0
  296. package/dist/cli/ui/remembering.js +87 -0
  297. package/dist/cli/ui/remembering.js.map +1 -0
  298. package/dist/cli/ui/reproducing.d.ts +23 -0
  299. package/dist/cli/ui/reproducing.d.ts.map +1 -0
  300. package/dist/cli/ui/reproducing.js +52 -0
  301. package/dist/cli/ui/reproducing.js.map +1 -0
  302. package/dist/cli/ui/server.d.ts +22 -0
  303. package/dist/cli/ui/server.d.ts.map +1 -0
  304. package/dist/cli/ui/server.js +211 -0
  305. package/dist/cli/ui/server.js.map +1 -0
  306. package/dist/cli/ui/simulating.d.ts +47 -0
  307. package/dist/cli/ui/simulating.d.ts.map +1 -0
  308. package/dist/cli/ui/simulating.js +86 -0
  309. package/dist/cli/ui/simulating.js.map +1 -0
  310. package/dist/cli/ui/testing.d.ts +49 -0
  311. package/dist/cli/ui/testing.d.ts.map +1 -0
  312. package/dist/cli/ui/testing.js +104 -0
  313. package/dist/cli/ui/testing.js.map +1 -0
  314. package/dist/cli/view.d.ts +43 -0
  315. package/dist/cli/view.d.ts.map +1 -0
  316. package/dist/cli/view.js +137 -0
  317. package/dist/cli/view.js.map +1 -0
  318. package/dist/cli/whoami.d.ts +37 -0
  319. package/dist/cli/whoami.d.ts.map +1 -0
  320. package/dist/cli/whoami.js +78 -0
  321. package/dist/cli/whoami.js.map +1 -0
  322. package/dist/cli/world.d.ts +33 -0
  323. package/dist/cli/world.d.ts.map +1 -0
  324. package/dist/cli/world.js +48 -0
  325. package/dist/cli/world.js.map +1 -0
  326. package/dist/client/agent.d.ts +87 -0
  327. package/dist/client/agent.d.ts.map +1 -0
  328. package/dist/client/agent.js +209 -0
  329. package/dist/client/agent.js.map +1 -0
  330. package/dist/client/calls.d.ts +77 -0
  331. package/dist/client/calls.d.ts.map +1 -0
  332. package/dist/client/calls.js +153 -0
  333. package/dist/client/calls.js.map +1 -0
  334. package/dist/client/client.d.ts +58 -0
  335. package/dist/client/client.d.ts.map +1 -0
  336. package/dist/client/client.js +146 -0
  337. package/dist/client/client.js.map +1 -0
  338. package/dist/client/connection.d.ts +47 -0
  339. package/dist/client/connection.d.ts.map +1 -0
  340. package/dist/client/connection.js +141 -0
  341. package/dist/client/connection.js.map +1 -0
  342. package/dist/client/endpoints.d.ts +7 -0
  343. package/dist/client/endpoints.d.ts.map +1 -0
  344. package/dist/client/endpoints.js +21 -0
  345. package/dist/client/endpoints.js.map +1 -0
  346. package/dist/client/frames.d.ts +24 -0
  347. package/dist/client/frames.d.ts.map +1 -0
  348. package/dist/client/frames.js +49 -0
  349. package/dist/client/frames.js.map +1 -0
  350. package/dist/client/index.d.ts +15 -0
  351. package/dist/client/index.d.ts.map +1 -0
  352. package/dist/client/index.js +14 -0
  353. package/dist/client/index.js.map +1 -0
  354. package/dist/client/listeners.d.ts +36 -0
  355. package/dist/client/listeners.d.ts.map +1 -0
  356. package/dist/client/listeners.js +61 -0
  357. package/dist/client/listeners.js.map +1 -0
  358. package/dist/client/observe.d.ts +44 -0
  359. package/dist/client/observe.d.ts.map +1 -0
  360. package/dist/client/observe.js +122 -0
  361. package/dist/client/observe.js.map +1 -0
  362. package/dist/client/testing/gateway.d.ts +39 -0
  363. package/dist/client/testing/gateway.d.ts.map +1 -0
  364. package/dist/client/testing/gateway.js +129 -0
  365. package/dist/client/testing/gateway.js.map +1 -0
  366. package/dist/client/testing/index.d.ts +4 -0
  367. package/dist/client/testing/index.d.ts.map +1 -0
  368. package/dist/client/testing/index.js +4 -0
  369. package/dist/client/testing/index.js.map +1 -0
  370. package/dist/client/testing/log.d.ts +26 -0
  371. package/dist/client/testing/log.d.ts.map +1 -0
  372. package/dist/client/testing/log.js +111 -0
  373. package/dist/client/testing/log.js.map +1 -0
  374. package/dist/client/testing/loopback.d.ts +3 -0
  375. package/dist/client/testing/loopback.d.ts.map +1 -0
  376. package/dist/client/testing/loopback.js +3 -0
  377. package/dist/client/testing/loopback.js.map +1 -0
  378. package/dist/index.d.ts +22 -0
  379. package/dist/index.d.ts.map +1 -0
  380. package/dist/index.js +35 -0
  381. package/dist/index.js.map +1 -0
  382. package/dist/runtime/channels.d.ts +16 -0
  383. package/dist/runtime/channels.d.ts.map +1 -0
  384. package/dist/runtime/channels.js +30 -0
  385. package/dist/runtime/channels.js.map +1 -0
  386. package/dist/runtime/connect.d.ts +51 -0
  387. package/dist/runtime/connect.d.ts.map +1 -0
  388. package/dist/runtime/connect.js +284 -0
  389. package/dist/runtime/connect.js.map +1 -0
  390. package/dist/runtime/dispatch.d.ts +37 -0
  391. package/dist/runtime/dispatch.d.ts.map +1 -0
  392. package/dist/runtime/dispatch.js +52 -0
  393. package/dist/runtime/dispatch.js.map +1 -0
  394. package/dist/runtime/grounding.d.ts +15 -0
  395. package/dist/runtime/grounding.d.ts.map +1 -0
  396. package/dist/runtime/grounding.js +72 -0
  397. package/dist/runtime/grounding.js.map +1 -0
  398. package/dist/runtime/recall.d.ts +10 -0
  399. package/dist/runtime/recall.d.ts.map +1 -0
  400. package/dist/runtime/recall.js +13 -0
  401. package/dist/runtime/recall.js.map +1 -0
  402. package/dist/runtime/run-tool.d.ts +26 -0
  403. package/dist/runtime/run-tool.d.ts.map +1 -0
  404. package/dist/runtime/run-tool.js +82 -0
  405. package/dist/runtime/run-tool.js.map +1 -0
  406. package/dist/views/components.d.ts +17 -0
  407. package/dist/views/components.d.ts.map +1 -0
  408. package/dist/views/components.js +33 -0
  409. package/dist/views/components.js.map +1 -0
  410. package/dist/views/jsx-dev-runtime.d.ts +3 -0
  411. package/dist/views/jsx-dev-runtime.d.ts.map +1 -0
  412. package/dist/views/jsx-dev-runtime.js +5 -0
  413. package/dist/views/jsx-dev-runtime.js.map +1 -0
  414. package/dist/views/jsx-runtime.d.ts +49 -0
  415. package/dist/views/jsx-runtime.d.ts.map +1 -0
  416. package/dist/views/jsx-runtime.js +67 -0
  417. package/dist/views/jsx-runtime.js.map +1 -0
  418. package/dist/views/lang.d.ts +17 -0
  419. package/dist/views/lang.d.ts.map +1 -0
  420. package/dist/views/lang.js +46 -0
  421. package/dist/views/lang.js.map +1 -0
  422. package/dist/views/layout.d.ts +19 -0
  423. package/dist/views/layout.d.ts.map +1 -0
  424. package/dist/views/layout.js +62 -0
  425. package/dist/views/layout.js.map +1 -0
  426. package/dist/views/render.d.ts +19 -0
  427. package/dist/views/render.d.ts.map +1 -0
  428. package/dist/views/render.js +26 -0
  429. package/dist/views/render.js.map +1 -0
  430. package/package.json +76 -0
  431. package/tsconfig.tenant.json +24 -0
@@ -0,0 +1,174 @@
1
+ /** `pinecall sessions [call]`: the calls this gateway has run, and what one of them came to. */
2
+ import { parseArgs } from "node:util";
3
+ import { theDoor } from "./env.js";
4
+ import { asked } from "./testing/gateway.js";
5
+ import { agentOfThisDirectory, notASlug } from "./load.js";
6
+ import { BROKEN, HELD } from "./testing/score.js";
7
+ import { refusal } from "./whoami.js";
8
+ const USAGE = "usage: pinecall sessions [call] [--agent <slug>] [--limit <n>] [--json]";
9
+ // The two entries a finished call ends with, and the only two this verb reads. Asking the log for
10
+ // them by name is what keeps `show` one request on almost every call: the door filters at the sink.
11
+ const THE_ENDING = "call.summary,call.score";
12
+ // A page of the log is 500 entries and the two this verb wants are the last two written, so a call
13
+ // long enough to need a second page is a long call and not a broken one. Six pages is three
14
+ // thousand entries — an hour of talking — and past that the sentence says what was not found.
15
+ const PAGES = 6;
16
+ // How much of a judge's own words a line of the score carries. The whole of them is in the log,
17
+ // and `--json` is the door to it; this is a person reading a call over somebody's shoulder.
18
+ const ROOM = 96;
19
+ export const group = {
20
+ purpose: "list | show a call's log, with what it cost and how it was judged",
21
+ usage: `${USAGE}
22
+
23
+ With nothing after it: every call this agent has run, newest first — when it came in, how long
24
+ it lasted, why it ended, what it cost and the one line the agent left as its outcome.
25
+
26
+ With a call id: that call whole — the same facts, and the SCORE, one line per judge that ran
27
+ over it with the question it answered and its own reasoning when it did not hold.
28
+
29
+ The judging is ring 4's, at hang-up, in the gateway. This verb reads it back; it runs nothing.`,
30
+ run,
31
+ };
32
+ export async function run(argv, how = {}) {
33
+ const out = how.out ?? process.stdout;
34
+ const err = how.err ?? process.stderr;
35
+ const { values, positionals } = parseArgs({
36
+ args: argv,
37
+ allowPositionals: true,
38
+ options: { agent: { type: "string" }, limit: { type: "string" }, json: { type: "boolean", default: false } },
39
+ });
40
+ const door = theDoor(how.env ?? process.env, err);
41
+ if (door === undefined)
42
+ return 2;
43
+ const call = positionals.find((word) => word !== "list");
44
+ try {
45
+ const lines = call === undefined ? await listed(door, values, err) : await shown(door, call, values.json === true);
46
+ if (lines === null)
47
+ return 2;
48
+ out.write(`${lines.join("\n")}\n`);
49
+ return 0;
50
+ }
51
+ catch (refused) {
52
+ err.write(`${refusal(refused)}\n`);
53
+ return 1;
54
+ }
55
+ }
56
+ // ── every call ──────────────────────────────────────────────────────────────────
57
+ async function listed(door, values, err) {
58
+ const aFile = notASlug(values.agent);
59
+ if (aFile !== undefined) {
60
+ err.write(`${aFile}\n`);
61
+ return null;
62
+ }
63
+ const agent = values.agent ?? (await agentOfThisDirectory());
64
+ if (agent === null || agent === undefined) {
65
+ err.write(`${USAGE}\n name the agent, or run this beside an agent file\n`);
66
+ return null;
67
+ }
68
+ const limit = values.limit === undefined ? "" : `&limit=${encodeURIComponent(values.limit)}`;
69
+ const { calls } = await asked(door, `/v1/agents/${encodeURIComponent(agent)}/sessions?${limit.slice(1)}`);
70
+ if (values.json === true)
71
+ return [JSON.stringify(calls)];
72
+ if (calls.length === 0)
73
+ return [`${agent} has run no calls`];
74
+ return [`${agent} · ${calls.length} call${calls.length === 1 ? "" : "s"}`, "", ...calls.map(lineOf)];
75
+ }
76
+ /** One call as a row of the list: what it was, how long, why it ended, what it cost, what came of it. */
77
+ export function lineOf(one) {
78
+ const held = one.live === true ? "●" : " ";
79
+ const doors = `${one.channel ?? "—"} ${one.direction ?? "—"}`.padEnd(15);
80
+ const ending = one.live === true ? "live" : (one.end_reason ?? one.status ?? "—");
81
+ return `${held} ${one.call.padEnd(38)} ${doors} ${lasted(one).padStart(7)} ${ending.padEnd(20)} ${money(one.cost).padStart(8)} ${onOneLine(one.outcome)}`.trimEnd();
82
+ }
83
+ // ── one call ────────────────────────────────────────────────────────────────────
84
+ async function shown(door, call, asJson) {
85
+ const ending = await theEndingOf(door, call);
86
+ if (asJson)
87
+ return [JSON.stringify(ending)];
88
+ const summary = ending["call.summary"];
89
+ const score = ending["call.score"];
90
+ const lines = [call, ""];
91
+ if (summary !== undefined) {
92
+ lines.push(` outcome ${String(summary["outcome"] ?? "—")}`);
93
+ lines.push(` ended ${String(summary["reason"] ?? "—")} · ${seconds(Number(summary["duration_s"] ?? 0))} · ${String(summary["turns"] ?? 0)} turns`);
94
+ lines.push(` cost ${money(summary["cost"])}`);
95
+ }
96
+ lines.push(...scoreLines(score));
97
+ return lines;
98
+ }
99
+ /** The score as a person reads it: the verdict, then one line per judge, the broken ones with why. */
100
+ export function scoreLines(score) {
101
+ if (score === undefined)
102
+ return [" score not judged: this call carries no call.score"];
103
+ const why = score["not_judged"];
104
+ if (typeof why === "string" && why !== "")
105
+ return [` score not judged: ${why}`];
106
+ const judges = (score["judges"] ?? []);
107
+ const held = score["passed"] === true;
108
+ const asked = Number(score["judge_calls"] ?? 0);
109
+ const cost = score["judge_cost_eur"];
110
+ const paid = typeof cost === "number" ? ` · €${cost.toFixed(4)}` : "";
111
+ const lines = [
112
+ ` score ${held ? HELD : BROKEN} ${held ? "every judge held" : "a judge answered broken"} · ${judges.length} judges · ${asked} model call${asked === 1 ? "" : "s"}${paid}`,
113
+ "",
114
+ ];
115
+ const width = Math.max(0, ...judges.map((one) => one.name.length));
116
+ for (const judge of judges) {
117
+ const mark = judge.verdict === "held" ? HELD : BROKEN;
118
+ // Folded, because a judge may hang anything on `criteria` and one of ours hangs the whole
119
+ // evidence there: a screen of a knowledge base is not a line of a score.
120
+ lines.push(` ${mark} ${judge.name.padEnd(width)} ${onOneLine(judge.criteria, ROOM)}`);
121
+ // The reasoning is the half a person acts on, and only a judge that did not hold has one worth
122
+ // reading: a policy writes the evidence it found, a model writes the sentence it answered with.
123
+ if (judge.verdict !== "held")
124
+ lines.push(` ${" ".repeat(width)} ${onOneLine(judge.reason, ROOM)}`);
125
+ }
126
+ return lines;
127
+ }
128
+ /**
129
+ * The two entries a finished call ends with, by name. The door filters at the sink but pages from
130
+ * the start, so a long call takes a page or two to reach its own ending — bounded, and said out
131
+ * loud when the bound is hit rather than paging a log of any length.
132
+ */
133
+ async function theEndingOf(door, call) {
134
+ const found = {};
135
+ let after = 0;
136
+ for (let page = 0; page < PAGES; page += 1) {
137
+ // A finished call whose cursor has reached the end answers 204 with no body at all, which is
138
+ // how this loop learns it is done — the door says "nothing more" rather than an empty page.
139
+ const read = await asked(door, `/v1/calls/${encodeURIComponent(call)}/events?types=${THE_ENDING}&after=${after}`);
140
+ if (read === null || read.entries === undefined)
141
+ break;
142
+ for (const entry of read.entries)
143
+ found[entry.type] = entry.data;
144
+ if (read.next === null || read.next === undefined || read.next <= after)
145
+ break;
146
+ after = read.next;
147
+ }
148
+ return found;
149
+ }
150
+ // ── the small stuff a row is made of ────────────────────────────────────────────
151
+ // An outcome is a sentence a model wrote, and a model writes paragraphs: a row of a list is one
152
+ // row, so the breaks fold and a long one is cut where a terminal would have wrapped it anyway.
153
+ export function onOneLine(said, width = 90) {
154
+ const folded = (said ?? "").replace(/\s+/g, " ").trim();
155
+ return folded.length <= width ? folded : `${folded.slice(0, width - 1)}…`;
156
+ }
157
+ function lasted(one) {
158
+ if (one.started_at === null || one.started_at === undefined)
159
+ return "—";
160
+ const until = one.ended_at ?? Date.now() / 1000;
161
+ return seconds(until - one.started_at);
162
+ }
163
+ /** Seconds as a person says them: `2m 14s`, and under a minute just the seconds. */
164
+ export function seconds(total) {
165
+ const whole = Math.max(0, Math.round(total));
166
+ const minutes = Math.floor(whole / 60);
167
+ return minutes === 0 ? `${whole}s` : `${minutes}m ${String(whole % 60).padStart(2, "0")}s`;
168
+ }
169
+ /** What a call cost, in the currency the log priced it in. A call nobody priced says so with a dash. */
170
+ export function money(cost) {
171
+ const total = cost?.eur;
172
+ return typeof total === "number" ? `€${total.toFixed(4)}` : "—";
173
+ }
174
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/cli/sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** `pinecall signup`: an org on Pinecall's cloud, made here, and its first key kept like a login's. */
2
+ import type { Group } from "./groups.js";
3
+ /** What the gateway answers a sign-up: the key once, whose it is, and the way into the console. */
4
+ interface SignedUp {
5
+ key: string;
6
+ org: string;
7
+ slug: string;
8
+ name: string | null;
9
+ code: string;
10
+ }
11
+ export declare const group: Group;
12
+ /** What signup can be told besides the argv: where to print, and how the password arrives. Tests only. */
13
+ export interface Making {
14
+ out?: NodeJS.WritableStream;
15
+ err?: NodeJS.WritableStream;
16
+ env?: NodeJS.ProcessEnv;
17
+ /** How the password is obtained. A test hands one in rather than driving a terminal. */
18
+ password?: () => Promise<string>;
19
+ }
20
+ /** Read what the org will be, make it at the gateway, and keep the key it answers. */
21
+ export declare function signup(argv: string[], how?: Making): Promise<number>;
22
+ /** The one line that says what now exists and that this terminal is holding its key. */
23
+ export declare function madeLine(made: SignedUp, url: string): string;
24
+ export {};
25
+ //# sourceMappingURL=signup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../src/cli/signup.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAMvG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAiCzC,mGAAmG;AACnG,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,KAAK,EAAE,KAkBnB,CAAC;AAEF,0GAA0G;AAC1G,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,sFAAsF;AACtF,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD9E;AAoBD,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG5D"}
@@ -0,0 +1,122 @@
1
+ /** `pinecall signup`: an org on Pinecall's cloud, made here, and its first key kept like a login's. */
2
+ import { parseArgs } from "node:util";
3
+ import { pinecallHome, writeGateway } from "./credentials.js";
4
+ import { CLOUD_URL } from "./env.js";
5
+ import { aLineOfStdin, typedInSilence } from "./secret.js";
6
+ import { asked, discovered } from "./testing/gateway.js";
7
+ import { refusal } from "./whoami.js";
8
+ const USAGE = `usage: pinecall signup [<gateway-url>] --org <slug> --email <you@…> --person "<your name>"
9
+ [--name "<Org Name>"] [--password-stdin]`;
10
+ // Asked for, never echoed, never a flag: a password on a command line is a password in the
11
+ // shell's history. The same rule `login` holds its key to.
12
+ const PROMPT = "Password (12 characters at least): ";
13
+ // The door a stranger knocks at, and what it answers: the one shape a key travels in, plus the
14
+ // org's slug, the member and a one-use code for a browser. runtime docs/protocol/people.md.
15
+ const SIGNUP = "/v1/signup";
16
+ // The same person's key in the other world. The sign-up answers a production one — every door of
17
+ // the org, and not `app`, because a deployed agent is held by a machine — and a terminal is a
18
+ // laptop: what it keeps is the sandbox key, which is the world `pinecall run` answers in.
19
+ const THE_OTHER_WORLD = "/v1/login/env";
20
+ const SANDBOX = "sandbox";
21
+ // Said when the second world could not be minted: the org exists and the production key is kept,
22
+ // so nothing is lost, but `run` will be refused until the person holds a sandbox key.
23
+ const ONE_WORLD_ONLY = (url) => `kept the production key: ${url} would not mint a sandbox one, and \`pinecall run\` needs it`;
24
+ // Whether that door is open here is the gateway's own fact, asked before anything else: a person
25
+ // should not type a password for a door that will refuse it. The gateway's refusal names the
26
+ // setting; this says the same thing before the typing rather than after.
27
+ const SHUT = (url) => `${url} takes no sign-ups: its operator opens them with PINECALL_SIGNUP, or makes the org and invites you — then \`pinecall login ${url}\``;
28
+ export const group = {
29
+ purpose: "make an org on Pinecall's cloud and keep its first key",
30
+ usage: `${USAGE}
31
+
32
+ Makes the org with you as its admin. What it may do is whatever the people who run that
33
+ gateway decided for a new one: on a box of your own, everything; on a hosted one, its trial.
34
+ The gateway is ${CLOUD_URL} unless another is named. The password is asked for without
35
+ echoing it, or read from one line of stdin with --password-stdin.
36
+
37
+ What this terminal keeps is the SANDBOX key, in ~/.pinecall/credentials (0600) under that
38
+ gateway, so \`pinecall run\` and \`pinecall chat\` work straight after and nothing has to be
39
+ exported: a laptop is where things are written. The console link it prints signs the browser
40
+ in to production, which is where the org's numbers, people and usage are. What answers a
41
+ production number is a key issued for a machine — \`pinecall keys issue\` — and never a laptop.
42
+
43
+ A gateway that is a box of its own takes no sign-up and says so: there, an operator makes the
44
+ org and invites you, and you arrive with \`pinecall login\`.`,
45
+ run: signup,
46
+ };
47
+ /** Read what the org will be, make it at the gateway, and keep the key it answers. */
48
+ export async function signup(argv, how = {}) {
49
+ const out = how.out ?? process.stdout;
50
+ const err = how.err ?? process.stderr;
51
+ const { values, positionals } = parseArgs({
52
+ args: argv,
53
+ allowPositionals: true,
54
+ options: {
55
+ org: { type: "string" },
56
+ name: { type: "string" },
57
+ email: { type: "string" },
58
+ person: { type: "string" },
59
+ "password-stdin": { type: "boolean", default: false },
60
+ },
61
+ });
62
+ const url = positionals[0] ?? CLOUD_URL;
63
+ const missing = ["org", "email", "person"].filter((one) => values[one] === undefined);
64
+ if (missing.length > 0) {
65
+ err.write(`${USAGE}\n`);
66
+ err.write(`missing: ${missing.map((one) => `--${one}`).join(" ")}\n`);
67
+ return 2;
68
+ }
69
+ if (!(await discovered(url)).signup) {
70
+ err.write(`${SHUT(url)}\n`);
71
+ return 1;
72
+ }
73
+ const password = (await (how.password ?? (values["password-stdin"] === true ? aLineOfStdin : () => typedInSilence(PROMPT, out)))()).trim();
74
+ if (password === "") {
75
+ err.write("no password was typed: nothing was made\n");
76
+ return 2;
77
+ }
78
+ let made;
79
+ try {
80
+ // No key opens this door: it is the one that mints the first one.
81
+ made = await asked({ url, apiKey: "" }, SIGNUP, {
82
+ method: "POST",
83
+ body: { org: values.org, name: values.name, email: values.email, person: values.person, password, device: "cli" },
84
+ });
85
+ }
86
+ catch (refused) {
87
+ err.write(`${refusal(refused)}\n`);
88
+ return 1;
89
+ }
90
+ const environment = how.env ?? process.env;
91
+ const laptop = await theSandboxKey(url, made.key);
92
+ if (laptop === undefined)
93
+ err.write(`${ONE_WORLD_ONLY(url)}\n`);
94
+ writeGateway(url, { api_key: laptop ?? made.key, org: made.org }, pinecallHome(environment));
95
+ out.write(`${madeLine(made, url)}\n`);
96
+ out.write(`console ${url.replace(/\/$/, "")}/?login=${encodeURIComponent(made.code)} (opens within five minutes, once)\n`);
97
+ return 0;
98
+ }
99
+ /**
100
+ * The sandbox key, or nothing at all.
101
+ *
102
+ * A refusal here is not the sign-up failing: the org is made and its production key is in hand.
103
+ * So it is answered as an absence and said on stderr, rather than thrown over an org that exists.
104
+ */
105
+ async function theSandboxKey(url, key) {
106
+ try {
107
+ const minted = await asked({ url, apiKey: key }, THE_OTHER_WORLD, {
108
+ method: "POST",
109
+ body: { env: SANDBOX },
110
+ });
111
+ return minted.key;
112
+ }
113
+ catch {
114
+ return undefined;
115
+ }
116
+ }
117
+ /** The one line that says what now exists and that this terminal is holding its key. */
118
+ export function madeLine(made, url) {
119
+ const who = made.name === null ? "its admin" : made.name;
120
+ return `created org ${made.slug} on ${url} — signed in as ${who}, sandbox key kept in ~/.pinecall/credentials`;
121
+ }
122
+ //# sourceMappingURL=signup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../src/cli/signup.ts"],"names":[],"mappings":"AAAA,uGAAuG;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,KAAK,GAAG;gEACkD,CAAC;AAEjE,2FAA2F;AAC3F,2DAA2D;AAC3D,MAAM,MAAM,GAAG,qCAAqC,CAAC;AAErD,+FAA+F;AAC/F,4FAA4F;AAC5F,MAAM,MAAM,GAAG,YAAY,CAAC;AAE5B,iGAAiG;AACjG,8FAA8F;AAC9F,0FAA0F;AAC1F,MAAM,eAAe,GAAG,eAAe,CAAC;AACxC,MAAM,OAAO,GAAG,SAAS,CAAC;AAE1B,iGAAiG;AACjG,sFAAsF;AACtF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CAC7C,4BAA4B,GAAG,8DAA8D,CAAC;AAEhG,iGAAiG;AACjG,6FAA6F;AAC7F,yEAAyE;AACzE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAU,EAAE,CACnC,GAAG,GAAG,8HAA8H,GAAG,IAAI,CAAC;AAW9I,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,wDAAwD;IACjE,KAAK,EAAE,GAAG,KAAK;;;;mBAIE,SAAS;;;;;;;;;;+DAUmC;IAC7D,GAAG,EAAE,MAAM;CACZ,CAAC;AAWF,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,GAAG,GAAW,EAAE;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACP,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SACtD;KACF,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACxC,MAAM,OAAO,GAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACjG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3I,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACH,kEAAkE;QAClE,IAAI,GAAG,MAAM,KAAK,CAAW,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;SAClH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChE,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7F,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC9H,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,GAAW;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,OAAO,eAAe,IAAI,CAAC,IAAI,OAAO,GAAG,mBAAmB,GAAG,+CAA+C,CAAC;AACjH,CAAC"}
@@ -0,0 +1,45 @@
1
+ /** `pinecall simulate --persona x`: a model plays the caller, and the call is judged at hang-up. */
2
+ import type { CallScore } from "@pinecall/protocol";
3
+ import type { Group } from "./groups.js";
4
+ import { type Persona } from "./testing/caller.js";
5
+ import { type Door } from "./testing/gateway.js";
6
+ import { type Degraded } from "./testing/voice.js";
7
+ export declare const group: Group;
8
+ export declare const ONLY_ON_A_LINE = "--background-noise and --packet-loss are about audio: add --voice";
9
+ /**
10
+ * How many turns a caller improvises when nobody said. Six is the length of the walkthrough the
11
+ * examples are written against, and long enough for a booking to reach its confirmation.
12
+ */
13
+ export declare const TURNS = 6;
14
+ /** What one simulated call left behind: where to read it, and what the judges made of it. */
15
+ export interface Simulated {
16
+ call: string;
17
+ score?: CallScore | undefined;
18
+ }
19
+ export declare function run(argv: string[], out?: NodeJS.WritableStream): Promise<number>;
20
+ /** How the line is to be spoiled, when it is: a level in dB, and a share of packets lost. */
21
+ export declare function degradedBy(noise: string | undefined, loss: string | undefined): Degraded | undefined;
22
+ export declare function exitCodeOf(said: Simulated | undefined): number;
23
+ /** What a simulation needs beyond the persona: which class, how far to go, and where to print. */
24
+ export interface Simulation {
25
+ agentFile?: string | undefined;
26
+ judge: boolean;
27
+ voice: boolean;
28
+ /** Put the call on this machine's speakers while it happens. Only on a spoken line. */
29
+ listen?: boolean | undefined;
30
+ degraded?: Degraded | undefined;
31
+ turns: number;
32
+ out: NodeJS.WritableStream;
33
+ /** The gateway to run against. Absent, the one this terminal's environment names. */
34
+ door?: Door | undefined;
35
+ /** Told the call's id the moment it is known, so whoever started this can go and watch it. */
36
+ opened?: ((call: string) => void) | undefined;
37
+ }
38
+ /**
39
+ * The class is mounted in THIS process, as `chat` and `test` mount it, and a model in the runtime
40
+ * plays the caller: this terminal holds the persona and the transcript, the gateway holds the
41
+ * provider keys. Every turn is improvised from the goal, the style and the persona's own facts,
42
+ * and with `judge` the `call.score` the log seals on is read back and printed.
43
+ */
44
+ export declare function aSimulation(persona: Persona, how: Simulation): Promise<Simulated | undefined>;
45
+ //# sourceMappingURL=simulate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/cli/simulate.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAIpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,KAAK,IAAI,EAA4E,MAAM,sBAAsB,CAAC;AAG3H,OAAO,EAAiC,KAAK,QAAQ,EAAY,MAAM,oBAAoB,CAAC;AAO5F,eAAO,MAAM,KAAK,EAAE,KAgBnB,CAAC;AAQF,eAAO,MAAM,cAAc,sEAAsE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,KAAK,IAAI,CAAC;AAsBvB,6FAA6F;AAC7F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,cAA+B,GAAG,OAAO,CAAC,MAAM,CAAC,CAyCtG;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAMpG;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAI9D;AAED,kGAAkG;AAClG,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC;IAC3B,qFAAqF;IACrF,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAyBnG"}