jennah-sdk-ts 0.67.0 → 0.68.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.
@@ -71,9 +71,9 @@ export declare const AgentInstanceSchema: GenMessage<AgentInstance>;
71
71
  * the per-query scan budget are measured against, reported so a caller can see it
72
72
  * before either limit refuses them.
73
73
  *
74
- * It counts vector chunk ROWS, including chunks retired by supersession: a retired
75
- * chunk still occupies a row and is still read by a search that travels back to
76
- * it, so it costs what a current chunk costs. It can therefore exceed the number
74
+ * It counts every STORED vector chunk, including chunks retired by supersession:
75
+ * a retired chunk is still stored and is still read by a search that travels back
76
+ * to it, so it costs what a current chunk costs. It can therefore exceed the number
77
77
  * of chunks an ordinary query returns. It may briefly lag a commit that just
78
78
  * landed.
79
79
  *
@@ -250,12 +250,12 @@ export declare const DeleteAgentRequestSchema: GenMessage<DeleteAgentRequest>;
250
250
  * Response message for the AgentService.DeleteAgent rpc.
251
251
  *
252
252
  * The deletion receipt: the instant the erasure committed. It deliberately does
253
- * NOT enumerate what was removed. The cascade prunes every table interleaved
254
- * under AgentInstances, including ones added after this message was written, so
255
- * an enumeration would have to be widened by every change that adds a table and
256
- * would report an internal row shape the caller cannot verify against anything.
257
- * What the receipt attests to is that the workspace and everything beneath it
258
- * were erased in one transaction, at one instant.
253
+ * NOT enumerate what was removed. Everything stored beneath the workspace is
254
+ * erased with it, including kinds of data added after this message was written,
255
+ * so an enumeration would have to be widened every time a new kind is added and
256
+ * would report counts the caller cannot verify against anything. What the
257
+ * receipt attests to is that the workspace and everything beneath it were erased
258
+ * in one transaction, at one instant.
259
259
  *
260
260
  * @generated from message jennahapi.agent.v1.DeleteAgentResponse
261
261
  */
@@ -283,8 +283,7 @@ export declare enum AgentStatus {
283
283
  */
284
284
  UNSPECIFIED = 0,
285
285
  /**
286
- * Ready for use: the region's data-plane instance is provisioned and the
287
- * AgentInstances row exists in the data plane.
286
+ * Ready for use: the workspace exists in its home region.
288
287
  *
289
288
  * @generated from enum value: AGENT_STATUS_ACTIVE = 1;
290
289
  */
@@ -298,8 +297,8 @@ export declare enum AgentStatus {
298
297
  */
299
298
  COMPLETED = 3,
300
299
  /**
301
- * Provisioning is still in flight (the region's data-plane instance is being
302
- * created). No data-plane row exists yet; poll GetAgent until ACTIVE.
300
+ * Provisioning is still in flight: the home region is being prepared and the
301
+ * workspace cannot hold memory yet. Poll GetAgent until ACTIVE.
303
302
  *
304
303
  * @generated from enum value: AGENT_STATUS_PROVISIONING = 4;
305
304
  */
@@ -324,12 +323,10 @@ export declare const AgentStatusSchema: GenEnum<AgentStatus>;
324
323
  export declare const AgentService: GenService<{
325
324
  /**
326
325
  * Creates a new agent workspace under the caller's enterprise. The home region
327
- * is resolved from the optional `region` field (a Jennah region identifier
328
- * validated against the configured allowlist) or the platform default region;
329
- * the region's data-plane instance is provisioned on first use (its tables are
330
- * created once per database, and tenancy is row-level: the AgentInstances row
331
- * is keyed by EnterpriseId). The EnterpriseId is taken from the token, never
332
- * the body.
326
+ * is resolved from the optional `region` field (a Jennah region identifier, one
327
+ * of those ListLocations reports) or the platform default region, and the
328
+ * region is prepared for the enterprise on first use. The enterprise is taken
329
+ * from the token, never the body.
333
330
  *
334
331
  * Returns the workspace synchronously. When provisioning is still in flight
335
332
  * the returned AgentInstance carries status AGENT_STATUS_PROVISIONING; poll
@@ -70,8 +70,7 @@ export var AgentStatus;
70
70
  */
71
71
  AgentStatus[AgentStatus["UNSPECIFIED"] = 0] = "UNSPECIFIED";
72
72
  /**
73
- * Ready for use: the region's data-plane instance is provisioned and the
74
- * AgentInstances row exists in the data plane.
73
+ * Ready for use: the workspace exists in its home region.
75
74
  *
76
75
  * @generated from enum value: AGENT_STATUS_ACTIVE = 1;
77
76
  */
@@ -85,8 +84,8 @@ export var AgentStatus;
85
84
  */
86
85
  AgentStatus[AgentStatus["COMPLETED"] = 3] = "COMPLETED";
87
86
  /**
88
- * Provisioning is still in flight (the region's data-plane instance is being
89
- * created). No data-plane row exists yet; poll GetAgent until ACTIVE.
87
+ * Provisioning is still in flight: the home region is being prepared and the
88
+ * workspace cannot hold memory yet. Poll GetAgent until ACTIVE.
90
89
  *
91
90
  * @generated from enum value: AGENT_STATUS_PROVISIONING = 4;
92
91
  */
@@ -34,7 +34,7 @@ export type CommitMemoryRequest = Message<"jennahapi.agent.v1.CommitMemoryReques
34
34
  */
35
35
  log?: ExecutionLogStep | undefined;
36
36
  /**
37
- * Vector section: chunks to upsert (write-or-replace) within the agent slice.
37
+ * Vector section: chunks to upsert (write-or-replace) within the scope.
38
38
  * Empty to commit no vectors.
39
39
  *
40
40
  * @generated from field: repeated jennahapi.agent.v1.VectorChunk vectors = 3;
@@ -59,10 +59,10 @@ export type CommitMemoryRequest = Message<"jennahapi.agent.v1.CommitMemoryReques
59
59
  * Every section of the commit is applied to this ONE scope in one transaction.
60
60
  *
61
61
  * A commit never writes more than one scope, and that holds even when two
62
- * scopes happen to share a data-plane database. A commit spanning scopes is
63
- * impossible across regions, so permitting it for co-resident scopes alone
64
- * would make the atomicity a caller can rely on depend on deployment topology
65
- * rather than on the contract. Naming a second scope is INVALID_ARGUMENT.
62
+ * scopes share a home region. A commit spanning scopes is impossible across
63
+ * regions, so permitting it for scopes in the same region alone would make the
64
+ * atomicity a caller can rely on depend on where scopes happen to live rather
65
+ * than on the contract. Naming a second scope is INVALID_ARGUMENT.
66
66
  *
67
67
  * @generated from field: string target_scope = 6;
68
68
  */
@@ -116,7 +116,7 @@ export declare const CommitMemoryRequestSchema: GenMessage<CommitMemoryRequest>;
116
116
  */
117
117
  export type ExecutionLogStep = Message<"jennahapi.agent.v1.ExecutionLogStep"> & {
118
118
  /**
119
- * caller-chosen; unique within the agent slice
119
+ * caller-chosen; unique within the scope
120
120
  *
121
121
  * @generated from field: string step_id = 1;
122
122
  */
@@ -186,7 +186,7 @@ export declare const ExecutionLogStepSchema: GenMessage<ExecutionLogStep>;
186
186
  */
187
187
  export type VectorChunk = Message<"jennahapi.agent.v1.VectorChunk"> & {
188
188
  /**
189
- * caller-chosen; unique within the agent slice
189
+ * caller-chosen; unique within the scope
190
190
  *
191
191
  * @generated from field: string chunk_id = 1;
192
192
  */
@@ -263,7 +263,7 @@ export type VectorChunk = Message<"jennahapi.agent.v1.VectorChunk"> & {
263
263
  export declare const VectorChunkSchema: GenMessage<VectorChunk>;
264
264
  /**
265
265
  * Graph-memory writes for one commit. Edges may only connect nodes within the
266
- * same (EnterpriseId, AgentInstanceId) slice. Edges carry an optional bi-temporal
266
+ * same scope. Edges carry an optional bi-temporal
267
267
  * validity window (see GraphEdge.valid_at/invalid_at); a plain write with neither
268
268
  * field set records an always-current fact. Replacing a fact while preserving
269
269
  * history is the caller-driven supersession operation (CommitMemoryRequest's
@@ -319,7 +319,7 @@ export type SupersessionWrite = Message<"jennahapi.agent.v1.SupersessionWrite">
319
319
  export declare const SupersessionWriteSchema: GenMessage<SupersessionWrite>;
320
320
  /**
321
321
  * One edge supersession: close `prior_edge_id`'s valid-time window at the
322
- * replacement's valid_at, and insert `new_edge` in the same slice. The prior edge
322
+ * replacement's valid_at, and insert `new_edge` in the same scope. The prior edge
323
323
  * stays stored and queryable as history, with its own transaction-time start
324
324
  * preserved.
325
325
  *
@@ -333,14 +333,14 @@ export declare const SupersessionWriteSchema: GenMessage<SupersessionWrite>;
333
333
  */
334
334
  export type EdgeSupersession = Message<"jennahapi.agent.v1.EdgeSupersession"> & {
335
335
  /**
336
- * The currently-held edge to close. Resolved within the caller's slice; an
337
- * unknown id is NotFound (never a cross-slice touch).
336
+ * The currently-held edge to close. Resolved within the caller's scope; an
337
+ * unknown id is NotFound (never a touch outside the scope).
338
338
  *
339
339
  * @generated from field: string prior_edge_id = 1;
340
340
  */
341
341
  priorEdgeId: string;
342
342
  /**
343
- * The replacement fact, INSERTED in the same slice. new_edge.valid_at is
343
+ * The replacement fact, INSERTED in the same scope. new_edge.valid_at is
344
344
  * REQUIRED: it is the supersession boundary (the prior edge's invalid_at and the
345
345
  * new edge's valid_at) and must be a concrete, non-future timestamp.
346
346
  * new_edge.edge_id must be set and differ from prior_edge_id; because the
@@ -360,7 +360,7 @@ export type EdgeSupersession = Message<"jennahapi.agent.v1.EdgeSupersession"> &
360
360
  export declare const EdgeSupersessionSchema: GenMessage<EdgeSupersession>;
361
361
  /**
362
362
  * One chunk supersession: close `prior_chunk_id`'s valid-time window at the
363
- * replacement's valid_at, and insert `new_chunk` in the same slice. The prior
363
+ * replacement's valid_at, and insert `new_chunk` in the same scope. The prior
364
364
  * chunk stays stored with its CONTENT INTACT and readable as history: closing a
365
365
  * window writes the validity end and nothing else.
366
366
  *
@@ -371,14 +371,14 @@ export declare const EdgeSupersessionSchema: GenMessage<EdgeSupersession>;
371
371
  */
372
372
  export type ChunkSupersession = Message<"jennahapi.agent.v1.ChunkSupersession"> & {
373
373
  /**
374
- * The currently-held chunk to close. Resolved within the caller's slice; an
375
- * unknown id is NotFound (never a cross-slice touch).
374
+ * The currently-held chunk to close. Resolved within the caller's scope; an
375
+ * unknown id is NotFound (never a touch outside the scope).
376
376
  *
377
377
  * @generated from field: string prior_chunk_id = 1;
378
378
  */
379
379
  priorChunkId: string;
380
380
  /**
381
- * The replacement passage, INSERTED in the same slice. new_chunk.valid_at is
381
+ * The replacement passage, INSERTED in the same scope. new_chunk.valid_at is
382
382
  * REQUIRED: it is the supersession boundary (the prior chunk's invalid_at and
383
383
  * the new chunk's valid_at) and must be a concrete, non-future timestamp.
384
384
  * new_chunk.chunk_id must be set and differ from prior_chunk_id; because the
@@ -406,7 +406,7 @@ export declare const ChunkSupersessionSchema: GenMessage<ChunkSupersession>;
406
406
  */
407
407
  export type GraphNode = Message<"jennahapi.agent.v1.GraphNode"> & {
408
408
  /**
409
- * caller-chosen; unique within the agent slice
409
+ * caller-chosen; unique within the scope
410
410
  *
411
411
  * @generated from field: string node_id = 1;
412
412
  */
@@ -493,19 +493,19 @@ export declare const GraphNodeSchema: GenMessage<GraphNode>;
493
493
  */
494
494
  export type GraphEdge = Message<"jennahapi.agent.v1.GraphEdge"> & {
495
495
  /**
496
- * caller-chosen; unique within the agent slice
496
+ * caller-chosen; unique within the scope
497
497
  *
498
498
  * @generated from field: string edge_id = 1;
499
499
  */
500
500
  edgeId: string;
501
501
  /**
502
- * must reference a GraphNode in the same slice
502
+ * must reference a GraphNode in the same scope
503
503
  *
504
504
  * @generated from field: string source_node_id = 2;
505
505
  */
506
506
  sourceNodeId: string;
507
507
  /**
508
- * must reference a GraphNode in the same slice
508
+ * must reference a GraphNode in the same scope
509
509
  *
510
510
  * @generated from field: string target_node_id = 3;
511
511
  */
@@ -728,18 +728,17 @@ export type QueryMemoryRequest = Message<"jennahapi.agent.v1.QueryMemoryRequest"
728
728
  * with PERMISSION_DENIED. It is never dropped from the set, because a
729
729
  * silently narrowed set returns a partial answer indistinguishable from a
730
730
  * complete one.
731
- * - Every named scope must resolve to the SAME data-plane database. One
732
- * naming a scope homed in another region is refused with an error
733
- * identifying the offending scope and the mismatch, never satisfied by
734
- * reading each database separately: two databases cannot share a read
735
- * snapshot, so combining their results would present two instants as one
736
- * consistent answer. A query naming exactly ONE scope is servable from
731
+ * - Every named scope must have the SAME home region. A query naming a
732
+ * scope homed in another region is refused with an error identifying the
733
+ * offending scope and the mismatch, never satisfied by reading each region
734
+ * separately: two regions cannot share a read snapshot, so combining their
735
+ * results would present two instants as one consistent answer. A query naming exactly ONE scope is servable from
737
736
  * anywhere, because routing resolves that scope to its own region.
738
737
  * - The number of scopes in one query is bounded by a server maximum;
739
738
  * exceeding it is refused with an error naming the limit rather than
740
739
  * truncated to the first N. Semantic search is exact KNN, affordable
741
- * because each scope is a small contiguous key range, and a multi-scope
742
- * query scans one such range per scope.
740
+ * because each scope is searched on its own, and a multi-scope query
741
+ * searches each named scope once.
743
742
  *
744
743
  * Graph traversal stays INSIDE a scope: an edge connects nodes within one
745
744
  * scope, so a multi-scope graph section returns one subgraph per requested
@@ -770,16 +769,16 @@ export type QueryMemoryRequest = Message<"jennahapi.agent.v1.QueryMemoryRequest"
770
769
  export declare const QueryMemoryRequestSchema: GenMessage<QueryMemoryRequest>;
771
770
  /**
772
771
  * Semantic-section query. Exactly one of `embedding` or `query_text` MUST be
773
- * supplied; when `query_text` is given the gateway embeds it server-side
772
+ * supplied; when `query_text` is given the platform embeds it server-side
774
773
  * (task_type RETRIEVAL_QUERY). Results are ranked by ascending cosine distance
775
- * and clamped to the caller's agent slice (the clamp never silently truncates
774
+ * and drawn only from the caller's own scope (which never silently truncates
776
775
  * below `limit`).
777
776
  *
778
777
  * @generated from message jennahapi.agent.v1.SemanticQuery
779
778
  */
780
779
  export type SemanticQuery = Message<"jennahapi.agent.v1.SemanticQuery"> & {
781
780
  /**
782
- * precomputed query embedding; width must match the db
781
+ * precomputed query embedding; width must match the scope's embedding width
783
782
  *
784
783
  * @generated from field: repeated float embedding = 1;
785
784
  */
@@ -823,8 +822,7 @@ export type SemanticQuery = Message<"jennahapi.agent.v1.SemanticQuery"> & {
823
822
  *
824
823
  * A filtered section MAY therefore return fewer than `limit` results when fewer
825
824
  * chunks match. That is the caller's own narrowing and is reproducible from the
826
- * filters; it is NOT the silent truncation the tenant/agent clamp guarantees
827
- * against.
825
+ * filters; it is NOT a silent truncation, which the platform never applies.
828
826
  *
829
827
  * @generated from field: repeated jennahapi.agent.v1.MetadataFilter filters = 4;
830
828
  */
@@ -849,11 +847,10 @@ export type SemanticQuery = Message<"jennahapi.agent.v1.SemanticQuery"> & {
849
847
  * agent held at that instant, consistent with one another.
850
848
  *
851
849
  * This is NOT QueryMemoryRequest.as_of. That field moves the physical read
852
- * snapshot and is bounded by the backend's version-retention window (about an
853
- * hour); valid-time is a bound predicate over stored columns evaluated at the
854
- * current snapshot, so it reaches arbitrarily far back. Both bounds bind as query
855
- * parameters and are injected alongside the tenant/agent clamp, which cannot be
856
- * omitted or widened.
850
+ * snapshot and may be at most about an hour in the past; valid-time is a bound
851
+ * predicate over stored columns evaluated at the current snapshot, so it
852
+ * reaches arbitrarily far back. Both bounds only narrow the read; they never
853
+ * reach outside the caller's own scope.
857
854
  *
858
855
  * @generated from field: google.protobuf.Timestamp as_of_valid = 5;
859
856
  */
@@ -878,7 +875,7 @@ export type SemanticQuery = Message<"jennahapi.agent.v1.SemanticQuery"> & {
878
875
  * Hybrid also requires the workspace's enterprise to have the lexical channel
879
876
  * enabled and its stored chunks fully indexed. Where that is not yet true the
880
877
  * request is refused rather than answered from a partial index, because a lexical
881
- * channel ranking over part of a slice returns fewer results than the slice holds
878
+ * channel ranking over part of a scope returns fewer results than the scope holds
882
879
  * without saying so.
883
880
  *
884
881
  * @generated from field: jennahapi.agent.v1.RetrievalMode retrieval_mode = 7;
@@ -902,7 +899,7 @@ export type SemanticQuery = Message<"jennahapi.agent.v1.SemanticQuery"> & {
902
899
  * constant, not a caller knob, because its right value is a property of the
903
900
  * retrieval path rather than of any one request.
904
901
  *
905
- * Reranking resolves within the workspace's own data-plane region, on the same
902
+ * Reranking resolves within the workspace's own home region, on the same
906
903
  * rule every other external inference follows. A region with no configured
907
904
  * reranking endpoint refuses the request rather than sending the workspace's
908
905
  * content elsewhere, and a request that opts in where reranking cannot be
@@ -1003,7 +1000,7 @@ export declare const MetadataFilter_OperatorSchema: GenEnum<MetadataFilter_Opera
1003
1000
  /**
1004
1001
  * Graph-section query: a STRUCTURED traversal over the agent's knowledge graph.
1005
1002
  * The platform ensures graph queries remain within the caller's authorized
1006
- * (EnterpriseId, AgentInstanceId) slice.
1003
+ * scope.
1007
1004
  *
1008
1005
  * A query is an anchor node set plus zero or more single-hop traversals. Each
1009
1006
  * hop is one `GraphStep`; multi-hop traversal is expressed as successive steps.
@@ -1038,11 +1035,10 @@ export type GraphQuery = Message<"jennahapi.agent.v1.GraphQuery"> & {
1038
1035
  * as_of_tx additionally constrains transaction-time ("as known at as_of_tx"),
1039
1036
  * and is only meaningful together with as_of_valid.
1040
1037
  *
1041
- * Graph valid-time is evaluated as a bound predicate over the validity columns
1042
- * at the current snapshot, never by moving
1043
- * the physical read timestamp. Both bounds bind as query parameters; the clamp
1044
- * is injected onto every hop exactly like the tenant/agent clamp and cannot be
1045
- * omitted or widened.
1038
+ * Graph valid-time is evaluated as a predicate over each edge's validity window
1039
+ * at the current snapshot, never by moving the physical read timestamp. It
1040
+ * applies to every hop, only narrows the traversal, and never reaches outside
1041
+ * the caller's own scope.
1046
1042
  *
1047
1043
  * @generated from field: google.protobuf.Timestamp as_of_valid = 4;
1048
1044
  */
@@ -1060,8 +1056,8 @@ export declare const GraphQuerySchema: GenMessage<GraphQuery>;
1060
1056
  /**
1061
1057
  * A node-pattern constraint. `label` optionally filters the node's semantic
1062
1058
  * `Label` property (e.g. "Person"); `filters` are optional equality predicates.
1063
- * The gateway always adds the (EnterpriseId, AgentInstanceId) clamp to the
1064
- * generated element: it is NOT expressible here and cannot be overridden.
1059
+ * The platform always confines the match to the caller's own scope: that is NOT
1060
+ * expressible here and cannot be overridden.
1065
1061
  *
1066
1062
  * @generated from message jennahapi.agent.v1.GraphNodeMatch
1067
1063
  */
@@ -1084,11 +1080,11 @@ export type GraphNodeMatch = Message<"jennahapi.agent.v1.GraphNodeMatch"> & {
1084
1080
  *
1085
1081
  * THIS IS A SEPARATE LIST FROM `filters`, and it stays separate deliberately.
1086
1082
  * `filters` names FIRST-CLASS COLUMNS and is allowlisted (`NodeId`, `Label`,
1087
- * `NodeType`) so that a caller cannot filter on a clamp column. If the two lists
1088
- * merged, resolving a key would mean asking "is this the name of a column?",
1089
- * which would hand a caller-chosen string the power to pick which branch it
1090
- * takes and make a metadata key named `AgentInstanceId` a question rather than
1091
- * an answer. Two lists means a key's meaning is fixed by which list it is in.
1083
+ * `NodeType`) so that a caller cannot filter on any column the platform uses
1084
+ * to keep scopes apart. If the two lists merged, resolving a key would mean
1085
+ * asking "is this the name of a column?", which would hand a caller-chosen
1086
+ * string the power to pick which branch it takes and make a metadata key that
1087
+ * shares a column's name a question rather than an answer. Two lists means a key's meaning is fixed by which list it is in.
1092
1088
  *
1093
1089
  * The rule for choosing: filtering a stored column (`NodeId`, `Label`,
1094
1090
  * `NodeType`) is `filters`; filtering a tag you wrote in GraphNode.metadata is
@@ -1158,8 +1154,8 @@ export declare const GraphStepSchema: GenMessage<GraphStep>;
1158
1154
  * classes its current vocabulary no longer declares, and those nodes stay
1159
1155
  * reachable.
1160
1156
  *
1161
- * The allowlist is what keeps a caller off the clamp columns, so it is narrow on
1162
- * purpose and does not fall back to anything. In particular it does NOT reach into
1157
+ * The allowlist is what keeps a caller off the columns that keep scopes apart, so
1158
+ * it is narrow on purpose and does not fall back to anything. In particular it does NOT reach into
1163
1159
  * `properties`: that field is a payload and is not filterable at all, because
1164
1160
  * filtering a JSON column needs a caller-supplied key inside a JSON path and that
1165
1161
  * is an injection surface the platform does not open. To filter on something a
@@ -1213,7 +1209,7 @@ export type LogQuery = Message<"jennahapi.agent.v1.LogQuery"> & {
1213
1209
  *
1214
1210
  * A filtered section returning fewer steps than `limit` means fewer steps
1215
1211
  * matched. That is the caller's own narrowing and is reproducible from the
1216
- * filter; it is not the truncation the tenant clamp forbids.
1212
+ * filter; it is not a silent truncation, which the platform never applies.
1217
1213
  *
1218
1214
  * @generated from field: repeated jennahapi.agent.v1.MetadataFilter metadata = 3;
1219
1215
  */
@@ -1326,7 +1322,7 @@ export type SemanticMatch = Message<"jennahapi.agent.v1.SemanticMatch"> & {
1326
1322
  */
1327
1323
  channels: RetrievalChannel[];
1328
1324
  /**
1329
- * Spanner's whole-word relevance score, set only when `channels` includes
1325
+ * The lexical (whole-word) relevance score, set only when `channels` includes
1330
1326
  * RETRIEVAL_CHANNEL_LEXICAL and 0 otherwise. Higher is more relevant, OPPOSITE to
1331
1327
  * `distance`.
1332
1328
  *
@@ -1406,7 +1402,7 @@ export type SemanticMatch = Message<"jennahapi.agent.v1.SemanticMatch"> & {
1406
1402
  *
1407
1403
  * It is reported so a layer above the platform can compare WHEN a recalled
1408
1404
  * passage became valid against when a new statement was made, through the
1409
- * ordinary clamped query path rather than a privileged read. Memory formation is
1405
+ * ordinary scope-confined query path rather than a privileged read. Memory formation is
1410
1406
  * the first such caller: it is how a revision knows it is not retiring something
1411
1407
  * newer than the conversation it came from.
1412
1408
  *
@@ -1439,7 +1435,7 @@ export type SemanticMatch = Message<"jennahapi.agent.v1.SemanticMatch"> & {
1439
1435
  export declare const SemanticMatchSchema: GenMessage<SemanticMatch>;
1440
1436
  /**
1441
1437
  * Graph traversal result rows. Each row carries the matched elements' key
1442
- * fields (node ids and labels, and edge relationship types) keyed by gateway-
1438
+ * fields (node ids and labels, and edge relationship types) keyed by platform-
1443
1439
  * assigned binding names, so the shape is carried as a structured value rather
1444
1440
  * than a fixed schema.
1445
1441
  *
@@ -1447,7 +1443,7 @@ export declare const SemanticMatchSchema: GenMessage<SemanticMatch>;
1447
1443
  * rather than as a field beside it: the row has no fixed schema to add a field
1448
1444
  * to, and a parallel array would have to stay index-aligned with one. The key
1449
1445
  * cannot collide with a caller's binding, because binding names are assigned by
1450
- * the gateway and never taken from the request. Every row carries it, including
1446
+ * the platform and never taken from the request. Every row carries it, including
1451
1447
  * for a single-scope query, and no returned path crosses scopes, so one row
1452
1448
  * names exactly one scope.
1453
1449
  *
@@ -1508,7 +1504,7 @@ export declare const FusedResultSchema: GenMessage<FusedResult>;
1508
1504
  *
1509
1505
  * Any subset of the three section fields may be present; at least one SHOULD
1510
1506
  * be. All present sections are enumerated at one read snapshot within the
1511
- * caller's (EnterpriseId, AgentInstanceId) slice. There is no query anchor:
1507
+ * caller's own scope. There is no query anchor:
1512
1508
  * unlike QueryMemory this lists stored rows for debugging, so a section is
1513
1509
  * requested simply by being present, bounded by its limit.
1514
1510
  *
@@ -1718,8 +1714,8 @@ export type InspectMemoryResponse = Message<"jennahapi.agent.v1.InspectMemoryRes
1718
1714
  * recent steps rather than an enumerable listing and has nothing to continue.
1719
1715
  *
1720
1716
  * CONSISTENCY: pages are independently snapshotted, so a commit landing mid-walk
1721
- * may appear. Set `as_of` on every request of the walk for a stable view,
1722
- * bounded by the backend's version-retention window (about an hour).
1717
+ * may appear. Set `as_of` on every request of the walk for a stable view; it
1718
+ * may be at most about an hour in the past.
1723
1719
  *
1724
1720
  * @generated from field: string next_chunk_token = 5;
1725
1721
  */
@@ -1898,14 +1894,14 @@ export type SupersedeEdgeRequest = Message<"jennahapi.agent.v1.SupersedeEdgeRequ
1898
1894
  */
1899
1895
  agentInstanceId: string;
1900
1896
  /**
1901
- * The currently-held edge to close. Resolved within the caller's slice; an
1902
- * unknown id is NotFound (never a cross-slice touch).
1897
+ * The currently-held edge to close. Resolved within the caller's scope; an
1898
+ * unknown id is NotFound (never a touch outside the scope).
1903
1899
  *
1904
1900
  * @generated from field: string prior_edge_id = 2;
1905
1901
  */
1906
1902
  priorEdgeId: string;
1907
1903
  /**
1908
- * The replacement fact, inserted in the same slice. new_edge.valid_at is
1904
+ * The replacement fact, inserted in the same scope. new_edge.valid_at is
1909
1905
  * REQUIRED: it is the supersession boundary (the prior edge's invalid_at and
1910
1906
  * the new edge's valid_at) and must be a concrete timestamp. new_edge.edge_id
1911
1907
  * must be set and differ from prior_edge_id (the replacement is inserted, not
@@ -1971,8 +1967,8 @@ export type SupersedeChunkRequest = Message<"jennahapi.agent.v1.SupersedeChunkRe
1971
1967
  */
1972
1968
  agentInstanceId: string;
1973
1969
  /**
1974
- * The currently-held chunk to close. Resolved within the caller's slice; an
1975
- * unknown id is NotFound (never a cross-slice touch). Its content is left
1970
+ * The currently-held chunk to close. Resolved within the caller's scope; an
1971
+ * unknown id is NotFound (never a touch outside the scope). Its content is left
1976
1972
  * intact: closing a window writes the validity end and nothing else, so the
1977
1973
  * superseded passage stays readable as history.
1978
1974
  *
@@ -1980,7 +1976,7 @@ export type SupersedeChunkRequest = Message<"jennahapi.agent.v1.SupersedeChunkRe
1980
1976
  */
1981
1977
  priorChunkId: string;
1982
1978
  /**
1983
- * The replacement passage, inserted in the same slice. new_chunk.valid_at is
1979
+ * The replacement passage, inserted in the same scope. new_chunk.valid_at is
1984
1980
  * REQUIRED: it is the supersession boundary (the prior chunk's invalid_at and the
1985
1981
  * new chunk's valid_at) and must be a concrete timestamp. new_chunk.chunk_id must
1986
1982
  * be set and differ from prior_chunk_id (the replacement is inserted, not
@@ -2113,10 +2109,10 @@ export declare const ConversationTurnSchema: GenMessage<ConversationTurn>;
2113
2109
  export type FormMemoryRequest = Message<"jennahapi.agent.v1.FormMemoryRequest"> & {
2114
2110
  /**
2115
2111
  * Route path parameter, never read from the body: the agent workspace this
2116
- * formation reads and writes. Every stage is clamped to the caller's
2117
- * (EnterpriseId, this scope) slice: extraction has no field that could widen
2118
- * it, and recall and commit take the same clamped paths CommitMemory and
2119
- * QueryMemory take.
2112
+ * formation reads and writes. Every stage is confined to this scope of the
2113
+ * caller's enterprise: extraction has no field that could widen it, and recall
2114
+ * and commit take the same scope-confined paths CommitMemory and QueryMemory
2115
+ * take.
2120
2116
  *
2121
2117
  * @generated from field: string scope_id = 1;
2122
2118
  */
@@ -2857,7 +2853,7 @@ export declare enum RetrievalMode {
2857
2853
  */
2858
2854
  UNSPECIFIED = 0,
2859
2855
  /**
2860
- * Rank by exact cosine distance over the caller's slice. The default, and what
2856
+ * Rank by exact cosine distance over the caller's scope. The default, and what
2861
2857
  * the semantic section has always done.
2862
2858
  *
2863
2859
  * @generated from enum value: RETRIEVAL_MODE_VECTOR_ONLY = 1;
@@ -3075,7 +3071,8 @@ export declare const MemoryService: GenService<{
3075
3071
  * optional execution-log step, an optional set of vector chunks, an optional
3076
3072
  * set of graph writes, and an optional set of supersessions. The commit is
3077
3073
  * all-or-nothing: if any section fails (e.g. a vector whose width does not
3078
- * match the database, or a supersession naming a prior id that is not there),
3074
+ * match the workspace's embedding width, or a supersession naming a prior id
3075
+ * that is not there),
3079
3076
  * no section's rows are written. The commit is rejected, writing nothing, if
3080
3077
  * the target workspace does not exist under the caller's tenant. Returns a
3081
3078
  * receipt: the commit timestamp and per-memory-type row counts.
@@ -3094,8 +3091,7 @@ export declare const MemoryService: GenService<{
3094
3091
  * section. Returns one result section per requested section, plus a fused
3095
3092
  * result when `link` is set. An optional `as_of` timestamp is applied
3096
3093
  * uniformly to every section so all sections observe the same historical
3097
- * instant. Every section is clamped to the caller's (EnterpriseId,
3098
- * AgentInstanceId) slice.
3094
+ * instant. Every section reads only the caller's own scope.
3099
3095
  *
3100
3096
  * @generated from rpc jennahapi.agent.v1.MemoryService.QueryMemory
3101
3097
  */
@@ -3110,7 +3106,7 @@ export declare const MemoryService: GenService<{
3110
3106
  * vectors are never returned), the graph nodes and edges, and the recent
3111
3107
  * execution-log steps. Unlike QueryMemory it takes no semantic query or graph
3112
3108
  * start pattern; each requested section is simply enumerated within the
3113
- * caller's (EnterpriseId, AgentInstanceId) slice, up to a per-section limit,
3109
+ * caller's own scope, up to a per-section limit,
3114
3110
  * at ONE read snapshot so every section observes the same instant. This is a
3115
3111
  * read-only diagnostic surface, not a retrieval path.
3116
3112
  *
@@ -3125,9 +3121,8 @@ export declare const MemoryService: GenService<{
3125
3121
  * Replaces a currently-held graph fact WITHOUT destroying it (add-temporal-
3126
3122
  * graph). In one read-write transaction it closes the prior edge's valid-time
3127
3123
  * window (its invalid_at becomes the new edge's valid_at, its transaction-time
3128
- * start preserved) and inserts the replacement edge in the same
3129
- * (EnterpriseId, AgentInstanceId) slice with a fresh transaction-time start and
3130
- * an open window (unless new_edge.invalid_at is set). The prior edge stays
3124
+ * start preserved) and inserts the replacement edge in the same scope with a
3125
+ * fresh transaction-time start and an open window (unless new_edge.invalid_at is set). The prior edge stays
3131
3126
  * queryable as history via an as_of graph query. Supersession is caller-driven:
3132
3127
  * the platform never infers which facts conflict. new_edge.valid_at (the
3133
3128
  * supersession boundary) is REQUIRED and new_edge.edge_id must differ from
@@ -3153,8 +3148,7 @@ export declare const MemoryService: GenService<{
3153
3148
  * semantics on the same terms: in one read-write transaction it closes the prior
3154
3149
  * chunk's valid-time window (its invalid_at becomes the new chunk's valid_at, its
3155
3150
  * transaction-time start preserved) and inserts the replacement chunk in the same
3156
- * (EnterpriseId, AgentInstanceId) slice with a fresh transaction-time start and an
3157
- * open window. The prior chunk keeps its content and stays readable as history via
3151
+ * scope with a fresh transaction-time start and an open window. The prior chunk keeps its content and stays readable as history via
3158
3152
  * an as_of_valid semantic query. Supersession is caller-driven: the platform never
3159
3153
  * infers which passages conflict, and performs no model-driven detection of it.
3160
3154
  * new_chunk.valid_at (the supersession boundary) is REQUIRED and new_chunk.chunk_id
@@ -382,7 +382,7 @@ export var RetrievalMode;
382
382
  */
383
383
  RetrievalMode[RetrievalMode["UNSPECIFIED"] = 0] = "UNSPECIFIED";
384
384
  /**
385
- * Rank by exact cosine distance over the caller's slice. The default, and what
385
+ * Rank by exact cosine distance over the caller's scope. The default, and what
386
386
  * the semantic section has always done.
387
387
  *
388
388
  * @generated from enum value: RETRIEVAL_MODE_VECTOR_ONLY = 1;
@@ -299,8 +299,8 @@ export declare const ScopeService: GenService<{
299
299
  * Creates a memory scope of an explicit kind under the caller's enterprise.
300
300
  * The home region is resolved exactly as it is for an agent workspace, from
301
301
  * the optional `region` field or the platform default, and is FIXED for the
302
- * scope's life: a subject scope's memory lives in that region's data-plane
303
- * database and is never replicated elsewhere, which is what makes a residency
302
+ * scope's life: a subject scope's memory is stored in that region and is never
303
+ * replicated elsewhere, which is what makes a residency
304
304
  * commitment about a subject hold irrespective of which agent reads it.
305
305
  *
306
306
  * The identifier space is shared across both kinds, so an id that already
@@ -6,9 +6,8 @@ import type { Message } from "@bufbuild/protobuf";
6
6
  */
7
7
  export declare const file_jennah_auth_v1_auth: GenFile;
8
8
  /**
9
- * One of the caller's enterprise memberships (a row in the Memberships join
10
- * table), surfaced in Identity so a multi-enterprise user can pick which one to
11
- * switch into.
9
+ * One of the caller's enterprise memberships, surfaced in Identity so a
10
+ * multi-enterprise user can pick which one to switch into.
12
11
  *
13
12
  * @generated from message jennahapi.auth.v1.Membership
14
13
  */
@@ -1004,7 +1003,7 @@ export type Member = Message<"jennahapi.auth.v1.Member"> & {
1004
1003
  */
1005
1004
  role: Role;
1006
1005
  /**
1007
- * Memberships row creation time
1006
+ * when the member joined the enterprise
1008
1007
  *
1009
1008
  * @generated from field: google.protobuf.Timestamp joined_at = 4;
1010
1009
  */
@@ -2065,7 +2064,7 @@ export declare enum ResponseMode {
2065
2064
  export declare const ResponseModeSchema: GenEnum<ResponseMode>;
2066
2065
  /**
2067
2066
  * A caller's role within an enterprise. Exactly one ROLE_ROOT per enterprise
2068
- * (its creator/owner); resolved from the Memberships table, never carried in
2067
+ * (its creator/owner); resolved from the current membership, never carried in
2069
2068
  * the access token (so role changes apply immediately).
2070
2069
  *
2071
2070
  * @generated from enum jennahapi.auth.v1.Role
@@ -2221,8 +2220,8 @@ export declare const AuthService: GenService<{
2221
2220
  };
2222
2221
  /**
2223
2222
  * Mints a new API key for the caller's active enterprise. External (gateway)
2224
- * RPC. Authenticated AND gated to ROLE_ROOT/ROLE_ADMIN, resolved live from the
2225
- * Memberships table (never trusted from a claim). The plaintext secret is
2223
+ * RPC. Authenticated AND gated to ROLE_ROOT/ROLE_ADMIN, checked against the
2224
+ * caller's current role (never trusted from a claim). The plaintext secret is
2226
2225
  * returned exactly once, in this response, and is NOT retrievable afterward,
2227
2226
  * only its sha256 hash is stored. The key resolves to a ROLE_MEMBER-equivalent
2228
2227
  * service principal scoped to the enterprise.
@@ -2266,8 +2265,8 @@ export declare const AuthService: GenService<{
2266
2265
  /**
2267
2266
  * Invites a person by email into the caller's active enterprise, granting
2268
2267
  * ROLE_ADMIN or ROLE_MEMBER (never ROLE_ROOT). External (gateway) RPC.
2269
- * Authenticated AND gated to ROLE_ROOT/ROLE_ADMIN (resolved live from the
2270
- * Memberships table). Membership is NOT granted by email match: this only
2268
+ * Authenticated AND gated to ROLE_ROOT/ROLE_ADMIN (checked against the
2269
+ * caller's current role). Membership is NOT granted by email match: this only
2271
2270
  * creates a pending invitation bound to a single-use token, returned exactly
2272
2271
  * once in the response for the inviter to share. The grant happens when the
2273
2272
  * invitee accepts (AcceptInvitation) while signed in. Rejects an email already
@@ -2350,7 +2349,7 @@ export declare const AuthService: GenService<{
2350
2349
  };
2351
2350
  /**
2352
2351
  * Removes a member from the caller's active enterprise, deleting their
2353
- * Memberships row and revoking their refresh sessions scoped to it (so no new
2352
+ * membership and revoking their refresh sessions scoped to it (so no new
2354
2353
  * access token can be minted for it; an already-issued one lasts until it
2355
2354
  * expires). External (gateway) RPC. Authenticated AND gated to
2356
2355
  * ROLE_ROOT/ROLE_ADMIN (a member MAY remove themselves, which is a leave). The
@@ -2383,7 +2382,7 @@ export declare const AuthService: GenService<{
2383
2382
  /**
2384
2383
  * Updates mutable fields of the caller's active enterprise (currently just its
2385
2384
  * display name). External (gateway) RPC. Authenticated AND gated to
2386
- * ROLE_ROOT/ROLE_ADMIN (resolved live from the Memberships table). The target
2385
+ * ROLE_ROOT/ROLE_ADMIN (checked against the caller's current role). The target
2387
2386
  * is always the caller's active enterprise (from the token), never a path/body
2388
2387
  * id, mirroring ListMembers/ChangeMemberRole.
2389
2388
  *
@@ -452,7 +452,7 @@ export var ResponseMode;
452
452
  export const ResponseModeSchema = /*@__PURE__*/ enumDesc(file_jennah_auth_v1_auth, 2);
453
453
  /**
454
454
  * A caller's role within an enterprise. Exactly one ROLE_ROOT per enterprise
455
- * (its creator/owner); resolved from the Memberships table, never carried in
455
+ * (its creator/owner); resolved from the current membership, never carried in
456
456
  * the access token (so role changes apply immediately).
457
457
  *
458
458
  * @generated from enum jennahapi.auth.v1.Role
@@ -739,8 +739,9 @@ export declare const BillingService: GenService<{
739
739
  * Binds the subscription behind a single-use registration handle to the caller's
740
740
  * active enterprise and applies its resolved tier. External (gateway) RPC.
741
741
  * Authenticated AND gated to ROLE_ROOT/ROLE_ADMIN on the active enterprise,
742
- * resolved live from the Memberships table. Also on the entitlement exempt
743
- * allowlist, since this is the call that restores a blocked caller's access.
742
+ * checked against the caller's current role, so a role change applies at once.
743
+ * Also on the entitlement exempt allowlist, since this is the call that
744
+ * restores a blocked caller's access.
744
745
  *
745
746
  * The handle is a bearer capability with a deliberately small blast radius:
746
747
  * whoever presents it attaches that subscription to THEIR active enterprise.
@@ -779,7 +780,7 @@ export declare const BillingService: GenService<{
779
780
  * taken or returned.
780
781
  *
781
782
  * Only a signed-in user holding ROLE_ROOT or ROLE_ADMIN on the active
782
- * enterprise can call it, resolved live from the Memberships table. It is not
783
+ * enterprise can call it, checked against the caller's current role. It is not
783
784
  * grantable by any permission, and an API key is refused before any role is
784
785
  * resolved, including a key created by an administrator, so an agent can never
785
786
  * raise its own spending limit.
@@ -139,19 +139,19 @@ export declare const RowSchema: GenMessage<Row>;
139
139
  /**
140
140
  * One predicate over a column.
141
141
  *
142
- * The operator set is deliberately IDENTICAL to the memory plane's metadata
143
- * filter grammar. Predicates combine conjunctively: all must match.
142
+ * The operator set is deliberately IDENTICAL to agent memory's metadata filter
143
+ * grammar (MemoryService). Predicates combine conjunctively: all must match.
144
144
  *
145
145
  * ONE SEMANTIC DIFFERENCE, and it is deliberate. Metadata comparison is
146
146
  * LEXICOGRAPHIC, because a metadata value is an untyped string and the platform
147
147
  * refuses to guess a type for it. An application column HAS a declared type, so
148
148
  * comparison here is TYPED and natural: an INT64 column orders numerically
149
- * (10 > 9), a TIMESTAMP column chronologically. The metadata plane's
150
- * zero-pad-your-numbers advice does not apply and must not be carried over.
149
+ * (10 > 9), a TIMESTAMP column chronologically. The zero-pad-your-numbers advice
150
+ * for memory metadata filters does not apply and must not be carried over.
151
151
  *
152
152
  * A row whose column is NULL matches NO operator, including OPERATOR_EQUALS:
153
153
  * there is no value to compare or order against, so a NULL excludes. This
154
- * matches the metadata plane's absent-key rule.
154
+ * matches memory metadata filters, where an absent key matches nothing.
155
155
  *
156
156
  * @generated from message jennahapi.datastore.v1.Predicate
157
157
  */
@@ -319,18 +319,18 @@ export type RowOperation = Message<"jennahapi.datastore.v1.RowOperation"> & {
319
319
  * A SUPPLIED vector is stored exactly as given and the model is not invoked,
320
320
  * so a caller may use its own embedding model provided the width matches. The
321
321
  * platform can dimension-check a supplied vector but cannot verify which model
322
- * produced it, as is already true of the memory plane.
322
+ * produced it, as is already true of agent memory.
323
323
  *
324
324
  * @generated from field: jennahapi.datastore.v1.Row row = 3;
325
325
  */
326
326
  row?: Row | undefined;
327
327
  /**
328
- * Row selector for UPDATE and DELETE, combined conjunctively with the
329
- * dataset clamp (which is injected and cannot be omitted or widened). Ignored
330
- * for INSERT and UPSERT.
328
+ * Row selector for UPDATE and DELETE. It can only narrow within the dataset:
329
+ * the platform always confines the operation to this dataset, and no predicate
330
+ * can omit or widen that. Ignored for INSERT and UPSERT.
331
331
  *
332
332
  * An UPDATE or DELETE with no predicates affects every row of the table
333
- * WITHIN THE DATASET SLICE. That is permitted and bounded, but it is rarely
333
+ * WITHIN THE DATASET. That is permitted and bounded, but it is rarely
334
334
  * what a caller means, so state the key explicitly unless a full-table
335
335
  * operation is intended.
336
336
  *
@@ -479,8 +479,8 @@ export type CommitDataRequest = Message<"jennahapi.datastore.v1.CommitDataReques
479
479
  * merely reported: if the model truncates any embedding the SERVER generated,
480
480
  * the commit is rejected and no row from any table in it is written.
481
481
  *
482
- * Truncation policy belongs to the caller, exactly as it does on the memory
483
- * plane, and the same reasoning applies: an audit-trail writer may prefer a
482
+ * Truncation policy belongs to the caller, exactly as it does for agent
483
+ * memory, and the same reasoning applies: an audit-trail writer may prefer a
484
484
  * degraded embedding over a lost commit, while a retrieval-critical writer
485
485
  * prefers to fail, split the content, and re-commit. Defaults to false, where
486
486
  * the receipt's `truncations` reports the same fact without refusing the
@@ -672,7 +672,7 @@ export type RelationalQuery = Message<"jennahapi.datastore.v1.RelationalQuery">
672
672
  */
673
673
  select: string[];
674
674
  /**
675
- * Conjunctive predicates, combined with the injected dataset clamp.
675
+ * Conjunctive predicates. They narrow within the dataset and cannot widen it.
676
676
  *
677
677
  * @generated from field: repeated jennahapi.datastore.v1.Predicate where = 3;
678
678
  */
@@ -701,7 +701,7 @@ export type RelationalQuery = Message<"jennahapi.datastore.v1.RelationalQuery">
701
701
  * QueryDataResponse.next_page_token for the exhaustion contract. Opaque and
702
702
  * server-generated: a token the server cannot interpret is REJECTED with
703
703
  * INVALID_ARGUMENT rather than silently restarting, and a token can only
704
- * narrow within the caller's slice, never widen it.
704
+ * narrow within the caller's dataset, never widen it.
705
705
  *
706
706
  * @generated from field: string page_token = 7;
707
707
  */
@@ -715,9 +715,9 @@ export declare const RelationalQuerySchema: GenMessage<RelationalQuery>;
715
715
  /**
716
716
  * Vector section: exact-KNN ranking over one vector column.
717
717
  *
718
- * Ranking is by EXACT cosine distance, not an approximate index. Each query is
719
- * already clamped to a dataset slice, which makes the scan small and an ANN
720
- * index pointless: the same conclusion the memory plane reached.
718
+ * Ranking is by EXACT cosine distance, not an approximate index. Each query
719
+ * searches one dataset only, which keeps the search small and makes an
720
+ * approximate index pointless: agent memory search is exact for the same reason.
721
721
  *
722
722
  * @generated from message jennahapi.datastore.v1.VectorQuery
723
723
  */
@@ -768,7 +768,7 @@ export type VectorQuery = Message<"jennahapi.datastore.v1.VectorQuery"> & {
768
768
  * the nearest `limit` rows AMONG those matching the predicates, not the
769
769
  * predicates applied to an unfiltered nearest-`limit` set, which would return
770
770
  * fewer rows (often zero) for reasons a caller could not predict. Same rule
771
- * the memory plane applies to metadata filters.
771
+ * agent memory applies to metadata filters.
772
772
  *
773
773
  * @generated from field: repeated jennahapi.datastore.v1.Predicate where = 6;
774
774
  */
@@ -777,7 +777,7 @@ export type VectorQuery = Message<"jennahapi.datastore.v1.VectorQuery"> & {
777
777
  * Max matches to return, clamped to the tier's ceiling like the relational
778
778
  * section's. A filtered section MAY return fewer when fewer rows match; that
779
779
  * is the caller's own narrowing and is reproducible from the predicates, not
780
- * the silent truncation the dataset clamp guarantees against.
780
+ * a silent truncation, which the platform never applies.
781
781
  *
782
782
  * @generated from field: int32 limit = 7;
783
783
  */
@@ -789,9 +789,9 @@ export type VectorQuery = Message<"jennahapi.datastore.v1.VectorQuery"> & {
789
789
  */
790
790
  export declare const VectorQuerySchema: GenMessage<VectorQuery>;
791
791
  /**
792
- * Read staleness for the whole query. Absent means a STRONG, externally
793
- * consistent read: the default, and the right one unless latency demands
794
- * otherwise.
792
+ * Read staleness for the whole query. Absent means a STRONG read, which sees
793
+ * every commit acknowledged before the query began: the default, and the right
794
+ * one unless latency demands otherwise.
795
795
  *
796
796
  * A staleness bound is applied UNIFORMLY to every section, so sections can never
797
797
  * observe different instants. Bounded staleness is what makes a multi-region
@@ -805,8 +805,9 @@ export type ReadStaleness = Message<"jennahapi.datastore.v1.ReadStaleness"> & {
805
805
  */
806
806
  mode: {
807
807
  /**
808
- * Read at any timestamp at most this far in the past, letting the backend pick a
809
- * replica-local timestamp. The usual choice for a low-latency global read.
808
+ * Read at any instant at most this far in the past, letting the platform
809
+ * serve the read from the nearest copy of the data. The usual choice for a
810
+ * low-latency global read.
810
811
  *
811
812
  * @generated from field: google.protobuf.Duration max_staleness = 1;
812
813
  */
@@ -822,8 +823,8 @@ export type ReadStaleness = Message<"jennahapi.datastore.v1.ReadStaleness"> & {
822
823
  case: "exactStaleness";
823
824
  } | {
824
825
  /**
825
- * Read at this exact timestamp. Bounded by the backend's version-retention
826
- * window (about an hour); an older timestamp is refused.
826
+ * Read at this exact timestamp, at most about an hour in the past; an older
827
+ * timestamp is refused.
827
828
  *
828
829
  * @generated from field: google.protobuf.Timestamp read_timestamp = 3;
829
830
  */
@@ -1034,8 +1035,8 @@ export declare enum OperationType {
1034
1035
  export declare const OperationTypeSchema: GenEnum<OperationType>;
1035
1036
  /**
1036
1037
  * How a join combines rows. Both sides must be tables in the SAME dataset:
1037
- * cross-dataset joins are not expressible, because each query is clamped to one
1038
- * dataset slice exactly as a memory query is clamped to one agent.
1038
+ * cross-dataset joins are not expressible, because each query is confined to one
1039
+ * dataset exactly as a memory query is confined to one agent.
1039
1040
  *
1040
1041
  * @generated from enum jennahapi.datastore.v1.JoinType
1041
1042
  */
@@ -1067,9 +1068,9 @@ export declare const JoinTypeSchema: GenEnum<JoinType>;
1067
1068
  export declare const DataService: GenService<{
1068
1069
  /**
1069
1070
  * Applies a set of structured row operations across one or more of the
1070
- * dataset's tables in a SINGLE read-write transaction, clamped to
1071
- * `(EnterpriseId, DatasetId)`. All-or-nothing: if any operation fails, no
1072
- * operation's rows are written.
1071
+ * dataset's tables in a SINGLE read-write transaction, confined to that one
1072
+ * dataset of the caller's enterprise. All-or-nothing: if any operation fails,
1073
+ * no operation's rows are written.
1073
1074
  *
1074
1075
  * This is the atomic multi-table write a split stack cannot offer: a row, its
1075
1076
  * embedding, and rows in other tables land together or not at all. An
@@ -1103,7 +1104,7 @@ export declare const DataService: GenService<{
1103
1104
  * Evaluates a multi-section read against ONE read snapshot, so a relational
1104
1105
  * predicate and a vector ranking observe the same instant: an optional
1105
1106
  * relational section and an optional exact-KNN vector section. Every section
1106
- * is clamped to the caller's `(EnterpriseId, DatasetId)` slice, and joins are
1107
+ * reads only the named dataset of the caller's enterprise, and joins are
1107
1108
  * restricted to tables within the same dataset.
1108
1109
  *
1109
1110
  * The request is a SECTIONED ENVELOPE for the same reason QueryMemory is: a
@@ -237,8 +237,8 @@ export var OperationType;
237
237
  export const OperationTypeSchema = /*@__PURE__*/ enumDesc(file_jennah_datastore_v1_data, 0);
238
238
  /**
239
239
  * How a join combines rows. Both sides must be tables in the SAME dataset:
240
- * cross-dataset joins are not expressible, because each query is clamped to one
241
- * dataset slice exactly as a memory query is clamped to one agent.
240
+ * cross-dataset joins are not expressible, because each query is confined to one
241
+ * dataset exactly as a memory query is confined to one agent.
242
242
  *
243
243
  * @generated from enum jennahapi.datastore.v1.JoinType
244
244
  */
@@ -113,7 +113,7 @@ export type CreateDatasetRequest = Message<"jennahapi.datastore.v1.CreateDataset
113
113
  /**
114
114
  * Scopes for the key minted when create_api_key is set. Each MUST be a subset
115
115
  * of the caller's own effective permissions and MUST NOT be management-class.
116
- * When empty the key defaults to the member-equivalent data-plane scope, which
116
+ * When empty the key defaults to the member-equivalent data scopes, which
117
117
  * includes datastore.data:read/write but NOT datastore.schema:manage, so a key
118
118
  * meant to declare tables must name that permission explicitly.
119
119
  *
@@ -215,8 +215,8 @@ export type ListDatasetsRequest = Message<"jennahapi.datastore.v1.ListDatasetsRe
215
215
  * one: a token the server cannot interpret is REJECTED with INVALID_ARGUMENT
216
216
  * rather than quietly restarting from the first page, because a silent restart
217
217
  * would hand a caller walking to exhaustion a partial listing that looks
218
- * complete. A token can only narrow within the caller's slice; it can never
219
- * widen it.
218
+ * complete. A token can only narrow within the caller's enterprise; it can
219
+ * never widen it.
220
220
  *
221
221
  * @generated from field: string page_token = 2;
222
222
  */
@@ -304,15 +304,14 @@ export declare enum DatasetStatus {
304
304
  */
305
305
  UNSPECIFIED = 0,
306
306
  /**
307
- * Ready for use: the data-plane database exists and the directory row is
308
- * registered. Tables may be declared and data committed.
307
+ * Ready for use: tables may be declared and data committed.
309
308
  *
310
309
  * @generated from enum value: DATASET_STATUS_ACTIVE = 1;
311
310
  */
312
311
  ACTIVE = 1,
313
312
  /**
314
- * The data-plane database for the chosen location is being created (which can
315
- * take minutes). No table may be declared yet; poll GetDataset until ACTIVE.
313
+ * The chosen location is being prepared (which can take minutes). No table may
314
+ * be declared yet; poll GetDataset until ACTIVE.
316
315
  *
317
316
  * @generated from enum value: DATASET_STATUS_PROVISIONING = 2;
318
317
  */
@@ -342,14 +341,12 @@ export declare const DatasetStatusSchema: GenEnum<DatasetStatus>;
342
341
  */
343
342
  export declare const DatasetService: GenService<{
344
343
  /**
345
- * Creates a dataset under the caller's enterprise, registers it in the
346
- * control-plane directory, and places it on a data-plane database compatible
347
- * with the requested location. The EnterpriseId is taken from the token, never
348
- * the body.
344
+ * Creates a dataset under the caller's enterprise and places it in the
345
+ * requested location. The enterprise is taken from the token, never the body.
349
346
  *
350
- * Returns the dataset synchronously. When the data-plane database for the
351
- * chosen location must be provisioned first, the returned Dataset carries
352
- * DATASET_STATUS_PROVISIONING; poll GetDataset until DATASET_STATUS_ACTIVE.
347
+ * Returns the dataset synchronously. When the chosen location must be prepared
348
+ * first, the returned Dataset carries DATASET_STATUS_PROVISIONING; poll
349
+ * GetDataset until DATASET_STATUS_ACTIVE.
353
350
  *
354
351
  * Requires datastore.datasets:create AND a dataset selector already covering
355
352
  * the requested dataset_id: creating a dataset grants no access to it, for
@@ -391,7 +388,7 @@ export declare const DatasetService: GenService<{
391
388
  };
392
389
  /**
393
390
  * Deletes a dataset the caller owns: drops its declared tables and removes its
394
- * catalog and directory records, cascading to all of its application rows.
391
+ * table catalog and the dataset itself, along with all of its application rows.
395
392
  * Every table the dataset holds is dropped, whatever their number. Returns a
396
393
  * receipt carrying the instant the teardown committed. A dataset_id not owned
397
394
  * by the caller's enterprise is treated as not found.
@@ -65,15 +65,14 @@ export var DatasetStatus;
65
65
  */
66
66
  DatasetStatus[DatasetStatus["UNSPECIFIED"] = 0] = "UNSPECIFIED";
67
67
  /**
68
- * Ready for use: the data-plane database exists and the directory row is
69
- * registered. Tables may be declared and data committed.
68
+ * Ready for use: tables may be declared and data committed.
70
69
  *
71
70
  * @generated from enum value: DATASET_STATUS_ACTIVE = 1;
72
71
  */
73
72
  DatasetStatus[DatasetStatus["ACTIVE"] = 1] = "ACTIVE";
74
73
  /**
75
- * The data-plane database for the chosen location is being created (which can
76
- * take minutes). No table may be declared yet; poll GetDataset until ACTIVE.
74
+ * The chosen location is being prepared (which can take minutes). No table may
75
+ * be declared yet; poll GetDataset until ACTIVE.
77
76
  *
78
77
  * @generated from enum value: DATASET_STATUS_PROVISIONING = 2;
79
78
  */
@@ -125,9 +125,8 @@ export type IndexDeclaration = Message<"jennahapi.datastore.v1.IndexDeclaration"
125
125
  */
126
126
  columns: string[];
127
127
  /**
128
- * Uniqueness is enforced WITHIN the dataset slice, never across the shared
129
- * data-plane database: the platform prepends the clamp columns to the index
130
- * key, so two datasets may each hold a row with the same value.
128
+ * Uniqueness is enforced WITHIN the dataset, never across datasets, so two
129
+ * datasets may each hold a row with the same value.
131
130
  *
132
131
  * @generated from field: bool unique = 3;
133
132
  */
@@ -156,10 +155,9 @@ export type TableDeclaration = Message<"jennahapi.datastore.v1.TableDeclaration"
156
155
  columns: ColumnDeclaration[];
157
156
  /**
158
157
  * Logical column names forming the table's primary key, in order. The
159
- * platform PREPENDS `(EnterpriseId, DatasetId)` to whatever is named here:
160
- * that is not expressible in the declaration and cannot be overridden or
161
- * reordered, because it is what makes cross-slice access structurally
162
- * impossible rather than merely denied.
158
+ * platform additionally scopes every key to the dataset, outside the
159
+ * declaration: that cannot be overridden, and it is what makes access across
160
+ * datasets structurally impossible rather than merely denied.
163
161
  *
164
162
  * @generated from field: repeated string primary_key = 3;
165
163
  */
@@ -328,9 +326,9 @@ export type TableSchema = Message<"jennahapi.datastore.v1.TableSchema"> & {
328
326
  */
329
327
  columns: ColumnSchema[];
330
328
  /**
331
- * Logical primary-key columns AS DECLARED: the `(EnterpriseId, DatasetId)`
332
- * prefix the platform prepends is not listed, because it is not a tenant
333
- * concept and naming it here would imply it were optional.
329
+ * Logical primary-key columns AS DECLARED. The platform's own scoping of the
330
+ * key to the dataset is not listed: it is not something a caller declares or
331
+ * can change.
334
332
  *
335
333
  * @generated from field: repeated string primary_key = 3;
336
334
  */
@@ -542,8 +540,8 @@ export declare const SchemaService: GenService<{
542
540
  * table reaches SCHEMA_STATUS_READY before committing data to it.
543
541
  *
544
542
  * Requires datastore.schema:manage, which is deliberately NOT part of the
545
- * built-in member role: declaring a table issues DDL against a shared
546
- * data-plane database, so it is always an explicit grant to a custom role or
543
+ * built-in member role: declaring a table changes schema on storage shared
544
+ * with other datasets, so it is always an explicit grant to a custom role or
547
545
  * an explicitly scoped key. It IS grantable to an API key: a machine
548
546
  * principal building an app has to be able to declare its own tables.
549
547
  *
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.67.0";
1
+ export declare const version = "0.68.0";
2
2
  export declare const sourceCommit = "33a6dde78cb5eb3540379687e241318e0981acff";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Written by jennah-api release/typescript/assemble.sh; not committed.
2
- export const version = "0.67.0";
2
+ export const version = "0.68.0";
3
3
  export const sourceCommit = "33a6dde78cb5eb3540379687e241318e0981acff";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jennah-sdk-ts",
3
- "version": "0.67.0",
3
+ "version": "0.68.0",
4
4
  "description": "TypeScript SDK for Jennah, the memory and context platform for AI agents",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/alphauslabs/jennah-sdk-ts#readme",