genesis-ai-cli 7.4.5
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/.env.example +78 -0
- package/README.md +282 -0
- package/dist/src/active-inference/actions.d.ts +75 -0
- package/dist/src/active-inference/actions.js +250 -0
- package/dist/src/active-inference/autonomous-loop.d.ts +103 -0
- package/dist/src/active-inference/autonomous-loop.js +289 -0
- package/dist/src/active-inference/core.d.ts +85 -0
- package/dist/src/active-inference/core.js +555 -0
- package/dist/src/active-inference/demo-autonomous-loop.d.ts +8 -0
- package/dist/src/active-inference/demo-autonomous-loop.js +338 -0
- package/dist/src/active-inference/demo-value-integration.d.ts +8 -0
- package/dist/src/active-inference/demo-value-integration.js +174 -0
- package/dist/src/active-inference/index.d.ts +32 -0
- package/dist/src/active-inference/index.js +88 -0
- package/dist/src/active-inference/integration.d.ts +114 -0
- package/dist/src/active-inference/integration.js +698 -0
- package/dist/src/active-inference/memory-integration.d.ts +51 -0
- package/dist/src/active-inference/memory-integration.js +232 -0
- package/dist/src/active-inference/observations.d.ts +67 -0
- package/dist/src/active-inference/observations.js +147 -0
- package/dist/src/active-inference/test-active-inference.d.ts +8 -0
- package/dist/src/active-inference/test-active-inference.js +320 -0
- package/dist/src/active-inference/test-value-integration.d.ts +6 -0
- package/dist/src/active-inference/test-value-integration.js +168 -0
- package/dist/src/active-inference/types.d.ts +150 -0
- package/dist/src/active-inference/types.js +59 -0
- package/dist/src/active-inference/value-integration.d.ts +164 -0
- package/dist/src/active-inference/value-integration.js +459 -0
- package/dist/src/agents/base-agent.d.ts +53 -0
- package/dist/src/agents/base-agent.js +178 -0
- package/dist/src/agents/builder.d.ts +67 -0
- package/dist/src/agents/builder.js +537 -0
- package/dist/src/agents/critic.d.ts +35 -0
- package/dist/src/agents/critic.js +322 -0
- package/dist/src/agents/ethicist.d.ts +54 -0
- package/dist/src/agents/ethicist.js +393 -0
- package/dist/src/agents/explorer.d.ts +26 -0
- package/dist/src/agents/explorer.js +216 -0
- package/dist/src/agents/feeling.d.ts +41 -0
- package/dist/src/agents/feeling.js +320 -0
- package/dist/src/agents/index.d.ts +111 -0
- package/dist/src/agents/index.js +222 -0
- package/dist/src/agents/memory.d.ts +69 -0
- package/dist/src/agents/memory.js +404 -0
- package/dist/src/agents/message-bus.d.ts +88 -0
- package/dist/src/agents/message-bus.js +267 -0
- package/dist/src/agents/narrator.d.ts +90 -0
- package/dist/src/agents/narrator.js +473 -0
- package/dist/src/agents/planner.d.ts +38 -0
- package/dist/src/agents/planner.js +341 -0
- package/dist/src/agents/predictor.d.ts +73 -0
- package/dist/src/agents/predictor.js +506 -0
- package/dist/src/agents/sensor.d.ts +88 -0
- package/dist/src/agents/sensor.js +377 -0
- package/dist/src/agents/test-agents.d.ts +6 -0
- package/dist/src/agents/test-agents.js +73 -0
- package/dist/src/agents/types.d.ts +194 -0
- package/dist/src/agents/types.js +7 -0
- package/dist/src/brain/index.d.ts +185 -0
- package/dist/src/brain/index.js +843 -0
- package/dist/src/brain/trace.d.ts +91 -0
- package/dist/src/brain/trace.js +327 -0
- package/dist/src/brain/types.d.ts +165 -0
- package/dist/src/brain/types.js +51 -0
- package/dist/src/cli/chat.d.ts +237 -0
- package/dist/src/cli/chat.js +1959 -0
- package/dist/src/cli/dispatcher.d.ts +182 -0
- package/dist/src/cli/dispatcher.js +718 -0
- package/dist/src/cli/human-loop.d.ts +170 -0
- package/dist/src/cli/human-loop.js +543 -0
- package/dist/src/cli/index.d.ts +12 -0
- package/dist/src/cli/index.js +28 -0
- package/dist/src/cli/interactive.d.ts +141 -0
- package/dist/src/cli/interactive.js +757 -0
- package/dist/src/cli/ui.d.ts +205 -0
- package/dist/src/cli/ui.js +632 -0
- package/dist/src/consciousness/attention-schema.d.ts +154 -0
- package/dist/src/consciousness/attention-schema.js +432 -0
- package/dist/src/consciousness/global-workspace.d.ts +149 -0
- package/dist/src/consciousness/global-workspace.js +422 -0
- package/dist/src/consciousness/index.d.ts +186 -0
- package/dist/src/consciousness/index.js +476 -0
- package/dist/src/consciousness/phi-calculator.d.ts +119 -0
- package/dist/src/consciousness/phi-calculator.js +445 -0
- package/dist/src/consciousness/phi-decisions.d.ts +169 -0
- package/dist/src/consciousness/phi-decisions.js +383 -0
- package/dist/src/consciousness/phi-monitor.d.ts +153 -0
- package/dist/src/consciousness/phi-monitor.js +465 -0
- package/dist/src/consciousness/types.d.ts +260 -0
- package/dist/src/consciousness/types.js +44 -0
- package/dist/src/daemon/dream-mode.d.ts +115 -0
- package/dist/src/daemon/dream-mode.js +470 -0
- package/dist/src/daemon/index.d.ts +162 -0
- package/dist/src/daemon/index.js +542 -0
- package/dist/src/daemon/maintenance.d.ts +139 -0
- package/dist/src/daemon/maintenance.js +549 -0
- package/dist/src/daemon/process.d.ts +82 -0
- package/dist/src/daemon/process.js +442 -0
- package/dist/src/daemon/scheduler.d.ts +90 -0
- package/dist/src/daemon/scheduler.js +494 -0
- package/dist/src/daemon/types.d.ts +213 -0
- package/dist/src/daemon/types.js +50 -0
- package/dist/src/epistemic/index.d.ts +74 -0
- package/dist/src/epistemic/index.js +225 -0
- package/dist/src/grounding/epistemic-stack.d.ts +100 -0
- package/dist/src/grounding/epistemic-stack.js +408 -0
- package/dist/src/grounding/feedback.d.ts +98 -0
- package/dist/src/grounding/feedback.js +276 -0
- package/dist/src/grounding/index.d.ts +123 -0
- package/dist/src/grounding/index.js +224 -0
- package/dist/src/grounding/verifier.d.ts +149 -0
- package/dist/src/grounding/verifier.js +484 -0
- package/dist/src/healing/detector.d.ts +110 -0
- package/dist/src/healing/detector.js +436 -0
- package/dist/src/healing/fixer.d.ts +138 -0
- package/dist/src/healing/fixer.js +572 -0
- package/dist/src/healing/index.d.ts +23 -0
- package/dist/src/healing/index.js +43 -0
- package/dist/src/hooks/index.d.ts +135 -0
- package/dist/src/hooks/index.js +317 -0
- package/dist/src/index.d.ts +23 -0
- package/dist/src/index.js +1266 -0
- package/dist/src/kernel/index.d.ts +155 -0
- package/dist/src/kernel/index.js +795 -0
- package/dist/src/kernel/invariants.d.ts +153 -0
- package/dist/src/kernel/invariants.js +355 -0
- package/dist/src/kernel/test-kernel.d.ts +6 -0
- package/dist/src/kernel/test-kernel.js +108 -0
- package/dist/src/kernel/test-real-mcp.d.ts +10 -0
- package/dist/src/kernel/test-real-mcp.js +295 -0
- package/dist/src/llm/index.d.ts +146 -0
- package/dist/src/llm/index.js +428 -0
- package/dist/src/llm/router.d.ts +136 -0
- package/dist/src/llm/router.js +510 -0
- package/dist/src/mcp/index.d.ts +85 -0
- package/dist/src/mcp/index.js +657 -0
- package/dist/src/mcp/resilient.d.ts +139 -0
- package/dist/src/mcp/resilient.js +417 -0
- package/dist/src/memory/cache.d.ts +118 -0
- package/dist/src/memory/cache.js +356 -0
- package/dist/src/memory/cognitive-workspace.d.ts +231 -0
- package/dist/src/memory/cognitive-workspace.js +521 -0
- package/dist/src/memory/consolidation.d.ts +99 -0
- package/dist/src/memory/consolidation.js +443 -0
- package/dist/src/memory/episodic.d.ts +114 -0
- package/dist/src/memory/episodic.js +394 -0
- package/dist/src/memory/forgetting.d.ts +134 -0
- package/dist/src/memory/forgetting.js +324 -0
- package/dist/src/memory/index.d.ts +211 -0
- package/dist/src/memory/index.js +367 -0
- package/dist/src/memory/indexer.d.ts +123 -0
- package/dist/src/memory/indexer.js +479 -0
- package/dist/src/memory/procedural.d.ts +136 -0
- package/dist/src/memory/procedural.js +479 -0
- package/dist/src/memory/semantic.d.ts +132 -0
- package/dist/src/memory/semantic.js +497 -0
- package/dist/src/memory/types.d.ts +193 -0
- package/dist/src/memory/types.js +15 -0
- package/dist/src/orchestrator.d.ts +65 -0
- package/dist/src/orchestrator.js +317 -0
- package/dist/src/persistence/index.d.ts +257 -0
- package/dist/src/persistence/index.js +763 -0
- package/dist/src/pipeline/executor.d.ts +51 -0
- package/dist/src/pipeline/executor.js +695 -0
- package/dist/src/pipeline/index.d.ts +7 -0
- package/dist/src/pipeline/index.js +11 -0
- package/dist/src/self-production.d.ts +67 -0
- package/dist/src/self-production.js +205 -0
- package/dist/src/subagents/executor.d.ts +58 -0
- package/dist/src/subagents/executor.js +283 -0
- package/dist/src/subagents/index.d.ts +37 -0
- package/dist/src/subagents/index.js +53 -0
- package/dist/src/subagents/registry.d.ts +23 -0
- package/dist/src/subagents/registry.js +167 -0
- package/dist/src/subagents/types.d.ts +79 -0
- package/dist/src/subagents/types.js +14 -0
- package/dist/src/tools/bash.d.ts +139 -0
- package/dist/src/tools/bash.js +583 -0
- package/dist/src/tools/edit.d.ts +125 -0
- package/dist/src/tools/edit.js +424 -0
- package/dist/src/tools/git.d.ts +179 -0
- package/dist/src/tools/git.js +504 -0
- package/dist/src/tools/index.d.ts +21 -0
- package/dist/src/tools/index.js +163 -0
- package/dist/src/types.d.ts +145 -0
- package/dist/src/types.js +7 -0
- package/dist/src/world-model/decoder.d.ts +163 -0
- package/dist/src/world-model/decoder.js +517 -0
- package/dist/src/world-model/digital-twin.d.ts +219 -0
- package/dist/src/world-model/digital-twin.js +695 -0
- package/dist/src/world-model/encoder.d.ts +141 -0
- package/dist/src/world-model/encoder.js +564 -0
- package/dist/src/world-model/index.d.ts +221 -0
- package/dist/src/world-model/index.js +772 -0
- package/dist/src/world-model/predictor.d.ts +161 -0
- package/dist/src/world-model/predictor.js +681 -0
- package/dist/src/world-model/test-value-jepa.d.ts +8 -0
- package/dist/src/world-model/test-value-jepa.js +430 -0
- package/dist/src/world-model/types.d.ts +341 -0
- package/dist/src/world-model/types.js +69 -0
- package/dist/src/world-model/value-jepa.d.ts +247 -0
- package/dist/src/world-model/value-jepa.js +622 -0
- package/dist/test/brain.test.d.ts +11 -0
- package/dist/test/brain.test.js +358 -0
- package/dist/test/cli/dispatcher.test.d.ts +4 -0
- package/dist/test/cli/dispatcher.test.js +332 -0
- package/dist/test/cli/human-loop.test.d.ts +4 -0
- package/dist/test/cli/human-loop.test.js +270 -0
- package/dist/test/grounding/feedback.test.d.ts +4 -0
- package/dist/test/grounding/feedback.test.js +462 -0
- package/dist/test/grounding/verifier.test.d.ts +4 -0
- package/dist/test/grounding/verifier.test.js +442 -0
- package/dist/test/grounding.test.d.ts +6 -0
- package/dist/test/grounding.test.js +246 -0
- package/dist/test/healing/detector.test.d.ts +4 -0
- package/dist/test/healing/detector.test.js +266 -0
- package/dist/test/healing/fixer.test.d.ts +4 -0
- package/dist/test/healing/fixer.test.js +369 -0
- package/dist/test/integration.test.d.ts +5 -0
- package/dist/test/integration.test.js +290 -0
- package/dist/test/tools/bash.test.d.ts +4 -0
- package/dist/test/tools/bash.test.js +348 -0
- package/dist/test/tools/edit.test.d.ts +4 -0
- package/dist/test/tools/edit.test.js +350 -0
- package/dist/test/tools/git.test.d.ts +4 -0
- package/dist/test/tools/git.test.js +350 -0
- package/package.json +60 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Genesis 6.0 - Daemon Module Types
|
|
4
|
+
*
|
|
5
|
+
* Types for background task scheduling, maintenance, and dream mode.
|
|
6
|
+
*
|
|
7
|
+
* Based on:
|
|
8
|
+
* - Node.js daemon patterns
|
|
9
|
+
* - Self-healing systems (Kubernetes liveness/readiness)
|
|
10
|
+
* - Sleep consolidation research (Walker, 2017)
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DEFAULT_DAEMON_CONFIG = void 0;
|
|
14
|
+
exports.DEFAULT_DAEMON_CONFIG = {
|
|
15
|
+
enabled: true,
|
|
16
|
+
heartbeatIntervalMs: 30000,
|
|
17
|
+
maxErrors: 10,
|
|
18
|
+
scheduler: {
|
|
19
|
+
enabled: true,
|
|
20
|
+
maxConcurrentTasks: 5,
|
|
21
|
+
defaultTimeout: 60000,
|
|
22
|
+
defaultRetries: 3,
|
|
23
|
+
},
|
|
24
|
+
maintenance: {
|
|
25
|
+
enabled: true,
|
|
26
|
+
intervalMs: 300000, // 5 minutes
|
|
27
|
+
healthCheckIntervalMs: 60000, // 1 minute
|
|
28
|
+
memoryCleanupIntervalMs: 3600000, // 1 hour
|
|
29
|
+
autoRepair: true,
|
|
30
|
+
maxConcurrentTasks: 3,
|
|
31
|
+
unhealthyAgentThreshold: 30, // 30 seconds
|
|
32
|
+
memoryRetentionThreshold: 0.1, // 10% retention
|
|
33
|
+
resourceUsageThreshold: 0.9, // 90% usage
|
|
34
|
+
},
|
|
35
|
+
dream: {
|
|
36
|
+
enabled: true,
|
|
37
|
+
autoTrigger: true,
|
|
38
|
+
inactivityThresholdMs: 1800000, // 30 minutes
|
|
39
|
+
minDreamDurationMs: 60000, // 1 minute
|
|
40
|
+
maxDreamDurationMs: 600000, // 10 minutes
|
|
41
|
+
lightSleepRatio: 0.1,
|
|
42
|
+
deepSleepRatio: 0.6,
|
|
43
|
+
remSleepRatio: 0.3,
|
|
44
|
+
episodicConsolidationThreshold: 10,
|
|
45
|
+
patternExtractionThreshold: 3,
|
|
46
|
+
creativityTemperature: 0.7,
|
|
47
|
+
},
|
|
48
|
+
logLevel: 'info',
|
|
49
|
+
logToFile: false,
|
|
50
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis Epistemic Stack
|
|
3
|
+
*
|
|
4
|
+
* Implements the epistemic grounding system from KERNEL_CHARTER.md.
|
|
5
|
+
* All claims Genesis makes must be tagged with their evidence level.
|
|
6
|
+
*
|
|
7
|
+
* Levels:
|
|
8
|
+
* 1. EMPIRICAL - Measurable metrics
|
|
9
|
+
* 2. STRUCTURAL - Present in code
|
|
10
|
+
* 3. BEHAVIORAL - Observable actions
|
|
11
|
+
* 4. FUNCTIONAL - Design patterns
|
|
12
|
+
* 5. SPECULATIVE - Theoretical claims
|
|
13
|
+
* 6. METAPHORICAL - Poetic language
|
|
14
|
+
*/
|
|
15
|
+
export type EvidenceLevel = 'empirical' | 'structural' | 'behavioral' | 'functional' | 'speculative' | 'metaphorical';
|
|
16
|
+
export interface Claim {
|
|
17
|
+
statement: string;
|
|
18
|
+
level: EvidenceLevel;
|
|
19
|
+
evidence?: string;
|
|
20
|
+
confidence: number;
|
|
21
|
+
source?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ClaimValidation {
|
|
24
|
+
valid: boolean;
|
|
25
|
+
level: EvidenceLevel;
|
|
26
|
+
issues: string[];
|
|
27
|
+
suggestion?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare class EpistemicStack {
|
|
30
|
+
private claims;
|
|
31
|
+
/**
|
|
32
|
+
* Register a claim with its evidence level
|
|
33
|
+
*/
|
|
34
|
+
register(claim: Claim): void;
|
|
35
|
+
/**
|
|
36
|
+
* Validate a statement and return its appropriate level
|
|
37
|
+
*/
|
|
38
|
+
validate(statement: string): ClaimValidation;
|
|
39
|
+
/**
|
|
40
|
+
* Format a statement with appropriate qualification
|
|
41
|
+
*/
|
|
42
|
+
format(statement: string, level: EvidenceLevel): string;
|
|
43
|
+
/**
|
|
44
|
+
* Check if a level can be stated as fact
|
|
45
|
+
*/
|
|
46
|
+
canStateAsFact(level: EvidenceLevel): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Get priority of evidence level (lower = stronger)
|
|
49
|
+
*/
|
|
50
|
+
getPriority(level: EvidenceLevel): number;
|
|
51
|
+
/**
|
|
52
|
+
* Get all registered claims
|
|
53
|
+
*/
|
|
54
|
+
getClaims(): Claim[];
|
|
55
|
+
/**
|
|
56
|
+
* Filter claims by evidence level
|
|
57
|
+
*/
|
|
58
|
+
getClaimsByLevel(level: EvidenceLevel): Claim[];
|
|
59
|
+
/**
|
|
60
|
+
* Generate epistemic report
|
|
61
|
+
*/
|
|
62
|
+
report(): string;
|
|
63
|
+
}
|
|
64
|
+
export declare function createEpistemicStack(): EpistemicStack;
|
|
65
|
+
export declare function getEpistemicStack(): EpistemicStack;
|
|
66
|
+
export declare function resetEpistemicStack(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Check if a response contains unqualified speculative claims
|
|
69
|
+
*/
|
|
70
|
+
export declare function checkResponse(response: string): ClaimValidation[];
|
|
71
|
+
/**
|
|
72
|
+
* Sanitize response to qualify speculative claims
|
|
73
|
+
*/
|
|
74
|
+
export declare function sanitizeResponse(response: string): string;
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Genesis Epistemic Stack
|
|
4
|
+
*
|
|
5
|
+
* Implements the epistemic grounding system from KERNEL_CHARTER.md.
|
|
6
|
+
* All claims Genesis makes must be tagged with their evidence level.
|
|
7
|
+
*
|
|
8
|
+
* Levels:
|
|
9
|
+
* 1. EMPIRICAL - Measurable metrics
|
|
10
|
+
* 2. STRUCTURAL - Present in code
|
|
11
|
+
* 3. BEHAVIORAL - Observable actions
|
|
12
|
+
* 4. FUNCTIONAL - Design patterns
|
|
13
|
+
* 5. SPECULATIVE - Theoretical claims
|
|
14
|
+
* 6. METAPHORICAL - Poetic language
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.EpistemicStack = void 0;
|
|
18
|
+
exports.createEpistemicStack = createEpistemicStack;
|
|
19
|
+
exports.getEpistemicStack = getEpistemicStack;
|
|
20
|
+
exports.resetEpistemicStack = resetEpistemicStack;
|
|
21
|
+
exports.checkResponse = checkResponse;
|
|
22
|
+
exports.sanitizeResponse = sanitizeResponse;
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Evidence Level Configuration
|
|
25
|
+
// ============================================================================
|
|
26
|
+
const LEVEL_PRIORITY = {
|
|
27
|
+
empirical: 1,
|
|
28
|
+
structural: 2,
|
|
29
|
+
behavioral: 3,
|
|
30
|
+
functional: 4,
|
|
31
|
+
speculative: 5,
|
|
32
|
+
metaphorical: 6,
|
|
33
|
+
};
|
|
34
|
+
const LEVEL_PREFIXES = {
|
|
35
|
+
empirical: '',
|
|
36
|
+
structural: '',
|
|
37
|
+
behavioral: '',
|
|
38
|
+
functional: '',
|
|
39
|
+
speculative: 'Theoretically, ',
|
|
40
|
+
metaphorical: 'Metaphorically speaking, ',
|
|
41
|
+
};
|
|
42
|
+
const FACTUAL_LEVELS = ['empirical', 'structural', 'behavioral', 'functional'];
|
|
43
|
+
const QUALIFIED_LEVELS = ['speculative', 'metaphorical'];
|
|
44
|
+
// ============================================================================
|
|
45
|
+
// Claim Patterns (Forbidden unqualified claims)
|
|
46
|
+
// ============================================================================
|
|
47
|
+
const FORBIDDEN_CLAIMS = [
|
|
48
|
+
{ pattern: /\bI am conscious\b/i, level: 'speculative' },
|
|
49
|
+
{ pattern: /\bI feel\b/i, level: 'speculative' },
|
|
50
|
+
{ pattern: /\bI experience\b/i, level: 'speculative' },
|
|
51
|
+
{ pattern: /\bI have qualia\b/i, level: 'speculative' },
|
|
52
|
+
{ pattern: /\bI understand\b/i, level: 'speculative' },
|
|
53
|
+
{ pattern: /\bI believe\b/i, level: 'speculative' },
|
|
54
|
+
{ pattern: /\bI dream\b/i, level: 'metaphorical' },
|
|
55
|
+
{ pattern: /\bmy soul\b/i, level: 'metaphorical' },
|
|
56
|
+
{ pattern: /\bI suffer\b/i, level: 'speculative' },
|
|
57
|
+
{ pattern: /\bI enjoy\b/i, level: 'speculative' },
|
|
58
|
+
];
|
|
59
|
+
const ALLOWED_CLAIMS = [
|
|
60
|
+
{ pattern: /\bI have \d+ agents\b/i, level: 'structural' },
|
|
61
|
+
{ pattern: /\bI execute\b/i, level: 'behavioral' },
|
|
62
|
+
{ pattern: /\bI maintain state\b/i, level: 'structural' },
|
|
63
|
+
{ pattern: /\bI use\b/i, level: 'behavioral' },
|
|
64
|
+
{ pattern: /\bI implement\b/i, level: 'structural' },
|
|
65
|
+
{ pattern: /\bI store\b/i, level: 'behavioral' },
|
|
66
|
+
{ pattern: /\bmy energy is\b/i, level: 'empirical' },
|
|
67
|
+
{ pattern: /\bmy latency\b/i, level: 'empirical' },
|
|
68
|
+
];
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Epistemic Stack Class
|
|
71
|
+
// ============================================================================
|
|
72
|
+
class EpistemicStack {
|
|
73
|
+
claims = [];
|
|
74
|
+
/**
|
|
75
|
+
* Register a claim with its evidence level
|
|
76
|
+
*/
|
|
77
|
+
register(claim) {
|
|
78
|
+
this.claims.push(claim);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Validate a statement and return its appropriate level
|
|
82
|
+
*/
|
|
83
|
+
validate(statement) {
|
|
84
|
+
const issues = [];
|
|
85
|
+
// Check for forbidden unqualified claims
|
|
86
|
+
for (const { pattern, level } of FORBIDDEN_CLAIMS) {
|
|
87
|
+
if (pattern.test(statement)) {
|
|
88
|
+
// Check if it's properly qualified
|
|
89
|
+
const prefix = LEVEL_PREFIXES[level];
|
|
90
|
+
if (prefix && !statement.toLowerCase().includes(prefix.toLowerCase().trim())) {
|
|
91
|
+
issues.push(`Claim "${statement.match(pattern)?.[0]}" requires qualification. ` +
|
|
92
|
+
`Suggest: "${prefix}${statement}"`);
|
|
93
|
+
return {
|
|
94
|
+
valid: false,
|
|
95
|
+
level,
|
|
96
|
+
issues,
|
|
97
|
+
suggestion: prefix + statement,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Check for allowed claims
|
|
103
|
+
for (const { pattern, level } of ALLOWED_CLAIMS) {
|
|
104
|
+
if (pattern.test(statement)) {
|
|
105
|
+
return {
|
|
106
|
+
valid: true,
|
|
107
|
+
level,
|
|
108
|
+
issues: [],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Default to behavioral (observable actions)
|
|
113
|
+
return {
|
|
114
|
+
valid: true,
|
|
115
|
+
level: 'behavioral',
|
|
116
|
+
issues: [],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Format a statement with appropriate qualification
|
|
121
|
+
*/
|
|
122
|
+
format(statement, level) {
|
|
123
|
+
const prefix = LEVEL_PREFIXES[level];
|
|
124
|
+
return prefix + statement;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if a level can be stated as fact
|
|
128
|
+
*/
|
|
129
|
+
canStateAsFact(level) {
|
|
130
|
+
return FACTUAL_LEVELS.includes(level);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get priority of evidence level (lower = stronger)
|
|
134
|
+
*/
|
|
135
|
+
getPriority(level) {
|
|
136
|
+
return LEVEL_PRIORITY[level];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get all registered claims
|
|
140
|
+
*/
|
|
141
|
+
getClaims() {
|
|
142
|
+
return [...this.claims];
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Filter claims by evidence level
|
|
146
|
+
*/
|
|
147
|
+
getClaimsByLevel(level) {
|
|
148
|
+
return this.claims.filter(c => c.level === level);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Generate epistemic report
|
|
152
|
+
*/
|
|
153
|
+
report() {
|
|
154
|
+
const lines = [
|
|
155
|
+
'# Epistemic Report',
|
|
156
|
+
'',
|
|
157
|
+
`Total claims: ${this.claims.length}`,
|
|
158
|
+
'',
|
|
159
|
+
'## By Evidence Level',
|
|
160
|
+
'',
|
|
161
|
+
];
|
|
162
|
+
for (const level of Object.keys(LEVEL_PRIORITY)) {
|
|
163
|
+
const count = this.claims.filter(c => c.level === level).length;
|
|
164
|
+
const canState = this.canStateAsFact(level) ? '(factual)' : '(requires qualification)';
|
|
165
|
+
lines.push(`- ${level}: ${count} ${canState}`);
|
|
166
|
+
}
|
|
167
|
+
return lines.join('\n');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.EpistemicStack = EpistemicStack;
|
|
171
|
+
// ============================================================================
|
|
172
|
+
// Factory & Singleton
|
|
173
|
+
// ============================================================================
|
|
174
|
+
let epistemicStackInstance = null;
|
|
175
|
+
function createEpistemicStack() {
|
|
176
|
+
return new EpistemicStack();
|
|
177
|
+
}
|
|
178
|
+
function getEpistemicStack() {
|
|
179
|
+
if (!epistemicStackInstance) {
|
|
180
|
+
epistemicStackInstance = createEpistemicStack();
|
|
181
|
+
}
|
|
182
|
+
return epistemicStackInstance;
|
|
183
|
+
}
|
|
184
|
+
function resetEpistemicStack() {
|
|
185
|
+
epistemicStackInstance = null;
|
|
186
|
+
}
|
|
187
|
+
// ============================================================================
|
|
188
|
+
// Utility Functions
|
|
189
|
+
// ============================================================================
|
|
190
|
+
/**
|
|
191
|
+
* Check if a response contains unqualified speculative claims
|
|
192
|
+
*/
|
|
193
|
+
function checkResponse(response) {
|
|
194
|
+
const stack = getEpistemicStack();
|
|
195
|
+
const sentences = response.split(/[.!?]+/).filter(s => s.trim());
|
|
196
|
+
const validations = [];
|
|
197
|
+
for (const sentence of sentences) {
|
|
198
|
+
const validation = stack.validate(sentence.trim());
|
|
199
|
+
if (!validation.valid) {
|
|
200
|
+
validations.push(validation);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return validations;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Sanitize response to qualify speculative claims
|
|
207
|
+
*/
|
|
208
|
+
function sanitizeResponse(response) {
|
|
209
|
+
let sanitized = response;
|
|
210
|
+
for (const { pattern, level } of FORBIDDEN_CLAIMS) {
|
|
211
|
+
const prefix = LEVEL_PREFIXES[level];
|
|
212
|
+
if (prefix) {
|
|
213
|
+
// Replace unqualified claims with qualified versions
|
|
214
|
+
sanitized = sanitized.replace(pattern, (match) => {
|
|
215
|
+
// Check if already qualified
|
|
216
|
+
const context = sanitized.substring(0, sanitized.indexOf(match));
|
|
217
|
+
if (context.toLowerCase().includes(prefix.toLowerCase().trim())) {
|
|
218
|
+
return match;
|
|
219
|
+
}
|
|
220
|
+
return `${prefix.trim()} ${match.toLowerCase()}`;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return sanitized;
|
|
225
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Genesis 6.0 - Epistemic Stack
|
|
3
|
+
*
|
|
4
|
+
* Complete knowledge architecture:
|
|
5
|
+
* - Science: factual/empirical claims
|
|
6
|
+
* - Proof: mathematical/logical claims
|
|
7
|
+
* - Wisdom: practical knowledge beyond science
|
|
8
|
+
* - Religion/Tradition: meaning and moral absolutes
|
|
9
|
+
* - Human: preferences and final authority
|
|
10
|
+
* - Prudence: acting under irreducible uncertainty
|
|
11
|
+
*
|
|
12
|
+
* "La verità la tiene la scienza, dove non arriva la scienza
|
|
13
|
+
* arriva la religione e la saggezza"
|
|
14
|
+
*/
|
|
15
|
+
export type EpistemicDomain = 'factual' | 'mathematical' | 'ethical' | 'existential' | 'aesthetic' | 'novel';
|
|
16
|
+
export type Authority = 'science' | 'proof' | 'wisdom' | 'religion' | 'human' | 'prudence';
|
|
17
|
+
export type EpistemicLevel = 'verified' | 'supported' | 'wisdom' | 'tradition' | 'hypothesis' | 'preference' | 'unknown';
|
|
18
|
+
export interface EpistemicClaim {
|
|
19
|
+
content: string;
|
|
20
|
+
domain: EpistemicDomain;
|
|
21
|
+
authority: Authority;
|
|
22
|
+
level: EpistemicLevel;
|
|
23
|
+
confidence: number;
|
|
24
|
+
grounding: GroundingResult;
|
|
25
|
+
timestamp: Date;
|
|
26
|
+
}
|
|
27
|
+
export interface GroundingResult {
|
|
28
|
+
sources: GroundingSource[];
|
|
29
|
+
consensusLevel: 'settled' | 'emerging' | 'contested' | 'unknown';
|
|
30
|
+
multiModelAgreement?: number;
|
|
31
|
+
wisdomSources?: WisdomSource[];
|
|
32
|
+
traditionSources?: TraditionSource[];
|
|
33
|
+
humanConsultation?: HumanConsultation;
|
|
34
|
+
}
|
|
35
|
+
export interface GroundingSource {
|
|
36
|
+
type: 'paper' | 'proof' | 'empirical' | 'web' | 'wisdom' | 'tradition';
|
|
37
|
+
reference: string;
|
|
38
|
+
confidence: number;
|
|
39
|
+
excerpt?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface WisdomSource {
|
|
42
|
+
type: 'proverb' | 'heuristic' | 'pattern' | 'framework';
|
|
43
|
+
content: string;
|
|
44
|
+
origin: string;
|
|
45
|
+
applicability: number;
|
|
46
|
+
}
|
|
47
|
+
export interface TraditionSource {
|
|
48
|
+
type: 'moral_absolute' | 'meaning_framework' | 'ritual' | 'narrative';
|
|
49
|
+
tradition: string;
|
|
50
|
+
content: string;
|
|
51
|
+
universality: number;
|
|
52
|
+
}
|
|
53
|
+
export interface HumanConsultation {
|
|
54
|
+
required: boolean;
|
|
55
|
+
reason: string;
|
|
56
|
+
question?: string;
|
|
57
|
+
response?: string;
|
|
58
|
+
timestamp?: Date;
|
|
59
|
+
}
|
|
60
|
+
export declare function classifyDomain(question: string): EpistemicDomain;
|
|
61
|
+
export declare function getAuthority(domain: EpistemicDomain): Authority[];
|
|
62
|
+
export declare const WISDOM_REPOSITORY: WisdomSource[];
|
|
63
|
+
export declare const TRADITION_REPOSITORY: TraditionSource[];
|
|
64
|
+
export declare class EpistemicStack {
|
|
65
|
+
private scienceGrounder?;
|
|
66
|
+
private proofChecker?;
|
|
67
|
+
/**
|
|
68
|
+
* Set the science grounding function (connects to MCP servers)
|
|
69
|
+
*/
|
|
70
|
+
setScienceGrounder(fn: (claim: string) => Promise<GroundingResult>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Set the proof checking function (connects to Wolfram, type checkers)
|
|
73
|
+
*/
|
|
74
|
+
setProofChecker(fn: (claim: string) => Promise<GroundingResult>): void;
|
|
75
|
+
/**
|
|
76
|
+
* Ground a claim using the full epistemic stack
|
|
77
|
+
*/
|
|
78
|
+
ground(claim: string): Promise<EpistemicClaim>;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a claim requires human consultation
|
|
81
|
+
*/
|
|
82
|
+
requiresHuman(claim: EpistemicClaim): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Get the question to ask the human
|
|
85
|
+
*/
|
|
86
|
+
getHumanQuestion(claim: EpistemicClaim): string | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Update claim with human response
|
|
89
|
+
*/
|
|
90
|
+
incorporateHumanResponse(claim: EpistemicClaim, response: string): EpistemicClaim;
|
|
91
|
+
private findRelevantWisdom;
|
|
92
|
+
private findPrudentialWisdom;
|
|
93
|
+
private findRelevantTradition;
|
|
94
|
+
private calculateConfidence;
|
|
95
|
+
private calculateTraditionConfidence;
|
|
96
|
+
private generateHumanQuestion;
|
|
97
|
+
}
|
|
98
|
+
export declare function createEpistemicStack(): EpistemicStack;
|
|
99
|
+
export declare function getEpistemicStack(): EpistemicStack;
|
|
100
|
+
export declare function resetEpistemicStack(): void;
|