limen-ai 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/LICENSE +190 -0
- package/README.md +546 -0
- package/dist/api/agents/agent_api.d.ts +126 -0
- package/dist/api/agents/agent_api.d.ts.map +1 -0
- package/dist/api/agents/agent_api.js +467 -0
- package/dist/api/agents/agent_api.js.map +1 -0
- package/dist/api/agents/trust_progression.d.ts +78 -0
- package/dist/api/agents/trust_progression.d.ts.map +1 -0
- package/dist/api/agents/trust_progression.js +124 -0
- package/dist/api/agents/trust_progression.js.map +1 -0
- package/dist/api/chat/chat_pipeline.d.ts +91 -0
- package/dist/api/chat/chat_pipeline.d.ts.map +1 -0
- package/dist/api/chat/chat_pipeline.js +630 -0
- package/dist/api/chat/chat_pipeline.js.map +1 -0
- package/dist/api/chat/technique_injector.d.ts +86 -0
- package/dist/api/chat/technique_injector.d.ts.map +1 -0
- package/dist/api/chat/technique_injector.js +125 -0
- package/dist/api/chat/technique_injector.js.map +1 -0
- package/dist/api/data/data_api.d.ts +91 -0
- package/dist/api/data/data_api.d.ts.map +1 -0
- package/dist/api/data/data_api.js +306 -0
- package/dist/api/data/data_api.js.map +1 -0
- package/dist/api/enforcement/cost_tracker.d.ts +105 -0
- package/dist/api/enforcement/cost_tracker.d.ts.map +1 -0
- package/dist/api/enforcement/cost_tracker.js +227 -0
- package/dist/api/enforcement/cost_tracker.js.map +1 -0
- package/dist/api/enforcement/latency_harness.d.ts +94 -0
- package/dist/api/enforcement/latency_harness.d.ts.map +1 -0
- package/dist/api/enforcement/latency_harness.js +120 -0
- package/dist/api/enforcement/latency_harness.js.map +1 -0
- package/dist/api/enforcement/rate_guard.d.ts +52 -0
- package/dist/api/enforcement/rate_guard.d.ts.map +1 -0
- package/dist/api/enforcement/rate_guard.js +79 -0
- package/dist/api/enforcement/rate_guard.js.map +1 -0
- package/dist/api/enforcement/rbac_guard.d.ts +55 -0
- package/dist/api/enforcement/rbac_guard.d.ts.map +1 -0
- package/dist/api/enforcement/rbac_guard.js +77 -0
- package/dist/api/enforcement/rbac_guard.js.map +1 -0
- package/dist/api/errors/limen_error.d.ts +81 -0
- package/dist/api/errors/limen_error.d.ts.map +1 -0
- package/dist/api/errors/limen_error.js +324 -0
- package/dist/api/errors/limen_error.js.map +1 -0
- package/dist/api/facades/claim_facade.d.ts +47 -0
- package/dist/api/facades/claim_facade.d.ts.map +1 -0
- package/dist/api/facades/claim_facade.js +67 -0
- package/dist/api/facades/claim_facade.js.map +1 -0
- package/dist/api/facades/working_memory_facade.d.ts +47 -0
- package/dist/api/facades/working_memory_facade.d.ts.map +1 -0
- package/dist/api/facades/working_memory_facade.js +74 -0
- package/dist/api/facades/working_memory_facade.js.map +1 -0
- package/dist/api/governance/governed_orchestration.d.ts +76 -0
- package/dist/api/governance/governed_orchestration.d.ts.map +1 -0
- package/dist/api/governance/governed_orchestration.js +413 -0
- package/dist/api/governance/governed_orchestration.js.map +1 -0
- package/dist/api/index.d.ts +84 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +847 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/infer/infer_pipeline.d.ts +51 -0
- package/dist/api/infer/infer_pipeline.d.ts.map +1 -0
- package/dist/api/infer/infer_pipeline.js +291 -0
- package/dist/api/infer/infer_pipeline.js.map +1 -0
- package/dist/api/interfaces/api.d.ts +940 -0
- package/dist/api/interfaces/api.d.ts.map +1 -0
- package/dist/api/interfaces/api.js +21 -0
- package/dist/api/interfaces/api.js.map +1 -0
- package/dist/api/knowledge/knowledge_api.d.ts +55 -0
- package/dist/api/knowledge/knowledge_api.d.ts.map +1 -0
- package/dist/api/knowledge/knowledge_api.js +89 -0
- package/dist/api/knowledge/knowledge_api.js.map +1 -0
- package/dist/api/migration/023_agent_persistence.d.ts +32 -0
- package/dist/api/migration/023_agent_persistence.d.ts.map +1 -0
- package/dist/api/migration/023_agent_persistence.js +158 -0
- package/dist/api/migration/023_agent_persistence.js.map +1 -0
- package/dist/api/migration/024_trust_learning.d.ts +36 -0
- package/dist/api/migration/024_trust_learning.d.ts.map +1 -0
- package/dist/api/migration/024_trust_learning.js +194 -0
- package/dist/api/migration/024_trust_learning.js.map +1 -0
- package/dist/api/migration/025_knowledge_graph.d.ts +29 -0
- package/dist/api/migration/025_knowledge_graph.d.ts.map +1 -0
- package/dist/api/migration/025_knowledge_graph.js +97 -0
- package/dist/api/migration/025_knowledge_graph.js.map +1 -0
- package/dist/api/migration/026_replay_pipeline.d.ts +30 -0
- package/dist/api/migration/026_replay_pipeline.d.ts.map +1 -0
- package/dist/api/migration/026_replay_pipeline.js +118 -0
- package/dist/api/migration/026_replay_pipeline.js.map +1 -0
- package/dist/api/missions/mission_api.d.ts +74 -0
- package/dist/api/missions/mission_api.d.ts.map +1 -0
- package/dist/api/missions/mission_api.js +408 -0
- package/dist/api/missions/mission_api.js.map +1 -0
- package/dist/api/observability/health.d.ts +36 -0
- package/dist/api/observability/health.d.ts.map +1 -0
- package/dist/api/observability/health.js +92 -0
- package/dist/api/observability/health.js.map +1 -0
- package/dist/api/observability/metrics.d.ts +95 -0
- package/dist/api/observability/metrics.d.ts.map +1 -0
- package/dist/api/observability/metrics.js +260 -0
- package/dist/api/observability/metrics.js.map +1 -0
- package/dist/api/roles/roles_api.d.ts +45 -0
- package/dist/api/roles/roles_api.d.ts.map +1 -0
- package/dist/api/roles/roles_api.js +77 -0
- package/dist/api/roles/roles_api.js.map +1 -0
- package/dist/api/sessions/session_manager.d.ts +110 -0
- package/dist/api/sessions/session_manager.d.ts.map +1 -0
- package/dist/api/sessions/session_manager.js +278 -0
- package/dist/api/sessions/session_manager.js.map +1 -0
- package/dist/budget/harness/dba_harness.d.ts +36 -0
- package/dist/budget/harness/dba_harness.d.ts.map +1 -0
- package/dist/budget/harness/dba_harness.js +58 -0
- package/dist/budget/harness/dba_harness.js.map +1 -0
- package/dist/budget/impl/dba_impl.d.ts +47 -0
- package/dist/budget/impl/dba_impl.d.ts.map +1 -0
- package/dist/budget/impl/dba_impl.js +402 -0
- package/dist/budget/impl/dba_impl.js.map +1 -0
- package/dist/budget/interfaces/dba_types.d.ts +708 -0
- package/dist/budget/interfaces/dba_types.d.ts.map +1 -0
- package/dist/budget/interfaces/dba_types.js +124 -0
- package/dist/budget/interfaces/dba_types.js.map +1 -0
- package/dist/claims/evidence/capability_scope_validator.d.ts +32 -0
- package/dist/claims/evidence/capability_scope_validator.d.ts.map +1 -0
- package/dist/claims/evidence/capability_scope_validator.js +72 -0
- package/dist/claims/evidence/capability_scope_validator.js.map +1 -0
- package/dist/claims/evidence/evidence_validator.d.ts +35 -0
- package/dist/claims/evidence/evidence_validator.d.ts.map +1 -0
- package/dist/claims/evidence/evidence_validator.js +118 -0
- package/dist/claims/evidence/evidence_validator.js.map +1 -0
- package/dist/claims/harness/claim_harness.d.ts +22 -0
- package/dist/claims/harness/claim_harness.d.ts.map +1 -0
- package/dist/claims/harness/claim_harness.js +26 -0
- package/dist/claims/harness/claim_harness.js.map +1 -0
- package/dist/claims/interfaces/claim_types.d.ts +858 -0
- package/dist/claims/interfaces/claim_types.d.ts.map +1 -0
- package/dist/claims/interfaces/claim_types.js +201 -0
- package/dist/claims/interfaces/claim_types.js.map +1 -0
- package/dist/claims/migration/019_ccp_claims.d.ts +23 -0
- package/dist/claims/migration/019_ccp_claims.d.ts.map +1 -0
- package/dist/claims/migration/019_ccp_claims.js +196 -0
- package/dist/claims/migration/019_ccp_claims.js.map +1 -0
- package/dist/claims/store/claim_stores.d.ts +27 -0
- package/dist/claims/store/claim_stores.d.ts.map +1 -0
- package/dist/claims/store/claim_stores.js +1352 -0
- package/dist/claims/store/claim_stores.js.map +1 -0
- package/dist/context/harness/cgp_harness.d.ts +32 -0
- package/dist/context/harness/cgp_harness.d.ts.map +1 -0
- package/dist/context/harness/cgp_harness.js +295 -0
- package/dist/context/harness/cgp_harness.js.map +1 -0
- package/dist/context/interfaces/cgp_types.d.ts +905 -0
- package/dist/context/interfaces/cgp_types.d.ts.map +1 -0
- package/dist/context/interfaces/cgp_types.js +112 -0
- package/dist/context/interfaces/cgp_types.js.map +1 -0
- package/dist/context/stores/cgp_stores.d.ts +42 -0
- package/dist/context/stores/cgp_stores.d.ts.map +1 -0
- package/dist/context/stores/cgp_stores.js +856 -0
- package/dist/context/stores/cgp_stores.js.map +1 -0
- package/dist/execution/harness/egp_harness.d.ts +43 -0
- package/dist/execution/harness/egp_harness.d.ts.map +1 -0
- package/dist/execution/harness/egp_harness.js +54 -0
- package/dist/execution/harness/egp_harness.js.map +1 -0
- package/dist/execution/interfaces/egp_types.d.ts +1042 -0
- package/dist/execution/interfaces/egp_types.d.ts.map +1 -0
- package/dist/execution/interfaces/egp_types.js +195 -0
- package/dist/execution/interfaces/egp_types.js.map +1 -0
- package/dist/execution/stores/egp_stores.d.ts +29 -0
- package/dist/execution/stores/egp_stores.d.ts.map +1 -0
- package/dist/execution/stores/egp_stores.js +1250 -0
- package/dist/execution/stores/egp_stores.js.map +1 -0
- package/dist/execution/wiring/execution_gate.d.ts +56 -0
- package/dist/execution/wiring/execution_gate.d.ts.map +1 -0
- package/dist/execution/wiring/execution_gate.js +77 -0
- package/dist/execution/wiring/execution_gate.js.map +1 -0
- package/dist/execution/wiring/floor_enforcer.d.ts +68 -0
- package/dist/execution/wiring/floor_enforcer.d.ts.map +1 -0
- package/dist/execution/wiring/floor_enforcer.js +96 -0
- package/dist/execution/wiring/floor_enforcer.js.map +1 -0
- package/dist/execution/wiring/invocation_gate.d.ts +58 -0
- package/dist/execution/wiring/invocation_gate.d.ts.map +1 -0
- package/dist/execution/wiring/invocation_gate.js +69 -0
- package/dist/execution/wiring/invocation_gate.js.map +1 -0
- package/dist/execution/wiring/terminal_release.d.ts +56 -0
- package/dist/execution/wiring/terminal_release.d.ts.map +1 -0
- package/dist/execution/wiring/terminal_release.js +85 -0
- package/dist/execution/wiring/terminal_release.js.map +1 -0
- package/dist/governance/harness/governance_harness.d.ts +54 -0
- package/dist/governance/harness/governance_harness.d.ts.map +1 -0
- package/dist/governance/harness/governance_harness.js +60 -0
- package/dist/governance/harness/governance_harness.js.map +1 -0
- package/dist/governance/migration/012_governance_runs_traces.d.ts +21 -0
- package/dist/governance/migration/012_governance_runs_traces.d.ts.map +1 -0
- package/dist/governance/migration/012_governance_runs_traces.js +115 -0
- package/dist/governance/migration/012_governance_runs_traces.js.map +1 -0
- package/dist/governance/migration/013_governance_contracts.d.ts +18 -0
- package/dist/governance/migration/013_governance_contracts.d.ts.map +1 -0
- package/dist/governance/migration/013_governance_contracts.js +59 -0
- package/dist/governance/migration/013_governance_contracts.js.map +1 -0
- package/dist/governance/migration/014_governance_supervisor.d.ts +16 -0
- package/dist/governance/migration/014_governance_supervisor.d.ts.map +1 -0
- package/dist/governance/migration/014_governance_supervisor.js +75 -0
- package/dist/governance/migration/014_governance_supervisor.js.map +1 -0
- package/dist/governance/migration/015_governance_eval.d.ts +18 -0
- package/dist/governance/migration/015_governance_eval.d.ts.map +1 -0
- package/dist/governance/migration/015_governance_eval.js +65 -0
- package/dist/governance/migration/015_governance_eval.js.map +1 -0
- package/dist/governance/migration/016_governance_capabilities.d.ts +16 -0
- package/dist/governance/migration/016_governance_capabilities.d.ts.map +1 -0
- package/dist/governance/migration/016_governance_capabilities.js +60 -0
- package/dist/governance/migration/016_governance_capabilities.js.map +1 -0
- package/dist/governance/migration/017_governance_handoffs_idempotency.d.ts +20 -0
- package/dist/governance/migration/017_governance_handoffs_idempotency.d.ts.map +1 -0
- package/dist/governance/migration/017_governance_handoffs_idempotency.js +103 -0
- package/dist/governance/migration/017_governance_handoffs_idempotency.js.map +1 -0
- package/dist/governance/migration/018_supervisor_decision_delete_trigger.d.ts +17 -0
- package/dist/governance/migration/018_supervisor_decision_delete_trigger.d.ts.map +1 -0
- package/dist/governance/migration/018_supervisor_decision_delete_trigger.js +37 -0
- package/dist/governance/migration/018_supervisor_decision_delete_trigger.js.map +1 -0
- package/dist/governance/stores/governance_stores.d.ts +78 -0
- package/dist/governance/stores/governance_stores.d.ts.map +1 -0
- package/dist/governance/stores/governance_stores.js +1117 -0
- package/dist/governance/stores/governance_stores.js.map +1 -0
- package/dist/kernel/audit/audit_trail.d.ts +24 -0
- package/dist/kernel/audit/audit_trail.d.ts.map +1 -0
- package/dist/kernel/audit/audit_trail.js +569 -0
- package/dist/kernel/audit/audit_trail.js.map +1 -0
- package/dist/kernel/crypto/crypto_engine.d.ts +49 -0
- package/dist/kernel/crypto/crypto_engine.d.ts.map +1 -0
- package/dist/kernel/crypto/crypto_engine.js +350 -0
- package/dist/kernel/crypto/crypto_engine.js.map +1 -0
- package/dist/kernel/database/database_lifecycle.d.ts +24 -0
- package/dist/kernel/database/database_lifecycle.d.ts.map +1 -0
- package/dist/kernel/database/database_lifecycle.js +404 -0
- package/dist/kernel/database/database_lifecycle.js.map +1 -0
- package/dist/kernel/database/migrations.d.ts +21 -0
- package/dist/kernel/database/migrations.d.ts.map +1 -0
- package/dist/kernel/database/migrations.js +407 -0
- package/dist/kernel/database/migrations.js.map +1 -0
- package/dist/kernel/events/event_bus.d.ts +25 -0
- package/dist/kernel/events/event_bus.d.ts.map +1 -0
- package/dist/kernel/events/event_bus.js +302 -0
- package/dist/kernel/events/event_bus.js.map +1 -0
- package/dist/kernel/events/webhook_delivery.d.ts +90 -0
- package/dist/kernel/events/webhook_delivery.d.ts.map +1 -0
- package/dist/kernel/events/webhook_delivery.js +324 -0
- package/dist/kernel/events/webhook_delivery.js.map +1 -0
- package/dist/kernel/index.d.ts +39 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +263 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/interfaces/audit.d.ts +146 -0
- package/dist/kernel/interfaces/audit.d.ts.map +1 -0
- package/dist/kernel/interfaces/audit.js +15 -0
- package/dist/kernel/interfaces/audit.js.map +1 -0
- package/dist/kernel/interfaces/capability_manifest.d.ts +104 -0
- package/dist/kernel/interfaces/capability_manifest.d.ts.map +1 -0
- package/dist/kernel/interfaces/capability_manifest.js +44 -0
- package/dist/kernel/interfaces/capability_manifest.js.map +1 -0
- package/dist/kernel/interfaces/common.d.ts +91 -0
- package/dist/kernel/interfaces/common.d.ts.map +1 -0
- package/dist/kernel/interfaces/common.js +10 -0
- package/dist/kernel/interfaces/common.js.map +1 -0
- package/dist/kernel/interfaces/crypto.d.ts +95 -0
- package/dist/kernel/interfaces/crypto.d.ts.map +1 -0
- package/dist/kernel/interfaces/crypto.js +14 -0
- package/dist/kernel/interfaces/crypto.js.map +1 -0
- package/dist/kernel/interfaces/database.d.ts +157 -0
- package/dist/kernel/interfaces/database.d.ts.map +1 -0
- package/dist/kernel/interfaces/database.js +10 -0
- package/dist/kernel/interfaces/database.js.map +1 -0
- package/dist/kernel/interfaces/eval.d.ts +93 -0
- package/dist/kernel/interfaces/eval.d.ts.map +1 -0
- package/dist/kernel/interfaces/eval.js +17 -0
- package/dist/kernel/interfaces/eval.js.map +1 -0
- package/dist/kernel/interfaces/events.d.ts +73 -0
- package/dist/kernel/interfaces/events.d.ts.map +1 -0
- package/dist/kernel/interfaces/events.js +13 -0
- package/dist/kernel/interfaces/events.js.map +1 -0
- package/dist/kernel/interfaces/governance_ids.d.ts +93 -0
- package/dist/kernel/interfaces/governance_ids.d.ts.map +1 -0
- package/dist/kernel/interfaces/governance_ids.js +18 -0
- package/dist/kernel/interfaces/governance_ids.js.map +1 -0
- package/dist/kernel/interfaces/idempotency.d.ts +143 -0
- package/dist/kernel/interfaces/idempotency.d.ts.map +1 -0
- package/dist/kernel/interfaces/idempotency.js +22 -0
- package/dist/kernel/interfaces/idempotency.js.map +1 -0
- package/dist/kernel/interfaces/index.d.ts +29 -0
- package/dist/kernel/interfaces/index.d.ts.map +1 -0
- package/dist/kernel/interfaces/index.js +9 -0
- package/dist/kernel/interfaces/index.js.map +1 -0
- package/dist/kernel/interfaces/kernel.d.ts +79 -0
- package/dist/kernel/interfaces/kernel.d.ts.map +1 -0
- package/dist/kernel/interfaces/kernel.js +13 -0
- package/dist/kernel/interfaces/kernel.js.map +1 -0
- package/dist/kernel/interfaces/lifecycle.d.ts +115 -0
- package/dist/kernel/interfaces/lifecycle.d.ts.map +1 -0
- package/dist/kernel/interfaces/lifecycle.js +53 -0
- package/dist/kernel/interfaces/lifecycle.js.map +1 -0
- package/dist/kernel/interfaces/mission_contract.d.ts +106 -0
- package/dist/kernel/interfaces/mission_contract.d.ts.map +1 -0
- package/dist/kernel/interfaces/mission_contract.js +20 -0
- package/dist/kernel/interfaces/mission_contract.js.map +1 -0
- package/dist/kernel/interfaces/namespace.d.ts +30 -0
- package/dist/kernel/interfaces/namespace.d.ts.map +1 -0
- package/dist/kernel/interfaces/namespace.js +12 -0
- package/dist/kernel/interfaces/namespace.js.map +1 -0
- package/dist/kernel/interfaces/rate_limiter.d.ts +42 -0
- package/dist/kernel/interfaces/rate_limiter.d.ts.map +1 -0
- package/dist/kernel/interfaces/rate_limiter.js +12 -0
- package/dist/kernel/interfaces/rate_limiter.js.map +1 -0
- package/dist/kernel/interfaces/rbac.d.ts +58 -0
- package/dist/kernel/interfaces/rbac.d.ts.map +1 -0
- package/dist/kernel/interfaces/rbac.js +13 -0
- package/dist/kernel/interfaces/rbac.js.map +1 -0
- package/dist/kernel/interfaces/retention.d.ts +58 -0
- package/dist/kernel/interfaces/retention.d.ts.map +1 -0
- package/dist/kernel/interfaces/retention.js +13 -0
- package/dist/kernel/interfaces/retention.js.map +1 -0
- package/dist/kernel/interfaces/run_identity.d.ts +132 -0
- package/dist/kernel/interfaces/run_identity.d.ts.map +1 -0
- package/dist/kernel/interfaces/run_identity.js +16 -0
- package/dist/kernel/interfaces/run_identity.js.map +1 -0
- package/dist/kernel/interfaces/supervisor.d.ts +175 -0
- package/dist/kernel/interfaces/supervisor.d.ts.map +1 -0
- package/dist/kernel/interfaces/supervisor.js +25 -0
- package/dist/kernel/interfaces/supervisor.js.map +1 -0
- package/dist/kernel/interfaces/tenant.d.ts +34 -0
- package/dist/kernel/interfaces/tenant.d.ts.map +1 -0
- package/dist/kernel/interfaces/tenant.js +12 -0
- package/dist/kernel/interfaces/tenant.js.map +1 -0
- package/dist/kernel/interfaces/time.d.ts +29 -0
- package/dist/kernel/interfaces/time.d.ts.map +1 -0
- package/dist/kernel/interfaces/time.js +13 -0
- package/dist/kernel/interfaces/time.js.map +1 -0
- package/dist/kernel/interfaces/trace.d.ts +264 -0
- package/dist/kernel/interfaces/trace.d.ts.map +1 -0
- package/dist/kernel/interfaces/trace.js +17 -0
- package/dist/kernel/interfaces/trace.js.map +1 -0
- package/dist/kernel/namespace/namespace_enforcer.d.ts +20 -0
- package/dist/kernel/namespace/namespace_enforcer.d.ts.map +1 -0
- package/dist/kernel/namespace/namespace_enforcer.js +91 -0
- package/dist/kernel/namespace/namespace_enforcer.js.map +1 -0
- package/dist/kernel/rate_limiter/rate_limiter.d.ts +23 -0
- package/dist/kernel/rate_limiter/rate_limiter.d.ts.map +1 -0
- package/dist/kernel/rate_limiter/rate_limiter.js +146 -0
- package/dist/kernel/rate_limiter/rate_limiter.js.map +1 -0
- package/dist/kernel/rbac/rbac_engine.d.ts +20 -0
- package/dist/kernel/rbac/rbac_engine.d.ts.map +1 -0
- package/dist/kernel/rbac/rbac_engine.js +257 -0
- package/dist/kernel/rbac/rbac_engine.js.map +1 -0
- package/dist/kernel/retention/retention_scheduler.d.ts +41 -0
- package/dist/kernel/retention/retention_scheduler.d.ts.map +1 -0
- package/dist/kernel/retention/retention_scheduler.js +218 -0
- package/dist/kernel/retention/retention_scheduler.js.map +1 -0
- package/dist/kernel/tenant/tenant_context.d.ts +22 -0
- package/dist/kernel/tenant/tenant_context.d.ts.map +1 -0
- package/dist/kernel/tenant/tenant_context.js +107 -0
- package/dist/kernel/tenant/tenant_context.js.map +1 -0
- package/dist/kernel/tenant/tenant_scope.d.ts +81 -0
- package/dist/kernel/tenant/tenant_scope.d.ts.map +1 -0
- package/dist/kernel/tenant/tenant_scope.js +168 -0
- package/dist/kernel/tenant/tenant_scope.js.map +1 -0
- package/dist/kernel/time/time_provider.d.ts +39 -0
- package/dist/kernel/time/time_provider.d.ts.map +1 -0
- package/dist/kernel/time/time_provider.js +58 -0
- package/dist/kernel/time/time_provider.js.map +1 -0
- package/dist/learning/applicator/technique_applicator.d.ts +41 -0
- package/dist/learning/applicator/technique_applicator.d.ts.map +1 -0
- package/dist/learning/applicator/technique_applicator.js +200 -0
- package/dist/learning/applicator/technique_applicator.js.map +1 -0
- package/dist/learning/cold_start/cold_start_manager.d.ts +35 -0
- package/dist/learning/cold_start/cold_start_manager.d.ts.map +1 -0
- package/dist/learning/cold_start/cold_start_manager.js +146 -0
- package/dist/learning/cold_start/cold_start_manager.js.map +1 -0
- package/dist/learning/cycle/learning_cycle_orchestrator.d.ts +45 -0
- package/dist/learning/cycle/learning_cycle_orchestrator.d.ts.map +1 -0
- package/dist/learning/cycle/learning_cycle_orchestrator.js +165 -0
- package/dist/learning/cycle/learning_cycle_orchestrator.js.map +1 -0
- package/dist/learning/extractor/technique_extractor.d.ts +48 -0
- package/dist/learning/extractor/technique_extractor.d.ts.map +1 -0
- package/dist/learning/extractor/technique_extractor.js +357 -0
- package/dist/learning/extractor/technique_extractor.js.map +1 -0
- package/dist/learning/harness/learning_harness.d.ts +26 -0
- package/dist/learning/harness/learning_harness.d.ts.map +1 -0
- package/dist/learning/harness/learning_harness.js +58 -0
- package/dist/learning/harness/learning_harness.js.map +1 -0
- package/dist/learning/interfaces/index.d.ts +7 -0
- package/dist/learning/interfaces/index.d.ts.map +1 -0
- package/dist/learning/interfaces/index.js +10 -0
- package/dist/learning/interfaces/index.js.map +1 -0
- package/dist/learning/interfaces/learning_types.d.ts +398 -0
- package/dist/learning/interfaces/learning_types.d.ts.map +1 -0
- package/dist/learning/interfaces/learning_types.js +69 -0
- package/dist/learning/interfaces/learning_types.js.map +1 -0
- package/dist/learning/migration/007_learning_techniques.d.ts +23 -0
- package/dist/learning/migration/007_learning_techniques.d.ts.map +1 -0
- package/dist/learning/migration/007_learning_techniques.js +86 -0
- package/dist/learning/migration/007_learning_techniques.js.map +1 -0
- package/dist/learning/migration/008_learning_outcomes.d.ts +23 -0
- package/dist/learning/migration/008_learning_outcomes.d.ts.map +1 -0
- package/dist/learning/migration/008_learning_outcomes.js +79 -0
- package/dist/learning/migration/008_learning_outcomes.js.map +1 -0
- package/dist/learning/migration/009_learning_applications.d.ts +25 -0
- package/dist/learning/migration/009_learning_applications.d.ts.map +1 -0
- package/dist/learning/migration/009_learning_applications.js +82 -0
- package/dist/learning/migration/009_learning_applications.js.map +1 -0
- package/dist/learning/migration/010_learning_quarantine.d.ts +22 -0
- package/dist/learning/migration/010_learning_quarantine.d.ts.map +1 -0
- package/dist/learning/migration/010_learning_quarantine.js +78 -0
- package/dist/learning/migration/010_learning_quarantine.js.map +1 -0
- package/dist/learning/migration/011_learning_transfers.d.ts +22 -0
- package/dist/learning/migration/011_learning_transfers.d.ts.map +1 -0
- package/dist/learning/migration/011_learning_transfers.js +77 -0
- package/dist/learning/migration/011_learning_transfers.js.map +1 -0
- package/dist/learning/quarantine/quarantine_manager.d.ts +34 -0
- package/dist/learning/quarantine/quarantine_manager.d.ts.map +1 -0
- package/dist/learning/quarantine/quarantine_manager.js +200 -0
- package/dist/learning/quarantine/quarantine_manager.js.map +1 -0
- package/dist/learning/retirement/retirement_evaluator.d.ts +35 -0
- package/dist/learning/retirement/retirement_evaluator.d.ts.map +1 -0
- package/dist/learning/retirement/retirement_evaluator.js +131 -0
- package/dist/learning/retirement/retirement_evaluator.js.map +1 -0
- package/dist/learning/specialization/over_specialization_detector.d.ts +32 -0
- package/dist/learning/specialization/over_specialization_detector.d.ts.map +1 -0
- package/dist/learning/specialization/over_specialization_detector.js +105 -0
- package/dist/learning/specialization/over_specialization_detector.js.map +1 -0
- package/dist/learning/store/technique_store.d.ts +22 -0
- package/dist/learning/store/technique_store.d.ts.map +1 -0
- package/dist/learning/store/technique_store.js +369 -0
- package/dist/learning/store/technique_store.js.map +1 -0
- package/dist/learning/tracker/effectiveness_tracker.d.ts +26 -0
- package/dist/learning/tracker/effectiveness_tracker.d.ts.map +1 -0
- package/dist/learning/tracker/effectiveness_tracker.js +158 -0
- package/dist/learning/tracker/effectiveness_tracker.js.map +1 -0
- package/dist/learning/transfer/cross_agent_transfer.d.ts +35 -0
- package/dist/learning/transfer/cross_agent_transfer.d.ts.map +1 -0
- package/dist/learning/transfer/cross_agent_transfer.js +245 -0
- package/dist/learning/transfer/cross_agent_transfer.js.map +1 -0
- package/dist/orchestration/artifacts/artifact_store.d.ts +19 -0
- package/dist/orchestration/artifacts/artifact_store.d.ts.map +1 -0
- package/dist/orchestration/artifacts/artifact_store.js +213 -0
- package/dist/orchestration/artifacts/artifact_store.js.map +1 -0
- package/dist/orchestration/artifacts/cascade_walker.d.ts +39 -0
- package/dist/orchestration/artifacts/cascade_walker.d.ts.map +1 -0
- package/dist/orchestration/artifacts/cascade_walker.js +107 -0
- package/dist/orchestration/artifacts/cascade_walker.js.map +1 -0
- package/dist/orchestration/budget/budget_governance.d.ts +20 -0
- package/dist/orchestration/budget/budget_governance.d.ts.map +1 -0
- package/dist/orchestration/budget/budget_governance.js +182 -0
- package/dist/orchestration/budget/budget_governance.js.map +1 -0
- package/dist/orchestration/checkpoints/checkpoint_coordinator.d.ts +22 -0
- package/dist/orchestration/checkpoints/checkpoint_coordinator.d.ts.map +1 -0
- package/dist/orchestration/checkpoints/checkpoint_coordinator.js +252 -0
- package/dist/orchestration/checkpoints/checkpoint_coordinator.js.map +1 -0
- package/dist/orchestration/checkpoints/drift_engine.d.ts +52 -0
- package/dist/orchestration/checkpoints/drift_engine.d.ts.map +1 -0
- package/dist/orchestration/checkpoints/drift_engine.js +126 -0
- package/dist/orchestration/checkpoints/drift_engine.js.map +1 -0
- package/dist/orchestration/compaction/bounded_cognition.d.ts +22 -0
- package/dist/orchestration/compaction/bounded_cognition.d.ts.map +1 -0
- package/dist/orchestration/compaction/bounded_cognition.js +124 -0
- package/dist/orchestration/compaction/bounded_cognition.js.map +1 -0
- package/dist/orchestration/conversation/conversation_manager.d.ts +25 -0
- package/dist/orchestration/conversation/conversation_manager.d.ts.map +1 -0
- package/dist/orchestration/conversation/conversation_manager.js +260 -0
- package/dist/orchestration/conversation/conversation_manager.js.map +1 -0
- package/dist/orchestration/events/event_propagation.d.ts +20 -0
- package/dist/orchestration/events/event_propagation.d.ts.map +1 -0
- package/dist/orchestration/events/event_propagation.js +160 -0
- package/dist/orchestration/events/event_propagation.js.map +1 -0
- package/dist/orchestration/index.d.ts +28 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +147 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/interfaces/orchestration.d.ts +494 -0
- package/dist/orchestration/interfaces/orchestration.d.ts.map +1 -0
- package/dist/orchestration/interfaces/orchestration.js +64 -0
- package/dist/orchestration/interfaces/orchestration.js.map +1 -0
- package/dist/orchestration/migration/003_orchestration.d.ts +27 -0
- package/dist/orchestration/migration/003_orchestration.d.ts.map +1 -0
- package/dist/orchestration/migration/003_orchestration.js +336 -0
- package/dist/orchestration/migration/003_orchestration.js.map +1 -0
- package/dist/orchestration/migration/004_tenant_isolation.d.ts +22 -0
- package/dist/orchestration/migration/004_tenant_isolation.d.ts.map +1 -0
- package/dist/orchestration/migration/004_tenant_isolation.js +179 -0
- package/dist/orchestration/migration/004_tenant_isolation.js.map +1 -0
- package/dist/orchestration/migration/005_immutability_triggers.d.ts +30 -0
- package/dist/orchestration/migration/005_immutability_triggers.d.ts.map +1 -0
- package/dist/orchestration/migration/005_immutability_triggers.js +93 -0
- package/dist/orchestration/migration/005_immutability_triggers.js.map +1 -0
- package/dist/orchestration/migration/006_audit_tombstone.d.ts +26 -0
- package/dist/orchestration/migration/006_audit_tombstone.d.ts.map +1 -0
- package/dist/orchestration/migration/006_audit_tombstone.js +71 -0
- package/dist/orchestration/migration/006_audit_tombstone.js.map +1 -0
- package/dist/orchestration/missions/mission_recovery.d.ts +60 -0
- package/dist/orchestration/missions/mission_recovery.d.ts.map +1 -0
- package/dist/orchestration/missions/mission_recovery.js +251 -0
- package/dist/orchestration/missions/mission_recovery.js.map +1 -0
- package/dist/orchestration/missions/mission_store.d.ts +16 -0
- package/dist/orchestration/missions/mission_store.d.ts.map +1 -0
- package/dist/orchestration/missions/mission_store.js +280 -0
- package/dist/orchestration/missions/mission_store.js.map +1 -0
- package/dist/orchestration/syscalls/create_artifact.d.ts +13 -0
- package/dist/orchestration/syscalls/create_artifact.d.ts.map +1 -0
- package/dist/orchestration/syscalls/create_artifact.js +23 -0
- package/dist/orchestration/syscalls/create_artifact.js.map +1 -0
- package/dist/orchestration/syscalls/emit_event.d.ts +13 -0
- package/dist/orchestration/syscalls/emit_event.d.ts.map +1 -0
- package/dist/orchestration/syscalls/emit_event.js +13 -0
- package/dist/orchestration/syscalls/emit_event.js.map +1 -0
- package/dist/orchestration/syscalls/propose_mission.d.ts +14 -0
- package/dist/orchestration/syscalls/propose_mission.d.ts.map +1 -0
- package/dist/orchestration/syscalls/propose_mission.js +27 -0
- package/dist/orchestration/syscalls/propose_mission.js.map +1 -0
- package/dist/orchestration/syscalls/propose_task_execution.d.ts +13 -0
- package/dist/orchestration/syscalls/propose_task_execution.d.ts.map +1 -0
- package/dist/orchestration/syscalls/propose_task_execution.js +84 -0
- package/dist/orchestration/syscalls/propose_task_execution.js.map +1 -0
- package/dist/orchestration/syscalls/propose_task_graph.d.ts +13 -0
- package/dist/orchestration/syscalls/propose_task_graph.d.ts.map +1 -0
- package/dist/orchestration/syscalls/propose_task_graph.js +22 -0
- package/dist/orchestration/syscalls/propose_task_graph.js.map +1 -0
- package/dist/orchestration/syscalls/read_artifact.d.ts +14 -0
- package/dist/orchestration/syscalls/read_artifact.d.ts.map +1 -0
- package/dist/orchestration/syscalls/read_artifact.js +31 -0
- package/dist/orchestration/syscalls/read_artifact.js.map +1 -0
- package/dist/orchestration/syscalls/request_budget.d.ts +14 -0
- package/dist/orchestration/syscalls/request_budget.d.ts.map +1 -0
- package/dist/orchestration/syscalls/request_budget.js +46 -0
- package/dist/orchestration/syscalls/request_budget.js.map +1 -0
- package/dist/orchestration/syscalls/request_capability.d.ts +13 -0
- package/dist/orchestration/syscalls/request_capability.d.ts.map +1 -0
- package/dist/orchestration/syscalls/request_capability.js +136 -0
- package/dist/orchestration/syscalls/request_capability.js.map +1 -0
- package/dist/orchestration/syscalls/respond_checkpoint.d.ts +12 -0
- package/dist/orchestration/syscalls/respond_checkpoint.d.ts.map +1 -0
- package/dist/orchestration/syscalls/respond_checkpoint.js +12 -0
- package/dist/orchestration/syscalls/respond_checkpoint.js.map +1 -0
- package/dist/orchestration/syscalls/submit_result.d.ts +15 -0
- package/dist/orchestration/syscalls/submit_result.d.ts.map +1 -0
- package/dist/orchestration/syscalls/submit_result.js +97 -0
- package/dist/orchestration/syscalls/submit_result.js.map +1 -0
- package/dist/orchestration/tasks/task_graph.d.ts +26 -0
- package/dist/orchestration/tasks/task_graph.d.ts.map +1 -0
- package/dist/orchestration/tasks/task_graph.js +204 -0
- package/dist/orchestration/tasks/task_graph.js.map +1 -0
- package/dist/orchestration/tasks/task_store.d.ts +18 -0
- package/dist/orchestration/tasks/task_store.d.ts.map +1 -0
- package/dist/orchestration/tasks/task_store.js +99 -0
- package/dist/orchestration/tasks/task_store.js.map +1 -0
- package/dist/reference-agent/artifact_manager.d.ts +119 -0
- package/dist/reference-agent/artifact_manager.d.ts.map +1 -0
- package/dist/reference-agent/artifact_manager.js +149 -0
- package/dist/reference-agent/artifact_manager.js.map +1 -0
- package/dist/reference-agent/checkpoint_handler.d.ts +186 -0
- package/dist/reference-agent/checkpoint_handler.d.ts.map +1 -0
- package/dist/reference-agent/checkpoint_handler.js +423 -0
- package/dist/reference-agent/checkpoint_handler.js.map +1 -0
- package/dist/reference-agent/index.d.ts +43 -0
- package/dist/reference-agent/index.d.ts.map +1 -0
- package/dist/reference-agent/index.js +53 -0
- package/dist/reference-agent/index.js.map +1 -0
- package/dist/reference-agent/mission_planner.d.ts +163 -0
- package/dist/reference-agent/mission_planner.d.ts.map +1 -0
- package/dist/reference-agent/mission_planner.js +375 -0
- package/dist/reference-agent/mission_planner.js.map +1 -0
- package/dist/reference-agent/reference_agent.d.ts +130 -0
- package/dist/reference-agent/reference_agent.d.ts.map +1 -0
- package/dist/reference-agent/reference_agent.js +360 -0
- package/dist/reference-agent/reference_agent.js.map +1 -0
- package/dist/reference-agent/reference_agent.types.d.ts +199 -0
- package/dist/reference-agent/reference_agent.types.d.ts.map +1 -0
- package/dist/reference-agent/reference_agent.types.js +59 -0
- package/dist/reference-agent/reference_agent.types.js.map +1 -0
- package/dist/reference-agent/result_aggregator.d.ts +107 -0
- package/dist/reference-agent/result_aggregator.d.ts.map +1 -0
- package/dist/reference-agent/result_aggregator.js +219 -0
- package/dist/reference-agent/result_aggregator.js.map +1 -0
- package/dist/reference-agent/system_call_client.d.ts +106 -0
- package/dist/reference-agent/system_call_client.d.ts.map +1 -0
- package/dist/reference-agent/system_call_client.js +231 -0
- package/dist/reference-agent/system_call_client.js.map +1 -0
- package/dist/reference-agent/task_executor.d.ts +108 -0
- package/dist/reference-agent/task_executor.d.ts.map +1 -0
- package/dist/reference-agent/task_executor.js +249 -0
- package/dist/reference-agent/task_executor.js.map +1 -0
- package/dist/substrate/accounting/resource_accounting.d.ts +52 -0
- package/dist/substrate/accounting/resource_accounting.d.ts.map +1 -0
- package/dist/substrate/accounting/resource_accounting.js +200 -0
- package/dist/substrate/accounting/resource_accounting.js.map +1 -0
- package/dist/substrate/adapters/capability_registry.d.ts +28 -0
- package/dist/substrate/adapters/capability_registry.d.ts.map +1 -0
- package/dist/substrate/adapters/capability_registry.js +196 -0
- package/dist/substrate/adapters/capability_registry.js.map +1 -0
- package/dist/substrate/gateway/llm_gateway.d.ts +68 -0
- package/dist/substrate/gateway/llm_gateway.d.ts.map +1 -0
- package/dist/substrate/gateway/llm_gateway.js +442 -0
- package/dist/substrate/gateway/llm_gateway.js.map +1 -0
- package/dist/substrate/heartbeat/heartbeat_monitor.d.ts +40 -0
- package/dist/substrate/heartbeat/heartbeat_monitor.d.ts.map +1 -0
- package/dist/substrate/heartbeat/heartbeat_monitor.js +170 -0
- package/dist/substrate/heartbeat/heartbeat_monitor.js.map +1 -0
- package/dist/substrate/index.d.ts +59 -0
- package/dist/substrate/index.d.ts.map +1 -0
- package/dist/substrate/index.js +143 -0
- package/dist/substrate/index.js.map +1 -0
- package/dist/substrate/interfaces/substrate.d.ts +486 -0
- package/dist/substrate/interfaces/substrate.d.ts.map +1 -0
- package/dist/substrate/interfaces/substrate.js +14 -0
- package/dist/substrate/interfaces/substrate.js.map +1 -0
- package/dist/substrate/migration/002_substrate.d.ts +24 -0
- package/dist/substrate/migration/002_substrate.d.ts.map +1 -0
- package/dist/substrate/migration/002_substrate.js +188 -0
- package/dist/substrate/migration/002_substrate.js.map +1 -0
- package/dist/substrate/migration/022_transport_deliberation.d.ts +31 -0
- package/dist/substrate/migration/022_transport_deliberation.d.ts.map +1 -0
- package/dist/substrate/migration/022_transport_deliberation.js +77 -0
- package/dist/substrate/migration/022_transport_deliberation.js.map +1 -0
- package/dist/substrate/replay/replay_engine.d.ts +65 -0
- package/dist/substrate/replay/replay_engine.d.ts.map +1 -0
- package/dist/substrate/replay/replay_engine.js +316 -0
- package/dist/substrate/replay/replay_engine.js.map +1 -0
- package/dist/substrate/scheduler/task_scheduler.d.ts +38 -0
- package/dist/substrate/scheduler/task_scheduler.d.ts.map +1 -0
- package/dist/substrate/scheduler/task_scheduler.js +486 -0
- package/dist/substrate/scheduler/task_scheduler.js.map +1 -0
- package/dist/substrate/transport/adapters/anthropic_adapter.d.ts +57 -0
- package/dist/substrate/transport/adapters/anthropic_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/anthropic_adapter.js +455 -0
- package/dist/substrate/transport/adapters/anthropic_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/gemini_adapter.d.ts +86 -0
- package/dist/substrate/transport/adapters/gemini_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/gemini_adapter.js +456 -0
- package/dist/substrate/transport/adapters/gemini_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/groq_adapter.d.ts +50 -0
- package/dist/substrate/transport/adapters/groq_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/groq_adapter.js +179 -0
- package/dist/substrate/transport/adapters/groq_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/mistral_adapter.d.ts +50 -0
- package/dist/substrate/transport/adapters/mistral_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/mistral_adapter.js +179 -0
- package/dist/substrate/transport/adapters/mistral_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/ollama_adapter.d.ts +66 -0
- package/dist/substrate/transport/adapters/ollama_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/ollama_adapter.js +347 -0
- package/dist/substrate/transport/adapters/ollama_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/openai_adapter.d.ts +68 -0
- package/dist/substrate/transport/adapters/openai_adapter.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/openai_adapter.js +439 -0
- package/dist/substrate/transport/adapters/openai_adapter.js.map +1 -0
- package/dist/substrate/transport/adapters/openai_compat.d.ts +64 -0
- package/dist/substrate/transport/adapters/openai_compat.d.ts.map +1 -0
- package/dist/substrate/transport/adapters/openai_compat.js +326 -0
- package/dist/substrate/transport/adapters/openai_compat.js.map +1 -0
- package/dist/substrate/transport/index.d.ts +17 -0
- package/dist/substrate/transport/index.d.ts.map +1 -0
- package/dist/substrate/transport/index.js +25 -0
- package/dist/substrate/transport/index.js.map +1 -0
- package/dist/substrate/transport/stream_parser.d.ts +69 -0
- package/dist/substrate/transport/stream_parser.d.ts.map +1 -0
- package/dist/substrate/transport/stream_parser.js +280 -0
- package/dist/substrate/transport/stream_parser.js.map +1 -0
- package/dist/substrate/transport/transport_engine.d.ts +53 -0
- package/dist/substrate/transport/transport_engine.d.ts.map +1 -0
- package/dist/substrate/transport/transport_engine.js +444 -0
- package/dist/substrate/transport/transport_engine.js.map +1 -0
- package/dist/substrate/transport/transport_types.d.ts +207 -0
- package/dist/substrate/transport/transport_types.d.ts.map +1 -0
- package/dist/substrate/transport/transport_types.js +13 -0
- package/dist/substrate/transport/transport_types.js.map +1 -0
- package/dist/substrate/workers/worker_runtime.d.ts +40 -0
- package/dist/substrate/workers/worker_runtime.d.ts.map +1 -0
- package/dist/substrate/workers/worker_runtime.js +294 -0
- package/dist/substrate/workers/worker_runtime.js.map +1 -0
- package/dist/techniques/harness/tgp_harness.d.ts +39 -0
- package/dist/techniques/harness/tgp_harness.d.ts.map +1 -0
- package/dist/techniques/harness/tgp_harness.js +49 -0
- package/dist/techniques/harness/tgp_harness.js.map +1 -0
- package/dist/techniques/interfaces/tgp_types.d.ts +646 -0
- package/dist/techniques/interfaces/tgp_types.d.ts.map +1 -0
- package/dist/techniques/interfaces/tgp_types.js +160 -0
- package/dist/techniques/interfaces/tgp_types.js.map +1 -0
- package/dist/techniques/migration/020_tgp_governance.d.ts +36 -0
- package/dist/techniques/migration/020_tgp_governance.d.ts.map +1 -0
- package/dist/techniques/migration/020_tgp_governance.js +249 -0
- package/dist/techniques/migration/020_tgp_governance.js.map +1 -0
- package/dist/techniques/store/tgp_stores.d.ts +36 -0
- package/dist/techniques/store/tgp_stores.d.ts.map +1 -0
- package/dist/techniques/store/tgp_stores.js +854 -0
- package/dist/techniques/store/tgp_stores.js.map +1 -0
- package/dist/working-memory/harness/wmp_harness.d.ts +43 -0
- package/dist/working-memory/harness/wmp_harness.d.ts.map +1 -0
- package/dist/working-memory/harness/wmp_harness.js +81 -0
- package/dist/working-memory/harness/wmp_harness.js.map +1 -0
- package/dist/working-memory/interfaces/wmp_types.d.ts +635 -0
- package/dist/working-memory/interfaces/wmp_types.d.ts.map +1 -0
- package/dist/working-memory/interfaces/wmp_types.js +144 -0
- package/dist/working-memory/interfaces/wmp_types.js.map +1 -0
- package/dist/working-memory/migration/021_wmp.d.ts +21 -0
- package/dist/working-memory/migration/021_wmp.d.ts.map +1 -0
- package/dist/working-memory/migration/021_wmp.js +139 -0
- package/dist/working-memory/migration/021_wmp.js.map +1 -0
- package/dist/working-memory/stores/wmp_stores.d.ts +28 -0
- package/dist/working-memory/stores/wmp_stores.d.ts.map +1 -0
- package/dist/working-memory/stores/wmp_stores.js +754 -0
- package/dist/working-memory/stores/wmp_stores.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drift Engine — Semantic drift detection at checkpoints.
|
|
3
|
+
* S ref: I-24 (Goal Anchoring), FM-14 (Semantic Drift), FM-16 (Mission Drift)
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 3 (Knowledge Graph)
|
|
6
|
+
*
|
|
7
|
+
* Algorithm:
|
|
8
|
+
* 1. Read goal anchor from core_mission_goals (NOT core_missions — T-S3-018)
|
|
9
|
+
* 2. Compute TF-IDF cosine similarity between objective and assessment text
|
|
10
|
+
* 3. driftScore = 1.0 - similarityScore
|
|
11
|
+
* 4. Threshold: > 0.7 escalated, 0.4-0.7 flagged, < 0.4 none
|
|
12
|
+
* 5. INSERT drift assessment record (append-only)
|
|
13
|
+
*
|
|
14
|
+
* Reuses computeSimilarity from technique_extractor.ts (D1: local TF-IDF cosine).
|
|
15
|
+
* FO-004: upgrade to embedding-based similarity when IC-08 ships.
|
|
16
|
+
*
|
|
17
|
+
* Safety constraints:
|
|
18
|
+
* - Reads from core_mission_goals (trigger-protected, I-24)
|
|
19
|
+
* - Tenant isolation via mission_id FK (core_mission_goals has no tenant_id;
|
|
20
|
+
* isolation is enforced at the mission level — the mission owns the tenant scope)
|
|
21
|
+
* - Append-only: core_drift_assessments has triggers blocking UPDATE/DELETE
|
|
22
|
+
* - TimeProvider for all timestamps
|
|
23
|
+
*
|
|
24
|
+
* Spec trace: §4 I-24, §6 FM-14, §16 FM-16
|
|
25
|
+
*/
|
|
26
|
+
import { randomUUID } from 'node:crypto';
|
|
27
|
+
import { computeSimilarity } from '../../learning/extractor/technique_extractor.js';
|
|
28
|
+
/** Drift thresholds for action classification. */
|
|
29
|
+
const DRIFT_ESCALATION_THRESHOLD = 0.7;
|
|
30
|
+
const DRIFT_FLAG_THRESHOLD = 0.4;
|
|
31
|
+
/**
|
|
32
|
+
* Generate a drift assessment ID.
|
|
33
|
+
* Uses TimeProvider for timestamp (I-25 deterministic replay) and
|
|
34
|
+
* crypto.randomUUID for uniqueness (consistency with codebase pattern).
|
|
35
|
+
*/
|
|
36
|
+
function generateDriftId(time) {
|
|
37
|
+
return `drift-${time.nowMs().toString(36)}-${randomUUID().slice(0, 8)}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Assess semantic drift between a checkpoint's assessment text and the mission's
|
|
41
|
+
* goal anchor objective.
|
|
42
|
+
*
|
|
43
|
+
* @param checkpointId - ID of the checkpoint being assessed
|
|
44
|
+
* @param missionId - Mission ID to read goal anchor from
|
|
45
|
+
* @param assessmentText - The checkpoint's assessment text to compare
|
|
46
|
+
* @param conn - Database connection
|
|
47
|
+
* @param tenantId - Tenant ID for isolation (null for single-tenant)
|
|
48
|
+
* @param audit - Audit trail
|
|
49
|
+
* @param time - TimeProvider for timestamps
|
|
50
|
+
* @returns DriftResult with scores and action
|
|
51
|
+
*/
|
|
52
|
+
export function assessDrift(checkpointId, missionId, assessmentText, conn, tenantId, audit, time) {
|
|
53
|
+
// Step 1: Read goal anchor from core_mission_goals (NOT core_missions — T-S3-018)
|
|
54
|
+
// Tenant isolation via mission_id FK (no tenant_id column on core_mission_goals)
|
|
55
|
+
const goalRow = conn.get(`SELECT objective
|
|
56
|
+
FROM core_mission_goals
|
|
57
|
+
WHERE mission_id = ?`, [missionId]);
|
|
58
|
+
// No goal anchor found: no drift can be detected — graceful fallback
|
|
59
|
+
if (!goalRow) {
|
|
60
|
+
return {
|
|
61
|
+
driftScore: 0,
|
|
62
|
+
similarityScore: 1,
|
|
63
|
+
actionTaken: 'none',
|
|
64
|
+
escalationReason: null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Step 2: Compute similarity using reused computeSimilarity (D1: TF-IDF cosine)
|
|
68
|
+
const similarityScore = computeSimilarity(goalRow.objective, assessmentText);
|
|
69
|
+
// Step 3: driftScore = 1.0 - similarityScore
|
|
70
|
+
const driftScore = 1.0 - similarityScore;
|
|
71
|
+
// Step 4: Classify action based on thresholds
|
|
72
|
+
let actionTaken;
|
|
73
|
+
let escalationReason = null;
|
|
74
|
+
if (driftScore > DRIFT_ESCALATION_THRESHOLD) {
|
|
75
|
+
actionTaken = 'escalated';
|
|
76
|
+
escalationReason = `goal_drift_detected: drift score ${driftScore.toFixed(3)} exceeds escalation threshold ${DRIFT_ESCALATION_THRESHOLD}`;
|
|
77
|
+
}
|
|
78
|
+
else if (driftScore >= DRIFT_FLAG_THRESHOLD) {
|
|
79
|
+
actionTaken = 'flagged';
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
actionTaken = 'none';
|
|
83
|
+
}
|
|
84
|
+
// Step 5: INSERT drift assessment record (append-only)
|
|
85
|
+
const driftId = generateDriftId(time);
|
|
86
|
+
const now = time.nowISO();
|
|
87
|
+
conn.run(`INSERT INTO core_drift_assessments
|
|
88
|
+
(id, checkpoint_id, mission_id, tenant_id, drift_score, similarity_score,
|
|
89
|
+
original_objective, current_assessment, action_taken, escalation_reason, created_at)
|
|
90
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
91
|
+
driftId,
|
|
92
|
+
checkpointId,
|
|
93
|
+
missionId,
|
|
94
|
+
tenantId,
|
|
95
|
+
driftScore,
|
|
96
|
+
similarityScore,
|
|
97
|
+
goalRow.objective,
|
|
98
|
+
assessmentText,
|
|
99
|
+
actionTaken,
|
|
100
|
+
escalationReason,
|
|
101
|
+
now,
|
|
102
|
+
]);
|
|
103
|
+
// I-03: Audit trail for drift assessment
|
|
104
|
+
audit.append(conn, {
|
|
105
|
+
tenantId,
|
|
106
|
+
actorType: 'system',
|
|
107
|
+
actorId: 'drift_engine',
|
|
108
|
+
operation: 'assess_drift',
|
|
109
|
+
resourceType: 'drift_assessment',
|
|
110
|
+
resourceId: driftId,
|
|
111
|
+
detail: {
|
|
112
|
+
checkpointId,
|
|
113
|
+
missionId,
|
|
114
|
+
driftScore,
|
|
115
|
+
similarityScore,
|
|
116
|
+
actionTaken,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
driftScore,
|
|
121
|
+
similarityScore,
|
|
122
|
+
actionTaken,
|
|
123
|
+
escalationReason,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=drift_engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift_engine.js","sourceRoot":"","sources":["../../../src/orchestration/checkpoints/drift_engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEpF,kDAAkD;AAClD,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAcjC;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAkB;IACzC,OAAO,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,YAAoB,EACpB,SAAoB,EACpB,cAAsB,EACtB,IAAwB,EACxB,QAAyB,EACzB,KAAiB,EACjB,IAAkB;IAElB,kFAAkF;IAClF,iFAAiF;IACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB;;0BAEsB,EACtB,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,qEAAqE;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,MAAM;YACnB,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE7E,6CAA6C;IAC7C,MAAM,UAAU,GAAG,GAAG,GAAG,eAAe,CAAC;IAEzC,8CAA8C;IAC9C,IAAI,WAA6C,CAAC;IAClD,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAE3C,IAAI,UAAU,GAAG,0BAA0B,EAAE,CAAC;QAC5C,WAAW,GAAG,WAAW,CAAC;QAC1B,gBAAgB,GAAG,oCAAoC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,0BAA0B,EAAE,CAAC;IAC5I,CAAC;SAAM,IAAI,UAAU,IAAI,oBAAoB,EAAE,CAAC;QAC9C,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,uDAAuD;IACvD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,GAAG,CACN;;;8CAG0C,EAC1C;QACE,OAAO;QACP,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,UAAU;QACV,eAAe;QACf,OAAO,CAAC,SAAS;QACjB,cAAc;QACd,WAAW;QACX,gBAAgB;QAChB,GAAG;KACJ,CACF,CAAC;IAEF,yCAAyC;IACzC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACjB,QAAQ;QACR,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,cAAc;QACzB,YAAY,EAAE,kBAAkB;QAChC,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE;YACN,YAAY;YACZ,SAAS;YACT,UAAU;YACV,eAAe;YACf,WAAW;SACZ;KACF,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,eAAe;QACf,WAAW;QACX,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded Cognition -- Eager compaction of completed subtrees.
|
|
3
|
+
* S ref: I-21 (bounded cognitive state), S40 (operational failure defense),
|
|
4
|
+
* S23 (submit_result triggers compaction), I-03 (atomic audit)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 3 (Orchestration)
|
|
7
|
+
* Implements: On submit_result, compact completed subtrees IN THE SAME TRANSACTION.
|
|
8
|
+
* Working-set query returns only non-compacted, active missions.
|
|
9
|
+
* Compaction produces a summary artifact and archives the subtree.
|
|
10
|
+
*
|
|
11
|
+
* SD-20: Compaction is eager (same transaction as submit_result) not lazy.
|
|
12
|
+
* This prevents the working set from growing unboundedly.
|
|
13
|
+
* SD-21: Compacted missions have compacted=1, their artifacts are ARCHIVED,
|
|
14
|
+
* and a compaction_log entry records what was compacted.
|
|
15
|
+
*/
|
|
16
|
+
import type { CompactionEngine } from '../interfaces/orchestration.js';
|
|
17
|
+
/**
|
|
18
|
+
* I-21: Create the compaction engine module.
|
|
19
|
+
* Factory function returns frozen object per C-07.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createCompactionEngine(): CompactionEngine;
|
|
22
|
+
//# sourceMappingURL=bounded_cognition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded_cognition.d.ts","sourceRoot":"","sources":["../../../src/orchestration/compaction/bounded_cognition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAqB,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAG1F;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CA8JzD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded Cognition -- Eager compaction of completed subtrees.
|
|
3
|
+
* S ref: I-21 (bounded cognitive state), S40 (operational failure defense),
|
|
4
|
+
* S23 (submit_result triggers compaction), I-03 (atomic audit)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 3 (Orchestration)
|
|
7
|
+
* Implements: On submit_result, compact completed subtrees IN THE SAME TRANSACTION.
|
|
8
|
+
* Working-set query returns only non-compacted, active missions.
|
|
9
|
+
* Compaction produces a summary artifact and archives the subtree.
|
|
10
|
+
*
|
|
11
|
+
* SD-20: Compaction is eager (same transaction as submit_result) not lazy.
|
|
12
|
+
* This prevents the working set from growing unboundedly.
|
|
13
|
+
* SD-21: Compacted missions have compacted=1, their artifacts are ARCHIVED,
|
|
14
|
+
* and a compaction_log entry records what was compacted.
|
|
15
|
+
*/
|
|
16
|
+
import { generateId } from '../interfaces/orchestration.js';
|
|
17
|
+
/**
|
|
18
|
+
* I-21: Create the compaction engine module.
|
|
19
|
+
* Factory function returns frozen object per C-07.
|
|
20
|
+
*/
|
|
21
|
+
export function createCompactionEngine() {
|
|
22
|
+
/**
|
|
23
|
+
* I-21: Eagerly compact a completed subtree in same transaction.
|
|
24
|
+
* SD-20: Called from submit_result after mission transitions to COMPLETED.
|
|
25
|
+
*
|
|
26
|
+
* Compaction steps:
|
|
27
|
+
* 1. Find all completed children of the completed mission
|
|
28
|
+
* 2. Mark them as compacted (compacted=1)
|
|
29
|
+
* 3. Archive their artifacts (lifecycle_state='ARCHIVED')
|
|
30
|
+
* 4. Create a summary artifact with compaction details
|
|
31
|
+
* 5. Log the compaction
|
|
32
|
+
*/
|
|
33
|
+
function compactSubtree(deps, completedMissionId) {
|
|
34
|
+
// Verify mission is completed
|
|
35
|
+
const mission = deps.conn.get('SELECT state, parent_id, tenant_id FROM core_missions WHERE id = ?', [completedMissionId]);
|
|
36
|
+
if (!mission || mission.state !== 'COMPLETED') {
|
|
37
|
+
// Not completed -- nothing to compact
|
|
38
|
+
return { ok: true, value: undefined };
|
|
39
|
+
}
|
|
40
|
+
// Find all completed children (direct children only for efficiency)
|
|
41
|
+
const completedChildren = deps.conn.query(`SELECT id FROM core_missions WHERE parent_id = ? AND state = 'COMPLETED' AND compacted = 0`, [completedMissionId]);
|
|
42
|
+
if (completedChildren.length === 0) {
|
|
43
|
+
// No children to compact -- just mark self if it's a leaf
|
|
44
|
+
return { ok: true, value: undefined };
|
|
45
|
+
}
|
|
46
|
+
const now = deps.time.nowISO();
|
|
47
|
+
const compactionId = generateId();
|
|
48
|
+
const childIds = completedChildren.map(c => c.id);
|
|
49
|
+
let totalArchived = 0;
|
|
50
|
+
deps.conn.transaction(() => {
|
|
51
|
+
// Mark children as compacted
|
|
52
|
+
for (const childId of childIds) {
|
|
53
|
+
deps.conn.run(`UPDATE core_missions SET compacted = 1, updated_at = ? WHERE id = ?`, [now, childId]);
|
|
54
|
+
// Archive their artifacts
|
|
55
|
+
const archiveResult = deps.conn.run(`UPDATE core_artifacts SET lifecycle_state = 'ARCHIVED' WHERE mission_id = ? AND lifecycle_state = 'ACTIVE'`, [childId]);
|
|
56
|
+
totalArchived += archiveResult.changes;
|
|
57
|
+
// Recursively compact grandchildren that are completed
|
|
58
|
+
const grandchildren = deps.conn.query(`SELECT id FROM core_missions WHERE parent_id = ? AND state = 'COMPLETED' AND compacted = 0`, [childId]);
|
|
59
|
+
for (const gc of grandchildren) {
|
|
60
|
+
deps.conn.run(`UPDATE core_missions SET compacted = 1, updated_at = ? WHERE id = ?`, [now, gc.id]);
|
|
61
|
+
const gcArchive = deps.conn.run(`UPDATE core_artifacts SET lifecycle_state = 'ARCHIVED' WHERE mission_id = ? AND lifecycle_state = 'ACTIVE'`, [gc.id]);
|
|
62
|
+
totalArchived += gcArchive.changes;
|
|
63
|
+
childIds.push(gc.id);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Create summary artifact for the compaction
|
|
67
|
+
const summaryArtifactId = generateId();
|
|
68
|
+
const summaryContent = JSON.stringify({
|
|
69
|
+
compactedMissions: childIds,
|
|
70
|
+
totalArchived,
|
|
71
|
+
compactedAt: now,
|
|
72
|
+
parentMission: completedMissionId,
|
|
73
|
+
});
|
|
74
|
+
// FM-10: tenant_id inherited from mission
|
|
75
|
+
deps.conn.run(`INSERT INTO core_artifacts (id, version, mission_id, tenant_id, name, type, format, content, lifecycle_state, source_task_id, parent_artifact_id, relevance_decay, metadata_json, created_at)
|
|
76
|
+
VALUES (?, 1, ?, ?, 'compaction_summary', 'report', 'json', ?, 'ACTIVE', 'compaction', NULL, 0, ?, ?)`, [summaryArtifactId, completedMissionId, mission.tenant_id, Buffer.from(summaryContent, 'utf-8'), JSON.stringify({ compactionId }), now]);
|
|
77
|
+
// Log the compaction
|
|
78
|
+
// FM-10: tenant_id inherited from mission
|
|
79
|
+
deps.conn.run(`INSERT INTO core_compaction_log (id, mission_id, tenant_id, summary_artifact_id, missions_compacted, artifacts_archived, created_at)
|
|
80
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [compactionId, completedMissionId, mission.tenant_id, summaryArtifactId, JSON.stringify(childIds), totalArchived, now]);
|
|
81
|
+
// I-03: Audit entry
|
|
82
|
+
deps.audit.append(deps.conn, {
|
|
83
|
+
tenantId: mission.tenant_id,
|
|
84
|
+
actorType: 'system',
|
|
85
|
+
actorId: 'compaction_engine',
|
|
86
|
+
operation: 'compact_subtree',
|
|
87
|
+
resourceType: 'mission',
|
|
88
|
+
resourceId: completedMissionId,
|
|
89
|
+
detail: { childIds, totalArchived, compactionId },
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
return { ok: true, value: undefined };
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* I-21: Get working set -- non-compacted, active missions in a tree.
|
|
96
|
+
* SD-07: Uses the working-set partial index for O(1) query.
|
|
97
|
+
*/
|
|
98
|
+
function getWorkingSet(deps, rootMissionId) {
|
|
99
|
+
// Get all non-compacted, non-terminal missions in the tree
|
|
100
|
+
// Start from root and walk down
|
|
101
|
+
const working = [];
|
|
102
|
+
function walk(missionId) {
|
|
103
|
+
const mission = deps.conn.get('SELECT id, state, compacted FROM core_missions WHERE id = ?', [missionId]);
|
|
104
|
+
if (!mission)
|
|
105
|
+
return;
|
|
106
|
+
const terminalStates = ['COMPLETED', 'FAILED', 'CANCELLED'];
|
|
107
|
+
if (mission.compacted === 0 && !terminalStates.includes(mission.state)) {
|
|
108
|
+
working.push(mission.id);
|
|
109
|
+
}
|
|
110
|
+
// Walk children
|
|
111
|
+
const children = deps.conn.query('SELECT id FROM core_missions WHERE parent_id = ?', [missionId]);
|
|
112
|
+
for (const child of children) {
|
|
113
|
+
walk(child.id);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
walk(rootMissionId);
|
|
117
|
+
return { ok: true, value: working };
|
|
118
|
+
}
|
|
119
|
+
return Object.freeze({
|
|
120
|
+
compactSubtree,
|
|
121
|
+
getWorkingSet,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=bounded_cognition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded_cognition.js","sourceRoot":"","sources":["../../../src/orchestration/compaction/bounded_cognition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAEpC;;;;;;;;;;OAUG;IACH,SAAS,cAAc,CACrB,IAAuB,EACvB,kBAA6B;QAE7B,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3B,oEAAoE,EACpE,CAAC,kBAAkB,CAAC,CACrB,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC9C,sCAAsC;YACtC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAED,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CACvC,4FAA4F,EAC5F,CAAC,kBAAkB,CAAC,CACrB,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,0DAA0D;YAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACzB,6BAA6B;YAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,qEAAqE,EACrE,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;gBAEF,0BAA0B;gBAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CACjC,4GAA4G,EAC5G,CAAC,OAAO,CAAC,CACV,CAAC;gBACF,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC;gBAEvC,uDAAuD;gBACvD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CACnC,4FAA4F,EAC5F,CAAC,OAAO,CAAC,CACV,CAAC;gBACF,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,qEAAqE,EACrE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CACb,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,4GAA4G,EAC5G,CAAC,EAAE,CAAC,EAAE,CAAC,CACR,CAAC;oBACF,aAAa,IAAI,SAAS,CAAC,OAAO,CAAC;oBACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,MAAM,iBAAiB,GAAG,UAAU,EAAgB,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpC,iBAAiB,EAAE,QAAQ;gBAC3B,aAAa;gBACb,WAAW,EAAE,GAAG;gBAChB,aAAa,EAAE,kBAAkB;aAClC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CACX;+GACuG,EACvG,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CACxI,CAAC;YAEF,qBAAqB;YACrB,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CACX;sCAC8B,EAC9B,CAAC,YAAY,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CACvH,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3B,QAAQ,EAAE,OAAO,CAAC,SAAS;gBAC3B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,mBAAmB;gBAC5B,SAAS,EAAE,iBAAiB;gBAC5B,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,kBAAkB;gBAC9B,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE;aAClD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,SAAS,aAAa,CACpB,IAAuB,EACvB,aAAwB;QAExB,2DAA2D;QAC3D,gCAAgC;QAChC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,SAAS,IAAI,CAAC,SAAiB;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3B,6DAA6D,EAC7D,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAe,CAAC,CAAC;YACxC,CAAC;YAED,gBAAgB;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAC9B,kDAAkD,EAClD,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,cAAc;QACd,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation Manager -- Conversation history and auto-summarization.
|
|
3
|
+
* S ref: S26 (Conversation Model), I-27 (conversation integrity),
|
|
4
|
+
* I-21 (bounded cognition via summarization), I-03 (atomic audit)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 3 (Orchestration)
|
|
7
|
+
* Implements: Conversation CRUD, turn appending with monotonic numbering,
|
|
8
|
+
* auto-summarization when context window threshold exceeded,
|
|
9
|
+
* fork (copy-on-branch) for branching conversations,
|
|
10
|
+
* learning-source exemption (turns marked is_learning_source
|
|
11
|
+
* are never summarized away).
|
|
12
|
+
*
|
|
13
|
+
* SD-25: summarized_up_to tracks which turns have been summarized.
|
|
14
|
+
* Only turns with turn_number <= summarized_up_to are eligible
|
|
15
|
+
* for replacement by a summary turn.
|
|
16
|
+
* SD-26: Fork copies all turns up to atTurn into a new conversation
|
|
17
|
+
* linked via parent_conversation_id.
|
|
18
|
+
*/
|
|
19
|
+
import type { ConversationManager } from '../interfaces/orchestration.js';
|
|
20
|
+
/**
|
|
21
|
+
* S26: Create the conversation manager module.
|
|
22
|
+
* Factory function returns frozen object per C-07.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createConversationManager(): ConversationManager;
|
|
25
|
+
//# sourceMappingURL=conversation_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation_manager.d.ts","sourceRoot":"","sources":["../../../src/orchestration/conversation/conversation_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EACS,mBAAmB,EACvC,MAAM,gCAAgC,CAAC;AAGxC;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAuV/D"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation Manager -- Conversation history and auto-summarization.
|
|
3
|
+
* S ref: S26 (Conversation Model), I-27 (conversation integrity),
|
|
4
|
+
* I-21 (bounded cognition via summarization), I-03 (atomic audit)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 3 (Orchestration)
|
|
7
|
+
* Implements: Conversation CRUD, turn appending with monotonic numbering,
|
|
8
|
+
* auto-summarization when context window threshold exceeded,
|
|
9
|
+
* fork (copy-on-branch) for branching conversations,
|
|
10
|
+
* learning-source exemption (turns marked is_learning_source
|
|
11
|
+
* are never summarized away).
|
|
12
|
+
*
|
|
13
|
+
* SD-25: summarized_up_to tracks which turns have been summarized.
|
|
14
|
+
* Only turns with turn_number <= summarized_up_to are eligible
|
|
15
|
+
* for replacement by a summary turn.
|
|
16
|
+
* SD-26: Fork copies all turns up to atTurn into a new conversation
|
|
17
|
+
* linked via parent_conversation_id.
|
|
18
|
+
*/
|
|
19
|
+
import { generateId } from '../interfaces/orchestration.js';
|
|
20
|
+
/**
|
|
21
|
+
* S26: Create the conversation manager module.
|
|
22
|
+
* Factory function returns frozen object per C-07.
|
|
23
|
+
*/
|
|
24
|
+
export function createConversationManager() {
|
|
25
|
+
/** S26: Create a new conversation */
|
|
26
|
+
function create(deps, sessionId, agentId, tenantId) {
|
|
27
|
+
const conversationId = generateId();
|
|
28
|
+
const now = deps.time.nowISO();
|
|
29
|
+
deps.conn.transaction(() => {
|
|
30
|
+
deps.conn.run(`INSERT INTO core_conversations (id, session_id, tenant_id, agent_id, parent_conversation_id, fork_at_turn, total_turns, total_tokens, summarized_up_to, created_at, updated_at)
|
|
31
|
+
VALUES (?, ?, ?, ?, NULL, NULL, 0, 0, 0, ?, ?)`, [conversationId, sessionId, tenantId, agentId, now, now]);
|
|
32
|
+
// F-05 fix: I-03 audit entry for conversation creation
|
|
33
|
+
deps.audit.append(deps.conn, {
|
|
34
|
+
tenantId,
|
|
35
|
+
actorType: 'system',
|
|
36
|
+
actorId: agentId,
|
|
37
|
+
operation: 'create_conversation',
|
|
38
|
+
resourceType: 'conversation',
|
|
39
|
+
resourceId: conversationId,
|
|
40
|
+
detail: { sessionId },
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return { ok: true, value: conversationId };
|
|
44
|
+
}
|
|
45
|
+
/** S26.1: Append a turn to conversation. Returns the new turn number. */
|
|
46
|
+
function appendTurn(deps, conversationId, turn) {
|
|
47
|
+
// Get current conversation state
|
|
48
|
+
const conv = deps.conn.get('SELECT total_turns, total_tokens, tenant_id FROM core_conversations WHERE id = ?', [conversationId]);
|
|
49
|
+
if (!conv) {
|
|
50
|
+
return { ok: false, error: { code: 'NOT_FOUND', message: `Conversation ${conversationId} not found`, spec: 'S26' } };
|
|
51
|
+
}
|
|
52
|
+
const turnNumber = conv.total_turns + 1;
|
|
53
|
+
const turnId = generateId();
|
|
54
|
+
const now = deps.time.nowISO();
|
|
55
|
+
deps.conn.transaction(() => {
|
|
56
|
+
// FM-10: tenant_id inherited from parent conversation
|
|
57
|
+
deps.conn.run(`INSERT INTO core_conversation_turns (id, conversation_id, tenant_id, turn_number, role, content, token_count, model_used, is_summary, is_learning_source, participant_id, metadata_json, created_at)
|
|
58
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, NULL, ?)`, [
|
|
59
|
+
turnId,
|
|
60
|
+
conversationId,
|
|
61
|
+
conv.tenant_id,
|
|
62
|
+
turnNumber,
|
|
63
|
+
turn.role,
|
|
64
|
+
turn.content,
|
|
65
|
+
turn.tokenCount,
|
|
66
|
+
turn.modelUsed ?? null,
|
|
67
|
+
(turn.isLearningSource ?? false) ? 1 : 0,
|
|
68
|
+
turn.participantId ?? null,
|
|
69
|
+
now,
|
|
70
|
+
]);
|
|
71
|
+
// Update conversation metadata
|
|
72
|
+
deps.conn.run(`UPDATE core_conversations SET total_turns = ?, total_tokens = total_tokens + ?, updated_at = ? WHERE id = ?`, [turnNumber, turn.tokenCount, now, conversationId]);
|
|
73
|
+
// F-05 fix: I-03 audit entry for turn append
|
|
74
|
+
deps.audit.append(deps.conn, {
|
|
75
|
+
tenantId: conv.tenant_id,
|
|
76
|
+
actorType: 'system',
|
|
77
|
+
actorId: turn.participantId ?? 'system',
|
|
78
|
+
operation: 'append_turn',
|
|
79
|
+
resourceType: 'conversation_turn',
|
|
80
|
+
resourceId: turnId,
|
|
81
|
+
detail: { conversationId, turnNumber, role: turn.role },
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
return { ok: true, value: turnNumber };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* S26.2: Auto-summarize if context window threshold exceeded.
|
|
88
|
+
* SD-25: Only turns with turn_number > summarized_up_to and
|
|
89
|
+
* is_learning_source = 0 are eligible for summarization.
|
|
90
|
+
* Replaces eligible turns with a single summary turn.
|
|
91
|
+
* Returns true if summarization occurred, false if not needed.
|
|
92
|
+
*/
|
|
93
|
+
function autoSummarize(deps, conversationId, contextWindowTokens) {
|
|
94
|
+
const conv = deps.conn.get('SELECT total_tokens, summarized_up_to, total_turns, tenant_id FROM core_conversations WHERE id = ?', [conversationId]);
|
|
95
|
+
if (!conv) {
|
|
96
|
+
return { ok: false, error: { code: 'NOT_FOUND', message: `Conversation ${conversationId} not found`, spec: 'S26' } };
|
|
97
|
+
}
|
|
98
|
+
// Check if we exceed the context window threshold (80% triggers summarization)
|
|
99
|
+
const threshold = Math.floor(contextWindowTokens * 0.8);
|
|
100
|
+
if (conv.total_tokens <= threshold) {
|
|
101
|
+
return { ok: true, value: false };
|
|
102
|
+
}
|
|
103
|
+
// Get eligible turns (not already summarized, not learning-source, not summary)
|
|
104
|
+
// CF-034b: Include role for semantic-preserving summaries
|
|
105
|
+
const eligibleTurns = deps.conn.query(`SELECT turn_number, role, content, token_count FROM core_conversation_turns
|
|
106
|
+
WHERE conversation_id = ? AND turn_number > ? AND is_learning_source = 0 AND is_summary = 0
|
|
107
|
+
ORDER BY turn_number ASC`, [conversationId, conv.summarized_up_to]);
|
|
108
|
+
if (eligibleTurns.length <= 2) {
|
|
109
|
+
// Too few turns to summarize meaningfully
|
|
110
|
+
return { ok: true, value: false };
|
|
111
|
+
}
|
|
112
|
+
// Determine how many turns to summarize (keep last 2 eligible)
|
|
113
|
+
const turnsToSummarize = eligibleTurns.slice(0, -2);
|
|
114
|
+
if (turnsToSummarize.length === 0) {
|
|
115
|
+
return { ok: true, value: false };
|
|
116
|
+
}
|
|
117
|
+
// CF-034b: Improved summary that preserves semantic content (I-27).
|
|
118
|
+
// Keep the first turn's content more fully (it often sets the context),
|
|
119
|
+
// and extract key sentences from middle turns rather than blind truncation.
|
|
120
|
+
const summaryContent = turnsToSummarize.map((t, idx) => {
|
|
121
|
+
const maxLen = idx === 0 ? 500 : 300; // First turn gets more space
|
|
122
|
+
const truncated = t.content.length > maxLen
|
|
123
|
+
? t.content.substring(0, maxLen) + '...'
|
|
124
|
+
: t.content;
|
|
125
|
+
return `[Turn ${t.turn_number} (${t.role})]: ${truncated}`;
|
|
126
|
+
}).join('\n');
|
|
127
|
+
const summarizedTokens = turnsToSummarize.reduce((sum, t) => sum + t.token_count, 0);
|
|
128
|
+
// Summary is roughly 20% of the original
|
|
129
|
+
const summaryTokens = Math.max(Math.floor(summarizedTokens * 0.2), 10);
|
|
130
|
+
const lastSummarizedTurn = turnsToSummarize[turnsToSummarize.length - 1].turn_number;
|
|
131
|
+
const now = deps.time.nowISO();
|
|
132
|
+
const summaryTurnId = generateId();
|
|
133
|
+
deps.conn.transaction(() => {
|
|
134
|
+
// Insert summary turn at the next turn number
|
|
135
|
+
const nextTurn = conv.total_turns + 1;
|
|
136
|
+
// FM-10: tenant_id inherited from parent conversation
|
|
137
|
+
deps.conn.run(`INSERT INTO core_conversation_turns (id, conversation_id, tenant_id, turn_number, role, content, token_count, model_used, is_summary, is_learning_source, participant_id, metadata_json, created_at)
|
|
138
|
+
VALUES (?, ?, ?, ?, 'system', ?, ?, NULL, 1, 0, NULL, ?, ?)`, [summaryTurnId, conversationId, conv.tenant_id, nextTurn, `[Summary of turns ${conv.summarized_up_to + 1}-${lastSummarizedTurn}]\n${summaryContent}`, summaryTokens, JSON.stringify({ summarizedTurns: turnsToSummarize.length, originalTokens: summarizedTokens }), now]);
|
|
139
|
+
// Update conversation metadata
|
|
140
|
+
deps.conn.run(`UPDATE core_conversations SET summarized_up_to = ?, total_turns = ?, total_tokens = total_tokens - ? + ?, updated_at = ? WHERE id = ?`, [lastSummarizedTurn, nextTurn, summarizedTokens, summaryTokens, now, conversationId]);
|
|
141
|
+
// F-05 fix: I-03 audit entry for auto-summarization
|
|
142
|
+
deps.audit.append(deps.conn, {
|
|
143
|
+
tenantId: conv.tenant_id,
|
|
144
|
+
actorType: 'system',
|
|
145
|
+
actorId: 'conversation_manager',
|
|
146
|
+
operation: 'auto_summarize',
|
|
147
|
+
resourceType: 'conversation',
|
|
148
|
+
resourceId: conversationId,
|
|
149
|
+
detail: { summarizedTurns: turnsToSummarize.length, originalTokens: summarizedTokens, summaryTokens, summarizedUpTo: lastSummarizedTurn },
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return { ok: true, value: true };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* S26.3: Fork a conversation at a turn (copy-on-branch).
|
|
156
|
+
* SD-26: Copies all turns up to atTurn into a new conversation
|
|
157
|
+
* linked via parent_conversation_id.
|
|
158
|
+
*/
|
|
159
|
+
function fork(deps, conversationId, atTurn, tenantId) {
|
|
160
|
+
// F-09 fix: Include tenant_id in query to prevent cross-tenant fork (T-4)
|
|
161
|
+
// If tenantId is provided, verify source conversation belongs to same tenant.
|
|
162
|
+
// If tenantId is null (single-tenant mode), skip tenant check.
|
|
163
|
+
let conv;
|
|
164
|
+
if (tenantId !== null) {
|
|
165
|
+
conv = deps.conn.get('SELECT session_id, agent_id, total_turns FROM core_conversations WHERE id = ? AND tenant_id = ?', [conversationId, tenantId]);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
conv = deps.conn.get('SELECT session_id, agent_id, total_turns FROM core_conversations WHERE id = ?', [conversationId]);
|
|
169
|
+
}
|
|
170
|
+
if (!conv) {
|
|
171
|
+
return { ok: false, error: { code: 'NOT_FOUND', message: `Conversation ${conversationId} not found`, spec: 'S26' } };
|
|
172
|
+
}
|
|
173
|
+
if (atTurn > conv.total_turns || atTurn < 0) {
|
|
174
|
+
return { ok: false, error: { code: 'NOT_FOUND', message: `Turn ${atTurn} out of range (max ${conv.total_turns})`, spec: 'S26' } };
|
|
175
|
+
}
|
|
176
|
+
const forkedId = generateId();
|
|
177
|
+
const now = deps.time.nowISO();
|
|
178
|
+
deps.conn.transaction(() => {
|
|
179
|
+
// Get turns to copy
|
|
180
|
+
const turns = deps.conn.query(`SELECT turn_number, role, content, token_count, model_used, is_summary, is_learning_source, participant_id, metadata_json
|
|
181
|
+
FROM core_conversation_turns WHERE conversation_id = ? AND turn_number <= ? ORDER BY turn_number ASC`, [conversationId, atTurn]);
|
|
182
|
+
const totalTokens = turns.reduce((sum, t) => sum + t['token_count'], 0);
|
|
183
|
+
// Create forked conversation
|
|
184
|
+
deps.conn.run(`INSERT INTO core_conversations (id, session_id, tenant_id, agent_id, parent_conversation_id, fork_at_turn, total_turns, total_tokens, summarized_up_to, created_at, updated_at)
|
|
185
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?)`, [forkedId, conv.session_id, tenantId, conv.agent_id, conversationId, atTurn, turns.length, totalTokens, now, now]);
|
|
186
|
+
// Copy turns
|
|
187
|
+
// FM-10: tenant_id inherited from parent conversation
|
|
188
|
+
for (const turn of turns) {
|
|
189
|
+
const turnId = generateId();
|
|
190
|
+
deps.conn.run(`INSERT INTO core_conversation_turns (id, conversation_id, tenant_id, turn_number, role, content, token_count, model_used, is_summary, is_learning_source, participant_id, metadata_json, created_at)
|
|
191
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
192
|
+
turnId,
|
|
193
|
+
forkedId,
|
|
194
|
+
tenantId,
|
|
195
|
+
turn['turn_number'],
|
|
196
|
+
turn['role'],
|
|
197
|
+
turn['content'],
|
|
198
|
+
turn['token_count'],
|
|
199
|
+
turn['model_used'],
|
|
200
|
+
turn['is_summary'],
|
|
201
|
+
turn['is_learning_source'],
|
|
202
|
+
turn['participant_id'],
|
|
203
|
+
turn['metadata_json'],
|
|
204
|
+
now,
|
|
205
|
+
]);
|
|
206
|
+
}
|
|
207
|
+
// F-05 fix: I-03 audit entry for conversation fork
|
|
208
|
+
deps.audit.append(deps.conn, {
|
|
209
|
+
tenantId,
|
|
210
|
+
actorType: 'system',
|
|
211
|
+
actorId: 'conversation_manager',
|
|
212
|
+
operation: 'fork_conversation',
|
|
213
|
+
resourceType: 'conversation',
|
|
214
|
+
resourceId: forkedId,
|
|
215
|
+
detail: { sourceConversationId: conversationId, atTurn, turnsCopied: turns.length },
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
return { ok: true, value: forkedId };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* S26: Get conversation turns for context assembly.
|
|
222
|
+
* CF-034b: Filters out turns that have been superseded by summarization.
|
|
223
|
+
* Only returns: summary turns + unsummarized turns (turn_number > summarized_up_to).
|
|
224
|
+
* This ensures that summarization actually reduces the context window.
|
|
225
|
+
*/
|
|
226
|
+
function getTurns(deps, conversationId) {
|
|
227
|
+
// Look up summarized_up_to to filter out superseded turns
|
|
228
|
+
const conv = deps.conn.get('SELECT summarized_up_to FROM core_conversations WHERE id = ?', [conversationId]);
|
|
229
|
+
const summarizedUpTo = conv?.summarized_up_to ?? 0;
|
|
230
|
+
// Return: summary turns (is_summary=1) + turns after the summarization boundary
|
|
231
|
+
// This excludes original turns that were replaced by summaries.
|
|
232
|
+
const rows = deps.conn.query(`SELECT id, conversation_id, turn_number, role, content, token_count, model_used, is_summary, is_learning_source, participant_id, created_at
|
|
233
|
+
FROM core_conversation_turns
|
|
234
|
+
WHERE conversation_id = ?
|
|
235
|
+
AND (is_summary = 1 OR turn_number > ? OR is_learning_source = 1)
|
|
236
|
+
ORDER BY turn_number ASC`, [conversationId, summarizedUpTo]);
|
|
237
|
+
const turns = rows.map(row => ({
|
|
238
|
+
id: row['id'],
|
|
239
|
+
conversationId: row['conversation_id'],
|
|
240
|
+
turnNumber: row['turn_number'],
|
|
241
|
+
role: row['role'],
|
|
242
|
+
content: row['content'],
|
|
243
|
+
tokenCount: row['token_count'],
|
|
244
|
+
modelUsed: (row['model_used'] ?? null),
|
|
245
|
+
isSummary: row['is_summary'] === 1,
|
|
246
|
+
isLearningSource: row['is_learning_source'] === 1,
|
|
247
|
+
participantId: (row['participant_id'] ?? null),
|
|
248
|
+
createdAt: row['created_at'],
|
|
249
|
+
}));
|
|
250
|
+
return { ok: true, value: turns };
|
|
251
|
+
}
|
|
252
|
+
return Object.freeze({
|
|
253
|
+
create,
|
|
254
|
+
appendTurn,
|
|
255
|
+
autoSummarize,
|
|
256
|
+
fork,
|
|
257
|
+
getTurns,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=conversation_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation_manager.js","sourceRoot":"","sources":["../../../src/orchestration/conversation/conversation_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Propagation -- Event routing through mission trees.
|
|
3
|
+
* S ref: S10 (Event), S20 (emit_event), FM-13 (unbounded autonomy),
|
|
4
|
+
* I-03 (atomic audit)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 3 (Orchestration)
|
|
7
|
+
* Implements: Event emission with namespace validation, propagation
|
|
8
|
+
* direction (up/down/local), lifecycle event restriction,
|
|
9
|
+
* rate limiting per agent (10/minute per S36).
|
|
10
|
+
*
|
|
11
|
+
* SD-09: Reserved namespaces (system.*, lifecycle.*) are rejected from agent emission.
|
|
12
|
+
* SD-16: Rate limiting is enforced per agent, not per mission.
|
|
13
|
+
*/
|
|
14
|
+
import type { EventPropagator } from '../interfaces/orchestration.js';
|
|
15
|
+
/**
|
|
16
|
+
* S10: Create the event propagation module.
|
|
17
|
+
* Factory function returns frozen object per C-07.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createEventPropagator(): EventPropagator;
|
|
20
|
+
//# sourceMappingURL=event_propagation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event_propagation.d.ts","sourceRoot":"","sources":["../../../src/orchestration/events/event_propagation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACS,eAAe,EAEnC,MAAM,gCAAgC,CAAC;AASxC;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAsLvD"}
|