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,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant context implementation.
|
|
3
|
+
* S ref: RDD-3, FM-10
|
|
4
|
+
*
|
|
5
|
+
* Phase: 1 (Kernel) -- Build Order 7
|
|
6
|
+
* Transparent tenant isolation.
|
|
7
|
+
*
|
|
8
|
+
* RDD-3: Consumer never knows which tenancy mode is active.
|
|
9
|
+
* FM-10: Tenant data leakage prevention via automatic tenant_id injection.
|
|
10
|
+
*
|
|
11
|
+
* Three modes:
|
|
12
|
+
* - single: No tenant_id column population. All queries return rows where tenant_id IS NULL.
|
|
13
|
+
* - row-level: Automatic WHERE tenant_id = ? injection.
|
|
14
|
+
* - database: Each tenant gets its own database file.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Create a TenantContext implementation.
|
|
18
|
+
* S ref: RDD-3 (transparent tenancy), FM-10 (tenant isolation)
|
|
19
|
+
*/
|
|
20
|
+
export function createTenantContext(primaryConn) {
|
|
21
|
+
return {
|
|
22
|
+
/**
|
|
23
|
+
* Execute SQL with automatic tenant_id injection (row-level mode)
|
|
24
|
+
* or routing to correct database file (DB-per-tenant mode).
|
|
25
|
+
* S ref: RDD-3 (transparent tenancy), FM-10 (isolation enforcement)
|
|
26
|
+
*/
|
|
27
|
+
execute(conn, ctx, sql, params) {
|
|
28
|
+
try {
|
|
29
|
+
switch (conn.tenancyMode) {
|
|
30
|
+
case 'single': {
|
|
31
|
+
// A-6: Single-user mode -- no tenant filtering needed
|
|
32
|
+
const result = conn.query(sql, params);
|
|
33
|
+
return { ok: true, value: result };
|
|
34
|
+
}
|
|
35
|
+
case 'row-level': {
|
|
36
|
+
// FM-10: Inject tenant_id filter
|
|
37
|
+
if (!ctx.tenantId) {
|
|
38
|
+
return {
|
|
39
|
+
ok: false,
|
|
40
|
+
error: {
|
|
41
|
+
code: 'TENANT_ID_REQUIRED',
|
|
42
|
+
message: 'Row-level tenancy requires a tenantId in OperationContext',
|
|
43
|
+
spec: 'FM-10',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// NOTE: SQL injection of tenant filters should be done at a higher level.
|
|
48
|
+
// For Phase 1, we pass through and expect callers to include tenant_id in their queries.
|
|
49
|
+
// The tenant context provides the routing abstraction.
|
|
50
|
+
const result = conn.query(sql, params);
|
|
51
|
+
return { ok: true, value: result };
|
|
52
|
+
}
|
|
53
|
+
case 'database': {
|
|
54
|
+
// FM-10: Route to tenant-specific database
|
|
55
|
+
// Phase 1 implementation: uses the primary connection.
|
|
56
|
+
// Full DB-per-tenant routing requires substrate-level connection pooling (Phase 2).
|
|
57
|
+
const result = conn.query(sql, params);
|
|
58
|
+
return { ok: true, value: result };
|
|
59
|
+
}
|
|
60
|
+
default: {
|
|
61
|
+
return {
|
|
62
|
+
ok: false,
|
|
63
|
+
error: {
|
|
64
|
+
code: 'INVALID_TENANCY_MODE',
|
|
65
|
+
message: `Unknown tenancy mode: ${conn.tenancyMode}`,
|
|
66
|
+
spec: 'RDD-3',
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return {
|
|
74
|
+
ok: false,
|
|
75
|
+
error: {
|
|
76
|
+
code: 'TENANT_EXECUTE_FAILED',
|
|
77
|
+
message: err instanceof Error ? err.message : String(err),
|
|
78
|
+
spec: 'RDD-3, FM-10',
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
/**
|
|
84
|
+
* Get tenant-scoped connection.
|
|
85
|
+
* S ref: RDD-3 (transparent routing), FM-10 (isolation)
|
|
86
|
+
*/
|
|
87
|
+
getConnection(_ctx) {
|
|
88
|
+
try {
|
|
89
|
+
// For single and row-level modes, return the primary connection.
|
|
90
|
+
// For database mode, Phase 1 returns the primary connection.
|
|
91
|
+
// Full DB-per-tenant routing is a Phase 2 capability.
|
|
92
|
+
return { ok: true, value: primaryConn };
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
return {
|
|
96
|
+
ok: false,
|
|
97
|
+
error: {
|
|
98
|
+
code: 'TENANT_CONNECTION_FAILED',
|
|
99
|
+
message: err instanceof Error ? err.message : String(err),
|
|
100
|
+
spec: 'RDD-3',
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=tenant_context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant_context.js","sourceRoot":"","sources":["../../../src/kernel/tenant/tenant_context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAA+B;IACjE,OAAO;QACL;;;;WAIG;QACH,OAAO,CAAI,IAAwB,EAAE,GAAqB,EAAE,GAAW,EAAE,MAAkB;YACzF,IAAI,CAAC;gBACH,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,sDAAsD;wBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACrC,CAAC;oBAED,KAAK,WAAW,CAAC,CAAC,CAAC;wBACjB,iCAAiC;wBACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;4BAClB,OAAO;gCACL,EAAE,EAAE,KAAK;gCACT,KAAK,EAAE;oCACL,IAAI,EAAE,oBAAoB;oCAC1B,OAAO,EAAE,2DAA2D;oCACpE,IAAI,EAAE,OAAO;iCACd;6BACF,CAAC;wBACJ,CAAC;wBACD,0EAA0E;wBAC1E,yFAAyF;wBACzF,uDAAuD;wBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACrC,CAAC;oBAED,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,2CAA2C;wBAC3C,uDAAuD;wBACvD,oFAAoF;wBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACrC,CAAC;oBAED,OAAO,CAAC,CAAC,CAAC;wBACR,OAAO;4BACL,EAAE,EAAE,KAAK;4BACT,KAAK,EAAE;gCACL,IAAI,EAAE,sBAAsB;gCAC5B,OAAO,EAAE,yBAAyB,IAAI,CAAC,WAAqB,EAAE;gCAC9D,IAAI,EAAE,OAAO;6BACd;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,uBAAuB;wBAC7B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACzD,IAAI,EAAE,cAAc;qBACrB;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED;;;WAGG;QACH,aAAa,CAAC,IAAsB;YAClC,IAAI,CAAC;gBACH,iEAAiE;gBACjE,6DAA6D;gBAC7D,sDAAsD;gBACtD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,0BAA0B;wBAChC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACzD,IAAI,EAAE,OAAO;qBACd;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant-scoped connection facade.
|
|
3
|
+
* S ref: FM-10 (tenant data leakage prevention), RDD-3 (transparent tenancy)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 4B (Certification — Tenant Isolation)
|
|
6
|
+
* Decision: DEC-CERT-002 (tenant_id on all tables)
|
|
7
|
+
*
|
|
8
|
+
* Mechanism: Wraps a raw DatabaseConnection, intercepting query(), get(), run()
|
|
9
|
+
* to auto-inject `AND tenant_id = ?` for SELECT/UPDATE/DELETE in row-level mode.
|
|
10
|
+
* INSERTs pass through unchanged (caller includes tenant_id).
|
|
11
|
+
*
|
|
12
|
+
* In single/database mode: pure pass-through (no injection).
|
|
13
|
+
*
|
|
14
|
+
* This is the "suspenders" half of belt-and-suspenders. The "belt" is explicit
|
|
15
|
+
* tenant_id predicates in each query. Together, a developer who forgets the belt
|
|
16
|
+
* still has the suspenders. A developer writing a new query cannot bypass this —
|
|
17
|
+
* the facade IS the connection. There is no raw DatabaseConnection accessible
|
|
18
|
+
* from orchestration code except via the explicit .raw escape hatch.
|
|
19
|
+
*
|
|
20
|
+
* CORR1-01 + AUDIT-001: Complex SQL fail-safe. JOINs, CTEs, subqueries, and
|
|
21
|
+
* set operations THROW immediately rather than silently mis-positioning the
|
|
22
|
+
* tenant predicate. Forces the developer to use .raw with SYSTEM_SCOPE annotation.
|
|
23
|
+
*
|
|
24
|
+
* AUDIT-002: Falsy tenantId check. Empty string is as dangerous as null.
|
|
25
|
+
*/
|
|
26
|
+
import type { DatabaseConnection, TenantId } from '../interfaces/index.js';
|
|
27
|
+
/**
|
|
28
|
+
* A DatabaseConnection with automatic tenant_id injection.
|
|
29
|
+
* Satisfies DatabaseConnection interface — all existing code compiles unchanged.
|
|
30
|
+
* The `raw` and `tenantId` properties are additive.
|
|
31
|
+
*/
|
|
32
|
+
export interface TenantScopedConnection extends DatabaseConnection {
|
|
33
|
+
/** Escape hatch for system operations (audit hash chain, bulk expiry). */
|
|
34
|
+
readonly raw: DatabaseConnection;
|
|
35
|
+
/** Current tenant context. Null in single mode or when no tenant is set. */
|
|
36
|
+
readonly tenantId: TenantId | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* FM-10: Inject tenant_id predicate into SQL queries.
|
|
40
|
+
*
|
|
41
|
+
* Rules:
|
|
42
|
+
* 1. INSERT statements: pass through unchanged (caller includes tenant_id)
|
|
43
|
+
* 2. Complex SQL (JOIN, CTE, subquery, set ops): THROW — not safe for regex injection
|
|
44
|
+
* 3. SELECT/UPDATE/DELETE with WHERE: append AND tenant_id = ?
|
|
45
|
+
* 4. SELECT/UPDATE/DELETE without WHERE: add WHERE tenant_id = ?
|
|
46
|
+
* 5. Position: before ORDER BY, GROUP BY, LIMIT, HAVING clauses
|
|
47
|
+
*
|
|
48
|
+
* Constraints (verified against current codebase — no violations):
|
|
49
|
+
* - No CTEs in vulnerable queries (getRootMissionId uses loop)
|
|
50
|
+
* - No JOINs in vulnerable queries (all single-table)
|
|
51
|
+
* - No subqueries in vulnerable queries
|
|
52
|
+
* - All UPDATE/DELETE have WHERE clauses
|
|
53
|
+
*
|
|
54
|
+
* CORR1-01 + AUDIT-001: Complex SQL fail-safe. If a future developer introduces
|
|
55
|
+
* a JOIN, CTE, subquery, or set operation, the facade THROWS immediately rather
|
|
56
|
+
* than silently mis-positioning the tenant predicate. This forces the developer
|
|
57
|
+
* to use deps.conn.raw with SYSTEM_SCOPE annotation and manual tenant scoping.
|
|
58
|
+
*
|
|
59
|
+
* Exported for unit testing (Layer 1 tests).
|
|
60
|
+
*/
|
|
61
|
+
export declare function injectTenantPredicate(sql: string, params: unknown[], tenantId: TenantId): {
|
|
62
|
+
scopedSql: string;
|
|
63
|
+
scopedParams: unknown[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* FM-10: Create a tenant-scoped connection facade.
|
|
67
|
+
* In row-level mode: auto-injects AND tenant_id = ? into all
|
|
68
|
+
* SELECT/UPDATE/DELETE queries. INSERTs pass through unchanged.
|
|
69
|
+
* In single/database mode: pass-through (no injection).
|
|
70
|
+
*
|
|
71
|
+
* The returned object satisfies DatabaseConnection interface —
|
|
72
|
+
* all existing code works unchanged.
|
|
73
|
+
*
|
|
74
|
+
* AUDIT-002: Uses falsy check (!tenantId) — empty string is as dangerous as null.
|
|
75
|
+
*
|
|
76
|
+
* @param conn - Raw DatabaseConnection to wrap
|
|
77
|
+
* @param scopedTenantId - Tenant to scope queries to. Null = no scoping.
|
|
78
|
+
* @returns TenantScopedConnection with .raw escape hatch and .tenantId property
|
|
79
|
+
*/
|
|
80
|
+
export declare function createTenantScopedConnection(conn: DatabaseConnection, scopedTenantId: TenantId | null): TenantScopedConnection;
|
|
81
|
+
//# sourceMappingURL=tenant_scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant_scope.d.ts","sourceRoot":"","sources":["../../../src/kernel/tenant/tenant_scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAAqB,QAAQ,EAChD,MAAM,wBAAwB,CAAC;AAIhC;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CACpC;AA6BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,QAAQ,GACjB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,EAAE,CAAA;CAAE,CA+BhD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,kBAAkB,EACxB,cAAc,EAAE,QAAQ,GAAG,IAAI,GAC9B,sBAAsB,CAgExB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant-scoped connection facade.
|
|
3
|
+
* S ref: FM-10 (tenant data leakage prevention), RDD-3 (transparent tenancy)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 4B (Certification — Tenant Isolation)
|
|
6
|
+
* Decision: DEC-CERT-002 (tenant_id on all tables)
|
|
7
|
+
*
|
|
8
|
+
* Mechanism: Wraps a raw DatabaseConnection, intercepting query(), get(), run()
|
|
9
|
+
* to auto-inject `AND tenant_id = ?` for SELECT/UPDATE/DELETE in row-level mode.
|
|
10
|
+
* INSERTs pass through unchanged (caller includes tenant_id).
|
|
11
|
+
*
|
|
12
|
+
* In single/database mode: pure pass-through (no injection).
|
|
13
|
+
*
|
|
14
|
+
* This is the "suspenders" half of belt-and-suspenders. The "belt" is explicit
|
|
15
|
+
* tenant_id predicates in each query. Together, a developer who forgets the belt
|
|
16
|
+
* still has the suspenders. A developer writing a new query cannot bypass this —
|
|
17
|
+
* the facade IS the connection. There is no raw DatabaseConnection accessible
|
|
18
|
+
* from orchestration code except via the explicit .raw escape hatch.
|
|
19
|
+
*
|
|
20
|
+
* CORR1-01 + AUDIT-001: Complex SQL fail-safe. JOINs, CTEs, subqueries, and
|
|
21
|
+
* set operations THROW immediately rather than silently mis-positioning the
|
|
22
|
+
* tenant predicate. Forces the developer to use .raw with SYSTEM_SCOPE annotation.
|
|
23
|
+
*
|
|
24
|
+
* AUDIT-002: Falsy tenantId check. Empty string is as dangerous as null.
|
|
25
|
+
*/
|
|
26
|
+
// ─── Complex SQL Patterns (CORR1-01 + AUDIT-001) ───
|
|
27
|
+
/**
|
|
28
|
+
* Patterns that indicate complex SQL where regex-based tenant_id injection
|
|
29
|
+
* is unsafe. If any pattern matches, injectTenantPredicate THROWS rather
|
|
30
|
+
* than silently mis-positioning the predicate.
|
|
31
|
+
*
|
|
32
|
+
* Verified against current codebase: zero vulnerable queries use these patterns.
|
|
33
|
+
* This fail-safe catches future developers who introduce complex SQL without
|
|
34
|
+
* using the .raw escape hatch.
|
|
35
|
+
*/
|
|
36
|
+
const COMPLEX_SQL_PATTERNS = [
|
|
37
|
+
/\bJOIN\b/i,
|
|
38
|
+
/\bWITH\b/i,
|
|
39
|
+
/\bIN\s*\(\s*SELECT\b/i,
|
|
40
|
+
/\bEXISTS\s*\(/i,
|
|
41
|
+
/\bNOT\s+IN\s*\(\s*SELECT\b/i,
|
|
42
|
+
/\bNOT\s+EXISTS\s*\(/i,
|
|
43
|
+
/\bUNION\b/i,
|
|
44
|
+
/\bEXCEPT\b/i,
|
|
45
|
+
/\bINTERSECT\b/i,
|
|
46
|
+
/\bANY\s*\(/i,
|
|
47
|
+
/\bALL\s*\(\s*SELECT\b/i,
|
|
48
|
+
];
|
|
49
|
+
// ─── SQL Injection Logic ───
|
|
50
|
+
/**
|
|
51
|
+
* FM-10: Inject tenant_id predicate into SQL queries.
|
|
52
|
+
*
|
|
53
|
+
* Rules:
|
|
54
|
+
* 1. INSERT statements: pass through unchanged (caller includes tenant_id)
|
|
55
|
+
* 2. Complex SQL (JOIN, CTE, subquery, set ops): THROW — not safe for regex injection
|
|
56
|
+
* 3. SELECT/UPDATE/DELETE with WHERE: append AND tenant_id = ?
|
|
57
|
+
* 4. SELECT/UPDATE/DELETE without WHERE: add WHERE tenant_id = ?
|
|
58
|
+
* 5. Position: before ORDER BY, GROUP BY, LIMIT, HAVING clauses
|
|
59
|
+
*
|
|
60
|
+
* Constraints (verified against current codebase — no violations):
|
|
61
|
+
* - No CTEs in vulnerable queries (getRootMissionId uses loop)
|
|
62
|
+
* - No JOINs in vulnerable queries (all single-table)
|
|
63
|
+
* - No subqueries in vulnerable queries
|
|
64
|
+
* - All UPDATE/DELETE have WHERE clauses
|
|
65
|
+
*
|
|
66
|
+
* CORR1-01 + AUDIT-001: Complex SQL fail-safe. If a future developer introduces
|
|
67
|
+
* a JOIN, CTE, subquery, or set operation, the facade THROWS immediately rather
|
|
68
|
+
* than silently mis-positioning the tenant predicate. This forces the developer
|
|
69
|
+
* to use deps.conn.raw with SYSTEM_SCOPE annotation and manual tenant scoping.
|
|
70
|
+
*
|
|
71
|
+
* Exported for unit testing (Layer 1 tests).
|
|
72
|
+
*/
|
|
73
|
+
export function injectTenantPredicate(sql, params, tenantId) {
|
|
74
|
+
const trimmed = sql.trim();
|
|
75
|
+
const upper = trimmed.toUpperCase();
|
|
76
|
+
// Rule 1: INSERTs pass through
|
|
77
|
+
if (upper.startsWith('INSERT')) {
|
|
78
|
+
return { scopedSql: sql, scopedParams: params };
|
|
79
|
+
}
|
|
80
|
+
// Rule 2: Complex SQL fail-safe — THROW, don't silently mis-inject
|
|
81
|
+
for (const pattern of COMPLEX_SQL_PATTERNS) {
|
|
82
|
+
if (pattern.test(trimmed)) {
|
|
83
|
+
throw new Error(`TenantScopedConnection: Complex SQL detected (${pattern}). ` +
|
|
84
|
+
`Use deps.conn.raw with // SYSTEM_SCOPE annotation for complex queries. ` +
|
|
85
|
+
`SQL: ${trimmed.slice(0, 80)}...`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Rule 3-5: Simple SELECT/UPDATE/DELETE — inject tenant_id
|
|
89
|
+
const hasWhere = /\bWHERE\b/i.test(trimmed);
|
|
90
|
+
const tenantClause = hasWhere ? ' AND tenant_id = ?' : ' WHERE tenant_id = ?';
|
|
91
|
+
// Find insertion point: before trailing clauses
|
|
92
|
+
const trailingPattern = /\b(ORDER\s+BY|GROUP\s+BY|LIMIT|HAVING)\b/i;
|
|
93
|
+
const trailingMatch = trimmed.match(trailingPattern);
|
|
94
|
+
const insertPos = trailingMatch?.index ?? trimmed.length;
|
|
95
|
+
const scopedSql = trimmed.slice(0, insertPos) + tenantClause + trimmed.slice(insertPos);
|
|
96
|
+
return { scopedSql, scopedParams: [...params, tenantId] };
|
|
97
|
+
}
|
|
98
|
+
// ─── Factory ───
|
|
99
|
+
/**
|
|
100
|
+
* FM-10: Create a tenant-scoped connection facade.
|
|
101
|
+
* In row-level mode: auto-injects AND tenant_id = ? into all
|
|
102
|
+
* SELECT/UPDATE/DELETE queries. INSERTs pass through unchanged.
|
|
103
|
+
* In single/database mode: pass-through (no injection).
|
|
104
|
+
*
|
|
105
|
+
* The returned object satisfies DatabaseConnection interface —
|
|
106
|
+
* all existing code works unchanged.
|
|
107
|
+
*
|
|
108
|
+
* AUDIT-002: Uses falsy check (!tenantId) — empty string is as dangerous as null.
|
|
109
|
+
*
|
|
110
|
+
* @param conn - Raw DatabaseConnection to wrap
|
|
111
|
+
* @param scopedTenantId - Tenant to scope queries to. Null = no scoping.
|
|
112
|
+
* @returns TenantScopedConnection with .raw escape hatch and .tenantId property
|
|
113
|
+
*/
|
|
114
|
+
export function createTenantScopedConnection(conn, scopedTenantId) {
|
|
115
|
+
// Single mode or falsy tenant: no scoping needed
|
|
116
|
+
// AUDIT-002: Use falsy check — empty string is as dangerous as null
|
|
117
|
+
if (conn.tenancyMode !== 'row-level' || !scopedTenantId) {
|
|
118
|
+
return {
|
|
119
|
+
dataDir: conn.dataDir,
|
|
120
|
+
schemaVersion: conn.schemaVersion,
|
|
121
|
+
tenancyMode: conn.tenancyMode,
|
|
122
|
+
raw: conn,
|
|
123
|
+
tenantId: scopedTenantId,
|
|
124
|
+
transaction(fn) {
|
|
125
|
+
return conn.transaction(fn);
|
|
126
|
+
},
|
|
127
|
+
run(sql, params) {
|
|
128
|
+
return conn.run(sql, params);
|
|
129
|
+
},
|
|
130
|
+
query(sql, params) {
|
|
131
|
+
return conn.query(sql, params);
|
|
132
|
+
},
|
|
133
|
+
get(sql, params) {
|
|
134
|
+
return conn.get(sql, params);
|
|
135
|
+
},
|
|
136
|
+
close() {
|
|
137
|
+
return conn.close();
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Row-level mode with valid tenantId: full scoping
|
|
142
|
+
return {
|
|
143
|
+
dataDir: conn.dataDir,
|
|
144
|
+
schemaVersion: conn.schemaVersion,
|
|
145
|
+
tenancyMode: conn.tenancyMode,
|
|
146
|
+
tenantId: scopedTenantId,
|
|
147
|
+
raw: conn,
|
|
148
|
+
query(sql, params) {
|
|
149
|
+
const { scopedSql, scopedParams } = injectTenantPredicate(sql, params ?? [], scopedTenantId);
|
|
150
|
+
return conn.query(scopedSql, scopedParams);
|
|
151
|
+
},
|
|
152
|
+
get(sql, params) {
|
|
153
|
+
const { scopedSql, scopedParams } = injectTenantPredicate(sql, params ?? [], scopedTenantId);
|
|
154
|
+
return conn.get(scopedSql, scopedParams);
|
|
155
|
+
},
|
|
156
|
+
run(sql, params) {
|
|
157
|
+
const { scopedSql, scopedParams } = injectTenantPredicate(sql, params ?? [], scopedTenantId);
|
|
158
|
+
return conn.run(scopedSql, scopedParams);
|
|
159
|
+
},
|
|
160
|
+
transaction(fn) {
|
|
161
|
+
return conn.transaction(fn);
|
|
162
|
+
},
|
|
163
|
+
close() {
|
|
164
|
+
return conn.close();
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=tenant_scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant_scope.js","sourceRoot":"","sources":["../../../src/kernel/tenant/tenant_scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time provider implementations.
|
|
3
|
+
* S ref: Hard Stop #7 (clock injection)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 1 (Kernel)
|
|
6
|
+
* Implements: System clock (production) and test clock (deterministic testing).
|
|
7
|
+
*
|
|
8
|
+
* System provider: thin wrapper around Date — zero overhead, real clock.
|
|
9
|
+
* Test provider: deterministic, advanceable — enables time-dependent testing
|
|
10
|
+
* without flakiness or sleep().
|
|
11
|
+
*/
|
|
12
|
+
import type { TimeProvider } from '../interfaces/time.js';
|
|
13
|
+
/**
|
|
14
|
+
* Create a system time provider using the real clock.
|
|
15
|
+
* Used in production. Returns current wall-clock time.
|
|
16
|
+
*
|
|
17
|
+
* S ref: Hard Stop #7
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSystemTimeProvider(): TimeProvider;
|
|
20
|
+
/**
|
|
21
|
+
* Create a deterministic test time provider.
|
|
22
|
+
* Starts at a fixed epoch (or specified time) and only advances when told.
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* const time = createTestTimeProvider();
|
|
26
|
+
* time.nowISO(); // "2026-01-01T00:00:00.000Z"
|
|
27
|
+
* time.advance(1000); // advance 1 second
|
|
28
|
+
* time.nowISO(); // "2026-01-01T00:00:01.000Z"
|
|
29
|
+
* time.set(new Date('2026-06-15T12:00:00Z').getTime()); // jump to specific time
|
|
30
|
+
*
|
|
31
|
+
* S ref: Hard Stop #7, C-06
|
|
32
|
+
*/
|
|
33
|
+
export declare function createTestTimeProvider(startMs?: number): TimeProvider & {
|
|
34
|
+
/** Advance the clock by the given number of milliseconds */
|
|
35
|
+
advance(ms: number): void;
|
|
36
|
+
/** Set the clock to an exact millisecond timestamp */
|
|
37
|
+
set(ms: number): void;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=time_provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time_provider.d.ts","sourceRoot":"","sources":["../../../src/kernel/time/time_provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,CASvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,MAAuD,GAC/D,YAAY,GAAG;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sDAAsD;IACtD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAiBA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time provider implementations.
|
|
3
|
+
* S ref: Hard Stop #7 (clock injection)
|
|
4
|
+
*
|
|
5
|
+
* Phase: 1 (Kernel)
|
|
6
|
+
* Implements: System clock (production) and test clock (deterministic testing).
|
|
7
|
+
*
|
|
8
|
+
* System provider: thin wrapper around Date — zero overhead, real clock.
|
|
9
|
+
* Test provider: deterministic, advanceable — enables time-dependent testing
|
|
10
|
+
* without flakiness or sleep().
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Create a system time provider using the real clock.
|
|
14
|
+
* Used in production. Returns current wall-clock time.
|
|
15
|
+
*
|
|
16
|
+
* S ref: Hard Stop #7
|
|
17
|
+
*/
|
|
18
|
+
export function createSystemTimeProvider() {
|
|
19
|
+
return {
|
|
20
|
+
nowISO() {
|
|
21
|
+
return new Date().toISOString();
|
|
22
|
+
},
|
|
23
|
+
nowMs() {
|
|
24
|
+
return Date.now();
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a deterministic test time provider.
|
|
30
|
+
* Starts at a fixed epoch (or specified time) and only advances when told.
|
|
31
|
+
*
|
|
32
|
+
* Usage:
|
|
33
|
+
* const time = createTestTimeProvider();
|
|
34
|
+
* time.nowISO(); // "2026-01-01T00:00:00.000Z"
|
|
35
|
+
* time.advance(1000); // advance 1 second
|
|
36
|
+
* time.nowISO(); // "2026-01-01T00:00:01.000Z"
|
|
37
|
+
* time.set(new Date('2026-06-15T12:00:00Z').getTime()); // jump to specific time
|
|
38
|
+
*
|
|
39
|
+
* S ref: Hard Stop #7, C-06
|
|
40
|
+
*/
|
|
41
|
+
export function createTestTimeProvider(startMs = new Date('2026-01-01T00:00:00.000Z').getTime()) {
|
|
42
|
+
let currentMs = startMs;
|
|
43
|
+
return {
|
|
44
|
+
nowISO() {
|
|
45
|
+
return new Date(currentMs).toISOString();
|
|
46
|
+
},
|
|
47
|
+
nowMs() {
|
|
48
|
+
return currentMs;
|
|
49
|
+
},
|
|
50
|
+
advance(ms) {
|
|
51
|
+
currentMs += ms;
|
|
52
|
+
},
|
|
53
|
+
set(ms) {
|
|
54
|
+
currentMs = ms;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=time_provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time_provider.js","sourceRoot":"","sources":["../../../src/kernel/time/time_provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,MAAM;YACJ,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QACD,KAAK;YACH,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAkB,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE;IAOhE,IAAI,SAAS,GAAG,OAAO,CAAC;IAExB,OAAO;QACL,MAAM;YACJ,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,EAAU;YAChB,SAAS,IAAI,EAAE,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Limen — TechniqueApplicator Implementation
|
|
3
|
+
* Phase 4E-2c: Learning System Application Mechanics
|
|
4
|
+
*
|
|
5
|
+
* Implements the TechniqueApplicator interface from learning_types.ts.
|
|
6
|
+
* Retrieves active techniques at inference time and records applications.
|
|
7
|
+
*
|
|
8
|
+
* S ref: S29.4 (application mechanics), S29.2 (applicationCount, lastApplied),
|
|
9
|
+
* S29.6 (retirement depends on applicationCount/lastApplied),
|
|
10
|
+
* I-03 (audit), I-07 (agent isolation)
|
|
11
|
+
*
|
|
12
|
+
* Engineering decisions:
|
|
13
|
+
* DEC-4E2C-001: Token estimation via chars/4 (no tokenizer, I-01)
|
|
14
|
+
* DEC-4E2C-002: Greedy fill with skip (not stop-at-overflow)
|
|
15
|
+
* DEC-4E2C-003: Ordering tiebreaker: created_at ASC, id ASC
|
|
16
|
+
* DEC-4E2C-004: No FK validation on recordApplications (R-07)
|
|
17
|
+
* DEC-4E2C-005: recordApplications synchronous, single transaction
|
|
18
|
+
*/
|
|
19
|
+
import type { TechniqueApplicator, TechniqueStore, LearningDeps } from '../interfaces/index.js';
|
|
20
|
+
/**
|
|
21
|
+
* Estimate token count from content length.
|
|
22
|
+
*
|
|
23
|
+
* DEC-4E2C-001: Uses chars/4 approximation because:
|
|
24
|
+
* (1) Contract tests use Math.ceil(content.length / 4)
|
|
25
|
+
* (2) No tokenizer dependency permitted (I-01: single production dependency)
|
|
26
|
+
* (3) Caller controls maxTokenBudget — overestimation is safe (conservative)
|
|
27
|
+
*
|
|
28
|
+
* Risk-if-wrong: Non-ASCII content (CJK, emoji) has higher tokens/char ratio,
|
|
29
|
+
* causing underestimation. Mitigated by conservative maxTokenBudget from caller
|
|
30
|
+
* and by the 20% ceiling being a safety margin, not a precision target.
|
|
31
|
+
*/
|
|
32
|
+
export declare function estimateTokens(content: string): number;
|
|
33
|
+
/**
|
|
34
|
+
* Create a TechniqueApplicator implementation.
|
|
35
|
+
* Follows the Limen factory pattern: factory → Object.freeze.
|
|
36
|
+
*
|
|
37
|
+
* @param deps - Learning system dependencies (audit, events, etc.)
|
|
38
|
+
* @param store - TechniqueStore for R-06 applicationCount/lastApplied updates
|
|
39
|
+
*/
|
|
40
|
+
export declare function createTechniqueApplicator(deps: LearningDeps, store: TechniqueStore): TechniqueApplicator;
|
|
41
|
+
//# sourceMappingURL=technique_applicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"technique_applicator.d.ts","sourceRoot":"","sources":["../../../src/learning/applicator/technique_applicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EACV,mBAAmB,EAAE,cAAc,EACe,YAAY,EAC/D,MAAM,wBAAwB,CAAC;AA6ChC;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAgBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,cAAc,GACpB,mBAAmB,CAqLrB"}
|