@tenphi/akno-core 0.12.0 → 0.13.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/config/default.jsonc +12 -2
- package/dist/bench/graph.d.ts +2 -0
- package/dist/bench/graph.d.ts.map +1 -1
- package/dist/bench/graph.js +4 -0
- package/dist/bench/graph.js.map +1 -1
- package/dist/bench/language-corpus-v10.d.ts +4 -0
- package/dist/bench/language-corpus-v10.d.ts.map +1 -0
- package/dist/bench/language-corpus-v10.js +569 -0
- package/dist/bench/language-corpus-v10.js.map +1 -0
- package/dist/bench/language-corpus-v11.d.ts +4 -0
- package/dist/bench/language-corpus-v11.d.ts.map +1 -0
- package/dist/bench/language-corpus-v11.js +594 -0
- package/dist/bench/language-corpus-v11.js.map +1 -0
- package/dist/bench/language-corpus-v12.d.ts +4 -0
- package/dist/bench/language-corpus-v12.d.ts.map +1 -0
- package/dist/bench/language-corpus-v12.js +584 -0
- package/dist/bench/language-corpus-v12.js.map +1 -0
- package/dist/bench/language-corpus-v13.d.ts +4 -0
- package/dist/bench/language-corpus-v13.d.ts.map +1 -0
- package/dist/bench/language-corpus-v13.js +584 -0
- package/dist/bench/language-corpus-v13.js.map +1 -0
- package/dist/bench/language-corpus-v14.d.ts +4 -0
- package/dist/bench/language-corpus-v14.d.ts.map +1 -0
- package/dist/bench/language-corpus-v14.js +584 -0
- package/dist/bench/language-corpus-v14.js.map +1 -0
- package/dist/bench/language-corpus-v15.d.ts +4 -0
- package/dist/bench/language-corpus-v15.d.ts.map +1 -0
- package/dist/bench/language-corpus-v15.js +305 -0
- package/dist/bench/language-corpus-v15.js.map +1 -0
- package/dist/bench/language-corpus-v16.d.ts +4 -0
- package/dist/bench/language-corpus-v16.d.ts.map +1 -0
- package/dist/bench/language-corpus-v16.js +305 -0
- package/dist/bench/language-corpus-v16.js.map +1 -0
- package/dist/bench/language-corpus-v17.d.ts +4 -0
- package/dist/bench/language-corpus-v17.d.ts.map +1 -0
- package/dist/bench/language-corpus-v17.js +305 -0
- package/dist/bench/language-corpus-v17.js.map +1 -0
- package/dist/bench/language-corpus-v18.d.ts +4 -0
- package/dist/bench/language-corpus-v18.d.ts.map +1 -0
- package/dist/bench/language-corpus-v18.js +305 -0
- package/dist/bench/language-corpus-v18.js.map +1 -0
- package/dist/bench/language-corpus-v19.d.ts +4 -0
- package/dist/bench/language-corpus-v19.d.ts.map +1 -0
- package/dist/bench/language-corpus-v19.js +310 -0
- package/dist/bench/language-corpus-v19.js.map +1 -0
- package/dist/bench/language-corpus-v2.d.ts +12 -0
- package/dist/bench/language-corpus-v2.d.ts.map +1 -0
- package/dist/bench/language-corpus-v2.js +146 -0
- package/dist/bench/language-corpus-v2.js.map +1 -0
- package/dist/bench/language-corpus-v20.d.ts +4 -0
- package/dist/bench/language-corpus-v20.d.ts.map +1 -0
- package/dist/bench/language-corpus-v20.js +310 -0
- package/dist/bench/language-corpus-v20.js.map +1 -0
- package/dist/bench/language-corpus-v21.d.ts +4 -0
- package/dist/bench/language-corpus-v21.d.ts.map +1 -0
- package/dist/bench/language-corpus-v21.js +310 -0
- package/dist/bench/language-corpus-v21.js.map +1 -0
- package/dist/bench/language-corpus-v22.d.ts +4 -0
- package/dist/bench/language-corpus-v22.d.ts.map +1 -0
- package/dist/bench/language-corpus-v22.js +330 -0
- package/dist/bench/language-corpus-v22.js.map +1 -0
- package/dist/bench/language-corpus-v3.d.ts +4 -0
- package/dist/bench/language-corpus-v3.d.ts.map +1 -0
- package/dist/bench/language-corpus-v3.js +184 -0
- package/dist/bench/language-corpus-v3.js.map +1 -0
- package/dist/bench/language-corpus-v4.d.ts +4 -0
- package/dist/bench/language-corpus-v4.d.ts.map +1 -0
- package/dist/bench/language-corpus-v4.js +111 -0
- package/dist/bench/language-corpus-v4.js.map +1 -0
- package/dist/bench/language-corpus-v5.d.ts +4 -0
- package/dist/bench/language-corpus-v5.d.ts.map +1 -0
- package/dist/bench/language-corpus-v5.js +111 -0
- package/dist/bench/language-corpus-v5.js.map +1 -0
- package/dist/bench/language-corpus-v6.d.ts +4 -0
- package/dist/bench/language-corpus-v6.d.ts.map +1 -0
- package/dist/bench/language-corpus-v6.js +111 -0
- package/dist/bench/language-corpus-v6.js.map +1 -0
- package/dist/bench/language-corpus-v7.d.ts +4 -0
- package/dist/bench/language-corpus-v7.d.ts.map +1 -0
- package/dist/bench/language-corpus-v7.js +150 -0
- package/dist/bench/language-corpus-v7.js.map +1 -0
- package/dist/bench/language-corpus-v8.d.ts +4 -0
- package/dist/bench/language-corpus-v8.d.ts.map +1 -0
- package/dist/bench/language-corpus-v8.js +150 -0
- package/dist/bench/language-corpus-v8.js.map +1 -0
- package/dist/bench/language-corpus-v9.d.ts +4 -0
- package/dist/bench/language-corpus-v9.d.ts.map +1 -0
- package/dist/bench/language-corpus-v9.js +150 -0
- package/dist/bench/language-corpus-v9.js.map +1 -0
- package/dist/bench/language-corpus.d.ts +20 -0
- package/dist/bench/language-corpus.d.ts.map +1 -0
- package/dist/bench/language-corpus.js +205 -0
- package/dist/bench/language-corpus.js.map +1 -0
- package/dist/bench/language-review.d.ts +260 -0
- package/dist/bench/language-review.d.ts.map +1 -0
- package/dist/bench/language-review.js +591 -0
- package/dist/bench/language-review.js.map +1 -0
- package/dist/bench/language.d.ts +371 -0
- package/dist/bench/language.d.ts.map +1 -0
- package/dist/bench/language.js +484 -0
- package/dist/bench/language.js.map +1 -0
- package/dist/config/load.js +5 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +3 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/index/derive.d.ts.map +1 -1
- package/dist/index/derive.js +14 -5
- package/dist/index/derive.js.map +1 -1
- package/dist/index/graph.d.ts.map +1 -1
- package/dist/index/graph.js +3 -0
- package/dist/index/graph.js.map +1 -1
- package/dist/index/indexer.d.ts.map +1 -1
- package/dist/index/indexer.js +6 -1
- package/dist/index/indexer.js.map +1 -1
- package/dist/ingest/extract.d.ts.map +1 -1
- package/dist/ingest/extract.js +3 -1
- package/dist/ingest/extract.js.map +1 -1
- package/dist/kb/line-facts.d.ts.map +1 -1
- package/dist/kb/line-facts.js +2 -0
- package/dist/kb/line-facts.js.map +1 -1
- package/dist/kb/managed-lines.d.ts.map +1 -1
- package/dist/kb/managed-lines.js +3 -2
- package/dist/kb/managed-lines.js.map +1 -1
- package/dist/kb/prose.d.ts +12 -0
- package/dist/kb/prose.d.ts.map +1 -0
- package/dist/kb/prose.js +213 -0
- package/dist/kb/prose.js.map +1 -0
- package/dist/maintenance/conflicts.d.ts +1 -1
- package/dist/maintenance/curate.d.ts +1 -0
- package/dist/maintenance/curate.d.ts.map +1 -1
- package/dist/maintenance/curate.js +28 -1
- package/dist/maintenance/curate.js.map +1 -1
- package/dist/maintenance/dream.d.ts.map +1 -1
- package/dist/maintenance/dream.js +6 -1
- package/dist/maintenance/dream.js.map +1 -1
- package/dist/maintenance/plans.d.ts.map +1 -1
- package/dist/maintenance/plans.js +2 -0
- package/dist/maintenance/plans.js.map +1 -1
- package/dist/maintenance/revision-language.d.ts +4 -0
- package/dist/maintenance/revision-language.d.ts.map +1 -0
- package/dist/maintenance/revision-language.js +50 -0
- package/dist/maintenance/revision-language.js.map +1 -0
- package/dist/memory/action-agency.d.ts +5 -0
- package/dist/memory/action-agency.d.ts.map +1 -0
- package/dist/memory/action-agency.js +76 -0
- package/dist/memory/action-agency.js.map +1 -0
- package/dist/memory/clause-ending.d.ts +4 -0
- package/dist/memory/clause-ending.d.ts.map +1 -0
- package/dist/memory/clause-ending.js +6 -0
- package/dist/memory/clause-ending.js.map +1 -0
- package/dist/memory/counterfactual-wording.d.ts +4 -0
- package/dist/memory/counterfactual-wording.d.ts.map +1 -0
- package/dist/memory/counterfactual-wording.js +101 -0
- package/dist/memory/counterfactual-wording.js.map +1 -0
- package/dist/memory/coverage-roles.d.ts +3 -0
- package/dist/memory/coverage-roles.d.ts.map +1 -0
- package/dist/memory/coverage-roles.js +28 -0
- package/dist/memory/coverage-roles.js.map +1 -0
- package/dist/memory/intent.d.ts +1 -0
- package/dist/memory/intent.d.ts.map +1 -1
- package/dist/memory/intent.js +52 -4
- package/dist/memory/intent.js.map +1 -1
- package/dist/memory/named-actor.d.ts +2 -0
- package/dist/memory/named-actor.d.ts.map +1 -0
- package/dist/memory/named-actor.js +9 -0
- package/dist/memory/named-actor.js.map +1 -0
- package/dist/memory/personal-negative-actions.d.ts +3 -0
- package/dist/memory/personal-negative-actions.d.ts.map +1 -0
- package/dist/memory/personal-negative-actions.js +67 -0
- package/dist/memory/personal-negative-actions.js.map +1 -0
- package/dist/memory/projection.d.ts.map +1 -1
- package/dist/memory/projection.js +10 -2
- package/dist/memory/projection.js.map +1 -1
- package/dist/memory/prose-projection.d.ts +6 -0
- package/dist/memory/prose-projection.d.ts.map +1 -0
- package/dist/memory/prose-projection.js +34 -0
- package/dist/memory/prose-projection.js.map +1 -0
- package/dist/memory/report-uncertainty.d.ts +3 -0
- package/dist/memory/report-uncertainty.d.ts.map +1 -0
- package/dist/memory/report-uncertainty.js +67 -0
- package/dist/memory/report-uncertainty.js.map +1 -0
- package/dist/memory/reporting-roles.d.ts +3 -0
- package/dist/memory/reporting-roles.d.ts.map +1 -0
- package/dist/memory/reporting-roles.js +39 -0
- package/dist/memory/reporting-roles.js.map +1 -0
- package/dist/memory/retention-source-frame.d.ts +8 -0
- package/dist/memory/retention-source-frame.d.ts.map +1 -0
- package/dist/memory/retention-source-frame.js +72 -0
- package/dist/memory/retention-source-frame.js.map +1 -0
- package/dist/models/client.d.ts +12 -3
- package/dist/models/client.d.ts.map +1 -1
- package/dist/models/client.js +142 -6
- package/dist/models/client.js.map +1 -1
- package/dist/models/language-audit.d.ts +78 -0
- package/dist/models/language-audit.d.ts.map +1 -0
- package/dist/models/language-audit.js +139 -0
- package/dist/models/language-audit.js.map +1 -0
- package/dist/models/language.d.ts +12 -0
- package/dist/models/language.d.ts.map +1 -0
- package/dist/models/language.js +106 -0
- package/dist/models/language.js.map +1 -0
- package/dist/models/semantic-verdict.d.ts +53 -0
- package/dist/models/semantic-verdict.d.ts.map +1 -0
- package/dist/models/semantic-verdict.js +190 -0
- package/dist/models/semantic-verdict.js.map +1 -0
- package/dist/ops/answer-record-rendering.d.ts +73 -0
- package/dist/ops/answer-record-rendering.d.ts.map +1 -0
- package/dist/ops/answer-record-rendering.js +149 -0
- package/dist/ops/answer-record-rendering.js.map +1 -0
- package/dist/ops/answer-source-audit.d.ts +354 -0
- package/dist/ops/answer-source-audit.d.ts.map +1 -0
- package/dist/ops/answer-source-audit.js +328 -0
- package/dist/ops/answer-source-audit.js.map +1 -0
- package/dist/ops/answer.d.ts +2 -2
- package/dist/ops/answer.d.ts.map +1 -1
- package/dist/ops/answer.js +1032 -114
- package/dist/ops/answer.js.map +1 -1
- package/dist/ops/context.d.ts.map +1 -1
- package/dist/ops/context.js +7 -0
- package/dist/ops/context.js.map +1 -1
- package/dist/ops/graph.d.ts.map +1 -1
- package/dist/ops/graph.js +35 -4
- package/dist/ops/graph.js.map +1 -1
- package/dist/ops/read.d.ts.map +1 -1
- package/dist/ops/read.js +5 -2
- package/dist/ops/read.js.map +1 -1
- package/dist/ops/recall.d.ts.map +1 -1
- package/dist/ops/recall.js +10 -0
- package/dist/ops/recall.js.map +1 -1
- package/dist/ops/remember.d.ts +2 -1
- package/dist/ops/remember.d.ts.map +1 -1
- package/dist/ops/remember.js +48 -33
- package/dist/ops/remember.js.map +1 -1
- package/dist/ops/retain.d.ts +3 -1
- package/dist/ops/retain.d.ts.map +1 -1
- package/dist/ops/retain.js +56 -44
- package/dist/ops/retain.js.map +1 -1
- package/dist/recall/assemble.d.ts +1 -0
- package/dist/recall/assemble.d.ts.map +1 -1
- package/dist/recall/assemble.js +19 -2
- package/dist/recall/assemble.js.map +1 -1
- package/dist/store/db.d.ts.map +1 -1
- package/dist/store/db.js +3 -1
- package/dist/store/db.js.map +1 -1
- package/dist/store/migrations.d.ts +2 -1
- package/dist/store/migrations.d.ts.map +1 -1
- package/dist/store/migrations.js +11 -1
- package/dist/store/migrations.js.map +1 -1
- package/dist/timeline/clock.d.ts.map +1 -1
- package/dist/timeline/clock.js +2 -0
- package/dist/timeline/clock.js.map +1 -1
- package/dist/timeline/eligibility.js +4 -4
- package/dist/timeline/eligibility.js.map +1 -1
- package/dist/timeline/source-clock.d.ts +5 -0
- package/dist/timeline/source-clock.d.ts.map +1 -0
- package/dist/timeline/source-clock.js +179 -0
- package/dist/timeline/source-clock.js.map +1 -0
- package/dist/write/fictional-case-identity.d.ts +10 -0
- package/dist/write/fictional-case-identity.d.ts.map +1 -0
- package/dist/write/fictional-case-identity.js +84 -0
- package/dist/write/fictional-case-identity.js.map +1 -0
- package/dist/write/managed-memory.js +1 -1
- package/dist/write/managed-memory.js.map +1 -1
- package/dist/write/retain-clock-repair.d.ts +48 -0
- package/dist/write/retain-clock-repair.d.ts.map +1 -0
- package/dist/write/retain-clock-repair.js +175 -0
- package/dist/write/retain-clock-repair.js.map +1 -0
- package/dist/write/retain.d.ts +21 -10
- package/dist/write/retain.d.ts.map +1 -1
- package/dist/write/retain.js +1220 -70
- package/dist/write/retain.js.map +1 -1
- package/dist/write/retained-relations.d.ts +7 -0
- package/dist/write/retained-relations.d.ts.map +1 -0
- package/dist/write/retained-relations.js +38 -0
- package/dist/write/retained-relations.js.map +1 -0
- package/dist/write/retained-spans.d.ts +5 -0
- package/dist/write/retained-spans.d.ts.map +1 -0
- package/dist/write/retained-spans.js +30 -0
- package/dist/write/retained-spans.js.map +1 -0
- package/dist/write/retained-time.d.ts +4 -0
- package/dist/write/retained-time.d.ts.map +1 -0
- package/dist/write/retained-time.js +10 -0
- package/dist/write/retained-time.js.map +1 -0
- package/dist/write/retention-frame-audit.d.ts +25 -0
- package/dist/write/retention-frame-audit.d.ts.map +1 -0
- package/dist/write/retention-frame-audit.js +43 -0
- package/dist/write/retention-frame-audit.js.map +1 -0
- package/dist/write/retention-negative-evidence.d.ts +222 -0
- package/dist/write/retention-negative-evidence.d.ts.map +1 -0
- package/dist/write/retention-negative-evidence.js +122 -0
- package/dist/write/retention-negative-evidence.js.map +1 -0
- package/dist/write/retention-report-limits.d.ts +65 -0
- package/dist/write/retention-report-limits.d.ts.map +1 -0
- package/dist/write/retention-report-limits.js +71 -0
- package/dist/write/retention-report-limits.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/memory/projection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/memory/projection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAS5C,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AAErE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkBD,mGAAmG;AACnG,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,QAAQ,GACb,6BAA6B,CAiG/B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,4BAA4B,CAgG3G"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { PROSE_PROJECTION_VERSION } from "../kb/prose.js";
|
|
2
|
+
import { proseChunkViews } from "./prose-projection.js";
|
|
1
3
|
import { AKNO_ITEM, aknoItemId } from "../kb/page.js";
|
|
2
4
|
import { sha256 } from "../store/ids.js";
|
|
3
5
|
import { managedMemoryAnswerEligible, managedMemoryPayloadIssue, parseManagedMemoryMarker, } from "../write/managed-memory.js";
|
|
@@ -112,6 +114,7 @@ export function managedMemoryProjectionForView(store, view) {
|
|
|
112
114
|
else
|
|
113
115
|
memoryChunks.set(row.chunk_id, [row]);
|
|
114
116
|
}
|
|
117
|
+
const proseViews = proseChunkViews(store, view);
|
|
115
118
|
const eligibleChunkIds = new Set();
|
|
116
119
|
const contextualChunkIds = new Set();
|
|
117
120
|
for (const chunkId of allChunks) {
|
|
@@ -121,7 +124,10 @@ export function managedMemoryProjectionForView(store, view) {
|
|
|
121
124
|
}
|
|
122
125
|
const memories = memoryChunks.get(chunkId);
|
|
123
126
|
if (!memories) {
|
|
124
|
-
|
|
127
|
+
if (proseViews.get(chunkId) === false)
|
|
128
|
+
contextualChunkIds.add(chunkId);
|
|
129
|
+
else
|
|
130
|
+
eligibleChunkIds.add(chunkId);
|
|
125
131
|
continue;
|
|
126
132
|
}
|
|
127
133
|
const eligible = memories.some((memory) => !duplicateIds.has(memory.memory_id) &&
|
|
@@ -134,7 +140,8 @@ export function managedMemoryProjectionForView(store, view) {
|
|
|
134
140
|
temporalStatus: memory.temporal_status,
|
|
135
141
|
temporalRelation: memory.temporal_relation,
|
|
136
142
|
}, view));
|
|
137
|
-
|
|
143
|
+
// A mixed chunk may also contain useful authored facts; live assembly filters each line.
|
|
144
|
+
if (eligible || proseViews.get(chunkId) === true)
|
|
138
145
|
eligibleChunkIds.add(chunkId);
|
|
139
146
|
else
|
|
140
147
|
contextualChunkIds.add(chunkId);
|
|
@@ -143,6 +150,7 @@ export function managedMemoryProjectionForView(store, view) {
|
|
|
143
150
|
eligibleChunkIds,
|
|
144
151
|
contextualChunkIds,
|
|
145
152
|
degraded: store.meta('managed_memory_projection_version') !== MANAGED_MEMORY_PROJECTION_VERSION ||
|
|
153
|
+
store.meta('prose_projection_version') !== PROSE_PROJECTION_VERSION ||
|
|
146
154
|
issueCount > 0 ||
|
|
147
155
|
duplicateIds.size > 0 ||
|
|
148
156
|
rows.some((row) => row.chunk_id === null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/memory/projection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/memory/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MemoryView } from '@tenphi/akno-protocol';
|
|
2
|
+
import type { ParsedPage } from '../kb/page.ts';
|
|
3
|
+
import type { Store } from '../store/db.ts';
|
|
4
|
+
export declare function replaceProseEntries(store: Store, pageId: string, page: ParsedPage): void;
|
|
5
|
+
export declare function proseChunkViews(store: Store, view: MemoryView): Map<number, boolean>;
|
|
6
|
+
//# sourceMappingURL=prose-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prose-projection.d.ts","sourceRoot":"","sources":["../../src/memory/prose-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CA6BxF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CASpF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { hasNonfactualProse, proseQualifications } from "../kb/prose.js";
|
|
2
|
+
export function replaceProseEntries(store, pageId, page) {
|
|
3
|
+
store.db.prepare('DELETE FROM prose_entries WHERE source_page = ?').run(pageId);
|
|
4
|
+
const insert = store.db.prepare('INSERT INTO prose_entries(source_page, line, view, eligible, source_hash) VALUES (?, ?, ?, ?, ?)');
|
|
5
|
+
const lines = page.content.split('\n');
|
|
6
|
+
for (const [n, q] of proseQualifications(lines)) {
|
|
7
|
+
if (q.reason === 'heading' || q.reason === 'comment' || /^\s*(?:`{3,}|~{3,})/.test(lines[n - 1]))
|
|
8
|
+
continue;
|
|
9
|
+
insert.run(pageId, n, q.view, q.status === 'qualified' ? 1 : 0, q.source_hash);
|
|
10
|
+
}
|
|
11
|
+
if (hasNonfactualProse(page.content))
|
|
12
|
+
store.db.prepare('UPDATE pages SET summary = NULL WHERE id = ?').run(pageId);
|
|
13
|
+
store.db
|
|
14
|
+
.prepare(`DELETE FROM events WHERE source_page = ? AND EXISTS (
|
|
15
|
+
SELECT 1 FROM prose_entries p WHERE p.source_page = events.source_page
|
|
16
|
+
AND p.line = events.line AND (p.view != 'factual' OR p.eligible = 0))`)
|
|
17
|
+
.run(pageId);
|
|
18
|
+
// Existing facts can survive a structural pass while model derivation is deferred.
|
|
19
|
+
// Drop only disqualified derived facts now so they cannot feed inference in that interval.
|
|
20
|
+
store.db
|
|
21
|
+
.prepare(`DELETE FROM facts WHERE page_id = ? AND EXISTS (
|
|
22
|
+
SELECT 1 FROM prose_entries p WHERE p.source_page = facts.page_id
|
|
23
|
+
AND p.line = facts.line_start AND (p.view != 'factual' OR p.eligible = 0))`)
|
|
24
|
+
.run(pageId);
|
|
25
|
+
}
|
|
26
|
+
export function proseChunkViews(store, view) {
|
|
27
|
+
const rows = store.db
|
|
28
|
+
.prepare(`SELECT c.id, max(CASE WHEN p.eligible = 1 AND (p.view = 'factual' OR p.view = ? OR ? = 'all') THEN 1 ELSE 0 END) AS eligible
|
|
29
|
+
FROM chunks c JOIN prose_entries p ON p.source_page = c.page_id AND p.line BETWEEN c.line_start AND c.line_end
|
|
30
|
+
WHERE c.document_id IS NULL GROUP BY c.id`)
|
|
31
|
+
.all(view, view);
|
|
32
|
+
return new Map(rows.map((row) => [row.id, row.eligible === 1]));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=prose-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prose-projection.js","sourceRoot":"","sources":["../../src/memory/prose-projection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGzE,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAgB;IAChF,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAC7B,kGAAkG,CACnG,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YAC/F,SAAS;QACX,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/E,KAAK,CAAC,EAAE;SACL,OAAO,CACN;;4EAEsE,CACvE;SACA,GAAG,CAAC,MAAM,CAAC,CAAC;IACf,mFAAmF;IACnF,2FAA2F;IAC3F,KAAK,CAAC,EAAE;SACL,OAAO,CACN;;iFAE2E,CAC5E;SACA,GAAG,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,IAAgB;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;SAClB,OAAO,CACN;;8CAEwC,CACzC;SACA,GAAG,CAAC,IAAI,EAAE,IAAI,CAAuC,CAAC;IACzD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-uncertainty.d.ts","sourceRoot":"","sources":["../../src/memory/report-uncertainty.ts"],"names":[],"mappings":"AAGA,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAE,SAAS,MAAM,EAAO,GAAG,OAAO,CAoEpG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const REPORT_UNCERTAINTY = /\b(?:unverified|unconfirmed|not (?:yet )?(?:been )?(?:independently )?(?:verified|confirmed)|(?:no|without|lacks?) (?:independent )?confirmation)\b|неподтвержд|непроверенн|не провер|не подтверд|не (?:был[аои]? )?подтвержд[её]н|подтверждения[^.!?;\n]{0,40}нет|без подтверждени/iu;
|
|
2
|
+
/** Presence of a personal epistemic limit; predicate equivalence still needs source verification. */
|
|
3
|
+
export function hasReportUncertainty(text, attributionNames = []) {
|
|
4
|
+
if (REPORT_UNCERTAINTY.test(text))
|
|
5
|
+
return true;
|
|
6
|
+
const unquoted = text.replace(/«[^»]*»|“[^”]*”|"[^"\n]*"|\x60[^\x60]*\x60|‘[^’]*’|(?<![\p{L}\p{N}])'(?:[^'\n]|(?<=[\p{L}\p{N}])'(?=[\p{L}\p{N}]))+'(?![\p{L}\p{N}])/gu, '⟦quotation⟧');
|
|
7
|
+
const fullName = String.raw `(?!(?:The|This|That|A|An|If|Unless|When|Suppose|Example|Allegedly|Not|I|He|She|We|They|You|It)\b)\p{Lu}[\p{L}’'-]*(?:[ \t]+\p{Lu}[\p{L}’'-]*){1,3}`;
|
|
8
|
+
// Short references come only from distinct validated attribution names. A capitalized
|
|
9
|
+
// sentence subject alone cannot establish a person, and shared first names are ambiguous.
|
|
10
|
+
const names = [...new Set(attributionNames.map((value) => value.trim().replace(/[ \t]+/gu, ' ')))];
|
|
11
|
+
const firstNames = names
|
|
12
|
+
.filter((value) => new RegExp(`^${fullName}$`, 'u').test(value))
|
|
13
|
+
.map((value) => value.split(' ')[0]);
|
|
14
|
+
const aliases = firstNames
|
|
15
|
+
.filter((value) => firstNames.filter((other) => other === value).length === 1)
|
|
16
|
+
.map((value) => value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&'));
|
|
17
|
+
const name = aliases.length
|
|
18
|
+
? String.raw `(?:${fullName}|(?:${aliases.join('|')})(?![\p{L}\p{N}_]))`
|
|
19
|
+
: fullName;
|
|
20
|
+
const namedActor = String.raw `(?:${name}|(?:[Tt]he[ \t]+)?(?:AI[ \t]+)?assistant)`;
|
|
21
|
+
const actor = String.raw `(?:${namedActor}|I|[Hh]e|[Ss]he|[Ww]e|[Tt]hey)`;
|
|
22
|
+
const negativeAuxiliary = String.raw `(?:has|have|had)[ \t]+not[ \t]+(?:yet[ \t]+)?`;
|
|
23
|
+
const examination = String.raw `(?:read|examined|seen|reviewed)[ \t]+(?:(?:the|these|those|any)[ \t]+)?(?:service[ \t]+)?(?:terms|contract|agreement)`;
|
|
24
|
+
const determiner = String.raw `(?:(?:the|this|that|any)[ \t]+)?`;
|
|
25
|
+
// Checking is admitted only with a report object; this does not equate a performed check
|
|
26
|
+
// with receiving confirmation, or allow a nearby device check to qualify the report.
|
|
27
|
+
const reportObject = String.raw `(?:${determiner}(?:report|message|claim|account|assumption)|${name}['’]s[ \t]+(?:report|account|claim))`;
|
|
28
|
+
const checkedObject = String.raw `(?:${determiner}(?:report|account|claim)|${name}['’]s[ \t]+(?:report|account|claim))`;
|
|
29
|
+
const reportCheck = String.raw `(?:independently[ \t]+)?(?:(?:confirmed|verified)[ \t]+${reportObject}|checked[ \t]+${checkedObject})`;
|
|
30
|
+
const finalPredicate = String.raw `(?:independently[ \t]+)?(?:confirmed|verified)[ \t]+(?:it|this|that)(?:[ \t]+as[ \t]+(?:a|the|this|that)[ \t]+(?:condition|term|requirement))?`;
|
|
31
|
+
const personalPredicate = String.raw `(?:checked|confirmed|verified)[ \t]+(?:it|${determiner}(?:reported[ \t]+)?(?:meaning|contractual[ \t]+(?:condition|term|requirement)))`;
|
|
32
|
+
const personalCheck = String.raw `(?:independently[ \t]+)?${personalPredicate}`;
|
|
33
|
+
// This adverb needs no gender inference, but inherits agency and negation only
|
|
34
|
+
// inside the same closed three-predicate list as the reflexive form.
|
|
35
|
+
const personallyCheck = String.raw `personally[ \t]+${personalPredicate}`;
|
|
36
|
+
const negativeExplanation = String.raw `,[ \t]+(?:so|therefore)[ \t]+it[ \t]+(?:is|was)[ \t]+not[ \t]+(?:a|the)[ \t]+(?:condition|term|requirement)[ \t]+${actor}[ \t]+(?:has|have|had)[ \t]+(?:independently[ \t]+)?(?:verified|confirmed)`;
|
|
37
|
+
const possibleContinuation = String.raw `,[ \t]+(?:and|so)[ \t]+(?:this|it)[ \t]+(?:is|remains)[ \t]+(?:(?:still|only)[ \t]+)?a[ \t]+possible[ \t]+(?:(?:contract|contractual)[ \t]+)?(?:condition|term|requirement|interpretation|assumption)(?:[ \t]+rather[ \t]+than[ \t]+an?[ \t]+established[ \t]+(?:condition|term|requirement|interpretation|assumption))?`;
|
|
38
|
+
const clarification = String.raw `,[ \t]+and[ \t]+(?:she|he|they|the assistant)[ \t]+clarif(?:y|ies)[ \t]+that[ \t]+these[ \t]+are[ \t]+${name}['’]s[ \t]+words(?:[ \t]+in[ \t]+(?:her|his|their)[ \t]+retelling)?[ \t]+rather[ \t]+than[ \t]+a[ \t]+(?:condition|term|requirement)[ \t]+(?:she|he|they|the assistant)[ \t]+(?:verified|confirmed)`;
|
|
39
|
+
const relay = String.raw `(?:[ \t]+only[ \t]+(?:conveys|relays)[ \t]+(?:this|the)[ \t]+(?:account|report)[ \t]+and|[ \t]+is[ \t]+only[ \t]+passing[ \t]+on[ \t]+this[ \t]+meaning,)?`;
|
|
40
|
+
// One grammar owns both two- and three-predicate lists. Repeating an auxiliary requires
|
|
41
|
+
// repeating its negation; a new actor or arbitrary continuation cannot inherit it.
|
|
42
|
+
// Proper names establish no gender. Pronouns only constrain their own reflexive spelling.
|
|
43
|
+
const actors = [
|
|
44
|
+
[namedActor, '(?:herself|himself|itself|themself)'],
|
|
45
|
+
['[Ss]he', 'herself'],
|
|
46
|
+
['[Hh]e', 'himself'],
|
|
47
|
+
['I', 'myself'],
|
|
48
|
+
['(?:[Ww]e|[Tt]hey)', null],
|
|
49
|
+
];
|
|
50
|
+
return actors.some(([subject, reflexive]) => {
|
|
51
|
+
const finalCheck = reflexive
|
|
52
|
+
? String.raw `(?:${finalPredicate}|${reflexive}[ \t]+${personalCheck}|${personallyCheck})`
|
|
53
|
+
: String.raw `(?:${finalPredicate}|${personallyCheck})`;
|
|
54
|
+
const coordination = String.raw `(?:[ \t]+or[ \t]+${reportCheck}|,[ \t]+and[ \t]+${negativeAuxiliary}${reportCheck}|,[ \t]+${reportCheck},[ \t]+or[ \t]+${finalCheck})`;
|
|
55
|
+
// A relay does not establish uncertainty by itself. It can only continue the already
|
|
56
|
+
// complete same-subject negative reading/checking pair without changing that report object.
|
|
57
|
+
const selfCheck = reflexive
|
|
58
|
+
? String.raw `(?:[ \t]+without[ \t]+(?:independently[ \t]+)?(?:checking|verifying|confirming)[ \t]+it[ \t]+${reflexive})?`
|
|
59
|
+
: '';
|
|
60
|
+
const relayContinuation = String.raw `,?[ \t]+and[ \t]+(?:only[ \t]+)?(?:passes[ \t]+on|conveys|relays)[ \t]+(?:this|that|the)[ \t]+(?:meaning|account|report)${selfCheck}`;
|
|
61
|
+
const closedContinuation = String.raw `(?:${negativeExplanation}|${possibleContinuation}|${clarification}|${relayContinuation})?`;
|
|
62
|
+
const end = String.raw `(?=[ \t]*(?:$|[.!?\n]|;(?![ \t]*(?:[Bb]ut|[Hh]owever|[Yy]et|[Aa]ctually|(?:[Aa]nd[ \t]+)?[Tt]his[ \t]+is[ \t]+false)(?![\p{L}]))))`;
|
|
63
|
+
const pattern = new RegExp(String.raw `(?:^|[.;!])[ \t]*(?:[Tt]he[ \t]+report[ \t]+(?:says|states)[ \t]+(?:that[ \t]+)?)?${subject}(?:,[ \t]*${name},)?${relay}[ \t]+${negativeAuxiliary}${examination}${coordination}${closedContinuation}${end}`, 'u');
|
|
64
|
+
return pattern.test(unquoted);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=report-uncertainty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-uncertainty.js","sourceRoot":"","sources":["../../src/memory/report-uncertainty.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting-roles.d.ts","sourceRoot":"","sources":["../../src/memory/reporting-roles.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAiD7F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Hold an explicit outer/inner reversal when the cited prose itself binds that reporting chain. */
|
|
2
|
+
export function reportingRolesSupported(text, support, outer) {
|
|
3
|
+
const prose = (value) => value
|
|
4
|
+
.normalize('NFKC')
|
|
5
|
+
.replace(/«[^»]*»|“[^”]*”|"[^"\n]*"|`[^`\n]*`|‘[^’]*’|(?<![\p{L}\p{N}])'[^'\n]*'(?![\p{L}\p{N}])/gu, ' ')
|
|
6
|
+
.replace(/\*\*/gu, '');
|
|
7
|
+
const escape = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
8
|
+
const named = (value) => `(?<![\\p{L}\\p{N}])${escape(value)}(?![\\p{L}\\p{N}’'])`;
|
|
9
|
+
const source = prose(support);
|
|
10
|
+
const answer = prose(text);
|
|
11
|
+
const reporter = named(outer.normalize('NFKC'));
|
|
12
|
+
// Case-fold reporting grammar, then validate the captured name separately. A generic noun phrase
|
|
13
|
+
// or another person's name after a short-name prefix cannot establish an inner speaker.
|
|
14
|
+
const name = "((?:[\\p{L}’'.-]+ ){0,3}?[\\p{L}’'.-]+)";
|
|
15
|
+
const properName = /^(?:\p{Lu}[\p{L}’'.-]* ){0,3}\p{Lu}[\p{L}’'.-]*$/u;
|
|
16
|
+
const modifier = '(?:(?:reportedly|only|merely|только|лишь|предположительно)\\s+){0,2}';
|
|
17
|
+
const verb = '(?:said|says|reported|reports|relayed|relays|stated|states|сообщил[аи]?|сообщает|сказал[аи]?|передал[аи]?|переда[её]т)(?![\\p{L}])';
|
|
18
|
+
const intros = '(?:according to|по словам|со слов)';
|
|
19
|
+
const chains = [
|
|
20
|
+
`reported by ${reporter}:\\s+${name}\\s+${modifier}${verb}`,
|
|
21
|
+
`${intros}\\s+${name},\\s+as relayed by\\s+${reporter}\\s*[,;]`,
|
|
22
|
+
`${reporter}\\s+(?:relayed|relays)\\s+${name}[’']s\\s+(?:(?:unverified|unconfirmed|tentative)\\s+){0,2}(?:report|account|statement|assertion)(?![\\p{L}])`,
|
|
23
|
+
`${intros}\\s+${reporter},\\s+${name}\\s+${modifier}${verb}`,
|
|
24
|
+
];
|
|
25
|
+
const inners = new Set(chains.flatMap((pattern) => [...source.matchAll(new RegExp(pattern, 'giu'))]
|
|
26
|
+
.map((match) => match[1])
|
|
27
|
+
.filter((inner) => properName.test(inner) && inner.toLocaleLowerCase('en-US') !== outer.toLocaleLowerCase('en-US'))));
|
|
28
|
+
if (inners.size !== 1)
|
|
29
|
+
return true;
|
|
30
|
+
for (const inner of inners) {
|
|
31
|
+
const reversed = new RegExp(`${intros}\\s+${named(inner)}\\s*,\\s+${reporter}\\s+${modifier}${verb}`, 'iu');
|
|
32
|
+
// A source may explicitly report its own earlier relay. Preserve that possibility for full
|
|
33
|
+
// semantic pairing; this guard catches only a novel reversed construction in generated text.
|
|
34
|
+
if (reversed.test(answer) && !reversed.test(source))
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=reporting-roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting-roles.js","sourceRoot":"","sources":["../../src/memory/reporting-roles.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,OAAe,EAAE,KAAa;IAClF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAC9B,KAAK;SACF,SAAS,CAAC,MAAM,CAAC;SACjB,OAAO,CACN,0FAA0F,EAC1F,GAAG,CACJ;SACA,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAC3F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,iGAAiG;IACjG,wFAAwF;IACxF,MAAM,IAAI,GAAG,yCAAyC,CAAC;IACvD,MAAM,UAAU,GAAG,mDAAmD,CAAC;IACvE,MAAM,QAAQ,GAAG,sEAAsE,CAAC;IACxF,MAAM,IAAI,GACR,oIAAoI,CAAC;IACvI,MAAM,MAAM,GAAG,oCAAoC,CAAC;IACpD,MAAM,MAAM,GAAG;QACb,eAAe,QAAQ,QAAQ,IAAI,OAAO,QAAQ,GAAG,IAAI,EAAE;QAC3D,GAAG,MAAM,OAAO,IAAI,yBAAyB,QAAQ,UAAU;QAC/D,GAAG,QAAQ,6BAA6B,IAAI,8GAA8G;QAC1J,GAAG,MAAM,OAAO,QAAQ,QAAQ,IAAI,OAAO,QAAQ,GAAG,IAAI,EAAE;KAC7D,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;SACzB,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAClG,CACJ,CACF,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,MAAM,CACzB,GAAG,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,QAAQ,OAAO,QAAQ,GAAG,IAAI,EAAE,EACxE,IAAI,CACL,CAAC;QACF,2FAA2F;QAC3F,6FAA6F;QAC7F,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AnswerContextItem } from '@tenphi/akno-protocol';
|
|
2
|
+
import type { Store } from '../store/db.ts';
|
|
3
|
+
/**
|
|
4
|
+
* An archived frame constrains the meaning of an extracted record; it cannot supply additional
|
|
5
|
+
* answerable facts. Keep this optional context outside public evidence and its citation identity.
|
|
6
|
+
*/
|
|
7
|
+
export declare function retentionSourceFrames(db: Store['db'], aknoPath: string, evidence: readonly AnswerContextItem[]): ReadonlyMap<string, string>;
|
|
8
|
+
//# sourceMappingURL=retention-source-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention-source-frame.d.ts","sourceRoot":"","sources":["../../src/memory/retention-source-frame.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAU5C;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CA8D7B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { sha256 } from "../store/ids.js";
|
|
4
|
+
import { parseManagedMemoryMarker } from "../write/managed-memory.js";
|
|
5
|
+
/**
|
|
6
|
+
* An archived frame constrains the meaning of an extracted record; it cannot supply additional
|
|
7
|
+
* answerable facts. Keep this optional context outside public evidence and its citation identity.
|
|
8
|
+
*/
|
|
9
|
+
export function retentionSourceFrames(db, aknoPath, evidence) {
|
|
10
|
+
const frames = new Map();
|
|
11
|
+
// Preserve complete frames in retrieval order; truncation can remove a governing qualification.
|
|
12
|
+
let remainingCharacters = 4_800;
|
|
13
|
+
const projection = db.prepare(`
|
|
14
|
+
SELECT p.rel_path, m.marker_hash, m.payload_hash
|
|
15
|
+
FROM managed_memory_entries m JOIN pages p ON p.id = m.source_page
|
|
16
|
+
WHERE m.memory_id = ? AND m.source_slug = ? AND m.payload_line = ?
|
|
17
|
+
AND (SELECT count(*) FROM managed_memory_entries WHERE memory_id = m.memory_id) = 1`);
|
|
18
|
+
const support = db.prepare(`
|
|
19
|
+
SELECT s.evidence, s.evidence_hash
|
|
20
|
+
FROM retain_supports s JOIN retain_receipts r ON r.receipt_fingerprint = s.receipt_fingerprint
|
|
21
|
+
WHERE s.memory_id = ? AND s.receipt_fingerprint = ? AND s.candidate_fingerprint = ?
|
|
22
|
+
AND s.proof_group = ? AND s.selection = 'extracted' AND r.mode = 'extract_automatic'
|
|
23
|
+
AND s.input_hash = r.source_hash
|
|
24
|
+
AND s.retracted_by IS NULL AND s.forgotten_by IS NULL AND s.evidence_pruned_at IS NULL`);
|
|
25
|
+
for (const item of evidence) {
|
|
26
|
+
if (item.type !== 'page' || item.lines.length !== 1)
|
|
27
|
+
continue;
|
|
28
|
+
const line = item.lines[0];
|
|
29
|
+
if (line.memory?.status !== 'qualified')
|
|
30
|
+
continue;
|
|
31
|
+
const row = projection.get(line.memory.id, item.slug, line.n);
|
|
32
|
+
if (!row)
|
|
33
|
+
continue;
|
|
34
|
+
try {
|
|
35
|
+
const root = fs.realpathSync(aknoPath);
|
|
36
|
+
const target = fs.realpathSync(path.resolve(root, row.rel_path));
|
|
37
|
+
if (!target.startsWith(`${root}${path.sep}`))
|
|
38
|
+
continue;
|
|
39
|
+
const lines = fs.readFileSync(target, 'utf8').split('\n');
|
|
40
|
+
const markerText = lines[line.n - 2]?.trim();
|
|
41
|
+
const payload = lines[line.n - 1];
|
|
42
|
+
if (!markerText ||
|
|
43
|
+
payload !== line.text ||
|
|
44
|
+
sha256(markerText) !== row.marker_hash ||
|
|
45
|
+
sha256(payload.trim()) !== row.payload_hash)
|
|
46
|
+
continue;
|
|
47
|
+
const marker = parseManagedMemoryMarker(markerText);
|
|
48
|
+
// Multiple sources may carry different context. Do not choose one as a silent tie-breaker.
|
|
49
|
+
if (marker?.id !== line.memory.id || marker.supports.length !== 1)
|
|
50
|
+
continue;
|
|
51
|
+
const binding = marker.supports[0];
|
|
52
|
+
if (binding.selection !== 'extracted')
|
|
53
|
+
continue;
|
|
54
|
+
// The support slug records its original placement and legitimately survives a page move.
|
|
55
|
+
const matches = support.all(marker.id, binding.receipt, binding.candidate, binding.proofGroup);
|
|
56
|
+
const frame = matches.length === 1 ? matches[0] : undefined;
|
|
57
|
+
if (frame &&
|
|
58
|
+
frame.evidence.trim().length > 0 &&
|
|
59
|
+
frame.evidence.length <= 1_200 &&
|
|
60
|
+
frame.evidence.length <= remainingCharacters &&
|
|
61
|
+
sha256(frame.evidence) === frame.evidence_hash) {
|
|
62
|
+
frames.set(item.evidence_id, frame.evidence);
|
|
63
|
+
remainingCharacters -= frame.evidence.length;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Source archives are optional. A missing/moved file keeps the existing payload-only path.
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return frames;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=retention-source-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention-source-frame.js","sourceRoot":"","sources":["../../src/memory/retention-source-frame.ts"],"names":[],"mappings":"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"}
|
package/dist/models/client.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LanguageReference, type OutputLanguage } from './language.ts';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
import type { DegradedReason } from '@tenphi/akno-protocol';
|
|
3
4
|
import type { ReasoningEffort, ResolvedModelRole } from '../config/schema.ts';
|
|
@@ -16,7 +17,7 @@ import type { ReasoningEffort, ResolvedModelRole } from '../config/schema.ts';
|
|
|
16
17
|
* layer that silently stops working the moment a message is reworded, on exactly
|
|
17
18
|
* the path whose job is to report degradation honestly.
|
|
18
19
|
*/
|
|
19
|
-
export type ModelFailure = 'unavailable' | 'timeout' | 'request_failed' | 'bad_response';
|
|
20
|
+
export type ModelFailure = 'unavailable' | 'timeout' | 'request_failed' | 'bad_response' | 'language_mismatch' | 'language_check_failed';
|
|
20
21
|
export interface ModelOutcome<T> {
|
|
21
22
|
ok: boolean;
|
|
22
23
|
value: T | null;
|
|
@@ -57,7 +58,7 @@ interface ModelSemanticFailureObservation {
|
|
|
57
58
|
event: 'semantic_failure';
|
|
58
59
|
role: ResolvedModelRole['role'];
|
|
59
60
|
modelId: string | null;
|
|
60
|
-
failure: 'bad_response';
|
|
61
|
+
failure: 'bad_response' | 'language_mismatch' | 'language_check_failed';
|
|
61
62
|
degradedReason: DegradedReason;
|
|
62
63
|
}
|
|
63
64
|
export type ModelCallObservation = ModelCallReceipt | ModelSemanticFailureObservation;
|
|
@@ -67,6 +68,12 @@ export interface ChatMessage {
|
|
|
67
68
|
content: string;
|
|
68
69
|
}
|
|
69
70
|
export interface ChatOptions {
|
|
71
|
+
/** Null explicitly preserves source language for exact extraction/transcription. */
|
|
72
|
+
outputLanguage?: OutputLanguage | null;
|
|
73
|
+
/** Add schema-specific generated prose; never suppress the shared prose-field check. */
|
|
74
|
+
additionalLanguageProse?: (value: unknown) => string[];
|
|
75
|
+
/** Source-backed exact references for the language check; never generated exemption claims. */
|
|
76
|
+
languageReferences?: LanguageReference[];
|
|
70
77
|
json?: boolean;
|
|
71
78
|
/**
|
|
72
79
|
* The shape the prompt asks for, as a zod schema, sent so the endpoint can constrain
|
|
@@ -107,10 +114,11 @@ export declare class ModelClient {
|
|
|
107
114
|
* Reclassify the preceding successful call when its content cannot satisfy the caller's
|
|
108
115
|
* contract. No response text or validation detail crosses this telemetry boundary.
|
|
109
116
|
*/
|
|
110
|
-
reportInvalidResponse(): void;
|
|
117
|
+
reportInvalidResponse(failure?: 'bad_response' | 'language_mismatch' | 'language_check_failed'): void;
|
|
111
118
|
get available(): boolean;
|
|
112
119
|
get unavailableReason(): string | null;
|
|
113
120
|
get modelId(): string | null;
|
|
121
|
+
get knowledgeLanguage(): 'en' | null;
|
|
114
122
|
get role(): ResolvedModelRole['role'];
|
|
115
123
|
/** Native cross-encoder endpoint unless the role explicitly opts into prompted ranking. */
|
|
116
124
|
get rerankerMode(): 'endpoint' | 'llm';
|
|
@@ -137,6 +145,7 @@ export declare class ModelClient {
|
|
|
137
145
|
score: number;
|
|
138
146
|
}[]>>;
|
|
139
147
|
chat(messages: ChatMessage[], options?: ChatOptions): Promise<ModelOutcome<string>>;
|
|
148
|
+
private chatTransport;
|
|
140
149
|
/**
|
|
141
150
|
* OpenAI's Responses API uses different request keys and nests structured output under
|
|
142
151
|
* `text.format`. This is an explicit provider choice: a failed call never falls through to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/models/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/models/client.ts"],"names":[],"mappings":"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"}
|