pinecall 0.0.7 → 0.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f33416ca47b6dac53cbee96b457cd9d8961c27439b7f5568834ca64c561c5e89
4
- data.tar.gz: deaf2b2a704a6dbda1a8b88f21f46fabb327ee7dc22eab9f858cf2e5dca7d694
3
+ metadata.gz: d068cb933a006471b5ed31ec64dad4e8a59b1908c671d34439ad900914b9cf81
4
+ data.tar.gz: b53c9c0ec0d41927dc7ce2706535faa54f57d8b0200e9e0924f7829c01eff2fa
5
5
  SHA512:
6
- metadata.gz: 671735c18ef00423d7e4c7a1fbefbd87c0f5087b23a0d9fa556bc151a19df928fa0c7bbebcb9977858bdf3cb54645a7d570d0e3e0fe6ad5bb5fb8977575d45ea
7
- data.tar.gz: 5ed8532ef612a31608e11e70016045e8da92d35dcfe078e6dd976680e729695b4e8b6eee2448cb4567991592294fe67cb4519ad53ed05bbf27878c81ed1d66e0
6
+ metadata.gz: 5408f8d2ad949f38870d1523e5df3b58a28746de84e45af6b336832c57d21a3f7efc5bdf853bdb238b4e801373ab82934e3c6eca73da6ed432b54768266449ed
7
+ data.tar.gz: f8bb15796285f8970c672598d6dd7dbc1d9bbc03aab5f74e6c56882e8846d023c26581df3070d0fb40ccd9edabae52b0bb23be312861d17bd67cd98519748fca
data/CHANGELOG.md CHANGED
@@ -6,6 +6,20 @@ version number is the human's call.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.10.0] — One repository, one version (2026-10-12)
10
+
11
+ - Published from [pinecall/pinecall](https://github.com/pinecall/pinecall) with every other
12
+ Pinecall package, at the one version they all carry from here on. Nothing an app
13
+ requires changes.
14
+
15
+ ## [0.0.8] — The wire reads evals.spent, call.started.expects and call.summary.run (2026-10-11)
16
+
17
+ - The wire reads `evals.spent` (what the harness asked a model — a judge tried, personas
18
+ written, a case group diagnosed — its evals counted), `call.started.expects` (what a simulated
19
+ caller expects, replacing `accepts_when`/`declines_when`), a
20
+ `call.summary`'s `run`, and `credits.exhausted` for every quota the runtime refuses for —
21
+ `hosted_apps`, `evals`, `simulations` and `budget_usd` were missing. Needs runtime 0.1.46.
22
+
9
23
  ## [0.0.7] — Every judge is a model's answer, and the class names the judge's model (2026-10-10)
10
24
 
11
25
  - `judge "<vendor>/<model>", builds:, options:`: the model the agent's calls are judged on, over
@@ -102,7 +116,7 @@ version number is the human's call.
102
116
  `opening:`: the state a golden, a persona or a chat's `?state=` asked for rides the call, and the
103
117
  bridge applies it after `on_call` and before the first render. `Testing::Gateway#call_started`
104
118
  takes `state:`.
105
- - **No `pinecall-protocol` dependency.** The gem keeps the runtime's wire it speaks in
119
+ - **The wire is the gem's own.** The gem keeps the runtime's wire it speaks in
106
120
  `lib/pinecall/wire/` (`Pinecall::Wire`: the shapes, the validator, the codec, the reducer), held
107
121
  to the runtime's golden call log; `Pinecall::Protocol` is `Pinecall::Wire` and `ProtocolError` is
108
122
  `WireError`.
@@ -200,7 +214,7 @@ version number is the human's call.
200
214
  text changed. `Pinecall.render` returns `Blocks` (`[:name]`, `static`, `dynamic`,
201
215
  `instructions`); `pinecall prompt` prints one section per block. In a test,
202
216
  `call.block("knowledge")`.
203
- - `pinecall-protocol`: Ruby's side of the wire, generated from the same JSON Schema as the Python
217
+ - The wire: Ruby's side of it, generated from the same JSON Schema as the Python
204
218
  and TypeScript packages, with the log reducer proved against the same golden fixture.
205
219
  - `sig/`: the public surface as RBS, checked by `rake rbs`.
206
220
  - `examples/clinica_norte`: a whole agent, its view, and its own ring-0 suite.
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Pinecall
4
4
  # Set by the maintainer at release time.
5
- VERSION = "0.0.7"
5
+ VERSION = "0.10.0"
6
6
  end
@@ -34,6 +34,7 @@ module Pinecall
34
34
  "confirm.granted" => "ConfirmGranted",
35
35
  "confirm.request" => "ConfirmRequest",
36
36
  "credits.exhausted" => "CreditsExhausted",
37
+ "evals.spent" => "EvalsSpent",
37
38
  "custom" => "Custom",
38
39
  "dev.request" => "DevRequest",
39
40
  "docs.sources" => "DocsSources",
@@ -118,7 +119,7 @@ module Pinecall
118
119
  }.freeze
119
120
 
120
121
  # Every event this protocol declares, in the schema's own order.
121
- EVENT_TYPES = %w[agent.configured agent.detached agent.draining agent.registered agent.state agent.transcript attention.answered attention.requested call.attached call.claimed call.dialing call.ended call.line call.ringing call.score call.started call.summary call.transferred callback.requested code.claimed code.issued confirm.declined confirm.granted confirm.request credits.exhausted custom dev.request docs.sources dtmf.received error event.received fleet.full log.caught_up log.gap memory.ops message.taken message.waiting metrics.avatar metrics.eot metrics.eou metrics.interruption metrics.llm metrics.realtime metrics.stt metrics.tts metrics.vad participant.joined participant.left participant.speaking pong prompt.changed room.opened room.sent spend.unusual state.changed supervisor.ended supervisor.released supervisor.said supervisor.took_over supervisor.transferred supervisor.whispered tool.call tool.result tools.changed track.published track.unpublished turn.agent turn.user user.state user.transcript vendor.switched].freeze
122
+ EVENT_TYPES = %w[agent.configured agent.detached agent.draining agent.registered agent.state agent.transcript attention.answered attention.requested call.attached call.claimed call.dialing call.ended call.line call.ringing call.score call.started call.summary call.transferred callback.requested code.claimed code.issued confirm.declined confirm.granted confirm.request credits.exhausted custom dev.request docs.sources dtmf.received error evals.spent event.received fleet.full log.caught_up log.gap memory.ops message.taken message.waiting metrics.avatar metrics.eot metrics.eou metrics.interruption metrics.llm metrics.realtime metrics.stt metrics.tts metrics.vad participant.joined participant.left participant.speaking pong prompt.changed room.opened room.sent spend.unusual state.changed supervisor.ended supervisor.released supervisor.said supervisor.took_over supervisor.transferred supervisor.whispered tool.call tool.result tools.changed track.published track.unpublished turn.agent turn.user user.state user.transcript vendor.switched].freeze
122
123
 
123
124
  # Every command an app may send.
124
125
  COMMAND_TYPES = %w[agent.configure agent.drain agent.register agent.reply agent.say call.attention call.callback call.claim call.dial call.dtmf call.event call.hangup call.hold call.log call.mute call.opt_out call.transfer call.unhold call.unmute dev.answer participant.mute participant.remove ping prompt.set room.invite room.send session.configure state.set supervisor.verb tool.result tools.set].freeze
@@ -93,8 +93,7 @@ module Pinecall
93
93
  to: { kind: :str, required: true },
94
94
  run: { kind: :str, null: true },
95
95
  persona: { kind: :str, null: true },
96
- accepts_when: { kind: :str, null: true },
97
- declines_when: { kind: :str, null: true },
96
+ expects: { kind: :list, items: { kind: :str }, null: true },
98
97
  caller: { kind: :ref, null: true, ref: "Contact", required: true },
99
98
  started_at: { kind: :float, required: true },
100
99
  env: { kind: :ref, ref: "Env" },
@@ -111,7 +110,8 @@ module Pinecall
111
110
  usage: { kind: :list, items: { kind: :ref, ref: "ModelUsage" }, required: true },
112
111
  cost: { kind: :ref, ref: "Cost", required: true },
113
112
  recording: { kind: :str },
114
- simulated: { kind: :bool }
113
+ simulated: { kind: :bool },
114
+ run: { kind: :str, null: true }
115
115
  }.freeze,
116
116
  "CallTransferred" => {
117
117
  to: { kind: :str, required: true },
@@ -213,10 +213,20 @@ module Pinecall
213
213
  }.freeze,
214
214
  "CreditsExhausted" => {
215
215
  org: { kind: :str, required: true },
216
- quota: { kind: :enum, values: %w[minutes messages agents concurrent_calls memory_facts knowledge_chunks numbers seats llm_tokens], required: true },
216
+ quota: { kind: :enum, values: %w[minutes messages agents concurrent_calls memory_facts knowledge_chunks numbers seats llm_tokens hosted_apps evals simulations budget_usd], required: true },
217
217
  used: { kind: :float, required: true },
218
218
  limit: { kind: :int, required: true }
219
219
  }.freeze,
220
+ "EvalsSpent" => {
221
+ kind: { kind: :enum, values: %w[try generate propose], required: true },
222
+ name: { kind: :str, required: true },
223
+ env: { kind: :ref, ref: "Env", required: true },
224
+ calls: { kind: :list, items: { kind: :str }, required: true },
225
+ evals: { kind: :int, required: true },
226
+ judge_calls: { kind: :int, required: true },
227
+ judge_cost_usd: { kind: :float, null: true },
228
+ own_key: { kind: :bool }
229
+ }.freeze,
220
230
  "Custom" => {
221
231
  name: { kind: :str, required: true },
222
232
  data: { kind: :json, required: true }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinecall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pinecall
@@ -87,13 +87,13 @@ files:
87
87
  - lib/pinecall/wire/state.rb
88
88
  - lib/pinecall/wire/validate.rb
89
89
  - sig/pinecall.rbs
90
- homepage: https://github.com/pinecall/ruby
90
+ homepage: https://github.com/pinecall/pinecall/tree/main/sdks/ruby
91
91
  licenses:
92
92
  - Apache-2.0
93
93
  metadata:
94
- homepage_uri: https://github.com/pinecall/ruby
95
- source_code_uri: https://github.com/pinecall/ruby
96
- changelog_uri: https://github.com/pinecall/ruby/blob/main/CHANGELOG.md
94
+ homepage_uri: https://github.com/pinecall/pinecall/tree/main/sdks/ruby
95
+ source_code_uri: https://github.com/pinecall/pinecall
96
+ changelog_uri: https://github.com/pinecall/pinecall/blob/main/sdks/ruby/CHANGELOG.md
97
97
  rubygems_mfa_required: 'true'
98
98
  rdoc_options: []
99
99
  require_paths: