@lucern/confidence 0.3.0-alpha.6 → 0.3.0-alpha.8
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/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/v1/index.js +13 -11
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/operations/bridge/index.d.ts +1 -1
- package/dist/v1/operations/contracts/epistemicContract.d.ts +1 -1
- package/dist/v1/operations/contracts/epistemicContract.js +13 -11
- package/dist/v1/operations/contracts/epistemicContract.js.map +1 -1
- package/dist/v1/operations/dynamics/decay.d.ts +1 -1
- package/dist/v1/operations/dynamics/defeat.d.ts +1 -1
- package/dist/v1/operations/lucern.js +13 -11
- package/dist/v1/operations/lucern.js.map +1 -1
- package/dist/v1/operations/scoring.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Opinion, SLOpinion, DirichletOpinion } from '../../types.js';
|
|
2
2
|
|
|
3
3
|
declare const DEFAULT_NON_INFORMATIVE_WEIGHT = 2;
|
|
4
4
|
declare function opinionFromDirichlet(alpha: readonly number[], nonInformativeWeight: number, baseRate: readonly number[]): DirichletOpinion;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EvidentialOperator, EpistemicContractEvaluationResult, EvidentialEvaluatorConfig, EvidentialMetricSnapshot, EpistemicContractRecord, EpistemicContractModulation, ContractModulationPlan, EpistemicContractStatus, VerificationConfidenceTrigger, EvidentialAction, MarketIndexComparatorConfig, MetricCheckerEvaluatorConfig, ReferenceCheckCounterConfig, TemporalDeadlineEvaluatorConfig, EpistemicContractDirection } from '../../types.js';
|
|
2
2
|
|
|
3
3
|
declare const BUILT_IN_EVIDENTIAL_EVALUATOR = "evidential";
|
|
4
4
|
declare const BUILT_IN_EVIDENTIAL_ALIASES: Set<string>;
|
|
@@ -18,6 +18,9 @@ function generateContractId() {
|
|
|
18
18
|
}
|
|
19
19
|
return `contract-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
20
20
|
}
|
|
21
|
+
function isRecord(value) {
|
|
22
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
23
|
+
}
|
|
21
24
|
function deriveContractStatus(result, currentStatus) {
|
|
22
25
|
if (currentStatus === "archived") {
|
|
23
26
|
return currentStatus;
|
|
@@ -159,18 +162,17 @@ function pickFiniteNumber(config, keys) {
|
|
|
159
162
|
return void 0;
|
|
160
163
|
}
|
|
161
164
|
function getEvaluatorInputRecord(inputData, nestedKey) {
|
|
162
|
-
if (!inputData
|
|
165
|
+
if (!isRecord(inputData)) {
|
|
163
166
|
return {};
|
|
164
167
|
}
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
if (nested && typeof nested === "object") {
|
|
168
|
+
const nested = inputData[nestedKey];
|
|
169
|
+
if (isRecord(nested)) {
|
|
168
170
|
return nested;
|
|
169
171
|
}
|
|
170
|
-
return
|
|
172
|
+
return inputData;
|
|
171
173
|
}
|
|
172
174
|
function parseEvidentialEvaluatorConfig(value) {
|
|
173
|
-
if (!value
|
|
175
|
+
if (!isRecord(value)) {
|
|
174
176
|
throw new Error(
|
|
175
177
|
"Evidential contracts require condition.evaluatorConfig with metric/operator/threshold."
|
|
176
178
|
);
|
|
@@ -188,7 +190,7 @@ function parseEvidentialEvaluatorConfig(value) {
|
|
|
188
190
|
if (typeof threshold !== "number" || !Number.isFinite(threshold)) {
|
|
189
191
|
throw new Error("Evidential contracts require a numeric threshold.");
|
|
190
192
|
}
|
|
191
|
-
const actionParams = config.actionParams
|
|
193
|
+
const actionParams = isRecord(config.actionParams) ? config.actionParams : void 0;
|
|
192
194
|
return {
|
|
193
195
|
metric,
|
|
194
196
|
operator,
|
|
@@ -237,7 +239,7 @@ function buildEvidentialRationale(args) {
|
|
|
237
239
|
return `${clause}; comparison ${args.comparisonSatisfied ? "passed" : "failed"}, resulting in ${args.result}.`;
|
|
238
240
|
}
|
|
239
241
|
function parseMetricCheckerConfig(value) {
|
|
240
|
-
if (!value
|
|
242
|
+
if (!isRecord(value)) {
|
|
241
243
|
throw new Error(
|
|
242
244
|
"metric_checker requires condition.evaluatorConfig with observedValue/operator/threshold."
|
|
243
245
|
);
|
|
@@ -254,7 +256,7 @@ function parseMetricCheckerConfig(value) {
|
|
|
254
256
|
};
|
|
255
257
|
}
|
|
256
258
|
function parseReferenceCheckCounterConfig(value) {
|
|
257
|
-
if (!value
|
|
259
|
+
if (!isRecord(value)) {
|
|
258
260
|
throw new Error(
|
|
259
261
|
"reference_check_counter requires condition.evaluatorConfig with tag/operator/threshold."
|
|
260
262
|
);
|
|
@@ -277,7 +279,7 @@ function parseReferenceCheckCounterConfig(value) {
|
|
|
277
279
|
};
|
|
278
280
|
}
|
|
279
281
|
function parseTemporalDeadlineConfig(value) {
|
|
280
|
-
if (!value
|
|
282
|
+
if (!isRecord(value)) {
|
|
281
283
|
return {};
|
|
282
284
|
}
|
|
283
285
|
const config = value;
|
|
@@ -291,7 +293,7 @@ function parseTemporalDeadlineConfig(value) {
|
|
|
291
293
|
};
|
|
292
294
|
}
|
|
293
295
|
function parseMarketIndexComparatorConfig(value) {
|
|
294
|
-
if (!value
|
|
296
|
+
if (!isRecord(value)) {
|
|
295
297
|
throw new Error(
|
|
296
298
|
"market_index_comparator requires condition.evaluatorConfig with subjectValue/benchmarkValue/operator/threshold."
|
|
297
299
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/v1/operations/contracts/epistemicContract.ts"],"names":[],"mappings":"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","file":"epistemicContract.js","sourcesContent":["import type {\n ContractModulationPlan,\n EpistemicContractDirection,\n EpistemicContractEvaluationResult,\n EpistemicContractModulation,\n EpistemicContractRecord,\n EpistemicContractStatus,\n EvidentialAction,\n EvidentialEvaluatorConfig,\n EvidentialMetricSnapshot,\n EvidentialOperator,\n MarketIndexComparatorConfig,\n MetricCheckerEvaluatorConfig,\n ReferenceCheckCounterConfig,\n TemporalDeadlineEvaluatorConfig,\n VerificationConfidenceTrigger,\n} from \"../../types\";\n\nexport const BUILT_IN_EVIDENTIAL_EVALUATOR = \"evidential\";\nexport const BUILT_IN_EVIDENTIAL_ALIASES = new Set([\n BUILT_IN_EVIDENTIAL_EVALUATOR,\n \"built_in_evidential\",\n \"builtin_evidential\",\n]);\nexport const BUILT_IN_METRIC_CHECKER = \"metric_checker\";\nexport const BUILT_IN_REFERENCE_CHECK_COUNTER = \"reference_check_counter\";\nexport const BUILT_IN_TEMPORAL_DEADLINE = \"temporal_deadline\";\nexport const BUILT_IN_MARKET_INDEX_COMPARATOR = \"market_index_comparator\";\n\nfunction clampConfidence(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction generateContractId(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return `contract-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nexport function deriveContractStatus(\n result: EpistemicContractEvaluationResult,\n currentStatus: EpistemicContractStatus\n): EpistemicContractStatus {\n if (currentStatus === \"archived\") {\n return currentStatus;\n }\n\n switch (result) {\n case \"confirmed\":\n return \"satisfied\";\n case \"disconfirmed\":\n return \"violated\";\n case \"expired\":\n return \"expired\";\n default:\n return currentStatus === \"satisfied\" ||\n currentStatus === \"violated\" ||\n currentStatus === \"expired\"\n ? \"active\"\n : currentStatus;\n }\n}\n\nexport function deriveVerificationTrigger(\n result: EpistemicContractEvaluationResult\n): VerificationConfidenceTrigger | null {\n switch (result) {\n case \"confirmed\":\n return \"verification_confirmed\";\n case \"disconfirmed\":\n return \"verification_disconfirmed\";\n case \"expired\":\n return \"verification_expired\";\n case \"partial\":\n return \"verification_partial\";\n default:\n return null;\n }\n}\n\nexport function deriveContractModulationPlan(args: {\n currentConfidence: number;\n modulation: EpistemicContractModulation;\n result: EpistemicContractEvaluationResult;\n resultConfidence?: number;\n}): ContractModulationPlan | null {\n const trigger = deriveVerificationTrigger(args.result);\n if (!trigger) {\n return null;\n }\n\n if (args.result === \"confirmed\") {\n const rawNext = args.currentConfidence + args.modulation.onConfirmed.delta;\n const confidenceAfter = clampConfidence(\n Math.min(\n args.modulation.onConfirmed.ceiling ?? Number.POSITIVE_INFINITY,\n rawNext\n )\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"disconfirmed\") {\n const rawNext =\n args.currentConfidence + args.modulation.onDisconfirmed.delta;\n const confidenceAfter = clampConfidence(\n Math.max(args.modulation.onDisconfirmed.floor ?? 0, rawNext)\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"expired\" && args.modulation.onExpired) {\n const confidenceAfter = clampConfidence(\n args.currentConfidence + args.modulation.onExpired.delta\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"partial\" && args.modulation.onPartial) {\n if ((args.resultConfidence ?? 0) < args.modulation.onPartial.threshold) {\n return null;\n }\n const confidenceAfter = clampConfidence(\n args.currentConfidence + args.modulation.onPartial.delta\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n return null;\n}\n\nexport function createInheritedContractRecord<\n TBeliefId = string,\n TTopicId = string | undefined,\n>(\n contract: EpistemicContractRecord<any, any>,\n args: {\n beliefNodeId: TBeliefId;\n topicId?: TTopicId;\n createdBy: string;\n now: number;\n }\n): EpistemicContractRecord<TBeliefId, TTopicId> {\n return {\n beliefNodeId: args.beliefNodeId,\n contractId: generateContractId(),\n title: contract.title,\n description: contract.description,\n conditionType: contract.conditionType,\n direction: contract.direction,\n condition: contract.condition,\n deadline: contract.deadline,\n compositeOf: contract.compositeOf,\n compositeOperator: contract.compositeOperator,\n modulation: contract.modulation,\n evaluationSchedule: contract.evaluationSchedule,\n periodicIntervalMs: contract.periodicIntervalMs,\n status: \"active\",\n lineageSource: \"inherited\",\n inheritedFromContractId: contract.contractId,\n inheritedFromBeliefNodeId: contract.beliefNodeId as TBeliefId,\n inheritedAt: args.now,\n topicId: args.topicId,\n createdAt: args.now,\n createdBy: args.createdBy,\n updatedAt: args.now,\n };\n}\n\nexport function normalizeEvidentialAction(\n value: unknown\n): EvidentialAction | undefined {\n return value === \"modulate_confidence\" ||\n value === \"flag_review\" ||\n value === \"archive\"\n ? value\n : undefined;\n}\n\nexport function parseComparisonOperator(\n value: unknown,\n evaluatorName: string\n): EvidentialOperator {\n if (\n value === \"gte\" ||\n value === \"lte\" ||\n value === \"eq\" ||\n value === \"gt\" ||\n value === \"lt\"\n ) {\n return value;\n }\n throw new Error(\n `${evaluatorName} requires operator to be one of gte, lte, eq, gt, or lt.`\n );\n}\n\nexport function parseNumericThreshold(\n value: unknown,\n evaluatorName: string\n): number {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n throw new Error(`${evaluatorName} requires a finite numeric threshold.`);\n}\n\nexport function pickFiniteNumber(\n config: Record<string, unknown>,\n keys: string[]\n): number | undefined {\n for (const key of keys) {\n const value = config[key];\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n }\n return undefined;\n}\n\nexport function getEvaluatorInputRecord(\n inputData: unknown,\n nestedKey: string\n): Record<string, unknown> {\n if (!inputData || typeof inputData !== \"object\") {\n return {};\n }\n\n const root = inputData as Record<string, unknown>;\n const nested = root[nestedKey];\n if (nested && typeof nested === \"object\") {\n return nested as Record<string, unknown>;\n }\n return root;\n}\n\nexport function parseEvidentialEvaluatorConfig(\n value: unknown\n): EvidentialEvaluatorConfig {\n if (!value || typeof value !== \"object\") {\n throw new Error(\n \"Evidential contracts require condition.evaluatorConfig with metric/operator/threshold.\"\n );\n }\n\n const config = value as Record<string, unknown>;\n const metric = config.metric;\n const operator = config.operator;\n const threshold = config.threshold;\n\n if (\n metric !== \"evidence_count\" &&\n metric !== \"contradiction_status\" &&\n metric !== \"edge_freshness\" &&\n metric !== \"dependent_count\"\n ) {\n throw new Error(`Unsupported evidential metric: ${String(metric)}`);\n }\n\n if (\n operator !== \"gte\" &&\n operator !== \"lte\" &&\n operator !== \"eq\" &&\n operator !== \"gt\" &&\n operator !== \"lt\"\n ) {\n throw new Error(`Unsupported evidential operator: ${String(operator)}`);\n }\n\n if (typeof threshold !== \"number\" || !Number.isFinite(threshold)) {\n throw new Error(\"Evidential contracts require a numeric threshold.\");\n }\n\n const actionParams =\n config.actionParams &&\n typeof config.actionParams === \"object\" &&\n config.actionParams !== null\n ? (config.actionParams as Record<string, unknown>)\n : undefined;\n\n return {\n metric,\n operator,\n threshold,\n action: normalizeEvidentialAction(config.action),\n actionParams:\n actionParams &&\n (typeof actionParams.targetConfidence === \"number\" ||\n typeof actionParams.rationale === \"string\")\n ? {\n targetConfidence:\n typeof actionParams.targetConfidence === \"number\"\n ? actionParams.targetConfidence\n : undefined,\n rationale:\n typeof actionParams.rationale === \"string\"\n ? actionParams.rationale\n : undefined,\n }\n : undefined,\n };\n}\n\nexport function compareMetricValue(\n operator: EvidentialOperator,\n left: number,\n right: number\n): boolean {\n switch (operator) {\n case \"gte\":\n return left >= right;\n case \"lte\":\n return left <= right;\n case \"eq\":\n return left === right;\n case \"gt\":\n return left > right;\n case \"lt\":\n return left < right;\n default:\n return false;\n }\n}\n\nexport function resolveComparisonResult(\n direction: EpistemicContractDirection,\n comparisonSatisfied: boolean\n): EpistemicContractEvaluationResult {\n return direction === \"falsifies\"\n ? comparisonSatisfied\n ? \"disconfirmed\"\n : \"confirmed\"\n : comparisonSatisfied\n ? \"confirmed\"\n : \"disconfirmed\";\n}\n\nexport function buildComparisonRationale(args: {\n label: string;\n observedValue: number | null;\n operator: EvidentialOperator;\n threshold: number;\n comparisonSatisfied: boolean;\n result: EpistemicContractEvaluationResult;\n unit?: string;\n}): string {\n const renderedObserved =\n args.observedValue === null\n ? \"no data\"\n : `${args.observedValue}${args.unit ? ` ${args.unit}` : \"\"}`;\n const renderedThreshold = `${args.threshold}${args.unit ? ` ${args.unit}` : \"\"}`;\n const clause = `${args.label} observed ${renderedObserved} against ${args.operator} ${renderedThreshold}`;\n\n if (args.observedValue === null) {\n return `${clause}; evaluator returned ${args.result} because no current data was available.`;\n }\n\n return `${clause}; comparison ${\n args.comparisonSatisfied ? \"passed\" : \"failed\"\n }, resulting in ${args.result}.`;\n}\n\nexport function buildEvidentialRationale(args: {\n config: EvidentialEvaluatorConfig;\n snapshot: EvidentialMetricSnapshot;\n comparisonSatisfied: boolean;\n result: EpistemicContractEvaluationResult;\n}): string {\n const observed =\n args.snapshot.value === null ? \"no data\" : String(args.snapshot.value);\n const clause = `${args.snapshot.metric} observed ${observed} against ${args.config.operator} ${args.config.threshold}`;\n\n if (args.snapshot.value === null) {\n return `${clause}; evidential evaluator treated the comparison as unmet, resulting in ${args.result}.`;\n }\n\n return `${clause}; comparison ${\n args.comparisonSatisfied ? \"passed\" : \"failed\"\n }, resulting in ${args.result}.`;\n}\n\nexport function parseMetricCheckerConfig(\n value: unknown\n): MetricCheckerEvaluatorConfig {\n if (!value || typeof value !== \"object\") {\n throw new Error(\n \"metric_checker requires condition.evaluatorConfig with observedValue/operator/threshold.\"\n );\n }\n\n const config = value as Record<string, unknown>;\n return {\n metric:\n typeof config.metric === \"string\" && config.metric.length > 0\n ? config.metric\n : undefined,\n operator: parseComparisonOperator(config.operator, BUILT_IN_METRIC_CHECKER),\n threshold: parseNumericThreshold(config.threshold, BUILT_IN_METRIC_CHECKER),\n observedValue: pickFiniteNumber(config, [\"observedValue\", \"value\"]),\n currentValue: pickFiniteNumber(config, [\"currentValue\"]),\n metricValue: pickFiniteNumber(config, [\"metricValue\"]),\n unit:\n typeof config.unit === \"string\" && config.unit.length > 0\n ? config.unit\n : undefined,\n };\n}\n\nexport function parseReferenceCheckCounterConfig(\n value: unknown\n): ReferenceCheckCounterConfig {\n if (!value || typeof value !== \"object\") {\n throw new Error(\n \"reference_check_counter requires condition.evaluatorConfig with tag/operator/threshold.\"\n );\n }\n\n const config = value as Record<string, unknown>;\n if (typeof config.tag !== \"string\" || config.tag.trim().length === 0) {\n throw new Error(\"reference_check_counter requires a non-empty tag.\");\n }\n\n return {\n tag: config.tag.trim(),\n operator: parseComparisonOperator(\n config.operator,\n BUILT_IN_REFERENCE_CHECK_COUNTER\n ),\n threshold: parseNumericThreshold(\n config.threshold,\n BUILT_IN_REFERENCE_CHECK_COUNTER\n ),\n caseSensitive: config.caseSensitive === true,\n };\n}\n\nexport function parseTemporalDeadlineConfig(\n value: unknown\n): TemporalDeadlineEvaluatorConfig {\n if (!value || typeof value !== \"object\") {\n return {};\n }\n\n const config = value as Record<string, unknown>;\n return {\n label:\n typeof config.label === \"string\" && config.label.length > 0\n ? config.label\n : undefined,\n completed: config.completed === true,\n completedAt: pickFiniteNumber(config, [\"completedAt\"]),\n observedAt: pickFiniteNumber(config, [\"observedAt\"]),\n satisfiedAt: pickFiniteNumber(config, [\"satisfiedAt\"]),\n achievedAt: pickFiniteNumber(config, [\"achievedAt\"]),\n };\n}\n\nexport function parseMarketIndexComparatorConfig(\n value: unknown\n): MarketIndexComparatorConfig {\n if (!value || typeof value !== \"object\") {\n throw new Error(\n \"market_index_comparator requires condition.evaluatorConfig with subjectValue/benchmarkValue/operator/threshold.\"\n );\n }\n\n const config = value as Record<string, unknown>;\n return {\n subject:\n typeof config.subject === \"string\" && config.subject.length > 0\n ? config.subject\n : undefined,\n subjectValue: pickFiniteNumber(config, [\"subjectValue\", \"leftValue\"]),\n primaryValue: pickFiniteNumber(config, [\"primaryValue\"]),\n benchmark:\n typeof config.benchmark === \"string\" && config.benchmark.length > 0\n ? config.benchmark\n : undefined,\n benchmarkValue: pickFiniteNumber(config, [\"benchmarkValue\", \"rightValue\"]),\n comparisonValue: pickFiniteNumber(config, [\"comparisonValue\"]),\n operator: parseComparisonOperator(\n config.operator,\n BUILT_IN_MARKET_INDEX_COMPARATOR\n ),\n threshold: parseNumericThreshold(\n config.threshold,\n BUILT_IN_MARKET_INDEX_COMPARATOR\n ),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/v1/operations/contracts/epistemicContract.ts"],"names":[],"mappings":"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","file":"epistemicContract.js","sourcesContent":["import type {\n ContractModulationPlan,\n EpistemicContractDirection,\n EpistemicContractEvaluationResult,\n EpistemicContractModulation,\n EpistemicContractRecord,\n EpistemicContractStatus,\n EvidentialAction,\n EvidentialEvaluatorConfig,\n EvidentialMetricSnapshot,\n EvidentialOperator,\n MarketIndexComparatorConfig,\n MetricCheckerEvaluatorConfig,\n ReferenceCheckCounterConfig,\n TemporalDeadlineEvaluatorConfig,\n VerificationConfidenceTrigger,\n} from \"../../types\";\n\nexport const BUILT_IN_EVIDENTIAL_EVALUATOR = \"evidential\";\nexport const BUILT_IN_EVIDENTIAL_ALIASES = new Set([\n BUILT_IN_EVIDENTIAL_EVALUATOR,\n \"built_in_evidential\",\n \"builtin_evidential\",\n]);\nexport const BUILT_IN_METRIC_CHECKER = \"metric_checker\";\nexport const BUILT_IN_REFERENCE_CHECK_COUNTER = \"reference_check_counter\";\nexport const BUILT_IN_TEMPORAL_DEADLINE = \"temporal_deadline\";\nexport const BUILT_IN_MARKET_INDEX_COMPARATOR = \"market_index_comparator\";\n\nfunction clampConfidence(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction generateContractId(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n return `contract-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nexport function deriveContractStatus(\n result: EpistemicContractEvaluationResult,\n currentStatus: EpistemicContractStatus\n): EpistemicContractStatus {\n if (currentStatus === \"archived\") {\n return currentStatus;\n }\n\n switch (result) {\n case \"confirmed\":\n return \"satisfied\";\n case \"disconfirmed\":\n return \"violated\";\n case \"expired\":\n return \"expired\";\n default:\n return currentStatus === \"satisfied\" ||\n currentStatus === \"violated\" ||\n currentStatus === \"expired\"\n ? \"active\"\n : currentStatus;\n }\n}\n\nexport function deriveVerificationTrigger(\n result: EpistemicContractEvaluationResult\n): VerificationConfidenceTrigger | null {\n switch (result) {\n case \"confirmed\":\n return \"verification_confirmed\";\n case \"disconfirmed\":\n return \"verification_disconfirmed\";\n case \"expired\":\n return \"verification_expired\";\n case \"partial\":\n return \"verification_partial\";\n default:\n return null;\n }\n}\n\nexport function deriveContractModulationPlan(args: {\n currentConfidence: number;\n modulation: EpistemicContractModulation;\n result: EpistemicContractEvaluationResult;\n resultConfidence?: number;\n}): ContractModulationPlan | null {\n const trigger = deriveVerificationTrigger(args.result);\n if (!trigger) {\n return null;\n }\n\n if (args.result === \"confirmed\") {\n const rawNext = args.currentConfidence + args.modulation.onConfirmed.delta;\n const confidenceAfter = clampConfidence(\n Math.min(\n args.modulation.onConfirmed.ceiling ?? Number.POSITIVE_INFINITY,\n rawNext\n )\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"disconfirmed\") {\n const rawNext =\n args.currentConfidence + args.modulation.onDisconfirmed.delta;\n const confidenceAfter = clampConfidence(\n Math.max(args.modulation.onDisconfirmed.floor ?? 0, rawNext)\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"expired\" && args.modulation.onExpired) {\n const confidenceAfter = clampConfidence(\n args.currentConfidence + args.modulation.onExpired.delta\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n if (args.result === \"partial\" && args.modulation.onPartial) {\n if ((args.resultConfidence ?? 0) < args.modulation.onPartial.threshold) {\n return null;\n }\n const confidenceAfter = clampConfidence(\n args.currentConfidence + args.modulation.onPartial.delta\n );\n return {\n trigger,\n confidenceBefore: args.currentConfidence,\n confidenceAfter,\n confidenceDelta: confidenceAfter - args.currentConfidence,\n };\n }\n\n return null;\n}\n\nexport function createInheritedContractRecord<\n TBeliefId = string,\n TTopicId = string | undefined,\n>(\n contract: EpistemicContractRecord<any, any>,\n args: {\n beliefNodeId: TBeliefId;\n topicId?: TTopicId;\n createdBy: string;\n now: number;\n }\n): EpistemicContractRecord<TBeliefId, TTopicId> {\n return {\n beliefNodeId: args.beliefNodeId,\n contractId: generateContractId(),\n title: contract.title,\n description: contract.description,\n conditionType: contract.conditionType,\n direction: contract.direction,\n condition: contract.condition,\n deadline: contract.deadline,\n compositeOf: contract.compositeOf,\n compositeOperator: contract.compositeOperator,\n modulation: contract.modulation,\n evaluationSchedule: contract.evaluationSchedule,\n periodicIntervalMs: contract.periodicIntervalMs,\n status: \"active\",\n lineageSource: \"inherited\",\n inheritedFromContractId: contract.contractId,\n inheritedFromBeliefNodeId: contract.beliefNodeId as TBeliefId,\n inheritedAt: args.now,\n topicId: args.topicId,\n createdAt: args.now,\n createdBy: args.createdBy,\n updatedAt: args.now,\n };\n}\n\nexport function normalizeEvidentialAction(\n value: unknown\n): EvidentialAction | undefined {\n return value === \"modulate_confidence\" ||\n value === \"flag_review\" ||\n value === \"archive\"\n ? value\n : undefined;\n}\n\nexport function parseComparisonOperator(\n value: unknown,\n evaluatorName: string\n): EvidentialOperator {\n if (\n value === \"gte\" ||\n value === \"lte\" ||\n value === \"eq\" ||\n value === \"gt\" ||\n value === \"lt\"\n ) {\n return value;\n }\n throw new Error(\n `${evaluatorName} requires operator to be one of gte, lte, eq, gt, or lt.`\n );\n}\n\nexport function parseNumericThreshold(\n value: unknown,\n evaluatorName: string\n): number {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n throw new Error(`${evaluatorName} requires a finite numeric threshold.`);\n}\n\nexport function pickFiniteNumber(\n config: Record<string, unknown>,\n keys: string[]\n): number | undefined {\n for (const key of keys) {\n const value = config[key];\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return value;\n }\n }\n return undefined;\n}\n\nexport function getEvaluatorInputRecord(\n inputData: unknown,\n nestedKey: string\n): Record<string, unknown> {\n if (!isRecord(inputData)) {\n return {};\n }\n\n const nested = inputData[nestedKey];\n if (isRecord(nested)) {\n return nested;\n }\n return inputData;\n}\n\nexport function parseEvidentialEvaluatorConfig(\n value: unknown\n): EvidentialEvaluatorConfig {\n if (!isRecord(value)) {\n throw new Error(\n \"Evidential contracts require condition.evaluatorConfig with metric/operator/threshold.\"\n );\n }\n\n const config = value;\n const metric = config.metric;\n const operator = config.operator;\n const threshold = config.threshold;\n\n if (\n metric !== \"evidence_count\" &&\n metric !== \"contradiction_status\" &&\n metric !== \"edge_freshness\" &&\n metric !== \"dependent_count\"\n ) {\n throw new Error(`Unsupported evidential metric: ${String(metric)}`);\n }\n\n if (\n operator !== \"gte\" &&\n operator !== \"lte\" &&\n operator !== \"eq\" &&\n operator !== \"gt\" &&\n operator !== \"lt\"\n ) {\n throw new Error(`Unsupported evidential operator: ${String(operator)}`);\n }\n\n if (typeof threshold !== \"number\" || !Number.isFinite(threshold)) {\n throw new Error(\"Evidential contracts require a numeric threshold.\");\n }\n\n const actionParams =\n isRecord(config.actionParams) ? config.actionParams : undefined;\n\n return {\n metric,\n operator,\n threshold,\n action: normalizeEvidentialAction(config.action),\n actionParams:\n actionParams &&\n (typeof actionParams.targetConfidence === \"number\" ||\n typeof actionParams.rationale === \"string\")\n ? {\n targetConfidence:\n typeof actionParams.targetConfidence === \"number\"\n ? actionParams.targetConfidence\n : undefined,\n rationale:\n typeof actionParams.rationale === \"string\"\n ? actionParams.rationale\n : undefined,\n }\n : undefined,\n };\n}\n\nexport function compareMetricValue(\n operator: EvidentialOperator,\n left: number,\n right: number\n): boolean {\n switch (operator) {\n case \"gte\":\n return left >= right;\n case \"lte\":\n return left <= right;\n case \"eq\":\n return left === right;\n case \"gt\":\n return left > right;\n case \"lt\":\n return left < right;\n default:\n return false;\n }\n}\n\nexport function resolveComparisonResult(\n direction: EpistemicContractDirection,\n comparisonSatisfied: boolean\n): EpistemicContractEvaluationResult {\n return direction === \"falsifies\"\n ? comparisonSatisfied\n ? \"disconfirmed\"\n : \"confirmed\"\n : comparisonSatisfied\n ? \"confirmed\"\n : \"disconfirmed\";\n}\n\nexport function buildComparisonRationale(args: {\n label: string;\n observedValue: number | null;\n operator: EvidentialOperator;\n threshold: number;\n comparisonSatisfied: boolean;\n result: EpistemicContractEvaluationResult;\n unit?: string;\n}): string {\n const renderedObserved =\n args.observedValue === null\n ? \"no data\"\n : `${args.observedValue}${args.unit ? ` ${args.unit}` : \"\"}`;\n const renderedThreshold = `${args.threshold}${args.unit ? ` ${args.unit}` : \"\"}`;\n const clause = `${args.label} observed ${renderedObserved} against ${args.operator} ${renderedThreshold}`;\n\n if (args.observedValue === null) {\n return `${clause}; evaluator returned ${args.result} because no current data was available.`;\n }\n\n return `${clause}; comparison ${\n args.comparisonSatisfied ? \"passed\" : \"failed\"\n }, resulting in ${args.result}.`;\n}\n\nexport function buildEvidentialRationale(args: {\n config: EvidentialEvaluatorConfig;\n snapshot: EvidentialMetricSnapshot;\n comparisonSatisfied: boolean;\n result: EpistemicContractEvaluationResult;\n}): string {\n const observed =\n args.snapshot.value === null ? \"no data\" : String(args.snapshot.value);\n const clause = `${args.snapshot.metric} observed ${observed} against ${args.config.operator} ${args.config.threshold}`;\n\n if (args.snapshot.value === null) {\n return `${clause}; evidential evaluator treated the comparison as unmet, resulting in ${args.result}.`;\n }\n\n return `${clause}; comparison ${\n args.comparisonSatisfied ? \"passed\" : \"failed\"\n }, resulting in ${args.result}.`;\n}\n\nexport function parseMetricCheckerConfig(\n value: unknown\n): MetricCheckerEvaluatorConfig {\n if (!isRecord(value)) {\n throw new Error(\n \"metric_checker requires condition.evaluatorConfig with observedValue/operator/threshold.\"\n );\n }\n\n const config = value;\n return {\n metric:\n typeof config.metric === \"string\" && config.metric.length > 0\n ? config.metric\n : undefined,\n operator: parseComparisonOperator(config.operator, BUILT_IN_METRIC_CHECKER),\n threshold: parseNumericThreshold(config.threshold, BUILT_IN_METRIC_CHECKER),\n observedValue: pickFiniteNumber(config, [\"observedValue\", \"value\"]),\n currentValue: pickFiniteNumber(config, [\"currentValue\"]),\n metricValue: pickFiniteNumber(config, [\"metricValue\"]),\n unit:\n typeof config.unit === \"string\" && config.unit.length > 0\n ? config.unit\n : undefined,\n };\n}\n\nexport function parseReferenceCheckCounterConfig(\n value: unknown\n): ReferenceCheckCounterConfig {\n if (!isRecord(value)) {\n throw new Error(\n \"reference_check_counter requires condition.evaluatorConfig with tag/operator/threshold.\"\n );\n }\n\n const config = value;\n if (typeof config.tag !== \"string\" || config.tag.trim().length === 0) {\n throw new Error(\"reference_check_counter requires a non-empty tag.\");\n }\n\n return {\n tag: config.tag.trim(),\n operator: parseComparisonOperator(\n config.operator,\n BUILT_IN_REFERENCE_CHECK_COUNTER\n ),\n threshold: parseNumericThreshold(\n config.threshold,\n BUILT_IN_REFERENCE_CHECK_COUNTER\n ),\n caseSensitive: config.caseSensitive === true,\n };\n}\n\nexport function parseTemporalDeadlineConfig(\n value: unknown\n): TemporalDeadlineEvaluatorConfig {\n if (!isRecord(value)) {\n return {};\n }\n\n const config = value;\n return {\n label:\n typeof config.label === \"string\" && config.label.length > 0\n ? config.label\n : undefined,\n completed: config.completed === true,\n completedAt: pickFiniteNumber(config, [\"completedAt\"]),\n observedAt: pickFiniteNumber(config, [\"observedAt\"]),\n satisfiedAt: pickFiniteNumber(config, [\"satisfiedAt\"]),\n achievedAt: pickFiniteNumber(config, [\"achievedAt\"]),\n };\n}\n\nexport function parseMarketIndexComparatorConfig(\n value: unknown\n): MarketIndexComparatorConfig {\n if (!isRecord(value)) {\n throw new Error(\n \"market_index_comparator requires condition.evaluatorConfig with subjectValue/benchmarkValue/operator/threshold.\"\n );\n }\n\n const config = value;\n return {\n subject:\n typeof config.subject === \"string\" && config.subject.length > 0\n ? config.subject\n : undefined,\n subjectValue: pickFiniteNumber(config, [\"subjectValue\", \"leftValue\"]),\n primaryValue: pickFiniteNumber(config, [\"primaryValue\"]),\n benchmark:\n typeof config.benchmark === \"string\" && config.benchmark.length > 0\n ? config.benchmark\n : undefined,\n benchmarkValue: pickFiniteNumber(config, [\"benchmarkValue\", \"rightValue\"]),\n comparisonValue: pickFiniteNumber(config, [\"comparisonValue\"]),\n operator: parseComparisonOperator(\n config.operator,\n BUILT_IN_MARKET_INDEX_COMPARATOR\n ),\n threshold: parseNumericThreshold(\n config.threshold,\n BUILT_IN_MARKET_INDEX_COMPARATOR\n ),\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DeadlineUrgencyTier, DecayTier, DeadlineUrgency, BeliefLifecycleBucket, EffectiveDecay, Opinion, RescoringSchedule } from '../../types.js';
|
|
2
2
|
|
|
3
3
|
declare const DECAY_TIERS: Record<string, DecayTier>;
|
|
4
4
|
declare const DEADLINE_URGENCY: Record<string, DeadlineUrgencyTier>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Opinion,
|
|
1
|
+
import { Opinion, PropagationResult, EdgeMetadata } from '../../types.js';
|
|
2
2
|
|
|
3
3
|
declare function applyNegativeSupport(source: Opinion, target: Opinion, weight: number, metadata?: EdgeMetadata): PropagationResult;
|
|
4
4
|
declare function applyNegativeEvidence(source: Opinion, target: Opinion, weight: number): PropagationResult;
|
|
@@ -1028,6 +1028,9 @@ function generateContractId() {
|
|
|
1028
1028
|
}
|
|
1029
1029
|
return `contract-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
1030
1030
|
}
|
|
1031
|
+
function isRecord(value) {
|
|
1032
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
1033
|
+
}
|
|
1031
1034
|
function deriveContractStatus(result, currentStatus) {
|
|
1032
1035
|
if (currentStatus === "archived") {
|
|
1033
1036
|
return currentStatus;
|
|
@@ -1169,18 +1172,17 @@ function pickFiniteNumber(config, keys) {
|
|
|
1169
1172
|
return void 0;
|
|
1170
1173
|
}
|
|
1171
1174
|
function getEvaluatorInputRecord(inputData, nestedKey) {
|
|
1172
|
-
if (!inputData
|
|
1175
|
+
if (!isRecord(inputData)) {
|
|
1173
1176
|
return {};
|
|
1174
1177
|
}
|
|
1175
|
-
const
|
|
1176
|
-
|
|
1177
|
-
if (nested && typeof nested === "object") {
|
|
1178
|
+
const nested = inputData[nestedKey];
|
|
1179
|
+
if (isRecord(nested)) {
|
|
1178
1180
|
return nested;
|
|
1179
1181
|
}
|
|
1180
|
-
return
|
|
1182
|
+
return inputData;
|
|
1181
1183
|
}
|
|
1182
1184
|
function parseEvidentialEvaluatorConfig(value) {
|
|
1183
|
-
if (!value
|
|
1185
|
+
if (!isRecord(value)) {
|
|
1184
1186
|
throw new Error(
|
|
1185
1187
|
"Evidential contracts require condition.evaluatorConfig with metric/operator/threshold."
|
|
1186
1188
|
);
|
|
@@ -1198,7 +1200,7 @@ function parseEvidentialEvaluatorConfig(value) {
|
|
|
1198
1200
|
if (typeof threshold !== "number" || !Number.isFinite(threshold)) {
|
|
1199
1201
|
throw new Error("Evidential contracts require a numeric threshold.");
|
|
1200
1202
|
}
|
|
1201
|
-
const actionParams = config.actionParams
|
|
1203
|
+
const actionParams = isRecord(config.actionParams) ? config.actionParams : void 0;
|
|
1202
1204
|
return {
|
|
1203
1205
|
metric,
|
|
1204
1206
|
operator,
|
|
@@ -1247,7 +1249,7 @@ function buildEvidentialRationale(args) {
|
|
|
1247
1249
|
return `${clause}; comparison ${args.comparisonSatisfied ? "passed" : "failed"}, resulting in ${args.result}.`;
|
|
1248
1250
|
}
|
|
1249
1251
|
function parseMetricCheckerConfig(value) {
|
|
1250
|
-
if (!value
|
|
1252
|
+
if (!isRecord(value)) {
|
|
1251
1253
|
throw new Error(
|
|
1252
1254
|
"metric_checker requires condition.evaluatorConfig with observedValue/operator/threshold."
|
|
1253
1255
|
);
|
|
@@ -1264,7 +1266,7 @@ function parseMetricCheckerConfig(value) {
|
|
|
1264
1266
|
};
|
|
1265
1267
|
}
|
|
1266
1268
|
function parseReferenceCheckCounterConfig(value) {
|
|
1267
|
-
if (!value
|
|
1269
|
+
if (!isRecord(value)) {
|
|
1268
1270
|
throw new Error(
|
|
1269
1271
|
"reference_check_counter requires condition.evaluatorConfig with tag/operator/threshold."
|
|
1270
1272
|
);
|
|
@@ -1287,7 +1289,7 @@ function parseReferenceCheckCounterConfig(value) {
|
|
|
1287
1289
|
};
|
|
1288
1290
|
}
|
|
1289
1291
|
function parseTemporalDeadlineConfig(value) {
|
|
1290
|
-
if (!value
|
|
1292
|
+
if (!isRecord(value)) {
|
|
1291
1293
|
return {};
|
|
1292
1294
|
}
|
|
1293
1295
|
const config = value;
|
|
@@ -1301,7 +1303,7 @@ function parseTemporalDeadlineConfig(value) {
|
|
|
1301
1303
|
};
|
|
1302
1304
|
}
|
|
1303
1305
|
function parseMarketIndexComparatorConfig(value) {
|
|
1304
|
-
if (!value
|
|
1306
|
+
if (!isRecord(value)) {
|
|
1305
1307
|
throw new Error(
|
|
1306
1308
|
"market_index_comparator requires condition.evaluatorConfig with subjectValue/benchmarkValue/operator/threshold."
|
|
1307
1309
|
);
|