@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.
- package/LICENSE +21 -0
- package/README.md +598 -0
- package/dist/canonical.d.ts +32 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3419 -0
- package/dist/contract.d.ts +33 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/graph.d.ts +67 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1988 -0
- package/dist/libsql.d.ts +57 -0
- package/dist/libsql.d.ts.map +1 -0
- package/dist/libsql.js +2662 -0
- package/dist/memory.d.ts +366 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +3650 -0
- package/dist/ontology.d.ts +242 -0
- package/dist/ontology.d.ts.map +1 -0
- package/dist/operation.d.ts +24 -0
- package/dist/operation.d.ts.map +1 -0
- package/dist/projection-public.d.ts +59 -0
- package/dist/projection-public.d.ts.map +1 -0
- package/dist/projection-public.js +1682 -0
- package/dist/projection-suss.d.ts +17 -0
- package/dist/projection-suss.d.ts.map +1 -0
- package/dist/projection-suss.js +1721 -0
- package/dist/projection.d.ts +315 -0
- package/dist/projection.d.ts.map +1 -0
- package/dist/schema.d.ts +45 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/sdk.d.ts +51 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +3072 -0
- package/dist/search.d.ts +34 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/semantic.d.ts +83 -0
- package/dist/semantic.d.ts.map +1 -0
- package/dist/semantic.js +706 -0
- package/dist/sqlite/driver.d.ts +6 -0
- package/dist/sqlite/driver.d.ts.map +1 -0
- package/dist/sqlite/index.d.ts +5 -0
- package/dist/sqlite/index.d.ts.map +1 -0
- package/dist/sqlite/index.js +2840 -0
- package/dist/sqlite/migrations.d.ts +10 -0
- package/dist/sqlite/migrations.d.ts.map +1 -0
- package/dist/sqlite/port.d.ts +40 -0
- package/dist/sqlite/port.d.ts.map +1 -0
- package/dist/sqlite/runtime.d.ts +23 -0
- package/dist/sqlite/runtime.d.ts.map +1 -0
- package/dist/sqlite/store.d.ts +85 -0
- package/dist/sqlite/store.d.ts.map +1 -0
- package/dist/store.d.ts +236 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +996 -0
- package/dist/sync.d.ts +57 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +1328 -0
- package/package.json +121 -0
- package/skills/oh/SKILL.md +206 -0
- package/skills/oh/agents/openai.yaml +4 -0
- package/spec/README.md +74 -0
- package/spec/manifest.json +41 -0
- package/spec/v1/canonical-json.md +59 -0
- package/spec/v1/contract.json +28 -0
- package/spec/v1/contract.schema.json +58 -0
- package/spec/v1/embedding-profile.json +11 -0
- package/spec/v1/embedding.md +56 -0
- package/spec/v1/graph.md +87 -0
- package/spec/v1/memory.md +193 -0
- package/spec/v1/migration.md +92 -0
- package/spec/v1/ontology.json +55 -0
- package/spec/v1/ontology.md +80 -0
- package/spec/v1/operation.schema.json +138 -0
- package/spec/v1/projection-identity.schema.json +58 -0
- package/spec/v1/projection-query.schema.json +60 -0
- package/spec/v1/projection-result.schema.json +452 -0
- package/spec/v1/projection-rule-pack.schema.json +182 -0
- package/spec/v1/projection.md +165 -0
- package/spec/v1/record.schema.json +95 -0
- package/spec/v1/schema-evolution.md +51 -0
- package/spec/v1/schema-revision.schema.json +178 -0
- package/spec/v1/storage.md +88 -0
- package/spec/v1/store.md +131 -0
- package/spec/v1/sync-bundle.schema.json +51 -0
- package/spec/v1/sync.md +67 -0
- package/src/canonical.test.ts +46 -0
- package/src/canonical.ts +203 -0
- package/src/cli.test.ts +103 -0
- package/src/cli.ts +308 -0
- package/src/contract.ts +87 -0
- package/src/contracts.test.ts +147 -0
- package/src/graph.ts +248 -0
- package/src/index.ts +8 -0
- package/src/libsql.test.ts +657 -0
- package/src/libsql.ts +1687 -0
- package/src/memory.test.ts +783 -0
- package/src/memory.ts +1684 -0
- package/src/ontology.ts +573 -0
- package/src/operation.ts +80 -0
- package/src/projection-public.ts +53 -0
- package/src/projection-suss.ts +129 -0
- package/src/projection.test.ts +418 -0
- package/src/projection.ts +1457 -0
- package/src/schema.ts +156 -0
- package/src/sdk.ts +96 -0
- package/src/search.ts +66 -0
- package/src/semantic.test.ts +480 -0
- package/src/semantic.ts +333 -0
- package/src/sqlite/driver.ts +47 -0
- package/src/sqlite/index.ts +4 -0
- package/src/sqlite/migrations.test.ts +44 -0
- package/src/sqlite/migrations.ts +178 -0
- package/src/sqlite/port.test.ts +127 -0
- package/src/sqlite/port.ts +120 -0
- package/src/sqlite/runtime.test.ts +68 -0
- package/src/sqlite/runtime.ts +53 -0
- package/src/sqlite/store.test.ts +295 -0
- package/src/sqlite/store.ts +988 -0
- package/src/store.test.ts +121 -0
- package/src/store.ts +701 -0
- package/src/sync.test.ts +117 -0
- package/src/sync.ts +227 -0
package/dist/search.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { KnowledgeGraphRecordV1 } from "./graph";
|
|
2
|
+
import type { OhSemanticSearchBackendV1 } from "./semantic";
|
|
3
|
+
import type { OhSqliteStore } from "./sqlite/store";
|
|
4
|
+
export type OhSearchModeV1 = "hybrid" | "keyword" | "semantic";
|
|
5
|
+
export type OhSearchDiagnosticV1 = Readonly<{
|
|
6
|
+
code: "semantic-unavailable";
|
|
7
|
+
message: string;
|
|
8
|
+
v: 1;
|
|
9
|
+
}>;
|
|
10
|
+
export type OhSearchResultV1 = Readonly<{
|
|
11
|
+
evidence: readonly Readonly<{
|
|
12
|
+
lane: "keyword" | "semantic";
|
|
13
|
+
rank: number;
|
|
14
|
+
score: number;
|
|
15
|
+
v: 1;
|
|
16
|
+
}>[];
|
|
17
|
+
record: KnowledgeGraphRecordV1;
|
|
18
|
+
score: number;
|
|
19
|
+
v: 1;
|
|
20
|
+
}>;
|
|
21
|
+
export type OhSearchResponseV1 = Readonly<{
|
|
22
|
+
diagnostics: readonly OhSearchDiagnosticV1[];
|
|
23
|
+
mode: OhSearchModeV1;
|
|
24
|
+
results: readonly OhSearchResultV1[];
|
|
25
|
+
v: 1;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function searchOhV1(input: Readonly<{
|
|
28
|
+
backend?: OhSemanticSearchBackendV1;
|
|
29
|
+
limit?: number;
|
|
30
|
+
mode?: OhSearchModeV1;
|
|
31
|
+
query: string;
|
|
32
|
+
store: OhSqliteStore;
|
|
33
|
+
}>): Promise<OhSearchResponseV1>;
|
|
34
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,QAAQ,EAAE,SAAS,QAAQ,CAAC;QAAE,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IACnG,MAAM,EAAE,sBAAsB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7C,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoC/B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type Sha256Hex } from "./canonical";
|
|
2
|
+
import { type KnowledgeGraphRecordV1 } from "./graph";
|
|
3
|
+
import type { OhSqliteStore } from "./sqlite/store";
|
|
4
|
+
export declare const OH_EMBEDDING_PROFILE_V1: Readonly<{
|
|
5
|
+
readonly dimensions: 768;
|
|
6
|
+
readonly distance: "cosine";
|
|
7
|
+
readonly documentation: "https://ai.google.dev/gemma/docs/embeddinggemma";
|
|
8
|
+
readonly documentFormat: "title: {title} | text: {content}";
|
|
9
|
+
readonly engine: "@tobilu/qmd@2.5.3";
|
|
10
|
+
readonly model: "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
11
|
+
readonly normalization: "l2";
|
|
12
|
+
readonly queryFormat: "task: search result | query: {query}";
|
|
13
|
+
readonly v: 1;
|
|
14
|
+
}>;
|
|
15
|
+
export type OhEmbeddingProfileV1 = typeof OH_EMBEDDING_PROFILE_V1;
|
|
16
|
+
export declare function formatOhEmbeddingQueryV1(query: string): string;
|
|
17
|
+
export declare function formatOhEmbeddingDocumentV1(title: string, content: string): string;
|
|
18
|
+
export declare function normalizeOhEmbeddingV1(vector: readonly number[]): readonly number[];
|
|
19
|
+
export declare function cosineSimilarityV1(left: readonly number[], right: readonly number[]): number;
|
|
20
|
+
export type OhSemanticSearchResultV1 = Readonly<{
|
|
21
|
+
key: string;
|
|
22
|
+
recordSha256: Sha256Hex;
|
|
23
|
+
score: number;
|
|
24
|
+
v: 1;
|
|
25
|
+
}>;
|
|
26
|
+
export interface OhSemanticSearchBackendV1 {
|
|
27
|
+
readonly profile: OhEmbeddingProfileV1;
|
|
28
|
+
close(): Promise<void>;
|
|
29
|
+
index(records: readonly KnowledgeGraphRecordV1[]): Promise<Readonly<{
|
|
30
|
+
indexed: number;
|
|
31
|
+
v: 1;
|
|
32
|
+
}>>;
|
|
33
|
+
search(query: string, limit: number, authority: OhSqliteStore): Promise<readonly OhSemanticSearchResultV1[]>;
|
|
34
|
+
}
|
|
35
|
+
type QmdStore = {
|
|
36
|
+
close(): Promise<void>;
|
|
37
|
+
embed(options: Readonly<{
|
|
38
|
+
collection: string;
|
|
39
|
+
model: string;
|
|
40
|
+
}>): Promise<unknown>;
|
|
41
|
+
searchVector(query: string, options: Readonly<{
|
|
42
|
+
collection: string;
|
|
43
|
+
limit: number;
|
|
44
|
+
}>): Promise<unknown>;
|
|
45
|
+
update(options: Readonly<{
|
|
46
|
+
collections: readonly string[];
|
|
47
|
+
}>): Promise<unknown>;
|
|
48
|
+
};
|
|
49
|
+
export type QmdStoreFactoryV1 = (options: Readonly<{
|
|
50
|
+
config: Readonly<Record<string, unknown>>;
|
|
51
|
+
dbPath: string;
|
|
52
|
+
}>) => Promise<QmdStore>;
|
|
53
|
+
/**
|
|
54
|
+
* Optional, rebuildable local QMD index. SQLite records remain authoritative;
|
|
55
|
+
* every returned hit is rejoined to its exact current record digest.
|
|
56
|
+
*/
|
|
57
|
+
export declare class OhQmdSemanticBackendV1 implements OhSemanticSearchBackendV1 {
|
|
58
|
+
#private;
|
|
59
|
+
readonly profile: Readonly<{
|
|
60
|
+
readonly dimensions: 768;
|
|
61
|
+
readonly distance: "cosine";
|
|
62
|
+
readonly documentation: "https://ai.google.dev/gemma/docs/embeddinggemma";
|
|
63
|
+
readonly documentFormat: "title: {title} | text: {content}";
|
|
64
|
+
readonly engine: "@tobilu/qmd@2.5.3";
|
|
65
|
+
readonly model: "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
|
|
66
|
+
readonly normalization: "l2";
|
|
67
|
+
readonly queryFormat: "task: search result | query: {query}";
|
|
68
|
+
readonly v: 1;
|
|
69
|
+
}>;
|
|
70
|
+
constructor(options: Readonly<{
|
|
71
|
+
cacheDirectory: string;
|
|
72
|
+
databasePath?: string;
|
|
73
|
+
storeFactory?: QmdStoreFactoryV1;
|
|
74
|
+
}>);
|
|
75
|
+
index(records: readonly KnowledgeGraphRecordV1[]): Promise<Readonly<{
|
|
76
|
+
indexed: number;
|
|
77
|
+
v: 1;
|
|
78
|
+
}>>;
|
|
79
|
+
search(query: string, limit: number, authority: OhSqliteStore): Promise<readonly OhSemanticSearchResultV1[]>;
|
|
80
|
+
close(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=semantic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../src/semantic.ts"],"names":[],"mappings":"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"}
|