@almadar/std 2.1.0 → 2.4.1

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.
Files changed (86) hide show
  1. package/dist/behaviors/async.d.ts +12 -7
  2. package/dist/behaviors/async.js +1085 -312
  3. package/dist/behaviors/async.js.map +1 -1
  4. package/dist/behaviors/data-management.d.ts +27 -13
  5. package/dist/behaviors/data-management.js +600 -244
  6. package/dist/behaviors/data-management.js.map +1 -1
  7. package/dist/behaviors/domain/commerce.d.ts +51 -0
  8. package/dist/behaviors/domain/commerce.js +1093 -0
  9. package/dist/behaviors/domain/commerce.js.map +1 -0
  10. package/dist/behaviors/domain/content.d.ts +51 -0
  11. package/dist/behaviors/domain/content.js +1294 -0
  12. package/dist/behaviors/domain/content.js.map +1 -0
  13. package/dist/behaviors/domain/dashboard.d.ts +45 -0
  14. package/dist/behaviors/domain/dashboard.js +783 -0
  15. package/dist/behaviors/domain/dashboard.js.map +1 -0
  16. package/dist/behaviors/domain/education.d.ts +41 -0
  17. package/dist/behaviors/domain/education.js +738 -0
  18. package/dist/behaviors/domain/education.js.map +1 -0
  19. package/dist/behaviors/domain/finance.d.ts +49 -0
  20. package/dist/behaviors/domain/finance.js +660 -0
  21. package/dist/behaviors/domain/finance.js.map +1 -0
  22. package/dist/behaviors/domain/game-2d-platformer.d.ts +50 -0
  23. package/dist/behaviors/domain/game-2d-platformer.js +810 -0
  24. package/dist/behaviors/domain/game-2d-platformer.js.map +1 -0
  25. package/dist/behaviors/domain/game-2d-puzzle.d.ts +42 -0
  26. package/dist/behaviors/domain/game-2d-puzzle.js +622 -0
  27. package/dist/behaviors/domain/game-2d-puzzle.js.map +1 -0
  28. package/dist/behaviors/domain/game-2d-rpg.d.ts +48 -0
  29. package/dist/behaviors/domain/game-2d-rpg.js +860 -0
  30. package/dist/behaviors/domain/game-2d-rpg.js.map +1 -0
  31. package/dist/behaviors/domain/game-2d-strategy.d.ts +48 -0
  32. package/dist/behaviors/domain/game-2d-strategy.js +692 -0
  33. package/dist/behaviors/domain/game-2d-strategy.js.map +1 -0
  34. package/dist/behaviors/domain/geospatial.d.ts +35 -0
  35. package/dist/behaviors/domain/geospatial.js +634 -0
  36. package/dist/behaviors/domain/geospatial.js.map +1 -0
  37. package/dist/behaviors/domain/healthcare.d.ts +36 -0
  38. package/dist/behaviors/domain/healthcare.js +1068 -0
  39. package/dist/behaviors/domain/healthcare.js.map +1 -0
  40. package/dist/behaviors/domain/iot.d.ts +45 -0
  41. package/dist/behaviors/domain/iot.js +589 -0
  42. package/dist/behaviors/domain/iot.js.map +1 -0
  43. package/dist/behaviors/domain/media.d.ts +41 -0
  44. package/dist/behaviors/domain/media.js +771 -0
  45. package/dist/behaviors/domain/media.js.map +1 -0
  46. package/dist/behaviors/domain/scheduling.d.ts +41 -0
  47. package/dist/behaviors/domain/scheduling.js +930 -0
  48. package/dist/behaviors/domain/scheduling.js.map +1 -0
  49. package/dist/behaviors/domain/simulation.d.ts +36 -0
  50. package/dist/behaviors/domain/simulation.js +706 -0
  51. package/dist/behaviors/domain/simulation.js.map +1 -0
  52. package/dist/behaviors/domain/social.d.ts +41 -0
  53. package/dist/behaviors/domain/social.js +840 -0
  54. package/dist/behaviors/domain/social.js.map +1 -0
  55. package/dist/behaviors/domain/workflow.d.ts +41 -0
  56. package/dist/behaviors/domain/workflow.js +879 -0
  57. package/dist/behaviors/domain/workflow.js.map +1 -0
  58. package/dist/behaviors/feedback.d.ts +10 -5
  59. package/dist/behaviors/feedback.js +279 -194
  60. package/dist/behaviors/feedback.js.map +1 -1
  61. package/dist/behaviors/game-core.d.ts +15 -8
  62. package/dist/behaviors/game-core.js +412 -80
  63. package/dist/behaviors/game-core.js.map +1 -1
  64. package/dist/behaviors/game-entity.d.ts +17 -10
  65. package/dist/behaviors/game-entity.js +544 -237
  66. package/dist/behaviors/game-entity.js.map +1 -1
  67. package/dist/behaviors/game-ui.d.ts +16 -8
  68. package/dist/behaviors/game-ui.js +451 -316
  69. package/dist/behaviors/game-ui.js.map +1 -1
  70. package/dist/behaviors/index.d.ts +18 -1
  71. package/dist/behaviors/index.js +18905 -2140
  72. package/dist/behaviors/index.js.map +1 -1
  73. package/dist/behaviors/infrastructure.d.ts +9 -8
  74. package/dist/behaviors/infrastructure.js +597 -169
  75. package/dist/behaviors/infrastructure.js.map +1 -1
  76. package/dist/behaviors/registry.d.ts +11 -11
  77. package/dist/behaviors/registry.js +18904 -2139
  78. package/dist/behaviors/registry.js.map +1 -1
  79. package/dist/behaviors/types.d.ts +19 -2
  80. package/dist/behaviors/types.js.map +1 -1
  81. package/dist/behaviors/ui-interaction.d.ts +20 -14
  82. package/dist/behaviors/ui-interaction.js +928 -518
  83. package/dist/behaviors/ui-interaction.js.map +1 -1
  84. package/dist/index.js +18906 -2141
  85. package/dist/index.js.map +1 -1
  86. package/package.json +4 -1
@@ -1 +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"]}
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 { BehaviorSchema, BehaviorEffect } from './types.js';\n\n// ============================================================================\n// Shared theme for all infrastructure behaviors\n// ============================================================================\n\nconst INFRA_THEME = {\n name: 'infra-stone',\n tokens: {\n colors: {\n primary: '#57534e',\n 'primary-hover': '#44403c',\n 'primary-foreground': '#ffffff',\n accent: '#78716c',\n 'accent-foreground': '#ffffff',\n success: '#22c55e',\n warning: '#f59e0b',\n error: '#ef4444',\n },\n },\n};\n\n// ============================================================================\n// Shared render-ui compositions\n// ============================================================================\n\nconst circuitBreakerMainView: BehaviorEffect = ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'shield-check', size: 'lg' },\n { type: 'typography', content: 'Circuit Breaker', variant: 'h2' },\n ] },\n { type: 'badge', label: '@entity.circuitState', icon: 'circle-dot', variant: 'success' },\n ] },\n { type: 'divider' },\n { type: 'progress-bar', value: '@entity.errorCount', max: '@entity.errorThreshold', label: 'Error Rate' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Errors', value: '@entity.errorCount', icon: 'x-circle' },\n { type: 'stat-card', label: 'Successes', value: '@entity.successCount', icon: 'check-circle' },\n { type: 'stat-card', label: 'Total', value: '@entity.totalCount', icon: 'hash' },\n { type: 'stat-card', label: 'Threshold', value: '@entity.errorThreshold', icon: 'alert-triangle' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Simulate Success', action: 'SUCCESS', icon: 'check', variant: 'primary' },\n { type: 'button', label: 'Simulate Failure', action: 'FAILURE', icon: 'x', variant: 'secondary' },\n { type: 'button', label: 'Reset', action: 'RESET', icon: 'refresh-cw', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst circuitBreakerOpenView: BehaviorEffect = ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'shield-alert', size: 'lg' },\n { type: 'typography', content: 'Circuit Breaker - OPEN', variant: 'h2' },\n ] },\n { type: 'badge', label: 'OPEN', icon: 'alert-circle', variant: 'danger' },\n ] },\n { type: 'divider' },\n { type: 'progress-bar', value: '@entity.errorCount', max: '@entity.errorThreshold', label: 'Errors' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Errors', value: '@entity.errorCount', icon: 'x-circle' },\n { type: 'stat-card', label: 'Successes', value: '@entity.successCount', icon: 'check-circle' },\n { type: 'stat-card', label: 'Total', value: '@entity.totalCount', icon: 'hash' },\n { type: 'stat-card', label: 'Error Rate', value: '@entity.errorRate', icon: 'percent' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Try Half-Open', action: 'HALF_OPEN', icon: 'shield-question', variant: 'primary' },\n { type: 'button', label: 'Reset', action: 'RESET', icon: 'refresh-cw', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst circuitBreakerHalfOpenView: BehaviorEffect = ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'shield-question', size: 'lg' },\n { type: 'typography', content: 'Circuit Breaker - Half Open', variant: 'h2' },\n ] },\n { type: 'badge', label: 'HALF-OPEN', icon: 'alert-triangle', variant: 'warning' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Errors', value: '@entity.errorCount', icon: 'x-circle' },\n { type: 'stat-card', label: 'Successes', value: '@entity.successCount', icon: 'check-circle' },\n { type: 'stat-card', label: 'Attempts', value: '@entity.halfOpenAttempts', icon: 'rotate-cw' },\n { type: 'stat-card', label: 'Error Rate', value: '@entity.errorRate', icon: 'percent' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Test Success', action: 'SUCCESS', icon: 'check', variant: 'primary' },\n { type: 'button', label: 'Test Failure', action: 'FAILURE', icon: 'x', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst healthCheckView = (title: string, statusVariant: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'activity', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n { type: 'badge', label: '@entity.healthStatus', icon: 'heart-pulse', variant: statusVariant },\n ] },\n { type: 'divider' },\n { type: 'progress-bar', value: '@entity.consecutiveFailures', max: '@entity.unhealthyThreshold', label: 'Failure Threshold' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Failures', value: '@entity.consecutiveFailures', icon: 'x-circle' },\n { type: 'stat-card', label: 'Successes', value: '@entity.consecutiveSuccesses', icon: 'check-circle' },\n { type: 'stat-card', label: 'Total Checks', value: '@entity.totalChecks', icon: 'clipboard-check' },\n { type: 'stat-card', label: 'Total Failures', value: '@entity.totalFailures', icon: 'alert-triangle' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Check Success', action: 'CHECK_SUCCESS', icon: 'check', variant: 'primary' },\n { type: 'button', label: 'Check Failure', action: 'CHECK_FAILURE', icon: 'x', variant: 'secondary' },\n { type: 'button', label: 'Reset', action: 'RESET', icon: 'refresh-cw', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst rateLimiterView = (title: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'gauge', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n ] },\n { type: 'divider' },\n { type: 'progress-bar', value: '@entity.requestCount', max: '@entity.rateLimit', label: 'Rate Usage' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Requests', value: '@entity.requestCount', icon: 'arrow-up-right' },\n { type: 'stat-card', label: 'Limit', value: '@entity.rateLimit', icon: 'shield' },\n { type: 'stat-card', label: 'Total', value: '@entity.totalRequests', icon: 'hash' },\n { type: 'stat-card', label: 'Rejected', value: '@entity.rejectedRequests', icon: 'ban' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Send Request', action: 'REQUEST', icon: 'send', variant: 'primary' },\n { type: 'button', label: 'Reset Window', action: 'RESET_WINDOW', icon: 'refresh-cw', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst cacheStatsView = (title: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'database', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n { type: 'badge', label: '@entity.isFresh', icon: 'check-circle', variant: 'outline' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Key', value: '@entity.cacheKey', icon: 'key' },\n { type: 'stat-card', label: 'Hits', value: '@entity.cacheHits', icon: 'check' },\n { type: 'stat-card', label: 'Misses', value: '@entity.cacheMisses', icon: 'x' },\n { type: 'stat-card', label: 'TTL (ms)', value: '@entity.ttlMs', icon: 'clock' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Get', action: 'GET', icon: 'download', variant: 'primary' },\n { type: 'button', label: 'Invalidate', action: 'INVALIDATE', icon: 'trash-2', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst cacheEmptyView = (title: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'database', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n { type: 'divider' },\n { type: 'empty-state', icon: 'inbox', title: 'Cache is empty', description: 'No cached data available' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Hits', value: '@entity.cacheHits', icon: 'check' },\n { type: 'stat-card', label: 'Misses', value: '@entity.cacheMisses', icon: 'x' },\n ] },\n { type: 'divider' },\n { type: 'button', label: 'Fetch Data', action: 'SET', icon: 'download', variant: 'primary' },\n ],\n}];\n\nconst sagaView = (title: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'workflow', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n { type: 'badge', label: '@entity.sagaStatus', icon: 'flag', variant: 'outline' },\n ] },\n { type: 'divider' },\n { type: 'progress-bar', value: '@entity.currentStep', max: '@entity.totalSteps', label: 'Progress' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Current Step', value: '@entity.currentStep', icon: 'footprints' },\n { type: 'stat-card', label: 'Total Steps', value: '@entity.totalSteps', icon: 'list-ordered' },\n { type: 'stat-card', label: 'Failed Step', value: '@entity.failedStep', icon: 'alert-circle' },\n { type: 'stat-card', label: 'Status', value: '@entity.sagaStatus', icon: 'flag' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Execute', action: 'EXECUTE', icon: 'play', variant: 'primary' },\n { type: 'button', label: 'Compensate', action: 'COMPENSATE', icon: 'undo-2', variant: 'secondary' },\n { type: 'button', label: 'Reset', action: 'RESET', icon: 'refresh-cw', variant: 'secondary' },\n ] },\n ],\n}];\n\nconst metricsView = (title: string): BehaviorEffect => ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'bar-chart-3', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ] },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'stat-card', label: 'Recorded', value: '@entity.totalRecorded', icon: 'database' },\n { type: 'stat-card', label: 'Flushes', value: '@entity.totalFlushes', icon: 'upload' },\n { type: 'stat-card', label: 'Last Flush', value: '@entity.lastFlush', icon: 'clock' },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'button', label: 'Record', action: 'RECORD', icon: 'plus', variant: 'primary' },\n { type: 'button', label: 'Flush', action: 'FLUSH', icon: 'upload', variant: 'secondary' },\n ] },\n ],\n}];\n\n// ============================================================================\n// std-circuit-breaker - Circuit Breaker Pattern\n// ============================================================================\n\nexport const CIRCUIT_BREAKER_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\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: 0 },\n { name: 'lastSuccess', type: 'number', default: 0 },\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: 'interaction',\n stateMachine: {\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n { name: 'HalfOpen' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\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 // INIT: render dashboard\n {\n from: 'Closed',\n to: 'Closed',\n event: 'INIT',\n effects: [\n ['fetch', 'CircuitBreakerState'],\n circuitBreakerMainView,\n ],\n },\n // Closed: record success\n {\n from: 'Closed',\n to: 'Closed',\n event: 'RECORD_SUCCESS',\n effects: [\n ['fetch', 'CircuitBreakerState'],\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 circuitBreakerMainView,\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 ['fetch', 'CircuitBreakerState'],\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 circuitBreakerMainView,\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 ['fetch', 'CircuitBreakerState'],\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 ['set', '@entity.circuitState', 'open'],\n circuitBreakerOpenView,\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 ['fetch', 'CircuitBreakerState'],\n ['set', '@entity.halfOpenAttempts', 0],\n ['set', '@entity.circuitState', 'halfOpen'],\n circuitBreakerHalfOpenView,\n ],\n },\n // HalfOpen: success -> close\n {\n from: 'HalfOpen',\n to: 'Closed',\n event: 'RECORD_SUCCESS',\n effects: [\n ['fetch', 'CircuitBreakerState'],\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 ['set', '@entity.circuitState', 'closed'],\n circuitBreakerMainView,\n ],\n },\n // HalfOpen: failure -> back to open\n {\n from: 'HalfOpen',\n to: 'Open',\n event: 'RECORD_FAILURE',\n effects: [\n ['fetch', 'CircuitBreakerState'],\n ['set', '@entity.errorCount', ['+', '@entity.errorCount', 1]],\n ['set', '@entity.lastFailure', ['time/now']],\n ['set', '@entity.circuitState', 'open'],\n circuitBreakerOpenView,\n ],\n },\n // Reset from Closed\n {\n from: 'Closed',\n to: 'Closed',\n event: 'RESET',\n effects: [\n ['fetch', 'CircuitBreakerState'],\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 circuitBreakerMainView,\n ],\n },\n // Reset from Open\n {\n from: 'Open',\n to: 'Closed',\n event: 'RESET',\n effects: [\n ['fetch', 'CircuitBreakerState'],\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 circuitBreakerMainView,\n ],\n },\n // Reset from HalfOpen\n {\n from: 'HalfOpen',\n to: 'Closed',\n event: 'RESET',\n effects: [\n ['fetch', 'CircuitBreakerState'],\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 circuitBreakerMainView,\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'probe_half_open',\n interval: 30000,\n guard: ['=', '@entity.circuitState', 'open'],\n effects: [],\n },\n ],\n },\n ],\n pages: [{ name: 'CircuitBreakerPage', path: '/circuit-breaker', isInitial: true, traits: [{ ref: 'CircuitBreaker' }] }],\n },\n ],\n};\n\n// ============================================================================\n// std-health-check - Health Monitoring\n// ============================================================================\n\nexport const HEALTH_CHECK_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\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: 0 },\n { name: 'lastHealthy', type: 'number', default: 0 },\n { name: 'consecutiveFailures', type: 'number', default: 0 },\n { name: 'consecutiveSuccesses', type: 'number', default: 0 },\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: 'interaction',\n stateMachine: {\n states: [\n { name: 'Unknown', isInitial: true },\n { name: 'Healthy' },\n { name: 'Degraded' },\n { name: 'Unhealthy' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CHECK_SUCCESS', name: 'Check Success' },\n { key: 'CHECK_FAILURE', name: 'Check Failure' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT\n {\n from: 'Unknown',\n to: 'Unknown',\n event: 'INIT',\n effects: [\n ['fetch', 'HealthCheckState'],\n healthCheckView('Health Check', 'outline'),\n ],\n },\n // Unknown -> Healthy on first success\n {\n from: 'Unknown',\n to: 'Healthy',\n event: 'CHECK_SUCCESS',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Healthy', 'success'),\n ],\n },\n // Unknown -> Degraded on first failure\n {\n from: 'Unknown',\n to: 'Degraded',\n event: 'CHECK_FAILURE',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Degraded', 'warning'),\n ],\n },\n // Healthy: stay healthy on success\n {\n from: 'Healthy',\n to: 'Healthy',\n event: 'CHECK_SUCCESS',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Healthy', 'success'),\n ],\n },\n // Healthy -> Degraded on failure\n {\n from: 'Healthy',\n to: 'Degraded',\n event: 'CHECK_FAILURE',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Degraded', 'warning'),\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 ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Degraded', 'warning'),\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 ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Unhealthy', 'danger'),\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 ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Healthy', 'success'),\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 ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Degraded', 'warning'),\n ],\n },\n // Unhealthy: stay unhealthy on failure\n {\n from: 'Unhealthy',\n to: 'Unhealthy',\n event: 'CHECK_FAILURE',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Unhealthy', 'danger'),\n ],\n },\n // Unhealthy -> Degraded on first success (recovery begins)\n {\n from: 'Unhealthy',\n to: 'Degraded',\n event: 'CHECK_SUCCESS',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check - Degraded', 'warning'),\n ],\n },\n // Reset from Unknown\n {\n from: 'Unknown',\n to: 'Unknown',\n event: 'RESET',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check', 'outline'),\n ],\n },\n // Reset from Healthy\n {\n from: 'Healthy',\n to: 'Unknown',\n event: 'RESET',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check', 'outline'),\n ],\n },\n // Reset from Degraded\n {\n from: 'Degraded',\n to: 'Unknown',\n event: 'RESET',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check', 'outline'),\n ],\n },\n // Reset from Unhealthy\n {\n from: 'Unhealthy',\n to: 'Unknown',\n event: 'RESET',\n effects: [\n ['fetch', 'HealthCheckState'],\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 healthCheckView('Health Check', 'outline'),\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'periodic_health_check',\n interval: 30000,\n effects: [],\n },\n ],\n },\n ],\n pages: [{ name: 'HealthCheckPage', path: '/health-check', isInitial: true, traits: [{ ref: 'HealthCheck' }] }],\n },\n ],\n};\n\n// ============================================================================\n// std-rate-limiter - Token Bucket Rate Limiting\n// ============================================================================\n\nexport const RATE_LIMITER_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\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: 'interaction',\n stateMachine: {\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'REQUEST', name: 'Record Request' },\n { key: 'WINDOW_RESET', name: 'Window Reset' },\n { key: 'RESET', name: 'Full Reset' },\n ],\n transitions: [\n // INIT\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['fetch', 'RateLimiterState'],\n rateLimiterView('Rate Limiter'),\n ],\n },\n // Request allowed\n {\n from: 'Active',\n to: 'Active',\n event: 'REQUEST',\n guard: ['<', '@entity.requestCount', '@entity.rateLimit'],\n effects: [\n ['fetch', 'RateLimiterState'],\n ['set', '@entity.requestCount', ['+', '@entity.requestCount', 1]],\n ['set', '@entity.totalRequests', ['+', '@entity.totalRequests', 1]],\n rateLimiterView('Rate Limiter'),\n ],\n },\n // Request rejected\n {\n from: 'Active',\n to: 'Active',\n event: 'REQUEST',\n guard: ['>=', '@entity.requestCount', '@entity.rateLimit'],\n effects: [\n ['fetch', 'RateLimiterState'],\n ['set', '@entity.rejectedRequests', ['+', '@entity.rejectedRequests', 1]],\n rateLimiterView('Rate Limiter - Limit Exceeded'),\n ],\n },\n // Sliding window reset\n {\n from: 'Active',\n to: 'Active',\n event: 'WINDOW_RESET',\n effects: [\n ['fetch', 'RateLimiterState'],\n ['set', '@entity.requestCount', 0],\n ['set', '@entity.windowStart', ['time/now']],\n rateLimiterView('Rate Limiter'),\n ],\n },\n // Full counter reset\n {\n from: 'Active',\n to: 'Active',\n event: 'RESET',\n effects: [\n ['fetch', 'RateLimiterState'],\n ['set', '@entity.requestCount', 0],\n ['set', '@entity.totalRequests', 0],\n ['set', '@entity.rejectedRequests', 0],\n ['set', '@entity.windowStart', ['time/now']],\n rateLimiterView('Rate Limiter'),\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'window_reset',\n interval: 60000,\n effects: [],\n },\n ],\n },\n ],\n pages: [{ name: 'RateLimiterPage', path: '/rate-limiter', isInitial: true, traits: [{ ref: 'RateLimiter' }] }],\n },\n ],\n};\n\n// ============================================================================\n// std-cache-aside - Cache-Aside Pattern\n// ============================================================================\n\nexport const CACHE_ASIDE_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\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: 'string', default: '' },\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: 'interaction',\n stateMachine: {\n states: [\n { name: 'Empty', isInitial: true },\n { name: 'Fresh' },\n { name: 'Stale' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOOKUP', name: 'Cache Lookup' },\n { key: 'POPULATE', name: 'Populate Cache', payloadSchema: [\n { name: 'value', type: 'string', required: true },\n { name: 'key', type: 'string', required: true },\n ] },\n { key: 'INVALIDATE', name: 'Invalidate' },\n { key: 'EVICT', name: 'Evict' },\n ],\n transitions: [\n // INIT\n {\n from: 'Empty',\n to: 'Empty',\n event: 'INIT',\n effects: [\n ['fetch', 'CacheEntry'],\n cacheEmptyView('Cache'),\n ],\n },\n // Empty: lookup is a miss\n {\n from: 'Empty',\n to: 'Empty',\n event: 'LOOKUP',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n cacheEmptyView('Cache - Miss'),\n ],\n },\n // Empty -> Fresh: populate after fetch\n {\n from: 'Empty',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cacheKey', '@payload.key'],\n ['set', '@entity.cachedAt', ['time/now']],\n ['set', '@entity.isFresh', true],\n cacheStatsView('Cache - Fresh'),\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 ['fetch', 'CacheEntry'],\n ['set', '@entity.cacheHits', ['+', '@entity.cacheHits', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n cacheStatsView('Cache - Hit'),\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 ['fetch', 'CacheEntry'],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n cacheStatsView('Cache - Stale'),\n ],\n },\n // Fresh -> Fresh: update cache\n {\n from: 'Fresh',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cachedAt', ['time/now']],\n cacheStatsView('Cache - Fresh'),\n ],\n },\n // Stale: lookup is a miss\n {\n from: 'Stale',\n to: 'Stale',\n event: 'LOOKUP',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cacheMisses', ['+', '@entity.cacheMisses', 1]],\n ['set', '@entity.lastAccessed', ['time/now']],\n cacheStatsView('Cache - Stale'),\n ],\n },\n // Stale -> Fresh: re-populate\n {\n from: 'Stale',\n to: 'Fresh',\n event: 'POPULATE',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', '@payload.value'],\n ['set', '@entity.cachedAt', ['time/now']],\n ['set', '@entity.isFresh', true],\n cacheStatsView('Cache - Fresh'),\n ],\n },\n // Invalidate from Fresh\n {\n from: 'Fresh',\n to: 'Empty',\n event: 'INVALIDATE',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', ''],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n cacheEmptyView('Cache'),\n ],\n },\n // Invalidate from Stale\n {\n from: 'Stale',\n to: 'Empty',\n event: 'INVALIDATE',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', ''],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n cacheEmptyView('Cache'),\n ],\n },\n // Evict from Fresh\n {\n from: 'Fresh',\n to: 'Empty',\n event: 'EVICT',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', ''],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n cacheEmptyView('Cache'),\n ],\n },\n // Evict from Stale\n {\n from: 'Stale',\n to: 'Empty',\n event: 'EVICT',\n effects: [\n ['fetch', 'CacheEntry'],\n ['set', '@entity.cachedValue', ''],\n ['set', '@entity.isFresh', false],\n ['set', '@entity.cachedAt', 0],\n cacheEmptyView('Cache'),\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: [],\n },\n ],\n },\n ],\n pages: [{ name: 'CachePage', path: '/cache', isInitial: true, traits: [{ ref: 'CacheAside' }] }],\n },\n ],\n};\n\n// ============================================================================\n// std-saga - Saga Pattern (Distributed Transaction Compensation)\n// ============================================================================\n\nexport const SAGA_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\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: '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: 'interaction',\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: 'INIT', name: 'Initialize' },\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 // INIT\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['fetch', 'SagaState'],\n sagaView('Saga'),\n ],\n },\n // Idle -> Running: start the saga\n {\n from: 'Idle',\n to: 'Running',\n event: 'START_SAGA',\n effects: [\n ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'running'],\n ['set', '@entity.currentStep', 0],\n ['set', '@entity.failedStep', -1],\n ['set', '@entity.failureReason', ''],\n ['set', '@entity.startedAt', ['time/now']],\n sagaView('Saga - Running'),\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 ['fetch', 'SagaState'],\n ['set', '@entity.currentStep', ['+', '@entity.currentStep', 1]],\n sagaView('Saga - Running'),\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 ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'completed'],\n ['set', '@entity.completedAt', ['time/now']],\n sagaView('Saga - Completed'),\n ],\n },\n // Running -> Compensating: a step failed\n {\n from: 'Running',\n to: 'Compensating',\n event: 'STEP_FAILURE',\n effects: [\n ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'compensating'],\n ['set', '@entity.failedStep', '@entity.currentStep'],\n sagaView('Saga - Compensating'),\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 ['fetch', 'SagaState'],\n ['set', '@entity.currentStep', ['-', '@entity.currentStep', 1]],\n sagaView('Saga - Compensating'),\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 ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'failed'],\n ['set', '@entity.completedAt', ['time/now']],\n sagaView('Saga - Failed'),\n ],\n },\n // Compensating -> Failed: compensation itself failed\n {\n from: 'Compensating',\n to: 'Failed',\n event: 'COMPENSATE_FAILURE',\n effects: [\n ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'failed'],\n ['set', '@entity.completedAt', ['time/now']],\n sagaView('Saga - Failed'),\n ],\n },\n // Reset from Completed\n {\n from: 'Completed',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'idle'],\n ['set', '@entity.currentStep', 0],\n ['set', '@entity.failedStep', -1],\n ['set', '@entity.failureReason', ''],\n sagaView('Saga'),\n ],\n },\n // Reset from Failed\n {\n from: 'Failed',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['fetch', 'SagaState'],\n ['set', '@entity.sagaStatus', 'idle'],\n ['set', '@entity.currentStep', 0],\n ['set', '@entity.failedStep', -1],\n ['set', '@entity.failureReason', ''],\n sagaView('Saga'),\n ],\n },\n ],\n },\n ticks: [],\n },\n ],\n pages: [{ name: 'SagaPage', path: '/saga', isInitial: true, traits: [{ ref: 'Saga' }] }],\n },\n ],\n};\n\n// ============================================================================\n// std-metrics-collector - Metrics Collection with Periodic Flush\n// ============================================================================\n\nexport const METRICS_COLLECTOR_BEHAVIOR: BehaviorSchema = {\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 theme: INFRA_THEME,\n entity: {\n name: 'MetricsState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'lastFlush', type: 'number', default: 0 },\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: 'interaction',\n stateMachine: {\n states: [\n { name: 'Collecting', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\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 // INIT\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'INIT',\n effects: [\n ['fetch', 'MetricsState'],\n metricsView('Metrics Collector'),\n ],\n },\n // Record a counter increment\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RECORD_COUNTER',\n effects: [\n ['fetch', 'MetricsState'],\n ['set', '@entity.totalRecorded', ['+', '@entity.totalRecorded', 1]],\n metricsView('Metrics Collector'),\n ],\n },\n // Record a gauge value\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RECORD_GAUGE',\n effects: [\n ['fetch', 'MetricsState'],\n ['set', '@entity.totalRecorded', ['+', '@entity.totalRecorded', 1]],\n metricsView('Metrics Collector'),\n ],\n },\n // Flush: reset counters\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'FLUSH',\n effects: [\n ['fetch', 'MetricsState'],\n ['set', '@entity.lastFlush', ['time/now']],\n ['set', '@entity.totalFlushes', ['+', '@entity.totalFlushes', 1]],\n metricsView('Metrics Collector'),\n ],\n },\n // Full reset\n {\n from: 'Collecting',\n to: 'Collecting',\n event: 'RESET',\n effects: [\n ['fetch', 'MetricsState'],\n ['set', '@entity.totalRecorded', 0],\n ['set', '@entity.totalFlushes', 0],\n ['set', '@entity.lastFlush', 0],\n metricsView('Metrics Collector'),\n ],\n },\n ],\n },\n ticks: [\n {\n name: 'periodic_flush',\n interval: 60000,\n guard: ['>', '@entity.totalRecorded', 0],\n effects: [],\n },\n ],\n },\n ],\n pages: [{ name: 'MetricsPage', path: '/metrics', isInitial: true, traits: [{ ref: 'MetricsCollector' }] }],\n },\n ],\n};\n\n// ============================================================================\n// Export All Infrastructure Behaviors\n// ============================================================================\n\nexport const INFRASTRUCTURE_BEHAVIORS: BehaviorSchema[] = [\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"]}
@@ -1,31 +1,31 @@
1
- import { BehaviorMetadata } from './types.js';
2
- import { OrbitalSchema } from '@almadar/core/types';
1
+ import { BehaviorSchema, BehaviorMetadata } from './types.js';
2
+ import '@almadar/core/types';
3
3
 
4
4
  /**
5
5
  * Standard Behaviors Registry
6
6
  *
7
7
  * Combined registry of all Standard Behaviors with lookup functions.
8
- * Note: Behaviors are now typed as OrbitalSchema (OrbitalSchema).
8
+ * Note: Behaviors are now typed as BehaviorSchema (BehaviorSchema).
9
9
  *
10
10
  * @packageDocumentation
11
11
  */
12
12
 
13
13
  /**
14
14
  * All Standard Behaviors combined into a single array.
15
- * Each behavior is now a OrbitalSchema (OrbitalSchema).
15
+ * Each behavior is now a BehaviorSchema (BehaviorSchema).
16
16
  */
17
- declare const STANDARD_BEHAVIORS: OrbitalSchema[];
17
+ declare const STANDARD_BEHAVIORS: BehaviorSchema[];
18
18
  /**
19
19
  * Behavior registry indexed by name for fast lookup.
20
20
  */
21
- declare const BEHAVIOR_REGISTRY: Record<string, OrbitalSchema>;
21
+ declare const BEHAVIOR_REGISTRY: Record<string, BehaviorSchema>;
22
22
  /**
23
23
  * Get a behavior by name.
24
24
  *
25
25
  * @param name - Behavior name (e.g., 'std-list')
26
26
  * @returns The behavior or undefined if not found
27
27
  */
28
- declare function getBehavior(name: string): OrbitalSchema | undefined;
28
+ declare function getBehavior(name: string): BehaviorSchema | undefined;
29
29
  /**
30
30
  * Check if a behavior exists.
31
31
  *
@@ -44,7 +44,7 @@ declare function getAllBehaviorNames(): string[];
44
44
  *
45
45
  * @returns Array of all behaviors
46
46
  */
47
- declare function getAllBehaviors(): OrbitalSchema[];
47
+ declare function getAllBehaviors(): BehaviorSchema[];
48
48
  /**
49
49
  * Get metadata for all behaviors (lightweight).
50
50
  *
@@ -57,21 +57,21 @@ declare function getAllBehaviorMetadata(): BehaviorMetadata[];
57
57
  * @param useCase - Use case description to match
58
58
  * @returns Array of matching behaviors
59
59
  */
60
- declare function findBehaviorsForUseCase(useCase: string): OrbitalSchema[];
60
+ declare function findBehaviorsForUseCase(useCase: string): BehaviorSchema[];
61
61
  /**
62
62
  * Get behaviors that handle a specific event.
63
63
  *
64
64
  * @param event - Event name
65
65
  * @returns Array of behaviors that handle this event
66
66
  */
67
- declare function getBehaviorsForEvent(event: string): OrbitalSchema[];
67
+ declare function getBehaviorsForEvent(event: string): BehaviorSchema[];
68
68
  /**
69
69
  * Get behaviors that have a specific state.
70
70
  *
71
71
  * @param state - State name
72
72
  * @returns Array of behaviors that have this state
73
73
  */
74
- declare function getBehaviorsWithState(state: string): OrbitalSchema[];
74
+ declare function getBehaviorsWithState(state: string): BehaviorSchema[];
75
75
  /**
76
76
  * Validate that a behavior reference is valid.
77
77
  *