ruicode 0.67.1 → 0.69.1

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.
package/README.md CHANGED
@@ -60,6 +60,10 @@ A creating Message uses the same request rule, and `start_agent` reports it as a
60
60
 
61
61
  `session.listActivity()` reads to the current end; `{ follow: true }` follows new entries.
62
62
  Feed entries are a discriminated union: `switch (entry.kind)` narrows to that wire row's fields.
63
+ A `model_call` entry is one resolved model Operation at its admission position: `model`, nullable `servedModel`, nullable `inputTokens`, `outputTokens`, `cachedTokens`, `latencyMs`, `firstEventMs`, plus `status` and `attempts`.
64
+ Counts and durations remain decimal strings (or null); both timings describe the **final attempt**, and `firstEventMs` measures the first HTTP response event, not the first token.
65
+ The requested model comes from the immutable admitted revision; served model uses stored body evidence before header evidence, never the requested model as fallback.
66
+ A late resolution can reveal this row inside a previously captured end (D219); following from a later cursor does not replay it, so reread that range to observe it.
63
67
  Only top-level field names become camelCase (for example `callOrdinal`); nested objects keep their wire spelling (for example `presentation.publication_position`).
64
68
  Text-bearing kinds add `text`, or `truncated: true` when the text exceeds 16 KiB; `contentBytes` gives its byte length.
65
69
  Use `session.readContent(entry)` or `readContentBytes(entry)` for the whole text.
@@ -82,7 +86,7 @@ RUI_BINARY=../../zig-out/bin/rui npm test
82
86
  ```
83
87
 
84
88
  `node scripts/pack.mjs <version> <outdir> <platform>=<executable> ...` builds the release tarballs (the compiled client and one package per platform).
85
- It publishes nothing; the first npm publish waits for the maintainer.
89
+ It publishes nothing. `node scripts/publish.mjs <dir>` publishes them, dependencies first, skipping versions npm already has; each release runs it in the `npm_publish` job.
86
90
 
87
91
  The repository's `zig build ts-client` runs the tests against the Rui it builds.
88
92
  The real-Host feed test uses a local HTTPS provider and the `openssl` command to generate its temporary test certificate; no live provider credentials are needed.
package/dist/feed.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { components } from "./wire.ts";
3
3
  type Schemas = components["schemas"];
4
4
  type Row = Schemas["ActivityItem"];
5
5
  /** Every kind the Host's feed has, in its own order. */
6
- export declare const FEED_KINDS: readonly ["admission", "user", "assistant", "call", "tool_result", "hosted_call", "turn_ended", "stop", "sent", "send_failed", "received", "approval_requested", "session_changed", "compacted"];
6
+ export declare const FEED_KINDS: readonly ["admission", "user", "assistant", "call", "tool_result", "hosted_call", "turn_ended", "stop", "sent", "send_failed", "received", "approval_requested", "session_changed", "compacted", "model_call"];
7
7
  export type FeedKind = (typeof FEED_KINDS)[number];
8
8
  /** Entry text is inline up to this many bytes (D168). */
9
9
  export declare const INLINE_TEXT_BYTES: number;
package/dist/feed.js CHANGED
@@ -20,6 +20,7 @@ export const FEED_KINDS = [
20
20
  "approval_requested",
21
21
  "session_changed",
22
22
  "compacted",
23
+ "model_call",
23
24
  ];
24
25
  // A kind the wire gains fails to compile here until the list has it.
25
26
  const complete = true;
package/dist/wire.d.ts CHANGED
@@ -572,6 +572,23 @@ export interface components {
572
572
  dropped: components["schemas"]["Decimal"];
573
573
  };
574
574
  };
575
+ } | {
576
+ position: components["schemas"]["Decimal"];
577
+ ordinal: components["schemas"]["Decimal"];
578
+ at: components["schemas"]["Decimal"];
579
+ value: {
580
+ model_call: {
581
+ model: string;
582
+ served_model: string | null;
583
+ input_tokens: components["schemas"]["Decimal"] | null;
584
+ output_tokens: components["schemas"]["Decimal"] | null;
585
+ cached_tokens: components["schemas"]["Decimal"] | null;
586
+ latency_ms: components["schemas"]["Decimal"] | null;
587
+ first_event_ms: components["schemas"]["Decimal"] | null;
588
+ status: string;
589
+ attempts: components["schemas"]["Decimal"];
590
+ };
591
+ };
575
592
  };
576
593
  ActivityItemContent: {
577
594
  bytes: components["schemas"]["Decimal"];
@@ -615,7 +632,7 @@ export interface components {
615
632
  /** @enum {string} */
616
633
  direction: "forward" | "backward";
617
634
  /** @description Each at most once, in the order the enum lists them. */
618
- kinds: ("admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted")[];
635
+ kinds: ("admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted" | "model_call")[];
619
636
  limit: components["schemas"]["Decimal"];
620
637
  since?: string | null;
621
638
  };
@@ -632,7 +649,7 @@ export interface components {
632
649
  position: components["schemas"]["Decimal"];
633
650
  ordinal: components["schemas"]["Decimal"];
634
651
  /** @enum {string} */
635
- kind: "admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted";
652
+ kind: "admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted" | "model_call";
636
653
  hits: components["schemas"]["ActivitySearchFactsHit"][];
637
654
  };
638
655
  ActivitySearchReply: {
@@ -652,7 +669,7 @@ export interface components {
652
669
  session: string;
653
670
  query: string;
654
671
  /** @description Each at most once, in the order the enum lists them. */
655
- kinds?: ("admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted")[];
672
+ kinds?: ("admission" | "user" | "assistant" | "call" | "tool_result" | "hosted_call" | "turn_ended" | "stop" | "sent" | "send_failed" | "received" | "approval_requested" | "session_changed" | "compacted" | "model_call")[];
656
673
  before_position?: components["schemas"]["Decimal"] | null;
657
674
  before_ordinal?: components["schemas"]["Decimal"] | null;
658
675
  limit?: components["schemas"]["Decimal"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ruicode",
3
- "version": "0.67.1",
3
+ "version": "0.69.1",
4
4
  "description": "Start a Rui Host as a child process and talk to it over its local socket.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -28,8 +28,8 @@
28
28
  "mcp"
29
29
  ],
30
30
  "optionalDependencies": {
31
- "ruicode-linux-x64": "0.67.1",
32
- "ruicode-linux-arm64": "0.67.1",
33
- "ruicode-darwin-arm64": "0.67.1"
31
+ "ruicode-linux-x64": "0.69.1",
32
+ "ruicode-linux-arm64": "0.69.1",
33
+ "ruicode-darwin-arm64": "0.69.1"
34
34
  }
35
35
  }