ori-memory 0.2.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.
- package/LICENSE +201 -0
- package/README.md +217 -0
- package/adapters/claude-code/hooks/capture.mjs +58 -0
- package/adapters/claude-code/hooks/orient.mjs +114 -0
- package/adapters/claude-code/hooks/validate.mjs +56 -0
- package/dist/agents/lock.d.ts +3 -0
- package/dist/agents/lock.d.ts.map +1 -0
- package/dist/agents/lock.js +11 -0
- package/dist/agents/lock.js.map +1 -0
- package/dist/agents/protocol.d.ts +6 -0
- package/dist/agents/protocol.d.ts.map +1 -0
- package/dist/agents/protocol.js +10 -0
- package/dist/agents/protocol.js.map +1 -0
- package/dist/cli/add.d.ts +12 -0
- package/dist/cli/add.d.ts.map +1 -0
- package/dist/cli/add.js +88 -0
- package/dist/cli/add.js.map +1 -0
- package/dist/cli/archive.d.ts +25 -0
- package/dist/cli/archive.d.ts.map +1 -0
- package/dist/cli/archive.js +69 -0
- package/dist/cli/archive.js.map +1 -0
- package/dist/cli/bridge.d.ts +19 -0
- package/dist/cli/bridge.d.ts.map +1 -0
- package/dist/cli/bridge.js +180 -0
- package/dist/cli/bridge.js.map +1 -0
- package/dist/cli/health.d.ts +7 -0
- package/dist/cli/health.d.ts.map +1 -0
- package/dist/cli/health.js +66 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/init.d.ts +9 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +44 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/promote.d.ts +35 -0
- package/dist/cli/promote.d.ts.map +1 -0
- package/dist/cli/promote.js +182 -0
- package/dist/cli/promote.js.map +1 -0
- package/dist/cli/query.d.ts +10 -0
- package/dist/cli/query.d.ts.map +1 -0
- package/dist/cli/query.js +74 -0
- package/dist/cli/query.js.map +1 -0
- package/dist/cli/serve.d.ts +27 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +254 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/status.d.ts +7 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +34 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/validate.d.ts +9 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +37 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/core/classify.d.ts +13 -0
- package/dist/core/classify.d.ts.map +1 -0
- package/dist/core/classify.js +126 -0
- package/dist/core/classify.js.map +1 -0
- package/dist/core/config.d.ts +82 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +183 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/frontmatter.d.ts +11 -0
- package/dist/core/frontmatter.d.ts.map +1 -0
- package/dist/core/frontmatter.js +61 -0
- package/dist/core/frontmatter.js.map +1 -0
- package/dist/core/graph.d.ts +9 -0
- package/dist/core/graph.d.ts.map +1 -0
- package/dist/core/graph.js +56 -0
- package/dist/core/graph.js.map +1 -0
- package/dist/core/importance.d.ts +49 -0
- package/dist/core/importance.d.ts.map +1 -0
- package/dist/core/importance.js +230 -0
- package/dist/core/importance.js.map +1 -0
- package/dist/core/intent.d.ts +36 -0
- package/dist/core/intent.d.ts.map +1 -0
- package/dist/core/intent.js +108 -0
- package/dist/core/intent.js.map +1 -0
- package/dist/core/linkdetect.d.ts +34 -0
- package/dist/core/linkdetect.d.ts.map +1 -0
- package/dist/core/linkdetect.js +181 -0
- package/dist/core/linkdetect.js.map +1 -0
- package/dist/core/llm.d.ts +41 -0
- package/dist/core/llm.d.ts.map +1 -0
- package/dist/core/llm.js +36 -0
- package/dist/core/llm.js.map +1 -0
- package/dist/core/promote.d.ts +40 -0
- package/dist/core/promote.d.ts.map +1 -0
- package/dist/core/promote.js +246 -0
- package/dist/core/promote.js.map +1 -0
- package/dist/core/ranking.d.ts +33 -0
- package/dist/core/ranking.d.ts.map +1 -0
- package/dist/core/ranking.js +45 -0
- package/dist/core/ranking.js.map +1 -0
- package/dist/core/schema.d.ts +16 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +76 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/vault.d.ts +16 -0
- package/dist/core/vault.d.ts.map +1 -0
- package/dist/core/vault.js +52 -0
- package/dist/core/vault.js.map +1 -0
- package/dist/core/vitality.d.ts +55 -0
- package/dist/core/vitality.d.ts.map +1 -0
- package/dist/core/vitality.js +95 -0
- package/dist/core/vitality.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +139 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +12 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +90 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/package.json +60 -0
- package/scaffold/.ori +1 -0
- package/scaffold/inbox/.gitkeep +1 -0
- package/scaffold/notes/index.md +19 -0
- package/scaffold/ops/observations/.gitkeep +1 -0
- package/scaffold/ops/reminders.md +3 -0
- package/scaffold/ops/sessions/.gitkeep +1 -0
- package/scaffold/ori.config.yaml +79 -0
- package/scaffold/templates/map.md +36 -0
- package/scaffold/templates/note.md +61 -0
- package/scaffold/templates/observation.md +38 -0
- package/scaffold/templates/source.md +45 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rank notes by graph importance (PageRank scores).
|
|
3
|
+
*/
|
|
4
|
+
export function rankByImportance(notes, pagerankScores, limit) {
|
|
5
|
+
const scored = notes.map((title) => ({
|
|
6
|
+
title,
|
|
7
|
+
score: pagerankScores.get(title) ?? 0,
|
|
8
|
+
signals: { graph: pagerankScores.get(title) ?? 0 },
|
|
9
|
+
}));
|
|
10
|
+
scored.sort((a, b) => b.score - a.score);
|
|
11
|
+
return limit ? scored.slice(0, limit) : scored;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Find notes that are fading (below vitality threshold).
|
|
15
|
+
* Sorted ascending — most fading first.
|
|
16
|
+
*/
|
|
17
|
+
export function rankByFading(notes, vitalityScores, threshold = 0.3) {
|
|
18
|
+
const fading = [];
|
|
19
|
+
for (const title of notes) {
|
|
20
|
+
const vitality = vitalityScores.get(title) ?? 0;
|
|
21
|
+
if (vitality < threshold) {
|
|
22
|
+
fading.push({
|
|
23
|
+
title,
|
|
24
|
+
score: vitality,
|
|
25
|
+
signals: { composite: vitality },
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Sort ascending — lowest vitality first (most fading)
|
|
30
|
+
fading.sort((a, b) => a.score - b.score);
|
|
31
|
+
return fading;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Rank notes by vitality score (descending).
|
|
35
|
+
*/
|
|
36
|
+
export function rankByVitality(notes, vitalityScores, limit) {
|
|
37
|
+
const scored = notes.map((title) => ({
|
|
38
|
+
title,
|
|
39
|
+
score: vitalityScores.get(title) ?? 0,
|
|
40
|
+
signals: { composite: vitalityScores.get(title) ?? 0 },
|
|
41
|
+
}));
|
|
42
|
+
scored.sort((a, b) => b.score - a.score);
|
|
43
|
+
return limit ? scored.slice(0, limit) : scored;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ranking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../src/core/ranking.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACnD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAe,EACf,cAAmC,EACnC,YAAoB,GAAG;IAEvB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACvD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type TemplateSchema = {
|
|
2
|
+
entity_type?: string;
|
|
3
|
+
applies_to?: string;
|
|
4
|
+
required?: string[];
|
|
5
|
+
optional?: string[];
|
|
6
|
+
enums?: Record<string, string[]>;
|
|
7
|
+
constraints?: Record<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
export type ValidationResult = {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
errors: string[];
|
|
12
|
+
warnings: string[];
|
|
13
|
+
};
|
|
14
|
+
export declare function loadTemplateSchema(templatePath: string): Promise<TemplateSchema>;
|
|
15
|
+
export declare function validateNoteAgainstSchema(notePath: string, templatePath: string): Promise<ValidationResult>;
|
|
16
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AASF,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA6D3B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import { parseFrontmatter } from "./frontmatter.js";
|
|
3
|
+
function isBlank(value) {
|
|
4
|
+
if (value === null || value === undefined)
|
|
5
|
+
return true;
|
|
6
|
+
if (typeof value === "string")
|
|
7
|
+
return value.trim().length === 0;
|
|
8
|
+
if (Array.isArray(value))
|
|
9
|
+
return value.length === 0;
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
export async function loadTemplateSchema(templatePath) {
|
|
13
|
+
const content = await fs.readFile(templatePath, "utf8");
|
|
14
|
+
const parsed = parseFrontmatter(content);
|
|
15
|
+
if (!parsed.data || typeof parsed.data !== "object") {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
const schema = parsed.data["_schema"];
|
|
19
|
+
return schema ?? {};
|
|
20
|
+
}
|
|
21
|
+
export async function validateNoteAgainstSchema(notePath, templatePath) {
|
|
22
|
+
const errors = [];
|
|
23
|
+
const warnings = [];
|
|
24
|
+
const noteContent = await fs.readFile(notePath, "utf8");
|
|
25
|
+
const noteParsed = parseFrontmatter(noteContent);
|
|
26
|
+
if (!noteParsed.data) {
|
|
27
|
+
return {
|
|
28
|
+
valid: false,
|
|
29
|
+
errors: ["Missing YAML frontmatter"],
|
|
30
|
+
warnings,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const schema = await loadTemplateSchema(templatePath);
|
|
34
|
+
const noteData = noteParsed.data;
|
|
35
|
+
const required = schema.required ?? [];
|
|
36
|
+
for (const field of required) {
|
|
37
|
+
if (!(field in noteData) || isBlank(noteData[field])) {
|
|
38
|
+
errors.push(`Missing required field: ${field}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const enums = schema.enums ?? {};
|
|
42
|
+
for (const [field, allowed] of Object.entries(enums)) {
|
|
43
|
+
if (field in noteData && !isBlank(noteData[field])) {
|
|
44
|
+
const value = noteData[field];
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
const invalid = value.filter((entry) => typeof entry === "string" && !allowed.includes(entry));
|
|
47
|
+
if (invalid.length > 0) {
|
|
48
|
+
errors.push(`Invalid ${field} values: ${invalid.join(", ")}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (typeof value === "string") {
|
|
52
|
+
if (!allowed.includes(value)) {
|
|
53
|
+
errors.push(`Invalid ${field} value: ${value}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const constraints = schema.constraints ?? {};
|
|
59
|
+
const descriptionConstraint = constraints["description"];
|
|
60
|
+
const description = noteData["description"];
|
|
61
|
+
if (typeof description === "string") {
|
|
62
|
+
const maxLen = descriptionConstraint?.["max_length"];
|
|
63
|
+
if (typeof maxLen === "number" && description.length > maxLen) {
|
|
64
|
+
errors.push(`Description exceeds max length (${maxLen})`);
|
|
65
|
+
}
|
|
66
|
+
if (description.trim().endsWith(".")) {
|
|
67
|
+
warnings.push("Description should not end with a period");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
valid: errors.length === 0,
|
|
72
|
+
errors,
|
|
73
|
+
warnings,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type VaultPaths = {
|
|
2
|
+
root: string;
|
|
3
|
+
marker: string;
|
|
4
|
+
config: string;
|
|
5
|
+
notes: string;
|
|
6
|
+
inbox: string;
|
|
7
|
+
templates: string;
|
|
8
|
+
ops: string;
|
|
9
|
+
opsSessions: string;
|
|
10
|
+
opsObservations: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function isVaultRoot(dir: string): Promise<boolean>;
|
|
13
|
+
export declare function findVaultRoot(startDir: string): Promise<string>;
|
|
14
|
+
export declare function getVaultPaths(root: string): VaultPaths;
|
|
15
|
+
export declare function listNoteTitles(notesDir: string): Promise<string[]>;
|
|
16
|
+
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/core/vault.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAarE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAYtD;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export async function isVaultRoot(dir) {
|
|
4
|
+
try {
|
|
5
|
+
await fs.access(path.join(dir, ".ori"));
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export async function findVaultRoot(startDir) {
|
|
13
|
+
let current = path.resolve(startDir);
|
|
14
|
+
// Walk up to filesystem root
|
|
15
|
+
while (true) {
|
|
16
|
+
if (await isVaultRoot(current)) {
|
|
17
|
+
return current;
|
|
18
|
+
}
|
|
19
|
+
const parent = path.dirname(current);
|
|
20
|
+
if (parent === current) {
|
|
21
|
+
throw new Error("No .ori marker found in parent directories");
|
|
22
|
+
}
|
|
23
|
+
current = parent;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function getVaultPaths(root) {
|
|
27
|
+
return {
|
|
28
|
+
root,
|
|
29
|
+
marker: path.join(root, ".ori"),
|
|
30
|
+
config: path.join(root, "ori.config.yaml"),
|
|
31
|
+
notes: path.join(root, "notes"),
|
|
32
|
+
inbox: path.join(root, "inbox"),
|
|
33
|
+
templates: path.join(root, "templates"),
|
|
34
|
+
ops: path.join(root, "ops"),
|
|
35
|
+
opsSessions: path.join(root, "ops", "sessions"),
|
|
36
|
+
opsObservations: path.join(root, "ops", "observations"),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export async function listNoteTitles(notesDir) {
|
|
40
|
+
try {
|
|
41
|
+
const entries = await fs.readdir(notesDir, { withFileTypes: true });
|
|
42
|
+
return entries
|
|
43
|
+
.filter((entry) => entry.isFile() && entry.name.endsWith(".md"))
|
|
44
|
+
.map((entry) => entry.name.replace(/\.md$/, ""));
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
if (err.code === "ENOENT")
|
|
48
|
+
return [];
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/core/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAc7B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,6BAA6B;IAC7B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAC3B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC;QAC/C,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAChE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export type VitalityParams = {
|
|
2
|
+
base: number;
|
|
3
|
+
decayDays: number;
|
|
4
|
+
};
|
|
5
|
+
export declare function daysBetween(a: Date, b: Date): number;
|
|
6
|
+
export declare function computeVitality(params: VitalityParams, lastAccessed: Date, now: Date): number;
|
|
7
|
+
/**
|
|
8
|
+
* ACT-R base-level activation: B_i = ln(n/(1-d)) - d*ln(L)
|
|
9
|
+
* Normalized to 0-1 via sigmoid.
|
|
10
|
+
*
|
|
11
|
+
* @param accessCount - number of times the note was accessed (n)
|
|
12
|
+
* @param lifetimeDays - days since note creation (L)
|
|
13
|
+
* @param d - decay parameter, default 0.5
|
|
14
|
+
* @returns vitality score 0-1
|
|
15
|
+
*/
|
|
16
|
+
export declare function computeVitalityACTR(accessCount: number, lifetimeDays: number, d?: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Structural stability boost from incoming links.
|
|
19
|
+
* Each link adds ~10% to effective stability, capped at 2x.
|
|
20
|
+
*/
|
|
21
|
+
export declare function computeStructuralBoost(inDegree: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* Revival spike when a dormant note gets a new connection.
|
|
24
|
+
* Decays exponentially over 14 days.
|
|
25
|
+
*/
|
|
26
|
+
export declare function computeRevivalBoost(daysSinceNewConnection: number | undefined): number;
|
|
27
|
+
/**
|
|
28
|
+
* Access frequency saturation with diminishing returns.
|
|
29
|
+
* 10 accesses → ~63%, 20 → ~86%, 30 → ~95%.
|
|
30
|
+
*/
|
|
31
|
+
export declare function computeAccessSaturation(accessCount: number, k?: number): number;
|
|
32
|
+
export type VitalityFullParams = {
|
|
33
|
+
accessCount: number;
|
|
34
|
+
created: string;
|
|
35
|
+
lastAccessed?: string;
|
|
36
|
+
noteTitle: string;
|
|
37
|
+
inDegree: number;
|
|
38
|
+
bridges: Set<string>;
|
|
39
|
+
metabolicRate?: number;
|
|
40
|
+
daysSinceNewConnection?: number;
|
|
41
|
+
actrDecay?: number;
|
|
42
|
+
accessSaturationK?: number;
|
|
43
|
+
bridgeFloor?: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Full vitality computation combining:
|
|
47
|
+
* 1. ACT-R base vitality
|
|
48
|
+
* 2. Metabolic rate (space-dependent decay multiplier)
|
|
49
|
+
* 3. Structural stability boost (well-linked notes decay slower)
|
|
50
|
+
* 4. Access frequency saturation
|
|
51
|
+
* 5. Revival spike for dormant notes gaining new connections
|
|
52
|
+
* 6. Bridge protection floor
|
|
53
|
+
*/
|
|
54
|
+
export declare function computeVitalityFull(params: VitalityFullParams): number;
|
|
55
|
+
//# sourceMappingURL=vitality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitality.d.ts","sourceRoot":"","sources":["../../src/core/vitality.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAGpD;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,IAAI,EAClB,GAAG,EAAE,IAAI,GACR,MAAM,CAOR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,CAAC,GAAE,MAAY,GACd,MAAM,CASR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAItF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,GAAE,MAAW,GAAG,MAAM,CAGnF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CA2CtE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export function daysBetween(a, b) {
|
|
2
|
+
const ms = Math.abs(b.getTime() - a.getTime());
|
|
3
|
+
return ms / (1000 * 60 * 60 * 24);
|
|
4
|
+
}
|
|
5
|
+
export function computeVitality(params, lastAccessed, now) {
|
|
6
|
+
if (params.decayDays <= 0) {
|
|
7
|
+
return params.base;
|
|
8
|
+
}
|
|
9
|
+
const t = daysBetween(lastAccessed, now);
|
|
10
|
+
const v = params.base * Math.exp(-t / params.decayDays);
|
|
11
|
+
return Math.max(0, Math.min(params.base, v));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ACT-R base-level activation: B_i = ln(n/(1-d)) - d*ln(L)
|
|
15
|
+
* Normalized to 0-1 via sigmoid.
|
|
16
|
+
*
|
|
17
|
+
* @param accessCount - number of times the note was accessed (n)
|
|
18
|
+
* @param lifetimeDays - days since note creation (L)
|
|
19
|
+
* @param d - decay parameter, default 0.5
|
|
20
|
+
* @returns vitality score 0-1
|
|
21
|
+
*/
|
|
22
|
+
export function computeVitalityACTR(accessCount, lifetimeDays, d = 0.5) {
|
|
23
|
+
if (accessCount <= 0)
|
|
24
|
+
return 0.5; // cold start baseline
|
|
25
|
+
if (lifetimeDays <= 0)
|
|
26
|
+
return 1.0; // brand new note
|
|
27
|
+
// Clamp d to (0, 0.99) to keep (1 - d) positive
|
|
28
|
+
const dClamped = Math.max(0.01, Math.min(d, 0.99));
|
|
29
|
+
const B = Math.log(accessCount / (1 - dClamped)) - dClamped * Math.log(lifetimeDays);
|
|
30
|
+
// Sigmoid normalization to [0, 1]
|
|
31
|
+
return 1 / (1 + Math.exp(-B));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Structural stability boost from incoming links.
|
|
35
|
+
* Each link adds ~10% to effective stability, capped at 2x.
|
|
36
|
+
*/
|
|
37
|
+
export function computeStructuralBoost(inDegree) {
|
|
38
|
+
return 1 + 0.1 * Math.min(inDegree, 10);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Revival spike when a dormant note gets a new connection.
|
|
42
|
+
* Decays exponentially over 14 days.
|
|
43
|
+
*/
|
|
44
|
+
export function computeRevivalBoost(daysSinceNewConnection) {
|
|
45
|
+
if (daysSinceNewConnection === undefined || daysSinceNewConnection < 0)
|
|
46
|
+
return 0;
|
|
47
|
+
if (daysSinceNewConnection >= 14)
|
|
48
|
+
return 0;
|
|
49
|
+
return Math.exp(-0.2 * daysSinceNewConnection);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Access frequency saturation with diminishing returns.
|
|
53
|
+
* 10 accesses → ~63%, 20 → ~86%, 30 → ~95%.
|
|
54
|
+
*/
|
|
55
|
+
export function computeAccessSaturation(accessCount, k = 10) {
|
|
56
|
+
if (accessCount <= 0)
|
|
57
|
+
return 0;
|
|
58
|
+
return 1 - Math.exp(-accessCount / k);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Full vitality computation combining:
|
|
62
|
+
* 1. ACT-R base vitality
|
|
63
|
+
* 2. Metabolic rate (space-dependent decay multiplier)
|
|
64
|
+
* 3. Structural stability boost (well-linked notes decay slower)
|
|
65
|
+
* 4. Access frequency saturation
|
|
66
|
+
* 5. Revival spike for dormant notes gaining new connections
|
|
67
|
+
* 6. Bridge protection floor
|
|
68
|
+
*/
|
|
69
|
+
export function computeVitalityFull(params) {
|
|
70
|
+
const { accessCount, created, noteTitle, inDegree, bridges, metabolicRate = 1.0, daysSinceNewConnection, actrDecay = 0.5, accessSaturationK = 10, bridgeFloor = 0.5, } = params;
|
|
71
|
+
const createdDate = new Date(created);
|
|
72
|
+
const now = new Date();
|
|
73
|
+
const lifetimeDays = daysBetween(createdDate, now);
|
|
74
|
+
// 1. ACT-R base with metabolic-adjusted decay
|
|
75
|
+
const effectiveDecay = actrDecay * metabolicRate;
|
|
76
|
+
let vitality = computeVitalityACTR(accessCount, lifetimeDays, effectiveDecay);
|
|
77
|
+
// 2. Structural stability boost (stretches the effective half-life)
|
|
78
|
+
const structuralBoost = computeStructuralBoost(inDegree);
|
|
79
|
+
// Apply boost: higher boost = higher vitality (multiply and re-normalize)
|
|
80
|
+
vitality = vitality * structuralBoost;
|
|
81
|
+
// 3. Access saturation modulation
|
|
82
|
+
const saturation = computeAccessSaturation(accessCount, accessSaturationK);
|
|
83
|
+
// Blend: base vitality + saturation contribution
|
|
84
|
+
vitality = vitality * (0.5 + 0.5 * saturation);
|
|
85
|
+
// 4. Revival spike
|
|
86
|
+
const revival = computeRevivalBoost(daysSinceNewConnection);
|
|
87
|
+
vitality = vitality + revival * 0.2; // Revival adds up to 20% boost
|
|
88
|
+
// 5. Bridge protection floor
|
|
89
|
+
if (bridges.has(noteTitle)) {
|
|
90
|
+
vitality = Math.max(vitality, bridgeFloor);
|
|
91
|
+
}
|
|
92
|
+
// 6. Clamp to [0, 1]
|
|
93
|
+
return Math.max(0, Math.min(1, vitality));
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=vitality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitality.js","sourceRoot":"","sources":["../../src/core/vitality.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { runInit } from "./cli/init.js";
|
|
4
|
+
import { runStatus } from "./cli/status.js";
|
|
5
|
+
import { runHealth } from "./cli/health.js";
|
|
6
|
+
import { runQueryBacklinks, runQueryDangling, runQueryOrphans, runQueryCrossProject, } from "./cli/query.js";
|
|
7
|
+
import { runValidate } from "./cli/validate.js";
|
|
8
|
+
import { runAdd } from "./cli/add.js";
|
|
9
|
+
import { runPromote } from "./cli/promote.js";
|
|
10
|
+
import { runArchive } from "./cli/archive.js";
|
|
11
|
+
import { runBridgeClaudeCode, runBridgeClaudeCodeGlobal } from "./cli/bridge.js";
|
|
12
|
+
import { runServeMcp } from "./cli/serve.js";
|
|
13
|
+
const program = new Command();
|
|
14
|
+
program
|
|
15
|
+
.name("ori")
|
|
16
|
+
.description("Ori Mnemos - markdown-native cognitive harness for persistent agent memory")
|
|
17
|
+
.version("0.2.0");
|
|
18
|
+
program
|
|
19
|
+
.command("init")
|
|
20
|
+
.argument("[dir]", "target directory", ".")
|
|
21
|
+
.action(async (dir) => {
|
|
22
|
+
const result = await runInit({ targetDir: dir });
|
|
23
|
+
console.log(JSON.stringify({ success: true, data: result, warnings: [] }));
|
|
24
|
+
});
|
|
25
|
+
program
|
|
26
|
+
.command("status")
|
|
27
|
+
.action(async () => {
|
|
28
|
+
const result = await runStatus(process.cwd());
|
|
29
|
+
console.log(JSON.stringify(result));
|
|
30
|
+
});
|
|
31
|
+
program
|
|
32
|
+
.command("health")
|
|
33
|
+
.action(async () => {
|
|
34
|
+
const result = await runHealth(process.cwd());
|
|
35
|
+
console.log(JSON.stringify(result));
|
|
36
|
+
});
|
|
37
|
+
program
|
|
38
|
+
.command("query")
|
|
39
|
+
.argument("<kind>", "orphans | dangling | backlinks | cross-project")
|
|
40
|
+
.argument("[note]", "note title for backlinks")
|
|
41
|
+
.action(async (kind, note) => {
|
|
42
|
+
let result;
|
|
43
|
+
switch (kind) {
|
|
44
|
+
case "orphans":
|
|
45
|
+
result = await runQueryOrphans(process.cwd());
|
|
46
|
+
break;
|
|
47
|
+
case "dangling":
|
|
48
|
+
result = await runQueryDangling(process.cwd());
|
|
49
|
+
break;
|
|
50
|
+
case "backlinks":
|
|
51
|
+
if (!note) {
|
|
52
|
+
throw new Error("backlinks requires a note title");
|
|
53
|
+
}
|
|
54
|
+
result = await runQueryBacklinks(process.cwd(), note);
|
|
55
|
+
break;
|
|
56
|
+
case "cross-project":
|
|
57
|
+
result = await runQueryCrossProject(process.cwd());
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
throw new Error(`Unknown query kind: ${kind}`);
|
|
61
|
+
}
|
|
62
|
+
console.log(JSON.stringify(result));
|
|
63
|
+
});
|
|
64
|
+
program
|
|
65
|
+
.command("validate")
|
|
66
|
+
.argument("<note>", "path to note")
|
|
67
|
+
.action(async (note) => {
|
|
68
|
+
const result = await runValidate({ notePath: note });
|
|
69
|
+
console.log(JSON.stringify(result));
|
|
70
|
+
});
|
|
71
|
+
program
|
|
72
|
+
.command("add")
|
|
73
|
+
.argument("<title>", "note title")
|
|
74
|
+
.option("-t, --type <type>", "note type", "insight")
|
|
75
|
+
.action(async (title, options) => {
|
|
76
|
+
const result = await runAdd({ startDir: process.cwd(), title, type: options.type });
|
|
77
|
+
console.log(JSON.stringify(result));
|
|
78
|
+
});
|
|
79
|
+
program
|
|
80
|
+
.command("promote")
|
|
81
|
+
.argument("[note]", "inbox note filename or slug")
|
|
82
|
+
.option("--all", "promote all inbox notes")
|
|
83
|
+
.option("--dry-run", "preview without making changes")
|
|
84
|
+
.option("--no-auto", "skip LLM enhancement even if configured")
|
|
85
|
+
.option("-t, --type <type>", "override type classification")
|
|
86
|
+
.option("-d, --description <desc>", "override description")
|
|
87
|
+
.option("-l, --links <links...>", "additional wiki-links")
|
|
88
|
+
.option("-p, --project <projects...>", "project tags")
|
|
89
|
+
.action(async (note, options) => {
|
|
90
|
+
const result = await runPromote({
|
|
91
|
+
startDir: process.cwd(),
|
|
92
|
+
noteName: note,
|
|
93
|
+
all: options.all,
|
|
94
|
+
dryRun: options.dryRun,
|
|
95
|
+
noAuto: options.noAuto,
|
|
96
|
+
type: options.type,
|
|
97
|
+
description: options.description,
|
|
98
|
+
links: options.links,
|
|
99
|
+
project: options.project,
|
|
100
|
+
});
|
|
101
|
+
console.log(JSON.stringify(result));
|
|
102
|
+
});
|
|
103
|
+
program
|
|
104
|
+
.command("archive")
|
|
105
|
+
.option("--dry-run", "preview without making changes")
|
|
106
|
+
.action(async (options) => {
|
|
107
|
+
const result = await runArchive({
|
|
108
|
+
startDir: process.cwd(),
|
|
109
|
+
dryRun: options.dryRun,
|
|
110
|
+
});
|
|
111
|
+
console.log(JSON.stringify(result));
|
|
112
|
+
});
|
|
113
|
+
program
|
|
114
|
+
.command("bridge")
|
|
115
|
+
.argument("<target>", "claude-code")
|
|
116
|
+
.option("--global", "install hooks to ~/.claude/settings.json (all projects)")
|
|
117
|
+
.action(async (target, options) => {
|
|
118
|
+
if (target !== "claude-code") {
|
|
119
|
+
throw new Error(`Unknown bridge target: ${target}`);
|
|
120
|
+
}
|
|
121
|
+
const result = options.global
|
|
122
|
+
? await runBridgeClaudeCodeGlobal()
|
|
123
|
+
: await runBridgeClaudeCode(process.cwd());
|
|
124
|
+
console.log(JSON.stringify(result));
|
|
125
|
+
});
|
|
126
|
+
program
|
|
127
|
+
.command("serve")
|
|
128
|
+
.option("--mcp", "run MCP server")
|
|
129
|
+
.action(async (options) => {
|
|
130
|
+
if (!options.mcp) {
|
|
131
|
+
throw new Error("Only MCP server is supported: use --mcp");
|
|
132
|
+
}
|
|
133
|
+
await runServeMcp(process.cwd());
|
|
134
|
+
});
|
|
135
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
136
|
+
console.error(String(err));
|
|
137
|
+
process.exit(1);
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LlmProvider, VaultContext, EnhancementSuggestions } from "../core/llm.js";
|
|
2
|
+
export declare class AnthropicProvider implements LlmProvider {
|
|
3
|
+
private apiKey;
|
|
4
|
+
private model;
|
|
5
|
+
constructor(apiKey: string, model: string);
|
|
6
|
+
enhance(note: {
|
|
7
|
+
title: string;
|
|
8
|
+
body: string;
|
|
9
|
+
frontmatter: Record<string, unknown>;
|
|
10
|
+
}, context: VaultContext): Promise<EnhancementSuggestions>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAuBxB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKnC,OAAO,CACX,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,EACD,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,sBAAsB,CAAC;CAmEnC"}
|