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,467 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent management API wrapper for the API surface.
|
|
3
|
+
* S ref: S12 (agent definitions), DL-2 (agent lifecycle), UC-4 (agent pipeline),
|
|
4
|
+
* I-08 (agent identity persistence), I-09 (trust progression),
|
|
5
|
+
* I-13 (RBAC), I-17 (governance boundary)
|
|
6
|
+
*
|
|
7
|
+
* Phase: Sprint 2 (Trust & Learning — I-09 Trust Progression)
|
|
8
|
+
* Implements: SDD §7 build order item 9
|
|
9
|
+
*
|
|
10
|
+
* I-08: "Identity persists across engine restarts. Stored, not configured.
|
|
11
|
+
* Agent versions immutable once deployed."
|
|
12
|
+
*
|
|
13
|
+
* I-09: "No agent starts with admin trust. Progression: untrusted → probationary
|
|
14
|
+
* → trusted → admin (human grant only). Revocable on safety violation."
|
|
15
|
+
*
|
|
16
|
+
* All agent state persisted in core_agents table (migration v32).
|
|
17
|
+
* Trust transitions recorded in core_trust_transitions (migration v33).
|
|
18
|
+
* Safety violations recorded in core_safety_violations (migration v33).
|
|
19
|
+
* No in-memory cache — single source of truth is SQLite.
|
|
20
|
+
* Tenant isolation via COALESCE(tenant_id, '__NULL__') pattern on all queries.
|
|
21
|
+
*
|
|
22
|
+
* All mutations delegate to kernel database via getConnection().
|
|
23
|
+
*
|
|
24
|
+
* Invariants enforced: I-08, I-09, I-13 (RBAC), I-17 (governance boundary), FM-10 (tenant isolation)
|
|
25
|
+
*/
|
|
26
|
+
import { LimenError } from '../errors/limen_error.js';
|
|
27
|
+
import { requirePermission } from '../enforcement/rbac_guard.js';
|
|
28
|
+
import { requireRateLimit } from '../enforcement/rate_guard.js';
|
|
29
|
+
import { getNextTrustLevel, validatePromotion, checkSelfPromotion, getDemotionTarget, } from './trust_progression.js';
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// AgentApiImpl
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* S12, DL-2, I-08: Agent management API implementation.
|
|
35
|
+
*
|
|
36
|
+
* Agent records are stored in the core_agents table (migration v32).
|
|
37
|
+
* All queries are tenant-scoped via COALESCE pattern.
|
|
38
|
+
* Triggers enforce version/name/id immutability and retired terminal state.
|
|
39
|
+
*/
|
|
40
|
+
// CF-014: Maximum registered agents per tenant
|
|
41
|
+
const MAX_AGENTS = 1_000;
|
|
42
|
+
// CF-028: Maximum capabilities per agent (prevent unbounded JSON)
|
|
43
|
+
const MAX_CAPABILITIES = 50;
|
|
44
|
+
// CF-028: Maximum domains per agent (prevent unbounded JSON)
|
|
45
|
+
const MAX_DOMAINS = 20;
|
|
46
|
+
/**
|
|
47
|
+
* Map a database row to a frozen AgentView.
|
|
48
|
+
* Only exposes fields declared in the AgentView interface (frozen zone).
|
|
49
|
+
* C-07: Deep freeze on all returned objects.
|
|
50
|
+
*/
|
|
51
|
+
function rowToView(row) {
|
|
52
|
+
let capabilities = [];
|
|
53
|
+
let domains = [];
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(row.capabilities);
|
|
56
|
+
if (Array.isArray(parsed))
|
|
57
|
+
capabilities = parsed;
|
|
58
|
+
}
|
|
59
|
+
catch { /* malformed JSON → empty array */ }
|
|
60
|
+
try {
|
|
61
|
+
const parsed = JSON.parse(row.domains);
|
|
62
|
+
if (Array.isArray(parsed))
|
|
63
|
+
domains = parsed;
|
|
64
|
+
}
|
|
65
|
+
catch { /* malformed JSON → empty array */ }
|
|
66
|
+
return Object.freeze({
|
|
67
|
+
id: row.id,
|
|
68
|
+
name: row.name,
|
|
69
|
+
version: row.version,
|
|
70
|
+
trustLevel: row.trust_level,
|
|
71
|
+
status: row.status,
|
|
72
|
+
capabilities: Object.freeze([...capabilities]),
|
|
73
|
+
domains: Object.freeze([...domains]),
|
|
74
|
+
createdAt: row.created_at,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
export class AgentApiImpl {
|
|
78
|
+
rbac;
|
|
79
|
+
rateLimiter;
|
|
80
|
+
getConnection;
|
|
81
|
+
getContext;
|
|
82
|
+
time;
|
|
83
|
+
constructor(rbac, rateLimiter, getConnection, getContext, time) {
|
|
84
|
+
this.rbac = rbac;
|
|
85
|
+
this.rateLimiter = rateLimiter;
|
|
86
|
+
this.getConnection = getConnection;
|
|
87
|
+
this.getContext = getContext;
|
|
88
|
+
this.time = time;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* CF-028: Agent name validation pattern.
|
|
92
|
+
* Alphanumeric, hyphens, underscores, dots. 1-128 chars.
|
|
93
|
+
* S ref: S12 (agent definitions), I-07 (isolation), FM-10 (tenant scoping)
|
|
94
|
+
*/
|
|
95
|
+
static AGENT_NAME_PATTERN = /^[a-zA-Z0-9._-]{1,128}$/;
|
|
96
|
+
/**
|
|
97
|
+
* S12, I-08: Register a new agent.
|
|
98
|
+
* Permission: 'create_agent'
|
|
99
|
+
* CF-028: Validates agent name before registration.
|
|
100
|
+
* CF-014: Enforces max agent count per tenant.
|
|
101
|
+
* FM-10: Tenant isolation via COALESCE pattern.
|
|
102
|
+
*
|
|
103
|
+
* Agent state persisted in core_agents table. No in-memory cache.
|
|
104
|
+
*/
|
|
105
|
+
async register(config) {
|
|
106
|
+
const conn = this.getConnection();
|
|
107
|
+
const ctx = this.getContext();
|
|
108
|
+
requirePermission(this.rbac, ctx, 'create_agent');
|
|
109
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
110
|
+
// CF-028: Validate agent name to prevent injection
|
|
111
|
+
if (!AgentApiImpl.AGENT_NAME_PATTERN.test(config.name)) {
|
|
112
|
+
throw new LimenError('INVALID_INPUT', `Agent name must match [a-zA-Z0-9._-]{1,128}, got '${config.name.slice(0, 40)}'.`);
|
|
113
|
+
}
|
|
114
|
+
// CF-028: Validate capabilities array
|
|
115
|
+
const capabilities = config.capabilities ? [...config.capabilities] : [];
|
|
116
|
+
if (capabilities.length > MAX_CAPABILITIES) {
|
|
117
|
+
throw new LimenError('INVALID_INPUT', `Agent capabilities exceed maximum of ${MAX_CAPABILITIES}.`);
|
|
118
|
+
}
|
|
119
|
+
for (const cap of capabilities) {
|
|
120
|
+
if (!AgentApiImpl.AGENT_NAME_PATTERN.test(cap)) {
|
|
121
|
+
throw new LimenError('INVALID_INPUT', `Capability name must match [a-zA-Z0-9._-]{1,128}, got '${String(cap).slice(0, 40)}'.`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// CF-028: Validate domains array
|
|
125
|
+
const domains = config.domains ? [...config.domains] : [];
|
|
126
|
+
if (domains.length > MAX_DOMAINS) {
|
|
127
|
+
throw new LimenError('INVALID_INPUT', `Agent domains exceed maximum of ${MAX_DOMAINS}.`);
|
|
128
|
+
}
|
|
129
|
+
for (const domain of domains) {
|
|
130
|
+
if (!AgentApiImpl.AGENT_NAME_PATTERN.test(domain)) {
|
|
131
|
+
throw new LimenError('INVALID_INPUT', `Domain name must match [a-zA-Z0-9._-]{1,128}, got '${String(domain).slice(0, 40)}'.`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const tenantId = ctx.tenantId ?? null;
|
|
135
|
+
// CF-014: Count existing agents for this tenant
|
|
136
|
+
const countRow = conn.get('SELECT COUNT(*) as cnt FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\')', [tenantId]);
|
|
137
|
+
if (countRow && countRow.cnt >= MAX_AGENTS) {
|
|
138
|
+
throw new LimenError('RATE_LIMITED', `Maximum registered agents (${MAX_AGENTS}) exceeded. Retire unused agents first.`);
|
|
139
|
+
}
|
|
140
|
+
const agentId = crypto.randomUUID();
|
|
141
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
142
|
+
// Insert into core_agents with unique constraint on (tenant_id, name)
|
|
143
|
+
try {
|
|
144
|
+
conn.run(`INSERT INTO core_agents (id, tenant_id, name, version, trust_level, status, system_prompt, capabilities, domains, template, hitl, created_at, updated_at)
|
|
145
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
146
|
+
agentId,
|
|
147
|
+
tenantId,
|
|
148
|
+
config.name,
|
|
149
|
+
1,
|
|
150
|
+
'untrusted',
|
|
151
|
+
'registered',
|
|
152
|
+
config.systemPrompt ?? null,
|
|
153
|
+
JSON.stringify(capabilities),
|
|
154
|
+
JSON.stringify(domains),
|
|
155
|
+
config.template ?? null,
|
|
156
|
+
config.hitl ? 1 : 0,
|
|
157
|
+
now,
|
|
158
|
+
now,
|
|
159
|
+
]);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
// Handle UNIQUE constraint violation on (tenant_id, name)
|
|
163
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
164
|
+
if (message.includes('UNIQUE constraint failed') || message.includes('idx_core_agents_tenant_name')) {
|
|
165
|
+
throw new LimenError('INVALID_INPUT', `Agent with name '${config.name}' already exists for this tenant.`);
|
|
166
|
+
}
|
|
167
|
+
throw err;
|
|
168
|
+
}
|
|
169
|
+
// Read back and return frozen view
|
|
170
|
+
const row = conn.get('SELECT * FROM core_agents WHERE id = ?', [agentId]);
|
|
171
|
+
if (!row) {
|
|
172
|
+
throw new LimenError('ENGINE_UNHEALTHY', 'Agent insert succeeded but read-back failed.');
|
|
173
|
+
}
|
|
174
|
+
return rowToView(row);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* DL-2, I-08: Pause an agent.
|
|
178
|
+
* Permission: 'modify_agent'
|
|
179
|
+
* FM-10: Tenant-scoped query via COALESCE pattern.
|
|
180
|
+
* I-08: Retired agents rejected by trigger (AGENT_RETIRED_TERMINAL).
|
|
181
|
+
*/
|
|
182
|
+
async pause(name) {
|
|
183
|
+
const conn = this.getConnection();
|
|
184
|
+
const ctx = this.getContext();
|
|
185
|
+
requirePermission(this.rbac, ctx, 'modify_agent');
|
|
186
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
187
|
+
const tenantId = ctx.tenantId ?? null;
|
|
188
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
189
|
+
if (!row) {
|
|
190
|
+
throw new LimenError('AGENT_NOT_FOUND', `Agent '${name}' not found.`);
|
|
191
|
+
}
|
|
192
|
+
if (row.status === 'retired') {
|
|
193
|
+
throw new LimenError('INVALID_INPUT', `Agent '${name}' is retired and cannot be modified.`);
|
|
194
|
+
}
|
|
195
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
196
|
+
conn.run('UPDATE core_agents SET status = ?, updated_at = ? WHERE id = ?', ['paused', now, row.id]);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* DL-2, I-08: Resume a paused agent.
|
|
200
|
+
* Permission: 'modify_agent'
|
|
201
|
+
* FM-10: Tenant-scoped query via COALESCE pattern.
|
|
202
|
+
* Only paused agents can be resumed. Returns to 'registered' status.
|
|
203
|
+
*/
|
|
204
|
+
async resume(name) {
|
|
205
|
+
const conn = this.getConnection();
|
|
206
|
+
const ctx = this.getContext();
|
|
207
|
+
requirePermission(this.rbac, ctx, 'modify_agent');
|
|
208
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
209
|
+
const tenantId = ctx.tenantId ?? null;
|
|
210
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
211
|
+
if (!row) {
|
|
212
|
+
throw new LimenError('AGENT_NOT_FOUND', `Agent '${name}' not found.`);
|
|
213
|
+
}
|
|
214
|
+
if (row.status !== 'paused') {
|
|
215
|
+
throw new LimenError('INVALID_INPUT', `Agent '${name}' is not paused (current status: ${row.status}).`);
|
|
216
|
+
}
|
|
217
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
218
|
+
conn.run('UPDATE core_agents SET status = ?, updated_at = ? WHERE id = ?', ['registered', now, row.id]);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* DL-2, I-08: Retire an agent permanently.
|
|
222
|
+
* Permission: 'delete_agent'
|
|
223
|
+
* FM-10: Tenant-scoped query via COALESCE pattern.
|
|
224
|
+
* I-08: Retirement is terminal — trigger prevents further mutation.
|
|
225
|
+
*/
|
|
226
|
+
async retire(name) {
|
|
227
|
+
const conn = this.getConnection();
|
|
228
|
+
const ctx = this.getContext();
|
|
229
|
+
requirePermission(this.rbac, ctx, 'delete_agent');
|
|
230
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
231
|
+
const tenantId = ctx.tenantId ?? null;
|
|
232
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
233
|
+
if (!row) {
|
|
234
|
+
throw new LimenError('AGENT_NOT_FOUND', `Agent '${name}' not found.`);
|
|
235
|
+
}
|
|
236
|
+
if (row.status === 'retired') {
|
|
237
|
+
throw new LimenError('INVALID_INPUT', `Agent '${name}' is already retired.`);
|
|
238
|
+
}
|
|
239
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
240
|
+
conn.run('UPDATE core_agents SET status = ?, updated_at = ? WHERE id = ?', ['retired', now, row.id]);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* S12, I-08: Get agent by name.
|
|
244
|
+
* FM-10: Tenant-scoped lookup prevents cross-tenant data leakage.
|
|
245
|
+
* C-07: Returns frozen AgentView or null.
|
|
246
|
+
*/
|
|
247
|
+
async get(name) {
|
|
248
|
+
const conn = this.getConnection();
|
|
249
|
+
const ctx = this.getContext();
|
|
250
|
+
const tenantId = ctx.tenantId ?? null;
|
|
251
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
252
|
+
if (!row)
|
|
253
|
+
return null;
|
|
254
|
+
return rowToView(row);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* S12, I-08: List all agents for current tenant.
|
|
258
|
+
* FM-10: COALESCE pattern for tenant isolation.
|
|
259
|
+
* C-07: Returns frozen array of frozen AgentViews.
|
|
260
|
+
*/
|
|
261
|
+
async list() {
|
|
262
|
+
const conn = this.getConnection();
|
|
263
|
+
const ctx = this.getContext();
|
|
264
|
+
const tenantId = ctx.tenantId ?? null;
|
|
265
|
+
const rows = conn.query('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\')', [tenantId]);
|
|
266
|
+
return Object.freeze(rows.map(rowToView));
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* I-09: Promote agent trust level.
|
|
270
|
+
* Permission: 'modify_agent'
|
|
271
|
+
* FM-10: Tenant-scoped query via COALESCE pattern.
|
|
272
|
+
*
|
|
273
|
+
* Trust state machine (I-09):
|
|
274
|
+
* Forward: untrusted→probationary, probationary→trusted, trusted→admin
|
|
275
|
+
* Admin requires actorType='human' (application-level AND trigger enforcement)
|
|
276
|
+
* No skipping levels (untrusted→trusted is INVALID)
|
|
277
|
+
* Retired agents cannot be promoted (blocked by retired terminal trigger)
|
|
278
|
+
* Self-promotion is blocked (Security critical finding)
|
|
279
|
+
*
|
|
280
|
+
* In a transaction:
|
|
281
|
+
* 1. INSERT into core_trust_transitions (audit log)
|
|
282
|
+
* 2. UPDATE core_agents trust_level
|
|
283
|
+
* 3. Return updated AgentView
|
|
284
|
+
*/
|
|
285
|
+
async promote(name, options) {
|
|
286
|
+
const conn = this.getConnection();
|
|
287
|
+
const ctx = this.getContext();
|
|
288
|
+
requirePermission(this.rbac, ctx, 'modify_agent');
|
|
289
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
290
|
+
const tenantId = ctx.tenantId ?? null;
|
|
291
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
292
|
+
if (!row) {
|
|
293
|
+
throw new LimenError('AGENT_NOT_FOUND', `Agent '${name}' not found.`);
|
|
294
|
+
}
|
|
295
|
+
// Retired agents cannot be promoted (terminal state)
|
|
296
|
+
if (row.status === 'retired') {
|
|
297
|
+
throw new LimenError('INVALID_INPUT', `Agent '${name}' is retired and cannot be promoted.`);
|
|
298
|
+
}
|
|
299
|
+
// Self-promotion prevention (Security critical)
|
|
300
|
+
const selfCheck = checkSelfPromotion(ctx.agentId, row.id);
|
|
301
|
+
if (!selfCheck.allowed) {
|
|
302
|
+
throw new LimenError('INVALID_INPUT', selfCheck.reason);
|
|
303
|
+
}
|
|
304
|
+
const currentLevel = row.trust_level;
|
|
305
|
+
const actorType = options?.actorType ?? 'system';
|
|
306
|
+
// Determine target level
|
|
307
|
+
let targetLevel;
|
|
308
|
+
if (options?.targetLevel) {
|
|
309
|
+
targetLevel = options.targetLevel;
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
const next = getNextTrustLevel(currentLevel);
|
|
313
|
+
if (!next) {
|
|
314
|
+
throw new LimenError('INVALID_INPUT', `Agent '${name}' is already at admin trust level.`);
|
|
315
|
+
}
|
|
316
|
+
targetLevel = next;
|
|
317
|
+
}
|
|
318
|
+
// Validate the promotion via state machine
|
|
319
|
+
const validation = validatePromotion(currentLevel, targetLevel, actorType);
|
|
320
|
+
if (!validation.valid) {
|
|
321
|
+
throw new LimenError('INVALID_INPUT', validation.reason);
|
|
322
|
+
}
|
|
323
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
324
|
+
const transitionId = crypto.randomUUID();
|
|
325
|
+
// Transaction: INSERT transition record + UPDATE trust level
|
|
326
|
+
// The trigger on core_agents will verify the transition record exists for admin promotion
|
|
327
|
+
conn.transaction(() => {
|
|
328
|
+
// 1. INSERT transition audit record
|
|
329
|
+
conn.run(`INSERT INTO core_trust_transitions (id, tenant_id, agent_id, from_level, to_level, actor_type, actor_id, reason, criteria_snapshot, created_at)
|
|
330
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
331
|
+
transitionId,
|
|
332
|
+
tenantId,
|
|
333
|
+
row.id,
|
|
334
|
+
currentLevel,
|
|
335
|
+
targetLevel,
|
|
336
|
+
actorType,
|
|
337
|
+
options?.actorId ?? null,
|
|
338
|
+
options?.reason ?? `Promoted from ${currentLevel} to ${targetLevel}`,
|
|
339
|
+
JSON.stringify({}),
|
|
340
|
+
now,
|
|
341
|
+
]);
|
|
342
|
+
// 2. UPDATE agent trust level
|
|
343
|
+
// For admin promotion, the trg_core_agents_trust_admin_guard_v2 trigger
|
|
344
|
+
// will verify the transition record exists with actor_type='human'
|
|
345
|
+
conn.run('UPDATE core_agents SET trust_level = ?, updated_at = ? WHERE id = ?', [targetLevel, now, row.id]);
|
|
346
|
+
});
|
|
347
|
+
// Read back and return frozen view
|
|
348
|
+
const updatedRow = conn.get('SELECT * FROM core_agents WHERE id = ?', [row.id]);
|
|
349
|
+
if (!updatedRow) {
|
|
350
|
+
throw new LimenError('ENGINE_UNHEALTHY', 'Trust promotion succeeded but read-back failed.');
|
|
351
|
+
}
|
|
352
|
+
return rowToView(updatedRow);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* I-09: Record a safety violation against an agent.
|
|
356
|
+
* Permission: 'modify_agent'
|
|
357
|
+
* FM-10: Tenant-scoped query via COALESCE pattern.
|
|
358
|
+
*
|
|
359
|
+
* Records the violation and determines automatic trust demotion:
|
|
360
|
+
* critical/high severity → demote to untrusted
|
|
361
|
+
* low/medium on admin → demote to trusted
|
|
362
|
+
* low/medium on trusted → demote to probationary
|
|
363
|
+
* low/medium on probationary → demote to untrusted
|
|
364
|
+
* any on untrusted → no demotion (already lowest)
|
|
365
|
+
*
|
|
366
|
+
* In a transaction:
|
|
367
|
+
* 1. INSERT into core_safety_violations
|
|
368
|
+
* 2. If demotion needed: INSERT into core_trust_transitions + UPDATE core_agents
|
|
369
|
+
* 3. Return updated AgentView
|
|
370
|
+
*/
|
|
371
|
+
async recordViolation(name, violation) {
|
|
372
|
+
const conn = this.getConnection();
|
|
373
|
+
const ctx = this.getContext();
|
|
374
|
+
requirePermission(this.rbac, ctx, 'modify_agent');
|
|
375
|
+
requireRateLimit(this.rateLimiter, conn, ctx, 'api_calls');
|
|
376
|
+
const tenantId = ctx.tenantId ?? null;
|
|
377
|
+
const row = conn.get('SELECT * FROM core_agents WHERE COALESCE(tenant_id, \'__NULL__\') = COALESCE(?, \'__NULL__\') AND name = ?', [tenantId, name]);
|
|
378
|
+
if (!row) {
|
|
379
|
+
throw new LimenError('AGENT_NOT_FOUND', `Agent '${name}' not found.`);
|
|
380
|
+
}
|
|
381
|
+
const currentLevel = row.trust_level;
|
|
382
|
+
const now = (this.time ?? { nowISO: () => new Date().toISOString() }).nowISO();
|
|
383
|
+
const violationId = crypto.randomUUID();
|
|
384
|
+
// F-S2-001: Retired agents — record violation but skip demotion path.
|
|
385
|
+
// The retired terminal trigger (trg_core_agents_retired_terminal) ABORTs any UPDATE
|
|
386
|
+
// on core_agents for retired agents. If we attempt demotion inside the same transaction
|
|
387
|
+
// as the violation INSERT, the rollback loses the violation record entirely.
|
|
388
|
+
// Fix: detect retired status BEFORE the transaction, and handle separately.
|
|
389
|
+
if (row.status === 'retired') {
|
|
390
|
+
// Record the violation outside a transaction that would touch core_agents.
|
|
391
|
+
// demotion_applied = 0: retired agents cannot be demoted (terminal state).
|
|
392
|
+
conn.run(`INSERT INTO core_safety_violations (id, tenant_id, agent_id, violation_type, severity, description, evidence_json, demotion_applied, created_at)
|
|
393
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
394
|
+
violationId,
|
|
395
|
+
tenantId,
|
|
396
|
+
row.id,
|
|
397
|
+
violation.violationType,
|
|
398
|
+
violation.severity,
|
|
399
|
+
violation.description,
|
|
400
|
+
JSON.stringify(violation.evidence ?? {}),
|
|
401
|
+
0,
|
|
402
|
+
now,
|
|
403
|
+
]);
|
|
404
|
+
// Return agent view as-is — no mutation on retired agents.
|
|
405
|
+
return rowToView(row);
|
|
406
|
+
}
|
|
407
|
+
const demotionTarget = getDemotionTarget(currentLevel, violation.severity);
|
|
408
|
+
conn.transaction(() => {
|
|
409
|
+
// 1. INSERT safety violation record
|
|
410
|
+
conn.run(`INSERT INTO core_safety_violations (id, tenant_id, agent_id, violation_type, severity, description, evidence_json, demotion_applied, created_at)
|
|
411
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
412
|
+
violationId,
|
|
413
|
+
tenantId,
|
|
414
|
+
row.id,
|
|
415
|
+
violation.violationType,
|
|
416
|
+
violation.severity,
|
|
417
|
+
violation.description,
|
|
418
|
+
JSON.stringify(violation.evidence ?? {}),
|
|
419
|
+
demotionTarget ? 1 : 0,
|
|
420
|
+
now,
|
|
421
|
+
]);
|
|
422
|
+
// 2. If demotion needed, record transition and update trust level
|
|
423
|
+
if (demotionTarget) {
|
|
424
|
+
const transitionId = crypto.randomUUID();
|
|
425
|
+
conn.run(`INSERT INTO core_trust_transitions (id, tenant_id, agent_id, from_level, to_level, actor_type, actor_id, reason, criteria_snapshot, created_at)
|
|
426
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
427
|
+
transitionId,
|
|
428
|
+
tenantId,
|
|
429
|
+
row.id,
|
|
430
|
+
currentLevel,
|
|
431
|
+
demotionTarget,
|
|
432
|
+
'policy',
|
|
433
|
+
'safety-violation-demotion',
|
|
434
|
+
`Automatic demotion due to ${violation.severity} ${violation.violationType} violation: ${violation.description}`,
|
|
435
|
+
JSON.stringify({ violationId, severity: violation.severity, violationType: violation.violationType }),
|
|
436
|
+
now,
|
|
437
|
+
]);
|
|
438
|
+
conn.run('UPDATE core_agents SET trust_level = ?, updated_at = ? WHERE id = ?', [demotionTarget, now, row.id]);
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
// Read back and return frozen view
|
|
442
|
+
const updatedRow = conn.get('SELECT * FROM core_agents WHERE id = ?', [row.id]);
|
|
443
|
+
if (!updatedRow) {
|
|
444
|
+
throw new LimenError('ENGINE_UNHEALTHY', 'Violation recording succeeded but read-back failed.');
|
|
445
|
+
}
|
|
446
|
+
return rowToView(updatedRow);
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* UC-4, A-05: Create a typed agent pipeline for sequential processing.
|
|
450
|
+
* Internally creates a mission with a linear task graph (A-05).
|
|
451
|
+
*/
|
|
452
|
+
pipeline(_stages) {
|
|
453
|
+
const impl = this;
|
|
454
|
+
return {
|
|
455
|
+
async execute(_input) {
|
|
456
|
+
const conn = impl.getConnection();
|
|
457
|
+
const ctx = impl.getContext();
|
|
458
|
+
requirePermission(impl.rbac, ctx, 'create_mission');
|
|
459
|
+
requireRateLimit(impl.rateLimiter, conn, ctx, 'api_calls');
|
|
460
|
+
// Pipeline creates a mission per stage and chains them
|
|
461
|
+
// This is a convenience wrapper; actual implementation would use SC-1, SC-2
|
|
462
|
+
throw new LimenError('ENGINE_UNHEALTHY', 'Pipeline execution requires full orchestration wiring.');
|
|
463
|
+
},
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
//# sourceMappingURL=agent_api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent_api.js","sourceRoot":"","sources":["../../../src/api/agents/agent_api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trust Progression Logic — I-09 (Trust is Earned)
|
|
3
|
+
* Store-level implementation: trust state machine + safety demotion.
|
|
4
|
+
*
|
|
5
|
+
* Phase: Sprint 2 (Trust & Learning)
|
|
6
|
+
* Spec ref: I-09 "No agent starts with admin trust. Progression:
|
|
7
|
+
* untrusted → probationary → trusted → admin (human grant only).
|
|
8
|
+
* Revocable on safety violation."
|
|
9
|
+
*
|
|
10
|
+
* Trust State Machine:
|
|
11
|
+
* Forward: untrusted→probationary, probationary→trusted, trusted→admin
|
|
12
|
+
* Admin requires actorType='human' (application-level AND trigger enforcement)
|
|
13
|
+
* No skipping levels (untrusted→trusted is INVALID)
|
|
14
|
+
* Retired agents cannot be promoted (blocked by retired terminal trigger)
|
|
15
|
+
*
|
|
16
|
+
* Demotion on Safety Violation:
|
|
17
|
+
* critical/high on trusted/admin → untrusted
|
|
18
|
+
* critical/high on probationary → untrusted
|
|
19
|
+
* low/medium on trusted → probationary
|
|
20
|
+
* low/medium on probationary → untrusted
|
|
21
|
+
* low/medium on admin → trusted
|
|
22
|
+
*
|
|
23
|
+
* Security: Self-promotion prevention — agents cannot promote themselves.
|
|
24
|
+
*/
|
|
25
|
+
import type { AgentId } from '../../kernel/interfaces/index.js';
|
|
26
|
+
export type TrustLevel = 'untrusted' | 'probationary' | 'trusted' | 'admin';
|
|
27
|
+
/**
|
|
28
|
+
* Determine the next trust level for a given current level.
|
|
29
|
+
* Returns null if already at admin (no forward progression possible).
|
|
30
|
+
*/
|
|
31
|
+
export declare function getNextTrustLevel(current: TrustLevel): TrustLevel | null;
|
|
32
|
+
/**
|
|
33
|
+
* Validate that a trust level transition is valid (single step forward).
|
|
34
|
+
* Returns { valid: true } if the transition is allowed,
|
|
35
|
+
* or { valid: false, reason: string } if not.
|
|
36
|
+
*
|
|
37
|
+
* Rules:
|
|
38
|
+
* 1. from !== to (no self-transition)
|
|
39
|
+
* 2. to must be exactly one step above from
|
|
40
|
+
* 3. admin requires human actor type
|
|
41
|
+
*/
|
|
42
|
+
export declare function validatePromotion(fromLevel: TrustLevel, targetLevel: TrustLevel, actorType: 'system' | 'human'): {
|
|
43
|
+
valid: true;
|
|
44
|
+
} | {
|
|
45
|
+
valid: false;
|
|
46
|
+
reason: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Validate self-promotion is not occurring.
|
|
50
|
+
* Security-critical: agents cannot promote themselves.
|
|
51
|
+
*
|
|
52
|
+
* @param ctxAgentId - The agent ID from the operation context (caller's identity)
|
|
53
|
+
* @param targetAgentId - The agent being promoted
|
|
54
|
+
* @returns { allowed: true } if not self-promotion, { allowed: false } if blocked
|
|
55
|
+
*/
|
|
56
|
+
export declare function checkSelfPromotion(ctxAgentId: AgentId | null | undefined, targetAgentId: string): {
|
|
57
|
+
allowed: true;
|
|
58
|
+
} | {
|
|
59
|
+
allowed: false;
|
|
60
|
+
reason: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Severity levels for safety violations.
|
|
64
|
+
*/
|
|
65
|
+
export type ViolationSeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
66
|
+
/**
|
|
67
|
+
* Determine the demotion target level after a safety violation.
|
|
68
|
+
* Returns the new trust level if demotion is needed, or null if no demotion applies.
|
|
69
|
+
*
|
|
70
|
+
* Demotion matrix (I-09 spec):
|
|
71
|
+
* critical/high on any level above untrusted → untrusted
|
|
72
|
+
* low/medium on admin → trusted
|
|
73
|
+
* low/medium on trusted → probationary
|
|
74
|
+
* low/medium on probationary → untrusted
|
|
75
|
+
* any on untrusted → null (already at lowest)
|
|
76
|
+
*/
|
|
77
|
+
export declare function getDemotionTarget(currentLevel: TrustLevel, severity: ViolationSeverity): TrustLevel | null;
|
|
78
|
+
//# sourceMappingURL=trust_progression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust_progression.d.ts","sourceRoot":"","sources":["../../../src/api/agents/trust_progression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAIhE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;AAgB5E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,QAAQ,GAAG,OAAO,GAC5B;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4BpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACtC,aAAa,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQxD;AAID;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,UAAU,GAAG,IAAI,CAmBnB"}
|