@murphai/murph 0.1.13 → 0.1.15
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/CHANGELOG.md +26 -0
- package/README.md +2 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +19 -20
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge-cli-contracts.d.ts +2 -14
- package/dist/knowledge-cli-contracts.d.ts.map +1 -1
- package/dist/knowledge-cli-contracts.js +3 -8
- package/dist/knowledge-cli-contracts.js.map +1 -1
- package/dist/vault-cli-command-manifest.d.ts +2 -10
- package/dist/vault-cli-command-manifest.d.ts.map +1 -1
- package/dist/vault-cli-command-manifest.js +4 -4
- package/dist/vault-cli-command-manifest.js.map +1 -1
- package/package.json +13 -13
- package/dist/knowledge-documents.d.ts +0 -44
- package/dist/knowledge-documents.d.ts.map +0 -1
- package/dist/knowledge-documents.js +0 -195
- package/dist/knowledge-documents.js.map +0 -1
- package/dist/knowledge-lint.d.ts +0 -11
- package/dist/knowledge-lint.d.ts.map +0 -1
- package/dist/knowledge-lint.js +0 -254
- package/dist/knowledge-lint.js.map +0 -1
- package/dist/knowledge-runtime.d.ts +0 -49
- package/dist/knowledge-runtime.d.ts.map +0 -1
- package/dist/knowledge-runtime.js +0 -227
- package/dist/knowledge-runtime.js.map +0 -1
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { access, readFile, stat } from 'node:fs/promises';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { resolveAssistantVaultPath } from '@murphai/assistant-core';
|
|
4
|
-
import { loadIntegratedRuntime } from '@murphai/assistant-core/usecases/runtime';
|
|
5
|
-
import { VaultCliError } from '@murphai/assistant-core/vault-cli-errors';
|
|
6
|
-
import { DERIVED_KNOWLEDGE_INDEX_PATH, normalizeKnowledgeSlug, normalizeKnowledgeTag, orderedUniqueStrings, readDerivedKnowledgeGraph, readDerivedKnowledgeGraphWithIssues, renderDerivedKnowledgeIndex, searchDerivedKnowledgeVault, summarizeKnowledgeBody, } from '@murphai/query';
|
|
7
|
-
import { buildKnowledgeMarkdown, buildKnowledgePageRelativePath, deriveKnowledgeTitle, matchesKnowledgeFilter, normalizeKnowledgeBody, normalizeSourcePathInputs, toKnowledgeMetadata, toKnowledgePage, } from './knowledge-documents.js';
|
|
8
|
-
import {} from './knowledge-cli-contracts.js';
|
|
9
|
-
import { assertKnowledgeSourcePathAllowed, collectKnowledgeLintProblems, requireUniqueKnowledgePageBySlug, } from './knowledge-lint.js';
|
|
10
|
-
const DEFAULT_KNOWLEDGE_COMPILER = 'assistant';
|
|
11
|
-
const DEFAULT_KNOWLEDGE_PAGE_TYPE = 'concept';
|
|
12
|
-
const DEFAULT_KNOWLEDGE_STATUS = 'active';
|
|
13
|
-
export async function compileKnowledgePage(input, dependencies = {}) {
|
|
14
|
-
const now = dependencies.now ?? (() => new Date());
|
|
15
|
-
const savedAt = now().toISOString();
|
|
16
|
-
const saveText = dependencies.saveText ?? saveKnowledgeText;
|
|
17
|
-
const { graph } = await readDerivedKnowledgeGraphWithIssues(input.vault);
|
|
18
|
-
const initialTitle = deriveKnowledgeTitle({
|
|
19
|
-
prompt: input.prompt,
|
|
20
|
-
title: input.title,
|
|
21
|
-
});
|
|
22
|
-
const slug = normalizeKnowledgeSlug(input.slug ?? initialTitle);
|
|
23
|
-
const existingPage = requireUniqueKnowledgePageBySlug(graph, slug, 'compile');
|
|
24
|
-
const title = deriveKnowledgeTitle({
|
|
25
|
-
existingPage,
|
|
26
|
-
prompt: input.prompt,
|
|
27
|
-
slug,
|
|
28
|
-
title: input.title,
|
|
29
|
-
});
|
|
30
|
-
const pageType = resolveKnowledgeMetadataTag(input.pageType, existingPage?.pageType, DEFAULT_KNOWLEDGE_PAGE_TYPE);
|
|
31
|
-
const status = resolveKnowledgeMetadataTag(input.status, existingPage?.status, DEFAULT_KNOWLEDGE_STATUS);
|
|
32
|
-
const existingSourcePaths = existingPage?.sourcePaths ?? [];
|
|
33
|
-
const explicitSourcePaths = normalizeSourcePathInputs(input.sourcePaths);
|
|
34
|
-
const sourcePaths = await normalizeKnowledgeSourcePaths(input.vault, explicitSourcePaths.length > 0
|
|
35
|
-
? orderedUniqueStrings([...existingSourcePaths, ...explicitSourcePaths])
|
|
36
|
-
: existingSourcePaths);
|
|
37
|
-
const normalizedBody = normalizeKnowledgeBody(input.body, title);
|
|
38
|
-
const markdown = buildKnowledgeMarkdown({
|
|
39
|
-
body: normalizedBody,
|
|
40
|
-
compiledAt: savedAt,
|
|
41
|
-
compiler: DEFAULT_KNOWLEDGE_COMPILER,
|
|
42
|
-
mode: null,
|
|
43
|
-
pageType,
|
|
44
|
-
slug,
|
|
45
|
-
sourcePaths,
|
|
46
|
-
status,
|
|
47
|
-
summary: summarizeKnowledgeBody(normalizedBody),
|
|
48
|
-
title,
|
|
49
|
-
});
|
|
50
|
-
const pageRelativePath = buildKnowledgePageRelativePath(slug);
|
|
51
|
-
await saveText({
|
|
52
|
-
vault: input.vault,
|
|
53
|
-
relativePath: pageRelativePath,
|
|
54
|
-
content: markdown,
|
|
55
|
-
operationType: 'knowledge_page.write',
|
|
56
|
-
overwrite: true,
|
|
57
|
-
summary: `Compiled derived knowledge page "${title}".`,
|
|
58
|
-
});
|
|
59
|
-
const indexResult = await rebuildKnowledgeIndex({ vault: input.vault }, {
|
|
60
|
-
now: () => new Date(savedAt),
|
|
61
|
-
saveText,
|
|
62
|
-
});
|
|
63
|
-
const refreshedGraph = await readDerivedKnowledgeGraph(input.vault);
|
|
64
|
-
const page = requireUniqueKnowledgePageBySlug(refreshedGraph, slug, 'reload');
|
|
65
|
-
if (!page) {
|
|
66
|
-
throw new VaultCliError('knowledge_compile_failed', `Knowledge page "${slug}" was written but could not be reloaded from the derived knowledge graph.`);
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
vault: input.vault,
|
|
70
|
-
indexPath: indexResult.indexPath,
|
|
71
|
-
page: toKnowledgeMetadata(page),
|
|
72
|
-
prompt: input.prompt.trim(),
|
|
73
|
-
bodyLength: normalizedBody.length,
|
|
74
|
-
savedAt,
|
|
75
|
-
warnings: [],
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export async function searchKnowledgePages(input) {
|
|
79
|
-
const query = input.query.trim();
|
|
80
|
-
if (query.length === 0) {
|
|
81
|
-
throw new VaultCliError('knowledge_search_query_required', 'Knowledge search query must not be blank.');
|
|
82
|
-
}
|
|
83
|
-
const filters = normalizeKnowledgeFilters(input);
|
|
84
|
-
const result = await searchDerivedKnowledgeVault(input.vault, query, {
|
|
85
|
-
limit: input.limit ?? undefined,
|
|
86
|
-
pageType: filters.pageType,
|
|
87
|
-
status: filters.status,
|
|
88
|
-
});
|
|
89
|
-
return {
|
|
90
|
-
...result,
|
|
91
|
-
pageType: filters.pageType,
|
|
92
|
-
status: filters.status,
|
|
93
|
-
vault: input.vault,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
export async function listKnowledgePages(input) {
|
|
97
|
-
const graph = await readDerivedKnowledgeGraph(input.vault);
|
|
98
|
-
const filters = normalizeKnowledgeFilters(input);
|
|
99
|
-
const pages = graph.nodes
|
|
100
|
-
.filter((node) => matchesKnowledgeFilter(node.pageType, filters.pageType))
|
|
101
|
-
.filter((node) => matchesKnowledgeFilter(node.status, filters.status))
|
|
102
|
-
.map(toKnowledgeMetadata);
|
|
103
|
-
return {
|
|
104
|
-
pageCount: pages.length,
|
|
105
|
-
pageType: filters.pageType,
|
|
106
|
-
pages,
|
|
107
|
-
status: filters.status,
|
|
108
|
-
vault: input.vault,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
export async function showKnowledgePage(input, dependencies = {}) {
|
|
112
|
-
const graph = await readDerivedKnowledgeGraph(input.vault);
|
|
113
|
-
const page = requireUniqueKnowledgePageBySlug(graph, normalizeKnowledgeSlug(input.slug), 'show');
|
|
114
|
-
if (!page) {
|
|
115
|
-
throw new VaultCliError('knowledge_page_not_found', `No derived knowledge page exists for slug "${input.slug}".`);
|
|
116
|
-
}
|
|
117
|
-
const absolutePath = await resolveAssistantVaultPath(input.vault, page.relativePath, 'file path');
|
|
118
|
-
const markdown = await (dependencies.readTextFile ?? defaultReadTextFile)(absolutePath);
|
|
119
|
-
return {
|
|
120
|
-
page: toKnowledgePage(page, markdown),
|
|
121
|
-
vault: input.vault,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
export async function rebuildKnowledgeIndex(input, dependencies = {}) {
|
|
125
|
-
const graph = await readDerivedKnowledgeGraph(input.vault);
|
|
126
|
-
const now = dependencies.now ?? (() => new Date());
|
|
127
|
-
const indexMarkdown = renderDerivedKnowledgeIndex(graph, now().toISOString());
|
|
128
|
-
const saveText = dependencies.saveText ?? saveKnowledgeText;
|
|
129
|
-
await saveText({
|
|
130
|
-
vault: input.vault,
|
|
131
|
-
relativePath: DERIVED_KNOWLEDGE_INDEX_PATH,
|
|
132
|
-
content: indexMarkdown,
|
|
133
|
-
operationType: 'knowledge_index.write',
|
|
134
|
-
overwrite: true,
|
|
135
|
-
summary: 'Rebuilt the derived knowledge index.',
|
|
136
|
-
});
|
|
137
|
-
return {
|
|
138
|
-
indexPath: DERIVED_KNOWLEDGE_INDEX_PATH,
|
|
139
|
-
pageCount: graph.nodes.length,
|
|
140
|
-
pageTypes: orderedUniqueStrings(graph.nodes.flatMap((node) => (node.pageType ? [node.pageType] : []))),
|
|
141
|
-
rebuilt: true,
|
|
142
|
-
vault: input.vault,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
export async function lintKnowledgePages(input) {
|
|
146
|
-
const { graph, issues } = await readDerivedKnowledgeGraphWithIssues(input.vault);
|
|
147
|
-
const problems = await collectKnowledgeLintProblems({
|
|
148
|
-
graph,
|
|
149
|
-
issues,
|
|
150
|
-
pathExists: async (candidatePath) => knowledgePathExists(input.vault, candidatePath),
|
|
151
|
-
});
|
|
152
|
-
return {
|
|
153
|
-
ok: problems.every((problem) => problem.severity !== 'error'),
|
|
154
|
-
pageCount: graph.nodes.length,
|
|
155
|
-
problemCount: problems.length,
|
|
156
|
-
problems,
|
|
157
|
-
vault: input.vault,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
function normalizeKnowledgeFilters(input) {
|
|
161
|
-
return {
|
|
162
|
-
pageType: normalizeKnowledgeTag(input.pageType),
|
|
163
|
-
status: normalizeKnowledgeTag(input.status),
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
function resolveKnowledgeMetadataTag(preferredValue, fallbackValue, defaultValue) {
|
|
167
|
-
return (normalizeKnowledgeTag(preferredValue) ??
|
|
168
|
-
normalizeKnowledgeTag(fallbackValue) ??
|
|
169
|
-
defaultValue);
|
|
170
|
-
}
|
|
171
|
-
async function knowledgePathExists(vaultRoot, candidatePath) {
|
|
172
|
-
try {
|
|
173
|
-
const absolutePath = await resolveAssistantVaultPath(vaultRoot, candidatePath, 'file path');
|
|
174
|
-
await access(absolutePath);
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
async function normalizeKnowledgeSourcePaths(vaultRoot, sourcePaths) {
|
|
182
|
-
const normalizedSourcePaths = [];
|
|
183
|
-
for (const sourcePath of sourcePaths) {
|
|
184
|
-
const absolutePath = await resolveAssistantVaultPath(vaultRoot, sourcePath, 'file path');
|
|
185
|
-
const relativePath = toVaultRelativePath(vaultRoot, absolutePath);
|
|
186
|
-
assertKnowledgeSourcePathAllowed(relativePath);
|
|
187
|
-
try {
|
|
188
|
-
const stats = await stat(absolutePath);
|
|
189
|
-
if (!stats.isFile()) {
|
|
190
|
-
throw new Error('Path is not a file.');
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
throw new VaultCliError('knowledge_source_unreadable', `Could not read knowledge source path "${sourcePath}".`, {
|
|
195
|
-
cause: error instanceof Error && error.message.length > 0
|
|
196
|
-
? error.message
|
|
197
|
-
: String(error),
|
|
198
|
-
sourcePath,
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
normalizedSourcePaths.push(relativePath);
|
|
202
|
-
}
|
|
203
|
-
return orderedUniqueStrings(normalizedSourcePaths);
|
|
204
|
-
}
|
|
205
|
-
async function saveKnowledgeText(input) {
|
|
206
|
-
const runtime = await loadIntegratedRuntime();
|
|
207
|
-
await runtime.core.applyCanonicalWriteBatch({
|
|
208
|
-
vaultRoot: input.vault,
|
|
209
|
-
operationType: input.operationType,
|
|
210
|
-
summary: input.summary,
|
|
211
|
-
textWrites: [
|
|
212
|
-
{
|
|
213
|
-
relativePath: input.relativePath,
|
|
214
|
-
content: input.content,
|
|
215
|
-
overwrite: input.overwrite,
|
|
216
|
-
},
|
|
217
|
-
],
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
function defaultReadTextFile(filePath) {
|
|
221
|
-
return readFile(filePath, 'utf8');
|
|
222
|
-
}
|
|
223
|
-
function toVaultRelativePath(vaultRoot, absolutePath) {
|
|
224
|
-
const relativePath = path.relative(path.resolve(vaultRoot), absolutePath);
|
|
225
|
-
return relativePath.split(path.sep).join(path.posix.sep);
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=knowledge-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-runtime.js","sourceRoot":"","sources":["../src/knowledge-runtime.ts"],"names":[],"mappings":"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"}
|