@hraness/oh 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +164 -114
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +811 -97
  5. package/dist/errors.d.ts +39 -0
  6. package/dist/errors.d.ts.map +1 -0
  7. package/dist/graph.d.ts.map +1 -1
  8. package/dist/index.js +676 -61
  9. package/dist/libsql.d.ts.map +1 -1
  10. package/dist/libsql.js +162 -35
  11. package/dist/memory-page.js +2 -2
  12. package/dist/memory.d.ts +87 -6
  13. package/dist/memory.d.ts.map +1 -1
  14. package/dist/memory.js +1106 -148
  15. package/dist/operation.d.ts +3 -1
  16. package/dist/operation.d.ts.map +1 -1
  17. package/dist/projection-public.js +2 -2
  18. package/dist/projection-suss.js +2 -2
  19. package/dist/sdk.js +780 -88
  20. package/dist/semantic-cloud.js +2 -2
  21. package/dist/semantic.js +2 -2
  22. package/dist/sqlite/index.js +1251 -306
  23. package/dist/sqlite/port.d.ts +31 -3
  24. package/dist/sqlite/port.d.ts.map +1 -1
  25. package/dist/sqlite/store.d.ts +18 -2
  26. package/dist/sqlite/store.d.ts.map +1 -1
  27. package/dist/store.d.ts +3 -12
  28. package/dist/store.d.ts.map +1 -1
  29. package/dist/store.js +154 -32
  30. package/dist/sync.d.ts +7 -1
  31. package/dist/sync.d.ts.map +1 -1
  32. package/dist/sync.js +668 -35
  33. package/package.json +5 -1
  34. package/skills/oh/SKILL.md +42 -16
  35. package/spec/README.md +2 -2
  36. package/spec/v1/memory.md +134 -16
  37. package/spec/v1/storage.md +8 -5
  38. package/spec/v1/store.md +20 -0
  39. package/spec/v1/sync.md +77 -8
  40. package/src/cli.test.ts +53 -1
  41. package/src/cli.ts +34 -8
  42. package/src/errors.test.ts +87 -0
  43. package/src/errors.ts +185 -0
  44. package/src/graph.ts +2 -2
  45. package/src/libsql.test.ts +36 -0
  46. package/src/libsql.ts +26 -5
  47. package/src/memory.test.ts +1488 -18
  48. package/src/memory.ts +1199 -122
  49. package/src/operation.ts +13 -3
  50. package/src/sqlite/port.test.ts +209 -0
  51. package/src/sqlite/port.ts +118 -4
  52. package/src/sqlite/store.test.ts +106 -1
  53. package/src/sqlite/store.ts +168 -30
  54. package/src/store.test.ts +12 -0
  55. package/src/store.ts +30 -20
  56. package/src/sync.test.ts +570 -2
  57. package/src/sync.ts +586 -36
@@ -1,7 +1,8 @@
1
- import { type OhChangesPageV1, type OhCommitInputV1, type OhDependencyClosureV1, type OhHeadRefV1, type OhHeadV1, type OhSnapshotV1, type OhStoreAuthorityV1, type OhStoreBindingV1, type OhStoreProfileV1, type OhStoreV1, type OhStoreVerificationV1 } from "../store";
1
+ import { type OhChangesPageV1, type OhCommitInputV1, type OhDependencyClosureV1, type OhHeadRefV1, type OhHeadV1, type OhSnapshotV1, type OhStoreBindingV1, type OhStoreHostControlV1, type OhStoreProfileV1, type OhStoreV1, type OhStoreVerificationV1 } from "../store";
2
2
  import type { OhOperationV1 } from "../operation";
3
+ import { type OhSyncBundleV1 } from "../sync";
3
4
  import type { OhSqliteDatabase } from "./driver";
4
- import { OhSqliteStore } from "./store";
5
+ import { OhSqliteStore, type OhOperationImportResultV1 } from "./store";
5
6
  export type OhSqliteStoreAuthorityOptionsV1 = Readonly<{
6
7
  database?: OhSqliteDatabase;
7
8
  path?: string;
@@ -9,6 +10,33 @@ export type OhSqliteStoreAuthorityOptionsV1 = Readonly<{
9
10
  realmId?: string;
10
11
  spaceId?: string;
11
12
  }>;
13
+ export interface OhSqliteCanonicalReplicationV1 {
14
+ readonly binding: OhStoreBindingV1;
15
+ exportBundle(input: Readonly<{
16
+ after: OhHeadRefV1;
17
+ limit?: number;
18
+ through: OhHeadRefV1;
19
+ }>): Promise<Readonly<{
20
+ bundle: OhSyncBundleV1;
21
+ from: OhChangesPageV1["from"];
22
+ hasMore: boolean;
23
+ through: OhChangesPageV1["through"];
24
+ to: OhChangesPageV1["to"];
25
+ v: 1;
26
+ }>>;
27
+ head(): Promise<OhHeadV1>;
28
+ importBundle(input: Readonly<{
29
+ bundle: unknown;
30
+ expectedHead: OhHeadRefV1;
31
+ }>): Promise<OhOperationImportResultV1>;
32
+ }
33
+ export interface OhSqliteStoreHostControlV1 extends OhStoreHostControlV1 {
34
+ readonly replication: OhSqliteCanonicalReplicationV1 | null;
35
+ }
36
+ export type OhSqliteStoreAuthorityV1 = Readonly<{
37
+ host: OhSqliteStoreHostControlV1;
38
+ store: OhStoreV1;
39
+ }>;
12
40
  export declare class OhSqliteStorePortV1 implements OhStoreV1 {
13
41
  #private;
14
42
  readonly binding: OhStoreBindingV1;
@@ -36,5 +64,5 @@ export declare class OhSqliteStorePortV1 implements OhStoreV1 {
36
64
  * returned `host` object in trusted control-plane code; pass only `store` to
37
65
  * ordinary consumers.
38
66
  */
39
- export declare function createOhSqliteStoreAuthorityV1(options?: OhSqliteStoreAuthorityOptionsV1): OhStoreAuthorityV1;
67
+ export declare function createOhSqliteStoreAuthorityV1(options?: OhSqliteStoreAuthorityOptionsV1): OhSqliteStoreAuthorityV1;
40
68
  //# sourceMappingURL=port.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/sqlite/port.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACrD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,qBAAa,mBAAoB,YAAW,SAAS;;IACnD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAGvB,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB;IASzD,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIzB,QAAQ,CAAC,OAAO,GAAE,QAAQ,CAAC;QAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzB,YAAY,CAChB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,QAAQ,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAM,GAChE,OAAO,CAAC,eAAe,CAAC;IAIrB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAItD,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1B,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI7B,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAMxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CA0BpB"}
1
+ {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/sqlite/port.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { type Sha256Hex } from "../canonical";
2
2
  import { OH_CONTRACT_MANIFEST_V1 } from "../contract";
3
3
  import { type KnowledgeGraphRecordKindV1, type KnowledgeGraphRecordV1 } from "../graph";
4
4
  import { type OhOperationV1 } from "../operation";
5
- import { OhConflictError, OhDependencyError, OhIntegrityError, OhProfileError, OhPurgedSpaceError, type OhChangesPageV1, type OhCommitInputV1, type OhDependencyClosureV1, type OhHeadRefV1, type OhHeadV1, type OhSnapshotV1, type OhSpacePurgeReceiptV1, type OhStoreBindingV1 } from "../store";
5
+ import { isOhConflictError, isOhDependencyError, isOhIntegrityError, isOhOperationSizeError, isOhProfileError, OH_OPERATION_SIZE_ERROR_CODE_V1, OhConflictError, OhDependencyError, OhIntegrityError, OhOperationSizeError, OhProfileError, OhPurgedSpaceError, type OhChangesPageV1, type OhCommitInputV1, type OhDependencyClosureV1, type OhHeadRefV1, type OhHeadV1, type OhSnapshotV1, type OhSpacePurgeReceiptV1, type OhStoreBindingV1 } from "../store";
6
6
  import { type OhSqliteDatabase } from "./driver";
7
- export { OhConflictError, OhDependencyError, OhIntegrityError, OhProfileError, OhPurgedSpaceError, };
7
+ export { isOhConflictError, isOhDependencyError, isOhIntegrityError, isOhOperationSizeError, isOhProfileError, OH_OPERATION_SIZE_ERROR_CODE_V1, OhConflictError, OhDependencyError, OhIntegrityError, OhOperationSizeError, OhProfileError, OhPurgedSpaceError, };
8
8
  export type { OhCommitInputV1, OhHeadV1 };
9
9
  export type OhRecordListOptions = Readonly<{
10
10
  kind?: KnowledgeGraphRecordKindV1;
@@ -25,6 +25,12 @@ export type OhReplayVerificationV1 = Readonly<{
25
25
  sqliteIntegrity: "ok";
26
26
  v: 1;
27
27
  }>;
28
+ export type OhOperationImportResultV1 = Readonly<{
29
+ head: OhHeadV1;
30
+ imported: number;
31
+ status: "already-present" | "imported";
32
+ v: 1;
33
+ }>;
28
34
  export declare class OhSqliteStore {
29
35
  #private;
30
36
  readonly database: OhSqliteDatabase;
@@ -43,6 +49,16 @@ export declare class OhSqliteStore {
43
49
  imported: boolean;
44
50
  operation: OhOperationV1;
45
51
  }>;
52
+ /**
53
+ * Imports one already-validated replication interval atomically. A hostile
54
+ * later operation cannot leave a valid prefix committed. Exact replays are
55
+ * accepted only when every supplied operation is already on the current
56
+ * authority chain.
57
+ */
58
+ importOperations(input: Readonly<{
59
+ expectedHead: OhHeadRefV1;
60
+ operations: readonly unknown[];
61
+ }>): OhOperationImportResultV1;
46
62
  exportOperations(afterSequence?: number, limit?: number): readonly OhOperationV1[];
47
63
  snapshotAtHead(options?: Readonly<{
48
64
  head?: OhHeadRefV1;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sqlite/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sqlite/store.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -2,19 +2,8 @@ import { type Sha256Hex } from "./canonical";
2
2
  import { OhRecordCodecRegistry } from "./contract";
3
3
  export { OhRecordCodecRegistry } from "./contract";
4
4
  import { type KnowledgeGraphChangeV1, type KnowledgeGraphRecordKindV1, type KnowledgeGraphRecordV1 } from "./graph";
5
+ export { isOhConflictError, isOhDependencyError, isOhIntegrityError, isOhOperationSizeError, isOhProfileError, OH_OPERATION_SIZE_ERROR_CODE_V1, OhConflictError, OhDependencyError, OhIntegrityError, OhOperationSizeError, OhProfileError, } from "./errors";
5
6
  import { type OhOperationV1 } from "./operation";
6
- export declare class OhConflictError extends Error {
7
- constructor(message: string);
8
- }
9
- export declare class OhIntegrityError extends Error {
10
- constructor(message: string);
11
- }
12
- export declare class OhDependencyError extends Error {
13
- constructor(message: string);
14
- }
15
- export declare class OhProfileError extends Error {
16
- constructor(message: string);
17
- }
18
7
  export type OhHeadV1 = Readonly<{
19
8
  generation: number;
20
9
  graphRevisionSha256: Sha256Hex | null;
@@ -29,6 +18,7 @@ export type OhCommitInputV1 = Readonly<{
29
18
  changes: readonly KnowledgeGraphChangeV1[];
30
19
  expectedHead: Pick<OhHeadV1, "generation" | "operationSha256">;
31
20
  instant?: string;
21
+ maximumOperationBytes?: number;
32
22
  operationId: string;
33
23
  }>;
34
24
  export type OhSnapshotV1 = Readonly<{
@@ -166,6 +156,7 @@ export declare function transitionOhSnapshotV1(input: Readonly<{
166
156
  actorId: string;
167
157
  changes: readonly KnowledgeGraphChangeV1[];
168
158
  instant: string;
159
+ maximumOperationBytes?: number;
169
160
  operationId: string;
170
161
  snapshot: OhSnapshotV1;
171
162
  spaceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAQL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,EAC/B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,UAAU,CAAC;AAOlB,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,UAAU,CAAC,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IACrC,OAAO,EAAE,QAAQ,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,YAAY,EAAE,IAAI,CAAC;IACnB,uBAAuB,EAAE,IAAI,CAAC;IAC9B,cAAc,EAAE,IAAI,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,IAAI,CAAC;IAC3B,CAAC,EAAE,CAAC,CAAC;IACL,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,wBAAwB,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,qBAAqB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,aAAa,EAAE,SAAS,CAAC;IACzB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,aAAa,EAAE,SAAS,CAAC;IACzB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,eAAO,MAAM,6BAA6B;8BAjBd,SAAS,GAAG,IAAI;kBAC5B,qBAAqB;eACxB,MAAM;iBACJ,WAAW,GAAG,SAAS;mBACrB,SAAS;OACrB,CAAC;EA0BJ,CAAC;AAEH,eAAO,MAAM,2BAA2B;8BAjCZ,SAAS,GAAG,IAAI;kBAC5B,qBAAqB;eACxB,MAAM;iBACJ,WAAW,GAAG,SAAS;mBACrB,SAAS;OACrB,CAAC;EA0CJ,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;EAI1C,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;gBAE5B,OAAO,EAAE,qBAAqB;CAK3C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,YAAY,CACV,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,GAC5D,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACtC,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1B,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;QAC1B,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC1C;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC3F;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC,CAAC;AAIH,wBAAgB,aAAa,IAAI,QAAQ,CASxC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAoB7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAYnE;AAcD,KAAK,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAErE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAsBrF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAQ7E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACrD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,GAAG,gBAAgB,CAUpB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAY7E;AAcD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,cAAc,GAAE,MAA8C,GAC7D,YAAY,CA4Cd;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GAAG,QAAQ,CAAC;IAAE,SAAS,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CA2DlE;AAsCD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC1D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC,GAAG,qBAAqB,CAwBzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAyBvF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GACtD,QAAQ,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,GACtD,QAAQ,CAAC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAGrD;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACpF,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACE,QAAQ,CAAC;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,6BAA6B,CAAA;CAAE,CAAC,GACnG,QAAQ,CAAC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe,GAAG,iBAAiB,GAAG,qBAAqB,CAAA;CAAE,CAAC,CASpH;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC1D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,GAAG,qBAAqB,CAYzB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAavF;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,iBAAiB,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,QAAQ,CAAC;QACtB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,0BAA0B,CAAC;QACjC,CAAC,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC,EAAE,CAAC;IACL,UAAU,EAAE,SAAS,QAAQ,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,SAAS,CAAC;QACvB,CAAC,EAAE,CAAC,CAAC;KACN,CAAC,EAAE,CAAC;IACL,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,6EAA6E;AAC7E,qBAAa,yBAAyB;;gBAIxB,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB;IAKrD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;CA6CrD"}
package/dist/store.js CHANGED
@@ -190,7 +190,7 @@ var OH_GRAPH_LIMITS_V1 = Object.freeze({
190
190
  recordBytes: 1024 * 1024,
191
191
  recordsPerSnapshot: 65536
192
192
  });
193
- var OH_KNOWLEDGE_GRAPH_RECORD_KINDS_V1 = [
193
+ var OH_KNOWLEDGE_GRAPH_RECORD_KINDS_V1 = Object.freeze([
194
194
  "activity",
195
195
  "assertion",
196
196
  "context",
@@ -209,7 +209,7 @@ var OH_KNOWLEDGE_GRAPH_RECORD_KINDS_V1 = [
209
209
  "type-membership",
210
210
  "view",
211
211
  "vocabulary"
212
- ];
212
+ ]);
213
213
  var KNOWLEDGE_GRAPH_RECORD_KEYS_V1 = [
214
214
  "dependencies",
215
215
  "key",
@@ -422,6 +422,141 @@ class OhRecordCodecRegistry {
422
422
  return this.#sealed;
423
423
  }
424
424
  }
425
+ // src/errors.ts
426
+ var OH_OPERATION_SIZE_ERROR_CODE_V1 = "oh.operation-size.v1";
427
+ var OH_CONFLICT_ERROR_BRAND_V1 = Symbol.for("@hraness/oh/OhConflictError/v1");
428
+ var OH_DEPENDENCY_ERROR_BRAND_V1 = Symbol.for("@hraness/oh/OhDependencyError/v1");
429
+ var OH_INTEGRITY_ERROR_BRAND_V1 = Symbol.for("@hraness/oh/OhIntegrityError/v1");
430
+ var OH_OPERATION_SIZE_ERROR_BRAND_V1 = Symbol.for("@hraness/oh/OhOperationSizeError/v1");
431
+ var OH_PROFILE_ERROR_BRAND_V1 = Symbol.for("@hraness/oh/OhProfileError/v1");
432
+ function immutableOwnValue(value, key) {
433
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
434
+ return descriptor !== undefined && descriptor.get === undefined && descriptor.set === undefined && descriptor.configurable === false && descriptor.writable === false ? descriptor.value : undefined;
435
+ }
436
+ function brandNativeError(value, brand) {
437
+ Object.defineProperty(value, brand, {
438
+ configurable: false,
439
+ enumerable: false,
440
+ value: true,
441
+ writable: false
442
+ });
443
+ }
444
+ function hasNativeErrorBrand(value, brand) {
445
+ try {
446
+ return Error.isError(value) && immutableOwnValue(value, brand) === true;
447
+ } catch {
448
+ return false;
449
+ }
450
+ }
451
+ function hasNativeSubclassInstance(constructor, value) {
452
+ return Function.prototype[Symbol.hasInstance].call(constructor, value);
453
+ }
454
+ function isOhConflictError(value) {
455
+ return hasNativeErrorBrand(value, OH_CONFLICT_ERROR_BRAND_V1);
456
+ }
457
+
458
+ class OhConflictError extends Error {
459
+ static [Symbol.hasInstance](value) {
460
+ return this === OhConflictError ? isOhConflictError(value) : hasNativeSubclassInstance(this, value);
461
+ }
462
+ constructor(message) {
463
+ super(message);
464
+ this.name = "OhConflictError";
465
+ brandNativeError(this, OH_CONFLICT_ERROR_BRAND_V1);
466
+ }
467
+ }
468
+ function isOhIntegrityError(value) {
469
+ return hasNativeErrorBrand(value, OH_INTEGRITY_ERROR_BRAND_V1);
470
+ }
471
+
472
+ class OhIntegrityError extends Error {
473
+ static [Symbol.hasInstance](value) {
474
+ return this === OhIntegrityError ? isOhIntegrityError(value) : hasNativeSubclassInstance(this, value);
475
+ }
476
+ constructor(message) {
477
+ super(message);
478
+ this.name = "OhIntegrityError";
479
+ brandNativeError(this, OH_INTEGRITY_ERROR_BRAND_V1);
480
+ }
481
+ }
482
+ function isOhDependencyError(value) {
483
+ return hasNativeErrorBrand(value, OH_DEPENDENCY_ERROR_BRAND_V1);
484
+ }
485
+
486
+ class OhDependencyError extends Error {
487
+ static [Symbol.hasInstance](value) {
488
+ return this === OhDependencyError ? isOhDependencyError(value) : hasNativeSubclassInstance(this, value);
489
+ }
490
+ constructor(message) {
491
+ super(message);
492
+ this.name = "OhDependencyError";
493
+ brandNativeError(this, OH_DEPENDENCY_ERROR_BRAND_V1);
494
+ }
495
+ }
496
+ function isOhProfileError(value) {
497
+ return hasNativeErrorBrand(value, OH_PROFILE_ERROR_BRAND_V1);
498
+ }
499
+
500
+ class OhProfileError extends Error {
501
+ static [Symbol.hasInstance](value) {
502
+ return this === OhProfileError ? isOhProfileError(value) : hasNativeSubclassInstance(this, value);
503
+ }
504
+ constructor(message) {
505
+ super(message);
506
+ this.name = "OhProfileError";
507
+ brandNativeError(this, OH_PROFILE_ERROR_BRAND_V1);
508
+ }
509
+ }
510
+ function isOhOperationSizeError(value) {
511
+ try {
512
+ if (!Error.isError(value) || !(value instanceof RangeError))
513
+ return false;
514
+ const operationBytes = immutableOwnValue(value, "operationBytes");
515
+ const maximumOperationBytes = immutableOwnValue(value, "maximumOperationBytes");
516
+ return immutableOwnValue(value, OH_OPERATION_SIZE_ERROR_BRAND_V1) === true && immutableOwnValue(value, "code") === OH_OPERATION_SIZE_ERROR_CODE_V1 && Number.isSafeInteger(operationBytes) && operationBytes > 0 && Number.isSafeInteger(maximumOperationBytes) && maximumOperationBytes > 0 && operationBytes > maximumOperationBytes;
517
+ } catch {
518
+ return false;
519
+ }
520
+ }
521
+
522
+ class OhOperationSizeError extends RangeError {
523
+ static [Symbol.hasInstance](value) {
524
+ return this === OhOperationSizeError ? isOhOperationSizeError(value) : hasNativeSubclassInstance(this, value);
525
+ }
526
+ constructor(operationBytes, maximumOperationBytes) {
527
+ if (!Number.isSafeInteger(operationBytes) || operationBytes < 1 || !Number.isSafeInteger(maximumOperationBytes) || maximumOperationBytes < 1 || operationBytes <= maximumOperationBytes) {
528
+ throw new TypeError("Invalid Oh operation size refusal.");
529
+ }
530
+ super(`The ${operationBytes}-byte operation exceeds the host-declared ${maximumOperationBytes}-byte canonical bound.`);
531
+ this.name = "OhOperationSizeError";
532
+ Object.defineProperties(this, {
533
+ [OH_OPERATION_SIZE_ERROR_BRAND_V1]: {
534
+ configurable: false,
535
+ enumerable: false,
536
+ value: true,
537
+ writable: false
538
+ },
539
+ code: {
540
+ configurable: false,
541
+ enumerable: true,
542
+ value: OH_OPERATION_SIZE_ERROR_CODE_V1,
543
+ writable: false
544
+ },
545
+ maximumOperationBytes: {
546
+ configurable: false,
547
+ enumerable: true,
548
+ value: maximumOperationBytes,
549
+ writable: false
550
+ },
551
+ operationBytes: {
552
+ configurable: false,
553
+ enumerable: true,
554
+ value: operationBytes,
555
+ writable: false
556
+ }
557
+ });
558
+ }
559
+ }
425
560
  // src/operation.ts
426
561
  var OH_OPERATION_MAX_BYTES_V1 = 64 * 1024 * 1024;
427
562
  function parsePayload(value) {
@@ -469,13 +604,18 @@ function parsePayload(value) {
469
604
  v: 1
470
605
  } : null;
471
606
  }
472
- function createOhOperationV1(input) {
607
+ function createOhOperationV1(input, options = {}) {
608
+ const maximumOperationBytes = options.maximumOperationBytes ?? OH_OPERATION_MAX_BYTES_V1;
609
+ if (!Number.isSafeInteger(maximumOperationBytes) || maximumOperationBytes < 1 || maximumOperationBytes > OH_OPERATION_MAX_BYTES_V1) {
610
+ throw new TypeError("Invalid Oh operation byte bound.");
611
+ }
473
612
  const payload = parsePayload(input);
474
613
  if (payload === null)
475
614
  throw new TypeError("Invalid Oh operation payload.");
476
615
  const operation = { ...payload, operationSha256: canonicalSha256(payload) };
477
- if (Buffer.byteLength(canonicalJson(operation), "utf8") > OH_OPERATION_MAX_BYTES_V1) {
478
- throw new RangeError("Oh operation exceeds its canonical byte limit.");
616
+ const operationBytes = Buffer.byteLength(canonicalJson(operation), "utf8");
617
+ if (operationBytes > maximumOperationBytes) {
618
+ throw new OhOperationSizeError(operationBytes, maximumOperationBytes);
479
619
  }
480
620
  return operation;
481
621
  }
@@ -489,33 +629,6 @@ function parseOhOperationV1(value) {
489
629
  }
490
630
 
491
631
  // src/store.ts
492
- class OhConflictError extends Error {
493
- constructor(message) {
494
- super(message);
495
- this.name = "OhConflictError";
496
- }
497
- }
498
-
499
- class OhIntegrityError extends Error {
500
- constructor(message) {
501
- super(message);
502
- this.name = "OhIntegrityError";
503
- }
504
- }
505
-
506
- class OhDependencyError extends Error {
507
- constructor(message) {
508
- super(message);
509
- this.name = "OhDependencyError";
510
- }
511
- }
512
-
513
- class OhProfileError extends Error {
514
- constructor(message) {
515
- super(message);
516
- this.name = "OhProfileError";
517
- }
518
- }
519
632
  var OH_CANONICAL_STORE_PROFILE_V1 = createOhStoreProfileV1({
520
633
  applicationProfileSha256: null,
521
634
  capabilities: {
@@ -828,6 +941,8 @@ function transitionOhSnapshotV1(input) {
828
941
  sequence: head.sequence + 1,
829
942
  spaceId,
830
943
  v: 1
944
+ }, input.maximumOperationBytes === undefined ? {} : {
945
+ maximumOperationBytes: input.maximumOperationBytes
831
946
  });
832
947
  const nextHead = {
833
948
  generation: operation.sequence,
@@ -1065,6 +1180,11 @@ export {
1065
1180
  parseOhHeadV1,
1066
1181
  parseOhHeadRefV1,
1067
1182
  parseOhDependencyClosureV1,
1183
+ isOhProfileError,
1184
+ isOhOperationSizeError,
1185
+ isOhIntegrityError,
1186
+ isOhDependencyError,
1187
+ isOhConflictError,
1068
1188
  emptyOhHeadV1,
1069
1189
  createOhStoreProfileV1,
1070
1190
  createOhStoreBindingV1,
@@ -1074,10 +1194,12 @@ export {
1074
1194
  OhRecordCodecRegistry,
1075
1195
  OhPurgedSpaceError,
1076
1196
  OhProfileError,
1197
+ OhOperationSizeError,
1077
1198
  OhIntegrityError,
1078
1199
  OhDependencyError,
1079
1200
  OhConflictError,
1080
1201
  OH_WORKING_STORE_PROFILE_V1,
1202
+ OH_OPERATION_SIZE_ERROR_CODE_V1,
1081
1203
  OH_DEPENDENCY_CLOSURE_LIMITS_V1,
1082
1204
  OH_CANONICAL_STORE_PROFILE_V1
1083
1205
  };
package/dist/sync.d.ts CHANGED
@@ -2,12 +2,16 @@ import { type Sha256Hex } from "./canonical";
2
2
  import { type OhContractManifestV1 } from "./contract";
3
3
  import { type OhOperationV1 } from "./operation";
4
4
  import type { OhSqliteStore } from "./sqlite/store";
5
+ import type { OhHeadRefV1 } from "./store";
5
6
  export declare const OH_SYNC_PROTOCOL_V1: "oh.sync.v1";
6
7
  export type OhSyncHeadV1 = Readonly<{
7
8
  operationSha256: Sha256Hex | null;
8
9
  sequence: number;
9
10
  v: 1;
10
11
  }>;
12
+ export declare const OH_SYNC_BUNDLE_MAX_BYTES_V1: number;
13
+ export declare function parseOhSyncHeadRefV1(value: unknown): OhHeadRefV1 | null;
14
+ export declare function parseOhSyncHeadV1(value: unknown): OhSyncHeadV1 | null;
11
15
  export type OhSyncBundleV1 = Readonly<{
12
16
  bundleSha256: Sha256Hex;
13
17
  contractSha256: Sha256Hex;
@@ -16,7 +20,9 @@ export type OhSyncBundleV1 = Readonly<{
16
20
  spaceId: string;
17
21
  v: 1;
18
22
  }>;
19
- export declare function createOhSyncBundleV1(spaceId: string, operations: readonly OhOperationV1[]): OhSyncBundleV1;
23
+ export declare function createOhSyncBundleV1(spaceId: string, operations: readonly OhOperationV1[], options?: Readonly<{
24
+ largestFittingPrefix?: boolean;
25
+ }>): OhSyncBundleV1;
20
26
  export declare function parseOhSyncBundleV1(value: unknown): OhSyncBundleV1 | null;
21
27
  export interface OhOperationSyncTransportV1 {
22
28
  handshake(manifest: OhContractManifestV1): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}