@anvailabs/proximadb-client 0.4.1 → 0.5.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.
@@ -0,0 +1,3 @@
1
+ // GENERATED by scripts/write-esm-entry.mjs -- types of the ESM entry (dist/index.mjs).
2
+ export * from "./index.js";
3
+ export { ProximaDBClient as default } from "./index.js";
package/dist/index.d.ts CHANGED
@@ -45,7 +45,7 @@
45
45
  * Copyright 2025 ProximaDB Contributors
46
46
  * Licensed under the Apache License, Version 2.0
47
47
  */
48
- export declare const VERSION = "1.0.0";
48
+ export declare const VERSION = "0.5.0";
49
49
  export { DistanceMetric, StorageEngine, IndexType, FilterOp, LogicalOp, SearchMode, TraversalDirection, ErrorCode, ProximaDBError, } from "./types";
50
50
  export type { ProximaRecord, VectorRecord, SearchResult, CollectionConfig, CollectionStats, CollectionInfo, HealthStatus, Metadata, MetadataValue, JsonValue, Filter, FilterCondition, FilterGroup, FilterNode, GraphNode, GraphEdge, TraversalResult, GraphInfo, ClientConfig, SearchOptions, InsertOptions, UpdateOptions, DeleteResult, OperationMetrics, SearchResultBatch, SearchResultIterator, ProbeResponse, ColumnDefinition, SchemaDefinition, SchemaResponse, UpdateSchemaRequest, UpdateSchemaResponse, QueryLanguage, QueryRequest, ExplainQueryRequest, QueryResponse, } from "./types";
51
51
  export { ProximaDBClient, ClientBuilder, connect, connectRest, } from "./client";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAMH,eAAO,MAAM,OAAO,UAAU,CAAC;AAO/B,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,MAAM,EACN,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,aAAa,EAEb,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,EAEhB,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,GACL,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AASH,eAAO,MAAM,OAAO,UAAU,CAAC;AAO/B,OAAO,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,MAAM,EACN,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,aAAa,EAEb,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,EAEhB,UAAU,EACV,IAAI,EACJ,UAAU,EACV,IAAI,GACL,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,eAAe,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -51,7 +51,10 @@ exports.edge = exports.createEdge = exports.node = exports.createNode = exports.
51
51
  // ============================================================================
52
52
  // VERSION
53
53
  // ============================================================================
54
- exports.VERSION = "1.0.0";
54
+ // The package version. Kept equal to package.json `version` by
55
+ // scripts/version-sync.sh (`set` rewrites it, `check` fails on drift) and by
56
+ // tests/package_entry.test.ts.
57
+ exports.VERSION = "0.5.0";
55
58
  // ============================================================================
56
59
  // TYPES
57
60
  // ============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;;AAEH,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAElE,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,yBAAyB;AACzB,iCAUiB;AATf,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,2GAAA,kBAAkB,OAAA;AAClB,kGAAA,SAAS,OAAA;AACT,uGAAA,cAAc,OAAA;AA2ChB,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAKkB;AAJhB,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AACb,iGAAA,OAAO,OAAA;AACP,qGAAA,WAAW,OAAA;AAGb,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,2CAMsB;AALpB,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AACb,gHAAA,kBAAkB,OAAA;AAClB,2GAAA,aAAa,OAAA;AAGf,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAGkB;AAFhB,uGAAA,aAAa,OAAA;AACb,6GAAA,mBAAmB,OAAA;AAGrB,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAYkB;AAXhB,uGAAA,aAAa,OAAA;AACb,wBAAwB;AACxB,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,gGAAA,MAAM,OAAA;AACN,+FAAA,KAAK,OAAA;AACL,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAGpB,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,iCAWiB;AAVf,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,wBAAwB;AACxB,mGAAA,UAAU,OAAA;AACV,6FAAA,IAAI,OAAA;AACJ,mGAAA,UAAU,OAAA;AACV,6FAAA,IAAI,OAAA;AAGN,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,qCAA2C;AAC3C,kBAAe,wBAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;;AAEH,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,+DAA+D;AAC/D,6EAA6E;AAC7E,+BAA+B;AAClB,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,yBAAyB;AACzB,iCAUiB;AATf,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,2GAAA,kBAAkB,OAAA;AAClB,kGAAA,SAAS,OAAA;AACT,uGAAA,cAAc,OAAA;AA2ChB,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAKkB;AAJhB,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AACb,iGAAA,OAAO,OAAA;AACP,qGAAA,WAAW,OAAA;AAGb,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,2CAMsB;AALpB,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AACb,gHAAA,kBAAkB,OAAA;AAClB,2GAAA,aAAa,OAAA;AAGf,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAGkB;AAFhB,uGAAA,aAAa,OAAA;AACb,6GAAA,mBAAmB,OAAA;AAGrB,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,mCAYkB;AAXhB,uGAAA,aAAa,OAAA;AACb,wBAAwB;AACxB,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,4FAAA,EAAE,OAAA;AACF,gGAAA,MAAM,OAAA;AACN,+FAAA,KAAK,OAAA;AACL,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,4GAAA,kBAAkB,OAAA;AAGpB,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,iCAWiB;AAVf,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,wBAAwB;AACxB,mGAAA,UAAU,OAAA;AACV,6FAAA,IAAI,OAAA;AACJ,mGAAA,UAAU,OAAA;AACV,6FAAA,IAAI,OAAA;AAGN,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,qCAA2C;AAC3C,kBAAe,wBAAe,CAAC"}
package/dist/index.mjs ADDED
@@ -0,0 +1,4 @@
1
+ // GENERATED by scripts/write-esm-entry.mjs -- ESM wrapper over the CommonJS build.
2
+ import cjs from "./index.js";
3
+ export const { BatchInsertBuilder, ClientBuilder, CollectionBuilder, CollectionHandle, DistanceMetric, EdgeBuilder, ErrorCode, FilterBuilder, FilterOp, GraphBuilder, GraphHandle, IndexType, InsertBuilder, LogicalOp, NodeBuilder, ProximaDBClient, ProximaDBError, SearchBuilder, SearchMode, StorageEngine, TraversalBuilder, TraversalDirection, UpdateBuilder, VERSION, andFilters, connect, connectRest, createEdge, createNode, createSearchBuilder, edge, eq, filterToExpression, gt, inList, lt, ne, node, orFilters, range } = cjs;
4
+ export default cjs.default;
package/package.json CHANGED
@@ -1,15 +1,20 @@
1
1
  {
2
2
  "name": "@anvailabs/proximadb-client",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "TypeScript/Node.js SDK for ProximaDB vector database",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "module": "dist/index.mjs",
8
8
  "exports": {
9
9
  ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.mjs",
12
- "require": "./dist/index.js"
10
+ "import": {
11
+ "types": "./dist/index.d.mts",
12
+ "default": "./dist/index.mjs"
13
+ },
14
+ "require": {
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.js"
17
+ }
13
18
  }
14
19
  },
15
20
  "files": [
@@ -17,7 +22,7 @@
17
22
  "src"
18
23
  ],
19
24
  "scripts": {
20
- "build": "tsc && tsc -p tsconfig.esm.json",
25
+ "build": "tsc && node scripts/write-esm-entry.mjs",
21
26
  "clean": "rm -rf dist",
22
27
  "prepublishOnly": "npm run clean && npm run build",
23
28
  "lint": "tsc --noEmit",
package/src/collection.ts CHANGED
@@ -77,6 +77,24 @@ export interface CollectionHttpClient extends SearchHttpClient {
77
77
  // COLLECTION BUILDER
78
78
  // ============================================================================
79
79
 
80
+ const INDEX_TYPES: readonly string[] = Object.values(IndexType);
81
+
82
+ /**
83
+ * Normalize an index type the way the server reads algorithm names (trimmed,
84
+ * case-insensitive), failing fast on anything that is not an `IndexType`: a
85
+ * plain-JS caller's `"HNSW"` used to be sent as a declared index instead of
86
+ * the default route, and a typo only failed as a server 400.
87
+ */
88
+ export function normalizeIndexType(idx: IndexType | string): IndexType {
89
+ const value = String(idx).trim().toLowerCase();
90
+ if (!INDEX_TYPES.includes(value)) {
91
+ throw new TypeError(
92
+ `unknown index type "${String(idx)}"; expected one of ${INDEX_TYPES.join(", ")}`,
93
+ );
94
+ }
95
+ return value as IndexType;
96
+ }
97
+
80
98
  /**
81
99
  * Builder for creating collections
82
100
  */
@@ -120,10 +138,14 @@ export class CollectionBuilder {
120
138
  }
121
139
 
122
140
  /**
123
- * Set the index type
141
+ * Set the index type.
142
+ *
143
+ * Case-insensitive and whitespace-tolerant, like the server's algorithm
144
+ * names (`"HNSW"` is `IndexType.Hnsw`). An unknown value throws a
145
+ * `TypeError` here, at the call that is wrong, before any request is sent.
124
146
  */
125
147
  index(idx: IndexType): CollectionBuilder {
126
- this.indexValue = idx;
148
+ this.indexValue = normalizeIndexType(idx);
127
149
  return this;
128
150
  }
129
151
 
@@ -159,11 +181,24 @@ export class CollectionBuilder {
159
181
  throw new Error("Dimension is required for collection creation");
160
182
  }
161
183
 
184
+ // TD-RESTGET-1: the server ignores `index_type` "hnsw" (index selection
185
+ // is cost-derived) and rejects any other value, which it never honoured.
186
+ // Send what each choice means: Hnsw keeps the default payload; Flat forces
187
+ // brute force through the routing policy; the others declare that index.
188
+ // `index()` already normalized the value, so these comparisons are exact.
189
+ const index = this.indexValue;
190
+ const indexFields =
191
+ index === IndexType.Hnsw
192
+ ? { index_type: index }
193
+ : index === IndexType.Flat
194
+ ? { index_policy: { mode: "exact" } }
195
+ : { index_configs: [{ algorithm: index, is_primary: true }] };
196
+
162
197
  const request = {
163
198
  name: this.collectionName,
164
199
  dimension: this.dimensionValue,
165
200
  engine: this.engineValue,
166
- index_type: this.indexValue,
201
+ ...indexFields,
167
202
  distance_metric: this.metricValue,
168
203
  description: this.descriptionValue ?? undefined,
169
204
  tags: this.tagsValue.length > 0 ? this.tagsValue : undefined,
@@ -2550,6 +2550,23 @@ export interface components {
2550
2550
  * set a non-default (Unspecified/Fp32) precision.
2551
2551
  */
2552
2552
  canonical_embedding_precision?: string | null;
2553
+ /**
2554
+ * @description Resolved desired storage class (TD-TIER-1 SC1):
2555
+ * "economy" | "balanced" (default) | "performance".
2556
+ */
2557
+ storage_class: string;
2558
+ /**
2559
+ * @description Observed storage-class status — the truth about what SC1 delivers.
2560
+ * "balanced" ⇒ active; economy/performance persist intent and report
2561
+ * `not_active` with a reason naming the missing dependency (SC3/SC4).
2562
+ */
2563
+ storage_class_status: components["schemas"]["StorageClassStatusOutput"];
2564
+ /**
2565
+ * @description Desired access tier for future segment writes (TD-TIER-1 SC5):
2566
+ * "hot" | "cool" | "cold"; omitted when unset (the account default).
2567
+ * Desired, not observed: an account lifecycle rule may move objects.
2568
+ */
2569
+ default_access_tier?: string | null;
2553
2570
  schema?: null | components["schemas"]["SchemaDefinition"];
2554
2571
  /** @description Collection statistics */
2555
2572
  stats: components["schemas"]["CollectionStatsV2"];
@@ -2614,6 +2631,8 @@ export interface components {
2614
2631
  * "enable_proxima_record": true
2615
2632
  * }
2616
2633
  * ```
2634
+ * Unknown fields are rejected (TD-RESTGET-1): a misspelt setting used to be
2635
+ * dropped, and the collection silently got the default instead.
2617
2636
  */
2618
2637
  CreateCollectionV2Request: {
2619
2638
  /** @description Collection name (required) */
@@ -2629,6 +2648,7 @@ export interface components {
2629
2648
  * Options: "auto", "sst", "helix", "swift", "nova", "raptor", "tst"
2630
2649
  * Default: "auto" (system selects optimal engine)
2631
2650
  * ("viper" is no longer accepted — deprecated by ADR-093)
2651
+ * `storage_engine` is accepted as an alias.
2632
2652
  */
2633
2653
  engine?: string | null;
2634
2654
  schema?: null | components["schemas"]["SchemaDefinition"];
@@ -2648,6 +2668,7 @@ export interface components {
2648
2668
  *
2649
2669
  * Options: "cosine", "euclidean", "dot_product"
2650
2670
  * Default: "cosine"
2671
+ * `metric` is accepted as an alias.
2651
2672
  */
2652
2673
  distance_metric?: string | null;
2653
2674
  /**
@@ -2681,6 +2702,38 @@ export interface components {
2681
2702
  tags?: string[] | null;
2682
2703
  quantization?: null | components["schemas"]["QuantizationConfigInput"];
2683
2704
  index_policy?: null | components["schemas"]["IndexPolicyInput"];
2705
+ /** @description Free-text description, persisted on the collection config. */
2706
+ description?: string | null;
2707
+ /**
2708
+ * @deprecated
2709
+ * @description Legacy field the released Rust and TypeScript SDKs send on every create
2710
+ * (default "hnsw"). Index selection is cost-derived, so "hnsw" is accepted
2711
+ * and has no effect; any other value is rejected — declare an index with
2712
+ * `index_configs` or force a route with `index_policy.mode` instead.
2713
+ */
2714
+ index_type?: string | null;
2715
+ /**
2716
+ * @description Desired storage class (TD-TIER-1 SC1).
2717
+ *
2718
+ * Options: "balanced" (default) | "economy" | "performance". Omitted ⇒
2719
+ * balanced (pre-SC1 collections are unchanged). "performance" is admitted
2720
+ * only for an object-store-backed SST/PAX placement and reports
2721
+ * `not_active` until its residency dependency ships; economy likewise
2722
+ * persists intent only. Read `storage_class_status` on the GET response
2723
+ * for the observed truth — the class is never a claim.
2724
+ */
2725
+ storage_class?: string | null;
2726
+ /**
2727
+ * @description Provider access tier for the collection's FUTURE compacted segments
2728
+ * (TD-TIER-1 SC5): "hot" | "cool" | "cold". Omitted ⇒ the account/bucket
2729
+ * default. Requires an object-store placement (s3/az/gs); "archive" is
2730
+ * refused (archived objects cannot serve queries). Fresh flush (L0)
2731
+ * segments keep the account default — they are compacted away long
2732
+ * before a cool/cold tier's minimum storage duration. Existing objects
2733
+ * are not rewritten; control objects keep the account default. Once
2734
+ * set, a tier can be changed but not cleared back to the default.
2735
+ */
2736
+ default_access_tier?: string | null;
2684
2737
  };
2685
2738
  /** @description Response for collection creation */
2686
2739
  CreateCollectionV2Response: {
@@ -3448,6 +3501,51 @@ export interface components {
3448
3501
  execution_time_ms: number;
3449
3502
  request_id: string;
3450
3503
  };
3504
+ /**
3505
+ * @description REST output for the observed storage-class status (TD-TIER-1 SC1; mirrors
3506
+ * proto `StorageClassStatus` — a read-side projection, never an input).
3507
+ */
3508
+ StorageClassStatusOutput: {
3509
+ /**
3510
+ * @description "active" | "not_active" | "warming" | "ready" | "degraded"
3511
+ * ("unspecified" never leaves the server).
3512
+ */
3513
+ state: string;
3514
+ /**
3515
+ * @description Human-readable reason when `state` is not active (names the missing
3516
+ * dependency); empty when active.
3517
+ */
3518
+ reason: string;
3519
+ /**
3520
+ * Format: int64
3521
+ * @description Monotonic generation of the desired policy: 0 = never set (pre-SC1
3522
+ * records), 1 = set at create; a policy-change surface will bump it.
3523
+ */
3524
+ policy_generation: number;
3525
+ /**
3526
+ * Format: int64
3527
+ * @description Reserved bytes under the collection's residency admission (SC3). 0 until then.
3528
+ */
3529
+ reserved_bytes: number;
3530
+ /**
3531
+ * Format: int64
3532
+ * @description Bytes resident in the serving cache (SC4). 0 until then.
3533
+ */
3534
+ resident_bytes: number;
3535
+ /**
3536
+ * Format: int64
3537
+ * @description Bytes covered by the READY coverage set (SC4). 0 until then.
3538
+ */
3539
+ covered_bytes: number;
3540
+ /**
3541
+ * Format: int64
3542
+ * @description The committed segment-set generation the coverage was proven against
3543
+ * (TD-TIER-1 SC4-5); absent when no proof was attempted. Optional so
3544
+ * old and new clients and servers interoperate in both directions.
3545
+ * Computed per status read (one LIST per segment root).
3546
+ */
3547
+ covered_generation?: number | null;
3548
+ };
3451
3549
  /**
3452
3550
  * @description Input format for TEXT fields
3453
3551
  *
package/src/index.ts CHANGED
@@ -50,7 +50,10 @@
50
50
  // VERSION
51
51
  // ============================================================================
52
52
 
53
- export const VERSION = "1.0.0";
53
+ // The package version. Kept equal to package.json `version` by
54
+ // scripts/version-sync.sh (`set` rewrites it, `check` fails on drift) and by
55
+ // tests/package_entry.test.ts.
56
+ export const VERSION = "0.5.0";
54
57
 
55
58
  // ============================================================================
56
59
  // TYPES