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,1042 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EGP (Execution Governance Protocol) interface types.
|
|
3
|
+
* Spec ref: EGP v1.0 Design Source (FINAL), Architecture Freeze CF-06/CF-11
|
|
4
|
+
*
|
|
5
|
+
* Phase: v3.3.0 — Execution Governance Truth Model
|
|
6
|
+
* Status: FROZEN — interfaces defined before implementation.
|
|
7
|
+
*
|
|
8
|
+
* Implements: All TypeScript types for the Execution Governance subsystem:
|
|
9
|
+
* §3 (13 Constitutional Invariants), §4 (8 Pre-Schema Decisions),
|
|
10
|
+
* §5 (Reservation Model), §6 (Branch Failure Policies),
|
|
11
|
+
* §7 (Capability Mutability & Retry), §8 (Scheduling Fairness),
|
|
12
|
+
* §9 (Scheduling Determinism & Replay), §11 (Failure Modes)
|
|
13
|
+
*
|
|
14
|
+
* Key architectural properties:
|
|
15
|
+
* - Dual-dimension reservation: token (prompt/completion) + deliberation (CF-06, DBA-I1)
|
|
16
|
+
* - Four reservation statuses: reserved, active, retained, released (§5.1)
|
|
17
|
+
* - Conservation law with missionDebt (EGP-I13)
|
|
18
|
+
* - Scheduler algorithm is implementation freedom; only starvation bound is frozen (CF-11)
|
|
19
|
+
* - Mission-level branch failure policy only (PSD-4)
|
|
20
|
+
* - Capability mutability classification determines retry safety (EGP-I7)
|
|
21
|
+
*
|
|
22
|
+
* SUPERSESSION: This file replaces the dead v1.2-based egp_types.ts.
|
|
23
|
+
* Everything here derives from EGP v1.0 Design Source ONLY.
|
|
24
|
+
*/
|
|
25
|
+
import type { TaskId, MissionId, OperationContext, Result, CorrelationId } from '../../kernel/interfaces/index.js';
|
|
26
|
+
import type { DatabaseConnection } from '../../kernel/interfaces/database.js';
|
|
27
|
+
/**
|
|
28
|
+
* EGP-specific operation context extending OperationContext with Phase 0A fields.
|
|
29
|
+
* Used by Phase 0A-dependent interfaces (admission gate, trace emission, etc.).
|
|
30
|
+
* The correlationId links EGP events to originating syscall trace chains (BC-006).
|
|
31
|
+
*
|
|
32
|
+
* Truth-model ref: DC-EGP-050 (CorrelationId propagation through EGP operations).
|
|
33
|
+
*/
|
|
34
|
+
export interface EGPOperationContext extends OperationContext {
|
|
35
|
+
/** BC-006: CorrelationId for trace event chain linkage (Phase 0A) */
|
|
36
|
+
readonly correlationId?: CorrelationId;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* §5.1: Reservation identifier — unique per reservation record.
|
|
40
|
+
* A task has at most one non-released reservation at any time.
|
|
41
|
+
* Primary lookup is by taskId; ReservationId provides record identity.
|
|
42
|
+
*/
|
|
43
|
+
export type ReservationId = string & {
|
|
44
|
+
readonly __brand: 'ReservationId';
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* §9.1: Wave identifier — unique per scheduling wave.
|
|
48
|
+
* Used for replay determinism (EGP-I9) and replay record linking.
|
|
49
|
+
*/
|
|
50
|
+
export type WaveId = string & {
|
|
51
|
+
readonly __brand: 'WaveId';
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* §5.1: Reservation lifecycle status.
|
|
55
|
+
* Four statuses — the 'retained' status is the architectural centerpiece:
|
|
56
|
+
* reserved → Budget allocated. Task SCHEDULED but not yet RUNNING.
|
|
57
|
+
* active → Task RUNNING. Consumption tracked per dimension.
|
|
58
|
+
* retained → Task FAILED but retries remain. Reservation persists
|
|
59
|
+
* with cumulative consumption. Returns to 'active' when retry begins.
|
|
60
|
+
* released → Final terminal. Unused budget reclaimed per dimension.
|
|
61
|
+
*
|
|
62
|
+
* NOTE: The design source §5.1 schema union shows 3 values ('reserved' | 'active' | 'released')
|
|
63
|
+
* but the description text immediately below lists 4 statuses including 'retained'.
|
|
64
|
+
* This is an editorial inconsistency — the 4th status is confirmed by the design source's
|
|
65
|
+
* description, the prompt's lineage table, and the invariant set (EGP-I3, EGP-I8).
|
|
66
|
+
* Resolution: Include 'retained'. [AMB-01]
|
|
67
|
+
*/
|
|
68
|
+
export type ReservationStatus = 'reserved' | 'active' | 'retained' | 'released';
|
|
69
|
+
/**
|
|
70
|
+
* §5.1: Valid reservation status transitions.
|
|
71
|
+
* Reservation status is subordinate to task state — transitions are consequences
|
|
72
|
+
* of task state transitions, not independent decisions.
|
|
73
|
+
*
|
|
74
|
+
* reserved → active (task SCHEDULED → RUNNING)
|
|
75
|
+
* reserved → released (task cancelled while SCHEDULED, before ever running)
|
|
76
|
+
* active → retained (task RUNNING → FAILED, retries remain)
|
|
77
|
+
* active → released (task → COMPLETED, CANCELLED, or FAILED with no retries)
|
|
78
|
+
* retained → active (retry execution begins: task RUNNING again)
|
|
79
|
+
* retained → released (retries exhausted or cancelled while in retry-pending)
|
|
80
|
+
* released → (none) (terminal — no transitions out)
|
|
81
|
+
*/
|
|
82
|
+
export declare const RESERVATION_STATUS_TRANSITIONS: Record<ReservationStatus, readonly ReservationStatus[]>;
|
|
83
|
+
/**
|
|
84
|
+
* PSD-1: Budget allocation method.
|
|
85
|
+
* Selected at propose_task_graph time or defaulted by the orchestrator.
|
|
86
|
+
* All methods must produce minimum viable reservation per dimension or exclude the task.
|
|
87
|
+
*/
|
|
88
|
+
export type AllocationMethod = 'proportional' | 'equal' | 'explicit';
|
|
89
|
+
/**
|
|
90
|
+
* EGP-I6, §6.1: Branch failure policy.
|
|
91
|
+
* Mission-level only in v1 (PSD-4). All fan-outs use the same policy.
|
|
92
|
+
* A single mission cannot mix policies across different fan-outs.
|
|
93
|
+
*/
|
|
94
|
+
export type BranchFailurePolicy = 'isolate' | 'fail-fast' | 'quorum';
|
|
95
|
+
/**
|
|
96
|
+
* EGP-I7, §7.1: Capability mutability classification.
|
|
97
|
+
* Determines retry safety. Unclassified operations default to mutating-external.
|
|
98
|
+
* Classification attaches to the specific operation, not the adapter family.
|
|
99
|
+
*/
|
|
100
|
+
export type MutabilityClass = 'read-only' | 'side-effecting' | 'mutating' | 'mutating-external';
|
|
101
|
+
/**
|
|
102
|
+
* EGP-I4, CF-06: Budget dimension identifier.
|
|
103
|
+
* Every reservation has TWO independent ceilings enforced separately.
|
|
104
|
+
* PSD-7: 'token' means prompt/completion only. Deliberation is separate.
|
|
105
|
+
*/
|
|
106
|
+
export type BudgetDimension = 'token' | 'deliberation';
|
|
107
|
+
/**
|
|
108
|
+
* Task execution states relevant to EGP dependency resolution and scheduling.
|
|
109
|
+
* Defined here to avoid layer dependency on orchestration types. [AMB-11]
|
|
110
|
+
* These values mirror TaskState from orchestration but are independently defined.
|
|
111
|
+
*/
|
|
112
|
+
export type EGPRelevantTaskState = 'PENDING' | 'SCHEDULED' | 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'BLOCKED';
|
|
113
|
+
/**
|
|
114
|
+
* §5.0: Per-dimension budget state within a mission.
|
|
115
|
+
* Both token and deliberation dimensions follow this structure independently.
|
|
116
|
+
* The conservation law (EGP-I13) holds per dimension.
|
|
117
|
+
*/
|
|
118
|
+
export interface DimensionBudgetState {
|
|
119
|
+
/** Total budget allocated to this mission in this dimension */
|
|
120
|
+
readonly allocated: number;
|
|
121
|
+
/** Sum of consumed across all tasks (including released reservations) */
|
|
122
|
+
readonly totalConsumed: number;
|
|
123
|
+
/** Sum of reservation ceilings for active (non-released) reservations */
|
|
124
|
+
readonly totalReserved: number;
|
|
125
|
+
/**
|
|
126
|
+
* = max(0, allocated - totalConsumed - totalReserved)
|
|
127
|
+
* Clamped to zero; deficit becomes missionDebt.
|
|
128
|
+
*/
|
|
129
|
+
readonly unreservedRemaining: number;
|
|
130
|
+
/**
|
|
131
|
+
* Cumulative consumption beyond allocated budget. ≥ 0.
|
|
132
|
+
* When overage exceeds unreserved pool, pool clamps to 0 and excess becomes debt.
|
|
133
|
+
* Triggers over-budget fault state.
|
|
134
|
+
*/
|
|
135
|
+
readonly missionDebt: number;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* §5.1: Task budget reservation — the core EGP domain object.
|
|
139
|
+
* Each reservation has two independent ceilings (EGP-I4).
|
|
140
|
+
* Reservation status is subordinate to task state (§5.1).
|
|
141
|
+
*
|
|
142
|
+
* A task has at most one non-released reservation at any time.
|
|
143
|
+
* The reservation persists across retry attempts (EGP-I8) via 'retained' status.
|
|
144
|
+
*/
|
|
145
|
+
export interface TaskBudgetReservation {
|
|
146
|
+
/** Record identity */
|
|
147
|
+
readonly reservationId: ReservationId;
|
|
148
|
+
/** Task this reservation belongs to — primary lookup key */
|
|
149
|
+
readonly taskId: TaskId;
|
|
150
|
+
/** Mission this task belongs to */
|
|
151
|
+
readonly missionId: MissionId;
|
|
152
|
+
/** §5.1: Reserved token ceiling */
|
|
153
|
+
readonly reservedTokens: number;
|
|
154
|
+
/** §5.1: Consumed tokens — cumulative across retry attempts (EGP-I8) */
|
|
155
|
+
readonly consumedTokens: number;
|
|
156
|
+
/** §5.1: Reserved deliberation ceiling */
|
|
157
|
+
readonly reservedDeliberation: number;
|
|
158
|
+
/** §5.1: Consumed deliberation — cumulative across retry attempts (EGP-I8) */
|
|
159
|
+
readonly consumedDeliberation: number;
|
|
160
|
+
/** §5.1: Current lifecycle status (4 values — see ReservationStatus) */
|
|
161
|
+
readonly status: ReservationStatus;
|
|
162
|
+
/** PSD-1: How this reservation was allocated */
|
|
163
|
+
readonly allocationMethod: AllocationMethod;
|
|
164
|
+
/** Record creation timestamp */
|
|
165
|
+
readonly createdAt: string;
|
|
166
|
+
/** Timestamp when released (null if not yet released) */
|
|
167
|
+
readonly releasedAt: string | null;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* §5.0: Mission budget ledger state.
|
|
171
|
+
* Per-dimension budget state for a mission. Both dimensions tracked independently.
|
|
172
|
+
* The conservation law (EGP-I13) holds per dimension at every consistent snapshot.
|
|
173
|
+
*/
|
|
174
|
+
export interface MissionBudgetState {
|
|
175
|
+
readonly missionId: MissionId;
|
|
176
|
+
/** Token dimension state (PSD-7: prompt/completion only) */
|
|
177
|
+
readonly token: DimensionBudgetState;
|
|
178
|
+
/** Deliberation dimension state (CF-06, DBA-I11) */
|
|
179
|
+
readonly deliberation: DimensionBudgetState;
|
|
180
|
+
/**
|
|
181
|
+
* §5.5: true when missionDebt > 0 in either dimension.
|
|
182
|
+
* No new task admission until checkpoint processed.
|
|
183
|
+
*/
|
|
184
|
+
readonly overBudgetFaultActive: boolean;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* §2, §8: Descriptor for a task eligible for scheduling.
|
|
188
|
+
* Used as input to wave composition and scheduler cycle.
|
|
189
|
+
* Dependencies already resolved (eligibility predicate from EGP-I5).
|
|
190
|
+
*/
|
|
191
|
+
export interface EligibleTaskDescriptor {
|
|
192
|
+
readonly taskId: TaskId;
|
|
193
|
+
/** Task priority — used for deterministic ordering (EGP-I9) */
|
|
194
|
+
readonly priority: number;
|
|
195
|
+
/** Estimated token consumption (prompt/completion) */
|
|
196
|
+
readonly estimatedTokens: number;
|
|
197
|
+
/** Estimated deliberation consumption (PSD-8) */
|
|
198
|
+
readonly estimatedDeliberationTokens: number;
|
|
199
|
+
/**
|
|
200
|
+
* PSD-8: Whether this task requires deliberation reservation.
|
|
201
|
+
* Determined by execution mode (reasoning-capable model), not estimate alone.
|
|
202
|
+
* If true and estimatedDeliberationTokens = 0, task fails DBA admissibility (fail-safe).
|
|
203
|
+
*/
|
|
204
|
+
readonly requiresDeliberation: boolean;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* EGP-I5, EGP-I6: Fan-in task dependency resolution status.
|
|
208
|
+
* Evaluates whether a fan-in task is eligible, waiting, or should be cancelled.
|
|
209
|
+
* Policy-aware: behavior differs under isolate, fail-fast, and quorum.
|
|
210
|
+
*/
|
|
211
|
+
export interface FanInDependencyStatus {
|
|
212
|
+
readonly taskId: TaskId;
|
|
213
|
+
/** Whether the fan-in task is now eligible for scheduling */
|
|
214
|
+
readonly eligible: boolean;
|
|
215
|
+
/** Reason for current status */
|
|
216
|
+
readonly reason: 'all_resolved' | 'all_completed' | 'quorum_met' | 'quorum_impossible' | 'waiting' | 'cancelled';
|
|
217
|
+
/** Predecessors that completed successfully */
|
|
218
|
+
readonly completedPredecessors: readonly TaskId[];
|
|
219
|
+
/** Predecessors that reached final failure (no retries) */
|
|
220
|
+
readonly failedPredecessors: readonly TaskId[];
|
|
221
|
+
/** Predecessors that were cancelled */
|
|
222
|
+
readonly cancelledPredecessors: readonly TaskId[];
|
|
223
|
+
/** Predecessors still executing or pending */
|
|
224
|
+
readonly activePredecessors: readonly TaskId[];
|
|
225
|
+
/** Quorum-specific state (only present when policy = 'quorum') */
|
|
226
|
+
readonly quorumState?: {
|
|
227
|
+
/** Configured threshold (0.0-1.0) */
|
|
228
|
+
readonly threshold: number;
|
|
229
|
+
/** ceil(threshold × totalPredecessors) */
|
|
230
|
+
readonly requiredSuccesses: number;
|
|
231
|
+
/** Count of COMPLETED predecessors */
|
|
232
|
+
readonly completedSuccessCount: number;
|
|
233
|
+
/** Count of still-active predecessors (PENDING/SCHEDULED/RUNNING) */
|
|
234
|
+
readonly remainingActiveCount: number;
|
|
235
|
+
/** completedSuccessCount >= requiredSuccesses */
|
|
236
|
+
readonly met: boolean;
|
|
237
|
+
/** completedSuccessCount + remainingActiveCount < requiredSuccesses */
|
|
238
|
+
readonly impossible: boolean;
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* EGP-I7, §7.2: Capability retry decision.
|
|
243
|
+
* Returned by the retry policy evaluator when a capability execution fails.
|
|
244
|
+
*/
|
|
245
|
+
export interface CapabilityRetryDecision {
|
|
246
|
+
/** The capability type that failed */
|
|
247
|
+
readonly capabilityType: string;
|
|
248
|
+
/** Optional operation identifier (for adapters with per-operation classification) */
|
|
249
|
+
readonly operationId?: string;
|
|
250
|
+
/** The mutability class of the failed operation */
|
|
251
|
+
readonly mutabilityClass: MutabilityClass;
|
|
252
|
+
/** Whether auto-retry is permitted based on mutability class */
|
|
253
|
+
readonly retryPermitted: boolean;
|
|
254
|
+
/** Whether sandbox reset is required before retry (side-effecting only) */
|
|
255
|
+
readonly requiresSandboxReset: boolean;
|
|
256
|
+
/** Human-readable reason for the decision */
|
|
257
|
+
readonly reason: string;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* §5.5, EGP-I12: Over-budget fault state.
|
|
261
|
+
* Entered when missionDebt > 0 in either dimension.
|
|
262
|
+
* Blocks new task admission and scheduling until checkpoint processed.
|
|
263
|
+
*/
|
|
264
|
+
export interface OverBudgetFaultState {
|
|
265
|
+
readonly missionId: MissionId;
|
|
266
|
+
/** Whether the fault is currently active */
|
|
267
|
+
readonly active: boolean;
|
|
268
|
+
/** Which dimension(s) triggered the fault */
|
|
269
|
+
readonly triggeringDimensions: readonly BudgetDimension[];
|
|
270
|
+
/** Token dimension debt amount (0 if not in debt) */
|
|
271
|
+
readonly tokenDebt: number;
|
|
272
|
+
/** Deliberation dimension debt amount (0 if not in debt) */
|
|
273
|
+
readonly deliberationDebt: number;
|
|
274
|
+
/** No new task admission until checkpoint processed */
|
|
275
|
+
readonly admissionBlocked: boolean;
|
|
276
|
+
/** No new scheduling until budget approved or replan reduces work */
|
|
277
|
+
readonly schedulingBlocked: boolean;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* §9.1, EGP-I9: Wave replay record.
|
|
281
|
+
* Captures all scheduling inputs and outputs for deterministic replay.
|
|
282
|
+
* Replay from recorded inputs must produce identical wave composition and reservations.
|
|
283
|
+
*/
|
|
284
|
+
export interface WaveReplayRecord {
|
|
285
|
+
readonly waveId: WaveId;
|
|
286
|
+
readonly missionId: MissionId;
|
|
287
|
+
/** Eligible task set at decision time */
|
|
288
|
+
readonly eligibleTaskIds: readonly TaskId[];
|
|
289
|
+
/** Priority inputs per task */
|
|
290
|
+
readonly taskPriorities: readonly {
|
|
291
|
+
readonly taskId: TaskId;
|
|
292
|
+
readonly priority: number;
|
|
293
|
+
}[];
|
|
294
|
+
/** Required dimensions per task */
|
|
295
|
+
readonly taskDimensions: readonly {
|
|
296
|
+
readonly taskId: TaskId;
|
|
297
|
+
readonly requiresDeliberation: boolean;
|
|
298
|
+
readonly estimatedTokens: number;
|
|
299
|
+
readonly estimatedDeliberationTokens: number;
|
|
300
|
+
}[];
|
|
301
|
+
/** Wave pool snapshot per dimension */
|
|
302
|
+
readonly tokenPoolSnapshot: number;
|
|
303
|
+
readonly deliberationPoolSnapshot: number;
|
|
304
|
+
/** Worker availability at decision time */
|
|
305
|
+
readonly workerAvailability: number;
|
|
306
|
+
/** Computed reservations per task per dimension */
|
|
307
|
+
readonly computedReservations: readonly {
|
|
308
|
+
readonly taskId: TaskId;
|
|
309
|
+
readonly reservedTokens: number;
|
|
310
|
+
readonly reservedDeliberation: number;
|
|
311
|
+
}[];
|
|
312
|
+
/** Allocation method used */
|
|
313
|
+
readonly allocationMethod: AllocationMethod;
|
|
314
|
+
/** Final wave composition — which tasks were selected */
|
|
315
|
+
readonly selectedTaskIds: readonly TaskId[];
|
|
316
|
+
/** Starvation counter state per mission at decision time */
|
|
317
|
+
readonly starvationCounters: readonly {
|
|
318
|
+
readonly missionId: MissionId;
|
|
319
|
+
readonly counter: number;
|
|
320
|
+
}[];
|
|
321
|
+
/** Decision timestamp */
|
|
322
|
+
readonly timestamp: string;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* EGP-I13: Conservation law check result.
|
|
326
|
+
* Verifies: allocated + missionDebt = totalConsumed + reservedRemaining + unreservedRemaining
|
|
327
|
+
* per dimension independently.
|
|
328
|
+
*/
|
|
329
|
+
export interface ConservationCheckResult {
|
|
330
|
+
/** Whether the conservation law holds in both dimensions */
|
|
331
|
+
readonly holds: boolean;
|
|
332
|
+
/** Token dimension check */
|
|
333
|
+
readonly token: {
|
|
334
|
+
/** allocated + missionDebt */
|
|
335
|
+
readonly leftSide: number;
|
|
336
|
+
/** totalConsumed + sum(reservedRemaining) + unreservedRemaining */
|
|
337
|
+
readonly rightSide: number;
|
|
338
|
+
/** leftSide - rightSide (0 if conservation holds) */
|
|
339
|
+
readonly delta: number;
|
|
340
|
+
};
|
|
341
|
+
/** Deliberation dimension check */
|
|
342
|
+
readonly deliberation: {
|
|
343
|
+
readonly leftSide: number;
|
|
344
|
+
readonly rightSide: number;
|
|
345
|
+
readonly delta: number;
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* §5.2: Input for creating a budget reservation.
|
|
350
|
+
* Both dimensions specified independently.
|
|
351
|
+
*/
|
|
352
|
+
export interface ReservationCreateInput {
|
|
353
|
+
readonly taskId: TaskId;
|
|
354
|
+
readonly missionId: MissionId;
|
|
355
|
+
/** Token ceiling for this reservation (PSD-7: prompt/completion) */
|
|
356
|
+
readonly reservedTokens: number;
|
|
357
|
+
/** Deliberation ceiling for this reservation (CF-06) */
|
|
358
|
+
readonly reservedDeliberation: number;
|
|
359
|
+
/** How this reservation was allocated */
|
|
360
|
+
readonly allocationMethod: AllocationMethod;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* §5.2, PSD-3: Input for wave composition.
|
|
364
|
+
* The composer selects a deterministic subset of eligible tasks
|
|
365
|
+
* that can all receive minimum viable reservation.
|
|
366
|
+
*/
|
|
367
|
+
export interface WaveCompositionInput {
|
|
368
|
+
readonly missionId: MissionId;
|
|
369
|
+
/** Tasks eligible for scheduling (dependencies met, not blocked) */
|
|
370
|
+
readonly eligibleTasks: readonly EligibleTaskDescriptor[];
|
|
371
|
+
/** Available token budget for this wave */
|
|
372
|
+
readonly tokenPool: number;
|
|
373
|
+
/** Available deliberation budget for this wave */
|
|
374
|
+
readonly deliberationPool: number;
|
|
375
|
+
/** Allocation method to use */
|
|
376
|
+
readonly allocationMethod: AllocationMethod;
|
|
377
|
+
/** PSD-2: Minimum token reservation per task */
|
|
378
|
+
readonly minimumViableTokens: number;
|
|
379
|
+
/** PSD-2: Minimum deliberation reservation per task (for tasks requiring deliberation) */
|
|
380
|
+
readonly minimumViableDeliberation: number;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* §6.2: Input for branch failure evaluation.
|
|
384
|
+
* Triggered when a task reaches final failure (after retry exhaustion).
|
|
385
|
+
* NOT triggered on intermediate failures that will be retried.
|
|
386
|
+
*/
|
|
387
|
+
export interface BranchFailureInput {
|
|
388
|
+
/** The task that reached final failure */
|
|
389
|
+
readonly failedTaskId: TaskId;
|
|
390
|
+
readonly missionId: MissionId;
|
|
391
|
+
/** Mission-level policy (PSD-4) */
|
|
392
|
+
readonly policy: BranchFailurePolicy;
|
|
393
|
+
/** Sibling tasks in the same fan-out set */
|
|
394
|
+
readonly siblingTaskIds: readonly TaskId[];
|
|
395
|
+
/** Current state of each sibling */
|
|
396
|
+
readonly siblingStates: readonly {
|
|
397
|
+
readonly taskId: TaskId;
|
|
398
|
+
readonly state: EGPRelevantTaskState;
|
|
399
|
+
}[];
|
|
400
|
+
/** Fan-in tasks that depend on the failed task or its siblings */
|
|
401
|
+
readonly fanInDependents: readonly {
|
|
402
|
+
readonly taskId: TaskId;
|
|
403
|
+
readonly allPredecessorIds: readonly TaskId[];
|
|
404
|
+
readonly quorumThreshold?: number;
|
|
405
|
+
}[];
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* §8, EGP-I5: Input for a scheduler cycle.
|
|
409
|
+
* Contains all inputs needed for deterministic scheduling (EGP-I9).
|
|
410
|
+
*/
|
|
411
|
+
export interface SchedulerCycleInput {
|
|
412
|
+
/** Number of idle workers available for task dispatch */
|
|
413
|
+
readonly availableWorkers: number;
|
|
414
|
+
/** Missions with eligible tasks */
|
|
415
|
+
readonly eligibleMissions: readonly {
|
|
416
|
+
readonly missionId: MissionId;
|
|
417
|
+
readonly eligibleTasks: readonly EligibleTaskDescriptor[];
|
|
418
|
+
readonly tokenPool: number;
|
|
419
|
+
readonly deliberationPool: number;
|
|
420
|
+
readonly branchFailurePolicy: BranchFailurePolicy;
|
|
421
|
+
readonly starvationCounter: number;
|
|
422
|
+
}[];
|
|
423
|
+
/** CF-11: Configurable starvation bound */
|
|
424
|
+
readonly starvationBound: number;
|
|
425
|
+
/** Default allocation method */
|
|
426
|
+
readonly allocationMethod: AllocationMethod;
|
|
427
|
+
/** PSD-2: Minimum viable reservation per dimension */
|
|
428
|
+
readonly minimumViableTokens: number;
|
|
429
|
+
readonly minimumViableDeliberation: number;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* §6.3: Input for replan budget calculation.
|
|
433
|
+
* Determines available budget after cancelling old graph tasks.
|
|
434
|
+
*/
|
|
435
|
+
export interface ReplanBudgetInput {
|
|
436
|
+
readonly missionId: MissionId;
|
|
437
|
+
/** All tasks from the current (old) graph with their states */
|
|
438
|
+
readonly currentGraphTasks: readonly {
|
|
439
|
+
readonly taskId: TaskId;
|
|
440
|
+
readonly state: EGPRelevantTaskState;
|
|
441
|
+
}[];
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* §5.2, PSD-3: Result of wave composition.
|
|
445
|
+
* All reservations computed against immutable pool snapshot and committed atomically.
|
|
446
|
+
*/
|
|
447
|
+
export interface WaveCompositionResult {
|
|
448
|
+
/** Unique identifier for this wave */
|
|
449
|
+
readonly waveId: WaveId;
|
|
450
|
+
readonly missionId: MissionId;
|
|
451
|
+
/** Tasks selected for this wave */
|
|
452
|
+
readonly scheduledTaskIds: readonly TaskId[];
|
|
453
|
+
/** Reservations created for selected tasks */
|
|
454
|
+
readonly reservations: readonly TaskBudgetReservation[];
|
|
455
|
+
/** Tasks excluded from the wave and why */
|
|
456
|
+
readonly excludedTasks: readonly {
|
|
457
|
+
readonly taskId: TaskId;
|
|
458
|
+
readonly reason: string;
|
|
459
|
+
}[];
|
|
460
|
+
/** Allocation method used */
|
|
461
|
+
readonly allocationMethod: AllocationMethod;
|
|
462
|
+
/** Immutable pool snapshots at wave start */
|
|
463
|
+
readonly tokenPoolSnapshot: number;
|
|
464
|
+
readonly deliberationPoolSnapshot: number;
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* §6.2: Result of branch failure evaluation.
|
|
468
|
+
*/
|
|
469
|
+
export interface BranchFailureResult {
|
|
470
|
+
readonly failedTaskId: TaskId;
|
|
471
|
+
readonly missionId: MissionId;
|
|
472
|
+
readonly policy: BranchFailurePolicy;
|
|
473
|
+
/** Tasks cancelled as a result of the failure (fail-fast siblings, quorum-impossible fan-ins) */
|
|
474
|
+
readonly cancelledTaskIds: readonly TaskId[];
|
|
475
|
+
/** Reservations released from cancelled tasks */
|
|
476
|
+
readonly releasedReservationIds: readonly ReservationId[];
|
|
477
|
+
/** Updated fan-in dependency status for affected dependents */
|
|
478
|
+
readonly affectedFanIns: readonly FanInDependencyStatus[];
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* §8, EGP-I5: Result of a scheduler cycle.
|
|
482
|
+
*/
|
|
483
|
+
export interface SchedulerCycleResult {
|
|
484
|
+
/** Waves composed and committed in this cycle */
|
|
485
|
+
readonly waves: readonly WaveCompositionResult[];
|
|
486
|
+
/** Starvation counter updates */
|
|
487
|
+
readonly starvationUpdates: readonly {
|
|
488
|
+
readonly missionId: MissionId;
|
|
489
|
+
readonly newCounter: number;
|
|
490
|
+
/** true if starvation bound triggered priority promotion */
|
|
491
|
+
readonly promoted: boolean;
|
|
492
|
+
}[];
|
|
493
|
+
/** Missions with eligible tasks that were not scheduled and why */
|
|
494
|
+
readonly unscheduledMissions: readonly {
|
|
495
|
+
readonly missionId: MissionId;
|
|
496
|
+
readonly reason: string;
|
|
497
|
+
}[];
|
|
498
|
+
/** Worker availability snapshot for replay */
|
|
499
|
+
readonly workerAvailabilitySnapshot: number;
|
|
500
|
+
/** Replay record for this cycle */
|
|
501
|
+
readonly replayRecord: WaveReplayRecord;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* §6.3: Result of replan budget calculation.
|
|
505
|
+
*/
|
|
506
|
+
export interface ReplanBudgetResult {
|
|
507
|
+
/** Available token budget for new graph (both dimensions) */
|
|
508
|
+
readonly replanBudgetTokens: number;
|
|
509
|
+
readonly replanBudgetDeliberation: number;
|
|
510
|
+
/** Tasks cancelled during replan */
|
|
511
|
+
readonly cancelledTasks: readonly {
|
|
512
|
+
readonly taskId: TaskId;
|
|
513
|
+
readonly previousState: string;
|
|
514
|
+
/** Budget released per dimension */
|
|
515
|
+
readonly releasedTokens: number;
|
|
516
|
+
readonly releasedDeliberation: number;
|
|
517
|
+
}[];
|
|
518
|
+
/** RUNNING tasks excluded from replan — their reservations are committed */
|
|
519
|
+
readonly runningTasksExcluded: readonly {
|
|
520
|
+
readonly taskId: TaskId;
|
|
521
|
+
/** Budget committed (unavailable for replan) per dimension */
|
|
522
|
+
readonly committedTokens: number;
|
|
523
|
+
readonly committedDeliberation: number;
|
|
524
|
+
}[];
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* EGP-I1, EGP-I11: Result of headroom check before invocation authorization.
|
|
528
|
+
* Both dimensions checked independently.
|
|
529
|
+
*/
|
|
530
|
+
export interface HeadroomCheckResult {
|
|
531
|
+
/** Whether the invocation is allowed (both dimensions have headroom) */
|
|
532
|
+
readonly allowed: boolean;
|
|
533
|
+
/** Available headroom per dimension */
|
|
534
|
+
readonly tokenHeadroom: number;
|
|
535
|
+
readonly deliberationHeadroom: number;
|
|
536
|
+
/** Whether either dimension is exhausted */
|
|
537
|
+
readonly tokenExhausted: boolean;
|
|
538
|
+
readonly deliberationExhausted: boolean;
|
|
539
|
+
/** Whether this invocation would cause overage per dimension */
|
|
540
|
+
readonly wouldCauseTokenOverage: boolean;
|
|
541
|
+
readonly wouldCauseDeliberationOverage: boolean;
|
|
542
|
+
/** Projected overage amounts if the invocation proceeds */
|
|
543
|
+
readonly projectedTokenOverage: number;
|
|
544
|
+
readonly projectedDeliberationOverage: number;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* EGP-I3: Result of EGP's terminal transition operation.
|
|
548
|
+
* Phase 1D will compose this with WMP's terminal operation.
|
|
549
|
+
*
|
|
550
|
+
* Three cases:
|
|
551
|
+
* 'released' — final terminal: budget reclaimed per dimension
|
|
552
|
+
* 'retained' — task failed with retries: reservation persists
|
|
553
|
+
* 'none' — v3.2 task without reservation: no-op
|
|
554
|
+
*/
|
|
555
|
+
export interface EGPTerminalResult {
|
|
556
|
+
/** What EGP did with the reservation */
|
|
557
|
+
readonly action: 'released' | 'retained' | 'none';
|
|
558
|
+
/** Reclaimed token budget (0 if retained or none) */
|
|
559
|
+
readonly reclaimedTokens: number;
|
|
560
|
+
/** Reclaimed deliberation budget (0 if retained or none) */
|
|
561
|
+
readonly reclaimedDeliberation: number;
|
|
562
|
+
/** Token overage recorded (consumption > reservation, charged to mission pool) */
|
|
563
|
+
readonly overageTokens: number;
|
|
564
|
+
/** Deliberation overage recorded */
|
|
565
|
+
readonly overageDeliberation: number;
|
|
566
|
+
/** Reservation affected (null if no reservation — v3.2 compatibility) */
|
|
567
|
+
readonly reservationId: ReservationId | null;
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* §5.1, §5.2: Budget reservation store.
|
|
571
|
+
* CRUD operations for TaskBudgetReservation records.
|
|
572
|
+
* All methods follow (conn, ctx) pattern per CCP precedent.
|
|
573
|
+
*/
|
|
574
|
+
export interface BudgetReservationStore {
|
|
575
|
+
/** Create a single reservation */
|
|
576
|
+
create(conn: DatabaseConnection, ctx: OperationContext, input: ReservationCreateInput): Result<TaskBudgetReservation>;
|
|
577
|
+
/** Create reservations for an entire wave atomically (§5.2: committed in single transaction) */
|
|
578
|
+
createBatch(conn: DatabaseConnection, ctx: OperationContext, inputs: readonly ReservationCreateInput[]): Result<readonly TaskBudgetReservation[]>;
|
|
579
|
+
/** Get reservation by task ID (primary lookup) */
|
|
580
|
+
getByTaskId(conn: DatabaseConnection, taskId: TaskId): Result<TaskBudgetReservation | null>;
|
|
581
|
+
/** Get reservation by reservation ID */
|
|
582
|
+
getById(conn: DatabaseConnection, reservationId: ReservationId): Result<TaskBudgetReservation>;
|
|
583
|
+
/** Transition reservation: reserved → active (task begins execution) */
|
|
584
|
+
activate(conn: DatabaseConnection, reservationId: ReservationId): Result<void>;
|
|
585
|
+
/** Transition reservation: active → retained (task failed, retries remain) [EGP-I8] */
|
|
586
|
+
retain(conn: DatabaseConnection, reservationId: ReservationId): Result<void>;
|
|
587
|
+
/** Transition reservation: retained → active (retry execution begins) [EGP-I8] */
|
|
588
|
+
reactivate(conn: DatabaseConnection, reservationId: ReservationId): Result<void>;
|
|
589
|
+
/** Update consumption counters (both dimensions) */
|
|
590
|
+
updateConsumed(conn: DatabaseConnection, reservationId: ReservationId, tokensConsumed: number, deliberationConsumed: number): Result<void>;
|
|
591
|
+
/**
|
|
592
|
+
* Release reservation and reclaim unused budget (EGP-I3).
|
|
593
|
+
* Atomic with terminal state transition.
|
|
594
|
+
* Returns reclaimed amounts and overage per dimension.
|
|
595
|
+
*/
|
|
596
|
+
release(conn: DatabaseConnection, ctx: OperationContext, reservationId: ReservationId, reason: string): Result<{
|
|
597
|
+
readonly reclaimedTokens: number;
|
|
598
|
+
readonly reclaimedDeliberation: number;
|
|
599
|
+
readonly overageTokens: number;
|
|
600
|
+
readonly overageDeliberation: number;
|
|
601
|
+
}>;
|
|
602
|
+
/** Get all active (non-released) reservations for a mission */
|
|
603
|
+
getActiveByMission(conn: DatabaseConnection, missionId: MissionId): Result<readonly TaskBudgetReservation[]>;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* §5.0, EGP-I13: Mission budget ledger.
|
|
607
|
+
* Manages per-dimension budget state. Enforces conservation law.
|
|
608
|
+
*/
|
|
609
|
+
export interface MissionBudgetLedger {
|
|
610
|
+
/** Get current budget state for a mission (both dimensions) */
|
|
611
|
+
getState(conn: DatabaseConnection, missionId: MissionId): Result<MissionBudgetState>;
|
|
612
|
+
/** Reserve budget from unreserved pool (during wave allocation) — per dimension */
|
|
613
|
+
reserveFromPool(conn: DatabaseConnection, missionId: MissionId, tokenAmount: number, deliberationAmount: number): Result<void>;
|
|
614
|
+
/** Return reclaimed budget to unreserved pool (during reservation release) — per dimension */
|
|
615
|
+
returnToPool(conn: DatabaseConnection, missionId: MissionId, tokenAmount: number, deliberationAmount: number): Result<void>;
|
|
616
|
+
/** Record consumption against a mission (increments totalConsumed) — per dimension */
|
|
617
|
+
recordConsumption(conn: DatabaseConnection, missionId: MissionId, tokenAmount: number, deliberationAmount: number): Result<void>;
|
|
618
|
+
/**
|
|
619
|
+
* Record overage and potentially enter over-budget fault state (EGP-I12).
|
|
620
|
+
* If overage exceeds unreserved pool, pool clamps to 0 and excess becomes missionDebt.
|
|
621
|
+
* Returns OverBudgetFaultState if fault entered, null otherwise.
|
|
622
|
+
*/
|
|
623
|
+
recordOverage(conn: DatabaseConnection, ctx: OperationContext, missionId: MissionId, tokenOverage: number, deliberationOverage: number): Result<OverBudgetFaultState | null>;
|
|
624
|
+
/** Verify conservation law holds (EGP-I13) — per dimension independently */
|
|
625
|
+
checkConservation(conn: DatabaseConnection, missionId: MissionId): Result<ConservationCheckResult>;
|
|
626
|
+
/**
|
|
627
|
+
* Phase 2B Wire: Initialize mission budget allocation.
|
|
628
|
+
* Sets the allocated and unreservedRemaining fields for a mission.
|
|
629
|
+
* Called when a mission is created with a budget.
|
|
630
|
+
*
|
|
631
|
+
* Conservation: allocated = unreservedRemaining (initially, all budget is unreserved).
|
|
632
|
+
* Subsequent operations (reserve, consume, release) maintain the equation.
|
|
633
|
+
*
|
|
634
|
+
* Required for I-87 (floor enforcement): floor = allocated * floorPct.
|
|
635
|
+
* Without allocated, floor is always 0 and floor enforcement is vacuous.
|
|
636
|
+
*/
|
|
637
|
+
initializeBudget(conn: DatabaseConnection, missionId: MissionId, tokenAllocation: number, deliberationAllocation: number): Result<void>;
|
|
638
|
+
/**
|
|
639
|
+
* Phase 2B Wire: Finalize reservation at terminal state (conservation-correct).
|
|
640
|
+
* Atomically performs the full reservation accounting:
|
|
641
|
+
* - totalReserved -= (consumedTokens + reclaimedTokens) [full reservation removed]
|
|
642
|
+
* - unreservedRemaining += reclaimedTokens [unconsumed returned]
|
|
643
|
+
* - totalConsumed += consumedTokens [consumed accounted]
|
|
644
|
+
*
|
|
645
|
+
* Conservation proof: right-side change = +C - (C+R) + R = 0. Equation holds.
|
|
646
|
+
*
|
|
647
|
+
* This replaces the separate returnToPool + recordConsumption pattern,
|
|
648
|
+
* which cannot correctly move consumed from "reserved" to "consumed"
|
|
649
|
+
* without transiently breaking conservation.
|
|
650
|
+
*
|
|
651
|
+
* Invariants: EGP-I3 (atomic reclaim), EGP-I13 (conservation), I-83 (terminal release).
|
|
652
|
+
*/
|
|
653
|
+
finalizeReservation(conn: DatabaseConnection, missionId: MissionId, consumedTokens: number, consumedDeliberation: number, reclaimedTokens: number, reclaimedDeliberation: number): Result<void>;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* PSD-3, EGP-I9: Wave composer.
|
|
657
|
+
* Selects a deterministic subset of eligible tasks for scheduling.
|
|
658
|
+
* Algorithm is implementation freedom (PSD-3) but output must be deterministic (EGP-I9).
|
|
659
|
+
* All reservations computed against immutable pool snapshot and committed atomically.
|
|
660
|
+
*/
|
|
661
|
+
export interface WaveComposer {
|
|
662
|
+
compose(conn: DatabaseConnection, ctx: OperationContext, input: WaveCompositionInput): Result<WaveCompositionResult>;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* EGP-I6, §6.2: Branch failure handler.
|
|
666
|
+
* Evaluates branch failure policies when a task reaches final failure.
|
|
667
|
+
* NOT triggered on intermediate failures that will be retried (§6.2 triggering condition).
|
|
668
|
+
*/
|
|
669
|
+
export interface BranchFailureHandler {
|
|
670
|
+
/**
|
|
671
|
+
* Handle a task reaching final failure state.
|
|
672
|
+
* Evaluates the mission's branch failure policy and cancels siblings/dependents as required.
|
|
673
|
+
*/
|
|
674
|
+
handleFailure(conn: DatabaseConnection, ctx: OperationContext, input: BranchFailureInput): Result<BranchFailureResult>;
|
|
675
|
+
/**
|
|
676
|
+
* Evaluate a fan-in task's dependency status under the active policy.
|
|
677
|
+
* Used for scheduling eligibility determination.
|
|
678
|
+
*/
|
|
679
|
+
evaluateFanIn(conn: DatabaseConnection, taskId: TaskId, policy: BranchFailurePolicy, predecessors: readonly {
|
|
680
|
+
readonly taskId: TaskId;
|
|
681
|
+
readonly state: EGPRelevantTaskState;
|
|
682
|
+
}[], quorumThreshold?: number): Result<FanInDependencyStatus>;
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* EGP-I7, §7.2: Capability retry policy evaluator.
|
|
686
|
+
* Determines whether a failed capability invocation can be auto-retried
|
|
687
|
+
* based on the operation's mutability classification.
|
|
688
|
+
*/
|
|
689
|
+
export interface CapabilityRetryPolicy {
|
|
690
|
+
/**
|
|
691
|
+
* Evaluate retry decision for a failed capability.
|
|
692
|
+
* Decision based on operation-level classification (not adapter family default).
|
|
693
|
+
*/
|
|
694
|
+
evaluate(capabilityType: string, operationId: string | undefined, mutabilityClass: MutabilityClass, sandboxResetAvailable: boolean): Result<CapabilityRetryDecision>;
|
|
695
|
+
/**
|
|
696
|
+
* Get the default mutability class for a capability type (adapter family default).
|
|
697
|
+
* Used when an operation has no explicit classification.
|
|
698
|
+
*/
|
|
699
|
+
getDefaultClass(capabilityType: string): Result<MutabilityClass>;
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* §8, EGP-I5, EGP-I9: Scheduler engine.
|
|
703
|
+
* Executes a complete scheduler cycle: mission admission, wave composition,
|
|
704
|
+
* starvation tracking. Algorithm is implementation freedom (PSD-3) but
|
|
705
|
+
* output must be deterministic (EGP-I9) with starvation bound enforced (EGP-I5).
|
|
706
|
+
*/
|
|
707
|
+
export interface SchedulerEngine {
|
|
708
|
+
executeCycle(conn: DatabaseConnection, ctx: OperationContext, input: SchedulerCycleInput): Result<SchedulerCycleResult>;
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* §5.3, EGP-I1, EGP-I11: Reservation enforcer.
|
|
712
|
+
* Checks consumption against reservation ceilings per dimension.
|
|
713
|
+
* Provides the headroom surface that DBA's admissibility check queries.
|
|
714
|
+
*/
|
|
715
|
+
export interface ReservationEnforcer {
|
|
716
|
+
/**
|
|
717
|
+
* Check headroom before authorizing an invocation.
|
|
718
|
+
* Both dimensions checked independently (EGP-I4).
|
|
719
|
+
* Returns allowed=false if either dimension is exhausted.
|
|
720
|
+
*/
|
|
721
|
+
checkHeadroom(conn: DatabaseConnection, taskId: TaskId, additionalTokens: number, additionalDeliberation: number): Result<HeadroomCheckResult>;
|
|
722
|
+
/**
|
|
723
|
+
* Handle post-invocation overage reconciliation (EGP-I12).
|
|
724
|
+
* Charges overage to mission unreserved pool per dimension.
|
|
725
|
+
* Returns fault state if mission enters over-budget.
|
|
726
|
+
*/
|
|
727
|
+
handleOverage(conn: DatabaseConnection, ctx: OperationContext, taskId: TaskId, tokenOverage: number, deliberationOverage: number): Result<OverBudgetFaultState | null>;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* §6.3: Replan calculator.
|
|
731
|
+
* Determines available budget after cancelling old graph tasks during replan.
|
|
732
|
+
*/
|
|
733
|
+
export interface ReplanCalculator {
|
|
734
|
+
calculateReplanBudget(conn: DatabaseConnection, ctx: OperationContext, input: ReplanBudgetInput): Result<ReplanBudgetResult>;
|
|
735
|
+
}
|
|
736
|
+
/**
|
|
737
|
+
* §8.2, EGP-I5: Starvation tracker.
|
|
738
|
+
* Per-mission counter of consecutive unscheduled cycles.
|
|
739
|
+
* In-memory only — resets on engine restart (per Implementation Doctrine §4.3).
|
|
740
|
+
* Does not use DatabaseConnection since it's a runtime-only structure.
|
|
741
|
+
*/
|
|
742
|
+
export interface StarvationTracker {
|
|
743
|
+
/** Increment counter for a mission (was eligible but not scheduled) */
|
|
744
|
+
increment(missionId: MissionId): void;
|
|
745
|
+
/** Reset counter for a mission (was scheduled) */
|
|
746
|
+
reset(missionId: MissionId): void;
|
|
747
|
+
/** Get current counter value for a mission */
|
|
748
|
+
getCounter(missionId: MissionId): number;
|
|
749
|
+
/** Check if counter exceeds the configured starvation bound */
|
|
750
|
+
isAboveBound(missionId: MissionId, bound: number): boolean;
|
|
751
|
+
/** Get all non-zero counters (for replay record) */
|
|
752
|
+
getAllCounters(): ReadonlyMap<string, number>;
|
|
753
|
+
}
|
|
754
|
+
/**
|
|
755
|
+
* EGP-I3, EGP-I8: Terminal operation handler.
|
|
756
|
+
* EGP's contribution to the composed TaskTerminalTransition (Phase 1D).
|
|
757
|
+
*
|
|
758
|
+
* Called when a task exits RUNNING state:
|
|
759
|
+
* - COMPLETED: release reservation, reclaim unused budget per dimension
|
|
760
|
+
* - CANCELLED: release reservation, reclaim unused budget per dimension
|
|
761
|
+
* - FAILED with retries remaining: retain reservation (not released)
|
|
762
|
+
* - FAILED without retries: release reservation, reclaim unused budget per dimension
|
|
763
|
+
* - Task has no reservation (v3.2 compatibility): no-op
|
|
764
|
+
*
|
|
765
|
+
* Must be atomic with the task state transition (I-03).
|
|
766
|
+
*/
|
|
767
|
+
export interface EGPTerminalOperationHandler {
|
|
768
|
+
execute(conn: DatabaseConnection, ctx: OperationContext, taskId: TaskId, terminalState: 'COMPLETED' | 'CANCELLED' | 'FAILED', hasRetriesRemaining: boolean): Result<EGPTerminalResult>;
|
|
769
|
+
}
|
|
770
|
+
/**
|
|
771
|
+
* DC-EGP-064: Admission-time reservation gate.
|
|
772
|
+
* Validates that a v3.3 task has a budget reservation before transitioning
|
|
773
|
+
* to 'executing' state. This is the EGP side of the TransitionEnforcer
|
|
774
|
+
* composition (Phase 1D).
|
|
775
|
+
*
|
|
776
|
+
* Truth-model obligation: EGP-I14 (reservation requirement).
|
|
777
|
+
* A v3.3 task cannot enter 'executing' without a non-released reservation.
|
|
778
|
+
* v3.2 tasks are exempt (backward compatibility via PSD-5).
|
|
779
|
+
*/
|
|
780
|
+
export interface ReservationAdmissionGate {
|
|
781
|
+
/**
|
|
782
|
+
* Check if a task has a valid (non-released) reservation for execution.
|
|
783
|
+
* Returns admitted=true if reservation exists and is in valid state,
|
|
784
|
+
* or if task is a v3.2 task (exempt from reservation requirement).
|
|
785
|
+
*/
|
|
786
|
+
checkAdmission(conn: DatabaseConnection, ctx: OperationContext, taskId: TaskId, taskVersion: '3.2' | '3.3'): Result<{
|
|
787
|
+
readonly admitted: boolean;
|
|
788
|
+
readonly reason: string;
|
|
789
|
+
readonly reservationId: ReservationId | null;
|
|
790
|
+
}>;
|
|
791
|
+
}
|
|
792
|
+
/**
|
|
793
|
+
* DC-EGP-063: Reservation age monitoring (runtime companion).
|
|
794
|
+
* Detects reservations in 'reserved' status that have exceeded a configurable
|
|
795
|
+
* age threshold — indicating the task was never scheduled for execution.
|
|
796
|
+
*
|
|
797
|
+
* Control mode: contained in runtime. This interface provides the detection
|
|
798
|
+
* surface; remediation is operational (monitoring/alerting).
|
|
799
|
+
*/
|
|
800
|
+
export interface ReservationAgeMonitor {
|
|
801
|
+
/**
|
|
802
|
+
* Query for reservations that have been in 'reserved' status longer than maxAgeMs.
|
|
803
|
+
* Returns orphan candidates for operational review.
|
|
804
|
+
*/
|
|
805
|
+
getOrphanedReservations(conn: DatabaseConnection, maxAgeMs: number): Result<readonly {
|
|
806
|
+
readonly reservationId: ReservationId;
|
|
807
|
+
readonly taskId: TaskId;
|
|
808
|
+
readonly missionId: MissionId;
|
|
809
|
+
readonly ageMs: number;
|
|
810
|
+
readonly status: ReservationStatus;
|
|
811
|
+
}[]>;
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* DC-EGP-062, DC-EGP-066: Suspended reservation query.
|
|
815
|
+
* Checks whether a task's reservation should be treated as non-consumable
|
|
816
|
+
* because the task (or its mission) is currently suspended (INV-X05).
|
|
817
|
+
*
|
|
818
|
+
* DC-EGP-062: Suspension not reflected in reservation state — headroom
|
|
819
|
+
* should return allowed=false for suspended tasks.
|
|
820
|
+
* DC-EGP-066: Suspended reservation accumulation — consumption should not
|
|
821
|
+
* accrue against a suspended task's reservation.
|
|
822
|
+
*/
|
|
823
|
+
export interface SuspendedReservationQuery {
|
|
824
|
+
/**
|
|
825
|
+
* Check if a task's reservation is effectively frozen due to suspension.
|
|
826
|
+
* Returns true if the task or its parent mission has an active suspension.
|
|
827
|
+
*/
|
|
828
|
+
isTaskSuspended(conn: DatabaseConnection, taskId: TaskId): Result<boolean>;
|
|
829
|
+
/**
|
|
830
|
+
* Check if a mission-level suspension affects reservation operations.
|
|
831
|
+
* Returns true if the mission has an active suspension (BC-049: cascades to tasks).
|
|
832
|
+
*/
|
|
833
|
+
isMissionSuspended(conn: DatabaseConnection, missionId: MissionId): Result<boolean>;
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* EGP Facade: Execution Governor.
|
|
837
|
+
* Composes all EGP subsystems into a single frozen entry point.
|
|
838
|
+
* Pattern: identical to LearningSystem facade (Object.freeze'd).
|
|
839
|
+
*/
|
|
840
|
+
export interface ExecutionGovernor {
|
|
841
|
+
readonly reservations: BudgetReservationStore;
|
|
842
|
+
readonly ledger: MissionBudgetLedger;
|
|
843
|
+
readonly waveComposer: WaveComposer;
|
|
844
|
+
readonly branchFailure: BranchFailureHandler;
|
|
845
|
+
readonly retryPolicy: CapabilityRetryPolicy;
|
|
846
|
+
readonly scheduler: SchedulerEngine;
|
|
847
|
+
readonly enforcer: ReservationEnforcer;
|
|
848
|
+
readonly replanCalculator: ReplanCalculator;
|
|
849
|
+
readonly starvation: StarvationTracker;
|
|
850
|
+
readonly terminalOp: EGPTerminalOperationHandler;
|
|
851
|
+
/** DC-EGP-064: Admission-time reservation gate (Phase 0A integration) */
|
|
852
|
+
readonly admissionGate: ReservationAdmissionGate;
|
|
853
|
+
/** DC-EGP-063: Reservation age monitoring (runtime companion) */
|
|
854
|
+
readonly ageMonitor: ReservationAgeMonitor;
|
|
855
|
+
/** DC-EGP-062/066: Suspension-aware reservation query (Phase 0A integration) */
|
|
856
|
+
readonly suspendedQuery: SuspendedReservationQuery;
|
|
857
|
+
}
|
|
858
|
+
/**
|
|
859
|
+
* External dependencies for the ExecutionGovernor.
|
|
860
|
+
* Injected at construction time.
|
|
861
|
+
*/
|
|
862
|
+
export interface ExecutionGovernorDeps {
|
|
863
|
+
/** I-03: Audit trail for atomic audit entries */
|
|
864
|
+
readonly audit: {
|
|
865
|
+
append(conn: DatabaseConnection, input: {
|
|
866
|
+
readonly tenantId: string | null;
|
|
867
|
+
readonly actorType: string;
|
|
868
|
+
readonly actorId: string;
|
|
869
|
+
readonly action: string;
|
|
870
|
+
readonly resourceType: string;
|
|
871
|
+
readonly resourceId: string;
|
|
872
|
+
readonly detail: Record<string, unknown>;
|
|
873
|
+
readonly parentEntryId?: string;
|
|
874
|
+
}): Result<unknown>;
|
|
875
|
+
};
|
|
876
|
+
/** §10: Event bus for EGP event emission */
|
|
877
|
+
readonly events: {
|
|
878
|
+
emit(event: {
|
|
879
|
+
readonly type: string;
|
|
880
|
+
readonly scope: string;
|
|
881
|
+
readonly propagation: string;
|
|
882
|
+
readonly payload: Record<string, unknown>;
|
|
883
|
+
}): void;
|
|
884
|
+
};
|
|
885
|
+
/**
|
|
886
|
+
* Phase 0A: TraceEmitter for constitutional event emission (DC-EGP-050/051/052).
|
|
887
|
+
* Optional — EGP functions without trace emission in pre-Phase-0A mode.
|
|
888
|
+
* Minimal projection of TraceEmitter interface (trace.ts).
|
|
889
|
+
*/
|
|
890
|
+
readonly traceEmitter?: {
|
|
891
|
+
emit(conn: DatabaseConnection, ctx: OperationContext, event: {
|
|
892
|
+
readonly correlationId: CorrelationId;
|
|
893
|
+
readonly type: string;
|
|
894
|
+
readonly payload: Record<string, unknown>;
|
|
895
|
+
}): Result<unknown>;
|
|
896
|
+
};
|
|
897
|
+
/**
|
|
898
|
+
* Phase 0A: Suspension store query for suspension-aware headroom (DC-EGP-062/066).
|
|
899
|
+
* Optional — EGP functions without suspension awareness in pre-Phase-0A mode.
|
|
900
|
+
* Minimal projection: only needs getActiveForTarget from SuspensionStore.
|
|
901
|
+
*/
|
|
902
|
+
readonly suspensionQuery?: {
|
|
903
|
+
getActiveForTarget(conn: DatabaseConnection, targetType: 'mission' | 'task', targetId: string): Result<unknown | null>;
|
|
904
|
+
};
|
|
905
|
+
/** Hard Stop #7: Injectable clock for deterministic temporal logic. */
|
|
906
|
+
readonly time: import('../../kernel/interfaces/time.js').TimeProvider;
|
|
907
|
+
}
|
|
908
|
+
/** Reservation operation error codes */
|
|
909
|
+
export declare const RESERVATION_ERROR_CODES: Readonly<{
|
|
910
|
+
/** Reservation not found for given taskId or reservationId */
|
|
911
|
+
readonly NOT_FOUND: "EGP_RESERVATION_NOT_FOUND";
|
|
912
|
+
/** Task already has a non-released reservation */
|
|
913
|
+
readonly ALREADY_EXISTS: "EGP_RESERVATION_ALREADY_EXISTS";
|
|
914
|
+
/** Invalid status transition attempted */
|
|
915
|
+
readonly INVALID_TRANSITION: "EGP_RESERVATION_INVALID_TRANSITION";
|
|
916
|
+
/** Reservation below minimum viable threshold (PSD-2) */
|
|
917
|
+
readonly BELOW_MINIMUM: "EGP_RESERVATION_BELOW_MINIMUM";
|
|
918
|
+
/** Both dimensions must meet minimum — one or both insufficient */
|
|
919
|
+
readonly DIMENSION_INSUFFICIENT: "EGP_RESERVATION_DIMENSION_INSUFFICIENT";
|
|
920
|
+
}>;
|
|
921
|
+
/** Wave composition error codes */
|
|
922
|
+
export declare const WAVE_ERROR_CODES: Readonly<{
|
|
923
|
+
/** Not enough budget in either dimension for any task's minimum */
|
|
924
|
+
readonly POOL_INSUFFICIENT: "EGP_WAVE_POOL_INSUFFICIENT";
|
|
925
|
+
/** No eligible tasks for wave composition */
|
|
926
|
+
readonly NO_ELIGIBLE_TASKS: "EGP_WAVE_NO_ELIGIBLE_TASKS";
|
|
927
|
+
/** Wave composition produced no scheduled tasks (all below minimum) */
|
|
928
|
+
readonly COMPOSITION_EMPTY: "EGP_WAVE_COMPOSITION_EMPTY";
|
|
929
|
+
/** DC-EGP-068: Negative pool value in wave input */
|
|
930
|
+
readonly INVALID_POOL: "EGP_WAVE_INVALID_POOL";
|
|
931
|
+
/** DC-EGP-068: Duplicate taskId in eligible task set */
|
|
932
|
+
readonly DUPLICATE_TASK: "EGP_WAVE_DUPLICATE_TASK";
|
|
933
|
+
/** DC-EGP-068: Negative or NaN task estimate in eligible set */
|
|
934
|
+
readonly INVALID_TASK_ESTIMATE: "EGP_WAVE_INVALID_TASK_ESTIMATE";
|
|
935
|
+
}>;
|
|
936
|
+
/** Branch failure error codes */
|
|
937
|
+
export declare const BRANCH_FAILURE_ERROR_CODES: Readonly<{
|
|
938
|
+
/** Invalid branch failure policy specified */
|
|
939
|
+
readonly INVALID_POLICY: "EGP_BRANCH_INVALID_POLICY";
|
|
940
|
+
/** Quorum threshold out of range (must be 0.0-1.0) */
|
|
941
|
+
readonly QUORUM_THRESHOLD_INVALID: "EGP_BRANCH_QUORUM_THRESHOLD_INVALID";
|
|
942
|
+
/** Failed task not found in mission */
|
|
943
|
+
readonly TASK_NOT_FOUND: "EGP_BRANCH_TASK_NOT_FOUND";
|
|
944
|
+
}>;
|
|
945
|
+
/** Scheduler error codes */
|
|
946
|
+
export declare const SCHEDULER_ERROR_CODES: Readonly<{
|
|
947
|
+
/** No missions with eligible tasks */
|
|
948
|
+
readonly NO_ELIGIBLE_MISSIONS: "EGP_SCHEDULER_NO_ELIGIBLE_MISSIONS";
|
|
949
|
+
/** Worker pool exhausted — no idle workers */
|
|
950
|
+
readonly NO_WORKERS_AVAILABLE: "EGP_SCHEDULER_NO_WORKERS";
|
|
951
|
+
}>;
|
|
952
|
+
/** Enforcement error codes */
|
|
953
|
+
export declare const ENFORCEMENT_ERROR_CODES: Readonly<{
|
|
954
|
+
/** Task's reservation exhausted in token dimension */
|
|
955
|
+
readonly TOKEN_HEADROOM_EXHAUSTED: "EGP_ENFORCEMENT_TOKEN_EXHAUSTED";
|
|
956
|
+
/** Task's reservation exhausted in deliberation dimension */
|
|
957
|
+
readonly DELIBERATION_HEADROOM_EXHAUSTED: "EGP_ENFORCEMENT_DELIBERATION_EXHAUSTED";
|
|
958
|
+
/** Mission entered over-budget fault state */
|
|
959
|
+
readonly OVER_BUDGET_FAULT: "EGP_ENFORCEMENT_OVER_BUDGET";
|
|
960
|
+
/** DC-EGP-002: Negative consumption value rejected (v1.1 strengthened) */
|
|
961
|
+
readonly INVALID_CONSUMPTION: "EGP_ENFORCEMENT_INVALID_CONSUMPTION";
|
|
962
|
+
}>;
|
|
963
|
+
/** SC-2 amendment error codes (propose_task_graph extensions) */
|
|
964
|
+
export declare const SC2_EGP_ERROR_CODES: Readonly<{
|
|
965
|
+
/** estimatedDeliberationTokens is negative or NaN */
|
|
966
|
+
readonly DELIBERATION_ESTIMATE_INVALID: "EGP_SC2_DELIBERATION_ESTIMATE_INVALID";
|
|
967
|
+
/** quorumThreshold is < 0 or > 1.0 */
|
|
968
|
+
readonly QUORUM_THRESHOLD_INVALID: "EGP_SC2_QUORUM_THRESHOLD_INVALID";
|
|
969
|
+
/** branchFailurePolicy is not a valid policy string */
|
|
970
|
+
readonly BRANCH_POLICY_INVALID: "EGP_SC2_BRANCH_POLICY_INVALID";
|
|
971
|
+
}>;
|
|
972
|
+
/** SC-3 amendment error codes (propose_task_execution extensions) */
|
|
973
|
+
export declare const SC3_EGP_ERROR_CODES: Readonly<{
|
|
974
|
+
/** Not enough token budget for minimum viable reservation */
|
|
975
|
+
readonly BUDGET_INSUFFICIENT_TOKEN: "EGP_SC3_BUDGET_INSUFFICIENT_TOKEN";
|
|
976
|
+
/** Not enough deliberation budget for minimum viable reservation */
|
|
977
|
+
readonly BUDGET_INSUFFICIENT_DELIBERATION: "EGP_SC3_BUDGET_INSUFFICIENT_DELIBERATION";
|
|
978
|
+
}>;
|
|
979
|
+
/** Retry policy error codes */
|
|
980
|
+
export declare const RETRY_ERROR_CODES: Readonly<{
|
|
981
|
+
/** Capability type not recognized */
|
|
982
|
+
readonly UNKNOWN_CAPABILITY: "EGP_RETRY_UNKNOWN_CAPABILITY";
|
|
983
|
+
/** Operation's mutability class could not be determined */
|
|
984
|
+
readonly UNCLASSIFIED_OPERATION: "EGP_RETRY_UNCLASSIFIED_OPERATION";
|
|
985
|
+
/** Sandbox reset required but not available */
|
|
986
|
+
readonly SANDBOX_RESET_UNAVAILABLE: "EGP_RETRY_SANDBOX_RESET_UNAVAILABLE";
|
|
987
|
+
}>;
|
|
988
|
+
/** Admission gate error codes (DC-EGP-064) */
|
|
989
|
+
export declare const ADMISSION_ERROR_CODES: Readonly<{
|
|
990
|
+
/** v3.3 task has no non-released reservation */
|
|
991
|
+
readonly NO_RESERVATION: "EGP_ADMISSION_NO_RESERVATION";
|
|
992
|
+
/** Task is suspended — admission blocked (DC-EGP-062) */
|
|
993
|
+
readonly TASK_SUSPENDED: "EGP_ADMISSION_TASK_SUSPENDED";
|
|
994
|
+
/** Mission is suspended — admission blocked for all tasks (BC-049) */
|
|
995
|
+
readonly MISSION_SUSPENDED: "EGP_ADMISSION_MISSION_SUSPENDED";
|
|
996
|
+
}>;
|
|
997
|
+
/**
|
|
998
|
+
* EGP events emitted through the EventBus.
|
|
999
|
+
* Each event includes scope (task/mission/system) and propagation direction.
|
|
1000
|
+
*/
|
|
1001
|
+
export declare const EGP_EVENTS: Readonly<{
|
|
1002
|
+
/** §5.3: Task's reservation exhausted in one or both dimensions */
|
|
1003
|
+
readonly TASK_BUDGET_EXCEEDED: "egp.task_budget_exceeded";
|
|
1004
|
+
/** §5.5: Mission entered over-budget fault state */
|
|
1005
|
+
readonly MISSION_BUDGET_EXCEEDED: "egp.mission_budget_exceeded";
|
|
1006
|
+
/** Reservation created during wave allocation */
|
|
1007
|
+
readonly RESERVATION_CREATED: "egp.reservation_created";
|
|
1008
|
+
/** Reservation activated (task began execution) */
|
|
1009
|
+
readonly RESERVATION_ACTIVATED: "egp.reservation_activated";
|
|
1010
|
+
/** Reservation retained (task failed with retries remaining) */
|
|
1011
|
+
readonly RESERVATION_RETAINED: "egp.reservation_retained";
|
|
1012
|
+
/** Reservation released (final terminal state, budget reclaimed) */
|
|
1013
|
+
readonly RESERVATION_RELEASED: "egp.reservation_released";
|
|
1014
|
+
/** Scheduling wave composed and committed */
|
|
1015
|
+
readonly WAVE_COMPOSED: "egp.wave_composed";
|
|
1016
|
+
/** Branch failure policy evaluated */
|
|
1017
|
+
readonly BRANCH_FAILURE_EVALUATED: "egp.branch_failure_evaluated";
|
|
1018
|
+
/** EGP-I5: Starvation bound triggered — mission promoted */
|
|
1019
|
+
readonly STARVATION_BOUND_TRIGGERED: "egp.starvation_bound_triggered";
|
|
1020
|
+
}>;
|
|
1021
|
+
/**
|
|
1022
|
+
* PSD-2: Default minimum viable reservation — token dimension.
|
|
1023
|
+
* Tasks that cannot receive at least this amount are not scheduled.
|
|
1024
|
+
* Prevents reservation fragmentation (FM-EGP-01).
|
|
1025
|
+
*/
|
|
1026
|
+
export declare const DEFAULT_MINIMUM_VIABLE_RESERVATION_TOKENS = 100;
|
|
1027
|
+
/**
|
|
1028
|
+
* PSD-2: Default minimum viable reservation — deliberation dimension.
|
|
1029
|
+
* For tasks requiring deliberation reservation (PSD-8).
|
|
1030
|
+
*/
|
|
1031
|
+
export declare const DEFAULT_MINIMUM_VIABLE_RESERVATION_DELIBERATION = 50;
|
|
1032
|
+
/**
|
|
1033
|
+
* §8.2, EGP-I5: Default starvation bound.
|
|
1034
|
+
* Per Implementation Doctrine §4.3: 100 cycles (10 seconds at 100ms polling).
|
|
1035
|
+
*/
|
|
1036
|
+
export declare const DEFAULT_MAX_STARVATION_CYCLES = 100;
|
|
1037
|
+
/**
|
|
1038
|
+
* EGP-I7, §7.1: Default mutability class per capability type.
|
|
1039
|
+
* Unclassified operations default to mutating-external (safest assumption).
|
|
1040
|
+
*/
|
|
1041
|
+
export declare const DEFAULT_CAPABILITY_MUTABILITY: Readonly<Record<string, MutabilityClass>>;
|
|
1042
|
+
//# sourceMappingURL=egp_types.d.ts.map
|