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,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate limit enforcement guard for the API surface.
|
|
3
|
+
* S ref: §36 (rate limiting), SD-14 (RBAC -> Rate Limit -> Execute ordering),
|
|
4
|
+
* FM-02 (cost explosion defense)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 4 (API Surface)
|
|
7
|
+
* Implements: SDD §7 build order item 4
|
|
8
|
+
*
|
|
9
|
+
* After RBAC passes (FPD-5), rate limiting checks the token-bucket
|
|
10
|
+
* before allowing the operation to proceed. The kernel's RateLimiter
|
|
11
|
+
* handles the token-bucket state in SQLite.
|
|
12
|
+
*
|
|
13
|
+
* Three bucket types per §36:
|
|
14
|
+
* - api_calls: General API call rate (default 100/min)
|
|
15
|
+
* - emit_event: Event emission rate (default 10/min)
|
|
16
|
+
* - propose_rejections: Rejection tracking
|
|
17
|
+
*
|
|
18
|
+
* Invariants enforced: I-13 (enforcement ordering via SD-14)
|
|
19
|
+
* Failure modes defended: FM-02 (cost explosion via call frequency capping)
|
|
20
|
+
*/
|
|
21
|
+
import { LimenError } from '../errors/limen_error.js';
|
|
22
|
+
/**
|
|
23
|
+
* §36, SD-14: Require rate limit allowance for the current operation.
|
|
24
|
+
*
|
|
25
|
+
* This function MUST be called AFTER RBAC check (FPD-5) and BEFORE
|
|
26
|
+
* delegation to orchestration.
|
|
27
|
+
*
|
|
28
|
+
* The kernel's RateLimiter.checkAndConsume() atomically checks and
|
|
29
|
+
* consumes a token from the specified bucket. If no tokens remain,
|
|
30
|
+
* this function throws RATE_LIMITED with cooldownMs indicating when
|
|
31
|
+
* the bucket will refill.
|
|
32
|
+
*
|
|
33
|
+
* @param rateLimiter - The kernel's RateLimiter instance
|
|
34
|
+
* @param conn - Database connection for atomic token-bucket operations
|
|
35
|
+
* @param ctx - The operation context (scopes the bucket to tenant/agent)
|
|
36
|
+
* @param bucketType - Which rate limit bucket to check
|
|
37
|
+
* @throws LimenError with code RATE_LIMITED if bucket is exhausted
|
|
38
|
+
*/
|
|
39
|
+
export function requireRateLimit(rateLimiter, conn, ctx, bucketType) {
|
|
40
|
+
const result = rateLimiter.checkAndConsume(conn, ctx, bucketType);
|
|
41
|
+
if (!result.ok) {
|
|
42
|
+
// Internal rate limiter error. This is an infrastructure issue, not a rate limit.
|
|
43
|
+
// Map to ENGINE_UNHEALTHY to avoid leaking internal errors.
|
|
44
|
+
throw new LimenError('ENGINE_UNHEALTHY', 'Rate limiting subsystem error.');
|
|
45
|
+
}
|
|
46
|
+
if (!result.value) {
|
|
47
|
+
// Token bucket exhausted. Get status for cooldown information.
|
|
48
|
+
const statusResult = rateLimiter.getStatus(conn, ctx, bucketType);
|
|
49
|
+
let cooldownMs;
|
|
50
|
+
if (statusResult.ok) {
|
|
51
|
+
// Calculate approximate time until next token refill
|
|
52
|
+
const { refillRate, maxTokens, currentTokens } = statusResult.value;
|
|
53
|
+
if (refillRate > 0 && currentTokens < maxTokens) {
|
|
54
|
+
// Time for 1 token to refill: 1000ms / refillRate
|
|
55
|
+
cooldownMs = Math.ceil(1000 / refillRate);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw new LimenError('RATE_LIMITED', 'Request rate limit exceeded.',
|
|
59
|
+
// exactOptionalPropertyTypes: only include cooldownMs when it has a value
|
|
60
|
+
cooldownMs !== undefined ? { cooldownMs } : undefined);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* §36: Check concurrent stream count against per-tenant limit.
|
|
65
|
+
*
|
|
66
|
+
* S36 specifies a default of 50 concurrent streams per tenant.
|
|
67
|
+
* This is separate from the token-bucket rate limiter -- it tracks
|
|
68
|
+
* active stream count in memory (not in SQLite).
|
|
69
|
+
*
|
|
70
|
+
* @param activeStreamCount - Current number of active streams for this tenant
|
|
71
|
+
* @param maxConcurrentStreams - Configured maximum (default 50 per S36)
|
|
72
|
+
* @throws LimenError with code RATE_LIMITED if stream limit reached
|
|
73
|
+
*/
|
|
74
|
+
export function requireStreamCapacity(activeStreamCount, maxConcurrentStreams) {
|
|
75
|
+
if (activeStreamCount >= maxConcurrentStreams) {
|
|
76
|
+
throw new LimenError('RATE_LIMITED', 'Maximum concurrent stream limit reached.', { cooldownMs: 1000 });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=rate_guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate_guard.js","sourceRoot":"","sources":["../../../src/api/enforcement/rate_guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAwB,EACxB,IAAwB,EACxB,GAAqB,EACrB,UAAsB;IAEtB,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAElE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,kFAAkF;QAClF,4DAA4D;QAC5D,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,+DAA+D;QAC/D,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAElE,IAAI,UAA8B,CAAC;QACnC,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;YACpB,qDAAqD;YACrD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;YACpE,IAAI,UAAU,GAAG,CAAC,IAAI,aAAa,GAAG,SAAS,EAAE,CAAC;gBAChD,kDAAkD;gBAClD,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,8BAA8B;QAC9B,0EAA0E;QAC1E,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAAyB,EACzB,oBAA4B;IAE5B,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;QAC9C,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,0CAA0C,EAC1C,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RBAC enforcement guard for the API surface.
|
|
3
|
+
* S ref: §34 (RBAC), I-13 (authorization completeness), SD-14 (RBAC before rate limit),
|
|
4
|
+
* FPD-5 (RBAC -> Rate Limit -> Execute ordering)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 4 (API Surface)
|
|
7
|
+
* Implements: SDD §7 build order item 3
|
|
8
|
+
*
|
|
9
|
+
* Every public method on the Limen object calls requirePermission() before
|
|
10
|
+
* delegating to orchestration. In single-user mode (RBAC dormant per §3.7),
|
|
11
|
+
* all checks pass immediately. In multi-tenant mode, the kernel's RbacEngine
|
|
12
|
+
* validates the permission against the OperationContext.
|
|
13
|
+
*
|
|
14
|
+
* Invariants enforced: I-13 (authorization completeness)
|
|
15
|
+
* Failure modes defended: FM-10 (tenant data leakage via unauthorized access)
|
|
16
|
+
*/
|
|
17
|
+
import type { OperationContext, Permission, RbacEngine } from '../../kernel/interfaces/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* I-13, §34: Require a specific permission for the current operation.
|
|
20
|
+
*
|
|
21
|
+
* This function MUST be called before every delegation to orchestration.
|
|
22
|
+
* It enforces the RBAC boundary at the API surface.
|
|
23
|
+
*
|
|
24
|
+
* In single-user mode (RBAC dormant), the kernel's RbacEngine.checkPermission()
|
|
25
|
+
* always returns true, so this function passes through immediately.
|
|
26
|
+
*
|
|
27
|
+
* FPD-5: This runs BEFORE rate limiting. Unauthorized callers must not
|
|
28
|
+
* consume rate limit tokens.
|
|
29
|
+
*
|
|
30
|
+
* @param rbac - The kernel's RbacEngine instance
|
|
31
|
+
* @param ctx - The operation context with identity and permissions
|
|
32
|
+
* @param required - The permission required for this operation
|
|
33
|
+
* @throws LimenError with code UNAUTHORIZED if permission is denied
|
|
34
|
+
*/
|
|
35
|
+
export declare function requirePermission(rbac: RbacEngine, ctx: OperationContext, required: Permission): void;
|
|
36
|
+
/**
|
|
37
|
+
* I-13, §34: Build an OperationContext from session state.
|
|
38
|
+
*
|
|
39
|
+
* This is the standard way to construct the identity context that flows
|
|
40
|
+
* through the kernel and orchestration layers. Every API call needs one.
|
|
41
|
+
*
|
|
42
|
+
* In single-user mode: tenantId is null, userId is null, permissions is the
|
|
43
|
+
* full set (RBAC dormant per §3.7).
|
|
44
|
+
*
|
|
45
|
+
* In multi-tenant mode: tenantId and userId come from the session,
|
|
46
|
+
* permissions come from the RBAC engine's role resolution.
|
|
47
|
+
*
|
|
48
|
+
* @param tenantId - Tenant identifier (null in single-user mode)
|
|
49
|
+
* @param userId - User identifier (null for system operations)
|
|
50
|
+
* @param agentId - Agent identifier (null if no agent context)
|
|
51
|
+
* @param permissions - Resolved permission set for this principal
|
|
52
|
+
* @param sessionId - Session identifier (optional)
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildOperationContext(tenantId: import('../../kernel/interfaces/index.js').TenantId | null, userId: import('../../kernel/interfaces/index.js').UserId | null, agentId: import('../../kernel/interfaces/index.js').AgentId | null, permissions: ReadonlySet<Permission>, sessionId?: import('../../kernel/interfaces/index.js').SessionId): OperationContext;
|
|
55
|
+
//# sourceMappingURL=rbac_guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbac_guard.d.ts","sourceRoot":"","sources":["../../../src/api/enforcement/rbac_guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAAE,UAAU,EAAE,UAAU,EACzC,MAAM,kCAAkC,CAAC;AAG1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,UAAU,GACnB,IAAI,CAYN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,kCAAkC,EAAE,QAAQ,GAAG,IAAI,EACpE,MAAM,EAAE,OAAO,kCAAkC,EAAE,MAAM,GAAG,IAAI,EAChE,OAAO,EAAE,OAAO,kCAAkC,EAAE,OAAO,GAAG,IAAI,EAClE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,EACpC,SAAS,CAAC,EAAE,OAAO,kCAAkC,EAAE,SAAS,GAC/D,gBAAgB,CAclB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RBAC enforcement guard for the API surface.
|
|
3
|
+
* S ref: §34 (RBAC), I-13 (authorization completeness), SD-14 (RBAC before rate limit),
|
|
4
|
+
* FPD-5 (RBAC -> Rate Limit -> Execute ordering)
|
|
5
|
+
*
|
|
6
|
+
* Phase: 4 (API Surface)
|
|
7
|
+
* Implements: SDD §7 build order item 3
|
|
8
|
+
*
|
|
9
|
+
* Every public method on the Limen object calls requirePermission() before
|
|
10
|
+
* delegating to orchestration. In single-user mode (RBAC dormant per §3.7),
|
|
11
|
+
* all checks pass immediately. In multi-tenant mode, the kernel's RbacEngine
|
|
12
|
+
* validates the permission against the OperationContext.
|
|
13
|
+
*
|
|
14
|
+
* Invariants enforced: I-13 (authorization completeness)
|
|
15
|
+
* Failure modes defended: FM-10 (tenant data leakage via unauthorized access)
|
|
16
|
+
*/
|
|
17
|
+
import { LimenError } from '../errors/limen_error.js';
|
|
18
|
+
/**
|
|
19
|
+
* I-13, §34: Require a specific permission for the current operation.
|
|
20
|
+
*
|
|
21
|
+
* This function MUST be called before every delegation to orchestration.
|
|
22
|
+
* It enforces the RBAC boundary at the API surface.
|
|
23
|
+
*
|
|
24
|
+
* In single-user mode (RBAC dormant), the kernel's RbacEngine.checkPermission()
|
|
25
|
+
* always returns true, so this function passes through immediately.
|
|
26
|
+
*
|
|
27
|
+
* FPD-5: This runs BEFORE rate limiting. Unauthorized callers must not
|
|
28
|
+
* consume rate limit tokens.
|
|
29
|
+
*
|
|
30
|
+
* @param rbac - The kernel's RbacEngine instance
|
|
31
|
+
* @param ctx - The operation context with identity and permissions
|
|
32
|
+
* @param required - The permission required for this operation
|
|
33
|
+
* @throws LimenError with code UNAUTHORIZED if permission is denied
|
|
34
|
+
*/
|
|
35
|
+
export function requirePermission(rbac, ctx, required) {
|
|
36
|
+
const result = rbac.checkPermission(ctx, required);
|
|
37
|
+
if (!result.ok) {
|
|
38
|
+
// S39 IP-4: Internal RBAC errors map to UNAUTHORIZED
|
|
39
|
+
// Do not expose why the check failed (could leak permission structure)
|
|
40
|
+
throw new LimenError('UNAUTHORIZED', 'Insufficient permissions for this operation.');
|
|
41
|
+
}
|
|
42
|
+
if (!result.value) {
|
|
43
|
+
throw new LimenError('UNAUTHORIZED', 'Insufficient permissions for this operation.');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* I-13, §34: Build an OperationContext from session state.
|
|
48
|
+
*
|
|
49
|
+
* This is the standard way to construct the identity context that flows
|
|
50
|
+
* through the kernel and orchestration layers. Every API call needs one.
|
|
51
|
+
*
|
|
52
|
+
* In single-user mode: tenantId is null, userId is null, permissions is the
|
|
53
|
+
* full set (RBAC dormant per §3.7).
|
|
54
|
+
*
|
|
55
|
+
* In multi-tenant mode: tenantId and userId come from the session,
|
|
56
|
+
* permissions come from the RBAC engine's role resolution.
|
|
57
|
+
*
|
|
58
|
+
* @param tenantId - Tenant identifier (null in single-user mode)
|
|
59
|
+
* @param userId - User identifier (null for system operations)
|
|
60
|
+
* @param agentId - Agent identifier (null if no agent context)
|
|
61
|
+
* @param permissions - Resolved permission set for this principal
|
|
62
|
+
* @param sessionId - Session identifier (optional)
|
|
63
|
+
*/
|
|
64
|
+
export function buildOperationContext(tenantId, userId, agentId, permissions, sessionId) {
|
|
65
|
+
const ctx = {
|
|
66
|
+
tenantId,
|
|
67
|
+
userId,
|
|
68
|
+
agentId,
|
|
69
|
+
permissions,
|
|
70
|
+
};
|
|
71
|
+
// OperationContext.sessionId is optional per the interface
|
|
72
|
+
if (sessionId !== undefined) {
|
|
73
|
+
return { ...ctx, sessionId };
|
|
74
|
+
}
|
|
75
|
+
return ctx;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=rbac_guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbac_guard.js","sourceRoot":"","sources":["../../../src/api/enforcement/rbac_guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAgB,EAChB,GAAqB,EACrB,QAAoB;IAEpB,MAAM,MAAM,GAAoB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEpE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,qDAAqD;QACrD,uEAAuE;QACvE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,8CAA8C,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,8CAA8C,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAoE,EACpE,MAAgE,EAChE,OAAkE,EAClE,WAAoC,EACpC,SAAgE;IAEhE,MAAM,GAAG,GAAqB;QAC5B,QAAQ;QACR,MAAM;QACN,OAAO;QACP,WAAW;KACZ,CAAC;IAEF,2DAA2D;IAC3D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LimenError: Public API error class and error mapping utilities.
|
|
3
|
+
* S ref: S39 IP-4 (error redaction), SD-02 (exception model), §6.13 (error codes)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 4 (API Surface)
|
|
6
|
+
* Implements: §6.13 of the Synthesized SDD
|
|
7
|
+
*
|
|
8
|
+
* Design decisions:
|
|
9
|
+
* SD-02: All public methods throw LimenError (exception model).
|
|
10
|
+
* Internal Result<T> from kernel/substrate/orchestration is mapped at the boundary.
|
|
11
|
+
* FPD-3: Error redaction happens at the API boundary, not per-layer.
|
|
12
|
+
* Internal KernelError details (SQL, stack traces, file paths) are NEVER exposed.
|
|
13
|
+
*
|
|
14
|
+
* Invariants enforced: I-13 (authorization completeness -- UNAUTHORIZED errors)
|
|
15
|
+
* Failure modes defended: FM-10 (tenant data leakage -- no internal state in errors)
|
|
16
|
+
*/
|
|
17
|
+
import type { KernelError, Result, LimenViolation } from '../../kernel/interfaces/index.js';
|
|
18
|
+
import type { LimenErrorCode } from '../interfaces/api.js';
|
|
19
|
+
/**
|
|
20
|
+
* S39 IP-4, SD-02: Public API error.
|
|
21
|
+
* Extends Error for standard catch semantics.
|
|
22
|
+
* Internal details (stack traces, SQL errors, file paths) are NEVER exposed.
|
|
23
|
+
*
|
|
24
|
+
* All public API methods throw this type. Internal Result<T> errors are mapped
|
|
25
|
+
* to LimenError at the API boundary (FPD-3).
|
|
26
|
+
*
|
|
27
|
+
* S ref: §6.13, S39 IP-4, SD-02
|
|
28
|
+
*/
|
|
29
|
+
export declare class LimenError extends Error {
|
|
30
|
+
readonly code: LimenErrorCode;
|
|
31
|
+
readonly retryable: boolean;
|
|
32
|
+
readonly cooldownMs?: number;
|
|
33
|
+
readonly suggestion?: string;
|
|
34
|
+
/** Phase 0A: Governance violations that triggered this error (BC-080) */
|
|
35
|
+
readonly violations?: readonly LimenViolation[];
|
|
36
|
+
constructor(code: LimenErrorCode, message: string, options?: {
|
|
37
|
+
readonly cooldownMs?: number;
|
|
38
|
+
readonly suggestion?: string;
|
|
39
|
+
readonly violations?: readonly LimenViolation[];
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* S39 IP-4, FPD-3: Map a kernel/orchestration Result<T> error to a LimenError.
|
|
44
|
+
*
|
|
45
|
+
* This is the API boundary error transformation.
|
|
46
|
+
* Internal KernelError details are redacted. Only the machine-readable code
|
|
47
|
+
* and a sanitized message are exposed to consumers.
|
|
48
|
+
*
|
|
49
|
+
* @param error - The internal KernelError from L1/L1.5/L2
|
|
50
|
+
* @returns LimenError ready to throw to consumers
|
|
51
|
+
*/
|
|
52
|
+
export declare function mapKernelError(error: KernelError): LimenError;
|
|
53
|
+
/**
|
|
54
|
+
* S39 IP-4, SD-02: Unwrap a Result<T> or throw LimenError.
|
|
55
|
+
*
|
|
56
|
+
* Convenience function for the common pattern:
|
|
57
|
+
* const result = await orchestration.someCall(ctx, input);
|
|
58
|
+
* const value = unwrapResult(result);
|
|
59
|
+
*
|
|
60
|
+
* If the Result is ok, returns the value.
|
|
61
|
+
* If the Result is not ok, maps the KernelError and throws LimenError.
|
|
62
|
+
*
|
|
63
|
+
* @param result - The internal Result<T> from L1/L1.5/L2
|
|
64
|
+
* @returns The unwrapped value of type T
|
|
65
|
+
* @throws LimenError if result.ok is false
|
|
66
|
+
*/
|
|
67
|
+
export declare function unwrapResult<T>(result: Result<T>): T;
|
|
68
|
+
/**
|
|
69
|
+
* S39 IP-4: Guard function that ensures any thrown error is a LimenError.
|
|
70
|
+
*
|
|
71
|
+
* If the caught error is already a LimenError, re-throw as-is.
|
|
72
|
+
* If it's a standard Error, map to ENGINE_UNHEALTHY with redacted message.
|
|
73
|
+
* If it's something else entirely, map to ENGINE_UNHEALTHY with generic message.
|
|
74
|
+
*
|
|
75
|
+
* Usage:
|
|
76
|
+
* try { ... } catch (e) { throw ensureLimenError(e); }
|
|
77
|
+
*
|
|
78
|
+
* This guarantees SD-02: all public methods throw LimenError, never raw errors.
|
|
79
|
+
*/
|
|
80
|
+
export declare function ensureLimenError(error: unknown): LimenError;
|
|
81
|
+
//# sourceMappingURL=limen_error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limen_error.d.ts","sourceRoot":"","sources":["../../../src/api/errors/limen_error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgJ3D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;gBAG9C,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;KACjD;CA2BJ;AAoFD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAK7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAKpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAW3D"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LimenError: Public API error class and error mapping utilities.
|
|
3
|
+
* S ref: S39 IP-4 (error redaction), SD-02 (exception model), §6.13 (error codes)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 4 (API Surface)
|
|
6
|
+
* Implements: §6.13 of the Synthesized SDD
|
|
7
|
+
*
|
|
8
|
+
* Design decisions:
|
|
9
|
+
* SD-02: All public methods throw LimenError (exception model).
|
|
10
|
+
* Internal Result<T> from kernel/substrate/orchestration is mapped at the boundary.
|
|
11
|
+
* FPD-3: Error redaction happens at the API boundary, not per-layer.
|
|
12
|
+
* Internal KernelError details (SQL, stack traces, file paths) are NEVER exposed.
|
|
13
|
+
*
|
|
14
|
+
* Invariants enforced: I-13 (authorization completeness -- UNAUTHORIZED errors)
|
|
15
|
+
* Failure modes defended: FM-10 (tenant data leakage -- no internal state in errors)
|
|
16
|
+
*/
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Redaction Patterns (S39 IP-4)
|
|
19
|
+
// ============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Patterns that indicate internal state leakage.
|
|
22
|
+
* Any message matching these is replaced with a sanitized version.
|
|
23
|
+
* S ref: S39 IP-4 (no internal state in public errors)
|
|
24
|
+
*/
|
|
25
|
+
const REDACTION_PATTERNS = [
|
|
26
|
+
/(?:SELECT|INSERT|UPDATE|DELETE|CREATE|ALTER|DROP|PRAGMA)\s/i, // SQL statements
|
|
27
|
+
/\/[a-zA-Z0-9_/.]+\.[a-z]{1,4}/i, // File paths (CF-030: case-insensitive for .TS/.JS)
|
|
28
|
+
/at\s+\S+\s+\(.+:\d+:\d+\)/, // Stack trace frames
|
|
29
|
+
/Error:\s+[A-Za-z_]+\s+at\s+/, // Stack trace headers (CF-030: mixed-case error names)
|
|
30
|
+
/\b(?:api[_-]?key|token|secret|password|credential)\b/i, // Sensitive tokens
|
|
31
|
+
/sqlite3?_/i, // SQLite internals
|
|
32
|
+
/SQLITE_/i, // SQLite error codes (CF-030: case-insensitive)
|
|
33
|
+
/better-sqlite3/i, // Dependency internals
|
|
34
|
+
/node_modules/i, // Node internals (CF-030: case-insensitive)
|
|
35
|
+
];
|
|
36
|
+
/**
|
|
37
|
+
* S39 IP-4: Check whether a message contains internal implementation details.
|
|
38
|
+
* Returns true if the message should be redacted.
|
|
39
|
+
*/
|
|
40
|
+
function containsInternalDetails(message) {
|
|
41
|
+
for (const pattern of REDACTION_PATTERNS) {
|
|
42
|
+
if (pattern.test(message)) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* S39 IP-4: Sanitize a message by removing internal details.
|
|
50
|
+
* Returns a generic message if internal state is detected.
|
|
51
|
+
*/
|
|
52
|
+
function sanitizeMessage(code, message) {
|
|
53
|
+
if (containsInternalDetails(message)) {
|
|
54
|
+
return GENERIC_MESSAGES[code] ?? 'An internal error occurred.';
|
|
55
|
+
}
|
|
56
|
+
return message;
|
|
57
|
+
}
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Generic Messages (one per error code)
|
|
60
|
+
// ============================================================================
|
|
61
|
+
/**
|
|
62
|
+
* Safe, generic messages per error code.
|
|
63
|
+
* Used when the original message contains internal implementation details.
|
|
64
|
+
*/
|
|
65
|
+
const GENERIC_MESSAGES = {
|
|
66
|
+
// API surface errors
|
|
67
|
+
RATE_LIMITED: 'Request rate limit exceeded.',
|
|
68
|
+
TIMEOUT: 'The operation timed out.',
|
|
69
|
+
CANCELLED: 'The operation was cancelled.',
|
|
70
|
+
UNAUTHORIZED: 'Insufficient permissions for this operation.',
|
|
71
|
+
PROVIDER_UNAVAILABLE: 'No LLM provider is currently available.',
|
|
72
|
+
SCHEMA_VALIDATION_FAILED: 'Output did not match the expected schema.',
|
|
73
|
+
ENGINE_UNHEALTHY: 'The engine is in an unhealthy state.',
|
|
74
|
+
SESSION_NOT_FOUND: 'The specified session was not found.',
|
|
75
|
+
INVALID_CONFIG: 'The engine configuration is invalid.',
|
|
76
|
+
INVALID_INPUT: 'The provided input is invalid.',
|
|
77
|
+
// SC-1 through SC-10 pass-through error codes
|
|
78
|
+
BUDGET_EXCEEDED: 'Token budget has been exceeded.',
|
|
79
|
+
DEPTH_EXCEEDED: 'Mission tree depth limit exceeded.',
|
|
80
|
+
CHILDREN_EXCEEDED: 'Maximum child missions exceeded.',
|
|
81
|
+
TREE_SIZE_EXCEEDED: 'Mission tree size limit exceeded.',
|
|
82
|
+
CAPABILITY_VIOLATION: 'Agent capability does not include the required permission.',
|
|
83
|
+
AGENT_NOT_FOUND: 'The specified agent was not found.',
|
|
84
|
+
DEADLINE_EXCEEDED: 'The mission deadline has passed.',
|
|
85
|
+
DELEGATION_CYCLE: 'A delegation cycle was detected in the mission tree.',
|
|
86
|
+
CYCLE_DETECTED: 'A dependency cycle was detected in the task graph.',
|
|
87
|
+
TASK_LIMIT_EXCEEDED: 'Maximum task count exceeded.',
|
|
88
|
+
INVALID_DEPENDENCY: 'Invalid task dependency specified.',
|
|
89
|
+
MISSION_NOT_ACTIVE: 'The mission is not in an active state.',
|
|
90
|
+
PLAN_REVISION_LIMIT: 'Maximum plan revision count exceeded.',
|
|
91
|
+
DEPENDENCIES_UNMET: 'Task dependencies have not been satisfied.',
|
|
92
|
+
CAPABILITY_DENIED: 'Capability request was denied.',
|
|
93
|
+
WORKER_UNAVAILABLE: 'No worker is available for task execution.',
|
|
94
|
+
TASK_NOT_PENDING: 'The task is not in a pending state.',
|
|
95
|
+
STORAGE_EXCEEDED: 'Storage limit exceeded.',
|
|
96
|
+
ARTIFACT_LIMIT_EXCEEDED: 'Artifact count limit exceeded.',
|
|
97
|
+
NOT_FOUND: 'The requested resource was not found.',
|
|
98
|
+
ARCHIVED: 'The requested resource has been archived.',
|
|
99
|
+
INVALID_TYPE: 'Invalid event type.',
|
|
100
|
+
MISSION_NOT_FOUND: 'The specified mission was not found.',
|
|
101
|
+
SANDBOX_VIOLATION: 'Capability execution violated sandbox constraints.',
|
|
102
|
+
PARENT_INSUFFICIENT: 'Parent mission has insufficient budget.',
|
|
103
|
+
HUMAN_APPROVAL_REQUIRED: 'Human approval is required for this budget request.',
|
|
104
|
+
JUSTIFICATION_REQUIRED: 'A justification is required for this budget request.',
|
|
105
|
+
TASKS_INCOMPLETE: 'Cannot submit result: tasks are incomplete.',
|
|
106
|
+
NO_ARTIFACTS: 'Cannot submit result: no artifacts produced.',
|
|
107
|
+
CHECKPOINT_EXPIRED: 'The checkpoint has expired.',
|
|
108
|
+
INVALID_PLAN: 'The plan revision is invalid.',
|
|
109
|
+
// Phase 0A governance error codes
|
|
110
|
+
LIFECYCLE_INVALID_TRANSITION: 'Invalid lifecycle state transition.',
|
|
111
|
+
SUSPENSION_ACTIVE: 'Operation is blocked by an active suspension.',
|
|
112
|
+
SUSPENSION_NOT_FOUND: 'The referenced suspension record was not found.',
|
|
113
|
+
AUTHORITY_INSUFFICIENT: 'Insufficient authority for this operation.',
|
|
114
|
+
AUTHORITY_SCOPE_EXCEEDED: 'Action exceeds the caller\'s authority scope.',
|
|
115
|
+
HARD_POLICY_VIOLATION: 'A hard policy constraint was violated.',
|
|
116
|
+
SOFT_POLICY_VIOLATION: 'A soft policy constraint was violated.',
|
|
117
|
+
DECISION_CONFLICT: 'A conflicting supervisor decision exists.',
|
|
118
|
+
CONTRACT_UNSATISFIED: 'Mission contract criteria have not been met.',
|
|
119
|
+
HANDOFF_REJECTED: 'The handoff was rejected by the delegate.',
|
|
120
|
+
ATTEMPT_EXHAUSTED: 'Maximum retry attempts have been exhausted.',
|
|
121
|
+
TRACE_EMISSION_FAILED: 'Trace event emission failed.',
|
|
122
|
+
EVAL_GATE_FAILED: 'Evaluation gate blocked completion.',
|
|
123
|
+
MANIFEST_TRUST_VIOLATION: 'Capability manifest trust tier violation.',
|
|
124
|
+
RESUME_TOKEN_INVALID: 'The resume token is invalid or has been consumed.',
|
|
125
|
+
RESUME_TOKEN_EXPIRED: 'The resume token has expired.',
|
|
126
|
+
IDEMPOTENCY_CONFLICT: 'Same idempotency key with different payload.',
|
|
127
|
+
};
|
|
128
|
+
// ============================================================================
|
|
129
|
+
// Retryability Classification
|
|
130
|
+
// ============================================================================
|
|
131
|
+
/**
|
|
132
|
+
* Error codes that indicate the operation may succeed on retry.
|
|
133
|
+
* Derived from the nature of each error per spec sections.
|
|
134
|
+
*
|
|
135
|
+
* S36: RATE_LIMITED is retryable after cooldown.
|
|
136
|
+
* S27: TIMEOUT is retryable (transient).
|
|
137
|
+
* FM-06: PROVIDER_UNAVAILABLE is retryable (provider may recover).
|
|
138
|
+
* S17: WORKER_UNAVAILABLE is retryable (worker may become free).
|
|
139
|
+
*/
|
|
140
|
+
const RETRYABLE_CODES = new Set([
|
|
141
|
+
'RATE_LIMITED',
|
|
142
|
+
'TIMEOUT',
|
|
143
|
+
'PROVIDER_UNAVAILABLE',
|
|
144
|
+
'WORKER_UNAVAILABLE',
|
|
145
|
+
]);
|
|
146
|
+
// ============================================================================
|
|
147
|
+
// LimenError Class
|
|
148
|
+
// ============================================================================
|
|
149
|
+
/**
|
|
150
|
+
* S39 IP-4, SD-02: Public API error.
|
|
151
|
+
* Extends Error for standard catch semantics.
|
|
152
|
+
* Internal details (stack traces, SQL errors, file paths) are NEVER exposed.
|
|
153
|
+
*
|
|
154
|
+
* All public API methods throw this type. Internal Result<T> errors are mapped
|
|
155
|
+
* to LimenError at the API boundary (FPD-3).
|
|
156
|
+
*
|
|
157
|
+
* S ref: §6.13, S39 IP-4, SD-02
|
|
158
|
+
*/
|
|
159
|
+
export class LimenError extends Error {
|
|
160
|
+
code;
|
|
161
|
+
retryable;
|
|
162
|
+
cooldownMs;
|
|
163
|
+
suggestion;
|
|
164
|
+
/** Phase 0A: Governance violations that triggered this error (BC-080) */
|
|
165
|
+
violations;
|
|
166
|
+
constructor(code, message, options) {
|
|
167
|
+
// S39 IP-4: Sanitize message to remove any internal details
|
|
168
|
+
const safeMessage = sanitizeMessage(code, message);
|
|
169
|
+
super(safeMessage);
|
|
170
|
+
this.name = 'LimenError';
|
|
171
|
+
this.code = code;
|
|
172
|
+
this.message = safeMessage;
|
|
173
|
+
this.retryable = RETRYABLE_CODES.has(code);
|
|
174
|
+
if (options?.cooldownMs !== undefined) {
|
|
175
|
+
this.cooldownMs = options.cooldownMs;
|
|
176
|
+
}
|
|
177
|
+
if (options?.suggestion !== undefined) {
|
|
178
|
+
this.suggestion = options.suggestion;
|
|
179
|
+
}
|
|
180
|
+
if (options?.violations !== undefined) {
|
|
181
|
+
this.violations = options.violations;
|
|
182
|
+
}
|
|
183
|
+
// S39 IP-4: Redact the stack trace. Internal file paths must never leak.
|
|
184
|
+
// Replace with a minimal, non-revealing stack.
|
|
185
|
+
this.stack = `LimenError [${code}]: ${safeMessage}`;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// ============================================================================
|
|
189
|
+
// Error Mapping Utilities
|
|
190
|
+
// ============================================================================
|
|
191
|
+
/**
|
|
192
|
+
* S39 IP-4: Known kernel error codes mapped to public LimenErrorCode.
|
|
193
|
+
* L1/L1.5/L2 use KernelError with string codes.
|
|
194
|
+
* At the API boundary, we map to the LimenErrorCode union.
|
|
195
|
+
*
|
|
196
|
+
* Mapping strategy:
|
|
197
|
+
* - Exact match: kernel code IS a LimenErrorCode -> pass through
|
|
198
|
+
* - Common internal patterns -> map to closest LimenErrorCode
|
|
199
|
+
* - Unknown -> ENGINE_UNHEALTHY (safe catch-all, never exposes internals)
|
|
200
|
+
*/
|
|
201
|
+
const KERNEL_CODE_MAP = {
|
|
202
|
+
// Direct matches (kernel codes that ARE LimenErrorCodes)
|
|
203
|
+
BUDGET_EXCEEDED: 'BUDGET_EXCEEDED',
|
|
204
|
+
DEPTH_EXCEEDED: 'DEPTH_EXCEEDED',
|
|
205
|
+
CHILDREN_EXCEEDED: 'CHILDREN_EXCEEDED',
|
|
206
|
+
TREE_SIZE_EXCEEDED: 'TREE_SIZE_EXCEEDED',
|
|
207
|
+
CAPABILITY_VIOLATION: 'CAPABILITY_VIOLATION',
|
|
208
|
+
AGENT_NOT_FOUND: 'AGENT_NOT_FOUND',
|
|
209
|
+
DEADLINE_EXCEEDED: 'DEADLINE_EXCEEDED',
|
|
210
|
+
DELEGATION_CYCLE: 'DELEGATION_CYCLE',
|
|
211
|
+
CYCLE_DETECTED: 'CYCLE_DETECTED',
|
|
212
|
+
TASK_LIMIT_EXCEEDED: 'TASK_LIMIT_EXCEEDED',
|
|
213
|
+
INVALID_DEPENDENCY: 'INVALID_DEPENDENCY',
|
|
214
|
+
MISSION_NOT_ACTIVE: 'MISSION_NOT_ACTIVE',
|
|
215
|
+
PLAN_REVISION_LIMIT: 'PLAN_REVISION_LIMIT',
|
|
216
|
+
DEPENDENCIES_UNMET: 'DEPENDENCIES_UNMET',
|
|
217
|
+
CAPABILITY_DENIED: 'CAPABILITY_DENIED',
|
|
218
|
+
WORKER_UNAVAILABLE: 'WORKER_UNAVAILABLE',
|
|
219
|
+
TASK_NOT_PENDING: 'TASK_NOT_PENDING',
|
|
220
|
+
STORAGE_EXCEEDED: 'STORAGE_EXCEEDED',
|
|
221
|
+
ARTIFACT_LIMIT_EXCEEDED: 'ARTIFACT_LIMIT_EXCEEDED',
|
|
222
|
+
NOT_FOUND: 'NOT_FOUND',
|
|
223
|
+
ARCHIVED: 'ARCHIVED',
|
|
224
|
+
INVALID_TYPE: 'INVALID_TYPE',
|
|
225
|
+
MISSION_NOT_FOUND: 'MISSION_NOT_FOUND',
|
|
226
|
+
SANDBOX_VIOLATION: 'SANDBOX_VIOLATION',
|
|
227
|
+
PARENT_INSUFFICIENT: 'PARENT_INSUFFICIENT',
|
|
228
|
+
HUMAN_APPROVAL_REQUIRED: 'HUMAN_APPROVAL_REQUIRED',
|
|
229
|
+
JUSTIFICATION_REQUIRED: 'JUSTIFICATION_REQUIRED',
|
|
230
|
+
TASKS_INCOMPLETE: 'TASKS_INCOMPLETE',
|
|
231
|
+
NO_ARTIFACTS: 'NO_ARTIFACTS',
|
|
232
|
+
CHECKPOINT_EXPIRED: 'CHECKPOINT_EXPIRED',
|
|
233
|
+
INVALID_PLAN: 'INVALID_PLAN',
|
|
234
|
+
// Kernel-specific codes mapped to API equivalents
|
|
235
|
+
UNAUTHORIZED: 'UNAUTHORIZED',
|
|
236
|
+
PERMISSION_DENIED: 'UNAUTHORIZED',
|
|
237
|
+
RBAC_DENIED: 'UNAUTHORIZED',
|
|
238
|
+
RATE_LIMITED: 'RATE_LIMITED',
|
|
239
|
+
RATE_LIMIT_EXCEEDED: 'RATE_LIMITED',
|
|
240
|
+
PROVIDER_UNAVAILABLE: 'PROVIDER_UNAVAILABLE',
|
|
241
|
+
PROVIDER_ERROR: 'PROVIDER_UNAVAILABLE',
|
|
242
|
+
PROVIDER_TIMEOUT: 'TIMEOUT',
|
|
243
|
+
SESSION_NOT_FOUND: 'SESSION_NOT_FOUND',
|
|
244
|
+
SESSION_EXPIRED: 'SESSION_NOT_FOUND',
|
|
245
|
+
INVALID_CONFIG: 'INVALID_CONFIG',
|
|
246
|
+
INVALID_INPUT: 'INVALID_INPUT',
|
|
247
|
+
SCHEMA_VALIDATION_FAILED: 'SCHEMA_VALIDATION_FAILED',
|
|
248
|
+
// Phase 0A governance code mappings
|
|
249
|
+
LIFECYCLE_INVALID_TRANSITION: 'LIFECYCLE_INVALID_TRANSITION',
|
|
250
|
+
SUSPENSION_ACTIVE: 'SUSPENSION_ACTIVE',
|
|
251
|
+
SUSPENSION_NOT_FOUND: 'SUSPENSION_NOT_FOUND',
|
|
252
|
+
AUTHORITY_INSUFFICIENT: 'AUTHORITY_INSUFFICIENT',
|
|
253
|
+
AUTHORITY_SCOPE_EXCEEDED: 'AUTHORITY_SCOPE_EXCEEDED',
|
|
254
|
+
HARD_POLICY_VIOLATION: 'HARD_POLICY_VIOLATION',
|
|
255
|
+
SOFT_POLICY_VIOLATION: 'SOFT_POLICY_VIOLATION',
|
|
256
|
+
DECISION_CONFLICT: 'DECISION_CONFLICT',
|
|
257
|
+
CONTRACT_UNSATISFIED: 'CONTRACT_UNSATISFIED',
|
|
258
|
+
HANDOFF_REJECTED: 'HANDOFF_REJECTED',
|
|
259
|
+
ATTEMPT_EXHAUSTED: 'ATTEMPT_EXHAUSTED',
|
|
260
|
+
TRACE_EMISSION_FAILED: 'TRACE_EMISSION_FAILED',
|
|
261
|
+
EVAL_GATE_FAILED: 'EVAL_GATE_FAILED',
|
|
262
|
+
MANIFEST_TRUST_VIOLATION: 'MANIFEST_TRUST_VIOLATION',
|
|
263
|
+
RESUME_TOKEN_INVALID: 'RESUME_TOKEN_INVALID',
|
|
264
|
+
RESUME_TOKEN_EXPIRED: 'RESUME_TOKEN_EXPIRED',
|
|
265
|
+
IDEMPOTENCY_CONFLICT: 'IDEMPOTENCY_CONFLICT',
|
|
266
|
+
};
|
|
267
|
+
/**
|
|
268
|
+
* S39 IP-4, FPD-3: Map a kernel/orchestration Result<T> error to a LimenError.
|
|
269
|
+
*
|
|
270
|
+
* This is the API boundary error transformation.
|
|
271
|
+
* Internal KernelError details are redacted. Only the machine-readable code
|
|
272
|
+
* and a sanitized message are exposed to consumers.
|
|
273
|
+
*
|
|
274
|
+
* @param error - The internal KernelError from L1/L1.5/L2
|
|
275
|
+
* @returns LimenError ready to throw to consumers
|
|
276
|
+
*/
|
|
277
|
+
export function mapKernelError(error) {
|
|
278
|
+
const code = KERNEL_CODE_MAP[error.code] ?? 'ENGINE_UNHEALTHY';
|
|
279
|
+
const message = sanitizeMessage(code, error.message);
|
|
280
|
+
return new LimenError(code, message);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* S39 IP-4, SD-02: Unwrap a Result<T> or throw LimenError.
|
|
284
|
+
*
|
|
285
|
+
* Convenience function for the common pattern:
|
|
286
|
+
* const result = await orchestration.someCall(ctx, input);
|
|
287
|
+
* const value = unwrapResult(result);
|
|
288
|
+
*
|
|
289
|
+
* If the Result is ok, returns the value.
|
|
290
|
+
* If the Result is not ok, maps the KernelError and throws LimenError.
|
|
291
|
+
*
|
|
292
|
+
* @param result - The internal Result<T> from L1/L1.5/L2
|
|
293
|
+
* @returns The unwrapped value of type T
|
|
294
|
+
* @throws LimenError if result.ok is false
|
|
295
|
+
*/
|
|
296
|
+
export function unwrapResult(result) {
|
|
297
|
+
if (result.ok) {
|
|
298
|
+
return result.value;
|
|
299
|
+
}
|
|
300
|
+
throw mapKernelError(result.error);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* S39 IP-4: Guard function that ensures any thrown error is a LimenError.
|
|
304
|
+
*
|
|
305
|
+
* If the caught error is already a LimenError, re-throw as-is.
|
|
306
|
+
* If it's a standard Error, map to ENGINE_UNHEALTHY with redacted message.
|
|
307
|
+
* If it's something else entirely, map to ENGINE_UNHEALTHY with generic message.
|
|
308
|
+
*
|
|
309
|
+
* Usage:
|
|
310
|
+
* try { ... } catch (e) { throw ensureLimenError(e); }
|
|
311
|
+
*
|
|
312
|
+
* This guarantees SD-02: all public methods throw LimenError, never raw errors.
|
|
313
|
+
*/
|
|
314
|
+
export function ensureLimenError(error) {
|
|
315
|
+
if (error instanceof LimenError) {
|
|
316
|
+
return error;
|
|
317
|
+
}
|
|
318
|
+
if (error instanceof Error) {
|
|
319
|
+
// S39 IP-4: Do not expose the original error message -- it may contain internals
|
|
320
|
+
return new LimenError('ENGINE_UNHEALTHY', 'An internal error occurred.');
|
|
321
|
+
}
|
|
322
|
+
return new LimenError('ENGINE_UNHEALTHY', 'An internal error occurred.');
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=limen_error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limen_error.js","sourceRoot":"","sources":["../../../src/api/errors/limen_error.ts"],"names":[],"mappings":"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"}
|