dyadic 1.7.1 → 1.8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.8.1 (2026-10-17)
4
+
5
+ - `client.blackbox.overview(7 | 30)`: the Black Box overview of the last 7 days (the default) or 30. Each count is what `runs.list` gives with
6
+ the same filter and range.
7
+ - `runs.list` documents the `gaps` filter (`"1"`: only runs whose record has a gap).
8
+
9
+ ## 1.8.0 (2026-10-17)
10
+
11
+ The Black Box as an execution record.
12
+
13
+ - `client.blackbox.runs.lineage(id)`: the file versions a run made (`path`, `sha256`, `previous`, the tool call), each with the plan steps under
14
+ way when it was made (observed, never a claim that the step caused it), and the steps the run moved. A key needs its
15
+ Black Box content switch.
16
+ - A run (`runs.retrieve`) now carries `actor` (who started it, beside its owner), `costs` (from the usage ledger:
17
+ credits charged and held, the provider's cost as reported or estimated, cache use; for the key that made it) and
18
+ `links` (its batch, the plans and steps it moved, re-runs, simulations); its `outcome` is verification alone
19
+ (`verified`, `contradicted`, `unverified`, `blocked`, `not_applicable`), apart from how it ended (`status`).
20
+
3
21
  ## 1.7.1 (2026-10-17)
4
22
 
5
23
  - Corrected: `anthropic.messages.batches.create` described message batches as running at half price. Dyadic runs them in the
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "1.7.1";
1
+ export declare const VERSION = "1.8.1";
2
2
  export declare const DEFAULT_BASE_URL = "https://dyadic.app/api/openai/v1";
3
3
  /** The Anthropic API version the `anthropic` calls speak (sent as anthropic-version, as Anthropic's SDKs do). */
4
4
  export declare const ANTHROPIC_VERSION = "2023-06-01";
@@ -1547,11 +1547,14 @@ export declare class Dyadic {
1547
1547
  /** OTLP/HTTP traces: an object is sent as OTLP/JSON, bytes as OTLP protobuf (application/x-protobuf; the answer is then
1548
1548
  * the protobuf ExportTraceServiceResponse, as Binary). */
1549
1549
  sendOtlp: (request: Record<string, unknown> | Uint8Array | ArrayBuffer) => Promise<Record<string, unknown>> | Promise<Binary>;
1550
- /** Counts for this key's runs: by status and outcome, open findings, recording gaps. */
1551
- overview: () => Promise<Record<string, unknown>>;
1550
+ /** Counts for this key's runs of the last `days` (7 or 30): by status and outcome, open findings, recording gaps. Each
1551
+ * count is what `runs.list` gives with the same filter and range. */
1552
+ overview: (days?: 7 | 30) => Promise<Record<string, unknown>>;
1552
1553
  /** What the account keeps (recording, capture by kind) and for how long. */
1553
1554
  settings: () => Promise<Record<string, unknown>>;
1554
1555
  runs: {
1556
+ /** Newest first. Filters: q, status, outcome, agent, model, tool, environment, source, since, until, severity, gaps ("1":
1557
+ * runs whose record has a gap), cursor, limit; `next` in the result pages on. */
1555
1558
  list: (query?: Record<string, string | number | undefined>) => Promise<{
1556
1559
  runs: BlackBoxRunSummary[];
1557
1560
  next: string | null;
@@ -1568,6 +1571,9 @@ export declare class Dyadic {
1568
1571
  has_more: boolean;
1569
1572
  }>;
1570
1573
  graph: (id: string) => Promise<Record<string, unknown>>;
1574
+ /** The file versions the run made, each with the plan steps under way when it was made (observed, never a claim that
1575
+ * the step caused it), and the plan steps it moved. A key needs its Black Box content switch. */
1576
+ lineage: (id: string) => Promise<Record<string, unknown>>;
1571
1577
  verify: (id: string) => Promise<VerifyReport>;
1572
1578
  /** The run's signed checkpoints and the anchor (an RFC 3161 timestamp over a Merkle root) that fixes them in time. */
1573
1579
  checkpoints: (id: string) => Promise<{
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // The official TypeScript SDK for the Dyadic API: Iris
2
2
  // through the OpenAI-compatible endpoints at https://dyadic.app/api/openai/v1, and beside them the Anthropic API
3
3
  // (/api/anthropic/v1) and OpenRouter's API through the AI gateway (/api/openrouter/v1).
4
- export const VERSION = "1.7.1";
4
+ export const VERSION = "1.8.1";
5
5
  export const DEFAULT_BASE_URL = "https://dyadic.app/api/openai/v1";
6
6
  /** The Anthropic API version the `anthropic` calls speak (sent as anthropic-version, as Anthropic's SDKs do). */
7
7
  export const ANTHROPIC_VERSION = "2023-06-01";
@@ -560,16 +560,22 @@ export class Dyadic {
560
560
  ? this.request("POST", this.platformURL("/blackbox/otlp/v1/traces"), undefined, false, { idempotent: true, content: request,
561
561
  headers: { "Content-Type": "application/x-protobuf", Accept: "application/x-protobuf" } })
562
562
  : this.request("POST", this.platformURL("/blackbox/otlp/v1/traces"), request, false, { idempotent: true }),
563
- /** Counts for this key's runs: by status and outcome, open findings, recording gaps. */
564
- overview: () => this.request("GET", this.platformURL("/blackbox/overview")),
563
+ /** Counts for this key's runs of the last `days` (7 or 30): by status and outcome, open findings, recording gaps. Each
564
+ * count is what `runs.list` gives with the same filter and range. */
565
+ overview: (days = 7) => this.request("GET", this.platformURL("/blackbox/overview"), undefined, false, { query: { days } }),
565
566
  /** What the account keeps (recording, capture by kind) and for how long. */
566
567
  settings: () => this.request("GET", this.platformURL("/blackbox/settings")),
567
568
  runs: {
569
+ /** Newest first. Filters: q, status, outcome, agent, model, tool, environment, source, since, until, severity, gaps ("1":
570
+ * runs whose record has a gap), cursor, limit; `next` in the result pages on. */
568
571
  list: (query = {}) => this.request("GET", this.platformURL("/blackbox/runs"), undefined, false, { query }),
569
572
  retrieve: (id) => this.request("GET", this.platformURL(`/blackbox/runs/${id}`)),
570
573
  /** The run's events in chain order; `types` keeps only those types (up to 20). */
571
574
  events: (id, query = {}) => this.request("GET", this.platformURL(`/blackbox/runs/${id}/events`), undefined, false, { query: { after: query.after, limit: query.limit, types: Array.isArray(query.types) ? query.types.join(",") || undefined : query.types } }),
572
575
  graph: (id) => this.request("GET", this.platformURL(`/blackbox/runs/${id}/graph`)),
576
+ /** The file versions the run made, each with the plan steps under way when it was made (observed, never a claim that
577
+ * the step caused it), and the plan steps it moved. A key needs its Black Box content switch. */
578
+ lineage: (id) => this.request("GET", this.platformURL(`/blackbox/runs/${id}/lineage`)),
573
579
  verify: (id) => this.request("GET", this.platformURL(`/blackbox/runs/${id}/verify`)),
574
580
  /** The run's signed checkpoints and the anchor (an RFC 3161 timestamp over a Merkle root) that fixes them in time. */
575
581
  checkpoints: (id) => this.request("GET", this.platformURL(`/blackbox/runs/${id}/checkpoints`)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dyadic",
3
- "version": "1.7.1",
3
+ "version": "1.8.1",
4
4
  "description": "The official TypeScript and JavaScript SDK for the Dyadic API: runs with your own agents and functions, plus the OpenAI-, Anthropic- and OpenRouter-compatible APIs.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",