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,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost scaling verification tracker.
|
|
3
|
+
* S ref: I-15 (Linear Cost Scaling), §4 (Performance Invariants)
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 5 (Performance & Events)
|
|
6
|
+
* Implements: Per-session overhead tracking and linear scaling verification.
|
|
7
|
+
*
|
|
8
|
+
* I-15: "Engine overhead per agent-session scales linearly, not quadratically."
|
|
9
|
+
*
|
|
10
|
+
* Overhead = total tokens consumed - raw LLM I/O tokens.
|
|
11
|
+
* This captures the pipeline skeleton cost (system prompts, context assembly)
|
|
12
|
+
* and injected technique cost.
|
|
13
|
+
*
|
|
14
|
+
* Linear scaling is verified via R-squared (R^2) of linear regression on
|
|
15
|
+
* overhead vs session index. R^2 > 0.95 = linear. If <= 2 sessions exist,
|
|
16
|
+
* isLinear defaults to true (insufficient data for statistical verification).
|
|
17
|
+
*
|
|
18
|
+
* Design decisions:
|
|
19
|
+
* - `recordSessionOverhead`: Queries `core_interactions` for session token
|
|
20
|
+
* totals, computes overhead from ResponseMetadata technique cost.
|
|
21
|
+
* - `evaluateCostScaling`: Queries all sessions for a mission, runs linear
|
|
22
|
+
* regression, returns R^2 and verdict.
|
|
23
|
+
* - No new tables required: reads from existing `core_interactions`.
|
|
24
|
+
*
|
|
25
|
+
* Invariants enforced: I-15
|
|
26
|
+
* Failure modes defended: FM-02 (cost explosion detection)
|
|
27
|
+
*/
|
|
28
|
+
import type { DatabaseConnection } from '../../kernel/interfaces/index.js';
|
|
29
|
+
import type { ResponseMetadata } from '../interfaces/api.js';
|
|
30
|
+
/**
|
|
31
|
+
* Per-session overhead snapshot.
|
|
32
|
+
*/
|
|
33
|
+
export interface SessionOverhead {
|
|
34
|
+
readonly sessionId: string;
|
|
35
|
+
readonly missionId: string;
|
|
36
|
+
readonly fixedOverhead: number;
|
|
37
|
+
readonly techniqueOverhead: number;
|
|
38
|
+
readonly totalOverhead: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Cost scaling evaluation report.
|
|
42
|
+
*/
|
|
43
|
+
export interface CostScalingReport {
|
|
44
|
+
readonly sessionCount: number;
|
|
45
|
+
readonly overheads: readonly SessionOverhead[];
|
|
46
|
+
readonly linearityR2: number;
|
|
47
|
+
readonly isLinear: boolean;
|
|
48
|
+
readonly averageOverhead: number;
|
|
49
|
+
readonly maxOverhead: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* I-15: Record per-session overhead from pipeline metadata.
|
|
53
|
+
*
|
|
54
|
+
* Computes overhead as the difference between total tokens consumed and the
|
|
55
|
+
* raw LLM I/O (which scales with user content, not engine complexity).
|
|
56
|
+
*
|
|
57
|
+
* The technique overhead comes from ResponseMetadata.techniqueTokenCost,
|
|
58
|
+
* which tracks the token cost of injected prompt fragments (I-54).
|
|
59
|
+
*
|
|
60
|
+
* Fixed overhead is the pipeline skeleton cost: context assembly, system
|
|
61
|
+
* prompts, safety gates, evaluation, and audit instrumentation. This is
|
|
62
|
+
* estimated as (total tokens - user content tokens - technique tokens).
|
|
63
|
+
*
|
|
64
|
+
* Since this data is derived at pipeline time and stored implicitly in
|
|
65
|
+
* core_interactions, we return the computed overhead for the caller to
|
|
66
|
+
* use (e.g., emit as a warning event or store in metrics).
|
|
67
|
+
*
|
|
68
|
+
* @param conn - Database connection for querying core_interactions
|
|
69
|
+
* @param sessionId - Session identifier
|
|
70
|
+
* @param missionId - Mission identifier (may be empty for sessionless chat)
|
|
71
|
+
* @param metadata - ResponseMetadata from the completed pipeline
|
|
72
|
+
* @returns SessionOverhead snapshot
|
|
73
|
+
*/
|
|
74
|
+
export declare function computeSessionOverhead(sessionId: string, missionId: string, metadata: ResponseMetadata): SessionOverhead;
|
|
75
|
+
/**
|
|
76
|
+
* I-15: Evaluate cost scaling linearity across sessions within a mission.
|
|
77
|
+
*
|
|
78
|
+
* Queries core_interactions for all sessions associated with a mission,
|
|
79
|
+
* computes per-session token totals, and runs linear regression on the
|
|
80
|
+
* overhead sequence to verify R^2 > 0.95 (linear scaling).
|
|
81
|
+
*
|
|
82
|
+
* If <= 2 sessions exist, isLinear defaults to true (insufficient data
|
|
83
|
+
* for meaningful statistical analysis).
|
|
84
|
+
*
|
|
85
|
+
* @param conn - Database connection
|
|
86
|
+
* @param missionId - Mission to evaluate
|
|
87
|
+
* @returns CostScalingReport with R^2, verdict, and per-session details
|
|
88
|
+
*/
|
|
89
|
+
export declare function evaluateCostScaling(conn: DatabaseConnection, missionId: string): CostScalingReport;
|
|
90
|
+
/**
|
|
91
|
+
* Compute R^2 (coefficient of determination) for a sequence of values
|
|
92
|
+
* against their index (0, 1, 2, ..., n-1).
|
|
93
|
+
*
|
|
94
|
+
* R^2 = 1 - (SS_res / SS_tot)
|
|
95
|
+
* where:
|
|
96
|
+
* SS_res = sum of (actual - predicted)^2
|
|
97
|
+
* SS_tot = sum of (actual - mean)^2
|
|
98
|
+
*
|
|
99
|
+
* predicted = a + b * i (least squares linear fit)
|
|
100
|
+
*
|
|
101
|
+
* @param values - Array of numeric values ordered by index
|
|
102
|
+
* @returns R^2 value between 0 and 1 (1 = perfectly linear)
|
|
103
|
+
*/
|
|
104
|
+
export declare function computeLinearR2(values: readonly number[]): number;
|
|
105
|
+
//# sourceMappingURL=cost_tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost_tracker.d.ts","sourceRoot":"","sources":["../../../src/api/enforcement/cost_tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,GACzB,eAAe,CA2BjB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAkFnB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAgDjE"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost scaling verification tracker.
|
|
3
|
+
* S ref: I-15 (Linear Cost Scaling), §4 (Performance Invariants)
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 5 (Performance & Events)
|
|
6
|
+
* Implements: Per-session overhead tracking and linear scaling verification.
|
|
7
|
+
*
|
|
8
|
+
* I-15: "Engine overhead per agent-session scales linearly, not quadratically."
|
|
9
|
+
*
|
|
10
|
+
* Overhead = total tokens consumed - raw LLM I/O tokens.
|
|
11
|
+
* This captures the pipeline skeleton cost (system prompts, context assembly)
|
|
12
|
+
* and injected technique cost.
|
|
13
|
+
*
|
|
14
|
+
* Linear scaling is verified via R-squared (R^2) of linear regression on
|
|
15
|
+
* overhead vs session index. R^2 > 0.95 = linear. If <= 2 sessions exist,
|
|
16
|
+
* isLinear defaults to true (insufficient data for statistical verification).
|
|
17
|
+
*
|
|
18
|
+
* Design decisions:
|
|
19
|
+
* - `recordSessionOverhead`: Queries `core_interactions` for session token
|
|
20
|
+
* totals, computes overhead from ResponseMetadata technique cost.
|
|
21
|
+
* - `evaluateCostScaling`: Queries all sessions for a mission, runs linear
|
|
22
|
+
* regression, returns R^2 and verdict.
|
|
23
|
+
* - No new tables required: reads from existing `core_interactions`.
|
|
24
|
+
*
|
|
25
|
+
* Invariants enforced: I-15
|
|
26
|
+
* Failure modes defended: FM-02 (cost explosion detection)
|
|
27
|
+
*/
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// Overhead Recording
|
|
30
|
+
// ============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* I-15: Record per-session overhead from pipeline metadata.
|
|
33
|
+
*
|
|
34
|
+
* Computes overhead as the difference between total tokens consumed and the
|
|
35
|
+
* raw LLM I/O (which scales with user content, not engine complexity).
|
|
36
|
+
*
|
|
37
|
+
* The technique overhead comes from ResponseMetadata.techniqueTokenCost,
|
|
38
|
+
* which tracks the token cost of injected prompt fragments (I-54).
|
|
39
|
+
*
|
|
40
|
+
* Fixed overhead is the pipeline skeleton cost: context assembly, system
|
|
41
|
+
* prompts, safety gates, evaluation, and audit instrumentation. This is
|
|
42
|
+
* estimated as (total tokens - user content tokens - technique tokens).
|
|
43
|
+
*
|
|
44
|
+
* Since this data is derived at pipeline time and stored implicitly in
|
|
45
|
+
* core_interactions, we return the computed overhead for the caller to
|
|
46
|
+
* use (e.g., emit as a warning event or store in metrics).
|
|
47
|
+
*
|
|
48
|
+
* @param conn - Database connection for querying core_interactions
|
|
49
|
+
* @param sessionId - Session identifier
|
|
50
|
+
* @param missionId - Mission identifier (may be empty for sessionless chat)
|
|
51
|
+
* @param metadata - ResponseMetadata from the completed pipeline
|
|
52
|
+
* @returns SessionOverhead snapshot
|
|
53
|
+
*/
|
|
54
|
+
export function computeSessionOverhead(sessionId, missionId, metadata) {
|
|
55
|
+
// Technique overhead comes from the pipeline's technique injection
|
|
56
|
+
const techniqueOverhead = metadata.techniqueTokenCost;
|
|
57
|
+
// Fixed overhead: pipeline skeleton cost beyond raw LLM I/O
|
|
58
|
+
// The total tokens includes everything; the raw I/O is input + output tokens
|
|
59
|
+
// that the user's content required. Fixed overhead is everything else.
|
|
60
|
+
// Since we cannot perfectly separate user-content tokens from system-prompt
|
|
61
|
+
// tokens at this level, we estimate fixed overhead as a constant per pipeline
|
|
62
|
+
// execution. The key invariant (I-15) is that this does NOT grow quadratically
|
|
63
|
+
// with session count.
|
|
64
|
+
//
|
|
65
|
+
// For now, fixed overhead = 0 (baseline). The actual pipeline skeleton tokens
|
|
66
|
+
// are accounted within input_tokens by the LLM provider. What matters for I-15
|
|
67
|
+
// is that technique overhead (which grows with technique count, not session
|
|
68
|
+
// count) is tracked and the total overhead per session stays bounded.
|
|
69
|
+
const fixedOverhead = 0;
|
|
70
|
+
const totalOverhead = fixedOverhead + techniqueOverhead;
|
|
71
|
+
return {
|
|
72
|
+
sessionId,
|
|
73
|
+
missionId,
|
|
74
|
+
fixedOverhead,
|
|
75
|
+
techniqueOverhead,
|
|
76
|
+
totalOverhead,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// Cost Scaling Evaluation
|
|
81
|
+
// ============================================================================
|
|
82
|
+
/**
|
|
83
|
+
* I-15: Evaluate cost scaling linearity across sessions within a mission.
|
|
84
|
+
*
|
|
85
|
+
* Queries core_interactions for all sessions associated with a mission,
|
|
86
|
+
* computes per-session token totals, and runs linear regression on the
|
|
87
|
+
* overhead sequence to verify R^2 > 0.95 (linear scaling).
|
|
88
|
+
*
|
|
89
|
+
* If <= 2 sessions exist, isLinear defaults to true (insufficient data
|
|
90
|
+
* for meaningful statistical analysis).
|
|
91
|
+
*
|
|
92
|
+
* @param conn - Database connection
|
|
93
|
+
* @param missionId - Mission to evaluate
|
|
94
|
+
* @returns CostScalingReport with R^2, verdict, and per-session details
|
|
95
|
+
*/
|
|
96
|
+
export function evaluateCostScaling(conn, missionId) {
|
|
97
|
+
// Query per-session token totals from core_interactions.
|
|
98
|
+
// Sessions are ordered by first interaction time (proxy for session index).
|
|
99
|
+
// Note: No core_sessions table exists yet. When it does (with mission_id FK),
|
|
100
|
+
// the missionId parameter can be used for scoped queries. Currently we query
|
|
101
|
+
// all sessions in core_interactions. The missionId filter is a forward
|
|
102
|
+
// obligation for when session-mission linking is implemented.
|
|
103
|
+
const effectiveSessions = conn.query(`SELECT
|
|
104
|
+
session_id,
|
|
105
|
+
SUM(input_tokens) as total_input,
|
|
106
|
+
SUM(output_tokens) as total_output,
|
|
107
|
+
COUNT(*) as interaction_count
|
|
108
|
+
FROM core_interactions
|
|
109
|
+
WHERE session_id IS NOT NULL
|
|
110
|
+
GROUP BY session_id
|
|
111
|
+
ORDER BY MIN(created_at) ASC`);
|
|
112
|
+
if (effectiveSessions.length === 0) {
|
|
113
|
+
return {
|
|
114
|
+
sessionCount: 0,
|
|
115
|
+
overheads: [],
|
|
116
|
+
linearityR2: 1.0,
|
|
117
|
+
isLinear: true,
|
|
118
|
+
averageOverhead: 0,
|
|
119
|
+
maxOverhead: 0,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Compute per-session overhead
|
|
123
|
+
// For I-15 verification: overhead = total tokens per session.
|
|
124
|
+
// The invariant states overhead scales linearly with session count,
|
|
125
|
+
// meaning each new session adds a roughly constant cost, not a
|
|
126
|
+
// cost proportional to the number of existing sessions.
|
|
127
|
+
const overheads = effectiveSessions.map((s) => {
|
|
128
|
+
const totalTokens = s.total_input + s.total_output;
|
|
129
|
+
return {
|
|
130
|
+
sessionId: s.session_id,
|
|
131
|
+
missionId,
|
|
132
|
+
fixedOverhead: totalTokens,
|
|
133
|
+
techniqueOverhead: 0, // Computed at pipeline time, not queryable after the fact
|
|
134
|
+
totalOverhead: totalTokens,
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
// If <= 2 sessions, insufficient data for regression
|
|
138
|
+
if (overheads.length <= 2) {
|
|
139
|
+
const avg = overheads.reduce((sum, o) => sum + o.totalOverhead, 0) / overheads.length;
|
|
140
|
+
const maxOh = Math.max(...overheads.map(o => o.totalOverhead));
|
|
141
|
+
return {
|
|
142
|
+
sessionCount: overheads.length,
|
|
143
|
+
overheads,
|
|
144
|
+
linearityR2: 1.0,
|
|
145
|
+
isLinear: true,
|
|
146
|
+
averageOverhead: avg,
|
|
147
|
+
maxOverhead: maxOh,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Linear regression: fit overhead[i] = a + b * i
|
|
151
|
+
// R^2 = 1 - (SS_res / SS_tot)
|
|
152
|
+
const n = overheads.length;
|
|
153
|
+
const values = overheads.map(o => o.totalOverhead);
|
|
154
|
+
const r2 = computeLinearR2(values);
|
|
155
|
+
const avg = values.reduce((sum, v) => sum + v, 0) / n;
|
|
156
|
+
const maxOh = Math.max(...values);
|
|
157
|
+
return {
|
|
158
|
+
sessionCount: n,
|
|
159
|
+
overheads,
|
|
160
|
+
linearityR2: r2,
|
|
161
|
+
isLinear: r2 > 0.95,
|
|
162
|
+
averageOverhead: avg,
|
|
163
|
+
maxOverhead: maxOh,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
// ============================================================================
|
|
167
|
+
// Linear Regression Helper
|
|
168
|
+
// ============================================================================
|
|
169
|
+
/**
|
|
170
|
+
* Compute R^2 (coefficient of determination) for a sequence of values
|
|
171
|
+
* against their index (0, 1, 2, ..., n-1).
|
|
172
|
+
*
|
|
173
|
+
* R^2 = 1 - (SS_res / SS_tot)
|
|
174
|
+
* where:
|
|
175
|
+
* SS_res = sum of (actual - predicted)^2
|
|
176
|
+
* SS_tot = sum of (actual - mean)^2
|
|
177
|
+
*
|
|
178
|
+
* predicted = a + b * i (least squares linear fit)
|
|
179
|
+
*
|
|
180
|
+
* @param values - Array of numeric values ordered by index
|
|
181
|
+
* @returns R^2 value between 0 and 1 (1 = perfectly linear)
|
|
182
|
+
*/
|
|
183
|
+
export function computeLinearR2(values) {
|
|
184
|
+
const n = values.length;
|
|
185
|
+
if (n <= 1)
|
|
186
|
+
return 1.0;
|
|
187
|
+
// Compute means
|
|
188
|
+
let sumX = 0;
|
|
189
|
+
let sumY = 0;
|
|
190
|
+
for (let i = 0; i < n; i++) {
|
|
191
|
+
sumX += i;
|
|
192
|
+
sumY += (values[i] ?? 0);
|
|
193
|
+
}
|
|
194
|
+
const meanX = sumX / n;
|
|
195
|
+
const meanY = sumY / n;
|
|
196
|
+
// Compute slope (b) and intercept (a) via least squares
|
|
197
|
+
let numerator = 0;
|
|
198
|
+
let denominator = 0;
|
|
199
|
+
for (let i = 0; i < n; i++) {
|
|
200
|
+
const dx = i - meanX;
|
|
201
|
+
numerator += dx * ((values[i] ?? 0) - meanY);
|
|
202
|
+
denominator += dx * dx;
|
|
203
|
+
}
|
|
204
|
+
// If all x values are identical (impossible for index sequence but handle gracefully)
|
|
205
|
+
if (denominator === 0)
|
|
206
|
+
return 1.0;
|
|
207
|
+
const b = numerator / denominator;
|
|
208
|
+
const a = meanY - b * meanX;
|
|
209
|
+
// Compute SS_res and SS_tot
|
|
210
|
+
let ssRes = 0;
|
|
211
|
+
let ssTot = 0;
|
|
212
|
+
for (let i = 0; i < n; i++) {
|
|
213
|
+
const val = values[i] ?? 0;
|
|
214
|
+
const predicted = a + b * i;
|
|
215
|
+
const residual = val - predicted;
|
|
216
|
+
ssRes += residual * residual;
|
|
217
|
+
const deviation = val - meanY;
|
|
218
|
+
ssTot += deviation * deviation;
|
|
219
|
+
}
|
|
220
|
+
// If SS_tot is 0 (all values identical), perfect linear fit
|
|
221
|
+
if (ssTot === 0)
|
|
222
|
+
return 1.0;
|
|
223
|
+
const r2 = 1 - (ssRes / ssTot);
|
|
224
|
+
// Clamp to [0, 1] to handle floating point imprecision
|
|
225
|
+
return Math.max(0, Math.min(1, r2));
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=cost_tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost_tracker.js","sourceRoot":"","sources":["../../../src/api/enforcement/cost_tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Latency budget enforcement harness.
|
|
3
|
+
* S ref: I-14 (Predictable Latency), §4 (Performance Invariants)
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 5 (Performance & Events)
|
|
6
|
+
* Implements: Per-phase latency budget verification for the 9-phase chat pipeline.
|
|
7
|
+
*
|
|
8
|
+
* I-14: "Memory retrieval: < 50ms for up to 100K memories. Perception: < 5ms.
|
|
9
|
+
* Mutation-audit: < 1ms (same SQLite transaction). Hot-path total
|
|
10
|
+
* (excl. LLM): <= 103ms."
|
|
11
|
+
*
|
|
12
|
+
* This module is a VERIFICATION function, not middleware. It takes phase timings
|
|
13
|
+
* from ResponseMetadata.phases (produced by the pipeline) and returns a report
|
|
14
|
+
* indicating whether budgets were met or violated.
|
|
15
|
+
*
|
|
16
|
+
* Design decisions:
|
|
17
|
+
* - Pure function: no side effects, no database access, no state mutation.
|
|
18
|
+
* - Does NOT throw on violation: returns violations in report (degraded mode).
|
|
19
|
+
* - WARNING when phase exceeds budget by < 2x; CRITICAL when >= 2x.
|
|
20
|
+
* - 'generation' phase excluded from hot-path total (LLM latency is external).
|
|
21
|
+
*
|
|
22
|
+
* Invariants enforced: I-14
|
|
23
|
+
* Failure modes defended: FM-11 (observability overhead < 2%)
|
|
24
|
+
*/
|
|
25
|
+
import type { PipelinePhase } from '../interfaces/api.js';
|
|
26
|
+
/**
|
|
27
|
+
* I-14: Per-phase latency budgets in milliseconds.
|
|
28
|
+
* Defaults derived from spec:
|
|
29
|
+
* - perception: 5ms
|
|
30
|
+
* - retrieval: 50ms (100K memories)
|
|
31
|
+
* - contextAssembly: 15ms
|
|
32
|
+
* - preSafety: 5ms
|
|
33
|
+
* - postSafety: 5ms
|
|
34
|
+
* - learning: 10ms
|
|
35
|
+
* - evaluation: 5ms
|
|
36
|
+
* - audit: 1ms (mutation-audit, same SQLite transaction)
|
|
37
|
+
* - hotPathTotal: 103ms (sum excl. generation)
|
|
38
|
+
*/
|
|
39
|
+
export interface LatencyBudget {
|
|
40
|
+
readonly perception: number;
|
|
41
|
+
readonly retrieval: number;
|
|
42
|
+
readonly contextAssembly: number;
|
|
43
|
+
readonly preSafety: number;
|
|
44
|
+
readonly postSafety: number;
|
|
45
|
+
readonly learning: number;
|
|
46
|
+
readonly evaluation: number;
|
|
47
|
+
readonly audit: number;
|
|
48
|
+
readonly hotPathTotal: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A single latency budget violation detected during evaluation.
|
|
52
|
+
*/
|
|
53
|
+
export interface LatencyViolation {
|
|
54
|
+
readonly phase: PipelinePhase;
|
|
55
|
+
readonly budgetMs: number;
|
|
56
|
+
readonly actualMs: number;
|
|
57
|
+
readonly severity: 'warning' | 'critical';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Latency evaluation report produced by evaluateLatency().
|
|
61
|
+
*/
|
|
62
|
+
export interface LatencyReport {
|
|
63
|
+
readonly violations: readonly LatencyViolation[];
|
|
64
|
+
readonly hotPathMs: number;
|
|
65
|
+
readonly hotPathBudgetMs: number;
|
|
66
|
+
readonly withinBudget: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* I-14: Default latency budgets derived from the spec.
|
|
70
|
+
* All values in milliseconds.
|
|
71
|
+
*/
|
|
72
|
+
export declare const DEFAULT_LATENCY_BUDGET: LatencyBudget;
|
|
73
|
+
/**
|
|
74
|
+
* I-14: Evaluate phase timings against latency budgets.
|
|
75
|
+
*
|
|
76
|
+
* Pure function. Takes phase timings from ResponseMetadata.phases and returns
|
|
77
|
+
* a LatencyReport with any violations found.
|
|
78
|
+
*
|
|
79
|
+
* Severity classification:
|
|
80
|
+
* - WARNING: phase exceeds budget but by less than 2x
|
|
81
|
+
* - CRITICAL: phase exceeds budget by 2x or more
|
|
82
|
+
*
|
|
83
|
+
* The 'generation' phase is excluded from hot-path total calculation because
|
|
84
|
+
* LLM inference latency is external and unbounded by design.
|
|
85
|
+
*
|
|
86
|
+
* @param phases - Array of { phase, durationMs } from ResponseMetadata
|
|
87
|
+
* @param budget - Optional partial budget overrides (merged with defaults)
|
|
88
|
+
* @returns LatencyReport with violations, hot-path total, and overall verdict
|
|
89
|
+
*/
|
|
90
|
+
export declare function evaluateLatency(phases: ReadonlyArray<{
|
|
91
|
+
readonly phase: PipelinePhase;
|
|
92
|
+
readonly durationMs: number;
|
|
93
|
+
}>, budget?: Partial<LatencyBudget>): LatencyReport;
|
|
94
|
+
//# sourceMappingURL=latency_harness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latency_harness.d.ts","sourceRoot":"","sources":["../../../src/api/enforcement/latency_harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAMD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAUnC,CAAC;AAyBH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,EACrF,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC9B,aAAa,CA6Cf"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Latency budget enforcement harness.
|
|
3
|
+
* S ref: I-14 (Predictable Latency), §4 (Performance Invariants)
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 5 (Performance & Events)
|
|
6
|
+
* Implements: Per-phase latency budget verification for the 9-phase chat pipeline.
|
|
7
|
+
*
|
|
8
|
+
* I-14: "Memory retrieval: < 50ms for up to 100K memories. Perception: < 5ms.
|
|
9
|
+
* Mutation-audit: < 1ms (same SQLite transaction). Hot-path total
|
|
10
|
+
* (excl. LLM): <= 103ms."
|
|
11
|
+
*
|
|
12
|
+
* This module is a VERIFICATION function, not middleware. It takes phase timings
|
|
13
|
+
* from ResponseMetadata.phases (produced by the pipeline) and returns a report
|
|
14
|
+
* indicating whether budgets were met or violated.
|
|
15
|
+
*
|
|
16
|
+
* Design decisions:
|
|
17
|
+
* - Pure function: no side effects, no database access, no state mutation.
|
|
18
|
+
* - Does NOT throw on violation: returns violations in report (degraded mode).
|
|
19
|
+
* - WARNING when phase exceeds budget by < 2x; CRITICAL when >= 2x.
|
|
20
|
+
* - 'generation' phase excluded from hot-path total (LLM latency is external).
|
|
21
|
+
*
|
|
22
|
+
* Invariants enforced: I-14
|
|
23
|
+
* Failure modes defended: FM-11 (observability overhead < 2%)
|
|
24
|
+
*/
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// Constants
|
|
27
|
+
// ============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* I-14: Default latency budgets derived from the spec.
|
|
30
|
+
* All values in milliseconds.
|
|
31
|
+
*/
|
|
32
|
+
export const DEFAULT_LATENCY_BUDGET = Object.freeze({
|
|
33
|
+
perception: 5,
|
|
34
|
+
retrieval: 50,
|
|
35
|
+
contextAssembly: 15,
|
|
36
|
+
preSafety: 5,
|
|
37
|
+
postSafety: 5,
|
|
38
|
+
learning: 10,
|
|
39
|
+
evaluation: 5,
|
|
40
|
+
audit: 1,
|
|
41
|
+
hotPathTotal: 103,
|
|
42
|
+
});
|
|
43
|
+
// ============================================================================
|
|
44
|
+
// Phase-to-Budget Mapping
|
|
45
|
+
// ============================================================================
|
|
46
|
+
/**
|
|
47
|
+
* Maps PipelinePhase names to LatencyBudget keys.
|
|
48
|
+
* 'generation' has no budget entry because it is excluded from hot-path totals.
|
|
49
|
+
*/
|
|
50
|
+
const PHASE_BUDGET_MAP = new Map([
|
|
51
|
+
['perception', 'perception'],
|
|
52
|
+
['retrieval', 'retrieval'],
|
|
53
|
+
['context_assembly', 'contextAssembly'],
|
|
54
|
+
['pre_safety', 'preSafety'],
|
|
55
|
+
['post_safety', 'postSafety'],
|
|
56
|
+
['learning', 'learning'],
|
|
57
|
+
['evaluation', 'evaluation'],
|
|
58
|
+
['audit', 'audit'],
|
|
59
|
+
]);
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Evaluation Function
|
|
62
|
+
// ============================================================================
|
|
63
|
+
/**
|
|
64
|
+
* I-14: Evaluate phase timings against latency budgets.
|
|
65
|
+
*
|
|
66
|
+
* Pure function. Takes phase timings from ResponseMetadata.phases and returns
|
|
67
|
+
* a LatencyReport with any violations found.
|
|
68
|
+
*
|
|
69
|
+
* Severity classification:
|
|
70
|
+
* - WARNING: phase exceeds budget but by less than 2x
|
|
71
|
+
* - CRITICAL: phase exceeds budget by 2x or more
|
|
72
|
+
*
|
|
73
|
+
* The 'generation' phase is excluded from hot-path total calculation because
|
|
74
|
+
* LLM inference latency is external and unbounded by design.
|
|
75
|
+
*
|
|
76
|
+
* @param phases - Array of { phase, durationMs } from ResponseMetadata
|
|
77
|
+
* @param budget - Optional partial budget overrides (merged with defaults)
|
|
78
|
+
* @returns LatencyReport with violations, hot-path total, and overall verdict
|
|
79
|
+
*/
|
|
80
|
+
export function evaluateLatency(phases, budget) {
|
|
81
|
+
// Merge custom budget overrides with defaults
|
|
82
|
+
const effectiveBudget = {
|
|
83
|
+
...DEFAULT_LATENCY_BUDGET,
|
|
84
|
+
...budget,
|
|
85
|
+
};
|
|
86
|
+
const violations = [];
|
|
87
|
+
let hotPathMs = 0;
|
|
88
|
+
for (const entry of phases) {
|
|
89
|
+
// Exclude 'generation' from hot-path total
|
|
90
|
+
if (entry.phase !== 'generation') {
|
|
91
|
+
hotPathMs += entry.durationMs;
|
|
92
|
+
}
|
|
93
|
+
// Check per-phase budget
|
|
94
|
+
const budgetKey = PHASE_BUDGET_MAP.get(entry.phase);
|
|
95
|
+
if (budgetKey !== undefined) {
|
|
96
|
+
const phaseBudget = effectiveBudget[budgetKey];
|
|
97
|
+
if (entry.durationMs > phaseBudget) {
|
|
98
|
+
// Severity: CRITICAL if >= 2x budget, WARNING if < 2x
|
|
99
|
+
const severity = entry.durationMs >= phaseBudget * 2
|
|
100
|
+
? 'critical'
|
|
101
|
+
: 'warning';
|
|
102
|
+
violations.push({
|
|
103
|
+
phase: entry.phase,
|
|
104
|
+
budgetMs: phaseBudget,
|
|
105
|
+
actualMs: entry.durationMs,
|
|
106
|
+
severity,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Check hot-path total budget
|
|
112
|
+
const withinHotPath = hotPathMs <= effectiveBudget.hotPathTotal;
|
|
113
|
+
return {
|
|
114
|
+
violations,
|
|
115
|
+
hotPathMs,
|
|
116
|
+
hotPathBudgetMs: effectiveBudget.hotPathTotal,
|
|
117
|
+
withinBudget: violations.length === 0 && withinHotPath,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=latency_harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latency_harness.js","sourceRoot":"","sources":["../../../src/api/enforcement/latency_harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAqDH,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB,MAAM,CAAC,MAAM,CAAC;IACjE,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,GAAG;CAClB,CAAC,CAAC;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,gBAAgB,GAA0E,IAAI,GAAG,CAAC;IACtG,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IACvC,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,YAAY,EAAE,YAAY,CAAC;IAC5B,CAAC,OAAO,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAqF,EACrF,MAA+B;IAE/B,8CAA8C;IAC9C,MAAM,eAAe,GAAkB;QACrC,GAAG,sBAAsB;QACzB,GAAG,MAAM;KACV,CAAC;IAEF,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,2CAA2C;QAC3C,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACjC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC;QAChC,CAAC;QAED,yBAAyB;QACzB,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW,EAAE,CAAC;gBACnC,sDAAsD;gBACtD,MAAM,QAAQ,GAA2B,KAAK,CAAC,UAAU,IAAI,WAAW,GAAG,CAAC;oBAC1E,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS,CAAC;gBAEd,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,KAAK,CAAC,UAAU;oBAC1B,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,aAAa,GAAG,SAAS,IAAI,eAAe,CAAC,YAAY,CAAC;IAEhE,OAAO;QACL,UAAU;QACV,SAAS;QACT,eAAe,EAAE,eAAe,CAAC,YAAY;QAC7C,YAAY,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate limit enforcement guard for the API surface.
|
|
3
|
+
* S ref: §36 (rate limiting), SD-14 (RBAC -> Rate Limit -> Execute ordering),
|
|
4
|
+
* FM-02 (cost explosion defense)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 4 (API Surface)
|
|
7
|
+
* Implements: SDD §7 build order item 4
|
|
8
|
+
*
|
|
9
|
+
* After RBAC passes (FPD-5), rate limiting checks the token-bucket
|
|
10
|
+
* before allowing the operation to proceed. The kernel's RateLimiter
|
|
11
|
+
* handles the token-bucket state in SQLite.
|
|
12
|
+
*
|
|
13
|
+
* Three bucket types per §36:
|
|
14
|
+
* - api_calls: General API call rate (default 100/min)
|
|
15
|
+
* - emit_event: Event emission rate (default 10/min)
|
|
16
|
+
* - propose_rejections: Rejection tracking
|
|
17
|
+
*
|
|
18
|
+
* Invariants enforced: I-13 (enforcement ordering via SD-14)
|
|
19
|
+
* Failure modes defended: FM-02 (cost explosion via call frequency capping)
|
|
20
|
+
*/
|
|
21
|
+
import type { OperationContext, RateLimiter, BucketType, DatabaseConnection } from '../../kernel/interfaces/index.js';
|
|
22
|
+
/**
|
|
23
|
+
* §36, SD-14: Require rate limit allowance for the current operation.
|
|
24
|
+
*
|
|
25
|
+
* This function MUST be called AFTER RBAC check (FPD-5) and BEFORE
|
|
26
|
+
* delegation to orchestration.
|
|
27
|
+
*
|
|
28
|
+
* The kernel's RateLimiter.checkAndConsume() atomically checks and
|
|
29
|
+
* consumes a token from the specified bucket. If no tokens remain,
|
|
30
|
+
* this function throws RATE_LIMITED with cooldownMs indicating when
|
|
31
|
+
* the bucket will refill.
|
|
32
|
+
*
|
|
33
|
+
* @param rateLimiter - The kernel's RateLimiter instance
|
|
34
|
+
* @param conn - Database connection for atomic token-bucket operations
|
|
35
|
+
* @param ctx - The operation context (scopes the bucket to tenant/agent)
|
|
36
|
+
* @param bucketType - Which rate limit bucket to check
|
|
37
|
+
* @throws LimenError with code RATE_LIMITED if bucket is exhausted
|
|
38
|
+
*/
|
|
39
|
+
export declare function requireRateLimit(rateLimiter: RateLimiter, conn: DatabaseConnection, ctx: OperationContext, bucketType: BucketType): void;
|
|
40
|
+
/**
|
|
41
|
+
* §36: Check concurrent stream count against per-tenant limit.
|
|
42
|
+
*
|
|
43
|
+
* S36 specifies a default of 50 concurrent streams per tenant.
|
|
44
|
+
* This is separate from the token-bucket rate limiter -- it tracks
|
|
45
|
+
* active stream count in memory (not in SQLite).
|
|
46
|
+
*
|
|
47
|
+
* @param activeStreamCount - Current number of active streams for this tenant
|
|
48
|
+
* @param maxConcurrentStreams - Configured maximum (default 50 per S36)
|
|
49
|
+
* @throws LimenError with code RATE_LIMITED if stream limit reached
|
|
50
|
+
*/
|
|
51
|
+
export declare function requireStreamCapacity(activeStreamCount: number, maxConcurrentStreams: number): void;
|
|
52
|
+
//# sourceMappingURL=rate_guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate_guard.d.ts","sourceRoot":"","sources":["../../../src/api/enforcement/rate_guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAC9D,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,UAAU,GACrB,IAAI,CA8BN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,iBAAiB,EAAE,MAAM,EACzB,oBAAoB,EAAE,MAAM,GAC3B,IAAI,CAQN"}
|