@hraness/oh 0.2.3

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 (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +598 -0
  3. package/dist/canonical.d.ts +32 -0
  4. package/dist/canonical.d.ts.map +1 -0
  5. package/dist/cli.d.ts +4 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +3419 -0
  8. package/dist/contract.d.ts +33 -0
  9. package/dist/contract.d.ts.map +1 -0
  10. package/dist/graph.d.ts +67 -0
  11. package/dist/graph.d.ts.map +1 -0
  12. package/dist/index.d.ts +9 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +1988 -0
  15. package/dist/libsql.d.ts +57 -0
  16. package/dist/libsql.d.ts.map +1 -0
  17. package/dist/libsql.js +2662 -0
  18. package/dist/memory.d.ts +366 -0
  19. package/dist/memory.d.ts.map +1 -0
  20. package/dist/memory.js +3650 -0
  21. package/dist/ontology.d.ts +242 -0
  22. package/dist/ontology.d.ts.map +1 -0
  23. package/dist/operation.d.ts +24 -0
  24. package/dist/operation.d.ts.map +1 -0
  25. package/dist/projection-public.d.ts +59 -0
  26. package/dist/projection-public.d.ts.map +1 -0
  27. package/dist/projection-public.js +1682 -0
  28. package/dist/projection-suss.d.ts +17 -0
  29. package/dist/projection-suss.d.ts.map +1 -0
  30. package/dist/projection-suss.js +1721 -0
  31. package/dist/projection.d.ts +315 -0
  32. package/dist/projection.d.ts.map +1 -0
  33. package/dist/schema.d.ts +45 -0
  34. package/dist/schema.d.ts.map +1 -0
  35. package/dist/sdk.d.ts +51 -0
  36. package/dist/sdk.d.ts.map +1 -0
  37. package/dist/sdk.js +3072 -0
  38. package/dist/search.d.ts +34 -0
  39. package/dist/search.d.ts.map +1 -0
  40. package/dist/semantic.d.ts +83 -0
  41. package/dist/semantic.d.ts.map +1 -0
  42. package/dist/semantic.js +706 -0
  43. package/dist/sqlite/driver.d.ts +6 -0
  44. package/dist/sqlite/driver.d.ts.map +1 -0
  45. package/dist/sqlite/index.d.ts +5 -0
  46. package/dist/sqlite/index.d.ts.map +1 -0
  47. package/dist/sqlite/index.js +2840 -0
  48. package/dist/sqlite/migrations.d.ts +10 -0
  49. package/dist/sqlite/migrations.d.ts.map +1 -0
  50. package/dist/sqlite/port.d.ts +40 -0
  51. package/dist/sqlite/port.d.ts.map +1 -0
  52. package/dist/sqlite/runtime.d.ts +23 -0
  53. package/dist/sqlite/runtime.d.ts.map +1 -0
  54. package/dist/sqlite/store.d.ts +85 -0
  55. package/dist/sqlite/store.d.ts.map +1 -0
  56. package/dist/store.d.ts +236 -0
  57. package/dist/store.d.ts.map +1 -0
  58. package/dist/store.js +996 -0
  59. package/dist/sync.d.ts +57 -0
  60. package/dist/sync.d.ts.map +1 -0
  61. package/dist/sync.js +1328 -0
  62. package/package.json +121 -0
  63. package/skills/oh/SKILL.md +206 -0
  64. package/skills/oh/agents/openai.yaml +4 -0
  65. package/spec/README.md +74 -0
  66. package/spec/manifest.json +41 -0
  67. package/spec/v1/canonical-json.md +59 -0
  68. package/spec/v1/contract.json +28 -0
  69. package/spec/v1/contract.schema.json +58 -0
  70. package/spec/v1/embedding-profile.json +11 -0
  71. package/spec/v1/embedding.md +56 -0
  72. package/spec/v1/graph.md +87 -0
  73. package/spec/v1/memory.md +193 -0
  74. package/spec/v1/migration.md +92 -0
  75. package/spec/v1/ontology.json +55 -0
  76. package/spec/v1/ontology.md +80 -0
  77. package/spec/v1/operation.schema.json +138 -0
  78. package/spec/v1/projection-identity.schema.json +58 -0
  79. package/spec/v1/projection-query.schema.json +60 -0
  80. package/spec/v1/projection-result.schema.json +452 -0
  81. package/spec/v1/projection-rule-pack.schema.json +182 -0
  82. package/spec/v1/projection.md +165 -0
  83. package/spec/v1/record.schema.json +95 -0
  84. package/spec/v1/schema-evolution.md +51 -0
  85. package/spec/v1/schema-revision.schema.json +178 -0
  86. package/spec/v1/storage.md +88 -0
  87. package/spec/v1/store.md +131 -0
  88. package/spec/v1/sync-bundle.schema.json +51 -0
  89. package/spec/v1/sync.md +67 -0
  90. package/src/canonical.test.ts +46 -0
  91. package/src/canonical.ts +203 -0
  92. package/src/cli.test.ts +103 -0
  93. package/src/cli.ts +308 -0
  94. package/src/contract.ts +87 -0
  95. package/src/contracts.test.ts +147 -0
  96. package/src/graph.ts +248 -0
  97. package/src/index.ts +8 -0
  98. package/src/libsql.test.ts +657 -0
  99. package/src/libsql.ts +1687 -0
  100. package/src/memory.test.ts +783 -0
  101. package/src/memory.ts +1684 -0
  102. package/src/ontology.ts +573 -0
  103. package/src/operation.ts +80 -0
  104. package/src/projection-public.ts +53 -0
  105. package/src/projection-suss.ts +129 -0
  106. package/src/projection.test.ts +418 -0
  107. package/src/projection.ts +1457 -0
  108. package/src/schema.ts +156 -0
  109. package/src/sdk.ts +96 -0
  110. package/src/search.ts +66 -0
  111. package/src/semantic.test.ts +480 -0
  112. package/src/semantic.ts +333 -0
  113. package/src/sqlite/driver.ts +47 -0
  114. package/src/sqlite/index.ts +4 -0
  115. package/src/sqlite/migrations.test.ts +44 -0
  116. package/src/sqlite/migrations.ts +178 -0
  117. package/src/sqlite/port.test.ts +127 -0
  118. package/src/sqlite/port.ts +120 -0
  119. package/src/sqlite/runtime.test.ts +68 -0
  120. package/src/sqlite/runtime.ts +53 -0
  121. package/src/sqlite/store.test.ts +295 -0
  122. package/src/sqlite/store.ts +988 -0
  123. package/src/store.test.ts +121 -0
  124. package/src/store.ts +701 -0
  125. package/src/sync.test.ts +117 -0
  126. package/src/sync.ts +227 -0
@@ -0,0 +1,33 @@
1
+ import { type JsonValue, type Sha256Hex } from "./canonical";
2
+ import { OH_GRAPH_FORMAT_VERSION_V1, type KnowledgeGraphRecordKindV1 } from "./graph";
3
+ import { OH_CONTRACT_ID_V1, OH_ONTOLOGY_VERSION_V1 } from "./ontology";
4
+ import { OH_SCHEMA_FORMAT_VERSION_V1 } from "./schema";
5
+ export type OhContractManifestV1 = Readonly<{
6
+ contractId: typeof OH_CONTRACT_ID_V1;
7
+ contractSha256: Sha256Hex;
8
+ graphFormatVersion: typeof OH_GRAPH_FORMAT_VERSION_V1;
9
+ ontologyVersion: typeof OH_ONTOLOGY_VERSION_V1;
10
+ recordKinds: readonly KnowledgeGraphRecordKindV1[];
11
+ schemaFormatVersion: typeof OH_SCHEMA_FORMAT_VERSION_V1;
12
+ v: 1;
13
+ }>;
14
+ export declare const OH_CONTRACT_MANIFEST_V1: OhContractManifestV1;
15
+ /** Accepts only the complete, byte-equivalent V1 contract manifest. */
16
+ export declare function parseOhContractManifestV1(value: unknown): OhContractManifestV1 | null;
17
+ export type OhRecordCodec<T extends JsonValue = JsonValue> = Readonly<{
18
+ kind: KnowledgeGraphRecordKindV1;
19
+ parse(value: unknown): T | null;
20
+ }>;
21
+ /** Optional semantic validation layered over the immutable generic record envelope. */
22
+ export declare class OhRecordCodecRegistry {
23
+ #private;
24
+ register(codec: OhRecordCodec): this;
25
+ parse(kind: KnowledgeGraphRecordKindV1, value: unknown): JsonValue | null;
26
+ has(kind: KnowledgeGraphRecordKindV1): boolean;
27
+ /** Parses only through an explicitly registered codec. */
28
+ parseRequired(kind: KnowledgeGraphRecordKindV1, value: unknown): JsonValue | null;
29
+ /** Prevents the validation policy from changing after an ingress is created. */
30
+ seal(): this;
31
+ get sealed(): boolean;
32
+ }
33
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EACjC,KAAK,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,UAAU,EAAE,OAAO,iBAAiB,CAAC;IACrC,cAAc,EAAE,SAAS,CAAC;IAC1B,kBAAkB,EAAE,OAAO,0BAA0B,CAAC;IACtD,eAAe,EAAE,OAAO,sBAAsB,CAAC;IAC/C,WAAW,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACnD,mBAAmB,EAAE,OAAO,2BAA2B,CAAC;IACxD,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAWH,eAAO,MAAM,uBAAuB,EAAE,oBAGpC,CAAC;AAEH,uEAAuE;AACvE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAKrF;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,QAAQ,CAAC;IACpE,IAAI,EAAE,0BAA0B,CAAC;IACjC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;CACjC,CAAC,CAAC;AAEH,uFAAuF;AACvF,qBAAa,qBAAqB;;IAIhC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOpC,KAAK,CAAC,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAMzE,GAAG,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO;IAI9C,0DAA0D;IAC1D,aAAa,CAAC,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAWjF,gFAAgF;IAChF,IAAI,IAAI,IAAI;IAKZ,IAAI,MAAM,IAAI,OAAO,CAEpB;CACF"}
@@ -0,0 +1,67 @@
1
+ import { type JsonValue, type Sha256Hex } from "./canonical";
2
+ export declare const OH_GRAPH_FORMAT_VERSION_V1: 1;
3
+ export declare const OH_GRAPH_LIMITS_V1: Readonly<{
4
+ changesPerOperation: 8192;
5
+ dependenciesPerRecord: 4096;
6
+ recordBytes: number;
7
+ recordsPerSnapshot: 65536;
8
+ }>;
9
+ export declare const OH_KNOWLEDGE_GRAPH_RECORD_KINDS_V1: readonly ["activity", "assertion", "context", "dependency-manifest", "edition", "entity", "evidence", "identity-operation", "inquiry", "inquiry-event", "review-decision", "rights-decision", "schema", "shape", "statement", "type-membership", "view", "vocabulary"];
10
+ export type KnowledgeGraphRecordKindV1 = (typeof OH_KNOWLEDGE_GRAPH_RECORD_KINDS_V1)[number];
11
+ export type KnowledgeGraphRecordV1 = Readonly<{
12
+ dependencies: readonly string[];
13
+ key: string;
14
+ kind: KnowledgeGraphRecordKindV1;
15
+ recordSha256: Sha256Hex;
16
+ v: 1;
17
+ value: JsonValue;
18
+ }>;
19
+ export type KnowledgeGraphRecordInputV1 = Omit<KnowledgeGraphRecordV1, "recordSha256">;
20
+ export type KnowledgeGraphRecordRefV1 = Readonly<{
21
+ dependencies: readonly string[];
22
+ key: string;
23
+ kind: KnowledgeGraphRecordKindV1;
24
+ sha256: Sha256Hex;
25
+ v: 1;
26
+ }>;
27
+ export declare function createKnowledgeGraphRecordV1(input: KnowledgeGraphRecordInputV1): KnowledgeGraphRecordV1;
28
+ export declare function parseKnowledgeGraphRecordV1(value: unknown): KnowledgeGraphRecordV1 | null;
29
+ export declare function knowledgeGraphRecordRefV1(record: KnowledgeGraphRecordV1): KnowledgeGraphRecordRefV1;
30
+ export type KnowledgeGraphChangeV1 = Readonly<{
31
+ kind: "put";
32
+ record: KnowledgeGraphRecordV1;
33
+ v: 1;
34
+ }> | Readonly<{
35
+ key: string;
36
+ kind: "tombstone";
37
+ priorSha256: Sha256Hex;
38
+ v: 1;
39
+ }>;
40
+ export type KnowledgeGraphRevisionV1 = Readonly<{
41
+ changes: readonly KnowledgeGraphChangeV1[];
42
+ graphRevisionSha256: Sha256Hex;
43
+ operationId: string;
44
+ parentGraphRevisionSha256: Sha256Hex | null;
45
+ recordRefs: readonly KnowledgeGraphRecordRefV1[];
46
+ recordsSha256: Sha256Hex;
47
+ revision: number;
48
+ v: 1;
49
+ }>;
50
+ export declare function canonicalKnowledgeGraphChangesV1(changes: readonly KnowledgeGraphChangeV1[]): readonly KnowledgeGraphChangeV1[];
51
+ /** Hashes the canonical graph transition envelope used by snapshots and operations. */
52
+ export declare function graphRevisionSha256V1(input: Readonly<{
53
+ changes: readonly KnowledgeGraphChangeV1[];
54
+ operationId: string;
55
+ parentGraphRevisionSha256: Sha256Hex | null;
56
+ recordsSha256: Sha256Hex;
57
+ revision: number;
58
+ }>): Sha256Hex;
59
+ export declare function createKnowledgeGraphRevisionV1(input: Readonly<{
60
+ changes: readonly KnowledgeGraphChangeV1[];
61
+ operationId: string;
62
+ parent: KnowledgeGraphRevisionV1 | null;
63
+ }>): KnowledgeGraphRevisionV1;
64
+ export declare function parseKnowledgeGraphRevisionV1(value: unknown): KnowledgeGraphRevisionV1 | null;
65
+ /** Deterministically reduces a revision chain and rejects gaps, forks, and false snapshots. */
66
+ export declare function reduceKnowledgeGraphRevisionsV1(revisions: readonly KnowledgeGraphRevisionV1[]): KnowledgeGraphRevisionV1 | null;
67
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./canonical";
2
+ export * from "./contract";
3
+ export * from "./graph";
4
+ export * from "./ontology";
5
+ export * from "./operation";
6
+ export * from "./schema";
7
+ export * from "./store";
8
+ export * from "./sync";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}