@almadar/std 1.0.15 → 2.1.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/LICENSE +21 -72
- package/README.md +25 -0
- package/dist/behaviors/index.d.ts +1 -0
- package/dist/behaviors/index.js +940 -2
- package/dist/behaviors/index.js.map +1 -1
- package/dist/behaviors/infrastructure.d.ts +21 -0
- package/dist/behaviors/infrastructure.js +940 -0
- package/dist/behaviors/infrastructure.js.map +1 -0
- package/dist/behaviors/registry.js +939 -1
- package/dist/behaviors/registry.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1273 -85
- package/dist/index.js.map +1 -1
- package/dist/modules/array.d.ts +1 -1
- package/dist/modules/async.d.ts +1 -1
- package/dist/modules/async.js +22 -5
- package/dist/modules/async.js.map +1 -1
- package/dist/modules/format.d.ts +1 -1
- package/dist/modules/index.d.ts +2 -1
- package/dist/modules/index.js +249 -6
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/math.d.ts +1 -1
- package/dist/modules/nn.d.ts +1 -1
- package/dist/modules/object.d.ts +1 -1
- package/dist/modules/prob.d.ts +21 -0
- package/dist/modules/prob.js +229 -0
- package/dist/modules/prob.js.map +1 -0
- package/dist/modules/str.d.ts +1 -1
- package/dist/modules/tensor.d.ts +1 -1
- package/dist/modules/time.d.ts +1 -1
- package/dist/modules/train.d.ts +1 -1
- package/dist/modules/validate.d.ts +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +251 -8
- package/dist/registry.js.map +1 -1
- package/dist/{types-I95R8_FN.d.ts → types-CmNM_IbV.d.ts} +3 -3
- package/package.json +5 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../behaviors/infrastructure.ts"],"names":[],"mappings":"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","file":"infrastructure.js","sourcesContent":["/**\n * Infrastructure Behaviors\n *\n * Standard behaviors for infrastructure patterns like circuit breaking\n * and health monitoring.\n * Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from './types.js';\n\n// ============================================================================\n// std-circuit-breaker - Circuit Breaker Pattern\n// ============================================================================\n\nexport const CIRCUIT_BREAKER_BEHAVIOR: OrbitalSchema = {\n name: 'std-circuit-breaker',\n version: '1.0.0',\n description: 'Circuit breaker pattern with automatic recovery',\n orbitals: [\n {\n name: 'CircuitBreakerOrbital',\n entity: {\n name: 'CircuitBreakerState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'circuitState', type: 'string', default: 'closed' },\n { name: 'errorCount', type: 'number', default: 0 },\n { name: 'errorRate', type: 'number', default: 0 },\n { name: 'successCount', type: 'number', default: 0 },\n { name: 'totalCount', type: 'number', default: 0 },\n { name: 'lastFailure', type: 'number', default: null },\n { name: 'lastSuccess', type: 'number', default: null },\n { name: 'errorThreshold', type: 'number', default: 5 },\n { name: 'errorRateThreshold', type: 'number', default: 0.5 },\n { name: 'resetAfterMs', type: 'number', default: 60000 },\n { name: 'halfOpenMaxAttempts', type: 'number', default: 3 },\n { name: 'halfOpenAttempts', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'CircuitBreaker',\n linkedEntity: 'CircuitBreakerState',\n category: 'lifecycle',\n emits: [\n { event: 'CIRCUIT_OPENED', scope: 'external' },\n { event: 'CIRCUIT_CLOSED', scope: 'external' },\n { event: 'CIRCUIT_HALF_OPEN', scope: 'external' },\n ],\n stateMachine: {\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n { name: 'HalfOpen' },\n ],\n events: [\n { key: 'RECORD_SUCCESS', name: 'Record Success' },\n { key: 'RECORD_FAILURE', name: 'Record Failure' },\n { key: 'PROBE', name: 'Probe' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // Closed: record success\n {\n from: 'Closed',\n to: 'Closed',\n event: 'RECORD_SUCCESS',\n effects: [\n ['set', '@entity.successCount', ['+', '@entity.successCount', 1]],\n ['set', '@entity.totalCount', ['+', '@entity.totalCount', 1]],\n ['set', '@entity.lastSuccess', ['time/now']],\n ['set', '@entity.errorRate', ['/', '@entity.errorCount', ['math/max', '@entity.totalCount', 1]]],\n ],\n },\n // Closed: record failure, stay closed if under threshold\n {\n from: 'Closed',\n to: 'Closed',\n event: 'RECORD_FAILURE',\n guard: ['<', ['+', '@entity.errorCount', 1], '@entity.errorThreshold'],\n effects: [\n ['set', '@entity.errorCount', ['+', '@entity.errorCount', 1]],\n ['set', '@entity.totalCount', ['+', '@entity.totalCount', 1]],\n ['set', '@entity.lastFailure', ['time/now']],\n ['set', '@entity.errorRate', ['/', ['+', '@entity.errorCount', 1], ['math/max', '@entity.totalCount', 1]]],\n ],\n },\n // Closed -> Open: threshold exceeded\n {\n from: 'Closed',\n to: 'Open',\n event: 'RECORD_FAILURE',\n guard: ['>=', ['+', '@entity.errorCount', 1], '@entity.errorThreshold'],\n effects: [\n ['set', '@entity.errorCount', ['+', '@entity.errorCount', 1]],\n ['set', '@entity.totalCount', ['+', '@entity.totalCount', 1]],\n ['set', '@entity.lastFailure', ['time/now']],\n ['set', '@entity.errorRate', ['/', ['+', '@entity.errorCount', 1], ['math/max', '@entity.totalCount', 1]]],\n ['emit', 'CIRCUIT_OPENED', { errorCount: '@entity.errorCount', errorRate: '@entity.errorRate' }],\n ],\n },\n // Open -> HalfOpen: probe after reset timeout\n {\n from: 'Open',\n to: 'HalfOpen',\n event: 'PROBE',\n guard: ['>', ['-', ['time/now'], '@entity.lastFailure'], '@entity.resetAfterMs'],\n effects: [\n ['set', '@entity.halfOpenAttempts', 0],\n ['emit', 'CIRCUIT_HALF_OPEN', {}],\n ],\n },\n // HalfOpen: success -> close\n {\n from: 'HalfOpen',\n to: 'Closed',\n event: 'RECORD_SUCCESS',\n effects: [\n ['set', '@entity.errorCount', 0],\n ['set', '@entity.errorRate', 0],\n ['set', '@entity.halfOpenAttempts', 0],\n ['set', '@entity.successCount', ['+', '@entity.successCount', 1]],\n ['set', '@entity.lastSuccess', ['time/now']],\n ['emit', 'CIRCUIT_CLOSED', {}],\n ],\n },\n // HalfOpen: failure -> back to open\n {\n from: 'HalfOpen',\n to: 'Open',\n event: 'RECORD_FAILURE',\n effects: [\n ['set', '@entity.errorCount', ['+', '@entity.errorCount', 1]],\n ['set', '@entity.lastFailure', ['time/now']],\n ['emit', 'CIRCUIT_OPENED', { errorCount: '@entity.errorCount' }],\n ],\n },\n // Reset from any state\n {\n from: ['Closed', 'Open', 'HalfOpen'] as unknown as string,\n to: 'Closed',\n event: 'RESET',\n effects: [\n ['set', '@entity.errorCount', 0],\n ['set', '@entity.successCount', 0],\n ['set', '@entity.totalCount', 0],\n ['set', '@entity.errorRate', 0],\n ['set', '@entity.halfOpenAttempts', 0],\n ['set', '@entity.circuitState', 'closed'],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'probe_half_open',\n interval: '30000',\n guard: ['=', '@entity.circuitState', 'open'],\n effects: [['emit', 'PROBE']],\n description: 'Periodically probe to transition from Open to HalfOpen',\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-health-check - Health Monitoring\n// ============================================================================\n\nexport const HEALTH_CHECK_BEHAVIOR: OrbitalSchema = {\n name: 'std-health-check',\n version: '1.0.0',\n description: 'Tick-based health monitoring with degradation detection',\n orbitals: [\n {\n name: 'HealthCheckOrbital',\n entity: {\n name: 'HealthCheckState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'healthStatus', type: 'string', default: 'unknown' },\n { name: 'lastCheck', type: 'number', default: null },\n { name: 'lastHealthy', type: 'number', default: null },\n { name: 'consecutiveFailures', type: 'number', default: 0 },\n { name: 'consecutiveSuccesses', type: 'number', default: 0 },\n { name: 'checkIntervalMs', type: 'number', default: 30000 },\n { name: 'degradedThreshold', type: 'number', default: 2 },\n { name: 'unhealthyThreshold', type: 'number', default: 5 },\n { name: 'recoveryThreshold', type: 'number', default: 3 },\n { name: 'totalChecks', type: 'number', default: 0 },\n { name: 'totalFailures', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'HealthCheck',\n linkedEntity: 'HealthCheckState',\n category: 'lifecycle',\n emits: [\n { event: 'SERVICE_HEALTHY', scope: 'external' },\n { event: 'SERVICE_DEGRADED', scope: 'external' },\n { event: 'SERVICE_UNHEALTHY', scope: 'external' },\n ],\n stateMachine: {\n states: [\n { name: 'Unknown', isInitial: true },\n { name: 'Healthy' },\n { name: 'Degraded' },\n { name: 'Unhealthy' },\n ],\n events: [\n { key: 'CHECK_SUCCESS', name: 'Check Success' },\n { key: 'CHECK_FAILURE', name: 'Check Failure' },\n { key: 'HEALTH_TICK', name: 'Health Tick' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // Unknown -> Healthy on first success\n {\n from: 'Unknown',\n to: 'Healthy',\n event: 'CHECK_SUCCESS',\n effects: [\n ['set', '@entity.healthStatus', 'healthy'],\n ['set', '@entity.consecutiveSuccesses', 1],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.lastHealthy', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['emit', 'SERVICE_HEALTHY', {}],\n ],\n },\n // Unknown -> Degraded on first failure\n {\n from: 'Unknown',\n to: 'Degraded',\n event: 'CHECK_FAILURE',\n effects: [\n ['set', '@entity.healthStatus', 'degraded'],\n ['set', '@entity.consecutiveFailures', 1],\n ['set', '@entity.consecutiveSuccesses', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['set', '@entity.totalFailures', ['+', '@entity.totalFailures', 1]],\n ['emit', 'SERVICE_DEGRADED', { consecutiveFailures: 1 }],\n ],\n },\n // Healthy: stay healthy on success\n {\n from: 'Healthy',\n to: 'Healthy',\n event: 'CHECK_SUCCESS',\n effects: [\n ['set', '@entity.consecutiveSuccesses', ['+', '@entity.consecutiveSuccesses', 1]],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.lastHealthy', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ],\n },\n // Healthy -> Degraded on failure\n {\n from: 'Healthy',\n to: 'Degraded',\n event: 'CHECK_FAILURE',\n effects: [\n ['set', '@entity.healthStatus', 'degraded'],\n ['set', '@entity.consecutiveFailures', 1],\n ['set', '@entity.consecutiveSuccesses', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['set', '@entity.totalFailures', ['+', '@entity.totalFailures', 1]],\n ['emit', 'SERVICE_DEGRADED', { consecutiveFailures: 1 }],\n ],\n },\n // Degraded: stay degraded on failure (below unhealthy threshold)\n {\n from: 'Degraded',\n to: 'Degraded',\n event: 'CHECK_FAILURE',\n guard: ['<', ['+', '@entity.consecutiveFailures', 1], '@entity.unhealthyThreshold'],\n effects: [\n ['set', '@entity.consecutiveFailures', ['+', '@entity.consecutiveFailures', 1]],\n ['set', '@entity.consecutiveSuccesses', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['set', '@entity.totalFailures', ['+', '@entity.totalFailures', 1]],\n ],\n },\n // Degraded -> Unhealthy when threshold exceeded\n {\n from: 'Degraded',\n to: 'Unhealthy',\n event: 'CHECK_FAILURE',\n guard: ['>=', ['+', '@entity.consecutiveFailures', 1], '@entity.unhealthyThreshold'],\n effects: [\n ['set', '@entity.healthStatus', 'unhealthy'],\n ['set', '@entity.consecutiveFailures', ['+', '@entity.consecutiveFailures', 1]],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['set', '@entity.totalFailures', ['+', '@entity.totalFailures', 1]],\n ['emit', 'SERVICE_UNHEALTHY', { consecutiveFailures: ['+', '@entity.consecutiveFailures', 1] }],\n ],\n },\n // Degraded -> Healthy on enough successes\n {\n from: 'Degraded',\n to: 'Healthy',\n event: 'CHECK_SUCCESS',\n guard: ['>=', ['+', '@entity.consecutiveSuccesses', 1], '@entity.recoveryThreshold'],\n effects: [\n ['set', '@entity.healthStatus', 'healthy'],\n ['set', '@entity.consecutiveSuccesses', ['+', '@entity.consecutiveSuccesses', 1]],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.lastHealthy', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['emit', 'SERVICE_HEALTHY', {}],\n ],\n },\n // Degraded: stay degraded on success (not enough to recover)\n {\n from: 'Degraded',\n to: 'Degraded',\n event: 'CHECK_SUCCESS',\n guard: ['<', ['+', '@entity.consecutiveSuccesses', 1], '@entity.recoveryThreshold'],\n effects: [\n ['set', '@entity.consecutiveSuccesses', ['+', '@entity.consecutiveSuccesses', 1]],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ],\n },\n // Unhealthy: stay unhealthy on failure\n {\n from: 'Unhealthy',\n to: 'Unhealthy',\n event: 'CHECK_FAILURE',\n effects: [\n ['set', '@entity.consecutiveFailures', ['+', '@entity.consecutiveFailures', 1]],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['set', '@entity.totalFailures', ['+', '@entity.totalFailures', 1]],\n ],\n },\n // Unhealthy -> Degraded on first success (recovery begins)\n {\n from: 'Unhealthy',\n to: 'Degraded',\n event: 'CHECK_SUCCESS',\n effects: [\n ['set', '@entity.healthStatus', 'degraded'],\n ['set', '@entity.consecutiveSuccesses', 1],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.lastCheck', ['time/now']],\n ['set', '@entity.totalChecks', ['+', '@entity.totalChecks', 1]],\n ['emit', 'SERVICE_DEGRADED', { recovering: true }],\n ],\n },\n // Reset from any state\n {\n from: ['Unknown', 'Healthy', 'Degraded', 'Unhealthy'] as unknown as string,\n to: 'Unknown',\n event: 'RESET',\n effects: [\n ['set', '@entity.healthStatus', 'unknown'],\n ['set', '@entity.consecutiveFailures', 0],\n ['set', '@entity.consecutiveSuccesses', 0],\n ['set', '@entity.totalChecks', 0],\n ['set', '@entity.totalFailures', 0],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'periodic_health_check',\n interval: '@entity.checkIntervalMs',\n effects: [['emit', 'HEALTH_TICK']],\n description: 'Periodically trigger health check',\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-rate-limiter - Token Bucket Rate Limiting\n// ============================================================================\n\nexport const RATE_LIMITER_BEHAVIOR: OrbitalSchema = {\n name: 'std-rate-limiter',\n version: '1.0.0',\n description: 'Guard-based rate limiting with sliding window reset',\n orbitals: [\n {\n name: 'RateLimiterOrbital',\n entity: {\n name: 'RateLimiterState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'requestCount', type: 'number', default: 0 },\n { name: 'windowStart', type: 'number', default: 0 },\n { name: 'rateLimit', type: 'number', default: 60 },\n { name: 'windowMs', type: 'number', default: 60000 },\n { name: 'totalRequests', type: 'number', default: 0 },\n { name: 'rejectedRequests', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'RateLimiter',\n linkedEntity: 'RateLimiterState',\n category: 'lifecycle',\n emits: [\n { event: 'RATE_LIMIT_EXCEEDED', scope: 'external' },\n ],\n stateMachine: {\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'REQUEST', name: 'Record Request' },\n { key: 'REQUEST_REJECTED', name: 'Request Rejected' },\n { key: 'WINDOW_RESET', name: 'Window Reset' },\n { key: 'RESET', name: 'Full Reset' },\n ],\n transitions: [\n // Request allowed\n {\n from: 'Active',\n to: 'Active',\n event: 'REQUEST',\n guard: ['<', '@entity.requestCount', '@entity.rateLimit'],\n effects: [\n ['set', '@entity.requestCount', ['+', '@entity.requestCount', 1]],\n ['set', '@entity.totalRequests', ['+', '@entity.totalRequests', 1]],\n ],\n },\n // Request rejected — over limit\n {\n from: 'Active',\n to: 'Active',\n event: 'REQUEST',\n guard: ['>=', '@entity.requestCount', '@entity.rateLimit'],\n effects: [\n ['set', '@entity.rejectedRequests', ['+', '@entity.rejectedRequests', 1]],\n ['emit', 'RATE_LIMIT_EXCEEDED', {\n requestCount: '@entity.requestCount',\n rateLimit: '@entity.rateLimit',\n }],\n ],\n },\n // Sliding window reset\n {\n from: 'Active',\n to: 'Active',\n event: 'WINDOW_RESET',\n effects: [\n ['set', '@entity.requestCount', 0],\n ['set', '@entity.windowStart', ['time/now']],\n ],\n },\n // Full counter reset\n {\n from: 'Active',\n to: 'Active',\n event: 'RESET',\n effects: [\n ['set', '@entity.requestCount', 0],\n ['set', '@entity.totalRequests', 0],\n ['set', '@entity.rejectedRequests', 0],\n ['set', '@entity.windowStart', ['time/now']],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'window_reset',\n interval: '@entity.windowMs',\n effects: [['emit', 'WINDOW_RESET']],\n description: 'Reset request counter on sliding window expiry',\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-cache-aside - Cache-Aside Pattern\n// ============================================================================\n\nexport const CACHE_ASIDE_BEHAVIOR: OrbitalSchema = {\n name: 'std-cache-aside',\n version: '1.0.0',\n description: 'Cache-aside pattern with TTL-based freshness and eviction',\n orbitals: [\n {\n name: 'CacheAsideOrbital',\n entity: {\n name: 'CacheEntry',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'cacheKey', type: 'string', default: '' },\n { name: 'cachedValue', type: 'object', default: null },\n { name: 'cachedAt', type: 'number', default: 0 },\n { name: 'ttlMs', type: 'number', default: 300000 },\n { name: 'cacheHits', type: 'number', default: 0 },\n { name: 'cacheMisses', type: 'number', default: 0 },\n { name: 'isFresh', type: 'boolean', default: false },\n { name: 'lastAccessed', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'CacheAside',\n linkedEntity: 'CacheEntry',\n category: 'lifecycle',\n emits: [\n { event: 'CACHE_HIT', scope: 'internal' },\n { event: 'CACHE_MISS', scope: 'internal' },\n { event: 'CACHE_EVICTED', scope: 'internal' },\n ],\n stateMachine: {\n states: [\n { name: 'Empty', isInitial: true },\n { name: 'Fresh' },\n { name: 'Stale' },\n ],\n events: [\n { key: 'LOOKUP', name: 'Cache Lookup' },\n { key: 'POPULATE', name: 'Populate Cache' },\n { key: 'INVALIDATE', name: 'Invalidate' },\n { key: 'EVICT', name: 'Evict' },\n { key: 'EVICTION_TICK', name: 'Eviction Tick' },\n ],\n transitions: [\n // Empty: lookup is a miss\n {\n from: 'Empty',\n to: 'Empty',\n event: 'LOOKUP',\n effects: [\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n ['emit', 'CACHE_MISS', { key: '@entity.cacheKey' }],\n ],\n },\n // Empty → Fresh: populate after fetch\n {\n from: 'Empty',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cacheKey', '@payload.key'],\n ['set', '@entity.cachedAt', ['time/now']],\n ['set', '@entity.isFresh', true],\n ],\n },\n // Fresh: lookup is a hit\n {\n from: 'Fresh',\n to: 'Fresh',\n event: 'LOOKUP',\n guard: ['<', ['-', ['time/now'], '@entity.cachedAt'], '@entity.ttlMs'],\n effects: [\n ['set', '@entity.cacheHits', ['+', '@entity.cacheHits', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n ['emit', 'CACHE_HIT', { key: '@entity.cacheKey' }],\n ],\n },\n // Fresh → Stale: TTL expired on lookup\n {\n from: 'Fresh',\n to: 'Stale',\n event: 'LOOKUP',\n guard: ['>=', ['-', ['time/now'], '@entity.cachedAt'], '@entity.ttlMs'],\n effects: [\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n ['emit', 'CACHE_MISS', { key: '@entity.cacheKey', reason: 'ttl_expired' }],\n ],\n },\n // Stale: lookup is a miss\n {\n from: 'Stale',\n to: 'Stale',\n event: 'LOOKUP',\n effects: [\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n ['emit', 'CACHE_MISS', { key: '@entity.cacheKey', reason: 'stale' }],\n ],\n },\n // Stale → Fresh: re-populate\n {\n from: 'Stale',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cachedAt', ['time/now']],\n ['set', '@entity.isFresh', true],\n ],\n },\n // Fresh → Fresh: update cache\n {\n from: 'Fresh',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cachedAt', ['time/now']],\n ],\n },\n // Invalidate from any cached state\n {\n from: ['Fresh', 'Stale'] as unknown as string,\n to: 'Empty',\n event: 'INVALIDATE',\n effects: [\n ['set', '@entity.cachedValue', null],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n ],\n },\n // Evict (with event)\n {\n from: ['Fresh', 'Stale'] as unknown as string,\n to: 'Empty',\n event: 'EVICT',\n effects: [\n ['set', '@entity.cachedValue', null],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n ['emit', 'CACHE_EVICTED', { key: '@entity.cacheKey' }],\n ],\n },\n // Eviction tick: evict if stale\n {\n from: 'Stale',\n to: 'Empty',\n event: 'EVICTION_TICK',\n effects: [\n ['set', '@entity.cachedValue', null],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n ['emit', 'CACHE_EVICTED', { key: '@entity.cacheKey', reason: 'ttl_eviction' }],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'eviction_sweep',\n interval: '60000',\n guard: ['and', ['!=', '@entity.cachedAt', 0], ['>=', ['-', ['time/now'], '@entity.cachedAt'], '@entity.ttlMs']],\n effects: [['emit', 'EVICTION_TICK']],\n description: 'Periodically evict stale cache entries',\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-saga - Saga Pattern (Distributed Transaction Compensation)\n// ============================================================================\n\nexport const SAGA_BEHAVIOR: OrbitalSchema = {\n name: 'std-saga',\n version: '1.0.0',\n description: 'Saga pattern with step-by-step execution and reverse compensation on failure',\n orbitals: [\n {\n name: 'SagaOrbital',\n entity: {\n name: 'SagaState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'sagaName', type: 'string', default: '' },\n { name: 'currentStep', type: 'number', default: 0 },\n { name: 'totalSteps', type: 'number', default: 0 },\n { name: 'sagaStatus', type: 'string', default: 'idle' },\n { name: 'completedSteps', type: 'array', default: [] },\n { name: 'compensatedSteps', type: 'array', default: [] },\n { name: 'failedStep', type: 'number', default: -1 },\n { name: 'failureReason', type: 'string', default: '' },\n { name: 'startedAt', type: 'number', default: 0 },\n { name: 'completedAt', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'Saga',\n linkedEntity: 'SagaState',\n category: 'lifecycle',\n emits: [\n { event: 'SAGA_STARTED', scope: 'external' },\n { event: 'SAGA_STEP_COMPLETED', scope: 'external' },\n { event: 'SAGA_COMPLETED', scope: 'external' },\n { event: 'SAGA_COMPENSATING', scope: 'external' },\n { event: 'SAGA_COMPENSATION_DONE', scope: 'external' },\n { event: 'SAGA_FAILED', scope: 'external' },\n ],\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Running' },\n { name: 'Compensating' },\n { name: 'Completed' },\n { name: 'Failed' },\n ],\n events: [\n { key: 'START_SAGA', name: 'Start Saga' },\n { key: 'STEP_SUCCESS', name: 'Step Success' },\n { key: 'STEP_FAILURE', name: 'Step Failure' },\n { key: 'COMPENSATE_SUCCESS', name: 'Compensate Success' },\n { key: 'COMPENSATE_FAILURE', name: 'Compensate Failure' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // Idle → Running: start the saga\n {\n from: 'Idle',\n to: 'Running',\n event: 'START_SAGA',\n effects: [\n ['set', '@entity.sagaStatus', 'running'],\n ['set', '@entity.currentStep', 0],\n ['set', '@entity.completedSteps', []],\n ['set', '@entity.compensatedSteps', []],\n ['set', '@entity.failedStep', -1],\n ['set', '@entity.failureReason', ''],\n ['set', '@entity.startedAt', ['time/now']],\n ['emit', 'SAGA_STARTED', { sagaName: '@entity.sagaName' }],\n ],\n },\n // Running: step success, more steps remaining\n {\n from: 'Running',\n to: 'Running',\n event: 'STEP_SUCCESS',\n guard: ['<', ['+', '@entity.currentStep', 1], '@entity.totalSteps'],\n effects: [\n ['set', '@entity.currentStep', ['+', '@entity.currentStep', 1]],\n ['emit', 'SAGA_STEP_COMPLETED', {\n step: '@entity.currentStep',\n totalSteps: '@entity.totalSteps',\n }],\n ],\n },\n // Running → Completed: last step succeeded\n {\n from: 'Running',\n to: 'Completed',\n event: 'STEP_SUCCESS',\n guard: ['>=', ['+', '@entity.currentStep', 1], '@entity.totalSteps'],\n effects: [\n ['set', '@entity.sagaStatus', 'completed'],\n ['set', '@entity.completedAt', ['time/now']],\n ['emit', 'SAGA_COMPLETED', { sagaName: '@entity.sagaName' }],\n ],\n },\n // Running → Compensating: a step failed\n {\n from: 'Running',\n to: 'Compensating',\n event: 'STEP_FAILURE',\n effects: [\n ['set', '@entity.sagaStatus', 'compensating'],\n ['set', '@entity.failedStep', '@entity.currentStep'],\n ['emit', 'SAGA_COMPENSATING', {\n failedStep: '@entity.currentStep',\n sagaName: '@entity.sagaName',\n }],\n ],\n },\n // Compensating: compensation step succeeded, more to undo\n {\n from: 'Compensating',\n to: 'Compensating',\n event: 'COMPENSATE_SUCCESS',\n guard: ['>', '@entity.currentStep', 0],\n effects: [\n ['set', '@entity.currentStep', ['-', '@entity.currentStep', 1]],\n ],\n },\n // Compensating → Failed: all compensations done (reached step 0)\n {\n from: 'Compensating',\n to: 'Failed',\n event: 'COMPENSATE_SUCCESS',\n guard: ['<=', '@entity.currentStep', 0],\n effects: [\n ['set', '@entity.sagaStatus', 'failed'],\n ['set', '@entity.completedAt', ['time/now']],\n ['emit', 'SAGA_COMPENSATION_DONE', { sagaName: '@entity.sagaName' }],\n ],\n },\n // Compensating → Failed: compensation itself failed\n {\n from: 'Compensating',\n to: 'Failed',\n event: 'COMPENSATE_FAILURE',\n effects: [\n ['set', '@entity.sagaStatus', 'failed'],\n ['set', '@entity.completedAt', ['time/now']],\n ['emit', 'SAGA_FAILED', {\n sagaName: '@entity.sagaName',\n reason: 'Compensation failed',\n }],\n ],\n },\n // Reset from terminal states\n {\n from: ['Completed', 'Failed'] as unknown as string,\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.sagaStatus', 'idle'],\n ['set', '@entity.currentStep', 0],\n ['set', '@entity.completedSteps', []],\n ['set', '@entity.compensatedSteps', []],\n ['set', '@entity.failedStep', -1],\n ['set', '@entity.failureReason', ''],\n ],\n },\n ],\n },\n ticks: [],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-metrics-collector - Metrics Collection with Periodic Flush\n// ============================================================================\n\nexport const METRICS_COLLECTOR_BEHAVIOR: OrbitalSchema = {\n name: 'std-metrics-collector',\n version: '1.0.0',\n description: 'Tick-based metrics aggregation with periodic flush and reporting',\n orbitals: [\n {\n name: 'MetricsCollectorOrbital',\n entity: {\n name: 'MetricsState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'counters', type: 'object', default: {} },\n { name: 'gauges', type: 'object', default: {} },\n { name: 'lastFlush', type: 'number', default: 0 },\n { name: 'flushIntervalMs', type: 'number', default: 60000 },\n { name: 'totalFlushes', type: 'number', default: 0 },\n { name: 'totalRecorded', type: 'number', default: 0 },\n ],\n },\n traits: [\n {\n name: 'MetricsCollector',\n linkedEntity: 'MetricsState',\n category: 'lifecycle',\n emits: [\n { event: 'METRICS_REPORT', scope: 'external' },\n ],\n stateMachine: {\n states: [\n { name: 'Collecting', isInitial: true },\n ],\n events: [\n { key: 'RECORD_COUNTER', name: 'Record Counter' },\n { key: 'RECORD_GAUGE', name: 'Record Gauge' },\n { key: 'FLUSH', name: 'Flush Metrics' },\n { key: 'RESET', name: 'Reset All' },\n ],\n transitions: [\n // Record a counter increment\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RECORD_COUNTER',\n effects: [\n ['set', '@entity.totalRecorded', ['+', '@entity.totalRecorded', 1]],\n ],\n },\n // Record a gauge value\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RECORD_GAUGE',\n effects: [\n ['set', '@entity.totalRecorded', ['+', '@entity.totalRecorded', 1]],\n ],\n },\n // Flush: emit report and reset counters\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'FLUSH',\n effects: [\n ['emit', 'METRICS_REPORT', {\n counters: '@entity.counters',\n gauges: '@entity.gauges',\n totalRecorded: '@entity.totalRecorded',\n }],\n ['set', '@entity.counters', {}],\n ['set', '@entity.lastFlush', ['time/now']],\n ['set', '@entity.totalFlushes', ['+', '@entity.totalFlushes', 1]],\n ],\n },\n // Full reset\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RESET',\n effects: [\n ['set', '@entity.counters', {}],\n ['set', '@entity.gauges', {}],\n ['set', '@entity.totalRecorded', 0],\n ['set', '@entity.totalFlushes', 0],\n ['set', '@entity.lastFlush', 0],\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'periodic_flush',\n interval: '@entity.flushIntervalMs',\n guard: ['>', '@entity.totalRecorded', 0],\n effects: [['emit', 'FLUSH']],\n description: 'Periodically flush accumulated metrics',\n },\n ],\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Infrastructure Behaviors\n// ============================================================================\n\nexport const INFRASTRUCTURE_BEHAVIORS: OrbitalSchema[] = [\n CIRCUIT_BREAKER_BEHAVIOR,\n HEALTH_CHECK_BEHAVIOR,\n RATE_LIMITER_BEHAVIOR,\n CACHE_ASIDE_BEHAVIOR,\n SAGA_BEHAVIOR,\n METRICS_COLLECTOR_BEHAVIOR,\n];\n"]}
|