@tangle-network/agent-knowledge 18.0.0 → 19.0.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/CHANGELOG.md +9 -0
- package/README.md +11 -1
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -213
- package/dist/index.js.map +1 -1
- package/dist/{inspect-BVT9JWDL.js → inspect-C6YK7af7.js} +245 -3
- package/dist/inspect-C6YK7af7.js.map +1 -0
- package/package.json +1 -1
- package/dist/inspect-BVT9JWDL.js.map +0 -1
|
@@ -3,6 +3,7 @@ import { r as searchKnowledge } from "./search-Cbyj2shJ.js";
|
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import { lstat, mkdir, mkdtemp, open, readFile, readdir, realpath, rename, rm } from "node:fs/promises";
|
|
5
5
|
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
6
|
+
import { canonicalCandidateBytes, canonicalCandidateDigest, sha256Bytes, sha256DigestSchema } from "@tangle-network/agent-interface";
|
|
6
7
|
import { contentHash } from "@tangle-network/agent-eval";
|
|
7
8
|
import { z } from "zod";
|
|
8
9
|
import { constants } from "node:fs";
|
|
@@ -400,6 +401,8 @@ const transactionSchema = z.object({
|
|
|
400
401
|
transactionId: z.string().uuid(),
|
|
401
402
|
purpose: z.string().min(1),
|
|
402
403
|
recoveryOwner: z.string().min(1).max(256).optional(),
|
|
404
|
+
actorId: z.string().trim().min(1).max(256).nullable().optional(),
|
|
405
|
+
runId: z.string().trim().min(1).max(256).nullable().optional(),
|
|
403
406
|
pagesDirectory: pagesDirectorySchema.optional(),
|
|
404
407
|
researchState: z.boolean().optional(),
|
|
405
408
|
retainHistory: z.boolean().optional(),
|
|
@@ -429,6 +432,10 @@ async function prepareKnowledgeFileTransaction(input) {
|
|
|
429
432
|
if (mutation.content === null && mutation.mode !== void 0) throw new Error(`deleted knowledge file cannot declare a mode: ${path}`);
|
|
430
433
|
paths.add(path);
|
|
431
434
|
const before = await withSafeDescendant(input.root, path, readRegularFile);
|
|
435
|
+
if (mutation.expectedBeforeHash !== void 0) {
|
|
436
|
+
const expected = digestSchema.nullable().parse(mutation.expectedBeforeHash);
|
|
437
|
+
if ((before ? hashBytes(before.bytes) : null) !== expected) throw new Error(`knowledge file changed before transaction: ${path}`);
|
|
438
|
+
}
|
|
432
439
|
const after = mutation.content === null ? null : Buffer.isBuffer(mutation.content) ? mutation.content : Buffer.from(mutation.content, "utf8");
|
|
433
440
|
const afterMode = after ? fileModeSchema.parse(mutation.mode ?? before?.mode ?? DEFAULT_FILE_MODE) : void 0;
|
|
434
441
|
if (!input.includeUnchanged && sameBytes(before?.bytes ?? null, after) && before?.mode === afterMode) return null;
|
|
@@ -457,6 +464,8 @@ async function prepareKnowledgeFileTransaction(input) {
|
|
|
457
464
|
kind: "knowledge-file-transaction",
|
|
458
465
|
transactionId: randomUUID(),
|
|
459
466
|
purpose: input.purpose,
|
|
467
|
+
actorId: input.actorId ?? null,
|
|
468
|
+
runId: input.runId ?? null,
|
|
460
469
|
...input.recoveryOwner ? { recoveryOwner: input.recoveryOwner } : {},
|
|
461
470
|
...pagesDirectory === void 0 ? {} : { pagesDirectory },
|
|
462
471
|
...input.researchState === void 0 ? {} : { researchState: input.researchState },
|
|
@@ -494,6 +503,8 @@ async function commitKnowledgeFileMutations(input) {
|
|
|
494
503
|
root: input.root,
|
|
495
504
|
transactionRoot: input.transactionRoot,
|
|
496
505
|
purpose: input.purpose,
|
|
506
|
+
actorId: input.actorId,
|
|
507
|
+
runId: input.runId,
|
|
497
508
|
mutations: input.mutations,
|
|
498
509
|
...input.researchState === void 0 ? {} : { researchState: input.researchState },
|
|
499
510
|
...input.retainHistory === void 0 ? {} : { retainHistory: input.retainHistory },
|
|
@@ -3622,6 +3633,212 @@ function round(value) {
|
|
|
3622
3633
|
return Math.round(value * 1e6) / 1e6;
|
|
3623
3634
|
}
|
|
3624
3635
|
//#endregion
|
|
3636
|
+
//#region src/knowledge-visibility.ts
|
|
3637
|
+
const KNOWLEDGE_USE_RECEIPT_SCHEMA_VERSION = "2.0.0";
|
|
3638
|
+
const KNOWLEDGE_RECEIPT_DIGEST_ALGORITHM = "rfc8785-sha256";
|
|
3639
|
+
/** Stable content identity for one exact knowledge page. */
|
|
3640
|
+
function knowledgePageDigest(page) {
|
|
3641
|
+
validateKnowledgePage(page);
|
|
3642
|
+
return canonicalCandidateDigest({
|
|
3643
|
+
id: page.id,
|
|
3644
|
+
path: page.path,
|
|
3645
|
+
title: page.title,
|
|
3646
|
+
text: page.text,
|
|
3647
|
+
frontmatter: page.frontmatter,
|
|
3648
|
+
sourceIds: [...page.sourceIds],
|
|
3649
|
+
tags: [...page.tags],
|
|
3650
|
+
outLinks: [...page.outLinks],
|
|
3651
|
+
contradicts: [...page.contradicts ?? []],
|
|
3652
|
+
invalidation: page.invalidation ?? null
|
|
3653
|
+
});
|
|
3654
|
+
}
|
|
3655
|
+
/** Snapshot the exact ordered current/ancestor/shared page view. */
|
|
3656
|
+
function createKnowledgeVisibilitySnapshot(visiblePages) {
|
|
3657
|
+
if (!Array.isArray(visiblePages)) throw new TypeError("knowledge visibility must be an array");
|
|
3658
|
+
const identities = /* @__PURE__ */ new Set();
|
|
3659
|
+
const entries = visiblePages.map((entry, position) => {
|
|
3660
|
+
if (!entry || typeof entry !== "object") throw new TypeError(`knowledge visibility[${position}] must be an originated page`);
|
|
3661
|
+
const origin = validateOrigin(entry.origin, `knowledge visibility[${position}].origin`);
|
|
3662
|
+
validateKnowledgePage(entry.page);
|
|
3663
|
+
const identity = visibilityIdentity(origin, entry.page.path);
|
|
3664
|
+
if (identities.has(identity)) throw new Error(`knowledge visibility repeats path '${entry.page.path}' at origin '${origin}'`);
|
|
3665
|
+
identities.add(identity);
|
|
3666
|
+
return Object.freeze({
|
|
3667
|
+
position,
|
|
3668
|
+
pageId: entry.page.id,
|
|
3669
|
+
origin,
|
|
3670
|
+
path: entry.page.path,
|
|
3671
|
+
pageDigest: knowledgePageDigest(entry.page),
|
|
3672
|
+
sourceIds: Object.freeze([...entry.page.sourceIds]),
|
|
3673
|
+
invalidated: entry.page.invalidation !== void 0
|
|
3674
|
+
});
|
|
3675
|
+
});
|
|
3676
|
+
const material = visibilityMaterial(entries);
|
|
3677
|
+
const snapshot = Object.freeze({
|
|
3678
|
+
...material,
|
|
3679
|
+
snapshotDigest: canonicalCandidateDigest(material),
|
|
3680
|
+
entries: Object.freeze(entries)
|
|
3681
|
+
});
|
|
3682
|
+
visibilityIndexes.set(snapshot, indexVisibility(snapshot));
|
|
3683
|
+
return snapshot;
|
|
3684
|
+
}
|
|
3685
|
+
/**
|
|
3686
|
+
* Verify a snapshot's schema and canonical digest. The check runs once per
|
|
3687
|
+
* snapshot object; later calls with the same object are free.
|
|
3688
|
+
*/
|
|
3689
|
+
function verifyKnowledgeVisibilitySnapshot(snapshot) {
|
|
3690
|
+
return visibilityIndexOf(snapshot).snapshot;
|
|
3691
|
+
}
|
|
3692
|
+
/** Canonical bytes of a verified snapshot, for durable storage. */
|
|
3693
|
+
function encodeKnowledgeVisibilitySnapshot(snapshot) {
|
|
3694
|
+
const verified = verifyKnowledgeVisibilitySnapshot(snapshot);
|
|
3695
|
+
return canonicalCandidateBytes({
|
|
3696
|
+
schemaVersion: verified.schemaVersion,
|
|
3697
|
+
digestAlgorithm: verified.digestAlgorithm,
|
|
3698
|
+
snapshotDigest: verified.snapshotDigest,
|
|
3699
|
+
entries: visibilityMaterial(verified.entries).entries
|
|
3700
|
+
});
|
|
3701
|
+
}
|
|
3702
|
+
/** Parse stored snapshot bytes and verify their schema and digest. */
|
|
3703
|
+
function decodeKnowledgeVisibilitySnapshot(bytes) {
|
|
3704
|
+
if (!(bytes instanceof Uint8Array)) throw new TypeError("knowledge visibility snapshot bytes must be a Uint8Array");
|
|
3705
|
+
let parsed;
|
|
3706
|
+
try {
|
|
3707
|
+
parsed = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
|
|
3708
|
+
} catch (error) {
|
|
3709
|
+
throw new Error(`knowledge visibility snapshot bytes are not JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
3710
|
+
}
|
|
3711
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new TypeError("knowledge visibility snapshot must be an object");
|
|
3712
|
+
const candidate = parsed;
|
|
3713
|
+
if (!Array.isArray(candidate.entries)) throw new TypeError("knowledge visibility snapshot entries must be an array");
|
|
3714
|
+
return verifyKnowledgeVisibilitySnapshot(Object.freeze({
|
|
3715
|
+
schemaVersion: candidate.schemaVersion,
|
|
3716
|
+
digestAlgorithm: candidate.digestAlgorithm,
|
|
3717
|
+
snapshotDigest: digest(candidate.snapshotDigest, "knowledge visibility snapshotDigest"),
|
|
3718
|
+
entries: Object.freeze(candidate.entries.map((entry, position) => {
|
|
3719
|
+
if (!entry || typeof entry !== "object") throw new TypeError(`knowledge visibility[${position}] must be an object`);
|
|
3720
|
+
const value = entry;
|
|
3721
|
+
if (!Array.isArray(value.sourceIds)) throw new TypeError(`knowledge visibility[${position}].sourceIds must be an array`);
|
|
3722
|
+
return Object.freeze({
|
|
3723
|
+
position: value.position,
|
|
3724
|
+
pageId: value.pageId,
|
|
3725
|
+
origin: value.origin,
|
|
3726
|
+
path: value.path,
|
|
3727
|
+
pageDigest: value.pageDigest,
|
|
3728
|
+
sourceIds: Object.freeze([...value.sourceIds]),
|
|
3729
|
+
invalidated: value.invalidated
|
|
3730
|
+
});
|
|
3731
|
+
}))
|
|
3732
|
+
}));
|
|
3733
|
+
}
|
|
3734
|
+
/** Locator for snapshot bytes stored at `uri`. */
|
|
3735
|
+
function knowledgeVisibilityArtifactRef(input) {
|
|
3736
|
+
if (!input || typeof input !== "object" || !(input.bytes instanceof Uint8Array)) throw new TypeError("knowledge visibility artifact bytes must be a Uint8Array");
|
|
3737
|
+
if (input.bytes.byteLength === 0) throw new TypeError("knowledge visibility artifact bytes must not be empty");
|
|
3738
|
+
return Object.freeze({
|
|
3739
|
+
uri: nonEmpty(input.uri, "knowledge visibility artifact uri"),
|
|
3740
|
+
digest: sha256Bytes(input.bytes),
|
|
3741
|
+
byteLength: input.bytes.byteLength
|
|
3742
|
+
});
|
|
3743
|
+
}
|
|
3744
|
+
const visibilityIndexes = /* @__PURE__ */ new WeakMap();
|
|
3745
|
+
function visibilityIndexOf(snapshot) {
|
|
3746
|
+
if (!snapshot || typeof snapshot !== "object") throw new TypeError("knowledge visibility snapshot is required");
|
|
3747
|
+
const cached = visibilityIndexes.get(snapshot);
|
|
3748
|
+
if (cached !== void 0) return cached;
|
|
3749
|
+
assertSchemaVersion(snapshot.schemaVersion, "knowledge visibility");
|
|
3750
|
+
if (snapshot.digestAlgorithm !== "rfc8785-sha256") throw new Error(`unsupported knowledge visibility digestAlgorithm '${snapshot.digestAlgorithm}'`);
|
|
3751
|
+
if (!Array.isArray(snapshot.entries)) throw new TypeError("knowledge visibility snapshot entries must be an array");
|
|
3752
|
+
if (canonicalCandidateDigest(visibilityMaterial(snapshot.entries)) !== digest(snapshot.snapshotDigest, "knowledge visibility snapshotDigest")) throw new Error("knowledge visibility snapshot digest mismatch");
|
|
3753
|
+
const index = indexVisibility(snapshot);
|
|
3754
|
+
visibilityIndexes.set(snapshot, index);
|
|
3755
|
+
return index;
|
|
3756
|
+
}
|
|
3757
|
+
function indexVisibility(snapshot) {
|
|
3758
|
+
const byIdentity = /* @__PURE__ */ new Map();
|
|
3759
|
+
for (const entry of snapshot.entries) {
|
|
3760
|
+
const identity = visibilityIdentity(entry.origin, entry.path);
|
|
3761
|
+
if (byIdentity.has(identity)) throw new Error(`knowledge visibility repeats path '${entry.path}' at origin '${entry.origin}'`);
|
|
3762
|
+
byIdentity.set(identity, entry);
|
|
3763
|
+
}
|
|
3764
|
+
return {
|
|
3765
|
+
snapshot,
|
|
3766
|
+
byIdentity
|
|
3767
|
+
};
|
|
3768
|
+
}
|
|
3769
|
+
function visibilityIdentity(origin, path) {
|
|
3770
|
+
return `${origin}\u0000${path}`;
|
|
3771
|
+
}
|
|
3772
|
+
function assertSchemaVersion(value, label) {
|
|
3773
|
+
if (value === "2.0.0") return;
|
|
3774
|
+
throw new Error(`unsupported ${label} schemaVersion '${String(value)}'${value === "1.0.0" ? "; 1.0.0 records embed the visibility snapshot and have no reader, create a 2.0.0 record from the snapshot" : ""}`);
|
|
3775
|
+
}
|
|
3776
|
+
function visibilityMaterial(entries) {
|
|
3777
|
+
return {
|
|
3778
|
+
schemaVersion: KNOWLEDGE_USE_RECEIPT_SCHEMA_VERSION,
|
|
3779
|
+
digestAlgorithm: KNOWLEDGE_RECEIPT_DIGEST_ALGORITHM,
|
|
3780
|
+
entries: entries.map((entry, position) => {
|
|
3781
|
+
if (!entry || typeof entry !== "object") throw new TypeError(`knowledge visibility[${position}] must be an object`);
|
|
3782
|
+
if (entry.position !== position) throw new Error(`knowledge visibility position mismatch: expected ${position}, observed ${entry.position}`);
|
|
3783
|
+
if (!Array.isArray(entry.sourceIds)) throw new TypeError(`knowledge visibility[${position}].sourceIds must be an array`);
|
|
3784
|
+
return {
|
|
3785
|
+
position,
|
|
3786
|
+
pageId: nonEmpty(entry.pageId, `knowledge visibility[${position}].pageId`),
|
|
3787
|
+
origin: validateOrigin(entry.origin, `knowledge visibility[${position}].origin`),
|
|
3788
|
+
path: nonEmpty(entry.path, `knowledge visibility[${position}].path`),
|
|
3789
|
+
pageDigest: digest(entry.pageDigest, `knowledge visibility[${position}].pageDigest`),
|
|
3790
|
+
sourceIds: entry.sourceIds.map((sourceId, sourceIndex) => nonEmpty(sourceId, `knowledge visibility[${position}].sourceIds[${sourceIndex}]`)),
|
|
3791
|
+
invalidated: Boolean(entry.invalidated)
|
|
3792
|
+
};
|
|
3793
|
+
})
|
|
3794
|
+
};
|
|
3795
|
+
}
|
|
3796
|
+
function normalizeVisibilityRef(input) {
|
|
3797
|
+
if (!input || typeof input !== "object") throw new TypeError("knowledge retrieval visibility reference is required");
|
|
3798
|
+
if (!Number.isSafeInteger(input.pageCount) || input.pageCount < 0) throw new TypeError("knowledge retrieval visibility pageCount must be a non-negative integer");
|
|
3799
|
+
return Object.freeze({
|
|
3800
|
+
snapshotDigest: digest(input.snapshotDigest, "knowledge retrieval visibility snapshotDigest"),
|
|
3801
|
+
pageCount: input.pageCount,
|
|
3802
|
+
...input.artifact === void 0 ? {} : { artifact: normalizeVisibilityArtifact(input.artifact, "knowledge retrieval visibility artifact") }
|
|
3803
|
+
});
|
|
3804
|
+
}
|
|
3805
|
+
function normalizeVisibilityArtifact(input, label) {
|
|
3806
|
+
if (!input || typeof input !== "object") throw new TypeError(`${label} must be an object`);
|
|
3807
|
+
if (!Number.isSafeInteger(input.byteLength) || input.byteLength < 1) throw new TypeError(`${label} byteLength must be a positive integer`);
|
|
3808
|
+
return Object.freeze({
|
|
3809
|
+
uri: nonEmpty(input.uri, `${label} uri`),
|
|
3810
|
+
digest: digest(input.digest, `${label} digest`),
|
|
3811
|
+
byteLength: input.byteLength
|
|
3812
|
+
});
|
|
3813
|
+
}
|
|
3814
|
+
function validateKnowledgePage(page) {
|
|
3815
|
+
if (!page || typeof page !== "object") throw new TypeError("knowledge page must be an object");
|
|
3816
|
+
nonEmpty(page.id, "knowledge page id");
|
|
3817
|
+
nonEmpty(page.path, "knowledge page path");
|
|
3818
|
+
nonEmpty(page.title, "knowledge page title");
|
|
3819
|
+
if (typeof page.text !== "string") throw new TypeError("knowledge page text must be a string");
|
|
3820
|
+
if (!page.frontmatter || typeof page.frontmatter !== "object" || Array.isArray(page.frontmatter)) throw new TypeError("knowledge page frontmatter must be an object");
|
|
3821
|
+
for (const [name, values] of [
|
|
3822
|
+
["sourceIds", page.sourceIds],
|
|
3823
|
+
["tags", page.tags],
|
|
3824
|
+
["outLinks", page.outLinks]
|
|
3825
|
+
]) if (!Array.isArray(values) || values.some((value) => typeof value !== "string")) throw new TypeError(`knowledge page ${name} must be a string array`);
|
|
3826
|
+
}
|
|
3827
|
+
function validateOrigin(value, label) {
|
|
3828
|
+
if (value === "here" || value === "shared") return value;
|
|
3829
|
+
if (typeof value === "string" && value.startsWith("inherited:") && value.slice(10).trim().length > 0) return value;
|
|
3830
|
+
throw new TypeError(`${label} is invalid: ${String(value)}`);
|
|
3831
|
+
}
|
|
3832
|
+
function digest(value, label) {
|
|
3833
|
+
const parsed = sha256DigestSchema.safeParse(value);
|
|
3834
|
+
if (!parsed.success) throw new TypeError(`${label} must be a lowercase sha256 digest`);
|
|
3835
|
+
return parsed.data;
|
|
3836
|
+
}
|
|
3837
|
+
function nonEmpty(value, label) {
|
|
3838
|
+
if (typeof value !== "string" || value.trim().length === 0) throw new TypeError(`${label} must be a non-empty string`);
|
|
3839
|
+
return value.trim();
|
|
3840
|
+
}
|
|
3841
|
+
//#endregion
|
|
3625
3842
|
//#region src/run-scoped.ts
|
|
3626
3843
|
/**
|
|
3627
3844
|
* Run-scoped knowledge stores with lineage-chain reads.
|
|
@@ -3961,7 +4178,13 @@ function parseKnowledgeWriteBlocks(text, allowedPrefixes = ["knowledge/"]) {
|
|
|
3961
4178
|
async function applyKnowledgeWriteBlocks(root, proposalText, options = {}) {
|
|
3962
4179
|
const pagesDirectory = normalizePagesDirectory(options.pagesDirectory);
|
|
3963
4180
|
const parsed = parseKnowledgeWriteBlocks(proposalText, [`${pagesDirectory}/`]);
|
|
3964
|
-
const
|
|
4181
|
+
const identity = options.actorId === void 0 && options.runId === void 0 && options.expectedPageDigests === void 0 ? parsed.blocks : {
|
|
4182
|
+
blocks: parsed.blocks,
|
|
4183
|
+
actorId: options.actorId ?? null,
|
|
4184
|
+
runId: options.runId ?? null,
|
|
4185
|
+
expectedPageDigests: options.expectedPageDigests ?? null
|
|
4186
|
+
};
|
|
4187
|
+
const purpose = "knowledge-proposal:" + contentHash(identity);
|
|
3965
4188
|
const intake = options.intake;
|
|
3966
4189
|
return withKnowledgeMutation(root, async (lock) => {
|
|
3967
4190
|
if (parsed.blocks.length > 0) {
|
|
@@ -3969,6 +4192,23 @@ async function applyKnowledgeWriteBlocks(root, proposalText, options = {}) {
|
|
|
3969
4192
|
path: block.path,
|
|
3970
4193
|
content: block.content.endsWith("\n") ? block.content : `${block.content}\n`
|
|
3971
4194
|
}));
|
|
4195
|
+
if (options.expectedPageDigests !== void 0) {
|
|
4196
|
+
const paths = new Set(mutations.map((mutation) => mutation.path));
|
|
4197
|
+
for (const path of Object.keys(options.expectedPageDigests)) if (!paths.has(path)) throw new Error(`Expected digest has no proposed page: ${path}`);
|
|
4198
|
+
for (const mutation of mutations) {
|
|
4199
|
+
let before;
|
|
4200
|
+
try {
|
|
4201
|
+
before = await readRegularFileWithinRoot(root, mutation.path);
|
|
4202
|
+
} catch (error) {
|
|
4203
|
+
if (!isMissingFile(error)) throw error;
|
|
4204
|
+
}
|
|
4205
|
+
const current = before === void 0 ? null : knowledgePageDigest(knowledgePageFromMarkdown(mutation.path, Buffer.from(before.bytes).toString("utf8"), pagesDirectory));
|
|
4206
|
+
const expected = Object.hasOwn(options.expectedPageDigests, mutation.path) ? options.expectedPageDigests[mutation.path] : null;
|
|
4207
|
+
if (expected !== null && !/^sha256:[a-f0-9]{64}$/.test(expected ?? "")) throw new Error(`Invalid expected page digest: ${mutation.path}`);
|
|
4208
|
+
if (current !== expected && !(!(Object.hasOwn(options.expectedPageDigests, mutation.path) && expected === null) && before !== void 0 && Buffer.from(before.bytes).equals(Buffer.from(mutation.content ?? "")))) throw new Error(`knowledge page changed: ${mutation.path}; current digest: ${current ?? "absent"}. Read the current page before editing it.`);
|
|
4209
|
+
mutation.expectedBeforeHash = before === void 0 ? null : createHash("sha256").update(before.bytes).digest("hex");
|
|
4210
|
+
}
|
|
4211
|
+
}
|
|
3972
4212
|
if (intake) {
|
|
3973
4213
|
const { inheritedPages = [], ...settings } = intake;
|
|
3974
4214
|
const here = await loadKnowledgePages(root, { pagesDirectory });
|
|
@@ -3981,6 +4221,8 @@ async function applyKnowledgeWriteBlocks(root, proposalText, options = {}) {
|
|
|
3981
4221
|
root,
|
|
3982
4222
|
transactionRoot: lock.transactionRoot,
|
|
3983
4223
|
purpose,
|
|
4224
|
+
actorId: options.actorId,
|
|
4225
|
+
runId: options.runId,
|
|
3984
4226
|
mutations,
|
|
3985
4227
|
pagesDirectory,
|
|
3986
4228
|
retainHistory: options.retainHistory,
|
|
@@ -4074,6 +4316,6 @@ function explainKnowledgeTarget(index, target) {
|
|
|
4074
4316
|
};
|
|
4075
4317
|
}
|
|
4076
4318
|
//#endregion
|
|
4077
|
-
export {
|
|
4319
|
+
export { FileSystemKbStore as $, assertResearchClaimEvidenceIntegrity as $t, visibilityIndexOf as A, normalizePagesDirectory as An, WIKILINK_REGEX as At, gradeClaims as B, renameDurable as Bn, KnowledgePageSchema as Bt, nonEmpty as C, assertKnowledgeMutationPath as Cn, initKnowledgeBase as Ct, validateOrigin as D, prepareKnowledgeFileTransaction as Dn, layoutFor as Dt, validateKnowledgePage as E, knowledgeFileTransactionPlanHash as En, knowledgePageFromMarkdown as Et, CHECKABLE_RUNG_THRESHOLD as F, listRegularFilesWithinRoot as Fn, KnowledgeEventSchema as Ft, writeKnowledgeIndex as G, writeFileDurableWithinRoot as Gn, ResearchClaimLedgerSchema as Gt, verdictFor as H, withSafeDescendant as Hn, KnowledgeRelationNodeSchema as Ht, DEADLINE_EXIT_CODE as I, readRegularFileNoFollow as In, KnowledgeGraphEdgeSchema as It, loadSourceRegistry as J, mediaTypeFor$1 as Jn, SourceAnchorSchema as Jt, addSourcePath as K, writeJsonDurable as Kn, ResearchClaimRecordSchema as Kt, UncheckableClaimError as L, readRegularFileWithinRoot as Ln, KnowledgeGraphNodeSchema as Lt, normalizePageText as M, canonicalRelativeWithinRoot as Mn, normalizeLinkTarget as Mt, validateKnowledgeIndex as N, isKernelAnchoredPath as Nn, DeepQuestionSchema as Nt, verifyKnowledgeVisibilitySnapshot as O, rollbackKnowledgeFileTransaction as On, loadKnowledgePages as Ot, lintKnowledgeIndex as P, isMissingFile as Pn, KnowledgeBaseCandidateSchema as Pt, ClaimLedgerMigrationRequiredError as Q, assertDeepQuestionIntegrity as Qt, assertGradeableEvidence as R, relativeWithinRoot as Rn, KnowledgeIndexSchema as Rt, knowledgeVisibilityArtifactRef as S, applyKnowledgeFileTransaction as Sn, SCAFFOLD_PAGE_BASENAMES as St, normalizeVisibilityRef as T, finishKnowledgeFileTransaction as Tn, isScaffoldPath as Tt, verifyGradeableEvidence as U, withSafeDirectory as Un, KnowledgeRelationSchema as Ut, gradeFor as V, syncDirectory as Vn, KnowledgeRelationGraphSchema as Vt, buildKnowledgeIndex as W, writeFileDurable as Wn, ResearchClaimEvidenceSchema as Wt, sourceRegistryPath as X, KNOWLEDGE_EVENT_TYPES as Xt, snapshotSourceTextInput as Y, textSourceAdapter as Yn, SourceRecordSchema as Yt, writeSourceRegistry as Z, ClaimLedgerGoalConflictError as Zt, createKnowledgeVisibilitySnapshot as _, isKnowledgeMutationHeld as _n, parseKnowledgeCitationReference as _t, applyKnowledgeWriteBlocksFile as a, deepQuestionId as an, assertClaimLedgerId as at, encodeKnowledgeVisibilitySnapshot as b, withKnowledgeMutation as bn, resolveRunScopedCitation as bt, KnowledgeDuplicateIntakeError as c, materializeRegisteredClaimEvidence as cn, KnowledgeCitationAuditError as ct, createFileRunLineageAuthority as d, normalizeClaimText as dn, assertKnowledgeCitationAudit as dt, assertResearchClaimLedgerIntegrity as en, KB_CLAIM_LEDGER_DIR as et, createRunScopedStores as f, researchSourceVersionKey as fn, assertKnowledgeCitationsResolved as ft, assertSchemaVersion as g, inspectPendingKnowledgeMutation as gn, formatKnowledgeCitationReference as gt, KNOWLEDGE_USE_RECEIPT_SCHEMA_VERSION as h, acquireDurableFileLock as hn, auditKnowledgeCitations as ht, applyKnowledgeWriteBlocks as i, claimSourceHost as in, MemoryKbStore as it, detectNearDuplicatePages as j, canonicalPathsEqual as jn, extractWikilinks as jt, visibilityIdentity as k, DEFAULT_PAGES_DIRECTORY as kn, writeJson as kt, assertKnowledgeWriteIntake as l, mergeClaimLedgers as ln, KnowledgeCitationResolutionError as lt, KNOWLEDGE_RECEIPT_DIGEST_ALGORITHM as m, parseFrontmatter as mn, auditCurrentRunCitations as mt, inspectKnowledgeIndex as n, claimEvidenceId as nn, KB_INDEX_PATH as nt, isSafeKnowledgePath as o, emptyClaimLedger as on, buildKnowledgeGraph as ot, originatedPages as p, formatFrontmatter as pn, assertRunScopedCitationsResolved as pt, addSourceText as q, writeJsonDurableWithinRoot as qn, ResearchSourceVersionSchema as qt, stringMetadata as r, claimId as rn, KB_STORE_DIR as rt, parseKnowledgeWriteBlocks as s, linkClaimContradictions as sn, knowledgePageRelations as st, explainKnowledgeTarget as t, assertTrackedClaimIntegrity as tn, KB_EVENTS_PATH as tt, RUN_LINEAGE_BASENAME as u, mergeTrackedClaims as un, assertCurrentRunCitationsResolved as ut, decodeKnowledgeVisibilitySnapshot as v, recoverPendingKnowledgeMutation as vn, resolveKnowledgeCitation as vt, normalizeVisibilityArtifact as w, commitKnowledgeFileMutations as wn, isKnowledgePagePath as wt, knowledgePageDigest as x, withKnowledgeRead as xn, resolveRunScopedCitations as xt, digest as y, runInKnowledgeMutationScope as yn, resolveKnowledgeCitations as yt, claimCheckKey as z, removeDurable as zn, KnowledgePageInvalidationSchema as zt };
|
|
4078
4320
|
|
|
4079
|
-
//# sourceMappingURL=inspect-
|
|
4321
|
+
//# sourceMappingURL=inspect-C6YK7af7.js.map
|