@elaraai/e3-types 1.0.68 → 1.0.70

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,49 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The ONE encoder that decides how a dataset value is stored.
7
+ *
8
+ * Collection-rooted values (Array / Set / Dict) are ALWAYS stored segmented
9
+ * with a trailing index, at every size: one uniform encoding per logical value,
10
+ * so the paged read API can decode just the segments a window touches and the
11
+ * key search can bisect the segment fences. Every other root is stored whole.
12
+ *
13
+ * This lives in `e3-types` — the floor both `e3` and `e3-core` stand on —
14
+ * because the rule has to hold at EVERY door a value enters the store through,
15
+ * and it did not. The store path (`e3-core`'s `datasetWrite`) segmented; the
16
+ * package export path (`e3`'s `export_`) encoded flat regardless of root kind.
17
+ * Since `workspaceDeploy` copies package refs verbatim, a freshly deployed
18
+ * collection input pointed at an unindexed blob and could not be paged at all
19
+ * — `dataset_not_indexed`, with no whole-decode fallback — until something
20
+ * happened to WRITE the dataset, at which point it silently started working.
21
+ * A demo poked by hand behaved differently from a workspace only deployed.
22
+ *
23
+ * So: one branch, one home, and both doors call it.
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import { type EastType, type EastTypeValue } from '@elaraai/east';
28
+ /**
29
+ * Whether a dataset root type is a collection — the kinds stored segmented +
30
+ * indexed so the paged read API can seek.
31
+ *
32
+ * @param typeValue - The dataset's root type
33
+ * @returns true for Array / Set / Dict roots
34
+ */
35
+ export declare function isCollectionRoot(typeValue: EastTypeValue): boolean;
36
+ /**
37
+ * Encode a dataset value for the object store.
38
+ *
39
+ * @remarks
40
+ * The single point where segmentation is decided. Callers must not choose an
41
+ * encoder themselves: a value that reaches the store unsegmented is one the
42
+ * paged endpoints refuse, and nothing on the read path can repair it.
43
+ *
44
+ * @param type - The dataset's declared type (an `EastType` or its homoiconic value)
45
+ * @param value - The value to encode
46
+ * @returns The beast2 bytes to store — segmented + indexed for a collection root
47
+ */
48
+ export declare function encodeDatasetBlob(type: EastType | EastTypeValue, value: unknown): Uint8Array;
49
+ //# sourceMappingURL=dataset-blob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-blob.d.ts","sourceRoot":"","sources":["../../src/dataset-blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAO5F"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The ONE encoder that decides how a dataset value is stored.
7
+ *
8
+ * Collection-rooted values (Array / Set / Dict) are ALWAYS stored segmented
9
+ * with a trailing index, at every size: one uniform encoding per logical value,
10
+ * so the paged read API can decode just the segments a window touches and the
11
+ * key search can bisect the segment fences. Every other root is stored whole.
12
+ *
13
+ * This lives in `e3-types` — the floor both `e3` and `e3-core` stand on —
14
+ * because the rule has to hold at EVERY door a value enters the store through,
15
+ * and it did not. The store path (`e3-core`'s `datasetWrite`) segmented; the
16
+ * package export path (`e3`'s `export_`) encoded flat regardless of root kind.
17
+ * Since `workspaceDeploy` copies package refs verbatim, a freshly deployed
18
+ * collection input pointed at an unindexed blob and could not be paged at all
19
+ * — `dataset_not_indexed`, with no whole-decode fallback — until something
20
+ * happened to WRITE the dataset, at which point it silently started working.
21
+ * A demo poked by hand behaved differently from a workspace only deployed.
22
+ *
23
+ * So: one branch, one home, and both doors call it.
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import { encodeBeast2For, encodeBeast2PagedFor, isVariant, toEastTypeValue, } from '@elaraai/east';
28
+ /**
29
+ * Whether a dataset root type is a collection — the kinds stored segmented +
30
+ * indexed so the paged read API can seek.
31
+ *
32
+ * @param typeValue - The dataset's root type
33
+ * @returns true for Array / Set / Dict roots
34
+ */
35
+ export function isCollectionRoot(typeValue) {
36
+ return typeValue.type === 'Array' || typeValue.type === 'Set' || typeValue.type === 'Dict';
37
+ }
38
+ /**
39
+ * Encode a dataset value for the object store.
40
+ *
41
+ * @remarks
42
+ * The single point where segmentation is decided. Callers must not choose an
43
+ * encoder themselves: a value that reaches the store unsegmented is one the
44
+ * paged endpoints refuse, and nothing on the read path can repair it.
45
+ *
46
+ * @param type - The dataset's declared type (an `EastType` or its homoiconic value)
47
+ * @param value - The value to encode
48
+ * @returns The beast2 bytes to store — segmented + indexed for a collection root
49
+ */
50
+ export function encodeDatasetBlob(type, value) {
51
+ const typeValue = isVariant(type)
52
+ ? type
53
+ : toEastTypeValue(type);
54
+ return isCollectionRoot(typeValue)
55
+ ? encodeBeast2PagedFor(typeValue)(value)
56
+ : encodeBeast2For(typeValue)(value);
57
+ }
58
+ //# sourceMappingURL=dataset-blob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-blob.js","sourceRoot":"","sources":["../../src/dataset-blob.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,eAAe,GAGhB,MAAM,eAAe,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACvD,OAAO,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B,EAAE,KAAc;IAC9E,MAAM,SAAS,GAAkB,SAAS,CAAC,IAAI,CAAC;QAC9C,CAAC,CAAE,IAAsB;QACzB,CAAC,CAAC,eAAe,CAAC,IAAgB,CAAC,CAAC;IACtC,OAAO,gBAAgB,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -33,6 +33,7 @@ export { WorkspaceStateType, type WorkspaceState, } from './workspace.js';
33
33
  export { ExecutionStatusType, type ExecutionStatus, } from './execution.js';
34
34
  export { LockOperationType, type LockOperation, ProcessHolderType, type ProcessHolder, LockStateType, type LockState, } from './lock.js';
35
35
  export { TransferUploadRequestType, type TransferUploadRequest, TransferUploadResponseType, type TransferUploadResponse, TransferDoneResponseType, type TransferDoneResponse, } from './transfer.js';
36
+ export { isCollectionRoot, encodeDatasetBlob, } from './dataset-blob.js';
36
37
  export { BEAST2_CONTENT_TYPE } from './constants.js';
37
38
  export { WorkspaceNotFoundErrorType, WorkspaceNotDeployedErrorType, WorkspaceExistsErrorType, LockHolderType, WorkspaceLockedErrorType, PackageNotFoundErrorType, PackageExistsErrorType, PackageInvalidErrorType, DatasetNotFoundErrorType, TaskNotFoundErrorType, ExecutionNotFoundErrorType, ObjectNotFoundErrorType, DataflowErrorType, PermissionDeniedErrorType, InternalErrorType, RepositoryNotFoundErrorType, ErrorType, ResponseType, RepositoryStatusType, GcRequestType, GcResultType, AsyncOperationStatusType, GcStartResultType, GcStatusResultType, PackageListItemType, PackageInfoType, PackageDetailsType, WorkspaceCreateRequestType, WorkspaceInfoType, WorkspaceDeployRequestType, WorkspaceExportRequestType, DatasetStatusType, TaskStatusUpToDateType, TaskStatusWaitingType, TaskStatusInProgressType, TaskStatusFailedType, TaskStatusErrorType, TaskStatusStaleRunningType, TaskStatusType, DatasetStatusInfoType, TaskStatusInfoType, WorkspaceStatusSummaryType, WorkspaceStatusResultType, TaskListItemType, TaskDetailsType, DataflowRequestType, LogChunkType, TaskExecutionResultType, DataflowResultType, DataflowEventType, ApiExecutionStatusType, DataflowExecutionSummaryType, ApiDataflowExecutionStateType, ExecutionHistoryStatusType, ExecutionListItemType, TreeKindType, ListEntryType, DatasetStatusDetailType, ExecuteLimitsType, DiagnosticType, ExecuteResultType, FunctionCallRequestType, FunctionSignatureType, OneShotRequestType, MutationCallRequestType, MutationResultType, RecordSignatureType, RecordCommitInfoType, RecordHistoryResultType, type Error, type RepositoryStatus, type GcRequest, type GcResult, type AsyncOperationStatus, type GcStartResult, type GcStatusResult, type PackageListItem, type PackageInfo, type PackageDetails, type WorkspaceInfo, type WorkspaceCreateRequest, type WorkspaceDeployRequest, type DatasetStatus, type TaskStatus as ApiTaskStatus, type DatasetStatusInfo, type TaskStatusInfo, type WorkspaceStatusSummary, type WorkspaceStatusResult, type TaskListItem, type TaskDetails, type DataflowRequest, type LogChunk, type TaskExecutionResult, type DataflowResult, type DataflowEvent, type ApiExecutionStatus, type DataflowExecutionSummary, type ApiDataflowExecutionState, type ExecutionHistoryStatus, type ExecutionListItem, type TreeKind, type ListEntry, type DatasetStatusDetail, type ExecuteLimits, type Diagnostic, type ExecuteResult, type FunctionCallRequest, type FunctionSignature, type OneShotRequest, type MutationCallRequest, type MutationResult, type RecordSignature, type RecordCommitInfo, type RecordHistoryResult, } from './api.js';
38
39
  export { type DataflowExecutionStatus, type TaskStatus, TaskStateType, type TaskState, DataflowGraphTaskType, type DataflowGraphTask, DataflowGraphType, type DataflowGraph, ExecutionEventType, type ExecutionEvent, type PartitionProgress, DataflowExecutionStateType, type DataflowExecutionState, DataflowRunStatusType, type DataflowRunStatus, TaskExecutionRecordType, type TaskExecutionRecord, DataflowRunSummaryType, type DataflowRunSummary, DataflowRunType, type DataflowRun, } from './dataflow.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -52,6 +52,9 @@ export { ExecutionStatusType, } from './execution.js';
52
52
  export { LockOperationType, ProcessHolderType, LockStateType, } from './lock.js';
53
53
  // Dataset transfer types
54
54
  export { TransferUploadRequestType, TransferUploadResponseType, TransferDoneResponseType, } from './transfer.js';
55
+ // Dataset blob encoding — the ONE branch deciding segmentation, shared by the
56
+ // store path (e3-core `datasetWrite`) and the package export path (e3 `export_`)
57
+ export { isCollectionRoot, encodeDatasetBlob, } from './dataset-blob.js';
55
58
  // Wire format constants
56
59
  export { BEAST2_CONTENT_TYPE } from './constants.js';
57
60
  // API wire types (shared between e3-api-client and e3-api-server)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/e3-types",
3
- "version": "1.0.68",
3
+ "version": "1.0.70",
4
4
  "description": "Shared type definitions for e3 (East Execution Engine)",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -18,7 +18,7 @@
18
18
  "directory": "libs/e3/packages/e3-types"
19
19
  },
20
20
  "peerDependencies": {
21
- "@elaraai/east": "1.0.68"
21
+ "@elaraai/east": "1.0.70"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.0.0",
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+
6
+ /**
7
+ * The ONE encoder that decides how a dataset value is stored.
8
+ *
9
+ * Collection-rooted values (Array / Set / Dict) are ALWAYS stored segmented
10
+ * with a trailing index, at every size: one uniform encoding per logical value,
11
+ * so the paged read API can decode just the segments a window touches and the
12
+ * key search can bisect the segment fences. Every other root is stored whole.
13
+ *
14
+ * This lives in `e3-types` — the floor both `e3` and `e3-core` stand on —
15
+ * because the rule has to hold at EVERY door a value enters the store through,
16
+ * and it did not. The store path (`e3-core`'s `datasetWrite`) segmented; the
17
+ * package export path (`e3`'s `export_`) encoded flat regardless of root kind.
18
+ * Since `workspaceDeploy` copies package refs verbatim, a freshly deployed
19
+ * collection input pointed at an unindexed blob and could not be paged at all
20
+ * — `dataset_not_indexed`, with no whole-decode fallback — until something
21
+ * happened to WRITE the dataset, at which point it silently started working.
22
+ * A demo poked by hand behaved differently from a workspace only deployed.
23
+ *
24
+ * So: one branch, one home, and both doors call it.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+
29
+ import {
30
+ encodeBeast2For,
31
+ encodeBeast2PagedFor,
32
+ isVariant,
33
+ toEastTypeValue,
34
+ type EastType,
35
+ type EastTypeValue,
36
+ } from '@elaraai/east';
37
+
38
+ /**
39
+ * Whether a dataset root type is a collection — the kinds stored segmented +
40
+ * indexed so the paged read API can seek.
41
+ *
42
+ * @param typeValue - The dataset's root type
43
+ * @returns true for Array / Set / Dict roots
44
+ */
45
+ export function isCollectionRoot(typeValue: EastTypeValue): boolean {
46
+ return typeValue.type === 'Array' || typeValue.type === 'Set' || typeValue.type === 'Dict';
47
+ }
48
+
49
+ /**
50
+ * Encode a dataset value for the object store.
51
+ *
52
+ * @remarks
53
+ * The single point where segmentation is decided. Callers must not choose an
54
+ * encoder themselves: a value that reaches the store unsegmented is one the
55
+ * paged endpoints refuse, and nothing on the read path can repair it.
56
+ *
57
+ * @param type - The dataset's declared type (an `EastType` or its homoiconic value)
58
+ * @param value - The value to encode
59
+ * @returns The beast2 bytes to store — segmented + indexed for a collection root
60
+ */
61
+ export function encodeDatasetBlob(type: EastType | EastTypeValue, value: unknown): Uint8Array {
62
+ const typeValue: EastTypeValue = isVariant(type)
63
+ ? (type as EastTypeValue)
64
+ : toEastTypeValue(type as EastType);
65
+ return isCollectionRoot(typeValue)
66
+ ? encodeBeast2PagedFor(typeValue)(value)
67
+ : encodeBeast2For(typeValue)(value);
68
+ }
package/src/index.ts CHANGED
@@ -183,6 +183,13 @@ export {
183
183
  type TransferDoneResponse,
184
184
  } from './transfer.js';
185
185
 
186
+ // Dataset blob encoding — the ONE branch deciding segmentation, shared by the
187
+ // store path (e3-core `datasetWrite`) and the package export path (e3 `export_`)
188
+ export {
189
+ isCollectionRoot,
190
+ encodeDatasetBlob,
191
+ } from './dataset-blob.js';
192
+
186
193
  // Wire format constants
187
194
  export { BEAST2_CONTENT_TYPE } from './constants.js';
188
195